【以太坊】Ethereum: Smart Contract
来源:互联网 发布:图书收银软件 编辑:程序博客网 时间:2024/05/16 12:59
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_EQUALOP_IF <Seller Pubkey>OP_ELSE <block_height+100> OP_CHECKLOCKTIMEVERIFY OP_DROP <Buyer Pubkey>OP_ENDIFOP_CHECKSIG
But for more complex logical control on contract, such as colored bitcoin, and stake IPO, Bitcoin has no these abilities.
Questions
how to pay fee for colored transaction on bitcoin network?
how to automatically color a coin in a chain of transactions?
Evolve
BitCoin: UTXO(N) = f( UTXO(N-1), Tx(N));
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
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
Create a test account (EOA)
$ geth --datadir /tmp/nodes/node1 account newPassphrase:$ geth --datadir /tmp/nodes/node1 account list...
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
Prepare a Genesis Block configure file
{ "nonce": "0x0000000000000042", "timestamp": "0x0", "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "extraData": "0x0", "gasLimit": "0x8000000", "difficulty": "0x400", "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000", "coinbase": "0x3333333333333333333333333333333333333333", "alloc": { "0x2773ffb039ded4bd86c3c96bf136e9f2bf510114" : { "balance" : "20000000000000000000000" } }}
Mining with low difficulty
diff --git a/core/block_validator.go b/core/block_validator.goindex 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 {
Construct a Private network
$ geth --datadir /tmp/node2/node1 init node1.genesis.json
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µstrueI0824 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 confirmationI0824 11:12:41.037020 miner/worker.go:573] commit new work on block 14 with 0 txs & 0 uncles. Took 176.146µsI0824 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:33at BigNumber (web3.js:13461:28)at web3.js:1127:23at web3.js:1656:20at web3.js:840:16at web3.js:839:12at web3.js:4012:18at web3.js:4035:16at web3.js:4145:12
Failed because this reason
Leveldb
to inspect state in `datadir’/.ethereum/chainstate , use leveldbutil
levedbutil dump 000002.log
TODO
- Check it by event log;
- Difference between contract creating and P2SH
- Debug cpp-ethereum or go-ethereum
Tech Details of ethereum
- Merkle-Patricia-Tree
- State (including user account, contract account, storage) management
- EVM: Turing-Complete VM with gas limit
- Lifetime of a contract
- RLP: recursive prefix length
- Uncle blocks
- POW and DAG algorithm
- Event and Log
Reference
- StorageDiscuss
- EthereumBlockFormat
- StateTree
- ExpensiveButCoolStorage
- YellowPaper
- DecentralizedUpdate
- BlockChainSpec
- StorageOfData
- HistoryStorage
- SMTP.experiment.on.ethereum like BitMail
Appendix
- 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'
- 【以太坊】Ethereum: Smart Contract
- 以太坊智能合约ABI(Ethereum Contract ABI)
- 【以太坊】Ethereum Popular Client: go-ethereum
- 『0005』- 以太坊智能合约生命周期(Ethereum smart contracts lifecycle)
- 『0005』- 以太坊智能合约生命周期(Ethereum smart contracts lifecycle)
- 以太坊智能合约安全编程最佳实践smart-contract-best-practices
- 以太坊智能合约安全编程最佳实践smart-contract-best-practices
- 【以太坊】Debugging Ethereum-cpp
- 以太坊ethereum相关网站
- 以太坊go-ethereum常见问题汇总
- 区块链 以太坊 ethereum 实践
- 以太坊go-ethereum常见问题汇总
- 【以太坊】本地搭建Ethereum私有网络
- 【比特币】 From P2SH of bitcoin to Smart Contract of ethereum
- 『0004』- 基于Ethereum Wallet的Solidity HelloWorld智能合约(Smart Contract)
- 开发部署一个智能合约(以太坊-Ethereum)
- 开发智能合约的注意事项(以太坊-Ethereum)
- 以太坊go-ethereum客户端docker安装(一)
- hibernate延迟加载(get和load的区别)
- 树-堆结构练习——合并果子之哈夫曼树
- cloudstack 4.8编译和调试
- poj 3252Round Numbers(组合数学)
- STM32F103使用内部Flash保存参数
- 【以太坊】Ethereum: Smart Contract
- android studio默认修改主题,字体,文字颜色,大小等属性的设置
- Unable to execute dex: Multiple dex files define 解决方法
- butterknife8.2.1使用注意事项
- DevExpress GridControl导出数据
- 网页标签功能插: jQuery tags input 翻译api
- Java NIO系列教程(二) Channel
- Android UI自动化测试--Espresso
- SQL-用JOIN连接多个表