An alternative full node implementation of LBRY's blockchain written in Go (golang)
This commit significantly reworks the fetching code to interop better with bitcoind. In particular, when an inventory message is sent, and the remote peer requests the final block, the remote peer sends the current end of the main chain to signal that there are more blocks to get. Previously this code was automatically requesting more blocks when the number of in-flight blocks was under a certain threshold. The original approach does help alleviate delays in the "request final, wait for orphan, request more" round trip, but due to the aforementioned mechanism, it leads to double requests and other subtle issues. |
||
---|---|---|
.gitignore | ||
addrmanager.go | ||
addrmanager_test.go | ||
blockmanager.go | ||
btcd.go | ||
config.go | ||
discovery.go | ||
LICENSE | ||
logclosure.go | ||
params.go | ||
peer.go | ||
README.md | ||
rpcserver.go | ||
sample-btcd.conf | ||
server.go | ||
signal.go | ||
version.go |
btcd
btcd is an alternative full node bitcoin implementation written in Go (golang).
This project is currently under active development and is not production ready yet.
TODO
The following is a list of major items remaining before production release:
- Implement multi-peer support
- Implement relay
- Complete address manager
- Rework the block syncing code to work with headers
- Documentation
- A lot of code cleanup
- Optimize