Daniil Polyakov
f91d0da8e1
refactor(sequencer): add test for mempool and bring back standalone feature
2026-08-12 22:50:50 +03:00
Daniil Polyakov
9e54af0ce4
fix(sequencer): bring back Drop for SequencerHandle and remove StoreRelease
2026-08-12 22:50:50 +03:00
moudyellaz
f846e7ac73
feat(sequencer)!: suffix the sequencer db directory with its channel id
...
BREAKING CHANGE: the sequencer database moves from <home>/rocksdb to <home>/rocksdb-<channel id>; an existing home fresh-starts (with a warning naming the old directory) unless the directory is renamed.
2026-08-12 15:25:01 +02:00
moudyellaz
bb54bd0581
docs: simplify comments
2026-08-07 18:30:14 +02:00
moudyellaz
5cbd821261
fix(cross-zone)!: shard the inbox seen-set per peer block, keyed by tx index
...
Closes #676 .
BREAKING CHANGE: the seen-shard PDA address and its data layout both change, so
every message delivered under the old layout becomes deliverable again at the new
address, and the old shards are orphaned. A fresh genesis is required.
2026-08-07 11:48:56 +02:00
moudyellaz
af2a025b8f
feat(cross-zone)!: bind a delivery to the peer block hash it came from
...
BREAKING CHANGE: `CrossZoneMessage` gains `src_block_hash`, changing the risc0
encoding of `cross_zone_inbox::Instruction::Dispatch` and the inbox image id,
and with it the inbox config and seen-shard PDA addresses. A pending dispatch
record written by earlier code no longer names a registered program, so it fails
production and is dead-lettered rather than delivered. Drain the pending list
before upgrading, or accept that in-flight deliveries are lost.
2026-08-07 11:01:16 +02:00
moudyellaz
e274a4b29d
feat(sequencer): count and expose the cross-zone deliveries given up on
2026-08-07 10:13:30 +02:00
moudyellaz
c245434f09
feat(sequencer): dead-letter the cross-zone deliveries this node gives up on
2026-08-07 02:57:34 +02:00
Moudy
cfc7942c3c
Merge branch 'dev' into moudy/cross-zone-content-bound-key
2026-08-06 20:59:46 +02:00
erhant
80a56be5aa
fix(sequencer): properly adopt / orphan blocks in false-pos from L1
2026-08-06 20:44:48 +03:00
moudyellaz
c7739733db
fix(indexer): deliver only from peer blocks inside the verified run
2026-08-06 10:17:12 +02:00
moudyellaz
5c28c4cc0c
fix(sequencer): deliver only from a peer block on its verified chain
2026-08-05 20:49:41 +02:00
moudyellaz
e4dcc39277
feat(storage): add a durable per-peer cross-zone chain tip
2026-08-05 19:27:06 +02:00
Daniil Polyakov
409ebb48cc
feat(sequencer): expose zone_sdk priority_fee in config
2026-08-04 14:07:06 +03:00
Daniil Polyakov
cd835bd0c9
feat(sequencer): add possibility to disable metrics
2026-08-03 23:46:35 +03:00
Daniil Polyakov
218955dd19
feat(sequencer): add status label to transaction application time
2026-08-03 23:46:35 +03:00
Daniil Polyakov
037901fe94
fix(sequencer): differentiate between height and blocks produced by this sequencer
2026-08-03 23:46:35 +03:00
Daniil Polyakov
97152b8df6
chore(sequencer): apply snake_case convention to labels
2026-08-03 23:46:35 +03:00
Daniil Polyakov
f2e92a9c1f
feat(sequencer): add metrics_address config field
2026-08-03 23:46:35 +03:00
Daniil Polyakov
aa6969386e
refactor(metrics): improve metrics setup
2026-08-03 23:46:35 +03:00
Daniil Polyakov
849bb6bbe1
feat(metrics): improve mempool and failed transaction metrics & panels
2026-08-03 23:46:35 +03:00
Daniil Polyakov
ea36fa2e93
refactor(metrics): move metrics into a separate crates and reuse names in dashboard generation
2026-08-03 23:46:35 +03:00
Daniil Polyakov
8afd2cea66
feat(docker): introduce monitoring
2026-08-03 23:46:34 +03:00
Daniil Polyakov
97071b575a
feat(sequencer): add initial metrics
2026-08-03 23:46:34 +03:00
moudyellaz
09f4bfdd03
feat(cross-zone)!: authorize deliveries by source program and target
...
BREAKING CHANGE: `CrossZonePeer.allowed_targets` is replaced by `allowed_routes`,
a list of `{src_program_id, target_program_id}` pairs. `InboxConfig.allowed_peers`
is removed.
2026-08-03 04:40:05 +02:00
Daniil Polyakov
3d009acb9c
fix(sequencer): resubmit orphaned tx which comes only after final tip
2026-07-31 19:54:58 +03:00
erhant
9d9b75d42f
fix(sequencer): fund channel config transaction via node wallet"
2026-07-31 18:26:34 +03:00
Daniil Polyakov
93a93c6b96
feat(sequencer): disable withdraws
2026-07-31 18:26:33 +03:00
Daniil Polyakov
50ac64c37d
fix(bedrock): fix new bedrock image setup
2026-07-31 18:26:33 +03:00
Daniil Polyakov
7e283f5fed
fix(sequencer): rework WithdrawalReconciliationKey by using released note id
2026-07-31 18:26:33 +03:00
Daniil Polyakov
b9a0ebef6c
feat(zone_sdk): update to a new bedrock & zone sdk
2026-07-31 18:25:56 +03:00
moudyellaz
c14bfe3f9f
feat(cross-zone): record peer deliveries instead of injecting them
2026-07-31 16:01:41 +02:00
moudyellaz
3a7ce3f306
feat(sequencer): wait for background tasks on shutdown
2026-07-31 10:55:24 +02:00
erhant
0659774e43
chore(state_machine); rename get_public_account to get_account_by_id_ref [skip ci]
2026-07-30 14:23:49 +03:00
erhant
21af565ee3
fix(sequencer): tend to PR comments & self-review findings
2026-07-30 14:23:49 +03:00
erhant
0b0db1dfa1
chore(sequencer): add TODO about Slot update from logos-blockchain
2026-07-30 14:21:10 +03:00
erhant
849ea66c0f
fix(sequencer): harden follow-path finalization and deposit/withdraw batching
2026-07-30 14:21:10 +03:00
erhant
57759d8953
fix(bridge): enforce deposit exactly-once via a per-op-id receipt PDA
2026-07-30 14:21:10 +03:00
erhant
f9ef68dbf8
fix(sequencer): proper deposit and withdraw handling initial fixes for #633
2026-07-30 14:21:10 +03:00
moudyellaz
d6a2075a7c
fix(sequencer): gate bootstrap republish on channel existence, not finalized-scan emptiness
2026-07-24 14:33:24 +02:00
moudyellaz
d9787eb72f
style(sequencer): backtick InitConfig in build_initial_state doc comment
2026-07-24 01:07:41 +02:00
moudyellaz
124bbee6c6
Merge origin/dev
2026-07-23 23:59:36 +02:00
moudyellaz
dc977db7ab
refactor: destructure genesis fingerprint and return an iterator from bridge_lock_holdings
2026-07-23 21:55:55 +02:00
erhant
71b59ac1b8
fix(sequencer): add apply_produced which is like apply_adopted but for our own block, which is not in channel yet
2026-07-23 11:43:57 +03:00
erhant and Claude Fable 5
8d09ffd733
feat(sequencer): two-tier chain state and multi-sequencer support
...
Decentralized-sequencing foundation: a shared chain_state crate (two-tier
head/final ChainState, apply_block, AcceptOutcome, StallReason, and the
absorbed channel-consistency machinery), turn-gated block production, the
publisher follow path for adopted/orphaned/finalized peer blocks, and
persistence that keeps disk order equal to apply order under the chain lock.
Rebased onto dev after #600/#606: chain_consistency is absorbed into
chain_state, the sequencer bootstrap's verify_and_reconstruct is re-wired
onto the two-tier ChainState (reconstruction applies channel history
through the final tier and persists via the follow-path primitives), and
test fixtures adopt the SequencerSetup builder extended with
with_bedrock_signing_key.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-23 11:43:57 +03:00
moudyellaz
72195ce09e
Merge origin/dev
2026-07-23 02:43:53 +02:00
agureev
61cad70f9b
feat(circuit): supply a view_tag on private-account updates
2026-07-22 22:31:31 +04:00
Daniil Polyakov
e440430a50
feat(sequencer): add more reconstruction tests
2026-07-21 22:46:47 +03:00
Daniil Polyakov
61f17612d9
fix(storage): rename ZonCursor to ZoneAnchor
2026-07-21 22:46:47 +03:00
Daniil Polyakov
e3442c695f
fix(sequencer): fix silent reconstruction when only genesis was committed
2026-07-21 22:46:47 +03:00