All Projects → WietseWind → docker-rippled-validator

WietseWind / docker-rippled-validator

Licence: MIT license
Run a Ripple XRP (rippled) validator in a Docker container

Programming Languages

shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to docker-rippled-validator

XpringKit
XpringKit provides a Swift SDK for interacting with Xpring Protocols (XRP/PayID/ILP). This library is deprecated.
Stars: ✭ 23 (-11.54%)
Mutual labels:  xrp-ledger
xrp-wallet
Offline/Cold wallet for XRP
Stars: ✭ 12 (-53.85%)
Mutual labels:  xrp-ledger
Rippled
Decentralized cryptocurrency blockchain daemon implementing the XRP Ledger in C++
Stars: ✭ 4,029 (+15396.15%)
Mutual labels:  xrp-ledger
XRPL-MultiSignTool
Graphical user interface to setup MultiSigning, and help with composing & combining MultiSigned transactions.
Stars: ✭ 13 (-50%)
Mutual labels:  xrp-ledger
explorer
Open Source XRP Ledger Explorer
Stars: ✭ 18 (-30.77%)
Mutual labels:  xrp-ledger
xrpayments.co
In-store payment requests in XRP (using Ripple URI QR) - With currency converter
Stars: ✭ 18 (-30.77%)
Mutual labels:  xrp-ledger
xrpl-py
A Python library to interact with the XRP Ledger (XRPL) blockchain
Stars: ✭ 70 (+169.23%)
Mutual labels:  xrp-ledger
xrpl-dev-portal
Source code for xrpl.org including developer documentation
Stars: ✭ 330 (+1169.23%)
Mutual labels:  xrp-ledger
docker-rippled
Run a Ripple XRP (rippled) node in a Docker container
Stars: ✭ 44 (+69.23%)
Mutual labels:  xrp-ledger
xrp-vanity-generator
Generate XRP Vanity Addresses (Wallets) on your local computer
Stars: ✭ 18 (-30.77%)
Mutual labels:  xrp-ledger
rippled-php
A PHP library for rippled (XRP Ledger) communication.
Stars: ✭ 33 (+26.92%)
Mutual labels:  xrp-ledger
ripple-binary-codec
Convert between json and hex representations of transactions and ledger entries on the XRP Ledger. Moved to: https://github.com/XRPLF/xrpl.js/tree/develop/packages/ripple-binary-codec
Stars: ✭ 18 (-30.77%)
Mutual labels:  xrp-ledger

Rippled Validator

This container allows you to run a rippled validator. No config required; however: make sure port 51235 is opened up. If you are behind a firewall: open the port. If you are behind a NAT router: set up port forwarding.

More info about validators? Check the Ripple website: https://ripple.com/build/rippled-setup/#reasons-to-run-a-validator

This container is running on ubuntu:latest.

How to run

If you are new to this and you want to deploy a server for $20 a month at DigitalOcean: here's a howto.

From Github

If you downloaded / cloned the Github repo 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: rippledvalidator:latest)
  • go/up to create a new container named rippledvalidator and setup the port and persistent config (*1)
  • go/down to stop and remove the container rippledvalidator

The go/up command will mount the subfolder (in the cloned repo folder) keystore to the container; the rippled config, validators config and validator keypair will be saved in this folder. If you stop/start or restart the container, the container will pickup your existing config and keypairs :)

If you want to build the image manually, use (you can change the tag):

docker build --tag rippledvalidator:latest .

From the Docker Hub

Use the image xrptipbot/rippledvalidator.

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 51235.

When the container is launched for the first time it will generate the required configfiles for rippled and create a validator keypair. If you're not just testing, you want to save these files. This way, next time you fire up the container (eg. after a restart) you are still "the same" validator. To do this, you have to specify a volume mounted to /keystore (inside the container).

This command does the trick:

docker run -dit \
    --name rippledvalidator \
    -p 51235:51235 \
    -v /My/Local/Disk/RippledKeystore/:/keystore/ \
    xrptipbot/rippledvalidator: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/RippledKeystore/.

This folder wil contain the generated rippled.cfg, validator-keys.json and validators.txt.

So it's running

If everything is OK and your server is accessible from the public internet, you should be able to find your server (after ~15 minutes) in the Validator Registry: https://xrpcharts.ripple.com/#/validators.

You can retrieve your own Validator Public Key by checking the validator-keys.json file in the folder containing the config (./keystore/ or the path you specified for your volume mapping), or by running:

docker exec rippledvalidator cat /root/.ripple/validator-keys.json|grep public_key

If you want to check the rippled-logs (container stdout, press CTRL - C to stop watching):

docker logs -f rippledvalidator

If you want to check the rippled server status:

docker exec rippledvalidator server_info

If you started the container manually, you may have to change the name of the container (rippledvalidator) to the name you entered in your docker run command.

If you want to keep your validator running

... You probably want to validate your domain (Domain Verification: https://ripple.com/build/rippled-setup/#domain-verification. Since the rippled and validator-keys binaries are not on your local computer, you'll have to run them inside the docker container. All you have to do is prepend the docker exec command with your container name before the commands Ripple is showing;

So:

/opt/ripple/bin/rippled server_info -q | grep pubkey_validator

... becomes:

docker exec rippledvalidator /opt/ripple/bin/rippled server_info -q | grep pubkey_validator

If you started the container manually, you may have to change the name of the container (rippledvalidator) to the name you entered in your docker run command.

When you need to provide the contents of your domain private key, you can add your domain private key to the keystore folder (or volume mount you made), the contents are mapped to /keystore/ in the container.

Updating

Update process

  1. Stop the container: docker stop rippledvalidator (if you named (--name) the container rippled)
  2. Remove the container: docker rm rippledvalidator
  3. Remove the image: docker rmi xrptipbot/rippledvalidator:latest (or if you built the container image based on the Github repo: 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!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].