Skip to content
This repository has been archived by the owner on Sep 26, 2024. It is now read-only.
/ nano-rs Public archive

An implementation of Nano in Rust using Tokio

License

Notifications You must be signed in to change notification settings

fu5ha/nano-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nano-rs

Nano-rs is a pure Rust implementation of the Nano cryptocurrency based on Tokio. It is currently in its very infancy.

This repo serves as a monorepo that contains several crates, including the root nano-rs crate, which is the node implementation itself. There are also several subcrates:

  • nanopow-rs is a standalone Proof of Work implementation.
  • nano-lib-rs provides types and functions for working with the Nano protocol in Rust.

Milestones

  • A basic node that can validate and store blocks sent to it
    • Data structures
      • Blocks
      • Message headers
      • Message body
        • Block
        • Keepalive peers
        • Confirm Ack (votes etc)
        • Others...
    • Database
    • Proof of work
    • Cryptographic functions
    • Basic wallet functions
    • Networking
      • Receiving keepalives and blocks
        • keepalives
        • publish
        • confirm_req
        • confirm_ack
        • others...
      • Sending keepalives
  • Add broadcasting and discovery
  • Add RPC interface
  • Add voting
  • Add compatibility with existing Nano Nodes
  • Add complete testing harness
  • Possibly more things in the future

Installation/Usage

First, install Rust.

Then make sure you're running nightly rust:

rustup toolchain install nightly
rustup default nightly

Then,

git clone https://github.com/termhn/nano-rs
cd nano-rs
cargo run --release

Logging is printed to stderr and saved in files in the logs/ folder.

Releases

No releases published

Packages

No packages published

Languages