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
  • Simple Execution
  • Using pm2
  • Using Screen
  • Verify Execution
  • View Logs
  1. Guides of Data Consensus
  2. Others
  3. Operation references
  4. Synchronizer operations

Execute the synchronizer client

PreviousSynchronizer RegistrationNextRevote For Consensus

Last updated 25 days ago

Please make sure you have and .

Simple Execution

You can start the Synchronizer Client with the following command:

yarn start-synchronizer

Since the Synchronizer Client requires the private key of the Synchronizer account (encrypted in the keystore file) to sign the transactions, you need to provide the keystore file's password at runtime. There are many ways to input the password:

  1. Using the --pwdFile parameter Save the password in a file, then pass the file path using the --pwdFile parameter when starting the client. For example, if the password 123456 is saved in /home/exsat/password, you can start the client with:

    yarn start-synchronizer --pwdFile=/home/exsat/password
  2. Storing it in the .env file Save the keystore password directly in the .env file. For example:

    SYNCHRONIZER_KEYSTORE_PASSWORD=123456

    Then directly start the Client:

    yarn start-synchronizer
  3. Inputting it during runtime Simply run the Client:

    yarn start-synchronizer

    The Client will prompt you to enter the keystore file password manually.

Considerations

  • Options 1 and 2 expose the keystore password directly, making them less secure.

  • Option 3 does not expose the password but requires manual input each time the client is restarted, which is complicated for auto execution.

Choose the password input method that best suits your security and operational requirements.

While running the Client directly is straightforward, it is rarely used in practice. This is because processes running on Linux can sometimes be terminated by the system for various reasons. To ensure the Client runs continuously over an extended period, it is recommended to use tools that keep programs running in the background. Common tools for this purpose include pm2 and screen.

Using pm2

PM2 is a process manager for Node.js applications on Linux, allowing you to easily manage, monitor, and keep applications running in the background. You could execute below command to run the Synchronizer client using pm2.

Please ensure that the password of the kesytore is properly configured.

pm2 start ecosystem.config.js --only synchronizer

Using Screen

The Screen command in Linux allows you to run commands in the background, keeping them active even after you disconnect from the terminal session.

You could execute below command to run the Synchronizer client , and manully input the password of the keystore. This approach helps prevent your password from appearing in plain text in configuration files or command lines, reducing the risk of password exposure.

screen -R synchronizer
yarn start-synchronizer
#input the password

You can also start the Synchronizer Client using Screen with the keystore password saved in a file or in the .env file. Take using --pwdFileparameter as an example:

screen -R synchronizer
yarn start-synchronizer --pwdFile=/root/.exsat/synchronizer/password

Verify Execution

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

2025-02-28T12:34:59.176+00:00 info: ExsatApi initialized successfully.
2025-02-28T12:34:59.934+00:00 info: synchronizer[synctest.sat] client configurations are correct, and the startup was successful
2025-02-28T12:35:00.939+00:00 info: Upload block task is running
2025-02-28T12:35:00.942+00:00 info: Verify block task is running
2025-02-28T12:35:00.945+00:00 info: Parse block task is running

View Logs

Refer to to learn how to save logs to file.

🛠️
configured the BTC RPC node
this guide
initialized the account