【以太坊】Ethereum: Smart Contract

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wuzh1230/article/details/52241745

Introduction

  • History
    There is a payment called P2SH( pay to script hash) in bitcoin. With this feature, you can compile many interesting scripts( the original form of contract) like this wiki and this.

  • P2SH in Bitcoin:

    Hash Locked Tx on ZKCP

    OP_SHA256
    <Y> OP_EQUAL
    OP_IF
      <Seller Pubkey>
    OP_ELSE
      <block_height+100> OP_CHECKLOCKTIMEVERIFY OP_DROP
      <Buyer Pubkey>
    OP_ENDIF
    OP_CHECKSIG

    But for more complex logical control on contract, such as colored bitcoin, and stake IPO, Bitcoin has no these abilities.

  • Questions

    1. how to pay fee for colored transaction on bitcoin network?

    2. how to automatically color a coin in a chain of transactions?

  • Evolve

    1. BitCoin: UTXO(N) = f( UTXO(N-1), Tx(N));

    2. Ethereum: State(N) = f( State(N-1), Tx(N));

  • Ethereum:

    State = Accounts + Storages.

    Accounts = Personal Account (EOA) + Contract Account.

    Account = Balance + Storage.

    Contract Account = Account + EVM Byte Code.

  • Transaction makes Transformation:
    State(N-1) + Tx(N)State(N)

Inventions in Ethereum

  • Powerful script: a Turing-Complete VM and interperter

  • Account State and Contract Stroage: use MPT(Merkle-Patricia-Tree) as a database

  • Protection of network from abusing of the powerful script: Gas

Experiment on Ethereum private network

  1. Checkout go-ethereum from github

    $ git clone --recursive https://github.com/ethereum/go-ethereum
    $ make 
    $ export PATH=$PATH:`pwd`/build/bin

    If you prefer cpp-ethereum, here is a steps for c++ coders on linux, cpp-ethereum

  2. Create a test account (EOA)

    $ geth --datadir /tmp/nodes/node1 account new
    Passphrase:
    $ geth --datadir /tmp/nodes/node1 account list
    ...
  3. Prepare a contract compiler Solidity

    $ sudo apt-get -y install build-essential \
            git \
            cmake \
            libgmp-dev \
            libboost-all-dev \
    
    $ sudo add-apt-repository -y ppa:ethereum/ethereum
    $ sudo add-apt-repository -y ppa:ethereum/ethereum-dev
    $ sudo apt-get -y update
    $ sudo apt-get -y upgrade
    $ sudo apt-get -y install libcryptopp-dev
    
    $ git clone --recursive https://github.com/ethereum/solidity
    
    $ cd solidity \
        && mkdir build \
        && cd build \
        && cmake .. \
        && make install 
    
    $ sloc --help
  4. Prepare a Genesis Block configure file

Reference latest craft

