exSat Network
  • ๐Ÿ”—Important Links
  • ๐ŸŒŒOur Approach
    • What is exSat
      • exSatโ€™s Docking Layer Approach
      • The Paradigm Shift of the Bitcoin Economic Ecosystem
      • Challenges Addressed by exSat
    • Architecture
      • Data Consensus Protocol
        • Network launch phases
        • Decentralized UTXO index
        • Synchronizers and Validators
        • Hybrid Consensus Mechanism
        • Decentralized execution
      • Decentralized Asset Custody (Coming soon)
      • Enhancing the Bitcoin Ecosystem with Smart Contract Capabilities
      • Expanding Possibilities with Rollups
    • $XSAT Tokenomics
      • Total Supply and Issuance
      • Rewards to Synchronizers and Validators
  • ๐Ÿ› ๏ธGuides of Data Consensus
    • Quick Start
    • UTXO Initialization
      • Data preparation
      • Analysis on the UTXO data tobe uploaded
      • Verify the data uploaded to exSat
    • Run a Sychronizer
      • Requirements for Synchronizers
      • Rewards for synchronizers
      • Run as Synchronizer
        • Run from source code
        • Run with Docker
    • Run a BTC Validator
      • Requirements and rewards for BTC Validators
      • Run as BTC validator
        • Run from source code
        • Run with docker
    • Run a XSAT Validator
      • Run as XSAT Validator
        • Run from source code
        • Run with docker
      • Run multiple XSAT Validators
    • Others
      • Operation references
        • Preparation Before You Start
          • Account Preparation
          • Run a BTC node
          • Environment requirements
          • Prerequisites
        • Synchronizer operations
          • Create New Synchronizer Account
          • Synchronizer Registration
          • Execute the synchronizer client
          • Revote For Consensus
          • Change Reward Address
          • Check and claim rewards for synchronizer
          • Update to new Docker version for Synchronizer
        • Validator operations
          • Create New BTC Validator Account
          • Create New XSAT Validator Account
          • Stake for Validator and claim rewards
          • Change Stake Address
          • Change Commission Address
          • Change Commission Ratio
          • Configure Display Information for Your Validator Account
          • Execute the validator client
          • Update to new Docker version for Validator
        • Common operations
          • Import from seed phrase
          • Import from Private Key
          • Set BTC RPC Node
          • Refill BTC for Gas Fees
          • Export private key
          • Remove Your Account
          • Upgrade to new version
          • View Logs
          • Environment variables
  • ๐Ÿ‘จโ€๐Ÿ’ปDeveloper Guides
    • Quick Start
    • Native Layer Developer Guides
      • exSat consensus contracts
        • Pool Register Contract
        • UTXO Management Contract
        • Reward Distribution Contract
        • Block Consensus Contract
        • Block Synchronization Contract
        • Validator Management Contract
        • Staking Contract
      • Run exSat native layer RPC Node
  • ๐Ÿ–ฅ๏ธUser Guides
    • Wallet Setup
    • Bridge Your Assets
    • Earn Rewards via BTC Staking
    • Explore Our Ecosystem
  • Popular Token Contract Addresses
  • ๐Ÿ“šReference
  • ๐Ÿ“ฆCutodian Guides
  • ๐Ÿ”Security Reports
    • Audit Report From Blocksec
  • ๐Ÿ”กTerms and Conditions
    • Terms Of Service
    • Privacy Policy
  • ๐ŸŽPR & Press
  • โ˜Ž๏ธContact US
Powered by GitBook
On this page
  • 1. Download docker image
  • 2. Download and configure the environment variables (.env)
  • 3. Initialize the account and configure the Client
  • 3.1 Initiate the validator account
  • 3.2 Configurations
  • 4. Execute the Client
  • Option 1 : Password stored in ".env"
  • Option 2 : Input password in the command
  • Option 3 : Interactive Password Input
  • 5. Check and claim rewards
  • 6. Update to new Docker image
  1. ๐Ÿ› ๏ธGuides of Data Consensus
  2. Run a BTC Validator
  3. Run as BTC validator

Run with docker

PreviousRun from source codeNextRun a XSAT Validator

Last updated 9 days ago

Please ensure that is installed on your Linux server.

