Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wietsewind/docker-rippled
Run XRP Ledger (rippled) node in a Docker container
https://github.com/wietsewind/docker-rippled
xrp-ledger
Last synced: about 13 hours ago
JSON representation
Run XRP Ledger (rippled) node in a Docker container
- Host: GitHub
- URL: https://github.com/wietsewind/docker-rippled
- Owner: WietseWind
- License: mit
- Created: 2018-02-09T02:46:24.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-09-18T08:27:33.000Z (about 2 months ago)
- Last Synced: 2024-09-18T11:11:11.398Z (about 2 months ago)
- Topics: xrp-ledger
- Language: Shell
- Homepage: https://hub.docker.com/r/xrpllabsofficial/xrpld
- Size: 93.8 KB
- Stars: 60
- Watchers: 7
- Forks: 34
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Rippled (node)
This container allows you to run a `rippled` node. No config required.
The server will keep a history of **only 256 ledgers**. You can change this value in the config (more about the config in this readme).
The container is configured to serve a public http websocket at port `80` and the local _rpc admin service_ in the container at port `5005`.
Other ports (443, 6006, 51235) can be mapped but should be enabled in the config first.This container is running on `ubuntu:latest`.
## How to run
### From Github
If you downloaded / cloned the [Github repo](https://github.com/WietseWind/docker-rippled) you got yourself a few scripts to get started. In the `./go` folder, the following scripts are available, run:
- `go/build` to build the container image (tag: `rippled`)
- `go/up` to create a new container named `rippled` and setup the port and persistent config (*1)
- `go/down` to stop and remove the container `rippled`The `go/up` command will mount the subfolder (in the cloned repo folder) `config` to the container; the `rippled.cfg` config and `validators.txt` will be loaded from this folder when `rippled` starts. If you stop/start or restart the container, the container will pickup your changes.
When starting the container the `go/up` script will map port `80` on your host to port `80` in the container. This is where `rippled` is configured to serve a websocket. If you want to run the websocket on another TCP port, you can enter the port after the `go/up` command, eg.:
```
go/up 8080
```After spinning the container up, you will see the rippled log. You should see a lot of information show up within a few seconds. If you want to stop watching the log, press CTRL - C. The container will keep on running in the background.
If you want to build the image manually, use (you can change the tag):
```
docker build --tag rippled:latest .
```### From the Docker Hub
Use the image `xrpllabsofficial/xrpld`.
**Because you only retrieved the container image from the Docker Hub, you have to manually create a container based on the image.** When creating the container, please make sure you open port `80`.
If you run the container with a mapping to `/config/` (in the container) containing a `rippled.cfg` and `validators.txt` file, these will be used. If the mapping or these files aren't present, `rippled` will start with the default config.
This command launches your `rippled` container and the rippled websocket at port `80`:
```
docker run -dit \
--name rippled \
-p 80:80 \
-v /my/local/disk/xrpld-config/:/config/ \
xrpllabsofficial/xrpld:latest
```You can change the `--name` and **make sure you specify a valid local full path for your volume source, instead of `/my/local/disk/xrpld-config/`**.
You can fetch a working sample config from the [Github repo](https://github.com/WietseWind/docker-rippled).
### Note on Apple M1 / M2 chips:
Run the container with `--platform linux/amd64` to get it to work on your Mac M1 / M2.
### Passing arguments/environment variables
Both environment variables passed with `-e` to `docker run` and arguments added at the end of the `docker run` command will be passed. E.g.:
```bash
docker run \
-e TESTVAR=123123 \
-it --name rippled -p $PORT:80 \
-v $(pwd)/../config:/config/ \
xrpllabsofficial/xrpld:latest \
-a \
--start
```... will pass the environment variable `TESTVAR` with value, and the arguments `-aaa` and `-c` to `rippled`.
Alternatively, if you can't pass direct arguments, you can pass a string of arguments as an environment variable called `ENV_ARGS`, like this:
```bash
docker run \
-e ENV_ARGS="-a --start" \
-it --name rippled -p $PORT:80 \
-v $(pwd)/../config:/config/ \
xrpllabsofficial/xrpld:latest
```## So it's running
If you want to check the rippled-logs (container stdout, press CTRL - C to stop watching):
```
docker logs -f rippled
```If you want to check the rippled server status:
```
docker exec rippled rippled server_info
```Check the value of `complete_ledgers` in the server info to see if the server
has complete ledgers with transactions. When you launch the container it may take
a few minutes for the server to sync.If you started the container manually, you may have to change the name of the container (`rippled`) to the name you entered in your `docker run` command.
## Connecting
You can now connect to the `rippled` websocket using a client like [xrpl.js](https://github.com/XRPLF/xrpl.js/tree/main).
# Updating
- **2018-02-21** rippled 0.90.0 [is released](https://ripple.com/dev-blog/rippled-version-0-90-0/)
- **2018-03-23** rippled 0.90.1 [is released](https://ripple.com/dev-blog/rippled-version-0-90-1/)
- **2018-05-15** rippled 1.0.0 [is released](https://twitter.com/nbougalis/status/996385729646297090)
- **2018-06-14** rippled 1.0.1 [is released](https://ripple.com/dev-blog/rippled-version-1-0-1/)
- **2018-09-15** rippled 1.1.0 [is released](https://github.com/ripple/rippled/releases/tag/1.1.0)
- **2018-10-23** rippled 1.1.1 [is released](https://ripple.com/dev-blog/rippled-version-1-1-1/)
- **2018-12-12** rippled 1.1.2 [is released](https://ripple.com/dev-blog/introducing-xrp-ledger-rippled-version-1-1-2/)
- **2019-02-14** rippled 1.2.0 [is released](https://github.com/ripple/rippled/releases/tag/1.2.0)
- **2019-02-27** rippled 1.2.1 [is released](https://github.com/ripple/rippled/releases/tag/1.2.1)
- **2019-03-07** rippled 1.2.2 [is released](https://github.com/ripple/rippled/releases/tag/1.2.2)
- **2019-04-03** rippled 1.2.3 [is released](https://github.com/ripple/rippled/releases/tag/1.2.3)
- **2019-04-17** rippled 1.2.4 [is released](https://github.com/ripple/rippled/releases/tag/1.2.4)
- **2019-07-26** rippled 1.3.1 [is released](https://xrpl.org/blog/2019/rippled-1.3.1.html)
- **2019-07-26** rippled 1.4.0 [is released](https://xrpl.org/blog/2019/rippled-1.4.0.html)
- **2020-04-01** rippled 1.5.0 [is released](https://xrpl.org/blog/2020/rippled-1.5.0.html)
- **2020-08-19** rippled 1.6.0 [is released](https://xrpl.org/blog/2020/rippled-1.6.0.html)
- **2021-05-24** rippled 1.7.2 is released
- **2021-08-28** rippled 1.7.3 is released
- **2021-12-02** rippled 1.8.1 [is released](https://xrpl.org/blog/2021/rippled-1.8.1.html)
- **2022-01-14** rippled 1.8.4 [is released](https://xrpl.org/blog/2022/rippled-1.8.4.html)
- **2022-02-08** rippled 1.8.5 [is released](https://xrpl.org/blog/2022/rippled-1.8.5.html)
- **2022-04-07** rippled 1.9.0 [is released](https://xrpl.org/blog/2022/rippled-1.9.0.html)
- **2022** rippled 1.9.2 [is released](https://xrpl.org/blog/2022/rippled-1.9.2.html)
- **2022** rippled 1.9.3 [is released](https://xrpl.org/blog/2022/rippled-1.9.3.html)
- **2022** rippled 1.9.4 [is released](https://xrpl.org/blog/2022/rippled-1.9.4.html)
- **2023-03-14** rippled 1.10.0 [is released](https://xrpl.org/blog/2023/rippled-1.10.0.html)
- **2023-03** rippled 1.10.1 [is released](https://xrpl.org/blog/2023/rippled-1.10.0.html)
- **2023-06-27** rippled 1.11.0 [is released](https://xrpl.org/blog/2023/rippled-1.11.0.html)
- **2023-09-06** rippled 1.12.0 [is released](https://xrpl.org/blog/2023/rippled-1.12.0.html)
- **2024-01-09** rippled 2.0.0 [is released](https://xrpl.org/blog/2024/rippled-2.0.0.html)
- **2024-01-29** rippled 2.0.1 [is released](https://github.com/XRPLF/rippled/releases/tag/2.0.1)
- **2024-02-20** rippled 2.1.0 [is released](https://xrpl.org/blog/2024/rippled-2.1.0.html)
- **2024-03-27** rippled 2.1.1 [is released](https://xrpl.org/blog/2024/rippled-2.1.1)
- **2024-06-05** rippled 2.2.0 [is released](https://xrpl.org/blog/2024/rippled-2.2.0)
- **2024-07-31** rippled 2.2.1 [is released](https://xrpl.org/blog/2024/rippled-2.2.1)
- **2024-09-03** rippled 2.2.2 [is released](https://xrpl.org/blog/2024/rippled-2.2.2)
- **2024-09-18** rippled 2.2.3 [is released](https://xrpl.org/blog/2024/rippled-2.2.3)## Update process
1. Stop the container: `docker stop rippled` (if you named (`--name`) the container `rippled`)
2. Remove the container: `docker rm rippled`
3. Remove the image: `docker rmi xrpllabsofficial/xrpld:latest` (or if you built the container image based on the [Github repo](https://github.com/WietseWind/docker-rippled): use the image name you specified when building)
4. Re-create the container; if you used Git: `git pull` and `go/build` - if you used the Docker Hub: just use the command from this Readme (_From the Docker Hub_), a new version of the image will be downloaded.**USE THE PATHS YOU SPECIFIED (`-v` argument) WHEN RECREATING THE CONTAINER IF YOU WANT TO KEEP YOUR CONFIG AND/OR DATA!**
## Building & publishing to Docker Hub:
```
version=2.2.3 # Sample
docker build --platform linux/amd64 --no-cache --tag xrpllabsofficial/xrpld:$version .
docker push xrpllabsofficial/xrpld:$version
docker tag xrpllabsofficial/xrpld:$version xrpllabsofficial/xrpld:latest
docker push xrpllabsofficial/xrpld:latest
```