Skip to content
A Random Access Memory for Bitcoin Cash
Branch: master
Clone or download
Latest commit b3aa30d May 3, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.env.example add block height beginning to config Jan 4, 2019
.eslintrc.json added eslint Oct 10, 2018
.gitignore genesis Sep 22, 2018
README.md add pm2 name May 3, 2019
bit.js refactor, listen for raw transactions on zmq instead of hashes Feb 17, 2019
config.js Merge pull request #6 from blockparty-sh/upgrade_speed Feb 17, 2019
db.js fix misspelling Feb 17, 2019
index.js move from/version to config.js Jan 4, 2019
info.js minor fixes Jan 4, 2019
package-lock.json
package.json refactor, listen for raw transactions on zmq instead of hashes Feb 17, 2019

README.md

What is Bitd?

Bitd is a scraper for Bitcoin Cash that fetches transaction data from the blockchain and stores it in a MongoDB database. You need to install this to set up bitserve and run a bitdb node. As the software matures synchronization speed will get better, but for now expect a day or two from the default checkpoint block depending on your hardware.

Hardware Requirements

If you intend to run a full un-pruned bitdb node, it is recommended that your server have at the very minimum 4 gigabytes of ram or more available at all times, and that you have enough storage space to house the whole blockchain three times over. If this is not the case, you may look into changing the core_from enviorment variable to a more recent blockheight.

Installation

Prerequisite

First you need to do the following:

  1. Install Bitcoin ABC or equivilant node software on your server
  2. Install the latest versions of NPM and Nodejs on your server
  3. Install MongoDB on your server

Before sync, set up your bitcoin.conf file to meet the requirements set by bitd. On Ubuntu this can be found in $HOME/.bitcoin/bitcoin.conf

A sample configuration file can be found below:

# location to store blockchain and other data -- if you
# don't know what to do here, just remove the below line
datadir=/data/Bitcoin
dbcache=4000

# Must set txindex=1 so Bitcoin keeps the full index
txindex=1

# [rpc]
# Accept command line and JSON-RPC commands.
server=1
# Choose a strong password here
rpcuser=root
rpcpassword=bitcoin

# If you want to allow remote JSON-RPC access
rpcallowip=0.0.0.0/0

# [wallet]
disablewallet=1

# [ZeroMQ]
# ZeroMQ messages power the realtime BitDB crawler
# so it's important to set the endpoint
zmqpubrawtx=tcp://127.0.0.1:28332
zmqpubhashblock=tcp://127.0.0.1:28332

# BitDB makes heavy use of JSON-RPC so it's set to a higher number
rpcworkqueue=512

Setting up Bitd

Clone this repository:

git clone https://github.com/fountainhead-cash/bitd.git && cd bitd

Install dependencies:

npm install

Configure bitd:

cp .env.example .env
$(EDITOR) .env
# note, you should only have to change rpc_user and rpc_pass normally

Start bitd:

npm start --max_old_space_size=4096

Running as a daemon

Install PM2 using NPM

npm install pm2 -g

CD to install location and run bitd

pm2 start index.js --name "bitd" --node-args="--max_old_space_size=4096"

Troubleshooting

View log

pm2 logs bitd

BitD crashing on bigger blocks

If it crashes, it's more than likely node is running out of memory, so try gradually increasing the max old space size.

pm2 start index.js --name "bitd" --node-args="--max_old_space_size=8192"

Credits

2018 Unwriter

2018-current Fountainhead-Cash Developers

You can’t perform that action at this time.