RsNano is a Rust port of the original Nano node. This fork targets the
Banano network, a Nano derivative where 1 BAN equals 10^29 raw, addresses
use the ban_ prefix and nodes listen on port 7071.
docker run -p 7071:7071 -v ~/Banano:/root/Banano simpago/rsnano:V2.0 --network=live node run
docker build -f scripts/docker/node/Dockerfile -t rsnano-node https://github.com/simpago/rsnano-node.git#releases/v2
docker run -p 7071:7071 -v ~/Banano:/root/Banano rsnano-node:latest --network=live node run
Currently you can only build RsNano on Linux and on Mac.
To just build and run the rsnano_node:
git clone https://github.com/simpago/rsnano-node.git
git switch releases/v2
cd rsnano-node/main
cargo build --release
cargo run --release -- --network=live node run
To install and run the rsnano_node executable:
git clone https://github.com/simpago/rsnano-node.git
git switch releases/v2
cd rsnano-node
cargo install --path main
rsnano_node --network=live node run
You can even run an RsNano node with a GUI that looks like this:

Run these commands:
cd rsnano-node/tools/insight
cargo run --release
We want to hear about any trouble, success, delight, or pain you experience when using RsNano. Let us know by filing an issue, or joining us on Discord.
Have a look at the AI generated documentation of the codebase.
The Rust code is structured according to A-frame architecture and is built with nullable infrastructure. This design and testing approach is extensively documented on James Shore's website
Watch James Shore's presentation of nullables on YouTube: Testing Without Mocks - James Shore | Craft Conference 2024
The following diagram shows how the crates are organized. The crates will be split up more when the codebase grows.
main: The node executable.daemon: Starts the node and optionally the RPC server.node:The node implementation.rpc_server: Implemenation of the RPC server.ledger: Ledger implementation. It is responsible for the consinstency of the data stores.store_lmdb: LMDB implementation of the data stores.messages: Message types that nodes use for communication.network: Manage outbound/inbound TCP channels to/from other nodes.work: Proof of work generation via CPU or GPUcore: Contains the basic types likeBlockHash,Account,KeyPair,...nullables: Nullable wrappers for infrastructure libraries.