Skip to content

Conversation

@spalladino
Copy link
Contributor

@spalladino spalladino commented Jul 22, 2025

Archiver now checks committee attestations and refuses to sync a block if it does not pass validation.

Note that this addresses scenarios where the proposer is malicious, but does not handle cases where the entire committee is and produces signatures for a block with an unattested parent. That'll be left for a future PR.

Builds on #15813

@spalladino spalladino added the ci-no-fail-fast Sets NO_FAIL_FAST in the CI so the run is not aborted on the first failure label Jul 22, 2025
@spalladino spalladino marked this pull request as ready for review July 22, 2025 22:04
@spalladino spalladino force-pushed the palla/delayed-sig-verification branch from 940acfd to 13b1036 Compare July 24, 2025 19:30
@spalladino spalladino force-pushed the palla/delayed-sig-verification branch 3 times, most recently from 2b10c89 to c35f762 Compare July 28, 2025 12:56
@spalladino spalladino force-pushed the palla/do-not-sync-invalid-blocks branch from 941beed to 4119d4c Compare July 28, 2025 18:43
Base automatically changed from palla/delayed-sig-verification to next July 28, 2025 20:09
}

const committeeSet = new Set(committee.map(member => member.toString()));
const requiredAttestationCount = Math.floor((committee.length * 2) / 3) + 1;
Copy link
Collaborator

Choose a reason for hiding this comment

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

Is this 2 thirds configured on the contract somewhere? Should we read it rather than hard-code?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It's hardcoded in the contract as well

}

rollupStatus.lastBlockIsInvalid = false;
validBlocks.push(block);
Copy link
Collaborator

Choose a reason for hiding this comment

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

I was going to ask why we sync blocks after an invalid one. But then I saw the comment that we will fix that in a follow up PR.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Reason for syncing valid blocks after an invalid one is because we expect the valid block to be built following the last valid one. What remains to be fixed in a future PR is syncing an invalid block if it fits the criteria for it (a descendant block must be attested and proven).

@spalladino spalladino added this pull request to the merge queue Jul 29, 2025
Merged via the queue into next with commit e52701b Jul 29, 2025
4 checks passed
@spalladino spalladino deleted the palla/do-not-sync-invalid-blocks branch July 29, 2025 13:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-no-fail-fast Sets NO_FAIL_FAST in the CI so the run is not aborted on the first failure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants