Amaru is a Cardano node client written in Rust. It is an ambitious project which aims to bring more diversity to the infrastructure operating the Cardano network.
Warning
Amaru is still in an exploratory phase. Our development strategy favors early integration of components, so that progress is instantly visible, even though features might be limited or incomplete.
cargo build --release
Important
These instructions assume one starts from scratch, and has access to a running cardano-node on the preprod network.
To run a local peer, refer to Cardano's developers portal.
Make sure your peer listens to port 3001
or adapt the AMARU_PEER_ADDRESS
environment variable (e.g. export AMARU_PEER_ADDRESS=127.0.0.1:3002
)
- Bootstrap the node:
make bootstrap
- (Optional) Setup observability backends:
docker-compose -f monitoring/jaeger/docker-compose.yml up
- Run Amaru:
cargo run --release -- daemon \
--peer-address=127.0.0.1:3001 \
--network=preprod
Replace --peer-address
with your Cardano node peer address. It can be either
a local or remote node (i.e. any existing node relay), and you can even add
multiple peers by replicating the option.
Tip
To ensure logs are forwarded to telemetry backend, pass --with-open-telemetry
as an option before the daemon
sub-command, eg.
cargo run --release -- --with-open-telemetry daemon \
--peer-address=127.0.0.1:3001 \
--network=preprod
See monitoring/README.md.
Amaru is the integration point of several other projects / repositories. Amongst them, we find in particular:
Repository | Purpose |
---|---|
txpipe/pallas | Hosts many Rust primitives and building blocks for the node already powering tools like Dolos. In particular, the networking and serialization logic. |
pragma-org/uplc | A highly performant UPLC parser and CEK machine. |
⛵ Roadmap
|
📐 Contributing
|
Discord