Skip to content

Commit 8c35011

Browse files
authored
feat: add spammor_blob wrapper v1 to activate with fulu (#948)
1 parent 082a8a5 commit 8c35011

File tree

8 files changed

+36
-11
lines changed

8 files changed

+36
-11
lines changed

main.star

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ def run(plan, args={}):
190190
genesis_validators_root,
191191
el_cl_data_files_artifact_uuid,
192192
network_id,
193+
osaka_time,
193194
) = participant_network.launch_participant_network(
194195
plan,
195196
args_with_right_defaults,
@@ -690,6 +691,8 @@ def run(plan, args={}):
690691
all_el_contexts,
691692
args_with_right_defaults.spamoor_blob_params,
692693
global_node_selectors,
694+
args_with_right_defaults.network_params,
695+
osaka_time,
693696
)
694697
else:
695698
fail("Invalid additional service %s" % (additional_service))

src/network_launcher/devnet.star

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ el_cl_genesis_data = import_module(
44
)
55

66

7-
def launch(plan, network, prague_time, repo):
7+
def launch(plan, network, repo):
88
# We are running a devnet
99
url = shared_utils.calculate_devnet_url(network, repo)
1010
el_cl_genesis_uuid = plan.upload_files(
@@ -23,7 +23,6 @@ def launch(plan, network, prague_time, repo):
2323
el_cl_data = el_cl_genesis_data.new_el_cl_genesis_data(
2424
el_cl_genesis_data_uuid.files_artifacts[0],
2525
genesis_validators_root,
26-
prague_time,
2726
)
2827
final_genesis_timestamp = shared_utils.read_genesis_timestamp_from_config(
2928
plan, el_cl_genesis_data_uuid.files_artifacts[0]

src/network_launcher/ephemery.star

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ el_cl_genesis_data = import_module(
44
)
55

66

7-
def launch(plan, prague_time):
7+
def launch(plan):
88
el_cl_genesis_data_uuid = plan.run_sh(
99
name="fetch-ephemery-genesis-data",
1010
description="Creating network configs",
@@ -23,7 +23,6 @@ def launch(plan, prague_time):
2323
el_cl_data = el_cl_genesis_data.new_el_cl_genesis_data(
2424
el_cl_genesis_data_uuid.files_artifacts[0],
2525
genesis_validators_root,
26-
prague_time,
2726
)
2827
final_genesis_timestamp = shared_utils.read_genesis_timestamp_from_config(
2928
plan, el_cl_genesis_data_uuid.files_artifacts[0]

src/network_launcher/public_network.star

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ el_cl_genesis_data = import_module(
55
constants = import_module("../package_io/constants.star")
66

77

8-
def launch(plan, network, prague_time):
8+
def launch(plan, network):
99
# We are running a public network
1010
dummy_genesis_data = plan.run_sh(
1111
name="dummy-genesis-data",
@@ -16,7 +16,6 @@ def launch(plan, network, prague_time):
1616
el_cl_data = el_cl_genesis_data.new_el_cl_genesis_data(
1717
dummy_genesis_data.files_artifacts[0],
1818
constants.GENESIS_VALIDATORS_ROOT[network],
19-
prague_time,
2019
)
2120
final_genesis_timestamp = constants.GENESIS_TIME[network]
2221
network_id = constants.NETWORK_ID[network]

src/participant_network.star

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ def launch_participant_network(
4444
network_id = network_params.network_id
4545
latest_block = ""
4646
num_participants = len(args_with_right_defaults.participants)
47-
prague_time = 0
4847
shadowfork_block = "latest"
4948
total_number_of_validator_keys = 0
5049
if (
@@ -105,7 +104,7 @@ def launch_participant_network(
105104
final_genesis_timestamp,
106105
network_id,
107106
validator_data,
108-
) = launch_ephemery.launch(plan, prague_time)
107+
) = launch_ephemery.launch(plan)
109108
elif (
110109
network_params.network in constants.PUBLIC_NETWORKS
111110
and network_params.network != constants.NETWORK_NAME.ephemery
@@ -116,7 +115,7 @@ def launch_participant_network(
116115
final_genesis_timestamp,
117116
network_id,
118117
validator_data,
119-
) = launch_public_network.launch(plan, network_params.network, prague_time)
118+
) = launch_public_network.launch(plan, network_params.network)
120119
else:
121120
# We are running a devnet
122121
(
@@ -127,7 +126,6 @@ def launch_participant_network(
127126
) = launch_devnet.launch(
128127
plan,
129128
network_params.network,
130-
prague_time,
131129
network_params.devnet_repo,
132130
)
133131

@@ -444,4 +442,5 @@ def launch_participant_network(
444442
el_cl_data.genesis_validators_root,
445443
el_cl_data.files_artifact_uuid,
446444
network_id,
445+
el_cl_data.osaka_time,
447446
)

src/prelaunch_data_generator/el_cl_genesis/el_cl_genesis_data.star

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@ def new_el_cl_genesis_data(
22
files_artifact_uuid,
33
genesis_validators_root,
44
prague_time,
5+
osaka_time,
56
):
67
return struct(
78
files_artifact_uuid=files_artifact_uuid,
89
genesis_validators_root=genesis_validators_root,
910
prague_time=prague_time,
11+
osaka_time=osaka_time,
1012
)

src/prelaunch_data_generator/el_cl_genesis/el_cl_genesis_generator.star

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,18 @@ def generate_el_cl_genesis_data(
9292
files={"/data": genesis.files_artifacts[0]},
9393
)
9494

95+
osaka_time = plan.run_sh(
96+
name="read-osaka-time",
97+
description="Reading osaka time from genesis",
98+
run="jq .config.osakaTime /data/genesis.json | tr -d '\n'",
99+
files={"/data": genesis.files_artifacts[0]},
100+
)
101+
95102
result = el_cl_genesis_data.new_el_cl_genesis_data(
96103
genesis.files_artifacts[0],
97104
genesis_validators_root.output,
98105
prague_time.output,
106+
osaka_time.output,
99107
)
100108

101109
return result

src/spamoor_blob/spamoor_blob.star

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
shared_utils = import_module("../shared_utils/shared_utils.star")
2+
constants = import_module("../package_io/constants.star")
23
SERVICE_NAME = "spamoor-blob"
34

45
# The min/max CPU/memory that spamoor can use
@@ -14,12 +15,16 @@ def launch_spamoor_blob(
1415
all_el_contexts,
1516
spamoor_params,
1617
global_node_selectors,
18+
network_params,
19+
osaka_time,
1720
):
1821
config = get_config(
1922
prefunded_addresses,
2023
all_el_contexts,
2124
spamoor_params,
2225
global_node_selectors,
26+
network_params,
27+
osaka_time,
2328
)
2429
plan.add_service(SERVICE_NAME, config)
2530

@@ -29,7 +34,10 @@ def get_config(
2934
all_el_contexts,
3035
spamoor_params,
3136
node_selectors,
37+
network_params,
38+
osaka_time,
3239
):
40+
image = spamoor_params.image
3341
cmd = [
3442
"{}".format(spamoor_params.scenario),
3543
"--privkey={}".format(prefunded_addresses[4].private_key),
@@ -38,6 +46,14 @@ def get_config(
3846
),
3947
]
4048

49+
if (
50+
"peerdas" in network_params.network
51+
or network_params.fulu_fork_epoch != constants.FAR_FUTURE_EPOCH
52+
):
53+
image = "ethpandaops/spamoor:blob-v1"
54+
cmd.append("--fulu-activation={}".format(osaka_time))
55+
cmd.append("--blob-v1-percent=100")
56+
4157
if spamoor_params.throughput != None:
4258
cmd.append("--throughput={}".format(spamoor_params.throughput))
4359

@@ -54,7 +70,7 @@ def get_config(
5470
cmd.extend([param for param in spamoor_params.spamoor_extra_args])
5571

5672
return ServiceConfig(
57-
image=spamoor_params.image,
73+
image=image,
5874
cmd=cmd,
5975
min_cpu=MIN_CPU,
6076
max_cpu=MAX_CPU,

0 commit comments

Comments
 (0)