The source code of Hermes and Atlas nodes. Part of the ambrosus project.
- Introduction
- Running tests
- Building project
- Running locally
- Running your own node
- Running in production
- Contributing
Contains source code of Hermes and Atlas nodes that are part of ambrosus blockchain network. Read more about ambrosus.
Start the MongoDB container
yarn dev:docker:db
Run data migrations
yarn dev:migrate
Install the dependencies
yarn install
Run the tests
yarn test
Run linter:
yarn dev:lint
Additionally we provide the postman collection to make it easier to test REST queries. To use them you need to run the server, create the admin account and:
- Import the environment from
postman/AMB-template.postman_environment.json
, rename it if you want, and select it. - If needed, change
url
variable (by default url=localhost:9876) to your gateway instance - In the environment set
adminSecret
andadminAddress
variables with a existing admins private and public keys respectively. If you don't have access to an admin account, but rather a normal user account, you can set theuserSecret
anduserAddress
. Note: functionality will be limited. - Import collection from
Ambrosus.postman_collection.json
- [admin only] Add or modify accounts with the
Add account
andModify account
requests - Create tokens by calling the
Generate Token
request
Building consists of transpiling the source code. It is performed by running:
yarn build
If for some reason you want to perform a clean-up:
yarn dev:clean
Start the MongoDB container
yarn dev:docker:db
Run data migration
yarn dev:migrate
Start an ethereum client of your choice. For example, the provided parity container (in dev mode).
yarn dev:docker:parity
Set WEB3_NODEPRIVATEKEY
and WEB3_DEPLOYER_PRIVATEKEY
a in dev.env
to a private key with
a positive balance.
If you're using provided parity from container, the private key in dev.env
should already match a dev account.
Run the contract deployment task:
yarn dev:deploy
Update HEAD_CONTRACT_ADDRESS
in dev.env
to match the address returned from yarn dev:deploy
.
Run the system pre-run task:
yarn dev:prerun:hermes
or
yarn dev:prerun:atlas
to match your desired type of node: hermes or atlas.
Finally, run one of the workers you are interested in:
yarn dev:start:server
or
yarn dev:start:hermes
or
yarn dev:start:atlas
To run your own node in ambrosus network see ambrosus-nop.
This project shouldn't be running on it own. See ambrosus-nop to find start scripts. For additional information about running in test mode contact ambrosus development team.
Below are instructions to run this particular project.
Your should have an ethereum client instance and a mongoDB instance.
Build the whole suit:
yarn build
Configure environment variables for WEB3_RPC
, WEB3_NODEPRIVATEKEY
, MONGODB_URI
, HEAD_CONTRACT_ADDRESS
(provided by the Ambrosus developer team).
Run database migration
yarn migrate
Finally, start desired server:
Api
yarn start:server
Or Hermes
yarn start:hermes
Or Atlas
yarn start:atlas
getToken - utility for manual AMB_TOKEN generation, usage:
node getToken.js <privKey>
We will accept contributions of good code that we can use from anyone.
Please see CONTRIBUTION.md
Before you issue pull request:
- Make sure all tests pass.
- Make sure you have test coverage for any new features.