Hedgehog
Hedgehog is the node software of the Unigrid network: one program that joins a peer-to-peer network, agrees with its peers on a small set of signed network parameters, and, in a coming release, stores files across the network so that they survive the loss of individual machines. The same executable is the network daemon, the command-line client that controls it, and a stand-alone key utility. The current release is 0.0.8, and Running Hedgehog shows how to download, check and start it.
What it does
- Peer-to-peer networking. Nodes find each other and exchange data over QUIC, an encrypted transport built on UDP. See Peer-to-peer network protocol.
- Governed network parameters. Supply, vesting and storage settings are sporks: signed records that every node verifies, and that take effect only when two different network keys have signed them. See Grid sporks.
- A REST interface. A node is controlled over HTTPS, which also serves an S3-compatible object store, and the command-line client is built on it. See REST interface.
- A bridge from the legacy chain. Every address, balance and transaction of the legacy Unigrid chain is carried over as a signed, queryable snapshot. See Legacy chain snapshot.
Upcoming
Release 0.0.8 does not have gridnodes or network storage yet. They are on the master branch, and the
pages that describe them say so.
- Network storage. A file is encrypted on the owner’s node, cut into fragments and spread over the gridnodes. Any 8 of the 24 guaranteed fragments of a group can be lost without losing data, and the gridnodes rebuild missing fragments among themselves while the owner is offline. See Network storage and Erasure coding.
- A ledger. A chain of account balances kept by a voted set of validators, where every block is signed
by more than two thirds of them. It is on the
ledgerbranch and not part of a release. See Ledger.
Where to start
| If you want | Read |
|---|---|
| To run a node | Running Hedgehog |
| The whole picture in ten minutes | Architecture overview |
| What makes the storage durable and private | Network storage, then Erasure coding |
| How the network is governed | Grid sporks |
| To talk to a node | REST interface |
| To build, test or package the code | Build, testing and native image |
| To add or change a component | CDI container and component lifecycle |
Each page is a short overview that ends with the source files to open for the detail. The reasoning
behind the network and consensus design is in the
white paper, and the storage design in
documentation/storage-white-paper/ of the Hedgehog repository.
Key facts
| Language and runtime | Java 25, also shipped as a single executable for Linux, macOS and Windows |
| Peer-to-peer port | 52883 (QUIC over UDP) |
| REST port | 52884 (HTTPS, bearer token) |
| Build | mvn clean install |
| License | GNU Affero General Public License 3, with the addendum in COPYING.addendum |