The repository for Ambrosus Node.
The best way to learn Ambrosus is to:
- First go to General introduction
- Follow up with tutorial.
- Detailed RESTful API documentation is available at ambrosus.docs.apiary.io.
Scroll to the bottom to get instructions on how to use postman collection for the API.
Read below to learn about ambrosus node development.
Start the MongoDB container
yarn dev:docker:db
Install the dependencies
yarn install
Run the tests
yarn test
Run linter:
yarn dev:lint
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
Start a ethereum client of your choice. For example the provided parity (in dev mode) container.
yarn dev:docker:parity
Set WEB3_NODEPRIVATEKEY
in dev.env
to a private key with a positive balance.
Run the contract deployment task:
yarn dev:deploy
Update HEAD_CONTRACT_ADDRESS
in dev.env
to match the address given from yarn dev:deploy
.
Run the system pre-run task:
yarn dev:prerun
Finaly run on of the workers you are interested in:
yarn dev:start:server
or
yarn dev:start:hermes
or
yarn dev:start:atlas
Currently we only allow a selected few external nodes to run and connect to the various networks.
In order to run in production mode you will need access to a 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).
Finally, start the server:
yarn start
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
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.