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 - name: Run docker build
run: make docker-build run: make docker-build
- name: Tag docker image - 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 - 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 - 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=sha::$(echo ${GITHUB_SHA:0:7})
echo ::set-output name=tag::$(echo ${GITHUB_REF#refs/tags/}) echo ::set-output name=tag::$(echo ${GITHUB_REF#refs/tags/})
- name: Docker Login to Github Registry - 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 - 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 - name: Docker Login to Docker Registry
run: echo ${{ secrets.VULCANIZEJENKINS_PAT }} | docker login -u vulcanizejenkins --password-stdin run: echo ${{ secrets.VULCANIZEJENKINS_PAT }} | docker login -u vulcanizejenkins --password-stdin
- name: Tag docker image - 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 - 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) # Dependency directories (remove the comment below to include it)
# vendor/ # vendor/
.idea/ .idea/
tx_spammer tx-spammer

View File

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

View File

@ -1,11 +1,11 @@
## Build docker image ## Build docker image
.PHONY: docker-build .PHONY: docker-build
docker-build: docker-build:
docker build -t vulcanize/tx_spammer -f Dockerfile . docker build -t cerc/tx-spammer -f Dockerfile .
.PHONY: build .PHONY: build
build: build:
GO111MODULE=on go build -o tx_spammer . GO111MODULE=on go build -o tx-spammer .
.PHONY: contract .PHONY: contract
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 Tools to enable the semi-reproducible growth of a large and complex chain over RPC, for testing and benchmarking purposes
Usage: 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. 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. 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/sirupsen/logrus"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/vulcanize/tx_spammer/pkg/auto" "github.com/cerc-io/tx-spammer/pkg/auto"
) )
// autoSendCmd represents the autoSend command // autoSendCmd represents the autoSend command

View File

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

View File

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

View File

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

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 go 1.13

View File

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

View File

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

View File

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

View File

@ -20,7 +20,7 @@ import (
"github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/rpc" "github.com/ethereum/go-ethereum/rpc"
"github.com/sirupsen/logrus" "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 // EthSender sends eth value transfer txs

View File

@ -20,7 +20,7 @@ import (
"fmt" "fmt"
"github.com/sirupsen/logrus" "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 // 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/common"
"github.com/ethereum/go-ethereum/core/types" "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 // TxGenerator generates and signs txs

View File

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

View File

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

View File

@ -22,7 +22,7 @@ import (
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/rlp" "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 // TxGenerator generates and signs txs

29
startup_script.sh Normal file → Executable file
View File

@ -1,16 +1,35 @@
#!/bin/sh #!/bin/sh
set -e
set +x
test $SPAMMER_COMMAND
set +e 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" 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 if [ $? -eq 0 ]; then
echo "tx spammer ran successfully" echo "tx spammer ran successfully"
else else
echo "tx spammer ran with error. Is the config file correct?" echo "tx spammer ran with error. Is the config file correct?"
exit 1 exit 1
fi fi