```
{
    "nonce": "0x0000000000000042",     
    "timestamp": "0x0",
    "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "extraData": "0x0",     
    "gasLimit": "0x8000000",     
    "difficulty": "0x400",
    "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "coinbase": "0x3333333333333333333333333333333333333333",     
    "alloc": {  
        "0x2773ffb039ded4bd86c3c96bf136e9f2bf510114" : {
            "balance" : "20000000000000000000000"
        }
   }
}

```
  1. Mining with low difficulty

    diff --git a/core/block_validator.go b/core/block_validator.go
    index a7c7f76..e1c9207 100644
    --- a/core/block_validator.go
    +++ b/core/block_validator.go
    @@ -255,6 +255,7 @@ func ValidateHeader(config *ChainConfig, pow pow.PoW, header *types.Header, pare
     // the difficulty that a new block should have when created at time
     // given the parent block's time and difficulty.
     func CalcDifficulty(config *ChainConfig, time, parentTime uint64, parentNumber, parentDiff *big.Int) *big.Int {
    +       return big.NewInt(0x400);
            if config.IsHomestead(new(big.Int).Add(parentNumber, common.Big1)) {
                    return calcDifficultyHomestead(time, parentTime, parentNumber, parentDiff)
            } else {
    
  2. Construct a Private network

    $ geth --datadir /tmp/node2/node1 init node1.genesis.json
  3. Contract

    contract HelloWorld {
        string greeting;
    
        function greeter(string g) public {
            greeting = g;
        }
    
        function show() constant returns (string) {
            return greeting;
        }
    }

    var src = ‘< above script code in solidity >’;
    var compiled = web3.eth.compile.solidity(src);
    contract_compiled;

    {
      HelloWorld: {
        code: "< Long long byte code >",
        info: {
          abiDefinition: [{...}, {...}],
          compilerOptions: "< many compiling options >",
          compilerVersion: "0.3.6",
          developerDoc: {
            methods: {}
          },
          language: "Solidity",
          languageVersion: "0.3.6",
          source: "< the contract source code >",
          userDoc: {
            methods: {}
          }
        }
      }
    }

    var abi = compiled.HelloWorld.info.abiDefinition;

    [{
        constant: true,
        inputs: [],
        name: "show",
        outputs: [{
            name: "",
            type: "string"
        }],
        type: "function"
    }, {
        constant: false,
        inputs: [{
            name: "g",
            type: "string"
        }],
        name: "greeter",
        outputs: [],
        type: "function"
    }]

    var code = compiled.HelloWorld.info.code;

    "0x606060405261021c806100126000396000f3606060405260e060020a6000350463cc80f6f38114610026578063faf27bca1461008f575b005b604080516020818101835260008083528054845160026001831615610100026000190190921691909104601f81018490048402820184019095528481526101409490928301828280156101d95780601f106101ae576101008083540402835291602001916101d9565b6100246004808035906020019082018035906020019191908080601f016020809104026020016040519081016040528093929190818152602001838380828437509496505050505050508060006000509080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106101e357805160ff19168380011785555b506102139291505b80821115610218576000815560010161012c565b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156101a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b820191906000526020600020905b8154815290600101906020018083116101bc57829003601f168201915b5050505050905090565b82800160010185558215610124579182015b828111156101245782518260005055916020019190600101906101f5565b505050565b509056"

    eth.getBlock(‘pending’);

    {
      difficulty: 1024,
      extraData: "0x",
      gasLimit: 132523880,
      gasUsed: 0,
      hash: null,
      logsBloom: null,
      miner: null,
      nonce: null,
      number: 13,
      parentHash: "0xe35c8ddf8aee36b1ba8d714af9d06cef05082091ef6823af28dd9d02db0e0d76",
      receiptRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
      sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
      size: 511,
      stateRoot: "0x0000000000000000000000000000000000000000000000000000000000000000",
      timestamp: 1472006680,
      totalDifficulty: 0,
      transactions: [],
      transactionsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
      uncles: []
    }

    var txhash = web3.eth.sendTransaction({from: ‘0x2773ffb039ded4bd86c3c96bf136e9f2bf510114’, data: code});

    I0824 10:55:49.044146 eth/api.go:1191] 
    Tx(0x5f995744897e16e04e66b0e814f7a94cedb05698f309cc2961f6c4bfb151dd4a) created: 
    0xc7e93af8effe641d1a271105f4b2171f4c8a792b

    web3.eth.getBlock(‘pending’);

    {
      difficulty: 1024,
      extraData: "0x",
      gasLimit: 132523880,
      gasUsed: 90000,
      hash: null,
      logsBloom: null,
      miner: null,
      nonce: null,
      number: 13,
      parentHash: "0xe35c8ddf8aee36b1ba8d714af9d06cef05082091ef6823af28dd9d02db0e0d76",
      receiptRoot: "0x11fd3dd942b74c76e301b93da5daad2c678b564f9338f18a03d98505603f8259",
      sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
      size: 1122,
      stateRoot: "0x0000000000000000000000000000000000000000000000000000000000000000",
      timestamp: 1472006680,
      totalDifficulty: 0,
      transactions: ["0x5f995744897e16e04e66b0e814f7a94cedb05698f309cc2961f6c4bfb151dd4a"],
      transactionsRoot: "0x984dda77ce5b7b794c61a4f51c375afc96993ef237ea9781680c4ad9f2891fac",
      uncles: []
    }

    var template = web3.eth.contract(abi);
    var inst = template.new(“helloworld”, {from: ‘0x2773ffb039ded4bd86c3c96bf136e9f2bf510114’, data: code});

    I0824 11:05:42.861268 eth/api.go:1191] 
    Tx(0xc2c775160a68edd99847c91300c4ea73ebb00c721beb10e37e89c8e85a705180) created:
    0xd2cfb391f5abb791b5c60a4b3402c39c69816961

    web3.eth.getBlock(‘pending’);

    {
      difficulty: 1024,
      extraData: "0x",
      gasLimit: 132523880,
      gasUsed: 147601,
      hash: null,
      logsBloom: null,
      miner: null,
      nonce: null,
      number: 13,
      parentHash: "0xe35c8ddf8aee36b1ba8d714af9d06cef05082091ef6823af28dd9d02db0e0d76",
      receiptRoot: "0x7c29b5761b6719eda8b10bcd8b4d0ae36b31367acbf98d357a111f681a846f82",
      sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
      size: 1766,
      stateRoot: "0x0000000000000000000000000000000000000000000000000000000000000000",
      timestamp: 1472006680,
      totalDifficulty: 0,
      transactions: ["0x5f995744897e16e04e66b0e814f7a94cedb05698f309cc2961f6c4bfb151dd4a", "0xc2c775160a68edd99847c91300c4ea73ebb00c721beb10e37e89c8e85a705180"],
      transactionsRoot: "0xc76c381a00cf0e043edc83e21ecb190de4e58fc82679dae4e28861d708a562c8",
      uncles: []
    }

    miner.start(1);

    I0824 11:08:35.032051 miner/miner.go:119] Starting mining operation (CPU=1 TOT=2)
    I0824 11:08:35.032724 miner/worker.go:573] commit new work on block 13 with 2 txs & 0 uncles. Took 539.191µs
    true
    I0824 11:08:35.033581 eth/backend.go:454] Automatic pregeneration of ethash DAG ON (ethash dir: /root/.ethash)
    I0824 11:08:35.033652 ethash.go:259] Generating DAG for epoch 0 (size 1073739904) (0000000000000000000000000000000000000000000000000000000000000000)
    I0824 11:08:35.033850 eth/backend.go:461] checking DAG (ethash dir: /root/.ethash)
    I0824 11:08:36.038051 ethash.go:276] Done generating DAG for epoch 0, it took 1.004395871s

    …. waiting ….

    I0824 11:12:41.036481 miner/worker.go:339]   Mined block (#13 / f3f01c4c). Wait 5 blocks for confirmation
    I0824 11:12:41.037020 miner/worker.go:573] commit new work on block 14 with 0 txs & 0 uncles. Took 176.146µs
    I0824 11:12:41.062208 miner/worker.go:573] commit new work on block 14 with 0 txs & 0 uncles. Took 195.425µs

    miner.stop();
    web3.eth.getBlock(13);

    {
      difficulty: 1024,
      extraData: "0xd78301040a844765746887676f312e352e31856c696e7578",
      gasLimit: 132523880,
      gasUsed: 147601,
      hash: "0xf3f01c4cc3f620a24d73b441f027b8ebb0ca49a65537066b10f78f3691d37179",
      logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
      miner: "0x2773ffb039ded4bd86c3c96bf136e9f2bf510114",
      nonce: "0x2e6b7c14179fcfba",
      number: 13,
      parentHash: "0xe35c8ddf8aee36b1ba8d714af9d06cef05082091ef6823af28dd9d02db0e0d76",
      receiptRoot: "0x633761ffaf166a6195633b05c276057b1fa6d081799980daad86f9b71e52ced2",
      sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
      size: 1790,
      stateRoot: "0xfebaec28d6a0131444f179febd692469bb15288e2869a92e1918268f66eab83c",
      timestamp: 1472008115,
      totalDifficulty: 14336,
      transactions: ["0x5f995744897e16e04e66b0e814f7a94cedb05698f309cc2961f6c4bfb151dd4a", "0xc2c775160a68edd99847c91300c4ea73ebb00c721beb10e37e89c8e85a705180"],
      transactionsRoot: "0xc76c381a00cf0e043edc83e21ecb190de4e58fc82679dae4e28861d708a562c8",
      uncles: []
    }

    web3.eth.getTransactionReceipt(‘0x5f995744897e16e04e66b0e814f7a94cedb05698f309cc2961f6c4bfb151dd4a’);

    {
      blockHash: "0xf3f01c4cc3f620a24d73b441f027b8ebb0ca49a65537066b10f78f3691d37179",
      blockNumber: 13,
      contractAddress: "0xc7e93af8effe641d1a271105f4b2171f4c8a792b",
      cumulativeGasUsed: 90000,
      from: "0x2773ffb039ded4bd86c3c96bf136e9f2bf510114",
      gasUsed: 90000,
      logs: [],
      root: "44af6b2ec6b03f0ab6eb5e384188bd3c7e0687395a587310f27d78aa48925f96",
      to: null,
      transactionHash: "0x5f995744897e16e04e66b0e814f7a94cedb05698f309cc2961f6c4bfb151dd4a",
      transactionIndex: 0
    }

    web3.eth.getTransactionReceipt(‘0xc2c775160a68edd99847c91300c4ea73ebb00c721beb10e37e89c8e85a705180’);

    {
      blockHash: "0xf3f01c4cc3f620a24d73b441f027b8ebb0ca49a65537066b10f78f3691d37179",
      blockNumber: 13,
      contractAddress: "0xd2cfb391f5abb791b5c60a4b3402c39c69816961",
      cumulativeGasUsed: 147601,
      from: "0x2773ffb039ded4bd86c3c96bf136e9f2bf510114",
      gasUsed: 57601,
      logs: [],
      root: "535656cd46445389bafecd6620d2541a98a94960876fca424e0815bb3f2e7c24",
      to: null,
      transactionHash: "0xc2c775160a68edd99847c91300c4ea73ebb00c721beb10e37e89c8e85a705180",
      transactionIndex: 1
    }

    var inst = template.at(‘0xc7e93af8effe641d1a271105f4b2171f4c8a792b’);
    contract_inst.show();

    new BigNumber() not a base 16 number: 
    at raise (web3.js:14426:29)
    at web3.js:14414:33
    at BigNumber (web3.js:13461:28)
    at web3.js:1127:23
    at web3.js:1656:20
    at web3.js:840:16
    at web3.js:839:12
    at web3.js:4012:18
    at web3.js:4035:16
    at web3.js:4145:12

