🖥️Installation

Guide for NuLink Staking Dashboard and Worker Account Setup

In this guide we use Docker for NuLink worker installation, because this one is easy to setup and monitor your node.

Staking Dashboard

We recommended to create new wallet for Metamask.

You need to Sign In on NuLink Staking Dashboard and if you get this message, just press Switch Network, make sure you already installed Metamask on your browser.

After that you need to Approve this message on Metamask and then press Switch Network

Get BNB and NLK Faucet for Stake

Before setup your node, you need some BNB for transaction fee and NLK to stake your node. You can get this faucet by using this link and then put your BNB Address from your Metamask.

Check your Metamask if your BNB Testnet balances is showing 0.3 BNB. Now you can claim your NLK tokens on NuLink Staking Dashboard. Check arrow on this screenshot below.

Press Proceed and Confirm the transaction on Metamask. Now you need to Stake your NLK to prepare for Worker later. Just put all of your NLK tokens, but you can put any amount and minimum is 1 NLK and maximum is 10 NLK

And then press approve and if you see this message like screenshot below, just put same as your NLK amount want to stake before and press Next and Approve.

After approving your NLK, you need to refresh the page and then go to Stake again and now you need to stake the NLK. I put this 5 NLK as a example and then you can press Stake and Confirm the transaction.

After all step is done, now you can see the NLK staking amount is showing on Dashboard. Now it's time to Setup Worker.

Worker Setup

Before setup your worker, make sure you have minimum specs for your VPS to run this node. You check on this link.

Download Geth

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

Unzip Geth

tar -xvzf geth-linux-amd64-1.10.23-d901d853.tar.gz

Open Geth Folder

cd geth-linux-amd64-1.10.23-d901d853/

Generate Ethereum Account and Keystore

./geth account new --keystore ./keystore

Put your password in there and make sure you need to remember it. After that you will see this result and don't forget to save your public address and also the secret key, you can use MobaXTerm to access SFTP File and download the keystore.

Save your Keystore that started with UTC- to your PC for safety reason. Check on path for your keystore same as the screenshot above.

sudo apt install docker.io

Don't forget to press Y and enter if they asked for confirmation to install docker. Now install NuLink Image.

docker pull nulink/nulink:latest

Now go to home directory and make folder for NuLink.

cd /root

mkdir nulink

Copy the keystore and move it to NuLink folder you created before using this command.

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

Now change permission using this command.

chmod -R 777 /root/nulink

Setup your password for keystore and worker. You need to remember it.

Setup Keystore Password

export NULINK_KEYSTORE_PASSWORD=xxxxxxxx

Setup Operator Password

export NULINK_OPERATOR_ETH_PASSWORD=xxxxxxxx

Change xxxxxxxx with your password (8 character minimum)

Initialize Node Configuration

This is just example if you're running using root and you just need to change --signer file name and --operator-address. For signer you can see the file name on nulink folder and you will see file started with UTC- and then copy the file name and change that on UTC-xxxxx. For operator address, you just put the address that you save when you generate geth account.

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-xxxxx \
--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 xxxxx \
--max-gas-price 10000000000

After some changes:

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--2024-01-01T01-14-32.465358210Z--8b1819341bec211a45a2186c4d0030681ccce0ee \
--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 0x8B1819341BEc211a45a2186C4D0030681cccE0Ee \
--max-gas-price 10000000000

After put this command on your VPS, you need to answer one by one like confirming your IPv4 and generate seed phrase for worker. You need to save this phrase to safeplace. You will see this step below.

# step 1
 Detected IPv4 address (8.219.186.125) - 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

After all step done, you will see the output below.

Output :

Next step is check your environment variables to make sure is still in there for running worker.

Keystore Password

echo $NULINK_KEYSTORE_PASSWORD

Operator Password

echo $NULINK_OPERATOR_ETH_PASSWORD

Don't forget to send some BNB to your worker account.

If there is output, now you can run the nulink worker.

docker run --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 \
-e NULINK_OPERATOR_ETH_PASSWORD \
nulink/nulink nulink ursula run --no-block-until-ready

Output:

Check logs:

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.125:9151
Working ~ Keep Ursula Online!

Now it's time to bond your worker with your account on NuLink Dashboard, you can find it on Staking menu and Node Information, press Bond Worker and put your worker address (the address you save before from geth account).

After Bond and Confirm transaction, check your IP and make sure your node is online. If yes, now relax you can check tomorrow after new epoch started you will see your Node Staking Amount and will be like this.

Don't forget to fill form to participate Horus 2.0 Testnet - Phase 1 (Finished)

Fill this form for Phase 2 Horus 2.0 Testnet - Phase 2 Form

Source: Documentation

Last updated