A Decentralized API for Axe Masternodes
Since this module contains private dependencies, please ensure you have access via GitHub and that your SSH keys are set appropriately.
npm install
DAPI targets the latest LTS release of Node.js. Currently, this is Node v10.13.
DAPI requires Insight-API and the latest version of axecore with evolution features (special branch repo).
- Install core. You can use the docker image (
axecore:evo
) or clone code from the repository, switch to theevo
branch, and build it by yourself. Note: you need to build image with ZMQ and wallet support. You can follow the build instructions located here - Configure core. DAPI needs axecore's ZMQ interface to be exposed and all indexes enabled. You can find the example config for axecore here. To start axecore process with this config, copy it somewhere to your system, and then run
./src/axed -conf=/path/to/your/config
. - Install Insight-API. You can use docker image (
evoinsight:latest
) or install it manually.- To install it manually, clone the axecore-node repo.
cd
to that repo, runnpm i
- Copy config file to the repo directory
- Install Insight-API service. Run
./bin/axecore-node install https://github.com/axerunners/insight-api/
from the repo directory - Run
./bin/axecore-node start
- To install it manually, clone the axecore-node repo.
After you've installed all the dependencies, you can start DAPI by running the npm start
command inside the DAPI repo directory.
npm start
DAPI is configured via environment variables either explicitly passed or present in the .env
dotfile. For example, to change the DAPI port, execute DAPI with the following arguments: RPC_SERVER_PORT=3010 npm start
. Consult the sample environment file. You can see the full list of available options here.
DAPI uses JSON-RPC 2.0 as the main interface. If you want to confirm that DAPI is functioning and synced, you can request the best block height.
Send the following json to your DAPI instance:
{"jsonrpc": "2.0","method": "getBestBlockHeight", "id": 1}
Note that you always need to specify an id, otherwise the server will respond with an empty body, as mentioned in the spec.
A list of all available RPC commands, along with their various arguments and expected responses can be found here
Implementation of these commands can be viewed here.
Feel free to dive in! Open an issue or submit PRs.
MIT © Axe Core Group, Inc.