Skip to content

idan/main/fix sequencer selector label bug#14290

Closed
idan-starkware wants to merge 21 commits into
main-v0.14.3from
idan/main/fix-sequencer-selector-label-bug
Closed

idan/main/fix sequencer selector label bug#14290
idan-starkware wants to merge 21 commits into
main-v0.14.3from
idan/main/fix-sequencer-selector-label-bug

Conversation

@idan-starkware
Copy link
Copy Markdown
Contributor

dorimedini-starkware and others added 21 commits May 28, 2026 11:08
…-into-main-1779955702

Merge main-v0.14.3 into main
Signed-off-by: Dori Medini <dori@starkware.co>
…14213)

Extract read_original_forest (IO-bound) and compute_updated_forest
(CPU-bound) so the DB is free for parallel reads during computation.
Decouple the storage/classes update lifetimes from the original forest's
lifetime in the read path, since the forest only borrows the sorted
indices; this lets the compute phase take ownership of the update maps.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
read_original_forest now takes &Input. The skeleton updates fed to
UpdatedSkeletonForest are derived from the already-computed actual
updates via a generic skeleton_trie_updates (pure value mapping),
instead of re-walking the state diff. Adds From<_> for SkeletonLeaf
impls for the leaf value types to back the generic bound.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The pin only authenticated the install script's bytes, not the LLVM
packages it installs. Those are verified by the apt GPG key that llvm.sh
fetches over TLS at runtime (unpinned), so the real trust root is already
"TLS-authenticated apt.llvm.org" -- the same trust we place in the apt
packages themselves. Pinning the script while leaving that key fetch
unpinned is a half-measure: a network/host compromise of apt.llvm.org can
swap the key and serve malicious packages regardless of the script hash.

Given we trust apt.llvm.org over TLS (consistent with the rest of our apt
usage), drop the pin and its change-control comments. This also removes
the recurring CI break + hash-bump chore on every benign upstream edit to
llvm.sh, and aligns this path with the replay Dockerfile, which already
fetches llvm.sh unpinned. The download keeps strict TLS
(--proto =https --tlsv1.2 --fail).

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…4239)

The struct now uses 'indices / 'updates / 'storage instead of 'a / 'u /
's, and the doc comment explains why two non-storage lifetimes are
needed: unifying them would make the returned OriginalSkeletonForest
appear to borrow the storage update maps too, preventing the compute
phase from moving those maps by value.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ace (#14253)

Fix race condition where tests query metrics before StateSyncRunner
registers them:

- sequencer_num_accepted_txs: Return 0 for MetricNotFound errors (safe
  since it's used in polling loops), panic on other unexpected errors
- assert_no_reverted_txs: Add retry loop until the metric is registered,
  avoiding false positives

https://claude.ai/code/session_014UmiFHenEiE4vNnh8qbGkZ

Co-authored-by: Claude <noreply@anthropic.com>
@idan-starkware idan-starkware self-assigned this Jun 1, 2026
@cursor
Copy link
Copy Markdown

cursor Bot commented Jun 1, 2026

PR Summary

High Risk
Changes state commitment persistence and OS witness collection (critical path); risk is mitigated by feature gating and digest-based idempotent replay, but incorrect proofs or metadata would affect proving correctness.

Overview
This PR wires Starknet OS input through the committer stack: under the os_input feature, read_paths_and_commit_block commits (or replays) a block while collecting pre- and post-commit Patricia witnesses, persisting an accessed-keys digest and proof payload for idempotent replay. starknet_committer gains witness read/write traits and IndexDb storage for proofs/metadata; commit_block is split into read vs compute phases with shared commit_or_load planning for tip vs historical heights.

Release 0.14.4: adds StarknetVersion::V0_14_4, blockifier/orchestrator versioned-constant JSON, storage enum updates, and bumps fixtures (central blobs, client reader JSON, systest blobs) to 0.14.4. Workspace rand / rand_chacha / rand_distr move to 0.10 with API renames (RngExt, random_range, rng(), etc.) across tests and benches.

CI expands apollo_storage_os_input to apollo_committer, apollo_committer_types, and starknet_committer with os_input tests. Integration tests tolerate metrics not registered yet on state sync; OS uses shared random EC point helper; flow tests add a fixed deployable account artifact for resource measurement.

Reviewed by Cursor Bugbot for commit 59a012a. Bugbot is set up for automated code reviews on this repo. Configure here.

@reviewable-StarkWare
Copy link
Copy Markdown

This change is Reviewable

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.

7 participants