mtca: write to tiles - #8900
Merged
Merged
Conversation
Add a `Preflight()` that loads the frontier into memory before `Loop()` starts. Add `Frontier.Clone()` so `sequence()` can create a working copy but not reassign its in-memory state until signing and storing the checkpoint succeeds. Replace Frontier.Flush(), with two methods `Stage()` and `Publish()` to write to a pending area and to the live area, respectively. This is not a full implementation of #8902. In particular we will still need code to recover state from the pending area on startup. And we should refine `Publish()` to use `CopyObject` instead of writing the same tiles from scratch. Move fake S3 into its own package, bs3/bs3test. Unittests written by Claude, reviewed and edited by me.
Contributor
|
@jsha, this PR appears to contain configuration and/or SQL schema changes. Please ensure that a corresponding deployment ticket has been filed with the new values. |
ezekiel
previously approved these changes
Jul 28, 2026
ezekiel
requested review from
a team and
aarongable
and removed request for
a team
July 28, 2026 20:24
beautifulentropy
left a comment
Member
There was a problem hiding this comment.
Looks really good, just a proposal and a small comment regarding your recent refactor commit.
aarongable
previously approved these changes
Jul 28, 2026
aarongable
reviewed
Jul 28, 2026
beautifulentropy
previously approved these changes
Jul 28, 2026
aarongable
approved these changes
Jul 28, 2026
ezekiel
approved these changes
Jul 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This wires up tiles.Frontier to the MTCA's initialization and sequencing code paths.
As of this change we are writing correctly-calculated RootHashes into the DB and properly-formed TBSCertificateLogEntry (wrapped in MTCLogEntry) into the tiles, along with all the hashes needed.
Add a
Preflight()that loads the frontier into memory beforeLoop()starts.Add
Frontier.Clone()sosequence()can create a working copy but not reassign its in-memory state until signing and storing the checkpoint succeeds.Replace Frontier.Flush(), with two methods
Stage()andPublish()to write to a pending area and to the live area, respectively. This is not a full implementation of #8902. In particular we will still need code to recover state from the pending area on startup. And we should refinePublish()to useCopyObjectinstead of writing the same tiles from scratch.Move fake S3 into its own package, bs3/bs3test.
Unittests written by Claude, reviewed and edited by me.