/bitcore

A full stack for bitcoin and blockchain-based applications

Primary LanguageJavaScriptMIT LicenseMIT

Bitcore

npm GitHub commit activity MIT License GitHub contributors
master build

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

Getting Started

Requirements

  • Trusted P2P Peer
  • MongoDB Server >= v3.4
  • make g++ gcc

Checkout the repo

git clone git@github.com:bitpay/bitcore.git
git checkout master
npm install

Setup Guide

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

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

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 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
  • 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.