Skip to content

mtca: Serve CQRP Landmark Service compatible checkpoints - #8974

Open
beautifulentropy wants to merge 1 commit into
paving-a-path-to-a-proper-publisher-08from
paving-a-path-to-a-proper-publisher-09
Open

mtca: Serve CQRP Landmark Service compatible checkpoints#8974
beautifulentropy wants to merge 1 commit into
paving-a-path-to-a-proper-publisher-08from
paving-a-path-to-a-proper-publisher-09

Conversation

@beautifulentropy

Copy link
Copy Markdown
Member

No description provided.

@beautifulentropy
beautifulentropy marked this pull request as ready for review August 24, 2026 16:18
@beautifulentropy
beautifulentropy requested a review from a team as a code owner August 24, 2026 16:18
@github-actions

Copy link
Copy Markdown
Contributor

@beautifulentropy, 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.

@aarongable aarongable left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM with nits, modulo upstream PR being updated for tests to pass.

Comment thread cmd/boulder-mtca/main.go

// Mirror identifies the mirror whose cosignatures must be verified
// before the MTCA serves them as part of a checkpoint.
Mirror cmd.MirrorConfig `validate:"required"`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Slight preference for a shared trees/config/ package which can hold both this and config.ID.

Comment thread mtca/mtca.go
if err != nil {
return nil, fmt.Errorf("creating mirror verifier: %s", err)
}
m.mirrorVerifier = mirrorVerifier

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Build this earlier, so it can be populated when mtca is first built on line 68, rather than assigning after the fact.

Comment thread mtca/mtca.go
mirrorID string
mirrorVerifier *cosignature.Verifier

servedCheckpointID int64

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

IMO, .New() should read from S3 to populate this.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ideally Preflight() rather than New(); that's where we do other storage-involved work at startup. It's nice to be able to separate that from simply constructing the object.

@jsha

jsha commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Could you fill out the PR description? Also, a PR naming nit: CQRP refers to "Chrome's Landmark Service", not "CQRP Landmark Service." But I think it would be simplest to say "mtca: serve checkpoints with 2 cosignatures," and mention in the description that this is a requirement of the CQRP.

https://googlechrome.github.io/chromerootprogram/cqrp/draft-policy/

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.

3 participants