Skip to content

mtca: add sequencing#8826

Open
jsha wants to merge 2 commits into
mainfrom
boulder-mtca-sequencing
Open

mtca: add sequencing#8826
jsha wants to merge 2 commits into
mainfrom
boulder-mtca-sequencing

Conversation

@jsha

@jsha jsha commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

This is a partial implementation: it doesn't really write to tile storage, and it fakes out hash calculation with random data.

In Loop(), take the current contents of the pool, "sequence" them by increasing the tree size and generating a fake root hash randomly, and write a new checkpoint row.

Add a new table, latestCheckpoints. This has a single row per log, referring to the latest checkpoint. This allows us to take an exclusive database lock ("SELECT ... FOR UPDATE") to prevent signing split views.

As part of this process, iterate on the vindexes for the mtcmeta schema. The relevant tables (checkpoints, latestCheckpoint, and landmarks) will have a primary vindex of mtcLogID, which will allow us to shard by log in a Vitess world. In a MariaDB world we will have a database per issuance log, to permit independent logs in different datacenters.

Base automatically changed from cosignedmessage to main June 30, 2026 23:38
@jsha jsha force-pushed the boulder-mtca-sequencing branch 4 times, most recently from 61d461f to 1b50762 Compare July 7, 2026 17:26
@jsha jsha changed the base branch from main to reland-slog July 7, 2026 17:37
@jsha jsha force-pushed the boulder-mtca-sequencing branch 2 times, most recently from 4d6f531 to 6adde54 Compare July 7, 2026 18:48
@jsha jsha changed the base branch from reland-slog to main July 7, 2026 18:48
@jsha jsha force-pushed the boulder-mtca-sequencing branch 5 times, most recently from da1f834 to a9d106b Compare July 8, 2026 01:01
This is a partial implementation: it doesn't really write to tile storage,
or calculate realistic hashes.

In Loop(), take the current contents of the pool, "sequence" them by increasing
the tree size and generating a fake root hash randomly, and write a new
checkpoint row.

Add a new table, `latestCheckpoints`. This has a single row per log, referring
to the latest checkpoint. This allows us to take an exclusive lock while signing
to prevent signing split views.
@jsha jsha force-pushed the boulder-mtca-sequencing branch from a9d106b to b9f5ab7 Compare July 8, 2026 03:31
@jsha jsha marked this pull request as ready for review July 9, 2026 16:42
@jsha jsha requested a review from a team as a code owner July 9, 2026 16:42
@jsha jsha requested a review from ezekiel July 9, 2026 16:42
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
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.

@jsha

jsha commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

Thanks bot! The SQL and config changes will be stacked up as part of general MTCA testbed deployment.

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.

1 participant