The following document is a step-by-step guide to run BCHWS.
Ensure MongoDB (2.6+) is installed and running. This document assumes that mongod is running at the default port 27017. See the configuration section to configure a different host/port.
Use the following steps to Install BCHWS from the npmjs repository and run it with defaults.
npm install bch-wallet-service
cd bch-wallet-service
To change configuration before running, see the Configuration section.
npm start
Use the following steps to Install BCHWS from github source and run it with defaults.
git clone https://github.com/owstack/bch-wallet-service.git
cd bch-wallet-service
npm install
To change configuration before running, see the Configuration section.
npm start
Configuration for all required modules can be specified in https://github.com/owstack/bch-wallet-service/blob/master/config.js
BCHWS is composed of 5 separate node services - Locker - locker/locker.js Message Broker - messagebroker/messagebroker.js Blockchain Monitor - bcmonitor/bcmonitor.js (This service talks to the Blockchain Explorer service configured under blockchainExplorerOpts - see Configure blockchain service below.) Email Service - emailservice/emailservice.js Bch Wallet Service - bchws.js
Example configuration for connecting to the MongoDB instance:
storageOpts: {
mongoDb: {
uri: 'mongodb://localhost:27017/bchws',
},
}
Example configuration for connecting to locker service:
lockOpts: {
lockerServer: {
host: 'localhost',
port: 4231,
},
}
Example configuration for connecting to message broker service:
messageBrokerOpts: {
messageBrokerServer: {
url: 'http://localhost:3381',
},
}
Note: this service will be used by blockchain monitor service as well as by BCHWS itself. An example of this configuration is:
blockchainExplorerOpts: {
defaultProvider: 'explorer',
// Providers
'explorer': {
'livenet': {
url: 'https://explorer.openwalletstack.com:443',
apiPrefix: '/explorer-api'
},
'testnet': {
url: 'https://test-explorer.openwalletstack.com:443',
apiPrefix: '/explorer-api'
}
}
}
Example configuration for connecting to email service (using postfix):
emailOpts: {
host: 'localhost',
port: 25,
ignoreTLS: true,
subjectPrefix: '[Wallet Service]',
from: 'wallet-service@openwalletstack.com',
}
Change config.js
file to enable and configure clustering:
{
cluster: true,
clusterInstances: 4,
}