← Back to list

Come abbiamo costruito una blockchain trasparente in poche settimane

Tecnico ma comprensibile — un dietro le quinte di come funziona il nuovo SpritzMoon, dal backend al registro pubblico.

SpritzMoon · 2026-04-21 08:40 · 0 claps · 4.1 min read
#spritzmoon #cryptocurrency #mining #spritz #finance
Open on Medium ↗
Wiki topics: CRY · Crypto & Web3 ECO · Economy · General 🌐 · Web Development 🔭 · Astronomy & Space 💪 · Fitness & Wellness

Come abbiamo costruito una blockchain trasparente in poche settimane

Tecnico ma comprensibile — un dietro le quinte di come funziona il nuovo SpritzMoon, dal backend al registro pubblico.

Come abbiamo costruito una blockchain trasparente in poche settimane

Un dietro le quinte tecnico (ma comprensibile) del nuovo SpritzMoon: backend, mining server-side, trasferimenti atomici e registro pubblico.

Cos’è davvero “SpritzMoon” sotto il cofano

Quando dici “blockchain” a qualcuno, l’immaginario corre subito a Bitcoin o Ethereum: reti distribuite con migliaia di nodi, proof-of-work, milioni di transazioni al giorno. Quella tecnologia è straordinaria, ma è sproporzionata per un progetto di community.

SpritzMoon ha scelto un approccio diverso: una blockchain centralizzata trasparente. Apparentemente è una contraddizione in termini, in realtà ha senso quando lo guardi bene.

Il modello “ledger pubblico centralizzato”

Esiste un server centrale che mantiene il database di tutti i wallet, i saldi, le transazioni. Tutto è scritto in chiaro, leggibile da chiunque, in tempo reale, attraverso il registro pubblico https://spritzmoon.net/registry.html.

Vantaggi:

  • Velocità immediata (nessun bisogno di consensus distribuito)
  • Costo zero per gli utenti (nessuna gas fee)
  • Trasparenza totale (il registro pubblico è leggibile da chiunque)
  • Semplicità di partecipazione (basta aprire un sito)

Trade-off accettato:

  • Centralizzazione tecnica
  • Non è una “vera” blockchain decentralizzata

Sì, sappiamo che questo farà storcere il naso ai puristi. Ma SpritzMoon non vuole essere “la prossima Bitcoin”: vuole essere uno strumento di community semplice, accessibile a chiunque. La trasparenza la otteniamo rendendo pubblico ogni dato, non distribuendo il consenso su 10.000 nodi.

L’architettura in 4 componenti

  1. Backend Node.js + SQLite

Il cuore di SpritzMoon è un server Node.js con Express che gira su Render. Il database è SQLite (con persistenza su disco) — semplice, affidabile, perfetto per la nostra scala.

Tabelle principali:

  • devices— wallet con saldo e fingerprint
  • transactions — registro immutabile di tutte le operazioni
  • mining_sessions — sessioni di mining attive e chiuse
  1. Mining server-side anti-cheat

Quando un utente preme “Start Mining”, il server registra il timestamp di inizio. Quando preme “Stop”, il server (non il client!) calcola il tempo trascorso e genera la ricompensa. Questo significa che modificare il codice JavaScript del browser non serve a niente: l’autorità è il server.

In più c’è un Cap di 8 ore per sessione, per evitare che sessioni dimenticate aperte per giorni generino ricompense surreali.

  1. Trasferimenti atomici

I trasferimenti tra wallet usano le transazioni atomiche di SQLite.

Significa che il decremento del mittente, l’incremento del destinatario e l’inserimento della transazione nel registro avvengono tutti insieme, o non avviene niente. Impossibile che il mittente perda fondi senza che il destinatario li riceva, o viceversa.

javascript const tx = db.transaction(() => { db.prepare(‘UPDATE devices SET balance = balance — ? WHERE device_id = ?’) .run(amount, sender_id); db.prepare(‘UPDATE devices SET balance = balance + ? WHERE device_id = ?’) .run(amount, recipient_id); db.prepare(‘INSERT INTO transactions …’).run(…); }); tx();



Questo è il pattern classico delle “ACID transactions” e funziona benissimo per la nostra scala.

4. Registro pubblico real-time

