From 5588af7d5b30d59643958ed970eef0797d3ed153 Mon Sep 17 00:00:00 2001 From: Brannon King Date: Fri, 27 Aug 2021 15:46:13 -0400 Subject: [PATCH] updated main README --- LICENSE | 1 + README.md | 141 +++++++++++++++++++----------------------------------- 2 files changed, 51 insertions(+), 91 deletions(-) diff --git a/LICENSE b/LICENSE index 53ba0c56..fa218625 100644 --- a/LICENSE +++ b/LICENSE @@ -1,5 +1,6 @@ ISC License +Copyright (c) 2021 The LBRY developers Copyright (c) 2013-2017 The btcsuite developers Copyright (c) 2015-2016 The Decred developers diff --git a/README.md b/README.md index 957369a2..4fec122c 100644 --- a/README.md +++ b/README.md @@ -1,121 +1,80 @@ -btcd +lbcd ==== -[![Build Status](https://github.com/btcsuite/btcd/workflows/Build%20and%20Test/badge.svg)](https://github.com/btcsuite/btcd/actions) -[![Coverage Status](https://coveralls.io/repos/github/btcsuite/btcd/badge.svg?branch=master)](https://coveralls.io/github/btcsuite/btcd?branch=master) +[![Build Status](https://github.com/lbryio/lbcd/workflows/Build%20and%20Test/badge.svg)](https://github.com/lbryio/lbcd/actions) +[![Coverage Status](https://coveralls.io/repos/github/lbryio/lbcd/badge.svg?branch=master)](https://coveralls.io/github/lbryio/lbcd?branch=master) [![ISC License](https://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) -[![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](https://pkg.go.dev/github.com/btcsuite/btcd) + -btcd is an alternative full node bitcoin implementation written in Go (golang). +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. It -is extremely stable and has been in production use since October 2013. +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. -It properly downloads, validates, and serves the block chain using the exact -rules (including consensus bugs) for block acceptance as Bitcoin Core. We have -taken great care to avoid btcd causing a fork to the block chain. It includes a -full block validation testing framework which contains all of the 'official' -block acceptance tests (and some additional ones) that is run on every pull -request to help ensure it properly follows consensus. Also, it passes all of -the JSON test data in the Bitcoin Core code. +Note: lbcd does *NOT* include +wallet functionality. That functionality is provided by the +[lbcwallet](https://github.com/lbryio/lbcwallet) and the [LBRY SDK](https://github.com/lbryio/lbry-sdk). -It also properly relays newly mined blocks, maintains a transaction pool, and -relays individual transactions that have not yet made it into a block. It -ensures all individual transactions admitted to the pool follow the rules -required by the block chain and also includes more strict checks which filter -transactions based on miner requirements ("standard" transactions). +## Security -One key difference between btcd and Bitcoin Core is that btcd does *NOT* include -wallet functionality and this was a very intentional design decision. See the -blog entry [here](https://web.archive.org/web/20171125143919/https://blog.conformal.com/btcd-not-your-moms-bitcoin-daemon) -for more details. This means you can't actually make or receive payments -directly with btcd. That functionality is provided by the -[btcwallet](https://github.com/btcsuite/btcwallet) and -[Paymetheus](https://github.com/btcsuite/Paymetheus) (Windows-only) projects -which are both under active development. +We take security seriously. Please contact [security](mailto:security@lbry.com) regarding any security issues. +Our PGP key is [here](https://lbry.com/faq/pgp-key) 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 -[Go](http://golang.org) 1.14 or newer. +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](http://golang.org) 1.16 or newer is required. ## Installation -https://github.com/btcsuite/btcd/releases +Acquire binary files from https://github.com/lbryio/lbcd/releases -#### Linux/BSD/MacOSX/POSIX - Build from Source +#### To build from Source on Linux/BSD/MacOSX/POSIX: -- Install Go according to the installation instructions here: - http://golang.org/doc/install +- Install Go according to its [installation instructions](http://golang.org/doc/install). +- 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: -- Ensure Go was installed properly and is a supported version: +Both [GoLand](https://www.jetbrains.com/go/) +and [VS Code](https://code.visualstudio.com/docs/languages/go) IDEs are supported. -```bash -$ go version -$ go env GOROOT GOPATH +## Usage + +By default, data and logs are stored in `~/.lbcd/` + +To enable RPC access a username and password is required. Example: ``` - -NOTE: The `GOROOT` and `GOPATH` above must not be the same path. It is -recommended that `GOPATH` is set to a directory in your home directory such as -`~/goprojects` to avoid write permission issues. It is also recommended to add -`$GOPATH/bin` to your `PATH` at this point. - -- Run the following commands to obtain btcd, all dependencies, and install it: - -```bash -$ cd $GOPATH/src/github.com/btcsuite/btcd -$ GO111MODULE=on go install -v . ./cmd/... +./lbcd --notls --rpcuser=x --rpcpass=y --txindex & +./lbcctl --notls --rpcuser=x --rpcpass=y getblocktemplate ``` + -- btcd (and utilities) will now be installed in ```$GOPATH/bin```. If you did - not already add the bin directory to your system path during Go installation, - we recommend you do so now. +## Contributing -## Updating - -#### Linux/BSD/MacOSX/POSIX - Build from Source - -- Run the following commands to update btcd, all dependencies, and install it: - -```bash -$ cd $GOPATH/src/github.com/btcsuite/btcd -$ git pull -$ GO111MODULE=on go install -v . ./cmd/... -``` - -## Getting Started - -btcd has several configuration options available to tweak how it runs, but all -of the basic operations described in the intro section work with zero -configuration. - -#### Linux/BSD/POSIX/Source - -```bash -$ ./btcd -``` - -## IRC - -- irc.freenode.net -- channel #btcd -- [webchat](https://webchat.freenode.net/?channels=btcd) - -## Issue Tracker - -The [integrated github issue tracker](https://github.com/btcsuite/btcd/issues) -is used for this project. - -## Documentation - -The documentation is a work-in-progress. It is located in the [docs](https://github.com/btcsuite/btcd/tree/master/docs) folder. - -## Release Verification +Contributions to this project are welcome, encouraged, and compensated. +The [integrated github issue tracker](https://github.com/lbryio/lbcd/issues) +is used for this project. All pull requests will be considered. + ## License -btcd is licensed under the [copyfree](http://copyfree.org) ISC License. +lbcd is licensed under the [copyfree](http://copyfree.org) ISC License.