Docs: Updated README.md files with TOC and best practices in Mar… (#339)
* Added table of contents to README.md * Restructured headings and contents to follow Markdown best Practices
This commit is contained in:
parent
8010681915
commit
4a3c2e6504
1 changed files with 57 additions and 17 deletions
74
README.md
74
README.md
|
@ -5,11 +5,31 @@
|
||||||
|
|
||||||
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).
|
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.
|
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.
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
1. [Installation](#installation)
|
||||||
|
2. [Usage](#usage)
|
||||||
|
1. [Examples](#examples)
|
||||||
|
2. [Data directory](#data-directory)
|
||||||
|
3. [Running from Source](#running-from-source)
|
||||||
|
1. [Ubuntu with pulled static dependencies](#ubuntu-with-pulled-static-dependencies)
|
||||||
|
2. [Ubuntu with local shared dependencies](#ubuntu-with-local-shared-dependencies)
|
||||||
|
3. [MacOS (cross-compiled)](<#macos-(cross-compiled)>)
|
||||||
|
4. [MacOS with local shared dependencies](#macos-with-local-shared-dependencies)
|
||||||
|
5. [Windows (cross-compiled)](<#windows-(cross-compiled)>)
|
||||||
|
6. [Use with CLion](#use-with-clion)
|
||||||
|
4. [Contributing](#contributing)
|
||||||
|
- [Testnet](#testnet)
|
||||||
|
5. [Mailing List](#mailing-list)
|
||||||
|
6. [License](#license)
|
||||||
|
7. [Security](#security)
|
||||||
|
8. [Contact](#contact)
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Latest binaries are available from https://github.com/lbryio/lbrycrd/releases. There is no installation procedure; the CLI binaries will run as-is and will have any uncommon dependencies statically linked into the binary. The QT GUI is not supported. LBRYcrd is distributed as a collection of executable files; traditional installers are not provided.
|
Latest binaries are available from https://github.com/lbryio/lbrycrd/releases. There is no installation procedure; the CLI binaries will run as-is and will have any uncommon dependencies statically linked into the binary. The QT GUI is not supported. LBRYcrd is distributed as a collection of executable files; traditional installers are not provided.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
@ -17,7 +37,7 @@ The `lbrycrdd` executable will start a LBRYcrd node and connect you to the LBRYc
|
||||||
to interact with lbrycrdd through the command line. Command-line help for both executables are available through
|
to interact with lbrycrdd through the command line. Command-line help for both executables are available through
|
||||||
the "--help" flag (e.g. `lbrycrdd --help`). Examples:
|
the "--help" flag (e.g. `lbrycrdd --help`). Examples:
|
||||||
|
|
||||||
#### Examples:
|
#### Examples
|
||||||
|
|
||||||
Run `./lbrycrdd -server -daemon` to start lbrycrdd in the background.
|
Run `./lbrycrdd -server -daemon` to start lbrycrdd in the background.
|
||||||
|
|
||||||
|
@ -26,6 +46,7 @@ Run `./lbrycrd-cli -getinfo` to check for some basic information about your LBRY
|
||||||
Run `./lbrycrd-cli help` to get a list of all commands that you can run. To get help on specific commands run `./lbrycrd-cli [command_name] help`
|
Run `./lbrycrd-cli help` to get a list of all commands that you can run. To get help on specific commands run `./lbrycrd-cli [command_name] help`
|
||||||
|
|
||||||
Test locally:
|
Test locally:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
./lbrycrdd -server -regtest -txindex # run this in its own window
|
./lbrycrdd -server -regtest -txindex # run this in its own window
|
||||||
./lbrycrd-cli -regtest generate 120 # mine 20 spendable coins
|
./lbrycrd-cli -regtest generate 120 # mine 20 spendable coins
|
||||||
|
@ -36,11 +57,12 @@ Test locally:
|
||||||
./lbrycrd-cli -regtest stop # kill lbrycrdd
|
./lbrycrd-cli -regtest stop # kill lbrycrdd
|
||||||
rm -fr ~/.lbrycrd/regtest/ # destroy regtest data
|
rm -fr ~/.lbrycrd/regtest/ # destroy regtest data
|
||||||
```
|
```
|
||||||
|
|
||||||
For further understanding of a "regtest" setup, see the local stack setup instructions here: https://lbry.tech/resources/regtest-setup
|
For further understanding of a "regtest" setup, see the local stack setup instructions here: https://lbry.tech/resources/regtest-setup
|
||||||
|
|
||||||
The CLI help is also browsable online at https://lbry.tech/api/blockchain
|
The CLI help is also browsable online at https://lbry.tech/api/blockchain
|
||||||
|
|
||||||
#### Data directory:
|
#### Data directory
|
||||||
|
|
||||||
Lbrycrdd will use the below default data directories (changeable with -datadir):
|
Lbrycrdd will use the below default data directories (changeable with -datadir):
|
||||||
|
|
||||||
|
@ -49,6 +71,7 @@ Windows: %APPDATA%\lbrycrd
|
||||||
Mac: ~/Library/Application Support/lbrycrd
|
Mac: ~/Library/Application Support/lbrycrd
|
||||||
Unix: ~/.lbrycrd
|
Unix: ~/.lbrycrd
|
||||||
```
|
```
|
||||||
|
|
||||||
The data directory contains various things such as your default wallet (wallet.dat), debug logs (debug.log), and blockchain data. You can optionally create a configuration file lbrycrd.conf in the default data directory which will be used by default when running lbrycrdd.
|
The data directory contains various things such as your default wallet (wallet.dat), debug logs (debug.log), and blockchain data. You can optionally create a configuration file lbrycrd.conf in the default data directory which will be used by default when running lbrycrdd.
|
||||||
|
|
||||||
For a list of configuration parameters, run `./lbrycrdd --help`. Below is a sample lbrycrd.conf to enable JSON RPC server on lbrycrdd.
|
For a list of configuration parameters, run `./lbrycrdd --help`. Below is a sample lbrycrd.conf to enable JSON RPC server on lbrycrdd.
|
||||||
|
@ -62,14 +85,18 @@ txindex=1
|
||||||
```
|
```
|
||||||
|
|
||||||
## Running from Source
|
## 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. In 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
|
```sh
|
||||||
git clone https://github.com/lbryio/lbrycrd.git
|
git clone https://github.com/lbryio/lbrycrd.git
|
||||||
cd lbrycrd
|
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
|
docker run -v "$(pwd):/lbrycrd" --rm -v "${HOME}/ccache:/ccache" -w /lbrycrd -e CCACHE_DIR=/ccache lbry/build_lbrycrd packaging/build_linux_64bit.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Some examples of compiling directly:
|
Some examples of compiling directly:
|
||||||
#### Ubuntu with pulled static dependencies:
|
|
||||||
|
#### Ubuntu with pulled static dependencies
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
sudo apt install build-essential git libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates
|
sudo apt install build-essential git libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates
|
||||||
git clone https://github.com/lbryio/lbrycrd.git
|
git clone https://github.com/lbryio/lbrycrd.git
|
||||||
|
@ -78,16 +105,20 @@ cd lbrycrd
|
||||||
./src/test/test_lbrycrd
|
./src/test/test_lbrycrd
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Other Linux distros would be similar. The build shell script is fairly trivial; take a peek at its contents.
|
Other Linux distros would be similar. The build shell script is fairly trivial; take a peek at its contents.
|
||||||
#### Ubuntu with local shared dependencies:
|
|
||||||
|
#### Ubuntu with local shared dependencies
|
||||||
|
|
||||||
Note: using untested dependencies may lead to conflicting results.
|
Note: using untested dependencies may lead to conflicting results.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
sudo add-apt-repository ppa:bitcoin/bitcoin
|
sudo add-apt-repository ppa:bitcoin/bitcoin
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install libdb4.8-dev libdb4.8++-dev libicu-dev libssl-dev libevent-dev \
|
sudo apt-get install libdb4.8-dev libdb4.8++-dev libicu-dev libssl-dev libevent-dev \
|
||||||
build-essential git libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates \
|
build-essential 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
|
libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev
|
||||||
|
|
||||||
# optionally include libminiupnpc-dev libzmq3-dev
|
# optionally include libminiupnpc-dev libzmq3-dev
|
||||||
|
|
||||||
git clone https://github.com/lbryio/lbrycrd.git
|
git clone https://github.com/lbryio/lbrycrd.git
|
||||||
|
@ -98,11 +129,13 @@ make -j$(nproc)
|
||||||
./src/lbrycrdd -server ...
|
./src/lbrycrdd -server ...
|
||||||
|
|
||||||
```
|
```
|
||||||
#### MacOS (cross-compiled):
|
|
||||||
|
#### MacOS (cross-compiled)
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
sudo apt-get install clang llvm git libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates \
|
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
|
libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev
|
||||||
|
|
||||||
git clone https://github.com/lbryio/lbrycrd.git
|
git clone https://github.com/lbryio/lbrycrd.git
|
||||||
cd lbrycrd
|
cd lbrycrd
|
||||||
# download MacOS SDK from your favorite source
|
# download MacOS SDK from your favorite source
|
||||||
|
@ -111,8 +144,11 @@ tar ... extract SDK to depends/SDKs/MacOSX10.11.sdk
|
||||||
./packaging/build_darwin_64bit.sh
|
./packaging/build_darwin_64bit.sh
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Look in packaging/build_darwin_64bit.sh for further understanding.
|
Look in packaging/build_darwin_64bit.sh for further understanding.
|
||||||
#### MacOS with local shared dependencies:
|
|
||||||
|
#### MacOS with local shared dependencies
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
brew install boost berkeley-db@4 icu4c libevent
|
brew install boost berkeley-db@4 icu4c libevent
|
||||||
# fix conflict with gawk pulled first:
|
# fix conflict with gawk pulled first:
|
||||||
|
@ -128,14 +164,17 @@ CONFIG_SITE=$(pwd)/depends/x86_64-apple-darwin15.6.0/share/config.site ./configu
|
||||||
make -j$(sysctl -n hw.ncpu)
|
make -j$(sysctl -n hw.ncpu)
|
||||||
|
|
||||||
```
|
```
|
||||||
#### Windows (cross-compiled):
|
|
||||||
|
#### Windows (cross-compiled)
|
||||||
|
|
||||||
Compiling on MS Windows (outside of WSL) is not supported. The Windows build is cross-compiled from Linux like so:
|
Compiling on MS Windows (outside of WSL) is not supported. The Windows build is cross-compiled from Linux like so:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
sudo apt-get install build-essential git libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates \
|
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
|
g++-mingw-w64-x86-64 mingw-w64-x86-64-dev
|
||||||
|
|
||||||
update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
|
update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
|
||||||
|
|
||||||
git clone https://github.com/lbryio/lbrycrd.git
|
git clone https://github.com/lbryio/lbrycrd.git
|
||||||
cd lbrycrd
|
cd lbrycrd
|
||||||
./packaging/build_windows_64bit.sh
|
./packaging/build_windows_64bit.sh
|
||||||
|
@ -144,13 +183,16 @@ cd lbrycrd
|
||||||
|
|
||||||
If you encounter any errors, please check `doc/build-*.md` for further instructions. If you're still stuck, [create an issue](https://github.com/lbryio/lbrycrd/issues/new) with the output of that command, your system info, and any other information you think might be helpful. The scripts in the packaging folder are simple and will grant extra light on the build process as needed.
|
If you encounter any errors, please check `doc/build-*.md` for further instructions. If you're still stuck, [create an issue](https://github.com/lbryio/lbrycrd/issues/new) with the output of that command, your system info, and any other information you think might be helpful. The scripts in the packaging folder are simple and will grant extra light on the build process as needed.
|
||||||
|
|
||||||
#### Use with CLion:
|
#### Use with CLion
|
||||||
|
|
||||||
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:
|
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
|
```sh
|
||||||
pip install --user compiledb
|
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
|
./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
|
compiledb make -j10
|
||||||
```
|
```
|
||||||
|
|
||||||
Then open the newly generated compile_commands.json file as a project in CLion. Debugging is supported if you compiled with `-g`. To enable that you will need to create a target in CLion by going to File -> Settings -> Build -> Custom Build Targets. Add an empty target with your choice of name. From there you can go to "Edit Configurations", typically found in a drop-down at the top of the editor. Add a Custom Build Application, select your new target, select the compiled file (i.e. test_lbrycrd or lbrycrdd, etc), and then add any necessary command line parameters. Ensure that there is nothing in the "Before launch" section.
|
Then open the newly generated compile_commands.json file as a project in CLion. Debugging is supported if you compiled with `-g`. To enable that you will need to create a target in CLion by going to File -> Settings -> Build -> Custom Build Targets. Add an empty target with your choice of name. From there you can go to "Edit Configurations", typically found in a drop-down at the top of the editor. Add a Custom Build Application, select your new target, select the compiled file (i.e. test_lbrycrd or lbrycrdd, etc), and then add any necessary command line parameters. Ensure that there is nothing in the "Before launch" section.
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
@ -195,5 +237,3 @@ Our PGP key is [here](https://keybase.io/lbry/key.asc) if you need it.
|
||||||
## Contact
|
## Contact
|
||||||
|
|
||||||
The primary contact for this project is [@BrannonKing](https://github.com/BrannonKing) (brannon@lbry.com)
|
The primary contact for this project is [@BrannonKing](https://github.com/BrannonKing) (brannon@lbry.com)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue