SkillAgentSearch skills...

Core

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.

Install / Use

/learn @Nion-Network/Core
About this skill

Quality Score

0/100

Category

Operations

Supported Platforms

Zed

README

<div align="center"> <h1> <img alt="Nion Logo" src="https://nion.network/logo.png" style="vertical-align: middle" width ="100"> Nion Network Core </h1> <a href="https://medium.com/@nionnetwork"> <img alt="Medium Badge" src="https://img.shields.io/badge/Medium-12100E?logo=medium&logoColor=white"/> </a> <a href="https://t.me/NionNetwork"> <img alt="Telegram Badge" src="https://img.shields.io/badge/Telegram-2CA5E0?logo=telegram&logoColor=white"/> </a> <a href="https://twitter.com/NetworkNion"> <img alt="Twitter Badge" src="https://img.shields.io/badge/Twitter-1DA1F2?logo=twitter&logoColor=white"/> </a> <br> <br> <a href="#"> <img alt="PR" src="https://img.shields.io/github/issues-pr/Nion-Network/Core?color=%235352ed"/> </a> <br> <a href="#"> <img alt="Issues" src="https://img.shields.io/github/issues/Nion-Network/Core?color=violet"/> </a> <br> <a href="#"> <img alt="MIT License" src="https://img.shields.io/badge/license-MIT-green"/> </a> <br> <a href="#"> <img alt="Website" src="https://img.shields.io/website?url=https%3A%2F%2Fnion.network"/> </a> <br> <a href="#"> <img alt="LOC" src="https://img.shields.io/tokei/lines/github/nion-network/core?label=LOC"/> </a> <br> <a href="#"> <img alt="Stars" src="https://img.shields.io/github/stars/Nion-Network/Core?color=%23a29bfe"/> </a> </div>

Features

  • [x] Kademlia distributed hash table protocol
  • [x] UDP networking for faster and light-weight communication
  • [x] docker container tracking
  • [x] docker container migration
  • [x] rpc and web dashboard view of the blockchain
  • [x] grafana logging and visualisations
  • [x] cluster computation
  • [x] network configuration
  • [x] Mary Tree implementation
  • [x] committee voting
  • [x] verifiable delay computation
  • [ ] Zero knowledge proof of migration successfully running #Theoretical
  • [ ] Independent verification by the committee of fair-play by the nodes
  • [ ] Punishment of nodes that act maliciously

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.

View on GitHub
GitHub Stars14
CategoryOperations
Updated5mo ago
Forks0

Languages

Kotlin

Security Score

92/100

Audited on Oct 24, 2025

No findings