Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

btxcore-node

LIMXTEC11MIT5.0.0-beta.45

Full node with extended capabilities using BTXCore and Bitcore (BTX) Core

readme

BTXCore Node

A Bitcore (BTX) blockchain indexing and query service. Intended to be used with as a Bitcore (BTX) full node or in conjunction with a Bitcore (BTX) full node.

Upgrading from previous versions of BTXCore Node

There is no upgrade path from previous versions of BTXCore Node due to the removal of the included Bitcoin Core software. By installing this version, you must resynchronize the indexes from scratch.

Install

npm install
./bin/btxcore-node start

Note: A default configuration file is placed in the btxcore user's home directory (~/.btxcore/btxcore-node.json). Or, alternatively, you can copy the provided "btxcore-node.json.sample" file to the project's root directory as btxcore-node.json and edit it for your preferences. If you don't have a preferred block source (trusted peer), Bcoin will be started automatically and synchronized with the mainnet chain.

Prerequisites

  • Node.js v8.2.0+
  • ~500GB of disk storage
  • ~4GB of RAM

Configuration

The main configuration file is called "btxcore-node.json". This file instructs btxcore-node for the following options:

  • location of database files (datadir)
  • tcp port for web services, if configured (port)
  • Bitcore (BTX) network type (e.g. mainnet, testnet), (network)
  • what services to include (services)
  • the services' configuration (servicesConfig)

Add-on Services

There are several add-on services available to extend the functionality of BTXCore:

Documentation

  • Services
    • Fee - Creates a service to handle fee queries
    • Header - Creates a service to handle block headers
    • Block - Creates a service to handle blocks
    • Transaction - Creates a service to handle transactions
    • Address - Creates a service to handle addresses
    • Mempool - Creates a service to handle mempool
    • Timestamp - Creates a service to handle timestamp
    • Db - Creates a service to handle the database
    • p2p - Creates a service to handle the peer-to-peer network
    • Web - Creates an express application over which services can expose their web/API content
  • Development Environment - Guide for setting up a development environment
  • Node - Details on the node constructor
  • Bus - Overview of the event bus constructor
  • Release Process - Information about verifying a release and the release process.

Contributing

Please send pull requests for bug fixes, code optimization, and ideas for improvement. For more information on how to contribute, please refer to our CONTRIBUTING file.

License

Code released under the MIT license.

Copyright 2013-2017 BitPay, Inc.

  • bitcoin: Copyright (c) 2009-2015 Bitcoin Core Developers (MIT License)
  • btxcore: Copyright (c) 2018 The Bitcore BTX Core Developers

changelog

Release Process

Binaries for bitcored are distributed for convenience and built deterministically with Gitian, signatures for bitcored are located at the gitian.sigs respository.

How to Release

When publishing to npm, the .gitignore file is used to exclude files from the npm publishing process. Be sure that the btxcore-node directory has only the directories and files that you would like to publish to npm. You might need to run the commands below on each platform that you intend to publish (e.g. Mac and Linux).

To make a release, bump the version of the package.json:

git checkout master
git pull upstream master
npm install
npm run test
npm run regtest
npm run jshint
git commit -a -m "Bump package version to <version>"
git push upstream master
npm publish

Create a release tag and push it to the BitPay Github repo:

git tag -s v<version> -m 'v<version>'
git push upstream v<version>