The power of Cardano, for a fraction of the resources

Amaru is an Open Source Cardano node client, entirely written in Rust. By making different design trade-offs, Amaru manages to provide full-node capabilities with a constrained set of resources without ever compromising on security and reliability.

Mission

One of Cardano's key assets is its legendary robustness and stability, which is mainly attributed to the existing Haskell node, which has been working without significant disruption for about five years now (counting since the Byron reboot, circa February 2020). So why bother with another node? The answer is, of course, plural:

  • 1. Better resource usage

    Software is ultimately a collection of design decisions and trade-offs. Some of those trade-offs in the Haskell node have led to rather high resource usages (e.g., resident memory), thus leading to the creation of specific protocol parameters (e.g., min-utxo-value) as countermeasures to ensure resource usage remains somewhat bounded. Our analysis is that different (albeit acceptable) trade-offs would yield better resource usage.

  • 2. Industry-grade observability

    Observability is challenging, and it is even more so when rolling your own solution. With Amaru, we intend to embrace industry standards for monitoring, tracing, and logging to drastically enhance the user experience for operators seeking insights into their node's behaviour.

  • 3. Enhanced interoperability

    Amaru being primarily written in Rust means that we can more easily leverage an existing and thriving ecosystem of blockchain solutions and aim at multiple target platforms (e.g. web-assembly, RISC-V). This opens up not only to a wide variety of potential contributors but also to many new use cases that are much harder (not to say unrealistic) to achieve with a Haskell node.

  • 4. Higher-assurance & robustness

    Developing a new implementation of existing software means dissecting every part of the original implementation. Along the way, bugs and discrepancies with the specification are commonly found through conformance testing. Gaps in the documentation can also be identified and addressed. The development of [Amaru](https://github.com/pragma-org/amaru) has already proven this on several occasions. In the long run, more node implementations can be a synonym for reduced development time by allowing all implementations to converge faster towards better designs and more robust implementations.

  • 5. Decentralization

    In a world where Byzantine fault tolerance is at the centre and where decentralization is a paramount value, we believe that a single-node implementation presents a single point of failure and a central point of control. A new node not only increases the overall resilience of the network but also provides perspectives in terms of a roadmap and use cases.

With Amaru, we believe that we can reconcile these goals while preserving Cardano's focus on security and robustness. Like Haskell, Rust is a statically typed language that provides strong compile-time guarantees and fine-grained memory management. Its ecosystem is also well-equipped for high assurance, making it a sane choice for implementing blockchain solutions.

Core Team

A diverse team of experts from all across the Cardano ecosystem.

Arnaud Bailly

Arnaud Bailly

Core Maintainer @ Cardano Foundation
Damien Czapla

Damien Czapla

Project Manager @ OpenTheLead
Eric Torreborre

Eric Torreborre

Core Contributor @ Ockam
Geoff Little

Geoff Little

Core Contributor
Jonathan Slim

Jonathan Slim

Core Contributor @ Sundae Labs
Joshua Marchand

Joshua Marchand

Core Contributor @ Sundae Labs
Julien Eluard

Julien Eluard

Core Contributor @ Cardano Foundation
Matthias Benkort

Matthias Benkort

Lead Maintainer @ Cardano Foundation
Pascal Grange

Pascal Grange

Core Contributor @ Sundae Labs
Pi Lanningham

Pi Lanningham

Core Maintainer @ Sundae Labs
Roland Kuhn

Roland Kuhn

Core Contributor @ Actyx AG
Santiago Carmuega

Santiago Carmuega

Core Maintainer @ TxPipe