blob_spammer.star 2.07 KB
Newer Older
1
IMAGE_NAME = "ethpandaops/tx-fuzz:master"
2 3 4 5
SERVICE_NAME = "blob-spammer"

ENTRYPOINT_ARGS = ["/bin/sh", "-c"]

6 7 8
# The min/max CPU/memory that blob-spammer can use
MIN_CPU = 100
MAX_CPU = 1000
9 10
MIN_MEMORY = 256
MAX_MEMORY = 512
11

12

13
def launch_blob_spammer(
14 15
    plan,
    prefunded_addresses,
16
    el_uri,
17
    cl_context,
18 19 20
    deneb_fork_epoch,
    seconds_per_slot,
    genesis_delay,
21
    global_node_selectors,
22 23 24
):
    config = get_config(
        prefunded_addresses,
25
        el_uri,
26
        cl_context,
27 28 29
        deneb_fork_epoch,
        seconds_per_slot,
        genesis_delay,
30
        global_node_selectors,
31 32 33
    )
    plan.add_service(SERVICE_NAME, config)

34 35

def get_config(
36
    prefunded_addresses,
37
    el_uri,
38
    cl_context,
39 40 41
    deneb_fork_epoch,
    seconds_per_slot,
    genesis_delay,
42
    node_selectors,
43
):
44
    dencunTime = (deneb_fork_epoch * 32 * seconds_per_slot) + genesis_delay
45 46 47 48 49 50 51 52
    return ServiceConfig(
        image=IMAGE_NAME,
        entrypoint=ENTRYPOINT_ARGS,
        cmd=[
            " && ".join(
                [
                    "apk update",
                    "apk add curl jq",
53 54
                    'current_epoch=$(curl -s {0}/eth/v2/beacon/blocks/head | jq -r ".version")'.format(
                        cl_context.beacon_http_url,
55 56
                    ),
                    "echo $current_epoch",
57 58
                    'while [ $current_epoch != "deneb" ]; do echo "waiting for deneb, current epoch is $current_epoch"; current_epoch=$(curl -s {0}/eth/v2/beacon/blocks/head | jq -r ".version"); sleep {1}; done'.format(
                        cl_context.beacon_http_url,
59 60 61
                        seconds_per_slot,
                    ),
                    'echo "sleep is over, starting to send blob transactions"',
62 63
                    "/tx-fuzz.bin blobs --rpc={} --sk={}".format(
                        el_uri,
64 65 66 67 68
                        prefunded_addresses[1].private_key,
                    ),
                ]
            )
        ],
69 70 71 72
        min_cpu=MIN_CPU,
        max_cpu=MAX_CPU,
        min_memory=MIN_MEMORY,
        max_memory=MAX_MEMORY,
73
        node_selectors=node_selectors,
74
    )