RsNano

A Rust port of Nano
the feeless and digital currency

# About

RsNano is a Rust port of the original nano-node.

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 or integer overflows.

Rust, on the other hand, offers similar performance characteristics as C++, but guarantees memory safety and thread safety at compile time.

# Why Rust?

Performance

Rust is blazingly fast and offers comparable performance to C++ with no runtime or garbage collection.

This helps the Nano network continue to confirm transactions in well under 1 second.

Reliability

Rust guarantees memory-safety and thread safety. Many bugs are eliminated at compile time, like buffer overflows or race conditions.

This makes the Nano network more secure and prevents exploits from bad actors.

Productivity

Because of Rusts great documentation, helpful compiler, and constantly growing eco-system, refactoring and contributing to RsNano is easy.

This enables continous and faster improvement of the Nano network.

# Current Status

Visit the dev blog for the latest progress report.

We keep track of how much C++ code is already translated:

54.05 %

of the codebase is currently written in Rust.

# Goals

100% Rust

Currently, about 40% of the code base is ported. Our goal is to port 100% of the C++ code to Rust.

Well tested

We want to expand the test suite, make it faster and completely stable. This will enable us to catch bugs early and improve stability of the Nano Network.

Architecture

We want to improve the Software Architecture and align it with modern Rust standards. This will enable us to add improvements more easily.

# Contribute

We are happy to accept your pull requests! You would like to contribute, but you don't know where to start? Join our Discord server and we'll find something.

A good starting point to get an understanding of the code base is the official Nano Core Development Documentation.

# Install

Check out our installation guide on GitHub to get the RsNano node up and running!

# Principal Representative

We operate a beefy Principal Representative hosted in Falkenstein, Germany by Hetzner. Please feel free to choose us as your representative:

nano_1tk8h3yzkibbsti8upkfa69wqafz6mzfzgu8bu5edaay9k7hidqdunpr4tb6

Our representative currently runs the official nano-node. We will switch to RsNano-node at some point in the future.

Check out the Node Monitor for further information.

Site built with ❤️ by luxbe