|Jan Hrnko e2b34afb9c bch (+testnet): Bump backend 0.20.7 -> 0.20.8||3 days ago|
|api||2 months ago|
|bchain||3 weeks ago|
|build||3 weeks ago|
|common||10 months ago|
|configs||3 days ago|
|contrib/scripts||6 months ago|
|db||2 months ago|
|docs||3 weeks ago|
|server||3 weeks ago|
|static||4 months ago|
|tests||3 weeks ago|
|.gitignore||8 months ago|
|.gitlab-ci.yml||3 months ago|
|CONTRIBUTING.md||10 months ago|
|COPYING||1 year ago|
|Gopkg.lock||1 month ago|
|Gopkg.toml||11 months ago|
|Makefile||1 year ago|
|README.md||6 months ago|
|blockbook.go||6 months ago|
Blockbook is back-end service for Trezor wallet. Main features of Blockbook are:
Officially supported platform is Debian Linux and AMD64 architecture.
Memory and disk requirements for initial synchronization of Bitcoin mainnet are around 32 GB RAM and over 180 GB of disk space. After initial synchronization, fully synchronized instance uses about 10 GB RAM. Other coins should have lower requirements, depending on the size of their block chain. Note that fast SSD disks are highly recommended.
User installation guide is here.
Developer build guide is here.
Contribution guide is here.
Blockbook currently supports over 30 coins. The Trezor team implemented
the rest of coins were implemented by the community.
Testnets for some coins are also supported, for example:
List of all implemented coins is in the registry of ports.
How to reduce memory footprint of the initial sync:
-dbcache=0, the default size is 500MB
-workers=1. This disables bulk import mode, which caches a lot of data in memory (not in rocksdb cache). It will run about twice as slowly but especially for smaller blockchains it is no problem at all.
Please add your experience to this issue.
internalState: database is in inconsistent state and cannot be used
Blockbook was killed during the initial import, most commonly by OOM killer. By default, Blockbook performs the initial import in bulk import mode, which for performance reasons does not store all the data immediately to the database. If Blockbook is killed during this phase, the database is left in an inconsistent state.
See above how to reduce the memory footprint, delete the database files and run the import again.
Your coin’s block/transaction data may not be compatible with
ParseTx, which is used by default. In that case, implement your coin in a similar way we used in case of zcash and some other coins. The principle is not to parse the block/transaction data in Blockbook but instead to get parsed transactions as json from the backend.
Blockbook stores data the key-value store RocksDB. Database format is described here.
Blockbook API is described here.