Aller au contenu principal

Tour de guet

La Tour de guet (Watchtower) est un framework de contestation automatique pour les rollups optimistes. Elle suit les lots de règlement d'un rollup, fait remonter chaque nouveau lot ainsi que l'échéance de sa fenêtre de contestation, et — lorsque votre prédicat de validité rejette un lot — le transmet à votre callback onInvalid afin que vous puissiez y brancher une contestation.

Le framework observe et décide quand ; c'est vous qui fournissez la vérification de validité. La Tour de guet ne décide jamais d'elle-même qu'un lot est frauduleux — elle appelle votre fonction validate et agit selon ce que vous renvoyez.

watchBatches

import { createRdkClient, watchBatches, challengeBatch } from "@qorechain/rdk";

// The public qore.host REST + RPC endpoints are baked into the presets
// (RDK ≥ 0.4.2); the RPC endpoint is what broadcasts a challenge. Pass
// `endpoints` only to target your own node.
const rdk = createRdkClient({ network: "testnet" });

const watcher = watchBatches(rdk, "my-roll", {
onBatch: (batch) => {
console.log("new batch", batch.index);
},

// Your validity predicate. Return false to flag the batch as invalid.
validate: async (batch) => {
return await isBatchValid(batch); // your logic
},

// Called when validate() returns false — wire it to a challenge.
onInvalid: async (batch) => {
await challengeBatch(rdk, "my-roll", batch.index /* + your fraud proof */);
},

// Called as a batch approaches the end of its challenge window.
onDeadline: (batch) => {
console.warn("challenge window closing for batch", batch.index);
},
});

// Later:
watcher.stop();

Le framework fait remonter :

  • les nouveaux lots via onBatch,
  • les échéances de fenêtre de contestation via onDeadline, et
  • les lots invalides (ceux pour lesquels votre validate a renvoyé false) via onInvalid.

Relier onInvalid à challengeBatch transforme la Tour de guet en un contestataire automatique complet ; laissez-le non défini pour fonctionner en mode observation seule.

CLI

qorollup watchtower my-roll

watchtower exécute le framework depuis la ligne de commande, en affichant les nouveaux lots et les échéances de fenêtre de contestation jusqu'à ce que vous appuyiez sur Ctrl-C. Consultez Déployer un rollup pour le CLI opérateur qorollup complet.