As the decentralized landscape continues to evolve, NuLink emerges as a key player in the realm of privacy-focused solutions for decentralized applications. If you're eager to explore and contribute to NuLink's ecosystem, setting up a Horus testnet node is a great way to get started. In this step-by-step guide, we'll walk you through the process of setting up your NuLink Horus testnet node, allowing you to actively participate in the development and testing phases of this innovative project. First lets look at the testnet milestones broken down by Phase (source)

We are currently at Phase 1 and we will do Number 2, which is the Worker Node Installer Testing.
Access the NuLink dashboard here https://dashboard.testnet.nulink.org
Connect your wallet (we are using Metamask here on this guide) and switch to BSC Testnet.
Claim some test tokens from the faucet (see screenshot below)

Head to staking tab and stake 5 tNLK tokens

Prompts will appear on your Metamask click on approve and sign.
Launch your VPS on any provider, for this guide we will use Contabo.
Select Cloud VPS S

Click on Apps & Panels and select Docker and choose Ubuntu 22.04 from the dropdown.

It will take a few minutes before your server is ready. Wait for the email which contains the IP address of your new server

Before we proceed to the next step we might need to install an SSH client if you are running on Windows machine, download and install Putty.
Open Putty and paste the IP address you got from your email to the Host Name or IP Address field and click Open

Login as: root (press enter)
and type or paste the password you key in while purchasing the server

If you are on MacOS or Linux, just open the default terminal and key in
ssh root@12.34.56.78(replace with the IP of your server)

Let’s ensure everything is up to date type the following and press enter
sudo apt-get update && sudo apt-get upgrade -yInstall some dependencies
sudo apt install pkg-config curl git-all build-essential libssl-dev libclang-dev ufwVerify that docker has been installed, you should see something like the screenshot below:

After that let’s run some docker container
docker run hello-world

Let us now create the Node Worker Account
wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.10.23-d901d853.tar.gzUnpack the package we just downloaded
tar -xvzf geth-linux-amd64-1.10.23-d901d853.tar.gzGo inside the directory
cd geth-linux-amd64-1.10.23-d901d853/Create the new Worker address Account
./geth account new --keystore ./keystore

This will prompt you to enter a password and once confirmed it will start generating a new worker address and the location of the keystore file. Make sure to keep this information safe somewhere. We will need them later.
Time to start installing and running our Worker node
docker pull nulink/nulink:latest

Let us create a new directory under root, first go to root directory
cd /rootThen create a new directory named nulink
mkdir nulinkCopy the Keystore files we generated a while ago to this newly created directory
cp /root/geth-linux-amd64-1.10.23-d901d853/keystore/* /root/nulinkChange permission
chmod -R 777 /root/nulink

Let us now initialize our worker node with the new account, type each command below and press after each command, this is the same password you used a while ago when we were generating the worker address.
export NULINK_KEYSTORE_PASSWORD=your_very_secure_passwordexport NULINK_OPERATOR_ETH_PASSWORD=your_very_secure_password

Run the following commands and ensure to change the encircled portion with the values you get from the Worker Address generation above
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--2022-REPLACE_THIS_THE_ACTUAL_VALUE YOU GOT FROM WALLET GENERATION> \ --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 <REPLACE THIS with THE ACTUAL WORKER ADDRESS> \ --max-gas-price 10000000000

It will then ask you to complete some steps with a prompt below:
Detected IPv4 address (XXX.XXX.XXX.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. 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. xxxxxxx xxxxxxxx xxxxxxx xxxxxxxxxx xxxxxxxx xxxxxxxxxx xxxxxxx Have you backed up your seed phrase? [y/N]: y Confirm seed words: xxxxxx xxxxxxxxxxxx xxxxxxxxxxxxxxxxxx Public Key: 02xxxxxxxxxxxxxxxxxxxxxxxxxxxx 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 file path /home/circleci/.local/share/nulink/ursula.json * Review configuration -> nulink ursula config * Start working -> nulink ursula runMake sure to keep the information above saved somewhere.
Let us now RUN the node.
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-readyAn ID will be generated if everything goes well, save that ID for future reference.
Let us now confirm the status of our node by running the command below
docker logs -f ursulaIt should say something about
Working - Keep Ursula Online!Let us give some BNB to our Worker Node. Go to BNB Chain’s Faucet
Paste your Worker Node’s Address and click
Send 0.3 BNB

Go back to your NuLink Dashboard
https://dashboard.testnet.nulink.orgClick Bond Worker and paste your worker node address, it might take a few minutes before your NODE IP to show up and for the Worker Status to go ONLINE, but you should see your worker address to be populated.

After completing 7 epochs (approximately 7 days 1 epochs = more or less 24 hours) with a living ratio above 80% you need to fill out this FORM
At the end of Phase One , a raffle will happen for all eligible stakers/node operators.
Good luck and may the odds be ever in your favor!
References and Useful Links:
1. https://docs.nulink.org/products/testnet\ 2. https://www.nulink.org/blog-posts/nulink-testnet-horus-2-0-phase-one-testing rules
3. Discord Discussion Channel
4. Telegram Discussion Channel
5. Form - https://forms.gle/9ZZgECdJFJFQHGuz8





