Dump Bitcoin Mainnet ledger to elasticsearch. constructed specify format so we can query balance and utxo, the main propose of the repo is for wallet or block explorer


Environment require:

  • Golang (compile)
  • Dep (package dependency)
  • Elasticsearch (database)

Before clone the repo, I wanna let claim that there is a bug I have verified the btcd, an alternative full node bitcoin implementation written in Go. See the detail: [RPC] getblock command has been changed, and I have given a solution how to fixed the problem

go get -u github.com/wenweih/btc-chaindata-2es
cd $GOPATH/src/github.com/wenweih/btc-chaindata-2es
dep ensure -v -update

After dep ensure -v -update to load the repo dependency, you should modify btcd package in vendor fold flowing by 修复开源项目 btcd RPC 实现比特币获取区块的问题.

cross compile, such as for my Ubuntu Server:

GOARCH=amd64 GOOS=linux go build


Because of btc-chaindata-2es service interacts with bitcoind by RPC and Elasticsearch by HTTP protocol, to avoid network request delay, I hightly recommend you run the three services (btc-chaindata-2ex, bitcoind and elasticsearch) in the same server.

Copy configure to ~/ directory

cat ~/btc-chaindata-2es.yml
btc_host: ""
btc_port: "8791"
btc_usr: "usertest"
btc_pass: "passtest"
btc_http_mode: true
btc_disable_tls: true
elastic_url: ""
elastic_sniff: false

Start the service:

nohup ~/btc-chaindata-2es sync > /tmp/btc-chaindata-2es.log 2>&1 &