Skip to content

Conversation

spalladino
Copy link
Contributor

@spalladino spalladino commented Sep 18, 2025

When deleting mined txs due to a reorg or eviction, we soft-delete them instead, and permanently delete them only when the original block number in which they were mined gets finalized.

This allows us to keep txs from pruned epochs available in the pool, which we need for identifying data withholding slash conditions in the epoch prune watcher. Otherwise, since we were potentially deleting mined txs from pruned epochs (eg if they became invalid as they were built on top of removed blocks), we would lose them and incorrectly think we were seeing a data withholding slash condition.

This PR also includes a fix to the sequencer-publisher. Since the publisher is no longer long-lived, the myLastSignals cache was being lost. It's now expanded to track every action, and kept alive by the publisher factory.

@spalladino spalladino force-pushed the palla/soft-delete-mined-txs-from-pool branch from 6861461 to e17887a Compare September 18, 2025 19:55
When deleting mined txs due to a reorg or eviction, we soft-delete them
instead, and permanently delete them only when the original block number
in which they were mined gets finalized.

This allows us to keep txs from pruned epochs available in the pool,
which we need for identifying data withholding slash conditions in the
epoch prune watcher. Otherwise, since we were potentially deleting mined
txs from pruned epochs (eg if they became invalid as they were built on
top of removed blocks), we would lose them and incorrectly think we were
seeing a data withholding slash condition.
@spalladino spalladino force-pushed the palla/soft-delete-mined-txs-from-pool branch from e17887a to 437b469 Compare September 19, 2025 01:02
Copy link
Contributor

@alexghr alexghr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good


// This test needs longer slot window to ensure that the client has enough time to submit their txs,
// and have the nodes get recreated, prior to the reorg.
const AZTEC_SLOT_DURATION = process.env.AZTEC_SLOT_DURATION ? parseInt(process.env.AZTEC_SLOT_DURATION) : 32;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't the default be.. 36?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, this works because the ethereum slot duration is 4 in this test

@spalladino spalladino added this pull request to the merge queue Sep 19, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Sep 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants