Hedgehog is a high-performant, concurrent peer-to-peer treechain (blockchain) network built on top of Netty and Java NIO.
Currently published features:
- Gridnode sporks and configurable network properties
- Peer to peer distriubution
- REST interface
Upcoming features currently in development:
- Shard group and network storage (accesible via Janus and virtual desktop drives)
- Built in SOCKS5 Proxy for VPN-like functionality
- Amazon S3 REST API to access storage on the network
Features slated for 2023:
- Web Assembly support
- Compute workloads
- Duality consensus
- GPU workloads
Secondary goals:
- Replacement of the network and consensus chain in the legacy daemon, including complete or partial migration to Hedgehog. We are currently investigating different options for the network and what direction makes the most sense for the Unigrid network out of a go-to-market perspective.
Hedgehog requires Java 17+. To run and build the distribution you need Maven. To execute a build you need to run the following command from within the Hedgehog directory:
mvn clean install
This will create an archive in target/hedgehog-<version>-SNAPSHOT-jar-with-dependencies.jar
. This can then be started with java -jar hedgehog-<version>-SNAPSHOT-jar-with-dependencies.jar
.
While most people will not run Hedgehog manually, it is certainly possible. For documentation on all the features in the distribution please run the Hedgehog jar with java -jar hedgehog-<version>-SNAPSHOT-jar-with-dependencies.jar --help
. This will display all the options available when executing the application.
Depending on the options passed, Hedgehog will act as a network daemon, client or stand-alone application.
Native image support is available via the native-image sub-project. Because of problems with CDI and dependencies being reliant on a full CDI implementation, the native image is not really native, but wraps a JVM and the hedgehog jar into a native version for execution.
To build the native image, execute mvn package
inside the native-image module/project. Depending on the operating system, this will generate an executable hedgehog.exe
or hedgehog.bin
fille inside the native-image/target/
.