Skip to content

Nion is a blockchain based cloud infrastructure for the future of Web3. With a lightweight protocol it aims to build a decentralized and global network for IoT and Edge computing applications, optimising network's resource allocation in a transparent and verifiable way.

License

Notifications You must be signed in to change notification settings

Nion-Network/Core

Repository files navigation

Nion Logo Nion Network Core

Medium Badge Telegram Badge Twitter Badge
Commit Activity
PR
Issues
MIT License
Website
LOC
Stars

Getting Started

kotlin-badge gradle-badge docker-badge

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

  • Gradle
  • Docker
  • Java 9 or greater

Configuration

The build jar requiers a config.json in the working dir. The following is an example config used for running test-nets on a local machine.

{
  "trustedNodeIP": "172.17.0.2",
  "trustedNodePort": 5000,
  "keystorePath": ".",
  "maxNodes": 10000,
  "slotDuration": 10000,
  "initialDifficulty": 1000,
  "broadcastSpreadPercentage": 5,
  "committeeSize": 256,
  "influxUrl": "REDACTED",
  "influxUsername": "REDACTED",
  "influxPassword": "REDACTED",
  "dashboardEnabled": true,
  "loggingEnabled": false,
  "trustedLoggingEnabled": false,
  "historyMinuteClearance": 10,
  "historyCleaningFrequency": 5,
  "nodesPerCluster": 30,
  "maxIterations": 5,
  "packetSplitSize": 60000,
  "useCriu": false
}

Building

After building the executable jar with maven, build a docker container with the example Dockerfile.

docker build --tag node .

Note that testing using docker containers requires the bootstrap node to be booted first. Make sure that both trustedNodeIP, and trustedNodePort are set to the boostrap node. To check the IP of the bootstrap node you can use

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id

Running a node

docker run -it node

Note: depending on the operating system, and docker version you might need to pass a memmory limit flag to the container to avoid a problem where JVM assumes it has the entire system memory available. An expected memory usage should be between 300 and 500 MB.

Dependencies

Authors

  • Aleksandar Tošič - Initial Work, Research, Development - Dormage
  • Mihael Berčič - Development - MihaelBercic

License

This project is licensed under the MIT License - see the LICENSE file for details

Acknowledgments

We would like to acknowledge the collegue dr. Jernej Vičič from the University of Primorska Faculty of Mathematics, Natural Sciences and Information Technologies, and prof. dr. Mihael Mrissa from Innorenew CoE for the theoretical fundations, which are the basis for this implementation.

About

Nion is a blockchain based cloud infrastructure for the future of Web3. With a lightweight protocol it aims to build a decentralized and global network for IoT and Edge computing applications, optimising network's resource allocation in a transparent and verifiable way.

Topics

Resources

License

Stars

Watchers

Forks