1. Download docker image

docker pull exsatnetwork/exsat-client:latest

2. Download and configure the environment variables (.env)

Please create a directory (e.g., $HOME/.exsat/) to store the files for running the exSat Client via Docker. We will download the .env file directly from GitHub into this directory, and edit it.

mkdir -p $HOME/.exsat/
curl -o $HOME/.exsat/.env https://raw.githubusercontent.com/exsat-network/exsat-client/main/.env.example
vim $HOME/.exsat/.env

Please ensure all configurations are correctly set. Some settings can also be adjusted in the next steps. Detailed configurations can be found here.

3. Initialize the account and configure the Client

Start Docker in interactive mode๏ผš

docker run -it --name commander -v $HOME/.exsat/:/app/.exsat -e CLIENT_TYPE=commander exsatnetwork/exsat-client:latest

Perform below actions in the docker.

3.1 Initiate the validator account

Create or import the account

If you don't have a validator account, please create a new account.

If you already have a validator account, and wish to import it to your client, please import seed phase or import private key.

Stake for your validator account

Validator must stake at least 100 BTC to become a qualified validator. Click here to see how to stake for your validator account.

3.2 Configurations

You can complete some client configurations or perform operations on your account:

  • Set BTC RPC Node (required, can also be done by editing the .env file)

  • Bridge BTC for gas fee (required)

  • Change Stake Address (optional)

  • Change Reward Address(optional)

  • Change Commission Ratio(optional)

  • Configure Display Information (optional)

  • Export private key (optional)

  • Remove your account (optional)

  • New version check (optional)

4. Execute the Client

Please ensure that you have configured the BTC RPC Node, bridged gas fee for your validator account.

There are several ways to start the client using Docker, differing in how the keystore password is provided. Choose the method you prefer.

Assuming the keystore file is stored at $HOME/.exsat/goodvali_keystore.jsonand the password is 123456 , the keystore file path in ".env" file should be look like:

VALIDATOR_KEYSTORE_FILE=/app/.exsat/goodvali_keystore.json

Option 1 : Password stored in ".env"

Please configure password in the .env file:

VALIDATOR_KEYSTORE_PASSWORD=123456

Then, start the Docker container with the following command:

docker run -d --restart always --name goodvali -v $HOME/.exsat/:/app/.exsat -e CLIENT_TYPE=validator exsatnetwork/exsat-client:latest

Option 2 : Input password in the command

Start docker container with the password as parameter in the command:

docker run -d --restart always --name goodvali -v $HOME/.exsat/:/app/.exsat -e CLIENT_TYPE=validator -e VALIDATOR_KEYSTORE_PASSWORD=123456 exsatnetwork/exsat-client:latest

Option 3 : Interactive Password Input

Start Docker in interactive mode and enter the password in the command line interface.

docker run -it --name goodvali -v $HOME/.exsat:/app/.exsat -e CLIENT_TYPE=validator exsatnetwork/exsat-client:latest

Different startup methods vary in terms of security and convenience. If you start the client interactively and enter the password in the interface, the password won't be stored in plain text in the startup command or files, reducing the risk of exposure. However, if you provide the password in the .env file or directly in the command line, it may be more prone to leakage but offers greater convenience during startup.

If your Validator Client is running correctly, the following logs should appear on your screen:

2025-02-28T12:25:23.325+00:00 info: ExsatApi initialized successfully.
2025-02-28T12:25:24.051+00:00 info: Validator[btcval.sat] client configurations are correct, and the startup was successful
2025-02-28T12:25:25.499+00:00 info: Endorse task is running
2025-02-28T12:25:26.158+00:00 info: Endorse task is finished

5. Check and claim rewards

6. Update to new Docker image

When exSat releases a new Docker version, you can upgrade to the latest version by running the following commands (assuming you have been following the previous steps).

docker pull exsatnetwork/exsat-client:latest
docker stop goodvali
docker rm goodvali
docker run -d --restart always --name goodvali -v $HOME/.exsat/:/app/.exsat -e CLIENT_TYPE=validator exsatnetwork/exsat-client:latest

Check for detailed instructions on viewing the logs.

You could on the front-page with the reward address.

this guide
Docker
check and claim rewards