Running Watchtower: for DePIN/Validator Node provider
Steps to run a Witness Chain watchtower client (PoL Challenger Client)
Last updated
Steps to run a Witness Chain watchtower client (PoL Challenger Client)
Last updated
The PoL Challenger Client Node is a DePIN Challenger node that participates in the PoL (Proof-of-Location) protocol and measures the location claims made by a DePIN Prover.
PoL Challenger Client Nodes can be run on community members’ laptops, desktops or even on cloud instances. As long as the node is running, there is a probabilistic algorithm (based on stake in the upcoming releases) that determines if the node will participate in a PoL challenge from the network.
Before a node can participate as PoL Challenger, it has to prove it's own capabilities (run a prover to prove it's own location - this mechanism is inbuilt in the challenger client container)
Before you begin, ensure you have the following
Docker (version 23.0.0 or above, refer: )
Instance comparable to a t2 micro (1 vcpu, 1GB RAM and 5GB harddisk), though we recommend 2 cores, 4 GB RAM and 10 GB of storage.
Note: For EigenLayer operators, it's important to maintain the distinction between Operator Key and Challenger Key. Refer the correct docs for setup as an EL operator
Generate a dedicated watchtower key - ECDSA KeyPair ( This demonstrates how you can use MetaMask to export one ). This will be used for registration & signing purposes.
Ports to be opened if using public IP:
Download and install the witness CLI:
After the installation is completed, register your watchtower key on WitnessChain's Layer 2 Chain: Use the KeyPair that you would have exported or created using Metamask or any other wallet.
Use ECDSA Keypairs
Explanation:
privateKey
is your PoL signing key (Watchtower/Challenger Key)
walletPublicKey
is the wallet addresses where your contributions go
havePublicIPv4Address
(and havePublicIPv6Address
) set them to true if you have a public IPv4 (or IPv6)
havePrivateIPv4Address
(and havePrivateIPv6Address
) set them to true if you want to force the use of private IP
saveResultsInDatabase
saves the login, session, and challenge related data in a .sqlite
file within the container
projectName
tags the watchtower with the project - examples include "spheron", "akash", "pingpong", "eigenlayer", etc. This is an optional field
Once you have the watchtower.env
ready, the watchtower client can be started with
you can verify that the challenger is running by looking at the container status
Explanation:
docker run -d
: Runs the container in detached mode (in the background).
You may observe the following errors in the docker container
"registration is required on DCL contract. Please register your challenger publicKey:"
Once the setting up and registration is successful, you can check the logs from the challenger client ready for challenges. (docker logs pol-challenger
). Congratulations, you are now a part of our DePIN family!
You can pass the required configuration to the docker container env via a file or directly with -e
flag in the run command . Prepare a configuration file watchtower.env
with the following entries as example shown below:
Don't worry, this is normal. if you , these logs should disappear
As the only prerequisite is docker, make sure you are running atleast version 23.0.0 or above for the commands mentioned in the doc to work. The days might be rainy or snowy, but we've got umbrellas and sweaters! Join our or reach out to us over Telegram—we're happy to help. :D