Failed because this reason

Leveldb

to inspect state in `datadir’/.ethereum/chainstate , use leveldbutil

levedbutil dump 000002.log

TODO

  1. Check it by event log;
  2. Difference between contract creating and P2SH
  3. Debug cpp-ethereum or go-ethereum

Tech Details of ethereum

  1. Merkle-Patricia-Tree
  2. State (including user account, contract account, storage) management
  3. EVM: Turing-Complete VM with gas limit
  4. Lifetime of a contract
  5. RLP: recursive prefix length
  6. Uncle blocks
  7. POW and DAG algorithm
  8. Event and Log

Reference

  1. StorageDiscuss
  2. EthereumBlockFormat
  3. StateTree
  4. ExpensiveButCoolStorage
  5. YellowPaper
  6. DecentralizedUpdate
  7. BlockChainSpec
  8. StorageOfData
  9. HistoryStorage
  10. SMTP.experiment.on.ethereum like BitMail

Appendix

  1. leveldb dump on local mined 3 blocks
--- offset 0; sequence 8
  put 'mipmap-log-bloom-\x00\x00\x00\x00\x00\x0fB@' '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
  put 'mipmap-log-bloom-\x00\x00\x00\x00\x00\x07\xa1 ' '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
  put 'mipmap-log-bloom-\x00\x00\x00\x00\x00\x01\x86\xa0' '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
  put 'mipmap-log-bloom-\x00\x00\x00\x00\x00\x00\xc3P' '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
  put 'mipmap-log-bloom-\x00\x00\x00\x00\x00\x00\x03\xe8' '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
--- offset 1444; sequence 13
  put 'setting-mipmap-version' '\x02'
--- offset 1489; sequence 14
  put 'BlockchainVersion' '\x03'
--- offset 1529; sequence 15
  put 'ethereum-config-\xa6e\x91{\x0d\x0eO\x04x\xee\xf7\xc4ialeO\xaeo@X\xf7\xa9\xde\xb5\xf1K\x0a\xbev\xcbB' '{"homesteadBlock":1150000,"daoForkBlock":1920000,"daoForkSupport":true}'




===============Block 0, the Genesis=================================  
--- offset 1670; sequence 16
  put 'LastHeader' '\xa6e\x91{\x0d\x0eO\x04x\xee\xf7\xc4ialeO\xaeo@X\xf7\xa9\xde\xb5\xf1K\x0a\xbev\xcbB'
--- offset 1734; sequence 17
  put 'secure-key-\x8b7V\xdd2*\xca:\xb7~4\xf7'\xe5\xe66t`\xdc\x81\xb5\xe96\xa8M\x05}\xaa"\xc4\x98o' 'W\x8a\xf9d*\x16D"\x1b\xbaM\xc3E/\xb6<\xbdn\xde\xae'
  put '\xd3hkw\xa2\xa1\xf2\xc86w\xdf\x8f\xf9xeN\x13\xbae\x16\xe0\xe0\xc7\xdal\\xee\xcb\xc7`\xca_' '\xf8r\xa1 \x8b7V\xdd2*\xca:\xb7~4\xf7'\xe5\xe66t`\xdc\x81\xb5\xe96\xa8M\x05}\xaa"\xc4\x98o\xb8N\xf8L\x80\x88Ec\x91\x82D\xf4\x00\x00\xa0V\xe8\x1f\x17\x1b\xccU\xa6\xff\x83E\xe6\x92\xc0\xf8n[H\xe0\x1b\x99l\xad\xc0\x01b/\xb5\xe3c\xb4!\xa0\xc5\xd2F\x01\x86\xf7#<\x92~}\xb2\xdc\xc7\x03\xc0\xe5\x00\xb6S\xca\x82';{\xfa\xd8\x04]\x85\xa4p'


===============Block 1================================= 
--- offset 1970; sequence 19
  put 'block-}\xe8\xe7\x14G\xb0+t~\xc1=\xa5g\xd0&)E:*m_\xa0;F\x1b\x0e\xd9h^\xd8\xb9\xe5-td' '\x89\x02\x00\x00\x00\x00\x00\x00\x00 '
--- offset 2043; sequence 20
  put 'block-}\xe8\xe7\x14G\xb0+t~\xc1=\xa5g\xd0&)E:*m_\xa0;F\x1b\x0e\xd9h^\xd8\xb9\xe5-body' '\xc2\xc0\xc0'
--- offset 2111; sequence 21
  put 'block-}\xe8\xe7\x14G\xb0+t~\xc1=\xa5g\xd0&)E:*m_\xa0;F\x1b\x0e\xd9h^\xd8\xb9\xe5-header' '\xf9\x02\x0d\xa0\xa6e\x91{\x0d\x0eO\x04x\xee\xf7\xc4ialeO\xaeo@X\xf7\xa9\xde\xb5\xf1K\x0a\xbev\xcbB\xa0\x1d\xccM\xe8\xde\xc7]z\xab\x85\xb5g\xb6\xcc\xd4\x1a\xd3\x12E\x1b\x94\x8at\x13\xf0\xa1B\xfd@\xd4\x93G\x94W\x8a\xf9d*\x16D"\x1b\xbaM\xc3E/\xb6<\xbdn\xde\xae\xa0\xd3hkw\xa2\xa1\xf2\xc86w\xdf\x8f\xf9xeN\x13\xbae\x16\xe0\xe0\xc7\xdal\\xee\xcb\xc7`\xca_\xa0V\xe8\x1f\x17\x1b\xccU\xa6\xff\x83E\xe6\x92\xc0\xf8n[H\xe0\x1b\x99l\xad\xc0\x01b/\xb5\xe3c\xb4!\xa0V\xe8\x1f\x17\x1b\xccU\xa6\xff\x83E\xe6\x92\xc0\xf8n[H\xe0\x1b\x99l\xad\xc0\x01b/\xb5\xe3c\xb4!\xb9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x84\x13\x83\x1e\x01\x80\x84W\xe2]\xe5\x98\xd7\x83\x01\x04\x0c\x84Geth\x87go1.6.2\x85linux\xa0\xd7\xcb\xba\x8c<9\x94\xfdxX\x9c\xe8B\x99\xf1\xf4@\xd4\x1f\xc6;+.\x02M=\x86C\x00\xb1\xe3\xf7\x88u]C\xb3\xc3\x118@'
--- offset 2707; sequence 22
  put 'block-num-\x01' '}\xe8\xe7\x14G\xb0+t~\xc1=\xa5g\xd0&)E:*m_\xa0;F\x1b\x0e\xd9h^\xd8\xb9\xe5'
--- offset 2772; sequence 23
  put 'LastBlock' '}\xe8\xe7\x14G\xb0+t~\xc1=\xa5g\xd0&)E:*m_\xa0;F\x1b\x0e\xd9h^\xd8\xb9\xe5'
--- offset 2835; sequence 24
  put 'LastHeader' '}\xe8\xe7\x14G\xb0+t~\xc1=\xa5g\xd0&)E:*m_\xa0;F\x1b\x0e\xd9h^\xd8\xb9\xe5'
--- offset 2899; sequence 25
  put 'LastFast' '}\xe8\xe7\x14G\xb0+t~\xc1=\xa5g\xd0&)E:*m_\xa0;F\x1b\x0e\xd9h^\xd8\xb9\xe5'
--- offset 2961; sequence 26
  put 'mipmap-log-bloom-\x00\x00\x00\x00\x00\x0fB@' '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
  put 'mipmap-log-bloom-\x00\x00\x00\x00\x00\x07\xa1 ' '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
  put 'mipmap-log-bloom-\x00\x00\x00\x00\x00\x01\x86\xa0' '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
  put 'mipmap-log-bloom-\x00\x00\x00\x00\x00\x00\xc3P' '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
  put 'mipmap-log-bloom-\x00\x00\x00\x00\x00\x00\x03\xe8' '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
