Skip to content

nicolocarcagni/sole

Repository files navigation


Go Report License Status

SOLE Blockchain

SOLE (Secure Open Ledger for Education) is an academic Proof-of-Authority (PoA) blockchain implemented in Go. It provides a lightweight, performant distributed ledger environment designed specifically for educational integration and research at the University of Salento.

Project Overview

The SOLE network operates as a Hybrid P2P Network, prioritizing high throughput and immediate finality without the energy overhead of computational mining.

  • Consensus: Proof of Authority (PoA). A deterministic set of authorized validators (e.g., University Administration, Faculty) securely signs blocks.
  • Data Structure: Features a Persistent UTXO Set backed by BadgerDB for strict double-spend prevention and $O(1)$ balance verification.
  • Tokenomics: Hard-capped at 19.55 Million SOLE, featuring a deflationary emission curve halving every 195,500 blocks.
  • Networking: Operates on a modular libp2p stack supporting DHT-based peer discovery, NAT traversal, and automatic mDNS for LAN synchronization.
  • Interoperability: Exposes a robust JSON REST API for seamless integration with external wallets and blockchain explorers.

Prerequisites

  • Go 1.19 or higher

Quickstart

Build the Node

Clone the repository and compile the CLI executable:

git clone https://github.com/nicolocarcagni/sole.git
cd sole
go build -o sole-cli .

Run the Node

To bootstrap the local persistence layer and immediately join the public P2P network:

./sole-cli chain init
./sole-cli node start

This sequence automatically generates a persistent P2P identity (node_key.dat), attempts to reach the configured bootstrap nodes, and begins block synchronization.

Documentation

Comprehensive technical documentation is maintained in the docs/ directory.

  • CLI Manual: Detailed command-line usage and node configuration flags.
  • API Reference: Exact JSON schemas and REST endpoints for external integrators.
  • Technical Whitepaper: Cryptographic specifications and consensus architecture.

Disclaimer

This software is provided exclusively for academic research and testing. While it implements standard cryptographic primitives (ECDSA, NIST P-256, SHA-256), the codebase has not undergone a commercial security audit. It is strictly prohibited from holding real-world financial assets.

About

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

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages