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. TheImage
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 theContainer 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 theContainer 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 --clean-db="true" --node-password {NODE_PWD} --watchdog-url https://babylon-watchdog.moi.technology/add --network-rpc-url https://voyage-rpc.moi.technology/babylon
Custom Hostname or Port - If you are using a custom hostname or port, include the --local-rpc-url flag in the command. For example: --local-rpc-url http://13.235.63.184:1604 or --local-rpc-url http://node1.guardian.io.
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.