Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fu5ha/nano-rs
An implementation of Nano in Rust using Tokio
https://github.com/fu5ha/nano-rs
cryptocurrency nano nano-currency nanocurrency rust tokio
Last synced: 4 months ago
JSON representation
An implementation of Nano in Rust using Tokio
- Host: GitHub
- URL: https://github.com/fu5ha/nano-rs
- Owner: fu5ha
- License: mpl-2.0
- Created: 2018-03-06T23:17:40.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-05-01T23:05:49.000Z (almost 7 years ago)
- Last Synced: 2024-09-18T13:45:08.668Z (5 months ago)
- Topics: cryptocurrency, nano, nano-currency, nanocurrency, rust, tokio
- Language: Rust
- Size: 122 KB
- Stars: 28
- Watchers: 3
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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
- [x] Blocks
- [x] Message headers
- [ ] Message body
- [x] Block
- [X] Keepalive peers
- [ ] Confirm Ack (votes etc)
- [ ] Others...
- [ ] Database
- [x] Proof of work
- [ ] Cryptographic functions
- [ ] Basic wallet functions
- [ ] Networking
- [ ] Receiving keepalives and blocks
- [x] keepalives
- [x] publish
- [x] confirm_req
- [ ] confirm_ack
- [ ] others...
- [x] 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](https://rustup.rs/).
Then make sure you're running nightly rust:
```sh
rustup toolchain install nightly
rustup default nightly
```Then,
```sh
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.