Build SmoothDAO: Watchdog Script

In order to make it easy to implement the penalties established in the approved Terms of Use Policy it would be amazing to have a “source of truth” in this forum.

This means basically having a script that captures information that is onchain and offchain and consolidates it in a forum post so the DAO has one place to look at. I call that the Watchdog Script.

I’ve made some specs in here https://www.figma.com/board/zwHsQsctddFaV6CbwMbdrx/SmoothDAO-Watchtower-Script?node-id=0-1&t=fS9jYX878T2oTE1l-1

The relevant endpoints for triggering the actions and compiling information are:

  1. https://sp-api.dappnode.io/memory/allblocks - to know all proposed blocks by smooth subscribers (mev/vanilla, slot, block, valindex, reward in wei, withdrawal address…)
  2. To check the potential max MEV of a block, payload.de offers this endpoint:
    https://api.payload.de/block_info?block= , i.e.: https://api.payload.de/block_info?block=20363285

I would potentially include a second source of truth for the off-chain data, to make sure that payload.de can’t singlehandedly target a smooth validator and ban him by offering data that would ban it.

Need a builder to actually build it! Of course we can, but it’s a good way to get the community involved so we can focus on the Smart Contract upgrade and get faster to the destination.

Another key piece of information, which Smooth (the Oracle?) already has, is the list of withdrawal addresses currently subscribed to the pool.

This is necessary because the ToS rules operate on an “account” basis, and the withdrawal address serves as the “account” in this case.

Once the withdrawal address is accessible, then there needs to be a way to associate each block to the validator that proposed it (that seems easy enough) and then associate the validator with its withdrawal address.

At that point it should be fairly easy to periodically generate/update a sorted list (after each new proposal?) of each account and their current number of consecutive vanilla blocks, sorted in a descending order.

1 Like