Welcome to the official GitHub repository for the Diligence Watchtower Client. Diligence watchtowers are the first line of defence for optimistic rollups. They enable incentive compatible and crypto-economically-secure Proof-of-Diligence (PoD) to make sure watchtowers are working in the happy path for optimistic rollups. The watchtower client is the software that entails a crucial responsibility of monitoring the accuracy of L2 (e.g. Optimism, Base) state assertions made by the proposer. This guide offers information on setting up a watchtower node for the WitnessChain Network
You can read more about the protocol at Watchtower Protocol
- Proof of Diligence: Proofs-of-Diligence for watching state L2 assertions of OP Stack chains (Optimism, Base).
- Proof of Inclusion: Proofs-of-Inclusion for watching Transactions' inclusions in a Block.
To get started with the Watchtower Client, please follow the instructions below
-
Registered EigenLayer Operator:
Register
as an operator on EL Holesky/Mainnet chain -
Holesky Registration
- Registered WitnessChain Operator:
Register
EL Operator and watchtower on Witness Chain
- Registered WitnessChain Operator:
-
Mainnet Registration
- Registered WitnessChain Operator:
Register
EL Operator and watchtower on Witness Chain
- Registered WitnessChain Operator:
- git installed
- go version 1.20
- configuration file set (src/client/config.json)
-
Clone the repository
git clone https://github.com/witnesschain-com/diligencewatchtower-client.git
-
Move to the
diligencewatchtower-client/cmd/watchtower
directorycd diligencewatchtower-client/cmd/watchtower`
-
Building
- using run script
- build and run the watchtower with the help of the
run
script
- build and run the watchtower with the help of the
./run
- using go
- build the watchtower binary (optional)
go build -o watchtower .
- using run script
-
Running the watchtower: If the watchtower was built via go, you can manually start it with the following command
./watchtower
Note: Make sure the config.json
is filled and present in the directory the watchtower executable is
- git installed
- Docker engine and client installed
- configuration file set
-
Clone the repository
git clone https://github.com/witnesschain-com/diligencewatchtower-client.git
-
Move to the
client
directorycd diligencewatchtower-client/src/client docker build -t witnesschain/watchtower .
docker run --network host witnesschain/watchtower
A volume mount can be used to feed the configuration to the app
docker run -v PATH_TO_CONFIG:/app/config.json --network host witnesschain/watchtower