Install Node.js by your favorite method, or use Node Version Manager by following directions at https://github.com/creationix/nvm
nvm install v4
To develop aipgcore-node:
cd ~
git clone git@github.com:<yourusername>/aipgcore-node.git
git clone git@github.com:<yourusername>/aipgcore-lib.git
To develop aipgcoin or to compile from source:
git clone git@github.com:<yourusername>/aipgcoin.git
git fetch origin <branchname>:<branchname>
git checkout <branchname>
Note: See aipgcoin documentation for building aipgcoin on your platform.
For Ubuntu:
sudo apt-get install libzmq3-dev
sudo apt-get install build-essential
Note: Make sure that libzmq-dev is not installed, it should be removed when installing libzmq3-dev.
For Mac OS X:
brew install zeromq
cd aipgcore-lib
npm install
cd ../aipgcore-node
npm install
Note: If you get a message about not being able to download aipgcoin distribution, you'll need to compile aipgd from source, and setup your configuration to use that version.
We now will setup symlinks in aipgcore-node
(repeat this for any other modules you're planning on developing):
cd node_modules
rm -rf aipgcore-lib
ln -s ~/aipgcore-lib
rm -rf aipgd-rpc
ln -s ~/aipgd-rpc
And if you're compiling or developing aipgcoin:
cd ../bin
ln -sf ~/aipgcoin/src/aipgd
If you do not already have mocha installed:
npm install mocha -g
To run all test suites:
cd aipgcore-node
npm run regtest
npm run test
To run a specific unit test in watch mode:
mocha -w -R spec test/services/aipgd.unit.js
To run a specific regtest:
mocha -R spec regtest/aipgd.js
To test running the node, you can setup a configuration that will specify development versions of all of the services:
cd ~
mkdir devnode
cd devnode
mkdir node_modules
touch aipgcore-node.json
touch package.json
Edit aipgcore-node.json
with something similar to:
{
"network": "livenet",
"port": 3001,
"services": [
"aipgd",
"web",
"insight-api",
"insight-ui",
"<additional_service>"
],
"servicesConfig": {
"aipgd": {
"spawn": {
"datadir": "/home/<youruser>/.aipgd",
"exec": "/home/<youruser>/aipgcoin/src/aipgd"
}
}
}
}
Note: To install services insight-api and insight-ui you'll need to clone the repositories locally.
Setup symlinks for all of the services and dependencies:
cd node_modules
ln -s ~/aipgcore-lib
ln -s ~/aipgcore-node
ln -s ~/insight-api
ln -s ~/insight-ui
Make sure that the <datadir>/aipg.conf
has the necessary settings, for example:
server=1
whitelist=127.0.0.1
txindex=1
addressindex=1
timestampindex=1
spentindex=1
zmqpubrawtx=tcp://127.0.0.1:28332
zmqpubhashblock=tcp://127.0.0.1:28332
rpcallowip=127.0.0.1
rpcuser=aipgcoin
rpcpassword=local321
From within the devnode
directory with the configuration file, start the node:
../aipgcore-node/bin/aipgcore-node start