Worker Installation

Overview

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.

Create Worker Account Install NuLink Worker Configure and Run a Worker node Bond the Worker node with your staking account

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.

Installation

Update Depencies

sudo apt update && sudo apt upgrade -y
sudo apt install ufw

Install Latest Docker Engine and Pull Latest Horus Image

curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
docker pull nulink/nulink:latest

Setup Firewall

sudo ufw allow ssh
sudo ufw allow 9151/tcp
sudo ufw allow

And press y then enter.

Setup Password Variable

export NULINK_KEYSTORE_PASSWORD=<YOUR NULINK STORAGE PASSWORD>
export NULINK_OPERATOR_ETH_PASSWORD=<YOUR WORKER ACCOUNT PASSWORD>

Change both to the password you preffered

Create Worker Account

Download GETH and Extract

wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.10.23-d901d853.tar.gz && tar -xvzf geth-linux-amd64-1.10.23-d901d853.tar.gz

Rename the directory

mv geth-linux-amd64-1.10.23-d901d853 geth

Go to the geth dir

cd geth/

Now Create the worker account key by running the command below inside the dir geth

./geth account new --keystore ./keystore

You will be prompted to enter the password and confirm the password. Please remember this password for late use.

Example:

INFO [09-08|15:30:11.904] Maximum peer count                       ETH=50 LES=0 total=50
INFO [09-08|15:30:11.905] Smartcard socket not found, disabling    err="stat /run/pcscd/pcscd.comm: no such file or directory"
Your new account is locked with a password. Please give a password. Do not forget this password.
Password: 
Repeat password: 

Your new key was generated


Public address of the key:   0x8B1819341BEc211a45a2186C4D0030681cccE0Ee
Path of the secret key file: /root/geth-linux-amd64-1.10.23-d901d853/keystore/UTC--2022-09-13T01-14-32.465358210Z--8b1819341bec211a45a2186c4d0030681ccce0ee

- You can share your public address with anyone. Others need it to interact with you.
- You must NEVER share the secret key with anyone! The key controls access to your funds!
- You must BACKUP your key file! Without the key, it's impossible to access account funds!
- You must REMEMBER your password! Without the password, it's impossible to decrypt the key!
cd $HOME
sudo mkdir nulink

Copy the keystore file of the Worker account to the host directory. The private file generated by NuLink Worker will also be stored in this directory.

cp $HOME/geth/keystore/* $HOME/nulink

Give the directory 777 Permission

sudo chmod -R 777 $HOME/nulink

Init Worker

docker run -it --rm \
-p 9151:9151 \
-v $HOME/nulink:/code \
-v $HOME/nulink:/home/circleci/.local/share/nulink \
-e NULINK_KEYSTORE_PASSWORD \
nulink/nulink nulink ursula init \
--signer keystore:///code/UTC--2022-09-13T01-14-32.465358210Z--8b1819341bec211a45a2186c4d0030681cccXXXX \
--eth-provider https://data-seed-prebsc-2-s2.binance.org:8545 \
--network horus \
--payment-provider https://data-seed-prebsc-2-s2.binance.org:8545 \
--payment-network bsc_testnet \
--operator-address <Operator Address> \
--max-gas-price 10000000000

Change the --signer and --operator-address to your own! Example Output :

# step 1
 Detected IPv4 address (8.219.186.xxx) - Is this the public-facing address of Ursula? [y/N]: y
 
 Please provide a password to lock Operator keys.
 Do not forget this password, and ideally store it using a password manager.
 
 # step 2
 Enter nulink keystore password (8 character minimum): xxxxxx
 Repeat for confirmation: xxxxxx
 
 Backup your seed words, you will not be able to view them again.
 
 xxxxxxxxxxxxxxxxxxxxxxxx
 
 # step 3
 Have you backed up your seed phrase? [y/N]: y
 
 # step 4
 Confirm seed words: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 
 
Public Key:   02bb2067d21a677ce928967c0ece79a9
Path to Keystore: /home/circleci/.local/share/nulink/keystore

- You can share your public key with anyone. Others need it to interact with you.
- Never share secret keys with anyone! 
- Backup your keystore! Character keys are required to interact with the protocol!
- Remember your password! Without the password, it's impossible to decrypt the key!


Generated configuration file at default filepath /home/circleci/.local/share/nulink/ursula.json

* Review configuration  -> nulink ursula config
* Start working         -> nulink ursula run

Backup your Seed!

Run the worker

Before running the worker make sure you have tBNB, if not request ​ Run Worker

docker run --restart on-failure -d \
--name ursula \
-p 9151:9151 \
-v $HOME/nulink:/code \
-v $HOME/nulink:/home/circleci/.local/share/nulink \
-e NULINK_KEYSTORE_PASSWORD \
-e NULINK_OPERATOR_ETH_PASSWORD \
nulink/nulink nulink ursula run --no-block-until-ready

And Voila! Your worker is now running To check the logs you can type

docker logs -f ursula

Example output:

Authenticating Ursula
Loaded Ursula (horus)
✓ External IP matches configuration
Starting services
✓ Node Discovery (Horus)
✓ Work Tracking
✓ Start Operator Bonded Tracker
✓ Rest Server https://8.219.186.xxx:9151
Working ~ Keep Ursula Online!

To check running container you can run

docker ps

To stop container you can run

docker stop ursula

To Restart container

docker restart ursula

Now you can go to the next step which is Bonding the worker to provider.

Last updated