From e7296c2ce324b037ec15924a7fee7a3f1e4faf54 Mon Sep 17 00:00:00 2001 From: Thomas E Lackey Date: Wed, 21 Dec 2022 09:59:40 -0600 Subject: [PATCH] Add tx-spammer (#74) * Add tx-spammer * Update README --- app/data/container-image-list.txt | 1 + app/data/pod-list.txt | 1 + app/data/repository-list.txt | 1 + compose/docker-compose-tx-spammer.yml | 18 ++++++++ config/tx-spammer/tx-spammer.env | 2 + container-build/cerc-tx-spammer/build.sh | 3 ++ stacks/fixturenet-eth/README.md | 58 ++++++++++++++---------- 7 files changed, 60 insertions(+), 24 deletions(-) create mode 100644 compose/docker-compose-tx-spammer.yml create mode 100644 config/tx-spammer/tx-spammer.env create mode 100755 container-build/cerc-tx-spammer/build.sh diff --git a/app/data/container-image-list.txt b/app/data/container-image-list.txt index ba70e6f6..12db6164 100644 --- a/app/data/container-image-list.txt +++ b/app/data/container-image-list.txt @@ -17,3 +17,4 @@ cerc/test-container cerc/eth-probe cerc/builder-js cerc/keycloak +cerc/tx-spammer diff --git a/app/data/pod-list.txt b/app/data/pod-list.txt index a15507de..659eeb10 100644 --- a/app/data/pod-list.txt +++ b/app/data/pod-list.txt @@ -14,3 +14,4 @@ watcher-mobymask test eth-probe keycloak +tx-spammer diff --git a/app/data/repository-list.txt b/app/data/repository-list.txt index 3da6b4f6..c73ce29b 100644 --- a/app/data/repository-list.txt +++ b/app/data/repository-list.txt @@ -13,3 +13,4 @@ cerc-io/mobymask-watcher cerc-io/watcher-ts vulcanize/assemblyscript cerc-io/eth-probe +cerc-io/tx-spammer diff --git a/compose/docker-compose-tx-spammer.yml b/compose/docker-compose-tx-spammer.yml new file mode 100644 index 00000000..2d203b10 --- /dev/null +++ b/compose/docker-compose-tx-spammer.yml @@ -0,0 +1,18 @@ +version: '3.2' + +services: + tx-spammer: + restart: always + image: cerc/tx-spammer:local + env_file: + - ../config/tx-spammer/tx-spammer.env + environment: + ACCOUNTS_CSV_URL: http://fixturenet-eth-bootnode-geth:9898/accounts.csv + ETH_HTTP_PATH: http://fixturenet-eth-geth-1:8545 + LOG_LEVEL: debug + SPAMMER_COMMAND: autoSend + depends_on: + fixturenet-eth-bootnode-geth: + condition: service_started + fixturenet-eth-geth-1: + condition: service_healthy diff --git a/config/tx-spammer/tx-spammer.env b/config/tx-spammer/tx-spammer.env new file mode 100644 index 00000000..35534265 --- /dev/null +++ b/config/tx-spammer/tx-spammer.env @@ -0,0 +1,2 @@ +ETH_CALL_FREQ=1000 +ETH_SEND_FREQ=1000 diff --git a/container-build/cerc-tx-spammer/build.sh b/container-build/cerc-tx-spammer/build.sh new file mode 100755 index 00000000..b6752dd7 --- /dev/null +++ b/container-build/cerc-tx-spammer/build.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +# Build cerc/tx-spammer +docker build -t cerc/tx-spammer:local ${CERC_REPO_BASE_DIR}/tx-spammer diff --git a/stacks/fixturenet-eth/README.md b/stacks/fixturenet-eth/README.md index e2087f82..bf77c25c 100644 --- a/stacks/fixturenet-eth/README.md +++ b/stacks/fixturenet-eth/README.md @@ -32,6 +32,15 @@ Waiting for beacon phase0 .... DONE! Waiting for beacon altair .... DONE! Waiting for beacon bellatrix pre-merge .... DONE! Waiting for beacon bellatrix merge .... DONE! + +$ docker ps -f 'name=laconic' --format 'table {{.Names}}\t{{.Ports}}' | cut -d'-' -f3- | sort +NAMES PORTS +fixturenet-eth-bootnode-geth-1 8545-8546/tcp, 30303/udp, 0.0.0.0:55847->9898/tcp, 0.0.0.0:55848->30303/tcp +fixturenet-eth-bootnode-lighthouse-1 +fixturenet-eth-geth-1-1 8546/tcp, 30303/tcp, 30303/udp, 0.0.0.0:55851->8545/tcp +fixturenet-eth-geth-2-1 8545-8546/tcp, 30303/tcp, 30303/udp +fixturenet-eth-lighthouse-1-1 0.0.0.0:55858->8001/tcp +fixturenet-eth-lighthouse-2-1 ``` ## Additional pieces @@ -43,18 +52,19 @@ Several other containers can used with the basic `fixturenet-eth`: * `ipld-eth-beacon-db` and `ipld-eth-beacon-indexer` (for indexing Beacon chain blocks) * `eth-probe` (captures eth1 tx gossip) * `keycloak` (nginx proxy with keycloak auth for API authentication) +* `tx-spammer` (generates and sends automated transactions to the fixturenet) It is not necessary to use them all at once, but a complete example follows: ``` # Setup -$ laconic-so setup-repositories --include cerc-io/go-ethereum,cerc-io/ipld-eth-db,cerc-io/ipld-eth-server,cerc-io/ipld-eth-beacon-db,cerc-io/ipld-eth-beacon-indexer,cerc-io/eth-probe +$ laconic-so setup-repositories --include cerc-io/go-ethereum,cerc-io/ipld-eth-db,cerc-io/ipld-eth-server,cerc-io/ipld-eth-beacon-db,cerc-io/ipld-eth-beacon-indexer,cerc-io/eth-probe,cerc-io/tx-spammer # Build -$ laconic-so build-containers --include cerc/go-ethereum,cerc/lighthouse,cerc/fixturenet-eth-geth,cerc/fixturenet-eth-lighthouse,cerc/ipld-eth-db,cerc/ipld-eth-server,cerc/ipld-eth-beacon-db,cerc/ipld-eth-beacon-indexer,cerc/eth-probe,cerc/keycloak +$ laconic-so build-containers --include cerc/go-ethereum,cerc/lighthouse,cerc/fixturenet-eth-geth,cerc/fixturenet-eth-lighthouse,cerc/ipld-eth-db,cerc/ipld-eth-server,cerc/ipld-eth-beacon-db,cerc/ipld-eth-beacon-indexer,cerc/eth-probe,cerc/keycloak,cerc/tx-spammer # Deploy -$ laconic-so deploy-system --include db,fixturenet-eth,ipld-eth-server,ipld-eth-beacon-db,ipld-eth-beacon-indexer,eth-probe,keycloak up +$ laconic-so deploy-system --include db,fixturenet-eth,ipld-eth-server,ipld-eth-beacon-db,ipld-eth-beacon-indexer,eth-probe,keycloak,tx-spammer up # Status @@ -65,24 +75,24 @@ Waiting for beacon altair.... DONE! Waiting for beacon bellatrix pre-merge.... DONE! Waiting for beacon bellatrix merge.... DONE! -$ docker ps -f 'name=laconic' -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -fe60af64140c cerc/ipld-eth-beacon-indexer:local "./entrypoint.sh" 4 minutes ago Up 3 minutes laconic-7ca8f4a970d7999a235e0ee27588a5ab-ipld-eth-beacon-indexer-1 -015583b318c2 cerc/eth-probe:local "/app/run.sh" 4 minutes ago Up 3 minutes laconic-7ca8f4a970d7999a235e0ee27588a5ab-eth-probe-probe-1 -180b03993b1e nginx:1.23-alpine "/docker-entrypoint.…" 4 minutes ago Up 4 minutes 0.0.0.0:54162->80/tcp laconic-7ca8f4a970d7999a235e0ee27588a5ab-keycloak-nginx-1 -2e963e3c4b44 cerc/ipld-eth-server:local "/app/entrypoint.sh" 4 minutes ago Up 4 minutes 127.0.0.1:8081-8082->8081-8082/tcp laconic-7ca8f4a970d7999a235e0ee27588a5ab-ipld-eth-server-1 -913cefc5cecf cerc/fixturenet-eth-lighthouse:local "/opt/testnet/run.sh" 4 minutes ago Up 4 minutes (healthy) 0.0.0.0:54161->8001/tcp laconic-7ca8f4a970d7999a235e0ee27588a5ab-fixturenet-eth-lighthouse-1-1 -c0659d0204ff cerc/fixturenet-eth-lighthouse:local "/opt/testnet/run.sh" 4 minutes ago Up 3 minutes (healthy) laconic-7ca8f4a970d7999a235e0ee27588a5ab-fixturenet-eth-lighthouse-2-1 -1636ed1013a6 cerc/keycloak:local "/opt/keycloak/bin/k…" 4 minutes ago Up 4 minutes 8443/tcp, 0.0.0.0:54160->8080/tcp laconic-7ca8f4a970d7999a235e0ee27588a5ab-keycloak-1 -439b017d75c1 cerc/ipld-eth-db:local "/app/startup_script…" 4 minutes ago Up 4 minutes laconic-7ca8f4a970d7999a235e0ee27588a5ab-migrations-1 -0a2c740a8e12 cerc/eth-probe:local "/app/run.sh" 4 minutes ago Up 4 minutes (healthy) laconic-7ca8f4a970d7999a235e0ee27588a5ab-eth-probe-mq-1 -35a816e0bac1 cerc/fixturenet-eth-geth:local "/opt/testnet/run.sh" 4 minutes ago Up 4 minutes (healthy) 8546/tcp, 30303/tcp, 30303/udp, 0.0.0.0:54154->8545/tcp laconic-7ca8f4a970d7999a235e0ee27588a5ab-fixturenet-eth-geth-1-1 -6691e5988519 cerc/fixturenet-eth-geth:local "/opt/testnet/run.sh" 4 minutes ago Up 4 minutes (healthy) 8545-8546/tcp, 30303/tcp, 30303/udp laconic-7ca8f4a970d7999a235e0ee27588a5ab-fixturenet-eth-geth-2-1 -06602dc7e3d0 timescale/timescaledb:latest-pg14 "docker-entrypoint.s…" 4 minutes ago Up 4 minutes (healthy) 0.0.0.0:54153->5432/tcp laconic-7ca8f4a970d7999a235e0ee27588a5ab-eth-probe-db-1 -91d73ec45b97 cerc/ipld-eth-beacon-db:local "docker-entrypoint.s…" 4 minutes ago Up 4 minutes (healthy) 127.0.0.1:8076->5432/tcp laconic-7ca8f4a970d7999a235e0ee27588a5ab-ipld-eth-beacon-db-1 -48459978329c postgres:14-alpine "docker-entrypoint.s…" 4 minutes ago Up 4 minutes (healthy) 0.0.0.0:54152->5432/tcp laconic-7ca8f4a970d7999a235e0ee27588a5ab-keycloak-db-1 -f48169806b54 timescale/timescaledb:2.8.1-pg14 "docker-entrypoint.s…" 4 minutes ago Up 4 minutes (healthy) 127.0.0.1:8077->5432/tcp laconic-7ca8f4a970d7999a235e0ee27588a5ab-ipld-eth-db-1 -56686c4e004f cerc/fixturenet-eth-geth:local "/opt/testnet/run.sh" 4 minutes ago Up 4 minutes 8545-8546/tcp, 30303/udp, 0.0.0.0:54151->9898/tcp, 0.0.0.0:54150->30303/tcp laconic-7ca8f4a970d7999a235e0ee27588a5ab-fixturenet-eth-bootnode-geth-1 -95f073c5e956 cerc/fixturenet-eth-lighthouse:local "/opt/testnet/run.sh" 4 minutes ago Up 4 minutes laconic-7ca8f4a970d7999a235e0ee27588a5ab-fixturenet-eth-bootnode-lighthouse-1 -``` - +$ docker ps -f 'name=laconic' --format 'table {{.Names}}\t{{.Ports}}' | cut -d'-' -f3- | sort +NAMES PORTS +eth-probe-db-1 0.0.0.0:55849->5432/tcp +eth-probe-mq-1 +eth-probe-probe-1 +fixturenet-eth-bootnode-geth-1 8545-8546/tcp, 30303/udp, 0.0.0.0:55847->9898/tcp, 0.0.0.0:55848->30303/tcp +fixturenet-eth-bootnode-lighthouse-1 +fixturenet-eth-geth-1-1 8546/tcp, 30303/tcp, 30303/udp, 0.0.0.0:55851->8545/tcp +fixturenet-eth-geth-2-1 8545-8546/tcp, 30303/tcp, 30303/udp +fixturenet-eth-lighthouse-1-1 0.0.0.0:55858->8001/tcp +fixturenet-eth-lighthouse-2-1 +ipld-eth-beacon-db-1 127.0.0.1:8076->5432/tcp +ipld-eth-beacon-indexer-1 +ipld-eth-db-1 127.0.0.1:8077->5432/tcp +ipld-eth-server-1 127.0.0.1:8081-8082->8081-8082/tcp +keycloak-1 8443/tcp, 0.0.0.0:55857->8080/tcp +keycloak-db-1 0.0.0.0:55850->5432/tcp +keycloak-nginx-1 0.0.0.0:55859->80/tcp +migrations-1 +tx-spammer-1 +``` \ No newline at end of file