Skip to main content

Guardian FAQ

Upgrading Moipod to the Latest Version

1. Identify the container running your guardian node

  • Execute the command docker ps in the terminal. This command will display all the currently running containers.
  • Look for the container that you want to check by looking at the Image column. The Image column will show the image that the container was created from.
  • Once identified, make a note of the Container ID associated with the correct image.

2. Stop the current container

  • In the same terminal, execute docker stop <docker_container_id> (replace <docker_container_id> with the Container ID you noted earlier).
  • This will stop the current container from running.

3. Remove unnecessary containers and images

  • Run the command docker container prune to remove all stopped containers and dangling images.
  • This will free up resources and ensure a clean environment for the update.

4. Pull the latest moipod image

  • Execute docker pull sarvalabs/moipod:latest to download the latest version of the moipod image from the Docker registry.

5. Start the guardian node with the updated moipod image

  • Follow the instructions provided under the section Start the Guardian Node to initiate your guardian node with the updated moipod image.

Docker Pull - ERROR: SIGILL Illegal Instruction

If you encounter the ERROR - SIGILL: illegal instruction while attempting to execute the command docker pull sarvalabs/moipod:latest, you can resolve the issue by executing the following command instead: docker pull sarvalabs/moipod:v0.2.0-port

Once the above command successfully completes, you may proceed with the setup process starting from the section Connectivity Settings.


Updating your nodes for a network reset

1. Stop the current container

  • In the terminal, execute docker stop <docker_container_id> (replace <docker_container_id> with the Container ID you noted earlier).

2. Remove unnecessary containers and images

  • Run the command docker container prune to remove all stopped containers and dangling images.
  • This will free up resources and ensure a clean environment for the update.

3. Pull the latest moipod image

  • Execute docker pull sarvalabs/moipod:latest to download the latest version of the moipod image from the Docker registry.

4. Start the guardian node with the clean db flag set to true

  • Run the following command with the "clean-db" flag enabled to initiate a complete reset of the node's present state. This operation will consequently eliminate the current state, facilitating synchronization with the most up-to-date network state.
sudo docker run --network host --rm -it -d -w /data -v $(pwd):/data sarvalabs/moipod:latest server --babylon --data-dir {DIRPATH} --log-level DEBUG --node-password {NODE_PWD} --clean-db true 

Failed in receiving tokens

Using a local IP address for node registration

Importance of Public IP: Registering nodes with a public IP address is crucial due to its role in ensuring proper connectivity and enabling effective monitoring by the system. This approach allows the monitoring system to ping the nodes to check if they are operational. When nodes are registered with local IP addresses, connectivity issues can emerge. Local IPs are typically not reachable from external networks. This limitation can lead to problems where the monitoring system cannot establish communication with the nodes. As a result, the system cannot accurately determine if the nodes are alive or not, causing issues in rewarding tokens.

Impact: This can lead to the monitoring system being unable to communicate with nodes, resulting in inaccurate or unavailable liveliness checks. The failure of the liveliness checks will lead to unsuccessful rewarding of tokens.

Solution: To mitigate these problems, it is recommended to use public IP addresses when registering nodes. This approach ensures that the monitoring system can establish connections with the nodes, enabling effective monitoring and status management.

Proper Command for Node Registration: When executing the registration command, make sure to include the public IP address using the --local-rpc-url flag. For example: --local-rpc-url http://<public-ip>:1600.


Failed to increase receive buffer size adequately

Importance of Increasing Buffer Size: It is crucial to have a sufficiently large UDP buffer size to ensure the smooth operation of your node. In this context, the error you've encountered is due to the buffer size being insufficient, hindering the effective synchronization of data and transactions among nodes. A larger UDP buffer size prevents packet losses, promoting seamless communication.

Impact: Failing to increase the receive buffer size adequately can prevent your node from starting properly. This in turn causes synchronization problems, which results in your guardian node not being in sync with network. Ultimately, your guardian node not earning tokens as intended.

Solution: To address this issue, you should increase the UDP buffer size. This can be done by executing specific commands.

Resolution Steps: Run the following commands when you encounter the error:

sudo sysctl -w net.core.rmem_max=26214400
sudo sysctl -w net.core.wmem_max=26214400

The first command increases the maximum receive buffer size for network sockets to 26,214,400 bytes, while the second command increases the maximum send buffer size to match, ensuring consistency in buffer sizes.