Join the Tockchain public testnet and gain early access to the infrastructure powering the next generation of stablecoins
Welcome to the Tockchain Public Testnet!
Project Tockchain is a research initiative for a standalone Layer 1 blockchain with native Qubic integration. If our research proves successful, Tockchain will serve as the foundation for Valis Stablecoins. VUSD, our first stablecoin, will be issued on both Qubic and Tockchain.
This guide will walk you through the steps to set up and run your own node on the Tockchain testnet.
If you would prefer to participate as a user instead of running a node, check out the “Tockchain Testnet Guide for Users” for instructions.
By running a node, you will contribute to the network’s resilience and performance at scale.
Interested in becoming a node operator for the Tockchain testnet? Follow these steps to get started:
_spelunker_
) to request becoming a node operator.You’ll use a Unix-based server (like Linux). Don’t worry if you’re new. We’ll guide you!
New to Unix? Don’t worry, here’s a quick guide. These basics will help you set up your node:
Command | Use | Example |
---|---|---|
sudo |
Runs a command as an admin | sudo ./generator |
ls |
Lists files | ls |
ls <filename> |
List information about a specific file | ls valis.conf |
cd |
Switches folders | cd ~/valis |
chmod +x |
Makes a file runnable (executable) | chmod +x vcli |
./<binaryname> |
Runs a file from your current folder | ./vcli |
ping |
Tests your internet. | ping google.com |
<aside> ❓
Tip: Stuck? Try adding --help
to the command (e.g., ./vcli --help
) or ask in the #op-node-operators channel on the Valis Discord.
</aside>
<aside> ⚠️
In code blocks, text like <password0>
or <address0>
is highlighted in a different color and means “replace this with your value” (e.g., “MySecurePass123” for a password). Don’t type the < >
symbols.
</aside>
The Command Line Interface (CLI) can show two different types of prompts to you:
user@server:~/valis$
and lets you use Unix commands like ls
../vcli
). It looks like vcli>
(assuming you execute the vcli
binary), and lets you use binary-specific commands. When you finish using the binary interactive prompt, type exit
or Ctrl+C to return to the terminal prompt.<aside> ❓
Tip: If you’re unsure where you are, check the prompt. If it shows:
vcli>
, generator>
, validator>
, or vpoint>
: you’re in the interactive prompt for that binary.user@server:~/valis$
: you’re back in the terminal prompt.</aside>
For more help when issues arise, see “Troubleshooting” at the end of this guide.
To assist with your setup and answer questions about Unix commands or basic node operation, we recommend using an AI assistant (use Grok for best results). This will save our small team’s time, allowing us to focus on Tockchain-specific support in the #op-node-operators channel on the Valis Discord.
How to Use an AI Assistant:
.md
file, and save it to your computer..md
file when interacting with the AI or pasting its contents, depending on the platform.chmod +x
?” or “What does sudo
mean?”).<aside> 📌
Our team is small, and Qsilver is focused on developing the Tockchain protocol. Using an AI for basic questions about Unix commands helps us prioritize support for Tockchain-specific issues. Please ask the AI first. If Grok 3 or similar can’t assist, we’re here to help on the Valis Discord!
</aside>
Tockchain uses a two-tier versioning system to track network and software changes clearly:
Please note that Testnet versions (e.g., Testnet 2.0) and software versions (e.g., tockchain-vusd-generator-2.0.0) use separate, independent numbering systems. Do not assume a testnet version matches a software version. Always check the specific requirements in this guide for each testnet phase.
Each testnet has two types of goals: network goals and feature goals.
The current testnet, 2.0, aims to achieve the following:
Tockchain operates two separate testnets:
Ensure you are using a dedicated server (no VPS), exclusively for Testnet (no unrelated workloads that could impact performance), running Unix, and meeting the minimum hardware requirements. The server can be self-hosted or colocated with a hosting provider.
Minimum | Ideal | |
---|---|---|
Hardware | ||
CPU | 8-core | — |
RAM | 32GB | 64GB for high-volume transactions |
Storage | 100GB+ SSD (sufficient for several hours of transactions, prunes automatically when full) | More storage allows keeping a longer transaction history |
Connectivity | ||
IP | A static IP is required for a persistent connection. | — |
Bandwidth | 200Mbps dedicated with the ability to burst up to 1Gbps | A full 1Gbps dedicated connection |
<aside> ❓
Tip: A “static IP” is a fixed internet address for your server (unlike a changing one). “Bandwidth” is your internet speed. 200Mbps means fast, reliable connections.
</aside>
Ready to install the prerequisites on your Unix-based system? You will use the Unix commands from “Unix Basics for Node Operators” above. Don’t worry. We’ll guide you!
Set your system's timezone to UTC to ensure accurate timestamps for the node.
dpkg-reconfigure tzdata
Install tools your node needs to run and stay secure. These are like building blocks for Tockchain. Don’t worry if the names look technical, we’ll explain.
# Update your system to get the latest tools.
sudo apt update && sudo apt upgrade -y
# Install tools for building, networking, security, and downloading files
sudo apt install -y apache2 gcc gdb cmake nethogs libnanomsg-dev websocketd libgmp-dev uuid-dev libssl-dev curl
These tools help your node compile code, connect to the network, and secure transactions. If you see errors, check your internet is working with ping google.com
.
Secp256k1 is a security tool that helps sign transactions and verify them on Tockchain. Specifically, Secp256k1 is a cryptographic library used for elliptic curve cryptography (ECC). ‘ECC’ is a secure math method for transactions, like a digital lock. This step installs it on your server.
# Clone the secp256k1 library (used for secure transactions).
git clone <https://github.com/bitcoin-core/secp256k1>
cd secp256k1
# Set up for signing transactions securely.
cmake -DSECP256K1_ENABLE_MODULE_RECOVERY=ON .
# Build and install it.
make
sudo make install
sudo ldconfig
# Return to the previous directory.
cd ..
Your node tools will live in a valis
directory. This step sets up the Tockchain CLI tool.
The necessary files will be created in the valis
directory and/var/www/html/VUSD
. It’s not required to use Apache specifically, but /var/www/html
must exist.
# Create a single valis directory in your home folder and move into it.
mkdir ~/valis
# Move into the valis directory.
cd ~/valis
# Download the Tockchain CLI tool.
wget <https://raw.githubusercontent.com/valis-team/tockchain/main/CLI/tockchain-vusd-cli-v2.0.1>
# Rename it to 'vcli' for easier use.
mv tockchain-vusd-cli-v2.0.1 vcli
# Make vcli executable (this lets vcli run as a program).
chmod +x vcli
# Note:
<aside> 📌
This sets up vcli
in ~/valis
, where all tools (vcli
, generator
, validator
, vpoint
), files (valis.conf
), and directories (subseeds
) live. Run it with ./vcli
from here (e.g., ./vcli <password0>
). Stay in ~/valis
for all steps.
</aside>
Now, create your wallet and config file in ~/valis
. This prepares your node’s identity.
Each node operator must generate their wallet files, along with their public key, address, and IP address.
Create a wallet with a seed and address for your node. This step uses vcli
in ~/valis
.
Run the vcli
program to generate wallet files and a new address. This will create a wallet with a seed, public key, and address, which are securely stored in a subseeds
directory which will be automatically created in ~/valis
in a subseeds
directory.
You’ll need to specify a password to encrypt your seed. Don’t type *<password0>*
literally. Replace it with your own strong password, using letters and numbers, at least 8 characters (e.g., ./vcli MySecurePass123
).
# Run vcli to generate a wallet, replacing <password0> with your strong password (e.g., MySecurePass123).
./vcli <password0>
Running the vcli
program will start the vcli
binary interactive prompt. If you’re new to Unix, you might think you’re still in the terminal, right? However, you’ll notice you’re no longer seeing the terminal prompt (e.g. user@server:~/valis$
). Instead, now you are seeing the vcli binary interactive prompt, which looks like this (vcli>
). Make sure you understand how prompts work (see “Unix Basics for Node Operators” at the beginning of this guide).
Pick your node’s unique address from the wallet seed.
Your public key is like your node’s unique address on the Tockchain network. It’s what identifies your node to others. This public key is generated from a secret seed, which you created in Step 7.1. Keep your seed safe. It’s the key to recovering your address if needed.
If you’re running ./vcli <password0>
for the first time (from Step 7.1), vcli
will start its binary interactive prompt and offer you 5 options to create your public key (node address). Here’s what each option means and how to use it:
vcli
will use to generate a new public key.PARIS
) to customize your address (e.g., PARISXXEWR…
). This can help identify your node’s location (like your city or data center), but longer prefixes (up to 7 characters) can take longer to generate—be patient!Choose one of these options by typing the required information in the vcli
prompt and pressing Enter. vcli
will guide you through the process. Don’t worry, it’s interactive and gives clear instructions.
After selecting your option and generating your public key, you’re done with this step for now. Since we haven’t finished setting up your node, type exit
or press Ctrl+C to return to the terminal prompt (e.g., user@server:~/valis$
). You’ll use vcli
again later for transactions (like maketx
), but not yet.
The seed, private key, and password are all securely encrypted to ensure their protection.
The seed must be retrieved from the encrypted subseeds
directory for future use.
<aside> ⚠️
</aside>
Passwords can be of considerable length and should consist of printable text. It is recommended to limit passwords to letters and numbers, as the system has been tested primarily with simpler passwords.
For testing the public testnet, the generator and validator nodes are combined into one and must share the same address. To ensure addr0
(generator) and addr1
(validator) match, both addresses must come from the same seed.
In the future, generator and validator nodes will operate separately, each with its own unique address and password. This will enhance flexibility and security for node operators. The valis.conf
file already requires two addresses, as it is prepared for this future scenario.
<aside> ⚠️
</aside>