Parse Bitcoin Ledger To Elasticsearch

老碼農不上班
1 min readAug 14, 2018

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

Install

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

Usage

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: "127.0.0.1"
btc_port: "8791"
btc_usr: "usertest"
btc_pass: "passtest"
btc_http_mode: true
btc_disable_tls: true
elastic_url: "http://127.0.0.1:9200"
elastic_sniff: false

Start the service:

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

Links

--

--