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.
Contributors
830 contributions
787 contributions
573 contributions
287 contributions
255 contributions
127 contributions
123 contributions
112 contributions
112 contributions
61 contributions
37 contributions
20 contributions
19 contributions
17 contributions
7 contributions
4 contributions
4 contributions
4 contributions
3 contributions
2 contributions
2 contributions
2 contributions
1 contributions
1 contributions
1 contributions
1 contributions