Rebrand to cerc-io/tx-spammer #15

Merged
telackey merged 1 commits from telackey/rebrand into main 2022-12-21 15:59:08 +00:00
22 changed files with 84 additions and 129 deletions

View File

@ -17,9 +17,9 @@ jobs:
- name: Run docker build
run: make docker-build
- name: Tag docker image
run: docker tag vulcanize/tx_spammer docker.pkg.github.com/vulcanize/tx_spammer/tx_spammer:${{steps.vars.outputs.sha}}
run: docker tag cerc-io/tx_spammer git.vdb.to/cerc-io/tx_spammer/tx_spammer:${{steps.vars.outputs.sha}}
- name: Docker Login
run: echo ${{ secrets.GITHUB_TOKEN }} | docker login https://docker.pkg.github.com -u vulcanize --password-stdin
run: echo ${{ secrets.GITHUB_TOKEN }} | docker login https://git.vdb.to -u cerc-io --password-stdin
- name: Docker Push
run: docker push docker.pkg.github.com/vulcanize/tx_spammer/tx_spammer:${{steps.vars.outputs.sha}}
run: docker push git.vdb.to/cerc-io/tx_spammer/tx_spammer:${{steps.vars.outputs.sha}}

View File

@ -13,13 +13,13 @@ jobs:
echo ::set-output name=sha::$(echo ${GITHUB_SHA:0:7})
echo ::set-output name=tag::$(echo ${GITHUB_REF#refs/tags/})
- name: Docker Login to Github Registry
run: echo ${{ secrets.GITHUB_TOKEN }} | docker login https://docker.pkg.github.com -u vulcanize --password-stdin
run: echo ${{ secrets.GITHUB_TOKEN }} | docker login https://git.vdb.to -u vulcanize --password-stdin
- name: Docker Pull
run: docker pull docker.pkg.github.com/vulcanize/tx_spammer/tx_spammer:${{steps.vars.outputs.sha}}
run: docker pull git.vdb.to/cerc-io/tx_spammer/tx_spammer:${{steps.vars.outputs.sha}}
- name: Docker Login to Docker Registry
run: echo ${{ secrets.VULCANIZEJENKINS_PAT }} | docker login -u vulcanizejenkins --password-stdin
- name: Tag docker image
run: docker tag docker.pkg.github.com/vulcanize/tx_spammer/tx_spammer:${{steps.vars.outputs.sha}} vulcanize/tx_spammer:${{steps.vars.outputs.tag}}
run: docker tag git.vdb.to/cerc-io/tx_spammer/tx_spammer:${{steps.vars.outputs.sha}} cerc-io/tx_spammer:${{steps.vars.outputs.tag}}
- name: Docker Push to Docker Hub
run: docker push vulcanize/tx_spammer:${{steps.vars.outputs.tag}}
run: docker push cerc-io/tx_spammer:${{steps.vars.outputs.tag}}

2
.gitignore vendored
View File

@ -14,4 +14,4 @@
# Dependency directories (remove the comment below to include it)
# vendor/
.idea/
tx_spammer
tx-spammer

View File

@ -4,10 +4,10 @@ RUN apk --update --no-cache add make git g++ linux-headers
# DEBUG
RUN apk add busybox-extras
# Get and build tx_spammer
ADD . /go/src/github.com/vulcanize/tx_spammer
WORKDIR /go/src/github.com/vulcanize/tx_spammer
RUN GO111MODULE=on GCO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -ldflags '-extldflags "-static"' -o tx_spammer .
# Get and build tx-spammer
ADD . /go/src/github.com/cerc-io/tx-spammer
WORKDIR /go/src/github.com/cerc-io/tx-spammer
RUN GO111MODULE=on GCO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -ldflags '-extldflags "-static"' -o tx-spammer .
# app container
FROM alpine
@ -22,11 +22,12 @@ USER $USER
# chown first so dir is writable
# note: using $USER is merged, but not in the stable release yet
COPY --chown=5000:5000 --from=builder /go/src/github.com/vulcanize/tx_spammer/$CONFIG_FILE config.toml
COPY --chown=5000:5000 --from=builder /go/src/github.com/vulcanize/tx_spammer/startup_script.sh .
COPY --chown=5000:5000 --from=builder /go/src/github.com/cerc-io/tx-spammer/$CONFIG_FILE config.toml
COPY --chown=5000:5000 --from=builder /go/src/github.com/cerc-io/tx-spammer/startup_script.sh .
# keep binaries immutable
COPY --from=builder /go/src/github.com/vulcanize/tx_spammer/tx_spammer tx_spammer
COPY --from=builder /go/src/github.com/vulcanize/tx_spammer/environments environments
COPY --from=builder /go/src/github.com/cerc-io/tx-spammer/tx-spammer tx-spammer
COPY --from=builder /go/src/github.com/cerc-io/tx-spammer/environments environments
COPY --from=builder /go/src/github.com/cerc-io/tx-spammer/sol sol
ENTRYPOINT ["/app/startup_script.sh"]

View File

@ -1,11 +1,11 @@
## Build docker image
.PHONY: docker-build
docker-build:
docker build -t vulcanize/tx_spammer -f Dockerfile .
docker build -t cerc/tx-spammer -f Dockerfile .
.PHONY: build
build:
GO111MODULE=on go build -o tx_spammer .
GO111MODULE=on go build -o tx-spammer .
.PHONY: contract
contract:

View File

@ -1,9 +1,9 @@
# tx_spammer
# tx-spammer
Tools to enable the semi-reproducible growth of a large and complex chain over RPC, for testing and benchmarking purposes
Usage:
`./tx_spammer autoSend --config=./environments/gen.toml`
`./tx-spammer autoSend --config=./environments/gen.toml`
The `autoSend` command takes as input a .toml config of the below format, the fields can be overridden with the env variables in the comments.
It uses the provided key pairs and configuraiton parameters to generate and deploy a number of contracts with a simple interface for `Put`ing to a dynamic data structure.

View File

@ -21,7 +21,7 @@ import (
"github.com/sirupsen/logrus"
"github.com/spf13/cobra"
"github.com/vulcanize/tx_spammer/pkg/auto"
"github.com/cerc-io/tx-spammer/pkg/auto"
)
// autoSendCmd represents the autoSend command

View File

@ -33,7 +33,7 @@ var (
)
var rootCmd = &cobra.Command{
Use: "tx_spammer",
Use: "tx-spammer",
PersistentPreRun: initFuncs,
}

View File

@ -22,7 +22,7 @@ import (
"github.com/sirupsen/logrus"
"github.com/spf13/cobra"
"github.com/vulcanize/tx_spammer/pkg/manual"
"github.com/cerc-io/tx-spammer/pkg/manual"
)
// sendTxsCmd represents the sendTxs command

View File

@ -1,65 +1,30 @@
[eth]
txs = ["L2ContractDeployment", "L2ContractPutCall", "L2ContractGetCall"] # $ETH_TX_LIST
addrLogPath = "" # ETH_ADDR_LOG
keyDirPath = "./keys/" # path to the directory with all of the key pairs to use - env: $ETH_KEY_DIR_PATH
httpPath = "http://localhost:8545" # http url for the node we wish to send all our transactions to - env: $ETH_HTTP_PATH
[L2ContractDeployment]
type = "L2"
httpPath = ""
chainID = 420
to = ""
amount = "0"
gasLimit = 0
gasPrice = "0"
data = ""
senderKeyPath = ""
writeSenderPath = ""
writeDeploymentAddrPath = ""
frequency = 1
totalNumber = 1
delay = 0
l1Sender = ""
l1RollupTxId = 0
sigHashType = 0
queueOrigin = 0
[deployment]
number = 1 # number of contracts we will deploy for each key at keyPath - env: $ETH_DEPLOYMENT_NUMBER
binPath = "sol/build/Test.bin" # hex data for the contracts we will deploy - env: $ETH_DEPLOYMENT_BIN_PATH
gasLimit = 100000 # gasLimit to use for the deployment txs - env: $ETH_DEPLOYMENT_GAS_LIMIT
gasTipCap = "1000000000" # gasTipCap to use for the deployment txs - env: $ETH_DEPLOYMENT_GAS_TIP_CAP
gasFeeCap = "1000000007" # gasFeeCap to use for the deployment txs - env: $ETH_DEPLOYMENT_GAS_FEE_CAP
[L2ContractPutCall]
type = "L2"
httpPath = ""
chainID = 420
to = ""
amount = "0"
gasLimit = 0
gasPrice = "0"
data = ""
senderKeyPath = ""
writeSenderPath = ""
frequency = 15
totalNumber = 1
delay = 60
l1Sender = ""
l1RollupTxId = 0
sigHashType = 0
queueOrigin = 0
[contractSpammer]
frequency = -1 # how often to send a transaction (in milliseconds, -1 for no delay) - env: $ETH_CALL_FREQ
totalNumber = -1 # total number of transactions to send (per sender, -1 for unlimited) - env: $ETH_CALL_TOTAL_NUMBER
abiPath = "sol/build/Test.abi" # path to the abi file for the contract we are calling - env: $ETH_CALL_ABI_PATH
# NOTE: we expect to be calling a method such as Put(address addr, uint256 val) where the first argument is an
# integer than we can increment to store values at new locations in the contract trie (to grow it) and
# the second argument is an integer value that we store at these positions
methodName = "Put" # the method name we are calling - env: $ETH_CALL_METHOD_NAME
gasLimit = 42000 # gasLimit to use for the eth call txs - env: $ETH_CALL_GAS_LIMIT
gasTipCap = "1000000000" # gasTipCap to use for the eth call txs - env: $ETH_CALL_GAS_TIP_CAP
gasFeeCap = "1000000007" # gasFeeCap to use for the eth call txs - env: $ETH_CALL_GAS_FEE_CAP
[L2ContractGetCall]
type = "L2"
httpPath = ""
chainID = 420
to = ""
amount = "0"
gasLimit = 0
gasPrice = "0"
data = ""
senderKeyPath = ""
writeSenderPath = ""
frequency = 60
totalNumber = 2
delay = 30
l1Sender = ""
l1RollupTxId = 0
sigHashType = 0
queueOrigin = 0
[log]
level = "info"
file = ""
[sendSpammer]
frequency = -1 # how often to send a transaction (in milliseconds, -1 for no delay) - env: $ETH_SEND_FREQ
totalNumber = -1 # total number of transactions to send (per sender, -1 for unlimited) - env: $ETH_SEND_TOTAL_NUMBER
amount = "10000" # amount of wei (1x10^-18 ETH) to send in each tx (be mindful of the genesis allocations) - env: $ETH_SEND_AMOUNT
gasLimit = 21000 # gasLimit to use for the eth transfer txs - env: $ETH_SEND_GAS_LIMIT
gasTipCap = "1000000000" # gasTipCap to use for the eth transfer txs - env: $ETH_SEND_GAS_TIP_CAP
gasFeeCap = "1000000007" # gasFeeCap to use for the eth transfer txs - env: $ETH_SEND_GAS_FEE_CAP

View File

@ -1,30 +0,0 @@
[eth]
keyDirPath = "./keys/" # path to the directory with all of the key pairs to use - env: $ETH_KEY_DIR_PATH
httpPath = "http://localhost:8545" # http url for the node we wish to send all our transactions to - env: $ETH_HTTP_PATH
[deployment]
number = 1 # number of contracts we will deploy for each key at keyPath - env: $ETH_DEPLOYMENT_NUMBER
binPath = "sol/build/Test.bin" # hex data for the contracts we will deploy - env: $ETH_DEPLOYMENT_BIN_PATH
gasLimit = 100000 # gasLimit to use for the deployment txs - env: $ETH_DEPLOYMENT_GAS_LIMIT
gasTipCap = "1000000000" # gasTipCap to use for the deployment txs - env: $ETH_DEPLOYMENT_GAS_TIP_CAP
gasFeeCap = "1000000007" # gasFeeCap to use for the deployment txs - env: $ETH_DEPLOYMENT_GAS_FEE_CAP
[contractSpammer]
frequency = -1 # how often to send a transaction (in milliseconds, -1 for no delay) - env: $ETH_CALL_FREQ
totalNumber = -1 # total number of transactions to send (per sender, -1 for unlimited) - env: $ETH_CALL_TOTAL_NUMBER
abiPath = "sol/build/Test.abi" # path to the abi file for the contract we are calling - env: $ETH_CALL_ABI_PATH
# NOTE: we expect to be calling a method such as Put(address addr, uint256 val) where the first argument is an
# integer than we can increment to store values at new locations in the contract trie (to grow it) and
# the second argument is an integer value that we store at these positions
methodName = "Put" # the method name we are calling - env: $ETH_CALL_METHOD_NAME
gasLimit = 42000 # gasLimit to use for the eth call txs - env: $ETH_CALL_GAS_LIMIT
gasTipCap = "1000000000" # gasTipCap to use for the eth call txs - env: $ETH_CALL_GAS_TIP_CAP
gasFeeCap = "1000000007" # gasFeeCap to use for the eth call txs - env: $ETH_CALL_GAS_FEE_CAP
[sendSpammer]
frequency = -1 # how often to send a transaction (in milliseconds, -1 for no delay) - env: $ETH_SEND_FREQ
totalNumber = -1 # total number of transactions to send (per sender, -1 for unlimited) - env: $ETH_SEND_TOTAL_NUMBER
amount = "10000" # amount of wei (1x10^-18 ETH) to send in each tx (be mindful of the genesis allocations) - env: $ETH_SEND_AMOUNT
gasLimit = 21000 # gasLimit to use for the eth transfer txs - env: $ETH_SEND_GAS_LIMIT
gasTipCap = "1000000000" # gasTipCap to use for the eth transfer txs - env: $ETH_SEND_GAS_TIP_CAP
gasFeeCap = "1000000007" # gasFeeCap to use for the eth transfer txs - env: $ETH_SEND_GAS_FEE_CAP

2
go.mod
View File

@ -1,4 +1,4 @@
module github.com/vulcanize/tx_spammer
module github.com/cerc-io/tx-spammer
go 1.13

View File

@ -15,7 +15,7 @@
package main
import "github.com/vulcanize/tx_spammer/cmd"
import "github.com/cerc-io/tx-spammer/cmd"
func main() {
cmd.Execute()

View File

@ -35,7 +35,7 @@ import (
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/rpc"
"github.com/spf13/viper"
"github.com/vulcanize/tx_spammer/pkg/shared"
"github.com/cerc-io/tx-spammer/pkg/shared"
)
var (

View File

@ -23,7 +23,7 @@ import (
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/rpc"
"github.com/vulcanize/tx_spammer/pkg/shared"
"github.com/cerc-io/tx-spammer/pkg/shared"
)
const (

View File

@ -20,7 +20,7 @@ import (
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/rpc"
"github.com/sirupsen/logrus"
"github.com/vulcanize/tx_spammer/pkg/shared"
"github.com/cerc-io/tx-spammer/pkg/shared"
)
// EthSender sends eth value transfer txs

View File

@ -20,7 +20,7 @@ import (
"fmt"
"github.com/sirupsen/logrus"
"github.com/vulcanize/tx_spammer/pkg/shared"
"github.com/cerc-io/tx-spammer/pkg/shared"
)
// Spammer underlying struct type for spamming service

View File

@ -28,7 +28,7 @@ import (
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
"github.com/vulcanize/tx_spammer/pkg/shared"
"github.com/cerc-io/tx-spammer/pkg/shared"
)
// TxGenerator generates and signs txs

View File

@ -23,7 +23,7 @@ import (
"github.com/sirupsen/logrus"
"github.com/vulcanize/tx_spammer/pkg/shared"
"github.com/cerc-io/tx-spammer/pkg/shared"
)
// TxSender type for

View File

@ -18,7 +18,7 @@ package manual
import (
"github.com/sirupsen/logrus"
"github.com/vulcanize/tx_spammer/pkg/shared"
"github.com/cerc-io/tx-spammer/pkg/shared"
)
type Spammer struct {

View File

@ -22,7 +22,7 @@ import (
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/rlp"
"github.com/vulcanize/tx_spammer/pkg/shared"
"github.com/cerc-io/tx-spammer/pkg/shared"
)
// TxGenerator generates and signs txs

27
startup_script.sh Normal file → Executable file
View File

@ -1,12 +1,31 @@
#!/bin/sh
set -e
set +x
test $SPAMMER_COMMAND
set +e
if [ -z "$SPAMMER_COMMAND" ]; then
echo "SPAMMER_COMMAND env value is required!"
exit 2
fi
if [ -z "$LOG_LEVEL" ]; then
LOG_LEVEL="debug"
fi
if [ ! -z "$ACCOUNTS_CSV_URL" ] && [ ! -d "keys" ]; then
mkdir keys
wget -O accounts.csv $ACCOUNTS_CSV_URL
i=0
for line in `cat accounts.csv`; do
echo $line | cut -d',' -f3 | sed 's/^0x//' > keys/$i.key
i=$((i + 1))
done
fi
if [ ! -d "accounts/addresses" ]; then
mkdir -p "accounts/addresses"
fi
echo "Running tx spammer"
./tx_spammer ${SPAMMER_COMMAND} --config=config.toml --log-file=${LOG_FILE} --log-level=${LOG_LEVEL}
./tx-spammer ${SPAMMER_COMMAND} --config=config.toml --log-level=${LOG_LEVEL}
if [ $? -eq 0 ]; then
echo "tx spammer ran successfully"