Back to Home

NuLink

Documentation

Minimum Hardware :

OS CPU RAM SSD
Ubuntu 20.04 4 8 30 GB

Install

1- Open Port

sudo ufw enable
sudo ufw allow 9151

2- Pre Install

sudo apt-get update
sudo apt install screen
sudo apt install docker.io

3- Download Geth on your server

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

4- Create Ethereum account

cd geth-linux-amd64-1.10.23-d901d853
./geth account new --keystore ./keystore
Create password

Save keystore

/geth-linux-amd64-1.10.23-d901d853/keystore/UTC--2024-02-09T13-33-06.226830019Z--bcb6caf8677408d56d54dba23e7c5879a592e005

5- Pull the latest NuLink image

docker pull nulink/nulink:latest

6- Create a directory in your host machine for later usage.

cd /root
mkdir nulink

7- Edit path

cp /root/geth-linux-amd64-1.10.23-d901d853/keystore/* /root/nulink
chmod -R 777 /root/nulink

8- Install Python & virtual environment

apt install python3-pip
pip install virtualenv
virtualenv /root/nulink-venv

9- Activate the newly created virtual environment

source /root/nulink-venv/bin/activate

10- Install the Nulink python package

wget https://download.nulink.org/release/core/nulink-0.5.0-py3-none-any.whl
pip install nulink-0.5.0-py3-none-any.whl
source /root/nulink-venv/bin/activate
python -c "import nulink"

11- Create Password.

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

Example:

export NULINK_KEYSTORE_PASSWORD=12345678
export NULINK_OPERATOR_ETH_PASSWORD=12345678
  1. Create screen
screen -S nulink

13- Initialize Node Configuration

docker run -it --rm \
-p 9151:9151 \
-v </path/to/host/machine/directory>:/code \
-v </path/to/host/machine/directory>:/home/circleci/.local/share/nulink \
-e NULINK_KEYSTORE_PASSWORD \
nulink/nulink nulink ursula init \
--signer <ETH KEYSTORE URI> \
--eth-provider <NULINK PROVIDER URI>  \
--network <NULINK NETWORK NAME> \
--payment-provider <PAYMENT PROVIDER URI> \
--payment-network <PAYMENT NETWORK NAME> \
--operator-address <WORKER ADDRESS> \
--max-gas-price <GWEI>

Example:

docker run -it --rm \
-p 9151:9151 \
-v /root/nulink:/code \
-v /root/nulink:/home/circleci/.local/share/nulink \
-e NULINK_KEYSTORE_PASSWORD \
nulink/nulink nulink ursula init \
--signer keystore:///code/UTC--2023-12-31T17-42-14.316243885Z--f3defb90c2f03e904bxxxxxxxxxxxxxxxxxxx \
--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 0xf3defb90c2f03xxxxxxxxxxxxxxxxxxxxxxxx \
--max-gas-price 10000000000
  1. Prepare :
  2. New Wallet for Staker with Fee tBNB
  3. Fee tBNB for wallet validator /Worker

15- Launch Node

docker run -it --restart on-failure -d \
--name ursula \
-p 9151:9151 \
-v /root/nulink:/code \
-v /root/nulink:/home/circleci/.local/share/nulink \
-e NULINK_KEYSTORE_PASSWORD=<your_password> \
-e NULINK_OPERATOR_ETH_PASSWORD=<your_password> \
nulink/nulink nulink ursula run --no-block-until-ready

16- Check Node Status

docker logs -f ursula
  1. Detach
CTRL a d
  1. Go to dahsbord : https://dashboard.testnet.nulink.org/
  2. Connect Address staker with Chain BSC_testnet
  3. Request NLK from the faucet on the top right of the dashboard next to the Metamask logo
  4. Then select the STAKING tab
  5. Click the APPROVE button
  6. Click the Stake button (max 5)
  7. Scroll down and select the bond to Worker button
  8. Insert the worker wallet

  9. fill form : https://docs.google.com/forms/d/e/1FAIpQLSdY2eXwQD-tKvJ_Ug-6hgdcWK_wUOZjXeJknw5XWSEO8gzJ2w/viewform