From 3eeb0ec171aa1314d0f833f15aedef54dcc20d0f Mon Sep 17 00:00:00 2001 From: Jan Nanista Date: Sun, 1 Jun 2025 21:33:21 -0700 Subject: [PATCH 1/7] fix: Plumbing --- src/package_io/input_parser.star | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/package_io/input_parser.star b/src/package_io/input_parser.star index 51e8bb84..8585d85b 100644 --- a/src/package_io/input_parser.star +++ b/src/package_io/input_parser.star @@ -387,6 +387,8 @@ def parse_network_params(plan, registry, input_args): # Name is something we don't have in the legacy params, we only have array indices name=str(index), el=struct( + # Name is something we don't have in the legacy params, we only have aray indices + name=str(index), service_name="op-el-{0}-{1}-{2}-{3}-{4}".format( network_id, _ethereum_package_shared_utils.zfill_custom( From 40a3b1004ec498549469835d87f61567219ad60f Mon Sep 17 00:00:00 2001 From: Jan Nanista Date: Sun, 1 Jun 2025 21:34:11 -0700 Subject: [PATCH 2/7] fix: Typo --- src/package_io/input_parser.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/package_io/input_parser.star b/src/package_io/input_parser.star index 8585d85b..38396a90 100644 --- a/src/package_io/input_parser.star +++ b/src/package_io/input_parser.star @@ -387,7 +387,7 @@ def parse_network_params(plan, registry, input_args): # Name is something we don't have in the legacy params, we only have array indices name=str(index), el=struct( - # Name is something we don't have in the legacy params, we only have aray indices + # Name is something we don't have in the legacy params, we only have array indices name=str(index), service_name="op-el-{0}-{1}-{2}-{3}-{4}".format( network_id, From 3fe8c07ffa165d110a71be885f617e3132d00b85 Mon Sep 17 00:00:00 2001 From: Jan Nanista Date: Sun, 1 Jun 2025 21:41:26 -0700 Subject: [PATCH 3/7] fix: Typo --- src/package_io/input_parser.star | 1 - 1 file changed, 1 deletion(-) diff --git a/src/package_io/input_parser.star b/src/package_io/input_parser.star index 38396a90..ebd566ec 100644 --- a/src/package_io/input_parser.star +++ b/src/package_io/input_parser.star @@ -388,7 +388,6 @@ def parse_network_params(plan, registry, input_args): name=str(index), el=struct( # Name is something we don't have in the legacy params, we only have array indices - name=str(index), service_name="op-el-{0}-{1}-{2}-{3}-{4}".format( network_id, _ethereum_package_shared_utils.zfill_custom( From 109cfbfb2719a72c3e602cf88c9d1f33517b2404 Mon Sep 17 00:00:00 2001 From: Jan Nanista Date: Sun, 1 Jun 2025 21:42:05 -0700 Subject: [PATCH 4/7] fix: Typo --- src/package_io/input_parser.star | 1 - 1 file changed, 1 deletion(-) diff --git a/src/package_io/input_parser.star b/src/package_io/input_parser.star index ebd566ec..51e8bb84 100644 --- a/src/package_io/input_parser.star +++ b/src/package_io/input_parser.star @@ -387,7 +387,6 @@ def parse_network_params(plan, registry, input_args): # Name is something we don't have in the legacy params, we only have array indices name=str(index), el=struct( - # Name is something we don't have in the legacy params, we only have array indices service_name="op-el-{0}-{1}-{2}-{3}-{4}".format( network_id, _ethereum_package_shared_utils.zfill_custom( From f984e87d45d9321b90bd72ff286f235bbcf97da2 Mon Sep 17 00:00:00 2001 From: Jan Nanista Date: Sat, 31 May 2025 22:22:13 -0700 Subject: [PATCH 5/7] fix: Add forgotten DA & tx fuzzer input parsers to the L2 input parser --- src/l2/input_parser.star | 16 ++++++++++++++ test/l2/input_parser_test.star | 39 ++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/src/l2/input_parser.star b/src/l2/input_parser.star index 5ab1a101..cf008774 100644 --- a/src/l2/input_parser.star +++ b/src/l2/input_parser.star @@ -3,8 +3,10 @@ _id = import_module("/src/util/id.star") _l2_participant_input_parser = import_module("./participant/input_parser.star") _batcher_input_parser = import_module("/src/batcher/input_parser.star") +_da_input_parser = import_module("/src/da/input_parser.star") _proposer_input_parser = import_module("/src/proposer/input_parser.star") _proxyd_input_parser = import_module("/src/proxyd/input_parser.star") +_tx_fuzzer_input_parser = import_module("/src/tx-fuzzer/input_parser.star") _DEFAULT_NETWORK_PARAMS = { "network": "kurtosis", @@ -21,9 +23,13 @@ _DEFAULT_NETWORK_PARAMS = { _DEFAULT_ARGS = { "participants": {}, "network_params": _DEFAULT_NETWORK_PARAMS, + "da_params": None, "proposer_params": None, "batcher_params": None, "proxyd_params": None, + "tx_fuzzer_params": None, + # FIXME Make blockscout use the "enabled" pattern + "additional_services": [], } @@ -105,6 +111,16 @@ def _parse_instance(l2_args, l2_name, l2_id_generator, registry): registry=registry, ) + # We add the tx-fuzzer params + l2_params["tx_fuzzer_params"] = _tx_fuzzer_input_parser.parse( + tx_fuzzer_args=l2_params["tx_fuzzer_params"], network_params=l2_params["network_params"], registry=registry + ) + + # We add the DA params + l2_params["da_params"] = _da_input_parser.parse( + da_args=l2_params["da_params"], network_params=l2_params["network_params"], registry=registry + ) + return struct( **l2_params, ) diff --git a/test/l2/input_parser_test.star b/test/l2/input_parser_test.star index b5fed148..742f9ec8 100644 --- a/test/l2/input_parser_test.star +++ b/test/l2/input_parser_test.star @@ -110,6 +110,39 @@ def test_l2_input_parser_defaults(plan): replicas={"node0": "http://op-el-2151908-node0-op-geth:8545"}, ) + _default_da_params = struct( + enabled=True, + image="us-docker.pkg.dev/oplabs-tools-artifacts/images/da-server:latest", + cmd=[ + "da-server", + "--file.path=/home", + "--addr=0.0.0.0", + "--port={}".format(3100), + "--log.level=debug", + ], + ports={ + _net.HTTP_PORT_NAME: _net.port(number=3100), + }, + service_name="op-da-da-server-2151908-network1", + labels={ + "op.kind": "da", + "op.network.id": "2151908", + "op.da.type": "da-server", + }, + ) + + _default_tx_fuzzer_params = struct( + enabled=True, + extra_params=[], + image="ethpandaops/tx-fuzz:master", + labels={"op.kind": "tx-fuzzer", "op.network.id": "2151908"}, + max_cpu=1000, + max_memory=300, + min_cpu=100, + min_memory=20, + service_name="op-tx-fuzzer-2151908-network1", + ) + _default_participants = _participant_input_parser.parse( {"node0": None}, _default_network_params, _default_registry ) @@ -123,6 +156,9 @@ def test_l2_input_parser_defaults(plan): batcher_params=_default_batcher_params, proposer_params=_default_proposer_params, proxyd_params=_default_proxyd_params, + da_params=_default_da_params, + tx_fuzzer_params=_default_tx_fuzzer_params, + additional_services=[], ) ], ) @@ -150,6 +186,9 @@ def test_l2_input_parser_defaults(plan): batcher_params=_default_batcher_params, proposer_params=_default_proposer_params, proxyd_params=parsed_proxyd_params, + da_params=_default_da_params, + tx_fuzzer_params=_default_tx_fuzzer_params, + additional_services=[], ) ], ) From d0252880c974570dd7d5671daa1b35e5d34daaa1 Mon Sep 17 00:00:00 2001 From: Jan Nanista Date: Sun, 1 Jun 2025 22:48:03 -0700 Subject: [PATCH 6/7] fix: Lint --- src/l2/input_parser.star | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/l2/input_parser.star b/src/l2/input_parser.star index cf008774..4c77984f 100644 --- a/src/l2/input_parser.star +++ b/src/l2/input_parser.star @@ -113,12 +113,16 @@ def _parse_instance(l2_args, l2_name, l2_id_generator, registry): # We add the tx-fuzzer params l2_params["tx_fuzzer_params"] = _tx_fuzzer_input_parser.parse( - tx_fuzzer_args=l2_params["tx_fuzzer_params"], network_params=l2_params["network_params"], registry=registry + tx_fuzzer_args=l2_params["tx_fuzzer_params"], + network_params=l2_params["network_params"], + registry=registry, ) # We add the DA params l2_params["da_params"] = _da_input_parser.parse( - da_args=l2_params["da_params"], network_params=l2_params["network_params"], registry=registry + da_args=l2_params["da_params"], + network_params=l2_params["network_params"], + registry=registry, ) return struct( From 7ba89a864d82563d79b3fa9e25a12c84b9b1ab71 Mon Sep 17 00:00:00 2001 From: Jan Nanista Date: Sun, 1 Jun 2025 22:56:54 -0700 Subject: [PATCH 7/7] fix: Test --- test/l2/input_parser_test.star | 99 +++++++++++++++++++++------------- 1 file changed, 62 insertions(+), 37 deletions(-) diff --git a/test/l2/input_parser_test.star b/test/l2/input_parser_test.star index 742f9ec8..dce9108d 100644 --- a/test/l2/input_parser_test.star +++ b/test/l2/input_parser_test.star @@ -110,39 +110,6 @@ def test_l2_input_parser_defaults(plan): replicas={"node0": "http://op-el-2151908-node0-op-geth:8545"}, ) - _default_da_params = struct( - enabled=True, - image="us-docker.pkg.dev/oplabs-tools-artifacts/images/da-server:latest", - cmd=[ - "da-server", - "--file.path=/home", - "--addr=0.0.0.0", - "--port={}".format(3100), - "--log.level=debug", - ], - ports={ - _net.HTTP_PORT_NAME: _net.port(number=3100), - }, - service_name="op-da-da-server-2151908-network1", - labels={ - "op.kind": "da", - "op.network.id": "2151908", - "op.da.type": "da-server", - }, - ) - - _default_tx_fuzzer_params = struct( - enabled=True, - extra_params=[], - image="ethpandaops/tx-fuzz:master", - labels={"op.kind": "tx-fuzzer", "op.network.id": "2151908"}, - max_cpu=1000, - max_memory=300, - min_cpu=100, - min_memory=20, - service_name="op-tx-fuzzer-2151908-network1", - ) - _default_participants = _participant_input_parser.parse( {"node0": None}, _default_network_params, _default_registry ) @@ -156,8 +123,10 @@ def test_l2_input_parser_defaults(plan): batcher_params=_default_batcher_params, proposer_params=_default_proposer_params, proxyd_params=_default_proxyd_params, - da_params=_default_da_params, - tx_fuzzer_params=_default_tx_fuzzer_params, + # DA is disabled by default + da_params=None, + # tx fuzzer is disabled by default + tx_fuzzer_params=None, additional_services=[], ) ], @@ -186,14 +155,70 @@ def test_l2_input_parser_defaults(plan): batcher_params=_default_batcher_params, proposer_params=_default_proposer_params, proxyd_params=parsed_proxyd_params, - da_params=_default_da_params, - tx_fuzzer_params=_default_tx_fuzzer_params, + # DA is disabled by default + da_params=None, + # tx fuzzer is disabled by default + tx_fuzzer_params=None, additional_services=[], ) ], ) +def test_l2_input_parser_da_defaults(plan): + _default_da_params = struct( + enabled=True, + image="us-docker.pkg.dev/oplabs-tools-artifacts/images/da-server:latest", + cmd=[ + "da-server", + "--file.path=/home", + "--addr=0.0.0.0", + "--port={}".format(3100), + "--log.level=debug", + ], + ports={ + _net.HTTP_PORT_NAME: _net.port(number=3100), + }, + service_name="op-da-da-server-2151908-network1", + labels={ + "op.kind": "da", + "op.network.id": "2151908", + "op.da.type": "da-server", + }, + ) + + parsed = input_parser.parse( + {"network1": {"participants": {"node0": {}}, "da_params": {"enabled": True}}}, + _default_registry, + ) + expect.eq(parsed[0].da_params, _default_da_params) + + +def test_l2_input_parser_tz_fuzzer_defaults(plan): + _default_tx_fuzzer_params = struct( + enabled=True, + extra_params=[], + image="ethpandaops/tx-fuzz:master", + labels={"op.kind": "tx-fuzzer", "op.network.id": "2151908"}, + max_cpu=1000, + max_memory=300, + min_cpu=100, + min_memory=20, + service_name="op-tx-fuzzer-2151908-network1", + ) + + parsed = input_parser.parse( + { + "network1": { + "participants": {"node0": {}}, + "tx_fuzzer_params": {"enabled": True}, + } + }, + _default_registry, + ) + expect.eq(parsed[0].tx_fuzzer_params, _default_tx_fuzzer_params) + + def test_l2_input_parser_auto_network_id(plan): parsed = input_parser.parse( {"network0": None, "network1": None, "network2": None}, _default_registry