The txsim
binary is a tool that can be used to simulate transactions on the Celestia network. It can be used to test the performance of the Celestia network.
This guide provides instructions on how to use the Celestia txsim
Docker image. The txsim
Docker image is designed to run the txsim
binary with a variety of configurable options.
Before you can use the txsim
Docker image, you must have a prefunded account set up. The txsim
binary requires a prefunded account to function correctly. The keyring for this account should be stored in a file that can be accessed by the Docker container.
You can run the txsim
Docker image using the docker run
command. Here's an example:
docker run -it -v ${HOME}/.celestia-app:/home/celestia ghcr.io/celestiaorg/txsim -k 0 -r http://consensus-validator-robusta-rc6.celestia-robusta.com:26657,http://consensus-full-robusta-rc6.celestia-robusta.com:26657 -g consensus-validator-robusta-rc6.celestia-robusta.com:9090 -t 10s -b 10 -d 100 -e 10
In this command, the -v
option is used to mount the ${HOME}/.celestia-app
directory from the host to the /home/celestia
directory in the Docker container. This allows the txsim
binary to access the keyring for the prefunded account.
You can also run the txsim
Docker image using Docker Compose. Here's an example docker-compose.yml
file:
version: '3'
services:
txsim:
image: ghcr.io/celestiaorg/txsim
command: >
-k 0
-g consensus-validator-robusta-rc6.celestia-robusta.com:9090
-t 10s
-b 10
-d 100
-e 10
volumes:
- /Users/txsimp/.celestia-app:/home/celestia
In this file, the volumes
key is used to mount the /Users/txsimp/.celestia-app
directory from the host to the /home/celestia
directory in the Docker container.
Finally, you can run the txsim
Docker image in a Kubernetes cluster. Here's an example deployment.yaml
file:
apiVersion: apps/v1
kind: Deployment
metadata:
name: txsim-deployment
spec:
replicas: 1
selector:
matchLabels:
app: txsim
template:
metadata:
labels:
app: txsim
spec:
containers:
- name: txsim
image: ghcr.io/celestiaorg/txsim
args:
- "-k"
- "0"
- "-g"
- "consensus-validator-robusta-rc6.celestia-robusta.com:9090"
- "-t"
- "10s"
- "-b"
- "10"
- "-d"
- "100"
- "-e"
- "10"
volumeMounts:
- name: keyring-volume
mountPath: /home/celestia
volumes:
- name: keyring-volume
hostPath:
path: /Users/txsimp/.celestia-app
In this file, the volumeMounts
and volumes
keys are used to mount the /Users/txsimp/.celestia-app
directory from the host to the /home/celestia
directory in the Docker container.
Here's a breakdown of what each flag means:
-k
: Whether a new key should be created (1 for yes, 0 for no)-p
: The path to the keyring for the prefunded account-g
: The gRPC endpoint for thetxsim
binary-t
: The poll time for thetxsim
binary-b
: The number of blob sequences to run-a
: The range of blobs to send per PFB in a sequence-s
: The range of blob sizes to send-m
: The mnemonic for the keyring-d
: The seed for the random number generator-e
: The number of send sequences to run-i
: The amount to send from one account to another-v
: The number of send iterations to run per sequence-u
: The number of stake sequences to run-w
: The amount of initial stake per sequence
Please replace the placeholders in the examples with the actual values you want to use.