Skip to content

An educational, privacy-focused blockchain implementation written in Go.

License

Notifications You must be signed in to change notification settings

nicolocarcagni/sole

Repository files navigation

SOLE Blockchain ☀️

Go Report License Status

SOLE is a lightweight, academic Proof-of-Authority (PoA) blockchain written in Go. It powers the Unisalento digital token ecosystem, serving as a robust case study for distributed ledger technology.


🏗 Architecture

The ecosystem follows a decoupled, Hybrid Network architecture:

  • Public VPS Nodes: Acts as Bootnodes and API Gateways (Always Online).
  • Home/Private Nodes: Connect via NAT Traversal and participate in validation.
graph LR
    A["Telegram Bot/Apps"] <-->|HTTPS| B("Public VPS Node");
    B <-->|P2P/Internet| C["Other VPS Nodes"];
    C <-->|NAT Traversal| D["Home Node (Private)"];
    B -->|Persist| E[BadgerDB];
Loading

🚀 Quick Start

Local Development

Get your node running locally in seconds.

  1. Build: go build -o sole-cli .
  2. Initialize: ./sole-cli init
  3. Run: ./sole-cli startnode

🌍 Going Online (Public Network)

To deploy a public node on a VPS (DigitalOcean, AWS, Hetzner) accessible via the Internet:

👉 Read the Bare Metal Deployment Guide


🌟 Key Features

  • Consensus Core: Proof of Authority (PoA) engine using ECDSA. Energy-efficient validation.
  • Public P2P Network: Full Internet support with DNS Discovery and NAT Traversal.
  • Secure API: Built-in support for HTTPS/TLS (via Reverse Proxy) and Rate Limiting.
  • Reliability: Graceful Shutdown, BadgerDB v3 persistence, and Systemd integration.
  • Ecosystem: Full support for custodial apps like the Telegram Bot.

📚 Documentation


⚠️ ACADEMIC PROJECT This software is a Proof of Concept (PoC) developed for educational and research purposes at the University of Salento. It is not intended for production financial use.

About

An educational, privacy-focused blockchain implementation written in Go.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages