Infrastructure to build Bitcoin and blockchain-based applications for the next generation of financial technology.
Checkout the repo bitcore-btx
git clone https://github.com/dalijolijo/bitcore-btx.git
cd bitcore-btx
git checkout master
Install docker.io and docker-compose v.3
cd bitcore-btx
./install_docker.sh
Modify Insight IP in docker-compose.yml file
Change YOUR_IP
in environment variable - "API_PREFIX=http://YOUR_IP:3000/api"
insight:
image: insight
build:
context: .
dockerfile: ./Dockerfile.insight.btx
container_name: insight
restart: always
networks:
insight-net:
ipv4_address: 172.21.0.14
ports:
- 80:80
environment:
- "ENV=prod"
- "CHAIN=BTX"
- "NETWORK=mainnet"
- "API_PREFIX=http://YOUR_IP:3000/api"
depends_on:
- bitcore-node
Starting Bitcore-Node, BTX Node, Mongo DB and Insight in Docker Containers
cd bitcore-btx
docker-compose up -d -f docker-compose.btx.json
Show logging of docker containers
#show all running docker containers
docker ps
#show logs of all docker containers
docker-compose logs -f
#show only a specific docker container log
docker logs -f <DOCKER NAME>
Check Insight and API in your browser
- Insight: http://YOUR-IP
- API: http://YOUR-IP:3000/api/status/enabled-chains
Find the REST API Documentation with examples here
- Trusted P2P Peer
- MongoDB Server >= v3.4
- docker-compose v3
- Node.js v8
Checkout the repo bitcore-btx
git clone https://github.com/dalijolijo/bitcore-btx.git
cd bitcore-btx
git checkout master
npm install -g [--unsafe-perm]
Hint: After error, cleanup with:
npm cache clean --force
rm -rf ./node_modules
rm -rf packages/*/node_modules
Install docker-compose v3
./install_docker.sh
Install Node.js v18
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
apt-get install nodejs
Configfile bitcore.config.json for BTX Mainnet
{
"bitcoreNode": {
"chains": {
"BTX": {
"mainnet": {
"parentChain": "BTC",
"forkHeight": 492820,
"trustedPeers": [
{
"host": "127.0.0.1",
"port": 40008
}
],
"rpc": {
"host": "127.0.0.1",
"port": 40009,
"username": "username",
"password": "password"
}
}
}
}
}
}
Build Docker Image for BTX Node
cd bitcore-btx/docker-bitcored
docker build -t dalijolijo/bitcored:<VERSION> .
# Example for VERSION 0.15.2.1
docker build -t dalijolijo/bitcored:0.15.2.1 .
Starting BTX Node Docker Container
cd bitcore-btx/docker-bitcored
docker run --rm --name bitcored -v /home/.bitcore:/data -d -p 40008:40008 -p 40009:40009 dalijolijo/bitcored:<VERSION> -rpcuser=<USER> -rpcpassword=<PWD>
# Example for VERSION 0.15.2.1
docker run --rm --name bitcored -v /home/.bitcore:/data -d -p 40008:40008 -p 40009:40009 dalijolijo/bitcored:0.15.2.1 -rpcuser=btx -rpcpassword=btx
Check if BTX Node is fully synced
docker logs --tail 30 bitcored
Configfile docker-compose.yml for MongoDB Server
version: '3'
services:
database:
image: mongo:3.4-jessie
ports:
- 27017:27017
volumes:
- /data/db:/data/db
Starting MongoDB Server Docker Container
cd bitcore-btx
docker-compose up -d
docker-compose logs
Starting Bitcore
npm run node
Example bitcore.config.json
{
"bitcoreNode": {
"chains": {
"BTC": {
"mainnet": {
"chainSource": "p2p",
"trustedPeers": [
{
"host": "127.0.0.1",
"port": 20008
}
],
"rpc": {
"host": "127.0.0.1",
"port": 20009,
"username": "username",
"password": "password"
}
},
"regtest": {
"chainSource": "p2p",
"trustedPeers": [
{
"host": "127.0.0.1",
"port": 20020
}
],
"rpc": {
"host": "127.0.0.1",
"port": 20021,
"username": "username",
"password": "password"
}
}
},
"BCH": {
"mainnet": {
"parentChain": "BTC",
"forkHeight": 478558,
"trustedPeers": [
{
"host": "127.0.0.1",
"port": 30008
}
],
"rpc": {
"host": "127.0.0.1",
"port": 30009,
"username": "username",
"password": "password"
}
},
"regtest": {
"chainSource": "p2p",
"trustedPeers": [
{
"host": "127.0.0.1",
"port": 30020
}
],
"rpc": {
"host": "127.0.0.1",
"port": 30021,
"username": "username",
"password": "password"
}
}
},
"BTX": {
"mainnet": {
"parentChain": "BTC",
"forkHeight": 492820,
"trustedPeers": [
{
"host": "127.0.0.1",
"port": 40008
}
],
"rpc": {
"host": "127.0.0.1",
"port": 40009,
"username": "username",
"password": "password"
}
},
"regtest": {
"chainSource": "p2p",
"trustedPeers": [
{
"host": "127.0.0.1",
"port": 40020
}
],
"rpc": {
"host": "127.0.0.1",
"port": 40021,
"username": "username",
"password": "password"
}
}
}
}
}
}
Example Bitcoin Mainnet Config
whitelist=127.0.0.1
txindex=0
listen=1
server=1
irc=1
upnp=1
# Make sure port & rpcport matches the
# bitcore.config.json ports for BTC mainnet
# if using Bitcoin Core v0.17+ prefix
# [main]
port=20008
rpcport=20009
rpcallowip=127.0.0.1
rpcuser=username
rpcpassword=password
Example Starting a Bitcoin Node
# Path to your bitcoin application and path to the config above
/Applications/Bitcoin-Qt.app/Contents/MacOS/Bitcoin-Qt -datadir=/Users/username/blockchains/bitcoin-core/networks/mainnet/
Starting Bitcore
npm run node
- Bitcore Node - A full node with extended capabilities using Bitcoin Core
- Bitcore Wallet - A command-line based wallet client
- Bitcore Wallet Client - A client for the wallet service
- Bitcore Wallet Service - A multisig HD service for wallets
- Bitpay Wallet - An easy-to-use, multiplatform, multisignature, secure bitcoin wallet
- Insight - A blockchain explorer web user interface
- Bitcore Channel - Micropayment channels for rapidly adjusting bitcoin transactions
- Bitcore ECIES - Uses ECIES symmetric key negotiation from public keys to encrypt arbitrarily long data streams
- Bitcore Lib - A pure and powerful JavaScript Bitcoin library
- Bitcore Lib Cash - A pure and powerful JavaScript Bitcoin Cash library
- Bitcore Lib BTX - A pure and powerful JavaScript Bitcore BTX library
- Bitcore Message - Bitcoin message verification and signing
- Bitcore Mnemonic - Implements mnemonic code for generating deterministic keys
- Bitcore P2P - The peer-to-peer networking protocol for BTC
- Bitcore P2P Cash - The peer-to-peer networking protocol for BCH
- Bitcore P2P BTX - The peer-to-peer networking protocol for BTX
- Crypto Wallet Core - A coin-agnostic wallet library for creating transactions, signing, and address derivation
- Bitcore Build - A helper to add tasks to gulp
- Bitcore Client - A helper to create a wallet using the bitcore-v8 infrastructure
See CONTRIBUTING.md on the main bitcore repo for information about how to contribute.
Code released under the MIT license.
Copyright 2013-2019 BitPay, Inc. Bitcore is a trademark maintained by BitPay, Inc.