githubEdit

Node Operator FAQ

Onboarding & Setup

chevron-rightShould the onboarding script be run directly on the machine that will act as the validator?hashtag

Yes, you should run all the steps of Round onboarding for Public Testnet on the machine that will act as the validator.

chevron-rightWhat are the hardware requirements for running a Supra node?hashtag

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: 500GB

  • Network Bandwidth: 2Gbps

chevron-rightThere is no derived pool address in the latest_validator_info.json file. What should I do?hashtag

In your latest_validator_info.json file, your derived pool address is the value of account_address.

chevron-rightHow do I move my node to a different server (RPC & Validator Testnet)?hashtag

Staking & Rewards

chevron-rightHow do I view my current stake balance?hashtag

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.

chevron-rightHow do I claim rewards?hashtag

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.

chevron-rightWhat is the smallest unit of SUPRA?hashtag

The smallest unit of SUPRA is Quants, where 1 SUPRA = 100,000,000 Quants.

chevron-rightCan I withdraw rewards to a different address than the validator’s?hashtag

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_ADDRwould 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.

\

Troubleshooting & Issues

chevron-rightWhat should I do if blocks are frozen and my validator node is stuck?hashtag

[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:

Please follow the instructions provided in the ‘To Update Your RPC Node’ section in this document: RPC Operator Manual (General)arrow-up-right

chevron-rightWhat should I do if I encounter an "IO Error" or database corruption?hashtag

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.

chevron-rightHow can I resolve a "Grafana setup IP not whitelisted" error?hashtag

If your IP is not whitelisted, please provide your IPv4 to the Supra team on Discord to get access to the Grafana script.

chevron-rightHow do I resolve the "API key is missing" error?hashtag
  1. Export the API key with:

export api_key=AIzaSyD2Byf2_yWYngvHnv6Ib7V6C2EpHY3LL0E

  1. 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

chevron-rightWhat should I do if I encounter a "Subscription execution failed" error?hashtag

[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:

  1. Increase the shell file descriptor limit:

ulimit -n 65535

  1. Increase the limit for the user by editing /etc/security/limits.conf:

soft nofile 65535

hard nofile 65535

  1. Update system limits in /etc/sysctl.conf:

net.core.somaxconn=65535

sudo sysctl -p

chevron-rightWhy didn’t my unlocked SUPRA tokens appear in my wallet after a successful unlock transaction from an operator account? Were they lost?hashtag

A: No, your tokens were not lost. If you’re using an operator account, unlocked tokens may be automatically withdrawn as part of the synchronize_delegation_pool function. This internal mechanism triggers execute_pending_withdrawal automatically for operator accounts once the next lockup cycle has begun. This means:\

  • You do not need to manually trigger a withdrawal for operator accounts.

  • The withdrawal may be initiated by any transaction (including from other accounts) that calls synchronize_delegation_pool.

  • The unlocked tokens are sent to the operator’s account and should be visible in your wallet balance.

If the transaction is not visible in SupraScan, it might be a UI delay or an indexing issue. You can verify the token transfer using the RPC endpoint directly or the following CLI command:

Replace <your_operator_address> with your actual wallet address to confirm your SUPRA balance.

General Information & Frequently Asked Questions

chevron-rightWhy do the values of stakes differ among operators?hashtag

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.

chevron-rightWhy can we only unlock active stake, and what is the Foundation’s role?hashtag

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.

chevron-rightHow long should I wait after unstaking before I can withdraw?hashtag

After unstaking, you must wait for the next lockup cycle, which is set to 48 hours, before you can withdraw your inactive stake.

chevron-rightHow are earnings per node determined? Is it performance-based or random?hashtag

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.

chevron-rightWhere can I find my delegator address private key to import into the StarKey wallet?hashtag

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.

chevron-rightHow does stake, including inactive and pending inactive, work in Supra?hashtag

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.

chevron-rightCan I unlock more than my active stake?hashtag

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.

triangle-exclamation

Last updated