diff --git a/README.md b/README.md index eb9a7e25b..40cb042f2 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ # LBRYcrd - The LBRY blockchain [![Build Status](https://travis-ci.org/lbryio/lbrycrd.svg?branch=master)](https://travis-ci.org/lbryio/lbrycrd) +[![MIT licensed](https://img.shields.io/dub/l/vibe-d.svg?style=flat)](https://github.com/lbryio/lbry-desktop/blob/master/LICENSE) -LBRYcrd uses a blockchain similar to bitcoin's to implement an index and payment system for content on the LBRY network. It is a fork of bitcoin core. In addition to the libraries used by bitcoin, LBRYcrd also uses icu4c. +LBRYcrd uses a blockchain similar to bitcoin's to implement an index and payment system for content on the LBRY network. It is a fork of [bitcoin core](https://github.com/bitcoin/bitcoin). In addition to the libraries used by bitcoin, LBRYcrd also uses [icu4c](https://github.com/unicode-org/icu/tree/master/icu4c). Please read the [lbry.tech overview](https://lbry.tech/overview) for a general understanding of the LBRY pieces. From there you could read the [LBRY spec](https://spec.lbry.com/) for specifics on the data in the blockchain. @@ -46,7 +47,7 @@ Run `./lbrycrd-cli help` to get a list of all commands that you can run. To get Test locally: -``` +```sh ./lbrycrdd -server -regtest -txindex # run this in its own window ./lbrycrd-cli -regtest generate 120 # mine 20 spendable coins ./lbrycrd-cli -regtest claimname my_name deadbeef 1 # hold a name claim with 1 coin @@ -65,7 +66,7 @@ The CLI help is also browsable online at https://lbry.tech/api/blockchain Lbrycrdd will use the below default data directories (changeable with -datadir): -``` +```sh Windows: %APPDATA%\lbrycrd Mac: ~/Library/Application Support/lbrycrd Unix: ~/.lbrycrd @@ -75,7 +76,7 @@ The data directory contains various things such as your default wallet (wallet.d For a list of configuration parameters, run `./lbrycrdd --help`. Below is a sample lbrycrd.conf to enable JSON RPC server on lbrycrdd. -``` +```sh rpcuser=lbry rpcpassword=xyz123456790 daemon=1 @@ -85,9 +86,8 @@ txindex=1 ## Running from Source -The easiest way to compile is to utilize the Docker image that contains the necessary compilers: lbry/build_lbrycrd. This will allow you to reproduce the build as made on our build servers. I this sample we map a local lbrycrd folder and a local ccache folder inside the image: - -``` +The easiest way to compile is to utilize the Docker image that contains the necessary compilers: lbry/build_lbrycrd. This will allow you to reproduce the build as made on our build servers. In this sample we map a local lbrycrd folder and a local ccache folder inside the image: +```sh git clone https://github.com/lbryio/lbrycrd.git cd lbrycrd docker run -v "$(pwd):/lbrycrd" --rm -v "${HOME}/ccache:/ccache" -w /lbrycrd -e CCACHE_DIR=/ccache lbry/build_lbrycrd packaging/build_linux_64bit.sh @@ -97,7 +97,7 @@ Some examples of compiling directly: #### Ubuntu with pulled static dependencies -``` +```sh sudo apt install build-essential git libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates git clone https://github.com/lbryio/lbrycrd.git cd lbrycrd @@ -112,7 +112,7 @@ Other Linux distros would be similar. The build shell script is fairly trivial; Note: using untested dependencies may lead to conflicting results. -``` +```sh sudo add-apt-repository ppa:bitcoin/bitcoin sudo apt-get update sudo apt-get install libdb4.8-dev libdb4.8++-dev libicu-dev libssl-dev libevent-dev \ @@ -132,7 +132,7 @@ make -j$(nproc) #### MacOS (cross-compiled) -``` +```sh sudo apt-get install clang llvm git libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates \ libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev @@ -149,7 +149,7 @@ Look in packaging/build_darwin_64bit.sh for further understanding. #### MacOS with local shared dependencies -``` +```sh brew install boost berkeley-db@4 icu4c libevent # fix conflict with gawk pulled first: brew reinstall readline @@ -169,7 +169,7 @@ make -j$(sysctl -n hw.ncpu) Compiling on MS Windows (outside of WSL) is not supported. The Windows build is cross-compiled from Linux like so: -``` +```sh sudo apt-get install build-essential git libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates \ g++-mingw-w64-x86-64 mingw-w64-x86-64-dev @@ -187,7 +187,7 @@ If you encounter any errors, please check `doc/build-*.md` for further instructi CLion has not traditionally supported Autotools projects, although some progress on that is now in the works. We do include a cmake build file for compiling lbrycrd. See contrib/cmake. Alas, CLion doesn't support external projects in cmake, so that particular approach is also insufficient. CLion does support "compile_commands.json" projects. Fortunately, this can be easily generated for lbrycrd like so: -``` +```sh pip install --user compiledb ./autogen.sh && ./configure --enable-static=no --enable-shared --with-pic --without-gui CXXFLAGS="-O0 -g" CFLAGS="-O0 -g" # or whatever normal lbrycrd config compiledb make -j10 @@ -210,8 +210,8 @@ regularly to indicate new official, stable release versions. Testing and code review is the bottleneck for development; we get more pull requests than we can review and test on short notice. Please be patient and help out by testing other people's pull requests, and remember this is a security-critical project where any mistake might cost people -lots of money. Developers are strongly encouraged to write [unit tests](/doc/unit-tests.md) for new code and to -submit new unit tests for old code. Unit tests are compiled by default and can be run with `src/test/test_lbrycrd`. +lots of money. Developers are strongly encouraged to write [unit tests](/src/test/README.md) for new code and to +submit new unit tests for old code. Unit tests are compiled by default and can be run with `src/test/test_lbrycrd` The Travis CI system makes sure that every pull request is built, and that unit and sanity tests are automatically run. See https://travis-ci.org/lbryio/lbrycrd @@ -219,7 +219,7 @@ The Travis CI system makes sure that every pull request is built, and that unit Testnet is maintained for testing purposes and can be accessed using the command `./lbrycrdd -testnet`. If you would like to obtain testnet credits, please contact brannon@lbry.com or grin@lbry.com . -It is easy to solo mine on testnet. (It's easy on mainnet too, but much harder to win.) For instructions see https://github.com/lbryio/sgminer-gm and https://github.com/lbryio/lbrycrd/tree/master/contrib/mining +It is easy to solo mine on testnet. (It's easy on mainnet too, but much harder to win.) For instructions see [SGMiner](https://github.com/lbryio/sgminer-gm) and [Mining Contributions](https://github.com/lbryio/lbrycrd/tree/master/contrib/mining) ## Mailing List @@ -231,7 +231,7 @@ This project is MIT licensed. For the full license, see [LICENSE](LICENSE). ## Security -We take security seriously. Please contact security@lbry.com regarding any security issues. +We take security seriously. Please contact [security@lbry.com](mailto:security@lbry.com) regarding any security issues. Our PGP key is [here](https://keybase.io/lbry/key.asc) if you need it. ## Contact diff --git a/autogen.sh b/autogen.sh index 0c05626cc..5b2aa0ffc 100755 --- a/autogen.sh +++ b/autogen.sh @@ -7,7 +7,7 @@ export LC_ALL=C set -e srcdir="$(dirname $0)" cd "$srcdir" -if [ -z ${LIBTOOLIZE} ] && GLIBTOOLIZE="`which glibtoolize 2>/dev/null`"; then +if [ -z ${LIBTOOLIZE} ] && GLIBTOOLIZE="$(which glibtoolize 2>/dev/null)"; then LIBTOOLIZE="${GLIBTOOLIZE}" export LIBTOOLIZE fi diff --git a/contrib/macdeploy/detached-sig-apply.sh b/contrib/macdeploy/detached-sig-apply.sh index f8503e4de..af2b11fa0 100755 --- a/contrib/macdeploy/detached-sig-apply.sh +++ b/contrib/macdeploy/detached-sig-apply.sh @@ -36,13 +36,13 @@ if [ -z "${CODESIGN_ALLOCATE}" ]; then fi find ${TEMPDIR} -name "*.sign" | while read i; do - SIZE=`stat -c %s "${i}"` - TARGET_FILE="`echo "${i}" | sed 's/\.sign$//'`" + SIZE=$(stat -c %s "${i}") + TARGET_FILE="$(echo "${i}" | sed 's/\.sign$//')" echo "Allocating space for the signature of size ${SIZE} in ${TARGET_FILE}" ${CODESIGN_ALLOCATE} -i "${TARGET_FILE}" -a ${ARCH} ${SIZE} -o "${i}.tmp" - OFFSET=`${PAGESTUFF} "${i}.tmp" -p | tail -2 | grep offset | sed 's/[^0-9]*//g'` + OFFSET=$(${PAGESTUFF} "${i}.tmp" -p | tail -2 | grep offset | sed 's/[^0-9]*//g') if [ -z ${QUIET} ]; then echo "Attaching signature at offset ${OFFSET}" fi diff --git a/contrib/macdeploy/detached-sig-create.sh b/contrib/macdeploy/detached-sig-create.sh index 5281ebcc4..b69335042 100755 --- a/contrib/macdeploy/detached-sig-create.sh +++ b/contrib/macdeploy/detached-sig-create.sh @@ -27,19 +27,19 @@ ${CODESIGN} -f --file-list ${TEMPLIST} "$@" "${BUNDLE}" grep -v CodeResources < "${TEMPLIST}" | while read i; do TARGETFILE="${BUNDLE}/`echo "${i}" | sed "s|.*${BUNDLE}/||"`" - SIZE=`pagestuff "$i" -p | tail -2 | grep size | sed 's/[^0-9]*//g'` - OFFSET=`pagestuff "$i" -p | tail -2 | grep offset | sed 's/[^0-9]*//g'` + SIZE=$(pagestuff "$i" -p | tail -2 | grep size | sed 's/[^0-9]*//g') + OFFSET=$(pagestuff "$i" -p | tail -2 | grep offset | sed 's/[^0-9]*//g') SIGNFILE="${TEMPDIR}/${OUTROOT}/${TARGETFILE}.sign" - DIRNAME="`dirname "${SIGNFILE}"`" + DIRNAME="$(dirname "${SIGNFILE}")" mkdir -p "${DIRNAME}" echo "Adding detached signature for: ${TARGETFILE}. Size: ${SIZE}. Offset: ${OFFSET}" dd if="$i" of="${SIGNFILE}" bs=1 skip=${OFFSET} count=${SIZE} 2>/dev/null done grep CodeResources < "${TEMPLIST}" | while read i; do - TARGETFILE="${BUNDLE}/`echo "${i}" | sed "s|.*${BUNDLE}/||"`" + TARGETFILE="${BUNDLE}/$(echo "${i}" | sed "s|.*${BUNDLE}/||")" RESOURCE="${TEMPDIR}/${OUTROOT}/${TARGETFILE}" - DIRNAME="`dirname "${RESOURCE}"`" + DIRNAME="$(dirname "${RESOURCE}")" mkdir -p "${DIRNAME}" echo "Adding resource for: \"${TARGETFILE}\"" cp "${i}" "${RESOURCE}" diff --git a/contrib/windeploy/detached-sig-create.sh b/contrib/windeploy/detached-sig-create.sh index 15f8108cf..e1b186607 100755 --- a/contrib/windeploy/detached-sig-create.sh +++ b/contrib/windeploy/detached-sig-create.sh @@ -23,7 +23,7 @@ TIMESERVER=http://timestamp.comodoca.com CERTFILE="win-codesign.cert" mkdir -p "${OUTSUBDIR}" -basename -a `ls -1 "${SRCDIR}"/*-unsigned.exe` | while read UNSIGNED; do +basename -a $(ls -1 "${SRCDIR}"/*-unsigned.exe) | while read UNSIGNED; do echo Signing "${UNSIGNED}" "${OSSLSIGNCODE}" sign -certs "${CERTFILE}" -t "${TIMESERVER}" -in "${SRCDIR}/${UNSIGNED}" -out "${WORKDIR}/${UNSIGNED}" "$@" "${OSSLSIGNCODE}" extract-signature -pem -in "${WORKDIR}/${UNSIGNED}" -out "${OUTSUBDIR}/${UNSIGNED}.pem" && rm "${WORKDIR}/${UNSIGNED}" diff --git a/packaging/build_darwin_64bit.sh b/packaging/build_darwin_64bit.sh index c69c78417..163afde1e 100755 --- a/packaging/build_darwin_64bit.sh +++ b/packaging/build_darwin_64bit.sh @@ -30,13 +30,13 @@ if which ccache >/dev/null; then fi pushd depends -make -j`getconf _NPROCESSORS_ONLN` HOST=x86_64-apple-darwin14 NO_QT=1 V=1 +make -j$(getconf _NPROCESSORS_ONLN) HOST=x86_64-apple-darwin14 NO_QT=1 V=1 popd ./autogen.sh -DEPS_DIR=`pwd`/depends/x86_64-apple-darwin14 +DEPS_DIR=$(pwd)/depends/x86_64-apple-darwin14 CONFIG_SITE=${DEPS_DIR}/share/config.site ./configure --enable-reduce-exports --without-gui --with-icu="${DEPS_DIR}" --enable-static --disable-shared -make -j`getconf _NPROCESSORS_ONLN` +make -j$(getconf _NPROCESSORS_ONLN) ${DEPS_DIR}/native/bin/x86_64-apple-darwin14-strip src/lbrycrdd src/lbrycrd-cli src/lbrycrd-tx if which ccache >/dev/null; then diff --git a/packaging/build_linux_64bit.sh b/packaging/build_linux_64bit.sh index 5aac6a2b5..834ed6944 100755 --- a/packaging/build_linux_64bit.sh +++ b/packaging/build_linux_64bit.sh @@ -20,13 +20,13 @@ export CXXFLAGS="${CXXFLAGS:--frecord-gcc-switches}" echo "CXXFLAGS set to $CXXFLAGS" cd depends -make -j`getconf _NPROCESSORS_ONLN` HOST=x86_64-pc-linux-gnu NO_QT=1 V=1 +make -j$(getconf _NPROCESSORS_ONLN) HOST=x86_64-pc-linux-gnu NO_QT=1 V=1 cd .. ./autogen.sh -DEPS_DIR=`pwd`/depends/x86_64-pc-linux-gnu +DEPS_DIR=$(pwd)/depends/x86_64-pc-linux-gnu CONFIG_SITE=${DEPS_DIR}/share/config.site ./configure --enable-static --disable-shared --with-pic --without-gui -make -j`getconf _NPROCESSORS_ONLN` +make -j$(getconf _NPROCESSORS_ONLN) strip src/lbrycrdd src/lbrycrd-cli src/lbrycrd-tx if which ccache >/dev/null; then @@ -34,4 +34,4 @@ if which ccache >/dev/null; then ccache -s fi -echo "Linux 64bit build is complete" \ No newline at end of file +echo "Linux 64bit build is complete" diff --git a/packaging/build_windows_32bit.sh b/packaging/build_windows_32bit.sh index 8d9bcfbf9..31aae4d74 100755 --- a/packaging/build_windows_32bit.sh +++ b/packaging/build_windows_32bit.sh @@ -21,13 +21,13 @@ if which ccache >/dev/null; then fi pushd depends -make -j`getconf _NPROCESSORS_ONLN` HOST=i686-w64-mingw32 NO_QT=1 V=1 +make -j$(getconf _NPROCESSORS_ONLN) HOST=i686-w64-mingw32 NO_QT=1 V=1 popd ./autogen.sh -DEPS_DIR=`pwd`/depends/i686-w64-mingw32 +DEPS_DIR=$(pwd)/depends/i686-w64-mingw32 CONFIG_SITE=${DEPS_DIR}/share/config.site ./configure --prefix=/ --without-gui --with-icu="$DEPS_DIR" --enable-static --disable-shared -make -j`getconf _NPROCESSORS_ONLN` +make -j$(getconf _NPROCESSORS_ONLN) i686-w64-mingw32-strip src/lbrycrdd.exe src/lbrycrd-cli.exe src/lbrycrd-tx.exe if which ccache >/dev/null; then diff --git a/packaging/build_windows_64bit.sh b/packaging/build_windows_64bit.sh index 121f4f206..d9372dbf1 100755 --- a/packaging/build_windows_64bit.sh +++ b/packaging/build_windows_64bit.sh @@ -20,13 +20,13 @@ if which ccache >/dev/null; then fi pushd depends -make -j`getconf _NPROCESSORS_ONLN` HOST=x86_64-w64-mingw32 NO_QT=1 V=1 +make -j$(getconf _NPROCESSORS_ONLN) HOST=x86_64-w64-mingw32 NO_QT=1 V=1 popd ./autogen.sh -DEPS_DIR=`pwd`/depends/x86_64-w64-mingw32 +DEPS_DIR=$(pwd)/depends/x86_64-w64-mingw32 CONFIG_SITE=${DEPS_DIR}/share/config.site ./configure --prefix=/ --without-gui --with-icu="$DEPS_DIR" --enable-static --disable-shared -make -j`getconf _NPROCESSORS_ONLN` +make -j$(getconf _NPROCESSORS_ONLN) x86_64-w64-mingw32-strip src/lbrycrdd.exe src/lbrycrd-cli.exe src/lbrycrd-tx.exe if which ccache >/dev/null; then diff --git a/src/univalue/autogen.sh b/src/univalue/autogen.sh index 4b38721fa..b35c6d726 100755 --- a/src/univalue/autogen.sh +++ b/src/univalue/autogen.sh @@ -2,7 +2,7 @@ set -e srcdir="$(dirname $0)" cd "$srcdir" -if [ -z ${LIBTOOLIZE} ] && GLIBTOOLIZE="`which glibtoolize 2>/dev/null`"; then +if [ -z ${LIBTOOLIZE} ] && GLIBTOOLIZE="$(which glibtoolize 2>/dev/null)"; then LIBTOOLIZE="${GLIBTOOLIZE}" export LIBTOOLIZE fi diff --git a/test/lint/commit-script-check.sh b/test/lint/commit-script-check.sh index f1327469f..2b70f9f9c 100755 --- a/test/lint/commit-script-check.sh +++ b/test/lint/commit-script-check.sh @@ -18,12 +18,12 @@ if test "x$1" = "x"; then fi RET=0 -PREV_BRANCH=`git name-rev --name-only HEAD` -PREV_HEAD=`git rev-parse HEAD` -for i in `git rev-list --reverse $1`; do +PREV_BRANCH=$(git name-rev --name-only HEAD) +PREV_HEAD=$(git rev-parse HEAD) +for i in $(git rev-list --reverse $1); do if git rev-list -n 1 --pretty="%s" $i | grep -q "^scripted-diff:"; then git checkout --quiet $i^ || exit - SCRIPT="`git rev-list --format=%b -n1 $i | sed '/^-BEGIN VERIFY SCRIPT-$/,/^-END VERIFY SCRIPT-$/{//!b};d'`" + SCRIPT="$(git rev-list --format=%b -n1 $i | sed '/^-BEGIN VERIFY SCRIPT-$/,/^-END VERIFY SCRIPT-$/{//!b};d')" if test "x$SCRIPT" = "x"; then echo "Error: missing script for: $i" echo "Failed"