Skip to content

Commit 28f7b7d

Browse files
authored
fix: replace goomy with spamoor (ethereum#860)
This PR replaces [goomy](https://github.com/ethpandaops/goomy-blob) with [spamoor](https://github.com/ethpandaops/spamoor). The spamoor project is based on goomy, but was improved a lot to handle high transaction throughput reliably. It supports all features that goomy provides, but blob scenarios are prefixed with `blob-`. As spamoor works much better by now, it makes sense to deprecate goomy and replace it with spamoor.
1 parent e60afbe commit 28f7b7d

File tree

14 files changed

+169
-129
lines changed

14 files changed

+169
-129
lines changed

.github/tests/geth-all.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ participants:
1212
- el_type: geth
1313
cl_type: grandine
1414
additional_services:
15-
- goomy_blob
15+
- spamoor_blob
1616
- dora

.github/tests/mev.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ additional_services:
66
- tx_spammer
77
- blob_spammer
88
- custom_flood
9-
- goomy_blob
9+
- spamoor_blob
1010
- beacon_metrics_gazer
1111
- dora
1212
- prometheus_grafana

.github/tests/mix-with-tools-mev.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ additional_services:
1818
- beacon_metrics_gazer
1919
- dora
2020
- prometheus_grafana
21-
- goomy_blob
21+
- spamoor_blob
2222
- custom_flood
2323
- blobscan
2424
- blockscout

.github/tests/mix-with-tools-minimal.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ additional_services:
2020
- beacon_metrics_gazer
2121
- dora
2222
- prometheus_grafana
23-
- goomy_blob
23+
- spamoor_blob
2424
- custom_flood
2525
- blobscan
2626
- blockscout

.github/tests/mix-with-tools.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ additional_services:
2020
- beacon_metrics_gazer
2121
- dora
2222
- prometheus_grafana
23-
- goomy_blob
23+
- spamoor_blob
2424
- custom_flood
2525
- blobscan
2626
- blockscout

.github/tests/peerdas-fulu.yaml.norun

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ snooper_enabled: true
3434
global_log_level: debug
3535
additional_services:
3636
- dora
37-
- goomy_blob
37+
- spamoor_blob
3838
- prometheus_grafana
3939
- assertoor
4040
ethereum_metrics_exporter_enabled: true

README.md

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -644,7 +644,8 @@ additional_services:
644644
- tx_spammer
645645
- blob_spammer
646646
- custom_flood
647-
- goomy_blob
647+
- spamoor
648+
- spamoor_blob
648649
- el_forkmon
649650
- blockscout
650651
- beacon_metrics_gazer
@@ -686,14 +687,6 @@ tx_spammer_params:
686687
# A list of optional extra params that will be passed to the TX Spammer container for modifying its behaviour
687688
tx_spammer_extra_args: []
688689

689-
# Configuration place for goomy the blob spammer - https://github.com/ethpandaops/goomy-blob
690-
goomy_blob_params:
691-
# Goomy Blob docker image to use
692-
# Defaults to the latest
693-
image: "ethpandaops/goomy-blob:latest"
694-
# A list of optional params that will be passed to the blob-spammer comamnd for modifying its behaviour
695-
goomy_blob_args: []
696-
697690
# Configuration place for prometheus
698691
prometheus_params:
699692
storage_tsdb_retention_time: "1d"
@@ -936,14 +929,15 @@ checkpoint_sync_enabled: false
936929
# Global flag to set checkpoint sync url
937930
checkpoint_sync_url: ""
938931

939-
# Spamoor params
932+
# Configuration place for spamoor as transaction spammer
940933
spamoor_params:
941934
# The image to use for spamoor
942935
image: ethpandaops/spamoor:latest
943-
# The type of transactions to send
944-
# Valid values are eoatx, erctx, deploytx, depoy-destruct, blobs, gasburnertx
936+
# The spamoor scenario to use (see https://github.com/ethpandaops/spamoor)
937+
# Valid scenarios are:
938+
# eoatx, erctx, deploytx, depoy-destruct, blobs, gasburnertx
945939
# Defaults to eoatx
946-
tx_type: eoatx
940+
scenario: eoatx
947941
# Throughput of spamoor
948942
# Defaults to 1000
949943
throughput: 1000
@@ -957,6 +951,34 @@ spamoor_params:
957951
# Defaults to empty
958952
spamoor_extra_args: []
959953

954+
# Configuration place for spammor as blob spammer
955+
spamoor_blob_params:
956+
# spamoor docker image to use
957+
# Defaults to the latest
958+
image: "ethpandaops/spamoor:latest"
959+
# The spamoor blob scenario to use (see https://github.com/ethpandaops/spamoor)
960+
# Valid blob scenarios are:
961+
# - blobs (normal blob transactions only)
962+
# - blob-combined (normal & special blobs with replacements)
963+
# - blob-conflicting (conflicting blob & dynfee transactions)
964+
# - blob-replacements (normal blobs with replacement blob transactions)
965+
# Defaults to blob-combined
966+
scenario: blob-combined
967+
# Throughput of spamoor
968+
# Defaults to 3
969+
throughput: 3
970+
# Maximum number of blobs per transaction
971+
# Defaults to 2
972+
max_blobs: 2
973+
# Max pending blob transactions for spamoor
974+
# Defaults to 6
975+
max_pending: 6
976+
# Max wallets for spamoor
977+
# Defaults to 20
978+
max_wallets: 20
979+
# A list of optional params that will be passed to the spamoor comamnd for modifying its behaviour
980+
spamoor_extra_args: []
981+
960982
# Ethereum genesis generator params
961983
ethereum_genesis_generator_params:
962984
# The image to use for ethereum genesis generator
@@ -1195,7 +1217,7 @@ Here's a table of where the keys are used
11951217
| 0 | mev_custom_flood | | ✅ | As the receiver of balance |
11961218
| 1 | blob_spammer | ✅ | | As the sender of blobs |
11971219
| 3 | transaction_spammer | ✅ | | To spam transactions with |
1198-
| 4 | goomy_blob | ✅ | | As the sender of blobs |
1220+
| 4 | spamoor_blob | ✅ | | As the sender of blobs |
11991221
| 6 | mev_flood | ✅ | | As the contract owner |
12001222
| 7 | mev_flood | ✅ | | As the user_key |
12011223
| 8 | assertoor | ✅ | ✅ | As the funding for tests |

main.star

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ transaction_spammer = import_module(
1515
"./src/transaction_spammer/transaction_spammer.star"
1616
)
1717
blob_spammer = import_module("./src/blob_spammer/blob_spammer.star")
18-
goomy_blob = import_module("./src/goomy_blob/goomy_blob.star")
18+
spamoor_blob = import_module("./src/spamoor_blob/spamoor_blob.star")
1919
el_forkmon = import_module("./src/el_forkmon/el_forkmon_launcher.star")
2020
beacon_metrics_gazer = import_module(
2121
"./src/beacon_metrics_gazer/beacon_metrics_gazer_launcher.star"
@@ -462,19 +462,6 @@ def run(plan, args={}):
462462
args_with_right_defaults.tx_spammer_params,
463463
)
464464
plan.print("Successfully launched blob spammer")
465-
elif additional_service == "goomy_blob":
466-
plan.print("Launching Goomy the blob spammer")
467-
goomy_blob_params = args_with_right_defaults.goomy_blob_params
468-
goomy_blob.launch_goomy_blob(
469-
plan,
470-
prefunded_accounts,
471-
all_el_contexts,
472-
all_cl_contexts[0],
473-
network_params.seconds_per_slot,
474-
goomy_blob_params,
475-
global_node_selectors,
476-
)
477-
plan.print("Successfully launched goomy the blob spammer")
478465
# We need a way to do time.sleep
479466
# TODO add code that waits for CL genesis
480467
elif additional_service == "el_forkmon":
@@ -696,6 +683,15 @@ def run(plan, args={}):
696683
args_with_right_defaults.spamoor_params,
697684
global_node_selectors,
698685
)
686+
elif additional_service == "spamoor_blob":
687+
plan.print("Launching spamoor as blob spammer")
688+
spamoor_blob.launch_spamoor_blob(
689+
plan,
690+
prefunded_accounts,
691+
all_el_contexts,
692+
args_with_right_defaults.spamoor_blob_params,
693+
global_node_selectors,
694+
)
699695
else:
700696
fail("Invalid additional service %s" % (additional_service))
701697
if launch_prometheus_grafana:

network_params.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,8 @@ dora_params:
104104
image: ""
105105
tx_spammer_params:
106106
tx_spammer_extra_args: []
107-
goomy_blob_params:
108-
goomy_blob_args: []
107+
spamoor_blob_params:
108+
spamoor_extra_args: []
109109
prometheus_params:
110110
storage_tsdb_retention_time: "1d"
111111
storage_tsdb_retention_size: "512MB"

src/goomy_blob/goomy_blob.star

Lines changed: 0 additions & 67 deletions
This file was deleted.

0 commit comments

Comments
 (0)