--- offset 4405; sequence 31
  put 'receipts-block-}\xe8\xe7\x14G\xb0+t~\xc1=\xa5g\xd0&)E:*m_\xa0;F\x1b\x0e\xd9h^\xd8\xb9\xe5' '\xc0'
--- offset 4475; sequence 32
  put 'secure-key-\x8b7V\xdd2*\xca:\xb7~4\xf7'\xe5\xe66t`\xdc\x81\xb5\xe96\xa8M\x05}\xaa"\xc4\x98o' 'W\x8a\xf9d*\x16D"\x1b\xbaM\xc3E/\xb6<\xbdn\xde\xae'
  put '\x89\xfc{\xcd\xcf\xda\x9e\x0f\xcf\xc1_\xc0Z\xd6K\xd2f\x1e8\xf9\xb8k\xa3dt?\x84\x97\xf2\x94\xa4|' '\xf8r\xa1 \x8b7V\xdd2*\xca:\xb7~4\xf7'\xe5\xe66t`\xdc\x81\xb5\xe96\xa8M\x05}\xaa"\xc4\x98o\xb8N\xf8L\x80\x88\x8a\xc7#\x04\x89\xe8\x00\x00\xa0V\xe8\x1f\x17\x1b\xccU\xa6\xff\x83E\xe6\x92\xc0\xf8n[H\xe0\x1b\x99l\xad\xc0\x01b/\xb5\xe3c\xb4!\xa0\xc5\xd2F\x01\x86\xf7#<\x92~}\xb2\xdc\xc7\x03\xc0\xe5\x00\xb6S\xca\x82';{\xfa\xd8\x04]\x85\xa4p'






