Node Operator FAQ
Last updated
Last updated
Yes, you should run all the steps of Round onboarding for Public Testnet on the machine that will act as the validator.
Below are the hardware requirements:
Cores: 16 to 32
RAM: 64GB
CPU: Intel Xeon @ 2.8GHz or higher
Architecture: x86/64
Disk Type: SSD
Minimum Disk Size: 2TB
Network Bandwidth: 1Gbps
Yes, it’s expected for now. We'll release an update that enables pruning in the near future.
It's not currently possible.
In your latest_validator_info.json
file, your derived pool address is the value of account_address
.
Validator Testnet:
RPC Testnet:
You can view your current stake balance using the following script:
supra move tool view --function-id 0x1::pbo_delegation_pool::get_stake --args address:"$POOL_ADDRESS" address:"$DELEGATOR_ADDRESS" --url "$RPC_URL
Example Response:
{"result":["5854055647855","0","0"]}
The first value (5854055647855) represents your active stake
The second value represents your inactive stake.
The third value represents your pending inactive stake.
To claim rewards, you need to first unlock your stake and then withdraw your inactive stake.
Here are the steps:
Step 1: Unlock Stake Amount: You need to first check your active stake using the provided script. Once you know your active stake, you can unlock an amount less than or equal to your active stake. Please make sure the AMOUNT_TO_UNLOCK is at least 100000000 (1 SUPRA).
#!/bin/bash
RPC_URL="https://rpc-mainnet.supra.com/"
POOL_ADDRESS="0xdbd2155f2f5aee0e75bcf08b4aaab6f8332baf125623b839c3a3f2280099f27b" # Replace with your pool address
AMOUNT_TO_UNLOCK="100000000" # Replace with the amount you want to unlock
\ supra move tool run --function-id 0x1::pbo_delegation_pool::unlock --args address:"$POOL_ADDRESS" u64:"$AMOUNT_TO_UNLOCK" --url "$RPC_URL
Step 2: Withdraw Inactive Stake Amount
Note: This step can only be executed during the next lockup cycle.
#!/bin/bash
RPC_URL="https://rpc-mainnet.supra.com/"
POOL_ADDRESS="0xdbd2155f2f5aee0e75bcf08b4aaab6f8332baf125623b839c3a3f2280099f27b" # Replace with your pool address
AMOUNT_TO_WITHDRAW="100000000" # Replace with the amount you want to withdraw
supra move tool run --function-id 0x1::pbo_delegation_pool::withdraw --args address:"$POOL_ADDRESS" u64:"$AMOUNT_TO_WITHDRAW" --url "$RPC_URL
Important Notes:
You can only unlock an amount equal to or less than your active stake.
You can only withdraw an amount equal to or less than your inactive stake.
Once you unlock your stake, you must wait for the next lockup cycle before you can withdraw the inactive stake.
The smallest unit of SUPRA is Quants, where 1 SUPRA = 100,000,000 Quants.
You can do this by calling set_beneficiary_for_operator
to set a beneficiary address for your operator commission.
!/bin/bash
BEN_ADDR=0xabcdef # Replace with the address of the beneficiary
RPC_URL = "https://rpc-mainnet.supra.com"
supra move tool run --function-id 0x1::pbo_delegation_pool::set_beneficiary_for_operator --args address:$BEN_ADDR --url $RPC_URL
Replace $BEN_ADDR
, with the address of the beneficiary in the command above. After executing the command above, while the operator
would still be the address connected to the network as a validator, $BEN_ADDR
would receive the stake commensurate with the commission earned by the operator
. Use the steps provided in Q.2, above from the $BEN_ADDR
profile (with the private key of $BEN_ADDR
) to unlock/withdraw the stake that was earned as commission.
\
[2024-10-17T01:51:50.607720Z+00:00] WARN moonshot::core: Timeout reached for View { epoch_id: EpochId { chain_id: 6, epoch: 195 }, round: 2306 }
[2024-10-17T01:51:55.608661Z+00:00] WARN moonshot::core: Timeout reached for View { epoch_id: EpochId { chain_id: 6, epoch: 195 }, round: 2306 }
[2024-10-17T01:52:00.610197Z+00:00] WARN moonshot::core: Timeout reached for View { epoch_id: EpochId { chain_id: 6, epoch: 195 }, round: 2306 }
A: If the epoch and round are stuck, you will need to restart the network using a snapshot:
thread 'main' panicked at /home/ubuntu/smr-moonshot/consensus/node/src/bftnode.rs:57:14: fail to create rocksdb: DBError(Error { message: "Corruption: Corruption: IO error: No such file or directory: While open a file for random read: configs/smr_storage/000364.ldb: No such file or directory in file configs/smr_storage/MANIFEST-000369" }) note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
A: If you see the "Corruption: IO error," restart the network using the snapshot as mentioned in the previous solution. If the issue persists, ensure your environment is properly set up and your data paths are correct.
Step 1: Open ports 26000 and 27000.
Step 2: Restart the container using docker restart container-id
.
If your IP is not whitelisted, please provide your IPv4 to the Supra team on Discord to get access to the Grafana script.
Export the API key with:
export api_key=AIzaSyD2Byf2_yWYngvHnv6Ib7V6C2EpHY3LL0E
Run the installation script for your distribution:
sudo -E ./nodeops-monitoring-telegraf-centos.sh
# For CentOS
or
sudo -E ./nodeops-monitoring-telegraf.sh
# For other distributions
INFO rpc_node::listener: RPC node out of sync!
A: To resolve the "RPC node out of sync" error, restart the node from the latest snapshot using the instructions provided for snapshots.
[2024-11-06T08:20:47.531043Z+00:00] ERROR sop2p::behaviour: Subscription execution failed: "Closed(..)"
\ [2024-11-06T08:20:47.531922Z+00:00] ERROR sop2p::behaviour: Subscription execution failed: "Closed(..)"
\ [2024-11-06T08:20:47.531961Z+00:00] ERROR sop2p::behaviour: Subscription execution failed: "Closed(..)"
A: This issue can be resolved by increasing the system ulimit
for the number of open files. Follow the steps below:
Increase the shell file descriptor limit:
ulimit -n 65535
Increase the limit for the user by editing /etc/security/limits.conf:
soft nofile 65535
hard nofile 65535
Update system limits in /etc/sysctl.conf:
net.core.somaxconn=65535
sudo sysctl -p
The differences in stake values could be due to various factors:
All operators received 55M SUPRA from the Foundation at Genesis.
Additional rewards generated since then are added directly into each operator’s delegation pool.
If an operator has withdrawn some of their rewards, their stake may be lower.
If another entity besides the Foundation has delegated a stake to an operator, that could also account for the differences.
The Foundation keeps 55M SUPRA locked to ensure that validators continue to function properly. The rest of the stake, which is earned as a reward, can be unlocked or unstaked. However, you cannot unlock the 55M SUPRA delegated by the Foundation.
After unstaking, you must wait for the next lockup cycle, which is set to 48 hours, before you can withdraw your inactive stake.
Earnings per node are based on performance. However, since we do not currently record failed proposals, the reward calculations are based on the number of successful proposals. We plan to track performance metrics in the future, which will affect rewards.
You can find your delegator address private key by running the following command:
./supra profile list --reveal-secrets
The output ed25519_secret_key
is the key to your operator's Move account.
The function 0x1::pbo_delegation_pool::get_stake
returns a tuple with three values: active, inactive, and pending_inactive stakes.
Active stake: This is your current active stake.
Inactive stake: This is the stake that has been unlocked but is not withdrawn yet.
Pending inactive stake: This is the stake that has been unlocked and is awaiting the end of the lockup period before it becomes inactive.
The lockup duration is 48 hours, which is configurable via governance.
No, you can only unlock an amount equal to or less than your active stake. Please report any issues if you find you can unlock more than your active stake.
Please follow the instructions provided in the ‘To Update Your RPC Node’ section in this document:
Important: Please make sure you read and understand before start using Supra products and services.