-
Notifications
You must be signed in to change notification settings - Fork 297
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docs: improve docker README #3209
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -1,120 +1,177 @@ | ||||||||||||||
# Celestia `txsim` Docker Image Usage Guide | ||||||||||||||
|
||||||||||||||
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. | ||||||||||||||
|
||||||||||||||
## Table of Contents | ||||||||||||||
|
||||||||||||||
1. [Celestia `txsim` Docker Image Usage Guide](#celestia-txsim-docker-image-usage-guide) | ||||||||||||||
1. [Table of Contents](#table-of-contents) | ||||||||||||||
2. [Prerequisites](#prerequisites) | ||||||||||||||
3. [Running the Docker Image](#running-the-docker-image) | ||||||||||||||
1. [Docker Run](#docker-run) | ||||||||||||||
2. [Docker Compose](#docker-compose) | ||||||||||||||
3. [Kubernetes Deployment](#kubernetes-deployment) | ||||||||||||||
4. [Flag Breakdown](#flag-breakdown) | ||||||||||||||
1. [Docker Setup](#docker-setup) | ||||||||||||||
2. [Overview of celestia-app txsim](#overview-of-celestia-app-txsim) | ||||||||||||||
3. [Prerequisites](#prerequisites) | ||||||||||||||
4. [Quick-Start](#quick-start) | ||||||||||||||
5. [Docker Compose](#docker-compose) | ||||||||||||||
6. [Kubernetes Deployments](#kubernetes-deployment) | ||||||||||||||
7. [Flag Breakdown](#flag-breakdown) | ||||||||||||||
|
||||||||||||||
## 🐳 Docker setup | ||||||||||||||
|
||||||||||||||
This documentation provides a step-by-step guide on how to start up a celestia | ||||||||||||||
app using a docker image. Docker provides a seamless setup for celestia-app | ||||||||||||||
in an isolated environment on your machine. With Docker, | ||||||||||||||
you do not have to worry about the manual configuration of the required | ||||||||||||||
dependencies, which can be a pain. | ||||||||||||||
|
||||||||||||||
## Overview of celestia app txsim | ||||||||||||||
|
||||||||||||||
The celestia-app `txsim` binary is a tool that can be | ||||||||||||||
used to simulate transactions on the Celestia network. | ||||||||||||||
The `txsim` Docker image is designed to run the `txsim` binary with a | ||||||||||||||
variety of configurable options. | ||||||||||||||
|
||||||||||||||
## Prerequisites | ||||||||||||||
|
||||||||||||||
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. | ||||||||||||||
- [Docker Desktop for Mac or Windows](https://docs.docker.com/get-docker) or | ||||||||||||||
[Docker Engine for Linux](https://docs.docker.com/engine/install/) | ||||||||||||||
and a basic understanding of Docker. | ||||||||||||||
Comment on lines
+30
to
+32
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The prerequisites section clearly outlines the necessary tools and knowledge. However, there's an unpaired symbol in the markdown link for Docker Desktop. Ensure all markdown links are correctly formatted. - - [Docker Desktop for Mac or Windows](https://docs.docker.com/get-docker) or
+ - [Docker Desktop for Mac or Windows](https://docs.docker.com/get-docker) or Committable suggestion
Suggested change
|
||||||||||||||
|
||||||||||||||
- A prefunded account set up with the keyring stored in a file, | ||||||||||||||
to be accessed by an instance of the docker image. | ||||||||||||||
|
||||||||||||||
## Running the Docker Image | ||||||||||||||
## Quick-Start | ||||||||||||||
|
||||||||||||||
### Docker Run | ||||||||||||||
1. In your local machine, navigate to the home directory | ||||||||||||||
|
||||||||||||||
You can run the `txsim` Docker image using the `docker run` command. Here's an example: | ||||||||||||||
```bash | ||||||||||||||
cd $HOME | ||||||||||||||
``` | ||||||||||||||
|
||||||||||||||
```bash | ||||||||||||||
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 | ||||||||||||||
``` | ||||||||||||||
2. Create a file in which the keyring would be stored. | ||||||||||||||
The file would be mounted as a volume into the docker container. | ||||||||||||||
|
||||||||||||||
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. | ||||||||||||||
```bash | ||||||||||||||
touch .celestia-app | ||||||||||||||
``` | ||||||||||||||
|
||||||||||||||
### Docker Compose | ||||||||||||||
3. Using a suitable text editor of your choice, open the | ||||||||||||||
.celestia-app file and paste the keyring of the prefunded account. | ||||||||||||||
Comment on lines
+52
to
+53
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. When instructing users to paste the keyring into the - .celestia-app file and paste the keyring of the prefunded account.
+ .celestia-app file and paste the keyring of the prefunded account. Committable suggestion
Suggested change
Comment on lines
+52
to
+53
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think it would be helpful here to tell people how they can setup the keyring using the |
||||||||||||||
|
||||||||||||||
You can also run the `txsim` Docker image using Docker Compose. Here's an example `docker-compose.yml` file: | ||||||||||||||
4. We recommend that you set the necessary file permission for the | ||||||||||||||
.celestia-app file. A simple read access is all that is required for the | ||||||||||||||
docker container to access the content of the file. | ||||||||||||||
|
||||||||||||||
```yaml | ||||||||||||||
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 | ||||||||||||||
``` | ||||||||||||||
5. You can run the txsim Docker image using the docker run command below. | ||||||||||||||
|
||||||||||||||
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. | ||||||||||||||
```bash | ||||||||||||||
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 \ | ||||||||||||||
Comment on lines
+65
to
+66
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We can get rid of these two lines, as the tx sim no longer requires an rpc endpoint and the -r flag has been removed |
||||||||||||||
-g consensus-validator-robusta-rc6.celestia-robusta.com: \ | ||||||||||||||
-t 10s -b 10 -d 100 -e 10 | ||||||||||||||
``` | ||||||||||||||
|
||||||||||||||
### Kubernetes Deployment | ||||||||||||||
6. 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. | ||||||||||||||
|
||||||||||||||
Finally, you can run the `txsim` Docker image in a Kubernetes cluster. Here's an example `deployment.yaml` file: | ||||||||||||||
Congratulations! You have successfuly set up celestia-app in Docker 😎. | ||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The congratulatory message for successfully setting up the Celestia app in Docker contains a spelling mistake. Correct "successfuly" to "successfully" to maintain professionalism in the documentation. - Congratulations! You have successfuly set up celestia-app in Docker 😎.
+ Congratulations! You have successfully set up celestia-app in Docker 😎. Committable suggestion
Suggested change
|
||||||||||||||
|
||||||||||||||
```yaml | ||||||||||||||
apiVersion: apps/v1 | ||||||||||||||
kind: Deployment | ||||||||||||||
metadata: | ||||||||||||||
name: txsim-deployment | ||||||||||||||
spec: | ||||||||||||||
replicas: 1 | ||||||||||||||
selector: | ||||||||||||||
matchLabels: | ||||||||||||||
app: txsim | ||||||||||||||
template: | ||||||||||||||
metadata: | ||||||||||||||
labels: | ||||||||||||||
## Docker Compose | ||||||||||||||
|
||||||||||||||
You can also run the `txsim` Docker image using Docker Compose. | ||||||||||||||
Here's an example `docker-compose.yml` file: | ||||||||||||||
|
||||||||||||||
```yaml | ||||||||||||||
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. | ||||||||||||||
|
||||||||||||||
## Kubernetes Deployment | ||||||||||||||
|
||||||||||||||
Finally, you can run the `txsim` Docker image in a Kubernetes cluster. | ||||||||||||||
Here's an example `deployment.yaml` file: | ||||||||||||||
|
||||||||||||||
```yaml | ||||||||||||||
apiVersion: apps/v1 | ||||||||||||||
kind: Deployment | ||||||||||||||
metadata: | ||||||||||||||
name: txsim-deployment | ||||||||||||||
spec: | ||||||||||||||
replicas: 1 | ||||||||||||||
selector: | ||||||||||||||
matchLabels: | ||||||||||||||
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: | ||||||||||||||
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 | ||||||||||||||
mountPath: /home/celestia | ||||||||||||||
volumes: | ||||||||||||||
- name: keyring-volume | ||||||||||||||
hostPath: | ||||||||||||||
path: /Users/txsimp/.celestia-app | ||||||||||||||
``` | ||||||||||||||
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. | ||||||||||||||
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. | ||||||||||||||
|
||||||||||||||
## Flag Breakdown | ||||||||||||||
|
||||||||||||||
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 the `txsim` binary | ||||||||||||||
- `-t`: The poll time for the `txsim` 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. | ||||||||||||||
The table below provides a brief explanation of the | ||||||||||||||
flags used in the docker run command in step 5 of the quick start instructions. | ||||||||||||||
|
||||||||||||||
| FLAG | DESCRIPTION | DEFAULT | OPTION | | ||||||||||||||
| ---- | ---- | ---- | :----: | | ||||||||||||||
|`-k`|Whether a new key should be created|0|1 for yes, 0 for no| | ||||||||||||||
|`-p`|Path to keyring for prefunded account|-|-| | ||||||||||||||
|`-g`|gRPC endpoint|consensus-validator-robusta-rc6.celestia-robusta.com:9090|| | ||||||||||||||
|`-t`|Poll time for the `txsim` binary|10s|1s,2s,3s,4s,...| | ||||||||||||||
|`-b`|Number of blob sequences to run|10|any integer value(1,2,3,...)| | ||||||||||||||
|`-a`|Range of blobs to send per PFB in a sequence|-|-| | ||||||||||||||
|`-s`|Range of blob sizes to send|-|-| | ||||||||||||||
|`-m`|Mnemonic for the keyring |-|-| | ||||||||||||||
|`-d`|Seed for the random number generator|100|any integer value (1,2,3,...)| | ||||||||||||||
|`-e`|Number of send sequences to run|10|any integer value (1,2,3,...)| | ||||||||||||||
|`-i`|Amount to send from one account to another|-|any integer value (1,2,3,...)| | ||||||||||||||
|`-v`|Number of send iterations to run per sequence|-|any integer value (1,2,3,...)| | ||||||||||||||
|`-u`|Number of stake sequences to run|-|any integer value (1,2,3,...)| | ||||||||||||||
|`-w`|Amount of initial stake per sequence|-|any integer value (1,2,3,...)| | ||||||||||||||
Comment on lines
+157
to
+172
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 👍 I like the use of the table |
||||||||||||||
|
||||||||||||||
Kindly replace the placeholders in the example docker run | ||||||||||||||
command in step 5 of the quick start instructions, | ||||||||||||||
with the actual values you want to use. | ||||||||||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is helpful as an opening sentence about this README document