===============Block 2=================================
--- offset 4711; sequence 34
  put 'block-}\xae\xa4\x8d#4\x81\x90Pm\xd1[B\xb4u=\xeb\x86&\x16\xfc0O(=\xe4\x11ErA\xf7\xc0-td' '\x89\x02\x00\x00\x00\x00\x00\x00\x00@'
--- offset 4784; sequence 35
  put 'block-}\xae\xa4\x8d#4\x81\x90Pm\xd1[B\xb4u=\xeb\x86&\x16\xfc0O(=\xe4\x11ErA\xf7\xc0-body' '\xc2\xc0\xc0'
--- offset 4852; sequence 36
  put 'block-}\xae\xa4\x8d#4\x81\x90Pm\xd1[B\xb4u=\xeb\x86&\x16\xfc0O(=\xe4\x11ErA\xf7\xc0-header' '\xf9\x02\x0d\xa0}\xe8\xe7\x14G\xb0+t~\xc1=\xa5g\xd0&)E:*m_\xa0;F\x1b\x0e\xd9h^\xd8\xb9\xe5\xa0\x1d\xccM\xe8\xde\xc7]z\xab\x85\xb5g\xb6\xcc\xd4\x1a\xd3\x12E\x1b\x94\x8at\x13\xf0\xa1B\xfd@\xd4\x93G\x94W\x8a\xf9d*\x16D"\x1b\xbaM\xc3E/\xb6<\xbdn\xde\xae\xa0\x89\xfc{\xcd\xcf\xda\x9e\x0f\xcf\xc1_\xc0Z\xd6K\xd2f\x1e8\xf9\xb8k\xa3dt?\x84\x97\xf2\x94\xa4|\xa0V\xe8\x1f\x17\x1b\xccU\xa6\xff\x83E\xe6\x92\xc0\xf8n[H\xe0\x1b\x99l\xad\xc0\x01b/\xb5\xe3c\xb4!\xa0V\xe8\x1f\x17\x1b\xccU\xa6\xff\x83E\xe6\x92\xc0\xf8n[H\xe0\x1b\x99l\xad\xc0\x01b/\xb5\xe3c\xb4!\xb9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x02\x84\x13~=;\x80\x84W\xe2]\xea\x98\xd7\x83\x01\x04\x0c\x84Geth\x87go1.6.2\x85linux\xa0\x0b\xebW?\xe1?\x80\xf0QB\x92\x8e7\xe6y\x9a\x14\xbf\xdd\xd3\x8d\x89\xd1\xe2x\x02\x18\xd3*\xbd\x1et\x88x)\x82\xb8\x86\xba\x7f\xb1'
