Verify Merkle Root with Python

This section describes the Merkle Root of a Bitcoin Block.

If you want to try verify the Merkle Root with Python, you can follow what I did below:

Get the block # 500 from Bitcoin Test Network:

C:\>\local\bitcoin-0.15.1\bin\bitcoin-cli -testnet getblockhash 500
00000000a2424460c992803ed44cfe0c0333e91af04fde9a6a97b468bf1b5f70

C:\>\local\bitcoin-0.15.1\bin\bitcoin-cli -testnet getblock
   00000000a2424460c992803ed44cfe0c0333e91af04fde9a6a97b468bf1b5f70

   ...
  "height": 500,
  "merkleroot": "dd3f288510dd3b632940bd3fb1db162d3ff99b19ddb0c586cfa3ac9a76d42517",
  "tx": [
    "a647d0c4112b4727f3c856782ff6bbaf099be929b27214a8e0dfedee4383eb68", 
    "24b8a4c788b8c805b810438ddd99e569e184ff20f4394ac49a6d832e69f57242", 
    "c5ffd70c3bc4998465cef55ed6d5d831ab3a550406423eb611117ed8ee41c278", 
    "4692772a73ea834c836915089acf97f2c790380a2b8fd32f82729da72545d8c5", 
    "82d6d88081e3e0eb36730f7f3aedb17228142b9e00a6dbaab4b53b798d0742c1", 
    "fc407d7a3b819daa5cf1ecc2c2a4b103c3782104d1425d170993bd534779a0da", 
    "95ad3ffb2a9426d6f5f5b97a134d90153ae16c9375f74eb385f481cff2771d77"
  ],
  ...

Run the Python console:

C:\>python
>>> import hashlib
>>> import binascii

>>> # Loading 7 transaction hashes into variables
>>> h1 = "a647d0c4112b4727f3c856782ff6bbaf099be929b27214a8e0dfedee4383eb68"
>>> h2 = "24b8a4c788b8c805b810438ddd99e569e184ff20f4394ac49a6d832e69f57242" 
>>> h3 = "c5ffd70c3bc4998465cef55ed6d5d831ab3a550406423eb611117ed8ee41c278" 
>>> h4 = "4692772a73ea834c836915089acf97f2c790380a2b8fd32f82729da72545d8c5" 
>>> h5 = "82d6d88081e3e0eb36730f7f3aedb17228142b9e00a6dbaab4b53b798d0742c1" 
>>> h6 = "fc407d7a3b819daa5cf1ecc2c2a4b103c3782104d1425d170993bd534779a0da" 
>>> h7 = "95ad3ffb2a9426d6f5f5b97a134d90153ae16c9375f74eb385f481cff2771d77"

To be finished later.

Last update: 2018.

Table of Contents

 About This Book

 Introduction of Bitcoin

 Bitcoin Blockchain

 Bitcoin Wallet

 Bitcoin Core

 Bitcoin Transaction

 Bitcoin-Qt - Bitcoin Core GUI

Bitcoin Data Structure

 Data Fields of Bitcoin Block

 Merkle Root of Bitcoin Block

Verify Merkle Root with Python

 Data Structure of Bitcoin Block

 "getblock blockhash 0" - Serialized Hex Blcok Data

 Block Hash Calculation Algorithm

 Block Hash Calculation in Python

 References

 PDF Printing Version