Fork of Trezor Blockbook.
 
 
 
 
 
 
Go to file
Martin Boehm 13dfa46edc Add QR code to address view in explorer 2018-09-13 23:52:39 +02:00
api Add paging to explorer 2018-09-05 15:13:45 +02:00
bchain Fix OP_RETURN parser unit tests 2018-09-11 16:22:28 +02:00
build Added 5min timeout to wait for service to stop 2018-09-06 11:45:13 +02:00
common Implement bulk connect blocks 2018-08-19 00:23:26 +02:00
configs Bump blockbook version to 0.1.0 2018-09-13 12:22:33 +02:00
contrib/scripts Unite scripts for port checking and registry of ports to one 2018-09-03 13:25:50 +02:00
db Merge branch 'master' into v0.0.7 2018-09-11 13:44:36 +02:00
docs Unite scripts for port checking and registry of ports to one 2018-09-03 13:25:50 +02:00
server Add search for tx/address to explorer 2018-09-13 14:25:24 +02:00
static Add QR code to address view in explorer 2018-09-13 23:52:39 +02:00
.gitignore Ignore generated identifiers of docker images in git 2018-07-31 15:44:43 +02:00
CONTRIBUTING.md Unite scripts for port checking and registry of ports to one 2018-09-03 13:25:50 +02:00
COPYING Add license file 2018-05-31 12:53:27 +02:00
Gopkg.lock Merge branch 'master' into v0.0.7 2018-09-11 13:44:36 +02:00
Gopkg.toml Remove gorilla/handlers from Gopkg.toml 2018-06-29 14:18:40 +02:00
Makefile Fixed build in order to build packege by hand 2018-07-31 14:38:38 +02:00
README.md Added note about altcoin requirements 2018-08-29 16:07:02 +02:00
blockbook.go Merge branch 'master' into v0.0.7 2018-09-11 13:44:36 +02:00

README.md

Blockbook

Blockbook is currently in the state of heavy development, do not expect this documentation to be up to date

Build and installation instructions

Officially supported platform is Debian Linux and AMD64 architecture. Memory requirements for initial synchronization of Bitcoin mainnet are around 32 GB RAM and 100 GB of disk size. Fully synchronized instance takes around 10 GB RAM. Other coins should have lower requirements depending on size of their block chain. Note that fast SSD disks are highly recommended.

User installation guide is here.

Developer build guide is here.

Implemented coins

The most significant coins implemented by Blockbook are:

  • Bitcoin
  • Bitcoin Testnet
  • Bcash
  • Bcash Testnet
  • Bgold
  • ZCash
  • ZCash Testnet
  • Dash
  • Dash Testnet
  • Litecoin
  • Litecoin Testnet
  • Ethereum
  • Ethereum Testnet Ropsten

They are also supported by Trezor wallet. List of all coins is here.

Data storage in RocksDB

Blockbook stores data the key-value store RocksDB. Database format is described here.

Registry of ports

Reserved ports are described here

Todo

  • add db data version (column data version) checking to db to avoid data corruption
  • improve txcache (time of storage, number/size of cached txs, purge cache)
  • create/integrate blockchain explorer
  • support all coins from https://github.com/trezor/trezor-common/tree/master/defs/coins
  • full ethereum support (tokens, balance)
  • protobuf websocket interface instead of socket.io
  • xpub index
  • tests
  • fix program dependencies to concrete versions
  • protect socket.io interface against illicit usage
  • update documentation
  • collect blockbook db stats (number of items in indexes, etc)
  • optimize mempool (use non verbose get transaction, possibly parallelize)
  • update used paths and users according to specification by system admin
  • cleanup of the socket.io - do not send unnecessary data
  • handle different versions of Bitcoin Core
  • log live traffic from production bitcore server and replay it in blockbook
  • find memory leak in initial import - disappeared with index v2
  • zcash support
  • basic ethereum support
  • disconnect blocks - use block data if available to avoid full scan
  • compute statistics of data, txcache, usage, etc.
  • disconnect blocks - remove disconnected cached transactions
  • implement getmempoolentry
  • support altcoins, abstraction of blockchain server/service
  • cache transactions in RocksDB
  • parallel sync - rewrite - it is not possible to gracefully stop it now, can leave holes in the block
  • mempool - return also input transactions
  • blockchain - return inputs from mempool
  • do not return duplicate txids
  • legacy socket.io JSON interface
  • disconnect blocks - optimize - full range scan is too slow and takes too much disk space (creates snapshot of the whole outputs), split to multiple iterators
  • parallel sync - let rocksdb to compact itself from time to time, otherwise it consumes too much disk space