|
|
|
The following document is a step-by-step guide to run BWS.
|
|
|
|
|
|
|
|
### Prerequisites
|
|
|
|
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.
|
|
|
|
|
|
|
|
### Install BWS from NPM
|
|
|
|
Use the following steps to Install BWS from the npmjs repository and run it with defaults.
|
|
|
|
```bash
|
|
|
|
npm install bitcore-wallet-service
|
|
|
|
cd bitcore-wallet-service
|
|
|
|
```
|
|
|
|
To change configuration before running, see the Configuration section.
|
|
|
|
```bash
|
|
|
|
npm start
|
|
|
|
```
|
|
|
|
|
|
|
|
### Install BWS from github source
|
|
|
|
Use the following steps to Install BWS from github source and run it with defaults.
|
|
|
|
```bash
|
|
|
|
git clone https://github.com/bitpay/bitcore-wallet-service.git
|
|
|
|
cd bitcore-wallet-service
|
|
|
|
npm install
|
|
|
|
```
|
|
|
|
To change configuration before running, see the Configuration section.
|
|
|
|
```bash
|
|
|
|
npm start
|
|
|
|
```
|
|
|
|
### Configuration
|
|
|
|
Configuration for all required modules can be specified in https://github.com/bitpay/bitcore-wallet-service/blob/master/config.js
|
|
|
|
|
|
|
|
BWS 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 Insight service hosted by Bitpay)
|
|
|
|
Email Service - emailservice/emailservice.js
|
|
|
|
Bitcore Wallet Service - bws.js
|
|
|
|
|
|
|
|
#### Configure MongoDB
|
|
|
|
Example configuration for connecting to the MongoDB instance:
|
|
|
|
```javascript
|
|
|
|
storageOpts: {
|
|
|
|
mongoDb: {
|
|
|
|
uri: 'mongodb://localhost:27017/bws',
|
|
|
|
},
|
|
|
|
}
|
|
|
|
```
|
|
|
|
#### Configure Locker service
|
|
|
|
Example configuration for connecting to locker service:
|
|
|
|
```javascript
|
|
|
|
lockOpts: {
|
|
|
|
lockerServer: {
|
|
|
|
host: 'localhost',
|
|
|
|
port: 3231,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
#### Configure Message Broker service
|
|
|
|
Example configuration for connecting to message broker service:
|
|
|
|
```javascript
|
|
|
|
messageBrokerOpts: {
|
|
|
|
messageBrokerServer: {
|
|
|
|
url: 'http://localhost:3380',
|
|
|
|
},
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
#### Configure blockchain service
|
|
|
|
Note: this service will be used by blockchain monitor service as well as by BWS itself.
|
|
|
|
An example of this configuration is:
|
|
|
|
```javascript
|
|
|
|
blockchainExplorerOpts: {
|
|
|
|
livenet: {
|
|
|
|
provider: 'insight',
|
|
|
|
url: 'https://insight.bitpay.com:443',
|
|
|
|
},
|
|
|
|
testnet: {
|
|
|
|
provider: 'insight',
|
|
|
|
url: 'https://test-insight.bitpay.com:443',
|
|
|
|
},
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
#### Configure Email service
|
|
|
|
Example configuration for connecting to email service (using postfix):
|
|
|
|
```javascript
|
|
|
|
emailOpts: {
|
|
|
|
host: 'localhost',
|
|
|
|
port: 25,
|
|
|
|
ignoreTLS: true,
|
|
|
|
subjectPrefix: '[Wallet Service]',
|
|
|
|
from: 'wallet-service@bitcore.io',
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
#### Enable clustering
|
|
|
|
Change `config.js` file to enable and configure clustering:
|
|
|
|
```javascript
|
|
|
|
{
|
|
|
|
cluster: true,
|
|
|
|
clusterInstances: 4,
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|