Commit Graph
87 Commits
Author SHA1 Message Date
Sergio Chouhy c1644a8cc5 feat(sequencer): implement sequencer join/exit queues 2026-08-21 11:32:31 -03:00
7dac077487 test: add cucumber environment with initial ported integration tests (#741)
This PR introduces the initial Cucumber-based integration test framework for the LEZ, building on the testing-framework integration work started by @andrussal, adds the first set of Cucumber integration scenarios and establishes reusable infrastructure for future Cucumber scenarios.

---------

Co-authored-by: Andrus Salumets <salumets.andrus@gmail.com>
Co-authored-by: Sergio Chouhy <sergio.chouhy@gmail.com>
Co-authored-by: Sergio Chouhy <41742639+schouhy@users.noreply.github.com>
Co-authored-by: Roman <zajic@zajic.net>
Co-authored-by: Daniil Polyakov <arjentix@gmail.com>
Co-authored-by: Moudy <m.ellaz@hotmail.com>
Co-authored-by: andrussal <salumets.andrus@gmail.com>
2026-08-20 21:15:05 +02:00
moudyellaz 2d7dbf4d85 Merge remote-tracking branch 'origin/dev' into moudy/cross-zone-halt-operability
# Conflicts:
#	artifacts/lez/programs/cross_zone_inbox.bin
#	artifacts/lez/programs/ping_receiver.bin
#	artifacts/lez/programs/wrapped_token.bin
#	test_fixtures/fixtures/prebuilt_sequencer_db.dump
2026-08-20 12:13:50 +02:00
Daniil Polyakov 7249f2f881 refactor(sequencer): actor architecture, phase 2: Storage Actor 2026-08-20 00:37:23 +03:00
moudyellaz af090f3ce9 refactor(indexer): make the cache window a NonZeroU32 2026-08-18 00:55:58 +02:00
moudyellaz e6ed257c79 feat(indexer): bound the peer-block cache behind a hash-certified refetch 2026-08-16 22:41:10 +02:00
moudyellaz 1f7d366167 fix(indexer)!: make cross-zone verification halts durable, diagnosable and recoverable
BREAKING CHANGE: IndexerSyncState gains Halted, so a pre-existing typed client fails to decode getStatus while an indexer is halted; the protocol enum now carries an Unknown fallback so this class of break ends here.
2026-08-14 15:27:25 +02:00
Sergio Chouhy 990353e55e fix(test_fixtures): only use provided bedrock signing key when prebuilt dump is not used 2026-08-14 00:58:31 -03:00
Sergio Chouhy 0332c84ee6 refactor(sequencer): rename produce_new_block to run_production_turn 2026-08-13 18:48:27 -03:00
Sergio Chouhy 6c60012dd9 refactor(sequencer)!: move the stake signing key to a file 2026-08-13 18:47:50 -03:00
Sergio Chouhy b1eb69322c fix(integration_tests): multi sequencer now builds the state with two accredited keys from channel creation 2026-08-13 18:47:50 -03:00
Sergio Chouhy 9c9e18b80d fix(test_fixtures): pin bedrock key for prebuilt dump 2026-08-13 18:47:50 -03:00
Sergio Chouhy 1fd81a7889 fix(lez)!: first sequencer stake ownership account on genesis block 2026-08-13 18:47:50 -03:00
erhant a99112aa8f feat(lez): implement self-join/leave mechanism 2026-08-13 18:47:23 -03:00
erhant 0203b8c55f test(sequencer): gossip end-to-end integration test 2026-08-13 21:02:07 +03:00
erhantandClaude Fable 5 ebe4123386 Merge remote-tracking branch 'origin/dev' into erhant/sequencer-gossip
Resolves the actors-refactor (#691) collision: gossip now starts in
sequencer_service::run() after ExecutorActor construction (which exposes
its mempool handle), and the RPC-side publish hook threads through
RpcServerActor::new into the actor's Service.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 19:04:09 +03:00
Pravdyvy e146f9ff5a Merge branch 'dev' into Pravdyvy/multi-sequencer-integration-tests 2026-08-12 18:43:09 +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
Pravdyvy c907a03056 fix(fixtures): suggestions 4 2026-08-12 12:30:27 +03:00
Pravdyvy 13a0855295 fix(fixtures): suggestions 3 2026-08-12 08:51:37 +03:00
Pravdyvy fd310a65f1 fix(integration_tests): suggestions fix 2 2026-08-10 13:20:50 +03:00
Pravdyvy 83570ba3dc fix(test_fixtures): suggestions 1 2026-08-10 12:12:16 +03:00
PravdyvyandDaniil Polyakov 08bb09b761 Apply Daniil suggestions from code review
Co-authored-by: Daniil Polyakov <arjentix@gmail.com>
2026-08-10 11:50:03 +03:00
Pravdyvy 3cf35096d1 fix: suggestions fix 2026-08-07 14:39:06 +03:00
erhant da7a3877a5 fix(test_fixtures): set gossip: None 2026-08-07 13:55:36 +03:00
Pravdyvy 2fa8b1a768 fix(test_fixtures): correct db fetching 2026-08-06 15:04:59 +03:00
Pravdyvy 60b5859d59 fix(integration tests): multi sequencer integration tests 2026-08-06 14:28:59 +03:00
Pravdyvy e2603107cc fix(integration tests): trying multi-seq testing 2026-08-05 15:58:25 +03:00
Pravdyvy 3ff1481775 fix(integration_tests): cross-zone-bridge migrated 2026-08-05 09:25:18 +03:00
Pravdyvy b802e1f324 Merge branch 'dev' into Pravdyvy/multi-sequencer-integration-tests 2026-08-04 17:03:41 +03:00
Pravdyvy 64bb731d58 feat(integration_tests): optional wallet 2026-08-04 16:59:13 +03:00
Daniil Polyakov 409ebb48cc feat(sequencer): expose zone_sdk priority_fee in config 2026-08-04 14:07:06 +03:00
Pravdyvy 9e4b489512 Merge branch 'dev' into Pravdyvy/multi-sequencer-integration-tests 2026-08-04 07:23:35 +03:00
Daniil Polyakov cd835bd0c9 feat(sequencer): add possibility to disable metrics 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
Pravdyvy 0def5631d9 feat(integration tests): working cross-zone test context, in progress, may break usual tests. 2026-08-03 17:40:41 +03:00
Pravdyvy ba4247a066 fix(wallet): fmt 2026-08-03 12:47:33 +03:00
Pravdyvy ef0d4e19b1 Merge branch 'dev' into Pravdyvy/multi-sequencer-integration-tests 2026-08-03 12:44:36 +03:00
Daniil Polyakov 50ac64c37d fix(bedrock): fix new bedrock image setup 2026-07-31 18:26:33 +03:00
Pravdyvy fa7c7c362c feat(integration_tests): proof of concept tests 2026-07-31 15:03:33 +03:00
moudyellaz 3a7ce3f306 feat(sequencer): wait for background tasks on shutdown 2026-07-31 10:55:24 +02:00
Pravdyvy a2b16a886e feat(integration_tests): new context tests 2026-07-30 14:56:04 +03:00
Pravdyvy d9c2b555dc feat(integration_test): multi-zones test context 2026-07-28 14:20:03 +03:00
Pravdyvy 8eb9f7ca90 feat(integration_tests): multi-node config 2026-07-27 12:44:42 +03:00
Pravdyvy 17aaef0b03 Merge branch 'dev' into Pravdyvy/request-distribution-for-multiple-sequencers 2026-07-23 14:57:29 +03:00
erhantandClaude 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
Daniil Polyakov 2d5489c04e feat(sequencer): bootstrap state from Bedrock 2026-07-21 22:46:25 +03:00
Pravdyvy 0c32025c4b feat(wallet_ffi): multi-poller 2026-07-21 18:01:04 +03:00
Pravdyvy 396dd17c21 Merge branch 'Pravdyvy/multi-sequencer-client' into Pravdyvy/request-distribution-for-multiple-sequencers 2026-07-20 14:09:57 +03:00
Pravdyvy eaa76f5e7e fix(wallet): suggestions 3 2026-07-20 11:34:05 +03:00