RsNano V3.0: un solo codice, due valute
RsNano è la riscrittura in Rust del nodo Nano, e lo sviluppatore gschauwecker ha pubblicato la sua versione più corposa finora. V3.0 trasforma il progetto da nodo Nano a nodo per due catene: la stessa base di codice ora compila per Nano o per Banano, con la valuta scelta al momento della compilazione. La notizia principale di questa versione è il supporto Banano di prima classe.
Un solo codice, due valute
Il supporto Banano è completo, non un ripiego. Un feature flag banano seleziona la valuta in fase di compilazione. Il repository include pesi dei rappresentanti e costanti valutarie integrati per entrambe le reti, e compilare per Banano produce un binario dedicato, rsban. Se interroghi il RPC della versione su una build Banano, risponde « RsBan ». Nessun fork separato da mantenere, nessuna seconda base di codice che possa divergere.
Base di codice
una base in Rust
Valute
Nano + Banano
Binari
rsnano · rsban
Per gli operatori Banano è importante: la rete ha finalmente un'alternativa indipendente al nodo in C++, scritta in Rust.
Immagini Docker ufficiali
RsNano ora offre immagini Docker ufficiali, pubblicate automaticamente a ogni push tramite GitHub Actions. Sono basate su Alpine per restare leggere, e le build passano da cargo-chef per layer rapidi e cachati. C'è un'immagine separata per ogni valuta:
Nano
docker run -p 7075:7075 -v ~/Nano:/home/nanocurrency/Nano rsnano/rsnano:V3.0 node run
Banano
docker run -p 7075:7075 -v ~/Banano:/home/bananocurrency/Banano rsnano/rsban:V3.0 node run
Entrambe le immagini espongono la stessa porta, la 7075. Se vuoi eseguire entrambe le catene sulla stessa macchina, regola il lato host del mapping -p.
GUI Insight, molto migliorata
La GUI di monitoraggio ha ricevuto un grosso aggiornamento. Nuove viste: visualizzazione del punteggio dei peer, elezioni attive (AEC) con dettagli per bucket, una vista di dettaglio delle elezioni e una vista Bootstrap completa che mostra account bloccati, in download e prioritari, con filtri e un controllo di coerenza. Nuovo anche il filtraggio del log dei messaggi per direzione e tipo.
Motore di bootstrap riscritto
Il sottosistema di sincronizzazione del ledger è stato riscritto a fondo, non rattoppato. Il traffico di rete live viene ignorato durante il bootstrap, così i blocchi in arrivo non interferiscono con la sincronizzazione. Priorità e dimensioni dei pull sono state calibrate sul comportamento del nano_node ufficiale, e l'annuncio elenca fix per stalli di sincronizzazione, freeze e perdite di block-handoff. Sono bug difficili da riprodurre, quindi questi fix meritano test in condizioni reali.
Il resto del changelog
- Una nuova impostazione di rete
handshake_timeout, con pulizia centralizzata dei canali inattivi. - Default LMDB modificati per le prestazioni:
nosync_unsafeeNO_READAHEAD.
Un compromesso da conoscere
nosync_unsafe scambia durabilità con velocità: LMDB salta la sincronizzazione dei dati su disco a ogni commit. Va bene per la maggior parte dei nodi, meno su hardware poco affidabile.
- Controlli di coerenza del ledger all'avvio.
- Nuovi strumenti CLI: informazioni sul peso dei rappresentanti e un diff del ledger.
- Passaggio a Rust edition 2024.
V3.0 è una release con una portata reale: una seconda valuta, un percorso di sincronizzazione ricostruito e una distribuzione curata. Gli operatori di nodi dovrebbero testare il percorso di bootstrap su un nodo di staging prima di aggiornare il mainnet. Gli operatori Banano hanno finalmente una scelta.
RsNano is a Rust port of nano-node