Repository navigation
Conversation
Reread a contested slot after a failed CAS so delayed requests cannot allocate duplicate ordinals. Add admission and allocation proofs, security protocol models, and timed Cloud API retry checks with explicit assumptions and negative controls. Link the focused Go SDK fix.
h4x3rotab
force-pushed
the
formal-verify-signaling-protocol
branch
from
November 9, 2026 09:06
262032a to
b249e00
Compare
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.
A Consul CAS request can outlive the bootstrap process that sent it. If that request wins against the restarted process, the old allocator advances without recognizing its own claim and can assign the same instance a second ordinal. Reread the same slot after a failed CAS and advance only after observing another owner. Use strongly consistent reads, propagate storage errors, and report exhaustion without waiting for permanent records to disappear.
Add Lean proofs for ordered admission-policy selection and allocation without slot reuse, Tamarin models for admission and shared-key signaling authentication, and finite slot-lifecycle models. Preserve the previous allocator as a failing regression control. Add deterministic Go regressions, concurrent-claim tests, pinned verification runners, CI, and a security claim ledger.
Add a separate timed model for Cloud API read retries. Check retry limits, Retry-After, cancellation, termination, and recovery with sufficient retry/time budgets. Controls reproduce the deployment failure without read retries and the failure caused by applying the HTTP timeout to the entire operation. The focused Go SDK client fix reuses the existing retry helper and is in Phala Cloud #535; this repository contains the specification and evidence.
Validation:
go test -race -count=100 ./...andgo vet ./...pass incomponents/bootstrap-secrets.The allocation theorem assumes an initially empty registry with permanent ownership records. Existing duplicates are not repaired automatically. Safe reuse/fencing, exclusive live ownership, per-member compromise resistance, authenticated instance binding, transport channel guarantees, and a project-wide composition theorem remain open. The retry model checks finite scenarios with explicit exchange times; permanent throttling cannot guarantee deployment success. These separate proofs do not establish complete project security or Go refinement. Current Terraform deployments use explicit ordinals and bypass dynamic allocation.