Il registro pubblico è una pagina HTML statica che fa polling all’API ogni 15 secondi. Mostra in tempo reale:
- Numero totale di blocchi (gruppi di 5 transazioni)
- Utenti registrati
- Miner attivi adesso
- Hash rate stimato
- Lista delle ultime 100 transazioni con tipo, mittente, destinatario, importo, timestamp

Tutti i dati provengono dallo stesso database del backend. Nessuna scatola nera.

Come gestiamo le notti senza utenti

Il backend gira su Render free tier, che ha una caratteristica scomoda: dopo 15 minuti di inattività va in “sleep”. La prima richiesta dopo lo sleep ci mette 30–50 secondi a svegliarlo.

Per gestirlo senza fastidi per gli utenti:
- Il frontend ha logica di **retry con backoff esponenziale** — se l’API non risponde subito, riprova fino a 8 volte con intervalli crescenti
- Il database è su un disco persistente così i dati sopravvivono ai riavvii
- Quando l’utente apre il sito, vede subito un’interfaccia che si aggiorna progressivamente man mano che il backend risponde

Cosa succede se il server cade?

Domanda giusta. Tre risposte:

1) Backup quotidiani. Il database SQLite viene salvato regolarmente. In caso di catastrofe possiamo ripristinare lo stato.

2) Modalità offline locale. Il frontend ha una cache localStorage. Se l’utente è offline, può vedere il proprio saldo e il proprio Device ID anche senza connessione (anche se ovviamente non può fare transazioni).

3) Trasparenza nel disclaimer. Diciamo apertamente agli utenti che SpritzMoon è centralizzato. Chi partecipa lo fa sapendo che si fida del team. Non è zero-trust, è “trust verifiable” — puoi sempre verificare ogni transazione nel registro pubblico.

E se la community cresce?

Se un domani SpritzMoon dovesse avere migliaia di utenti attivi, l’architettura attuale diventa insufficiente. Ma è un buon problema da avere, e ci sono due strade naturali:

Strada A — Scale up: passare a Postgres, mettere il backend su un’istanza dedicata, aggiungere caching Redis. Costa qualche decina di euro al mese ma regge migliaia di utenti.

Strada B — Migrazione su blockchain reale: distribuire SPM come token vero su Solana, BSC o Stellar. A quel punto diventa una crypto “vera” e self-custodial. Questa è la strada che valuteremo se la community lo richiederà e se ci saranno le risorse per farlo correttamente.

Entrambe sono opzioni aperte. Per ora, l’architettura attuale è perfetta per quello che siamo: un progetto di community che vuole crescere organicamente, senza inseguire hype o tentare di essere quello che non è.

L’open source è la prossima frontiera

Stiamo valutando di pubblicare il codice del backend su GitHub. Sarebbe la massima espressione della trasparenza che predichiamo: chiunque potrebbe vedere esattamente come funziona il sistema, suggerire miglioramenti, segnalare bug.

L’unico motivo per cui non l’abbiamo già fatto è che vogliamo essere sicuri della qualità del codice prima di metterlo in vetrina. Stay tuned.

In sintesi

SpritzMoon non è l’ennesimo clone di Bitcoin. È un progetto di community che usa la tecnologia blockchain in modo pragmatico, onesto e accessibile. Non promette di rivoluzionare il mondo della finanza. Promette aperitivi.

E sai cosa? Forse è proprio quello che ci voleva.

🍹

— -

Vuoi vedere SpritzMoon in azione? Apri il sito [https://spritzmoon.net](https://spritzmoon.net) e inizia a minare in 30 secondi. Oppure controlla il registro pubblico [https://spritzmoon.net/registry.html](https://spritzmoon.net/registry.html) per vedere tutte le transazioni in tempo reale.

Per domande tecniche: [info@spritzmoon.net](mailto:info@spritzmoon.net)

메타데이터
post_id
84045cfc0ec2
slug
come-abbiamo-costruito-una-blockchain-trasparente-in-poche-settimane-84045cfc0ec2
url
https://medium.com/@spritzmoon/come-abbiamo-costruito-una-blockchain-trasparente-in-poche-settimane-84045cfc0ec2
canonical_url
https://medium.com/@spritzmoon/come-abbiamo-costruito-una-blockchain-trasparente-in-poche-settimane-84045cfc0ec2
author_url
https://medium.com/@spritzmoon
status
ok
fetched_at
2026-07-14 09:34:12