Skip to content
A full stack for Bitcore (BTX) and blockchain-based applications
Branch: master
Clone or download
Pull request Compare This branch is 44 commits ahead, 33 commits behind bitpay:master.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Trying classic circle machine with layer cache Dec 19, 2018
docker-bitcored Downloading bootstrap file May 8, 2019
packages Use npm run serve:prod to fix WebSocket connection failed May 25, 2019
.cz-config.js chore(all): adding commitizen Sep 28, 2018
.dockerignore Adding docker and removing bitcore-build for now Apr 6, 2018
.editorconfig Adding editorconfig and eslint files May 18, 2018
.env Try solution of issues/2119 May 3, 2019
.env.example Breaking some logic into functions and making docker peer variables h… Apr 17, 2018
.eslintignore Eslint with typescript support on the global level May 23, 2018
.eslintrc.json Eslint with typescript support on the global level May 23, 2018
.gitignore Fix insight-previous for running as docker container May 10, 2019
CHANGELOG.md Documentation update Mar 27, 2019
Contributing.md Documentation update Mar 27, 2019
Dockerfile Fix insight-previous for running as docker container May 10, 2019
Dockerfile-test Add docker-compose BTX support May 3, 2019
Dockerfile.bitcore-node.btx Use npm run serve:prod to fix WebSocket connection failed May 25, 2019
Dockerfile.insight-previous.btx Use npm run serve:prod to fix WebSocket connection failed May 25, 2019
LICENSE Create LICENSE Jan 4, 2019
README.md Changes for productiv run May 22, 2019
_config.yml Set theme jekyll-theme-minimal Apr 2, 2019
bitcore-test.config.json added services allow creation before complete sync in bitcore-test.co… Jan 28, 2019
bitcore.config.btx.json Fix insight-previous for running as docker container May 10, 2019
ci.sh Enabling More Packages + Bitcore - Build (bitpay#1838) Dec 31, 2018
docker-compose.test.yml Fixing docker-compose for bitcoin rpc commands Jan 18, 2019
docker-compose.yml Use npm run serve:prod to fix WebSocket connection failed May 25, 2019
install.sh Changes for productiv run May 22, 2019
install_docker.sh Add script to install correct docker-compose version May 3, 2019
lerna.json v8.3.0 Apr 22, 2019
package-lock.json Updates: e.g. change to git:dalijolijo/bitcore-lib-btx May 10, 2019
package.json Update package.json May 4, 2019

README.md

Bitcore

Infrastructure to build Bitcoin and blockchain-based applications for the next generation of financial technology.

Easy Setup Guide for BTX (with docker-compose)

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 environment variable with the FQDN HTTPS of your API - "API_PREFIX=https://api.bitcore.cc/api"

For testing use - "API_PREFIX=http://localhost:3000/api"

  insight:
    image: insight-previous
    build:
      context: .
      dockerfile: ./Dockerfile.insight-previous.btx
    container_name: insight-previous
    restart: always
    networks:
      insight-net:
        ipv4_address: 172.21.0.14
    ports:
      - 8080:8080
    environment:
      - "ENV=prod"
      - "CHAIN=BTX"
      - "NETWORK=mainnet"
      - "API_PREFIX=https://api.bitcore.cc/api"
    depends_on:
      - bitcore-node
Starting Bitcore-Node, BTX Node, Mongo DB and Insight in Docker Containers
cd bitcore-btx
docker-compose up -d
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>
Apache config for production

Add subdomains api. and explorer. to /etc/apache2/sites-enabled/default-ssl.conf in this way:

        <VirtualHost *:443>
                ServerName api.bitcore.cc
                ProxyPreserveHost On
                ProxyPass        "/" "http://localhost:3000/"
                ProxyPassReverse "/" "http://localhost:3000/"
        </VirtualHost>

        <VirtualHost *:443>
                ServerName explorer.bitcore.cc
                ProxyPreserveHost On
                ProxyPass        "/" "http://localhost:8080/"
                ProxyPassReverse "/" "http://localhost:8080/"
        </VirtualHost>
Check Insight and API in your browser

For testing:

  • Insight: http://YOUR_IP:8080
  • API: http://YOUR_IP:3000/api/status/enabled-chains

For production:

Find the REST API Documentation with examples here

Getting Started on Ubuntu (without docker-compose)

Requirements

  • Trusted P2P Peer
  • MongoDB Server >= v3.4
  • docker-compose v3
  • Node.js v8

Preparations

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

Setup Guide for BTX

1. Setup Bitcore config for BTX

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"
          }
        }
      }
    }
  }
}

2. Setup BTX Node

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 .

3. Run BTX Node

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

4. Start MongoDB Server with docker-compose

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

5. Start Bitcore

Starting Bitcore
npm run node

Setup Guide for BTC

1. Setup Bitcore config

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"
          }
        }
      }
    }
  }
}

2. Setup Bitcoin Node

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

3. Run Bitcoin node

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/

4. Start Bitcore

Starting Bitcore
npm run node

Applications

Libraries

  • 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

Extras

Contributing

See CONTRIBUTING.md on the main bitcore repo for information about how to contribute.

License

Code released under the MIT license.

Copyright 2013-2019 BitPay, Inc. Bitcore is a trademark maintained by BitPay, Inc.

You can’t perform that action at this time.