Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 37 additions & 12 deletions willow/proto/willow/committee_selector.proto
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@ message VolunteerForCommitteeRequest {
// an Android Key Attestation X.509 certificate.
google.protobuf.Any key_endorsement = 2
;

// The name of the population that the client belongs to.
string population_name = 3 ;

}

// A record of a client who volunteered for a committee.
Expand All @@ -58,20 +62,34 @@ message VolunteerRecord {
;
}

// A response from the untrusted frontend to the client after recording it's
// volunteer request for the committee.
// A response from the untrusted frontend to the client after recording its
// volunteer request for the committee. This is either a VolunteerRecorded or
// NoActiveCommitteeSelection message.
message VolunteerForCommitteeResponse {
VolunteerRecord volunteer_record = 1;
// A response from the untrusted frontend to the client after recording its
// volunteer request for an active committee selection.
message VolunteerRecorded {
VolunteerRecord volunteer_record = 1;

// An acknowledgement that the request was handled.
// For example, a measurement and endorsement from a TEE.
google.protobuf.Any attestation = 2
;

// Optional: Suggested time after which clients can return to check the
// status of their volunteer request (namely when the committee selection
// was expected to complete)
google.protobuf.Timestamp check_status_after = 3
;
}

// An acknowledgement that the request was handled.
// For example, a measurement and endorsement from a TEE.
google.protobuf.Any volunteer_recorded_attestation = 2
;
message NoActiveCommitteeSelection {
}

// Suggested time after which clients can return to check the status of their
// volunteer request.
google.protobuf.Timestamp check_status_after = 3
;
oneof msg {
VolunteerRecorded volunteer_recorded = 1;
NoActiveCommitteeSelection no_active_committee_selection = 2;
}
}

// A message passed from the untrusted frontend to a TEE to record a batch of
Expand All @@ -82,9 +100,16 @@ message VolunteerBatchForCommitteeRequest {
}

// A response from the TEE to the untrusted frontend after recording a batch of
// committee volunteers.
// committee volunteers. Must be in the same order as the requests in
// VolunteerBatchForCommitteeRequest.
message VolunteerBatchForCommitteeResponse {
repeated VolunteerRecord volunteer_records = 1;

// An acknowledgement that the request was handled.
// For example, a measurement and endorsement from a TEE. We expect that the
// attestation is the same for all volunteers in the batch.
google.protobuf.Any volunteer_recorded_attestation = 2
;
}

// A message passed from the untrusted frontend to a TEE to sample a committee
Expand Down