quick_start_developer_guide.md

July 18, 2021 ยท View on GitHub

Thank you for your interest in Amoveo. This doc is an introduction to the technology. It is made to help you be able to start contributing to the software as quickly as possible.

Guide to erlang

installing and turning on the amoveo node

Testing

We maintain two kinds of tests: unit tests and integration tests. Final test is syncing fresh node with public testnet node.

For integration tests that simulate multiple full nodes and test how they interact, first make sure your full node is turned off, then do make tests.

To run the single-node tests of all the modules in Amoveo, first, turn on a test full-node. make local_quick

When the full node is loaded, it says something like (amoveo_core_local@YOUR_COMPUTER)1> attempting to sync from here you run tester:test(). This will run all the tests, and return success if they all pass.

you can kill the erlang process with halt().

If you want to do tests on a full node, you might want to try creating transactions without publishing them to the network. To do this, first sync you full node normally, then use peers:remove_all(). so that you disconnect from all your peers. Now you can try making txs, and those txs will not get sent to any mining pools.

Blockchain Commands

Here are some basic commands you might want to run from a full node

Here is the external JSON HTTP api for the full node.

Here is the JSON HTTP api that you only access from that same computer.

Since this is erlang, it is possible to run any exported function of any module, from the erlang command line.

Most users interact with a full node from a light node. You can download the light node here to test it against your full node. If you click the test mode button on many of the light node pages, then it will connect to a test full node on your computer.

transaction types

This will teach you about the transaction types Transactions are how you can modify the consensus state of the blockchain.

database

This will teach you about trees Trees are the data structures that hold the consensus state of the blockchain.

guide to contributing

stuff that needs to be done

Other concepts that could be useful.

  • hash functions
  • merkel trees
  • nash equilibrium
  • financial derivatives