Add tx-spammer (#74)

* Add tx-spammer

* Update README
This commit is contained in:
Thomas E Lackey 2022-12-21 09:59:40 -06:00 committed by GitHub
parent 2c2df6ebbd
commit e7296c2ce3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 60 additions and 24 deletions

View File

@ -17,3 +17,4 @@ cerc/test-container
cerc/eth-probe
cerc/builder-js
cerc/keycloak
cerc/tx-spammer

View File

@ -14,3 +14,4 @@ watcher-mobymask
test
eth-probe
keycloak
tx-spammer

View File

@ -13,3 +13,4 @@ cerc-io/mobymask-watcher
cerc-io/watcher-ts
vulcanize/assemblyscript
cerc-io/eth-probe
cerc-io/tx-spammer

View File

@ -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

View File

@ -0,0 +1,2 @@
ETH_CALL_FREQ=1000
ETH_SEND_FREQ=1000

View File

@ -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

View File

@ -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
```