An alternative full node implementation of LBRY's blockchain written in Go (golang)
Go to file
2021-08-30 09:09:48 -04:00
.github/workflows fixing tmp folder cleanup 2021-08-30 09:09:48 -04:00
addrmgr [lbry] FIXME: remove the tests for now to pass CI. 2021-08-19 14:19:21 -04:00
blockchain fixed bug with block rollback; re-orgs should work now 2021-08-27 10:54:26 -04:00
btcec docs: update shields 2021-03-05 07:45:19 -05:00
btcjson [lbry] rpc: output segwit rule 2021-08-19 14:19:21 -04:00
chaincfg [lbry] FIXME: remove the tests for now to pass CI. 2021-08-19 14:19:21 -04:00
claimtrie fix worker count 2021-08-27 13:04:37 -04:00
cmd set release version 2021-08-27 13:04:46 -04:00
connmgr docs: update shields 2021-03-05 07:45:19 -05:00
database [lbry] FIXME: remove the tests for now to pass CI. 2021-08-19 14:19:21 -04:00
docs [lbry] misc: change RPC port from 8334 to 9245 2021-08-19 14:19:20 -04:00
integration [lbry] FIXME: remove the tests for now to pass CI. 2021-08-19 14:19:21 -04:00
limits Relicense to the btcsuite developers. 2015-05-01 12:00:56 -05:00
mempool [lbry] FIXME: remove the tests for now to pass CI. 2021-08-19 14:19:21 -04:00
mining [lbry] mining: fix generatetoaddress 2021-08-19 16:39:53 -04:00
netsync [lbry] enable segwit 2021-08-19 14:19:21 -04:00
peer [lbry] enable segwit 2021-08-19 14:19:21 -04:00
release [lbry] misc: rename btcd to lbcd 2021-08-19 14:17:22 -04:00
rpcclient [lbry] rpc: update defaultMaxFeeRate from 0.1 LBC to 0.5 LBC 2021-08-19 14:19:21 -04:00
txscript [lbry] remove claim prefix for addr calculation 2021-08-19 14:19:21 -04:00
wire [lbry] FIXME: remove the tests for now to pass CI. 2021-08-19 14:19:21 -04:00
.gitignore gitignore: ignore IDE stuff 2021-08-19 13:41:04 -04:00
btcd.go [lbry]: btcd: cleanup claim databases for regression test 2021-08-20 12:25:52 -04:00
CHANGES Update release date for v0.22.0-beta in CHANGES file 2021-06-01 13:16:51 -04:00
config.go [lbry] switched upnp param to its opposite 2021-08-19 14:19:21 -04:00
config_test.go [lbry] misc: rename btcd to lbcd 2021-08-19 14:17:22 -04:00
doc.go [lbry] config: support 'clmtimpl' and 'clmtheight' flags 2021-08-19 14:19:21 -04:00
Dockerfile [lbry] misc: rename btcd to lbcd 2021-08-19 14:17:22 -04:00
go.mod [lbry] go module: update gopsutil to v3.21.7 2021-08-23 21:24:37 -07:00
go.sum [lbry] go module: update gopsutil to v3.21.7 2021-08-23 21:24:37 -07:00
goclean.sh fixed bug with block rollback; re-orgs should work now 2021-08-27 10:54:26 -04:00
LICENSE updated main README 2021-08-27 15:46:13 -04:00
log.go [lbry] log: support claimtrie entries 2021-08-19 14:19:21 -04:00
params.go [lbry] misc: change RPC port from 8334 to 9245 2021-08-19 14:19:20 -04:00
README.md updated main README 2021-08-27 15:46:13 -04:00
resourceLogging.go [lbry] print out memory usage periodically 2021-08-19 14:19:21 -04:00
rpcadapters.go rpc: Add getnodeaddresses JSON-RPC support 2020-09-14 09:36:05 -04:00
rpcclaimtrie.go replaced x/text/cases with our own impl. 2021-08-19 17:51:07 -04:00
rpcserver.go [lbry] mining: fix generatetoaddress 2021-08-19 16:39:53 -04:00
rpcserverhelp.go [lbry] misc: rename btcd to lbcd 2021-08-19 14:17:22 -04:00
rpcwebsocket.go Add Batch JSON-RPC support (rpc client & server) 2021-02-09 09:47:46 -05:00
sample-lbcd.conf [lbry] misc: change RPC port from 8334 to 9245 2021-08-19 14:19:20 -04:00
server.go Disable UPnP on regtest and simnet 2021-08-23 12:43:16 -04:00
service_windows.go config+service_windows: add flag to disable win service 2020-07-22 12:57:09 +02:00
signal.go btcd: Simplify shutdown signal handling logic. (#733) 2016-08-11 13:39:23 -05:00
signalsigterm.go btcd: Simplify shutdown signal handling logic. (#733) 2016-08-11 13:39:23 -05:00
upgrade.go [lbry] misc: rename btcd to lbcd 2021-08-19 14:17:22 -04:00
upnp.go [lbry] brought in upnp fix from dcrd 2021-08-19 14:19:21 -04:00
version.go set release version 2021-08-27 13:04:46 -04:00

lbcd

Build Status Coverage Status ISC License

lbcd is a full node implementation of LBRY's blockchain written in Go (golang).

This project is currently under active development and is in a Beta state while we ensure it matches LBRYcrd's functionality. The intention is that it properly downloads, validates, and serves the block chain using the exact rules (including consensus bugs) for block acceptance as LBRYcrd. We have taken great care to avoid lbcd causing a fork to the blockchain.

Note: lbcd does NOT include wallet functionality. That functionality is provided by the lbcwallet and the LBRY SDK.

Security

We take security seriously. Please contact security regarding any security issues. Our PGP key is here if you need it.

We maintain a mailing list for notifications of upgrades, security issues, and soft/hard forks. To join, visit https://lbry.com/forklist

Requirements

All common operating systems are supported. lbcd requires at least 8GB of RAM and at least 100GB of disk storage. Both RAM and disk requirements increase slowly over time. Using a fast NVMe disk is recommended.

lbcd is not immune to data loss. It expects a clean shutdown via SIGINT or SIGTERM. SIGKILL, immediate VM kills, and sudden power loss can cause data corruption, thus requiring chain resynchronization for recovery.

For compilation, Go 1.16 or newer is required.

Installation

Acquire binary files from https://github.com/lbryio/lbcd/releases

To build from Source on Linux/BSD/MacOSX/POSIX:

  • Install Go according to its installation instructions.
  • Use your favorite git tool to acquire the lbcd source.
  • lbcd has no non-Go dependencies; it can be built by simply running go build .
  • lbcctl can be built similarly:

Both GoLand and VS Code IDEs are supported.

Usage

By default, data and logs are stored in ~/.lbcd/

To enable RPC access a username and password is required. Example:

./lbcd --notls --rpcuser=x --rpcpass=y --txindex &
./lbcctl --notls --rpcuser=x --rpcpass=y getblocktemplate

Contributing

Contributions to this project are welcome, encouraged, and compensated. The integrated github issue tracker is used for this project. All pull requests will be considered.

License

lbcd is licensed under the copyfree ISC License.