From 5314e1828339e9578f83ebe62f30cda80f2d6e16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Cauderlier?= Date: Fri, 21 Jun 2024 14:17:33 +0200 Subject: [PATCH 1/6] Etherlink/Kernel/Changelog: mention !13634 --- etherlink/CHANGES_KERNEL.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/etherlink/CHANGES_KERNEL.md b/etherlink/CHANGES_KERNEL.md index 7c2200fdfe09..6bb42f8ef02e 100644 --- a/etherlink/CHANGES_KERNEL.md +++ b/etherlink/CHANGES_KERNEL.md @@ -43,6 +43,10 @@ versions. (!13895) - Add FA withdrawal execution methods and FA bridge precompile. (!13941) +- A DAL feature flag is added to the configuration. If the path has a + value in `/evm/feature_flags/enable_dal`, the kernel is allowed to + import data from the DAL. (!13634) + ## Version ec7c3b349624896b269e179384d0a45cf39e1145 ### Features -- GitLab From 25c9e2d646d6009e95df9d2591bbf85917d49831 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Cauderlier?= Date: Thu, 6 Jun 2024 10:57:03 +0200 Subject: [PATCH 2/6] Etherlink/EVM node/kernel config: set the DAL slots in durable storage --- etherlink/bin_node/lib_dev/kernel_config.ml | 10 +++++++++- etherlink/bin_node/lib_dev/kernel_config.mli | 1 + etherlink/bin_node/main.ml | 9 ++++++--- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/etherlink/bin_node/lib_dev/kernel_config.ml b/etherlink/bin_node/lib_dev/kernel_config.ml index 317d0713a61c..a4d1a0aae87f 100644 --- a/etherlink/bin_node/lib_dev/kernel_config.ml +++ b/etherlink/bin_node/lib_dev/kernel_config.ml @@ -24,7 +24,7 @@ let make ~mainnet_compat ~boostrap_balance ?bootstrap_accounts ?kernel_root_hash ?da_fee_per_byte ?delayed_inbox_timeout ?delayed_inbox_min_levels ?sequencer_pool_address ?maximum_allowed_ticks ?maximum_gas_per_transaction ?max_blueprint_lookahead_in_seconds ?remove_whitelist ?enable_fa_bridge - ?enable_dal ~output () = + ?enable_dal ?dal_slots ~output () = let bootstrap_accounts = match bootstrap_accounts with | None -> [] @@ -43,6 +43,13 @@ let make ~mainnet_compat ~boostrap_balance ?bootstrap_accounts ?kernel_root_hash Bytes.set_int64_le b 0 (Int64.of_string i) ; String.of_bytes b in + (* Convert a comma-separated list of decimal values in the [0; 255] + range into a sequence of bytes (of type string). *) + let decimal_list_to_bytes l = + l |> String.split ',' |> List.to_seq + |> Seq.map (fun s -> Char.chr (int_of_string s)) + |> String.of_seq + in let instrs = (if mainnet_compat then make_instr ~path_prefix:"/evm/" ticketer else @@ -78,5 +85,6 @@ let make ~mainnet_compat ~boostrap_balance ?bootstrap_accounts ?kernel_root_hash @ make_instr remove_whitelist @ make_instr ~path_prefix:"/evm/feature_flags/" enable_fa_bridge @ make_instr ~path_prefix:"/evm/feature_flags/" enable_dal + @ make_instr ~convert:decimal_list_to_bytes dal_slots in Installer_config.to_file instrs ~output diff --git a/etherlink/bin_node/lib_dev/kernel_config.mli b/etherlink/bin_node/lib_dev/kernel_config.mli index d8f5e0c5f813..e8f35e342cb6 100644 --- a/etherlink/bin_node/lib_dev/kernel_config.mli +++ b/etherlink/bin_node/lib_dev/kernel_config.mli @@ -32,6 +32,7 @@ val make : ?remove_whitelist:string * string -> ?enable_fa_bridge:string * string -> ?enable_dal:string * string -> + ?dal_slots:string * string -> output:string -> unit -> unit tzresult Lwt.t diff --git a/etherlink/bin_node/main.ml b/etherlink/bin_node/main.ml index e28fbb59bfb5..9c8b2471d5e7 100644 --- a/etherlink/bin_node/main.ml +++ b/etherlink/bin_node/main.ml @@ -1478,7 +1478,7 @@ let make_kernel_config_command = let open Lwt_result_syntax in command ~desc:"Transforms the JSON list of instructions to a RLP list" - (args23 + (args24 mainnet_compat_arg (config_key_arg ~name:"kernel_root_hash" ~placeholder:"root hash") (config_key_arg ~name:"chain_id" ~placeholder:"chain id") @@ -1510,7 +1510,8 @@ let make_kernel_config_command = @@ Tezos_clic.parameter (fun _ s -> return @@ Z.of_string s)) bootstrap_account_arg (config_key_flag ~name:"enable_fa_bridge") - (config_key_flag ~name:"enable_dal")) + (config_key_flag ~name:"enable_dal") + (config_key_arg ~name:"dal_slots" ~placeholder:"0,1,4,6,...")) (prefixes ["make"; "kernel"; "installer"; "config"] @@ param ~name:"kernel config file" @@ -1539,7 +1540,8 @@ let make_kernel_config_command = boostrap_balance, bootstrap_accounts, enable_fa_bridge, - enable_dal ) + enable_dal, + dal_slots ) output () -> Evm_node_lib_dev.Kernel_config.make @@ -1566,6 +1568,7 @@ let make_kernel_config_command = ?bootstrap_accounts ?enable_fa_bridge ?enable_dal + ?dal_slots ~output ()) -- GitLab From 18ae65da202e506c3d1ae2d53a4c2da4f6fb8527 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Cauderlier?= Date: Mon, 1 Jul 2024 15:34:11 +0200 Subject: [PATCH 3/6] Etherlink/Tezt lib: add --dal-slots --- etherlink/tezt/lib/evm_node.ml | 6 +++++- etherlink/tezt/lib/evm_node.mli | 1 + etherlink/tezt/tests/evm_rollup.ml | 7 +++++-- etherlink/tezt/tests/evm_sequencer.ml | 9 +++++++-- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/etherlink/tezt/lib/evm_node.ml b/etherlink/tezt/lib/evm_node.ml index 63d7b1695b29..e9fd96c5951a 100644 --- a/etherlink/tezt/lib/evm_node.ml +++ b/etherlink/tezt/lib/evm_node.ml @@ -1019,7 +1019,7 @@ let make_kernel_installer_config ?(mainnet_compat = false) ?delayed_inbox_timeout ?delayed_inbox_min_levels ?sequencer_pool_address ?maximum_allowed_ticks ?maximum_gas_per_transaction ?(max_blueprint_lookahead_in_seconds = 157_680_000L) - ?(enable_fa_bridge = false) ?(enable_dal = false) ~output () = + ?(enable_fa_bridge = false) ?(enable_dal = false) ?dal_slots ~output () = let cmd = ["make"; "kernel"; "installer"; "config"; output] @ Cli_arg.optional_switch "mainnet-compat" mainnet_compat @@ -1067,6 +1067,10 @@ let make_kernel_installer_config ?(mainnet_compat = false) ] @ Cli_arg.optional_switch "enable-fa-bridge" enable_fa_bridge @ Cli_arg.optional_switch "enable-dal" enable_dal + @ Cli_arg.optional_arg + "dal-slots" + (fun l -> String.concat "," (List.map string_of_int l)) + dal_slots @ Cli_arg.optional_arg "bootstrap-balance" Wei.to_string bootstrap_balance @ match bootstrap_accounts with diff --git a/etherlink/tezt/lib/evm_node.mli b/etherlink/tezt/lib/evm_node.mli index aa063b6f37c5..e10ba44fc717 100644 --- a/etherlink/tezt/lib/evm_node.mli +++ b/etherlink/tezt/lib/evm_node.mli @@ -395,6 +395,7 @@ val make_kernel_installer_config : ?max_blueprint_lookahead_in_seconds:int64 -> ?enable_fa_bridge:bool -> ?enable_dal:bool -> + ?dal_slots:int list -> output:string -> unit -> (Process.t, unit) Runnable.t diff --git a/etherlink/tezt/tests/evm_rollup.ml b/etherlink/tezt/tests/evm_rollup.ml index 54ca89316679..93cca316965f 100644 --- a/etherlink/tezt/tests/evm_rollup.ml +++ b/etherlink/tezt/tests/evm_rollup.ml @@ -305,7 +305,7 @@ let setup_evm_kernel ?additional_config ?(setup_kernel_root_hash = true) ?tx_pool_timeout_limit ?tx_pool_addr_limit ?tx_pool_tx_per_addr_limit ?max_number_of_chunks ?(setup_mode = Setup_proxy) ?(force_install_kernel = true) ?whitelist ?maximum_allowed_ticks - ?restricted_rpcs ?enable_dal protocol = + ?restricted_rpcs ?enable_dal ?dal_slots protocol = let _, kernel_installee = Kernel.to_uses_and_tags kernel in let* node, client = setup_l1 ?commitment_period ?challenge_window ?timestamp protocol @@ -368,6 +368,7 @@ let setup_evm_kernel ?additional_config ?(setup_kernel_root_hash = true) ?maximum_allowed_ticks ~output:output_config ?enable_dal + ?dal_slots () in match additional_config with @@ -463,7 +464,8 @@ let register_test ~title ~tags ?(kernels = Kernel.all) ?additional_config ?admin ?(additional_uses = []) ?commitment_period ?challenge_window ?bootstrap_accounts ?whitelist ?da_fee_per_byte ?minimum_base_fee_per_gas ?rollup_operator_key ?maximum_allowed_ticks ?restricted_rpcs ~setup_mode - ~enable_dal f protocols = + ~enable_dal ?(dal_slots = if enable_dal then Some [4] else None) f protocols + = let extra_tag = match setup_mode with | Setup_proxy -> "proxy" @@ -511,6 +513,7 @@ let register_test ~title ~tags ?(kernels = Kernel.all) ?additional_config ?admin ~admin ~setup_mode ~enable_dal + ?dal_slots protocol in f ~protocol ~evm_setup) diff --git a/etherlink/tezt/tests/evm_sequencer.ml b/etherlink/tezt/tests/evm_sequencer.ml index e20810ab056d..ebf3ff89f1e8 100644 --- a/etherlink/tezt/tests/evm_sequencer.ml +++ b/etherlink/tezt/tests/evm_sequencer.ml @@ -177,7 +177,8 @@ let setup_sequencer ~mainnet_compat ?genesis_timestamp ?time_between_blocks ?preimages_dir ?maximum_allowed_ticks ?maximum_gas_per_transaction ?max_blueprint_lookahead_in_seconds ?enable_fa_bridge ?(threshold_encryption = false) ?(wal_sqlite_journal_mode = true) - ?(drop_duplicate_when_injection = true) ?history_mode ~enable_dal protocol = + ?(drop_duplicate_when_injection = true) ?history_mode ~enable_dal ?dal_slots + protocol = let* node, client = setup_l1 ?timestamp:genesis_timestamp protocol in let* l1_contracts = setup_l1_contracts client in let sc_rollup_node = @@ -210,6 +211,7 @@ let setup_sequencer ~mainnet_compat ?genesis_timestamp ?time_between_blocks ?maximum_allowed_ticks ?maximum_gas_per_transaction ~enable_dal + ?dal_slots ?max_blueprint_lookahead_in_seconds ~bootstrap_accounts ~output:output_config @@ -424,7 +426,9 @@ let register_test ~mainnet_compat ?genesis_timestamp ?time_between_blocks ?maximum_allowed_ticks ?maximum_gas_per_transaction ?max_blueprint_lookahead_in_seconds ?enable_fa_bridge ?(threshold_encryption = false) ?(uses = uses) ?(additional_uses = []) - ?history_mode ~enable_dal body ~title ~tags protocols = + ?history_mode ~enable_dal + ?(dal_slots = if enable_dal then Some [4] else None) body ~title ~tags + protocols = let additional_uses = if threshold_encryption then Constant.octez_dsn_node :: kernel :: additional_uses @@ -457,6 +461,7 @@ let register_test ~mainnet_compat ?genesis_timestamp ?time_between_blocks ~threshold_encryption ?history_mode ~enable_dal + ?dal_slots protocol in body sequencer_setup protocol -- GitLab From 6b87e740ce1415584fc9a62dd8445116e0bd1e8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Cauderlier?= Date: Tue, 11 Jun 2024 15:33:23 +0200 Subject: [PATCH 4/6] Etherlink/Kernel: introduce DAL configuration --- .../kernel/src/blueprint_storage.rs | 5 ++-- .../kernel_evm/kernel/src/configuration.rs | 24 ++++++++++++++----- etherlink/kernel_evm/kernel/src/stage_one.rs | 17 +++++++++---- 3 files changed, 33 insertions(+), 13 deletions(-) diff --git a/etherlink/kernel_evm/kernel/src/blueprint_storage.rs b/etherlink/kernel_evm/kernel/src/blueprint_storage.rs index b898a93aedb8..d520bbb034a5 100644 --- a/etherlink/kernel_evm/kernel/src/blueprint_storage.rs +++ b/etherlink/kernel_evm/kernel/src/blueprint_storage.rs @@ -478,7 +478,7 @@ pub fn clear_all_blueprint(host: &mut Host) -> Result<(), Error> mod tests { use super::*; - use crate::configuration::{Limits, TezosContracts}; + use crate::configuration::{DalConfiguration, Limits, TezosContracts}; use crate::delayed_inbox::Hash; use crate::sequencer_blueprint::UnsignedSequencerBlueprint; use crate::storage::store_last_info_per_level_timestamp; @@ -501,13 +501,14 @@ mod tests { "edpkuDMUm7Y53wp4gxeLBXuiAhXZrLn8XB1R83ksvvesH8Lp8bmCfK", ) .unwrap(); + let dal = if enable_dal {Some(DalConfiguration { }) } else {None}; let mut config = Configuration { tezos_contracts: TezosContracts::default(), mode: ConfigurationMode::Sequencer { delayed_bridge, delayed_inbox: Box::new(delayed_inbox), sequencer, - enable_dal, + dal, evm_node_flag: false, max_blueprint_lookahead_in_seconds: 100_000i64, }, diff --git a/etherlink/kernel_evm/kernel/src/configuration.rs b/etherlink/kernel_evm/kernel/src/configuration.rs index 95c4eeaea483..0959ac84e588 100644 --- a/etherlink/kernel_evm/kernel/src/configuration.rs +++ b/etherlink/kernel_evm/kernel/src/configuration.rs @@ -16,13 +16,16 @@ use tezos_evm_logging::{log, Level::*}; use tezos_smart_rollup_debug::Runtime; use tezos_smart_rollup_encoding::public_key::PublicKey; +#[derive(Debug, Clone, Default)] +pub struct DalConfiguration {} + pub enum ConfigurationMode { Proxy, Sequencer { delayed_bridge: ContractKt1Hash, delayed_inbox: Box, sequencer: PublicKey, - enable_dal: bool, + dal: Option, evm_node_flag: bool, max_blueprint_lookahead_in_seconds: i64, }, @@ -36,13 +39,13 @@ impl std::fmt::Display for ConfigurationMode { delayed_bridge, delayed_inbox: _, // Ignoring delayed_inbox sequencer, - enable_dal, + dal, evm_node_flag, max_blueprint_lookahead_in_seconds, } => write!( f, - "Sequencer {{ delayed_bridge: {:?}, sequencer: {:?}, enable_dal: {}, evm_node_flag: {}, max_blueprints_lookahead_in_seconds: {} }}", - delayed_bridge, sequencer, enable_dal, evm_node_flag, max_blueprint_lookahead_in_seconds + "Sequencer {{ delayed_bridge: {:?}, sequencer: {:?}, dal: {:?}, evm_node_flag: {}, max_blueprints_lookahead_in_seconds: {} }}", + delayed_bridge, sequencer, dal, evm_node_flag, max_blueprint_lookahead_in_seconds ), } } @@ -177,12 +180,21 @@ pub fn fetch_limits(host: &mut impl Runtime) -> Limits { } } +fn fetch_dal_configuration(host: &mut Host) -> Option { + let enable_dal = enable_dal(host).unwrap_or(false); + if enable_dal { + Some(DalConfiguration {}) + } else { + None + } +} + pub fn fetch_configuration(host: &mut Host) -> Configuration { let tezos_contracts = fetch_tezos_contracts(host); let limits = fetch_limits(host); let sequencer = sequencer(host).unwrap_or_default(); let enable_fa_bridge = is_enable_fa_bridge(host).unwrap_or_default(); - let enable_dal = enable_dal(host).unwrap_or(false); + let dal: Option = fetch_dal_configuration(host); let evm_node_flag = evm_node_flag(host).unwrap_or(false); match sequencer { Some(sequencer) => { @@ -206,7 +218,7 @@ pub fn fetch_configuration(host: &mut Host) -> Configuration { delayed_bridge, delayed_inbox: Box::new(delayed_inbox), sequencer, - enable_dal, + dal, evm_node_flag, max_blueprint_lookahead_in_seconds, }, diff --git a/etherlink/kernel_evm/kernel/src/stage_one.rs b/etherlink/kernel_evm/kernel/src/stage_one.rs index 5a18a2f6ccd4..a3f91d3c2d86 100644 --- a/etherlink/kernel_evm/kernel/src/stage_one.rs +++ b/etherlink/kernel_evm/kernel/src/stage_one.rs @@ -4,7 +4,9 @@ use crate::blueprint::Blueprint; use crate::blueprint_storage::{store_immediate_blueprint, store_inbox_blueprint}; -use crate::configuration::{Configuration, ConfigurationMode, TezosContracts}; +use crate::configuration::{ + Configuration, ConfigurationMode, DalConfiguration, TezosContracts, +}; use crate::current_timestamp; use crate::delayed_inbox::DelayedInbox; use crate::inbox::{read_proxy_inbox, read_sequencer_inbox}; @@ -100,7 +102,7 @@ fn fetch_sequencer_blueprints( delayed_bridge: ContractKt1Hash, delayed_inbox: &mut DelayedInbox, sequencer: PublicKey, - _enable_dal: bool, + _dal: Option, enable_fa_deposits: bool, ) -> Result { match read_sequencer_inbox( @@ -140,7 +142,7 @@ pub fn fetch_blueprints( delayed_bridge, delayed_inbox, sequencer, - enable_dal, + dal, evm_node_flag: _, max_blueprint_lookahead_in_seconds: _, } => fetch_sequencer_blueprints( @@ -150,7 +152,7 @@ pub fn fetch_blueprints( delayed_bridge.clone(), delayed_inbox, sequencer.clone(), - *enable_dal, + dal.clone(), config.enable_fa_bridge, ), ConfigurationMode::Proxy => fetch_proxy_blueprints( @@ -197,6 +199,11 @@ mod tests { "edpkuBknW28nW72KG6RoHtYW7p12T6GKc7nAbwYX5m8Wd9sDVC9yav", ) .unwrap(); + let dal = if enable_dal { + Some(DalConfiguration {}) + } else { + None + }; let contracts = TezosContracts::default(); Configuration { @@ -208,7 +215,7 @@ mod tests { delayed_bridge, delayed_inbox: Box::new(delayed_inbox), sequencer, - enable_dal, + dal, evm_node_flag: false, max_blueprint_lookahead_in_seconds: 100_000i64, }, -- GitLab From f00afef58f1e8a913ecc954d5174076773d6f2f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Cauderlier?= Date: Tue, 11 Jun 2024 15:25:47 +0200 Subject: [PATCH 5/6] Etherlink/Kernel: add DAL slot indices to config --- etherlink/kernel_evm/kernel/src/blueprint_storage.rs | 8 +++++++- etherlink/kernel_evm/kernel/src/configuration.rs | 9 ++++++--- etherlink/kernel_evm/kernel/src/stage_one.rs | 4 +++- etherlink/kernel_evm/kernel/src/storage.rs | 12 ++++++++++++ 4 files changed, 28 insertions(+), 5 deletions(-) diff --git a/etherlink/kernel_evm/kernel/src/blueprint_storage.rs b/etherlink/kernel_evm/kernel/src/blueprint_storage.rs index d520bbb034a5..d210ddc9cd04 100644 --- a/etherlink/kernel_evm/kernel/src/blueprint_storage.rs +++ b/etherlink/kernel_evm/kernel/src/blueprint_storage.rs @@ -501,7 +501,13 @@ mod tests { "edpkuDMUm7Y53wp4gxeLBXuiAhXZrLn8XB1R83ksvvesH8Lp8bmCfK", ) .unwrap(); - let dal = if enable_dal {Some(DalConfiguration { }) } else {None}; + let dal = if enable_dal { + Some(DalConfiguration { + slot_indices: vec![5], + }) + } else { + None + }; let mut config = Configuration { tezos_contracts: TezosContracts::default(), mode: ConfigurationMode::Sequencer { diff --git a/etherlink/kernel_evm/kernel/src/configuration.rs b/etherlink/kernel_evm/kernel/src/configuration.rs index 0959ac84e588..fbfd79f46e34 100644 --- a/etherlink/kernel_evm/kernel/src/configuration.rs +++ b/etherlink/kernel_evm/kernel/src/configuration.rs @@ -2,7 +2,7 @@ use crate::{ blueprint_storage::DEFAULT_MAX_BLUEPRINT_LOOKAHEAD_IN_SECONDS, delayed_inbox::DelayedInbox, storage::{ - enable_dal, evm_node_flag, is_enable_fa_bridge, + dal_slots, enable_dal, evm_node_flag, is_enable_fa_bridge, max_blueprint_lookahead_in_seconds, read_admin, read_delayed_transaction_bridge, read_kernel_governance, read_kernel_security_governance, read_maximum_allowed_ticks, read_maximum_gas_per_transaction, @@ -17,7 +17,9 @@ use tezos_smart_rollup_debug::Runtime; use tezos_smart_rollup_encoding::public_key::PublicKey; #[derive(Debug, Clone, Default)] -pub struct DalConfiguration {} +pub struct DalConfiguration { + pub slot_indices: Vec, +} pub enum ConfigurationMode { Proxy, @@ -183,7 +185,8 @@ pub fn fetch_limits(host: &mut impl Runtime) -> Limits { fn fetch_dal_configuration(host: &mut Host) -> Option { let enable_dal = enable_dal(host).unwrap_or(false); if enable_dal { - Some(DalConfiguration {}) + let slot_indices: Vec = dal_slots(host).unwrap_or(None)?; + Some(DalConfiguration { slot_indices }) } else { None } diff --git a/etherlink/kernel_evm/kernel/src/stage_one.rs b/etherlink/kernel_evm/kernel/src/stage_one.rs index a3f91d3c2d86..546a2126b7f2 100644 --- a/etherlink/kernel_evm/kernel/src/stage_one.rs +++ b/etherlink/kernel_evm/kernel/src/stage_one.rs @@ -200,7 +200,9 @@ mod tests { ) .unwrap(); let dal = if enable_dal { - Some(DalConfiguration {}) + Some(DalConfiguration { + slot_indices: vec![6], + }) } else { None }; diff --git a/etherlink/kernel_evm/kernel/src/storage.rs b/etherlink/kernel_evm/kernel/src/storage.rs index d58d376fa392..d982a4483149 100644 --- a/etherlink/kernel_evm/kernel/src/storage.rs +++ b/etherlink/kernel_evm/kernel/src/storage.rs @@ -165,6 +165,9 @@ pub const SEQUENCER: RefPath = RefPath::assert_from(b"/evm/sequencer"); // is not used. pub const ENABLE_DAL: RefPath = RefPath::assert_from(b"/evm/feature_flags/enable_dal"); +// Path to the DAL slot indices to use. +pub const DAL_SLOTS: RefPath = RefPath::assert_from(b"/evm/dal_slots"); + // Path where the input for the tracer is stored by the sequencer. const TRACER_INPUT: RefPath = RefPath::assert_from(b"/evm/trace/input"); @@ -1039,6 +1042,15 @@ pub fn enable_dal(host: &Host) -> anyhow::Result { } } +pub fn dal_slots(host: &Host) -> anyhow::Result>> { + if host.store_has(&DAL_SLOTS)?.is_some() { + let bytes = host.store_read_all(&DAL_SLOTS)?; + Ok(Some(bytes)) + } else { + Ok(None) + } +} + pub fn remove_sequencer(host: &mut Host) -> anyhow::Result<()> { host.store_delete(&SEQUENCER).map_err(Into::into) } -- GitLab From d9ffd50622eaf358a82260ff553ab4a42015e5f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Cauderlier?= Date: Fri, 21 Jun 2024 14:21:45 +0200 Subject: [PATCH 6/6] Etherlink/Kernel/Changelog: mention !13717 --- etherlink/CHANGES_KERNEL.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/etherlink/CHANGES_KERNEL.md b/etherlink/CHANGES_KERNEL.md index 6bb42f8ef02e..8b74badb8e56 100644 --- a/etherlink/CHANGES_KERNEL.md +++ b/etherlink/CHANGES_KERNEL.md @@ -47,6 +47,8 @@ value in `/evm/feature_flags/enable_dal`, the kernel is allowed to import data from the DAL. (!13634) +- The list of DAL slot indices on which the sequencer may publish DAL slots can be configured at path `/evm/dal_slots`. (!13717) + ## Version ec7c3b349624896b269e179384d0a45cf39e1145 ### Features -- GitLab