A lite Aleo development node. Starting from the SnarkOS codebase, amareleo-chain delivers a minimal validator node for testing the deployment and execution of aleo programs.
Key benefits:
-
Ease of Use – Starting a development testnet is as simple as running
amareleo-chain start. No extra scripts, no multiple processes, all default parameters set for quick aleo program testing. -
Lite – Just one process, with minimal memory and CPU usage.
-
Fast Startup/Shutdown – Drastically reduced node startup and shutdown times.
-
Fresh Chain State – Start testing programs with a fresh chain state (default) or retain the chain state across tests.
-
Compatibility – Compatible with other Aleo tools including
snarkOSandleo.
Amareleo-Chain may be installed from source or from crates.io using cargo. On a fresh machine, installing from source is recommanded as this will also help getting all dependencies installed.
amareleo-chain was tested on machines with low end specs.
- Ubuntu 22.04 (LTS)
- 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
- 16GB RAM
- 512 GB SSD
If you already installed snarkos on this machine, all dependencies should be satisfied and you can clone and install amareleo-chain as follows:
git clone https://github.com/kaxxa123/amareleo-chain.git
cd amareleo-chain
cargo install --locked --path .Otherwise, ensure your machine has Rust v1.83+ installed. Instructions to install Rust can be found here.. Next clone and install amareleo-chain as follows:
git clone https://github.com/kaxxa123/amareleo-chain.git
cd amareleo-chain
./build_ubuntu.shTo start a fresh chain from genesis run:
amareleo-chain start
This will expose a REST server on localhost:3030, supporting the same endpoints as snarkos.
amareleo-chain supports the commands:
start- Starts the amareleo-chain nodeclean- Cleans the amareleo-chain node storageupdate- Update amareleo-chain
For snarkos users, running amareleo-chain start will look very much like running snarkos start with the --dev 0 --validator parameters. Some differences include:
-
amareleo-chaindrops a lot of the functionality not relevant to aleo program testing. It only supports running a validator, and only runs as a standalone node without peers. -
The
amareleo-chaindefault network istestnet(--network 1) rather thanmainnet(--network 0). -
amareleo-chainsupports two modes of operations controlled by the--keep-stateargument. Runningamareleo-chain start, the node will start from genesis and will not preserve the chain state accross runs. Runningamareleo-chain start --keep-statecauses it to preserve the chain-state. -
amareleo-chainuses different disk storage locations depending on its mode of operation:--keep-stateDisk storage set .amareleo-ledger-*not set .amareleo-tmp-ledger-*The two modes do not conflict. One can perform multiple runs some setting
--keep-state, others not. All the runs specifying--keep-statewill share the same ledger. This state will keep being preserved untilamareleo-chain cleanis run.