Giter Club home page Giter Club logo

nulink-network / nulink-core Goto Github PK

View Code? Open in Web Editor NEW
14.0 3.0 4.0 26.55 MB

NuLink network is a decentralized solution for privacy-preserving applications developers to implement best practices and best of breed security and privacy.

License: GNU Affero General Public License v3.0

Dockerfile 0.02% Shell 0.07% Makefile 0.10% PowerShell 0.01% Python 94.74% Solidity 0.91% Mako 0.04% Vyper 0.08% Batchfile 0.04% Roff 0.87% CSS 0.04% Smarty 0.01% HTML 2.97% DIGITAL Command Language 0.01% GAP 0.10%

nulink-core's Introduction

nulink-core

Overview

NuLink network is a decentralized solution for privacy-preserving applications developers to implement best practices and best of breed security and privacy. The NuLink network provides endpoint encryption and cryptographic access control. Sensitive user data can be securely shared from any user platform to cloud or decentralized storage and access to that data is granted automatically by policy in Proxy Re-Encryption or Attribute-Based Encryption. For the data user on the other side, Zero-Knowledge Proof can help them verify the data source. In more advanced privacy-preserving use cases, NuLink uses Fully Homomorphic Encryption to customize enterprise-level data computation services.

Minimum System Requirements

  • Debian/Ubuntu (Recommended)
  • 30GB available storage
  • 4GB RAM
  • x86 architecture
  • Static IP address
  • Exposed TCP port 9151, make sure it's not occupied
  • Nodes can be run on cloud infrastructure.

How to run the nulink worker node

The NuLink Worker is the node to provide cryptographic service in the NuLink network. It provides Proxy Re-encryption service in the Horus network and it will provide more services such as ABE, IBE, ZKP and FHE in NuLink mainnet. The staker needs running a Worker node to be eligible for token reward.

There are four steps to run a NuLink Worker:

  1. Create Worker Account
  2. Install NuLink Worker
  3. Configure and Run a Worker node
  4. Bond the Worker node with your staking account

Create Worker Account

Prepare an ETH type account for the Worker. We suggest creating a Worker account different from the staking account.

If you already know how to create one and access the keystore file, you can skip this step. Otherwise we recommend you to use Geth to create the Worker account. Please check here for details.

Install NuLink Worker

Start to download and install NuLink Worker. Install it using Docker (recommended) or install it with local installation. See here for more details.

Initialize and Run a Worker Node

Initialize the configuration and start the Worker Node. If install via docker, need to initialize the configuration and run it in Docker. Otherwise please check here for more details regarding local running.

Bond the Worker node with your staking account

Don't forget to bond it with your staking account to get reward after successfully running a NuLink Worker node using the NuLink Staking Dapp.

  • Navigate to NuLink Staking Dapp
  • Connect with the Staking account and make sure you have staked tokens in the staking pool
  • Enter the Worker address and URI to bond
  • Click “Bond Worker”

Refer here for more usage of NuLink Staking Dapp.

Support

You can find more informations:

If you seek more technical help, please join our Community.

nulink-core's People

Contributors

andi2233i avatar oneshut avatar pawnz0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

nulink-core's Issues

The worker checking mechanism is missing.

Describe the Bug
In current version, when bonding a worker node, it will only check if the node uri is online, and the current node uri has been used or not. But if the node uri is online and not been used before, it can be used for bonding neglect the real status of the worker nodes.

To Reproduce
If you can ping a false node with xxx:9151 URI, and use it to bond any fresh worker account to a fresh staker account. You will succeed. But this nodes is not runing at all.

Suggestion to fix it
Add a checking mechanism: when the backend server ping the node, the node need to return a signature which is signed by the worker account, the message is the node uri. Then when server check the signature, it can check if this worker is running with specific URI. This is one suggestion, maybe we can discuss it with other possibility to fix it.

transaction underpriced

Hi, after I bond the worker address, I found the following output. Am I doing something wrong? what should I do?

log

Restarting services ?

Describe the Bug
TypeError: argument of type 'NoneType' is not iterable

To Reproduce
nulink ursula run --config-file /home/ubuntu/nulink-1/ursula.json --rest-port 9151 --no-block-until-ready

Traceback or Screenshots (Optional)
OperatorBondedTracker: ✓ Operator 0xE9Dbe1B2D0207FB542C76a10c9686A67fb619F4c is bonded to staking provider 0xE9Dbe1B2D0207FB542C76a10c9686A67fb61
9F4c
_start_ursula
Restarting services
x [Operator 0xE9Dbe1B2D0207FB542C76a10c9686A67fb619F4c is no longer bonded to any staking provider] - Commencing auto-shutdown sequence...
OperatorNoLongerBonded
finally _shutdown_ursula
OperatorBondedTracker run exception: Traceback (most recent call last):
File "/home/ubuntu/.local/lib/python3.8/site-packages/nulink/network/trackers.py", line 74, in run
self._start_ursula(start_service=False)
File "/home/ubuntu/.local/lib/python3.8/site-packages/nulink/network/trackers.py", line 104, in _start_ursula
restart_run_arg_add('--start-service', str(start_service))
File "/home/ubuntu/.local/lib/python3.8/site-packages/nulink/network/trackers.py", line 92, in restart_run_arg_add
if option_str in self._restart_run_args and (origin_option_index := self._restart_run_args.index(option_str)) >= 0:
TypeError: argument of type 'NoneType' is not iterable

System (please complete the following information):

  • OS Version: Ubuntu 20.04.3 LTS
  • NULINK Version: 0.1.0
  • Ethereum Node Version:

Not enough nodes when create policy

When creating policy with a large shares, the system could not find enough worker nodes. Can add a backup route to provide stable nodes for selection. Could shift to the backup route when wait enough time(say 20 secs or more).

The version check mechanism is missing when handshake and ping.

Describe the Bug
The version check mechanism is missing when ping a node. This would cause uncompatible version would interrupt each other.

To Reproduce
When ping a node with an old version which is not compatible with the current version, it does not report any warning.

Suggestion to fix
Maybe it could add a version check mechanism while handshare or ping. And only those nodes with compatible versions could discover each other.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.