Skip to content

Latest commit

 

History

History
40 lines (28 loc) · 2.62 KB

README.md

File metadata and controls

40 lines (28 loc) · 2.62 KB

The Sharded Unigrid Treechain Network

Hedgehog

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.

For developers that want to build Hedgehog

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.

Running Hedgehog

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

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/.