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
  • Block Header Preparation:
  • UTXO Data Preparation:
  1. Guides of Data Consensus
  2. UTXO Initialization

Data preparation

PreviousUTXO InitializationNextAnalysis on the UTXO data tobe uploaded

Last updated 6 months ago

Block Header Preparation:

Preparing the block headers is relatively straightforward. We wrote a in Rust that requests data from a Bitcoin full node via RPC, starting from the genesis block. The script retrieves and interprets block data (hash, height, version, preHash, nextHash, merkleRoot, time, bits, nonce, difficulty, chainwork). Using preHash, it fetches subsequent blocks in a chain request manner. The data is saved into an SQLite file. After running the script, we compare the data with another set obtained from a different Bitcoin full node. Once verified, the SQLite DB file is finalised and uploaded for public download and verification.

UTXO Data Preparation:

Datasource

Middleware

Data Cleaning & Comparative Verification

We used SQL to aggregate and summarise the data, comparing the theoretical total Bitcoin output at block height 839,999 with the actual data. A cross-comparison was performed between the three methods to verify address and balance data consistency. Once all methods produced consistent results, we confirmed the data's integrity and readiness for upload.

By following these meticulous steps, we ensured the reliability and accuracy of the UTXO data and block headers for the exSat network initialization. This collaborative effort demonstrates our commitment to transparency and precision in blockchain data management.

Welcome to download and verify the block header data :

We compiled the (v27.1) code on three machines, starting full nodes to synchronise with the Bitcoin mainnet. was modified to stop block synchronisation at height 839,999, while the other two nodes continued to sync to the latest block.

We selected three popular open-source projects:,, and. Each project was used to read block records from the data sources, extracting necessary fields such as height, address, txid, vout, value, and scriptPubKey. This process resulted in approximately 170 million records, which were ultimately stored in our Clickhouse database. We use this to transfer data from ElectrumX to clickhouse.

Welcome to download and verify the UTXO data :

๐Ÿ› ๏ธ
Block headers prior to 840,000
Bitcoin
One node
ElectrumX
bitcoin-utxo-dump
rusty-blockparser
script
UTXO data prior to 840,000
script