RsNano is a Rust port of the original nano-node.
Why?
The original nano-node is written in C++. C++ is a very powerful language, but it makes it easy to introduce potentially exploitable bugs, like buffer overflows, dangling pointers, race conditions, integer overflows, and the like. Rust, on the other hand, offers similar performance characteristics as C++, but garantees memory safety and thread safety at compile time.
The Nano cryptocurrency should not suffer from the security issues that C++ can introduce, so that’s why RsNano was started.
Additionally, through the help of the Rust compiler, RsNano allows for
- easier Refactoring
- easier Multithreading
- easier community contributions
Our goals are to
- port the whole nano-node to Rust
- make the test suite a lot faster, stable and bigger
- improve the source code design
How?
RsNano is a fork of the original nano-node. We move small parts of the C++ code base to Rust while the node should be runnable at all times. New commits to the original nano-node are incorporated into RsNano as well.
That means RsNano already has feature parity with nano-node and will keep it.
How far are we?
Visit the dev blog for the latest progress report.
We keep track of how much C++ code is already translated: