3016 Commits

Author SHA1 Message Date
erhant
d417a4e828 chore: add trust assumption comment [skip ci] 2026-07-20 22:05:42 +03:00
erhant
c8dd76a94b fix(sequencer, storage): persist under the chain lock, prune stale blocks on shortening reorgs, halt on persist failure 2026-07-20 21:59:24 +03:00
erhant
6eb1435062 refactor(sequencer, storage): review nit-fixes, sync follow sink, validate-on-deserialize with turn bounds. 2026-07-20 15:05:26 +03:00
erhant
b5ea72b145
chore:(chain_state): Update lez/chain_state/Cargo.toml
Co-authored-by: Daniil Polyakov <arjentix@gmail.com>
2026-07-20 12:42:29 +03:00
erhant
a8797d8b37 chore: fmt 2026-07-16 18:12:07 +03:00
erhant
0135049710 fix(chain_state, sequencer, storage): rebuild the two-tier state on restart
- persist a final-tier snapshot (state + meta) atomically with the follow update that advanced it; on boot, anchor `final` on it and replay stored blocks above it as `head`, so a post-restart orphan of a not-yet-finalized block still reverts instead of silently diverging
- correlate orphan/finalize events by block hash: restored head entries carry hash-derived sentinel MsgIds (the real ones are not persisted)
- a finalized block chaining on an unfinalized head entry finalizes that prefix (finality is prefix-monotone)
- warn on (and keep ignoring) a same-height adopted competitor that arrives without its orphan sibling — an SDK-contract breach worth surfacing
- follow path reverts orphans via one batched `apply_channel_update` (single truncate + head re-derivation) instead of a re-derivation per orphan
- remove DESIGN.md, move to task docs instead
- trim very long comments / docstrings
2026-07-16 18:11:44 +03:00
erhant
f8bc1581ce fix(chain_state, sequencer, indexer): finalized re-delivery dedup, non-blocking orphan resubmit, fail-fast validation 2026-07-16 14:10:54 +03:00
erhant
c9e3bf2a05 feat(sequencer): multi-sequencer demo ergonomics (--home override, pubkey helper, demo recipes) 2026-07-15 13:35:23 +03:00
erhant
1a5da3d925 chore: fix lint 2026-07-15 13:35:23 +03:00
erhant
ed8c9c253d fix(sequencer): persist follow updates atomically in one write batch 2026-07-15 13:35:23 +03:00
erhant
9d1d33363a fix(sequencer): skip persistence when a produced block loses the competing-write race 2026-07-15 13:35:23 +03:00
erhant
66fb83276f fix(sequencer): fix copilot reviews 2026-07-15 13:35:23 +03:00
erhant
e34acc35f9 fix(sequencer): validate adminConfigureChannel requests, per Copilot review 2026-07-15 13:35:23 +03:00
copilot-swe-agent[bot]
14ce6ad871 fix: update spin v0.9.8 -> v0.9.9 (yanked crate fix for cargo-deny) 2026-07-15 13:35:23 +03:00
erhant
abd70d699c fix(sequencer): use ED25519_SECRET_KEY_SIZE and retain BoundedError message 2026-07-15 13:35:23 +03:00
erhant
2c5bac506b docs(sequencer): clarify queued semantics of adminConfigureChannel 2026-07-15 13:35:23 +03:00
erhant
e2283e8f47 test(integration): multi-sequencer committee convergence 2026-07-15 13:35:23 +03:00
erhant
213dc94c93 test(fixtures): allow injecting a pre-generated bedrock signing key 2026-07-15 13:35:23 +03:00
erhant
e802a2a364 feat(sequencer): adminConfigureChannel RPC for channel roster changes 2026-07-15 13:35:23 +03:00
erhant
f761d66dba feat(sequencer): channel roster configuration through the block publisher 2026-07-15 13:22:00 +03:00
erhant
0612132bed test(chain_state,sequencer): add unit tests for chain_state 2026-07-15 13:22:00 +03:00
erhant
0b6a947713 fix(sequencer): correct test assertion 2026-07-15 13:22:00 +03:00
erhant
a0f7957468 chore: add TODO doc about transient apply failures [skip ci] 2026-07-15 13:22:00 +03:00
erhant
0046a1c822 feat(sequencer): now keep orphaned in mempool + use with_state to avoid clone for method calls to V03State 2026-07-15 13:22:00 +03:00
erhant
cb23561b3a feat(sequencer): store adopted and finalized blocks on disk within on_follow 2026-07-15 13:20:38 +03:00
erhant
82bb454615 chore: formatting 2026-07-15 13:20:38 +03:00
erhant
530f7d77c4 feat!(sequencer): derive state from ChainState via state() method, remove the state attribute 2026-07-15 13:20:38 +03:00
erhant
c0d4aa4fac fix(sequencer): apply the own-published block immediately to the head & dedup it later if received 2026-07-15 13:20:38 +03:00
erhant
d0be0fe46c feat(sequencer): read channel_update and respect adopted/orphaned blocks 2026-07-15 13:20:38 +03:00
erhant
d4d28d1134 feat!(sequencer): add is_our_turn 2026-07-15 13:20:38 +03:00
erhant
3ed67126e8 feat(chain_state): implement two-tip ChainState struct 2026-07-15 13:20:38 +03:00
erhant
d89150b00f refactor!(indexer): migr to chain_state 2026-07-15 13:20:38 +03:00
erhant
480b720293 chore(chain_state): doc fix 2026-07-15 13:20:38 +03:00
erhant
41eeef1c3b feat(chain_state): initial preps, one more design fix 2026-07-15 13:20:38 +03:00
erhant
0838a150bf chore(chain_state): update DESIGN.md 2026-07-15 13:20:38 +03:00
erhant
8402afd341 feat(chain_state): initial design doc 2026-07-15 13:20:38 +03:00
Artem Gureev
2dd472217f
Merge pull request #598 from logos-blockchain/artem/batched-merkle-proofs
feat!: batched merkle proof fetching
2026-07-15 10:04:39 +04:00
Artem Gureev
40595604a4
Merge pull request #585 from logos-blockchain/artem/change-wallet-balance-fetch
feat(wallet): change wallet synchronization flow
2026-07-14 12:43:34 +04:00
Artem Gureev
e408c05297 feat(wallet): validate batched proofs against the root 2026-07-13 13:34:03 +00:00
Artem Gureev
8545ff1466 feat!(sequencer): serve proofs and root in one getProofsAndRoot RPC
BREAKING:

Before: An endpoint exposing getting a single proof for a commitment
existed.

After: There is one endpoint where you give a vector of commitments
and a vector of Maybe proofs back alongside the shared root.

Mitigation: Use the new rpc endpoint with the appopriate vector.
2026-07-13 13:34:03 +00:00
agureev
027ab5a0d9 chore: regenerate test fixtures 2026-07-13 15:51:17 +04:00
agureev
ae391612bd Merge remote-tracking branch 'origin/dev' into artem/change-wallet-balance-fetch 2026-07-13 15:19:06 +04:00
Moudy
cac4921581
Merge pull request #542 from logos-blockchain/moudy/feat-cross-zone-messaging
feat!(cross-zone): async LEZ to LEZ cross-zone messaging
2026-07-11 02:24:34 +02:00
moudyellaz
eff31df9ce Merge origin/dev 2026-07-11 01:12:00 +02:00
moudyellaz
c9b6df2be9 chore(cross-zone): remove stale old-style program_methods guest bins 2026-07-10 19:02:23 +02:00
erhant
5e53c34e80
Merge pull request #581 from logos-blockchain/erhant/indexer-recoverable-invalid-blocks
feat(indexer): recoverable invalid blocks
2026-07-10 18:58:10 +03:00
erhant
ce37428e1e fix(indexer): handle park_undeserializable errors properly 2026-07-10 18:35:01 +03:00
erhant
1560b27d02 refactor(indexer): auto-cancel token on Drop 2026-07-10 18:35:01 +03:00
erhant
d22f8b540b refactor(indexer): make put_block own the breakpoint schedule
`RISC0_DEV_MODE=1 RISC0_SKIP_BUILD=1 cargo test -p storage -p indexer_core`
2026-07-10 18:35:01 +03:00
erhant
280885532b refactor(indexer): rename AcceptOutcome::ApplyFailed to RetryableFailure 2026-07-10 18:35:01 +03:00