--- offset 5448; sequence 37
  put 'block-num-\x02' '}\xae\xa4\x8d#4\x81\x90Pm\xd1[B\xb4u=\xeb\x86&\x16\xfc0O(=\xe4\x11ErA\xf7\xc0'
--- offset 5513; sequence 38
  put 'LastBlock' '}\xae\xa4\x8d#4\x81\x90Pm\xd1[B\xb4u=\xeb\x86&\x16\xfc0O(=\xe4\x11ErA\xf7\xc0'  
--- offset 5576; sequence 39
  put 'LastHeader' '}\xae\xa4\x8d#4\x81\x90Pm\xd1[B\xb4u=\xeb\x86&\x16\xfc0O(=\xe4\x11ErA\xf7\xc0'
--- offset 5640; sequence 40
  put 'LastFast' '}\xae\xa4\x8d#4\x81\x90Pm\xd1[B\xb4u=\xeb\x86&\x16\xfc0O(=\xe4\x11ErA\xf7\xc0'
--- offset 5702; sequence 41
  put 'mipmap-log-bloom-\x00\x00\x00\x00\x00\x0fB@' '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
  put 'mipmap-log-bloom-\x00\x00\x00\x00\x00\x07\xa1 ' '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
  put 'mipmap-log-bloom-\x00\x00\x00\x00\x00\x01\x86\xa0' '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
  put 'mipmap-log-bloom-\x00\x00\x00\x00\x00\x00\xc3P' '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
  put 'mipmap-log-bloom-\x00\x00\x00\x00\x00\x00\x03\xe8' '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
--- offset 7146; sequence 46
  put 'receipts-block-}\xae\xa4\x8d#4\x81\x90Pm\xd1[B\xb4u=\xeb\x86&\x16\xfc0O(=\xe4\x11ErA\xf7\xc0' '\xc0'
--- offset 7216; sequence 47
  put 'secure-key-\x8b7V\xdd2*\xca:\xb7~4\xf7'\xe5\xe66t`\xdc\x81\xb5\xe96\xa8M\x05}\xaa"\xc4\x98o' 'W\x8a\xf9d*\x16D"\x1b\xbaM\xc3E/\xb6<\xbdn\xde\xae'
  put 'w@\x06\xc3b\x08w\xa2\xf3HS>\x95\x80\x06\xbf\xef;\xdb\xbd\xd3\xfb\x8d{=\xfb\xc8]\xe9\xdf\xb6\x1b' '\xf8r\xa1 \x8b7V\xdd2*\xca:\xb7~4\xf7'\xe5\xe66t`\xdc\x81\xb5\xe96\xa8M\x05}\xaa"\xc4\x98o\xb8N\xf8L\x80\x88\xd0*\xb4\x86\xce\xdc\x00\x00\xa0V\xe8\x1f\x17\x1b\xccU\xa6\xff\x83E\xe6\x92\xc0\xf8n[H\xe0\x1b\x99l\xad\xc0\x01b/\xb5\xe3c\xb4!\xa0\xc5\xd2F\x01\x86\xf7#<\x92~}\xb2\xdc\xc7\x03\xc0\xe5\x00\xb6S\xca\x82';{\xfa\xd8\x04]\x85\xa4p'

猜你喜欢

转载自blog.csdn.net/wuzh1230/article/details/52241745