diff --git a/circle.yml b/circle.yml
new file mode 100644
index 0000000000..a04e3c7259
--- /dev/null
+++ b/circle.yml
@@ -0,0 +1,14 @@
+machine:
+ services:
+ - docker
+
+dependencies:
+ override:
+ - go get github.com/karalabe/hive
+
+test:
+ override:
+ - make geth
+ - cp ./build/bin/geth $HOME/geth
+ - (cd ~/.go_workspace/src/github.com/karalabe/hive && hive --docker-noshell --client=go-ethereum:local --override=$HOME/geth --test=.)
+ - cp -r ~/.go_workspace/src/github.com/karalabe/hive/workspace/logs/* $CIRCLE_ARTIFACTS
diff --git a/cmd/ethtest/main.go b/cmd/ethtest/main.go
index e0ad0a7ea4..71465fb55e 100644
--- a/cmd/ethtest/main.go
+++ b/cmd/ethtest/main.go
@@ -74,9 +74,9 @@ func runTestWithReader(test string, r io.Reader) error {
var err error
switch strings.ToLower(test) {
case "bk", "block", "blocktest", "blockchaintest", "blocktests", "blockchaintests":
- err = tests.RunBlockTestWithReader(params.MainNetHomesteadBlock, r, skipTests)
+ err = tests.RunBlockTestWithReader(params.MainNetHomesteadBlock, params.MainNetDAOForkBlock, r, skipTests)
case "st", "state", "statetest", "statetests":
- rs := tests.RuleSet{HomesteadBlock: params.MainNetHomesteadBlock}
+ rs := tests.RuleSet{HomesteadBlock: params.MainNetHomesteadBlock, DAOForkBlock: params.MainNetDAOForkBlock, DAOForkSupport: true}
err = tests.RunStateTestWithReader(rs, r, skipTests)
case "tx", "transactiontest", "transactiontests":
err = tests.RunTransactionTestsWithReader(r, skipTests)
diff --git a/cmd/geth/dao_test.go b/cmd/geth/dao_test.go
new file mode 100644
index 0000000000..7058fb385c
--- /dev/null
+++ b/cmd/geth/dao_test.go
@@ -0,0 +1,232 @@
+// Copyright 2016 The go-ethereum Authors
+// This file is part of go-ethereum.
+//
+// go-ethereum is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// go-ethereum is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with go-ethereum. If not, see .
+
+package main
+
+import (
+ "io/ioutil"
+ "math/big"
+ "os"
+ "path/filepath"
+ "testing"
+
+ "github.com/ethereum/go-ethereum/common"
+ "github.com/ethereum/go-ethereum/core"
+ "github.com/ethereum/go-ethereum/ethdb"
+ "github.com/ethereum/go-ethereum/params"
+)
+
+// Genesis block for nodes which don't care about the DAO fork (i.e. not configured)
+var daoOldGenesis = `{
+ "alloc" : {},
+ "coinbase" : "0x0000000000000000000000000000000000000000",
+ "difficulty" : "0x20000",
+ "extraData" : "",
+ "gasLimit" : "0x2fefd8",
+ "nonce" : "0x0000000000000042",
+ "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "timestamp" : "0x00",
+ "config" : {}
+}`
+
+// Genesis block for nodes which actively oppose the DAO fork
+var daoNoForkGenesis = `{
+ "alloc" : {},
+ "coinbase" : "0x0000000000000000000000000000000000000000",
+ "difficulty" : "0x20000",
+ "extraData" : "",
+ "gasLimit" : "0x2fefd8",
+ "nonce" : "0x0000000000000042",
+ "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "timestamp" : "0x00",
+ "config" : {
+ "daoForkBlock" : 314,
+ "daoForkSupport" : false
+ }
+}`
+
+// Genesis block for nodes which actively support the DAO fork
+var daoProForkGenesis = `{
+ "alloc" : {},
+ "coinbase" : "0x0000000000000000000000000000000000000000",
+ "difficulty" : "0x20000",
+ "extraData" : "",
+ "gasLimit" : "0x2fefd8",
+ "nonce" : "0x0000000000000042",
+ "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "timestamp" : "0x00",
+ "config" : {
+ "daoForkBlock" : 314,
+ "daoForkSupport" : true
+ }
+}`
+
+var daoGenesisHash = common.HexToHash("5e1fc79cb4ffa4739177b5408045cd5d51c6cf766133f23f7cd72ee1f8d790e0")
+var daoGenesisForkBlock = big.NewInt(314)
+
+// Tests that the DAO hard-fork number and the nodes support/opposition is correctly
+// set in the database after various initialization procedures and invocations.
+func TestDAODefaultMainnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, "", [][2]bool{{false, false}}, params.MainNetDAOForkBlock, true)
+}
+func TestDAOSupportMainnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, "", [][2]bool{{true, false}}, params.MainNetDAOForkBlock, true)
+}
+func TestDAOOpposeMainnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, "", [][2]bool{{false, true}}, params.MainNetDAOForkBlock, false)
+}
+func TestDAOSwitchToSupportMainnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, "", [][2]bool{{false, true}, {true, false}}, params.MainNetDAOForkBlock, true)
+}
+func TestDAOSwitchToOpposeMainnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, "", [][2]bool{{true, false}, {false, true}}, params.MainNetDAOForkBlock, false)
+}
+func TestDAODefaultTestnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, true, "", [][2]bool{{false, false}}, params.TestNetDAOForkBlock, true)
+}
+func TestDAOSupportTestnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, true, "", [][2]bool{{true, false}}, params.TestNetDAOForkBlock, true)
+}
+func TestDAOOpposeTestnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, true, "", [][2]bool{{false, true}}, params.TestNetDAOForkBlock, false)
+}
+func TestDAOSwitchToSupportTestnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, true, "", [][2]bool{{false, true}, {true, false}}, params.TestNetDAOForkBlock, true)
+}
+func TestDAOSwitchToOpposeTestnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, true, "", [][2]bool{{true, false}, {false, true}}, params.TestNetDAOForkBlock, false)
+}
+func TestDAOInitOldPrivnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, daoOldGenesis, [][2]bool{}, nil, false)
+}
+func TestDAODefaultOldPrivnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, daoOldGenesis, [][2]bool{{false, false}}, params.MainNetDAOForkBlock, true)
+}
+func TestDAOSupportOldPrivnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, daoOldGenesis, [][2]bool{{true, false}}, params.MainNetDAOForkBlock, true)
+}
+func TestDAOOpposeOldPrivnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, daoOldGenesis, [][2]bool{{false, true}}, params.MainNetDAOForkBlock, false)
+}
+func TestDAOSwitchToSupportOldPrivnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, daoOldGenesis, [][2]bool{{false, true}, {true, false}}, params.MainNetDAOForkBlock, true)
+}
+func TestDAOSwitchToOpposeOldPrivnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, daoOldGenesis, [][2]bool{{true, false}, {false, true}}, params.MainNetDAOForkBlock, false)
+}
+func TestDAOInitNoForkPrivnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, daoNoForkGenesis, [][2]bool{}, daoGenesisForkBlock, false)
+}
+func TestDAODefaultNoForkPrivnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, daoNoForkGenesis, [][2]bool{{false, false}}, daoGenesisForkBlock, false)
+}
+func TestDAOSupportNoForkPrivnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, daoNoForkGenesis, [][2]bool{{true, false}}, daoGenesisForkBlock, true)
+}
+func TestDAOOpposeNoForkPrivnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, daoNoForkGenesis, [][2]bool{{false, true}}, daoGenesisForkBlock, false)
+}
+func TestDAOSwitchToSupportNoForkPrivnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, daoNoForkGenesis, [][2]bool{{false, true}, {true, false}}, daoGenesisForkBlock, true)
+}
+func TestDAOSwitchToOpposeNoForkPrivnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, daoNoForkGenesis, [][2]bool{{true, false}, {false, true}}, daoGenesisForkBlock, false)
+}
+func TestDAOInitProForkPrivnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, daoProForkGenesis, [][2]bool{}, daoGenesisForkBlock, true)
+}
+func TestDAODefaultProForkPrivnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, daoProForkGenesis, [][2]bool{{false, false}}, daoGenesisForkBlock, true)
+}
+func TestDAOSupportProForkPrivnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, daoProForkGenesis, [][2]bool{{true, false}}, daoGenesisForkBlock, true)
+}
+func TestDAOOpposeProForkPrivnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, daoProForkGenesis, [][2]bool{{false, true}}, daoGenesisForkBlock, false)
+}
+func TestDAOSwitchToSupportProForkPrivnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, daoProForkGenesis, [][2]bool{{false, true}, {true, false}}, daoGenesisForkBlock, true)
+}
+func TestDAOSwitchToOpposeProForkPrivnet(t *testing.T) {
+ testDAOForkBlockNewChain(t, false, daoProForkGenesis, [][2]bool{{true, false}, {false, true}}, daoGenesisForkBlock, false)
+}
+
+func testDAOForkBlockNewChain(t *testing.T, testnet bool, genesis string, votes [][2]bool, expectBlock *big.Int, expectVote bool) {
+ // Create a temporary data directory to use and inspect later
+ datadir := tmpdir(t)
+ defer os.RemoveAll(datadir)
+
+ // Start a Geth instance with the requested flags set and immediately terminate
+ if genesis != "" {
+ json := filepath.Join(datadir, "genesis.json")
+ if err := ioutil.WriteFile(json, []byte(genesis), 0600); err != nil {
+ t.Fatalf("failed to write genesis file: %v", err)
+ }
+ runGeth(t, "--datadir", datadir, "init", json).cmd.Wait()
+ }
+ for _, vote := range votes {
+ args := []string{"--port", "0", "--maxpeers", "0", "--nodiscover", "--nat", "none", "--ipcdisable", "--datadir", datadir}
+ if testnet {
+ args = append(args, "--testnet")
+ }
+ if vote[0] {
+ args = append(args, "--support-dao-fork")
+ }
+ if vote[1] {
+ args = append(args, "--oppose-dao-fork")
+ }
+ geth := runGeth(t, append(args, []string{"--exec", "2+2", "console"}...)...)
+ geth.cmd.Wait()
+ }
+ // Retrieve the DAO config flag from the database
+ path := filepath.Join(datadir, "chaindata")
+ if testnet && genesis == "" {
+ path = filepath.Join(datadir, "testnet", "chaindata")
+ }
+ db, err := ethdb.NewLDBDatabase(path, 0, 0)
+ if err != nil {
+ t.Fatalf("failed to open test database: %v", err)
+ }
+ defer db.Close()
+
+ genesisHash := common.HexToHash("0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3")
+ if testnet {
+ genesisHash = common.HexToHash("0x0cd786a2425d16f152c658316c423e6ce1181e15c3295826d7c9904cba9ce303")
+ }
+ if genesis != "" {
+ genesisHash = daoGenesisHash
+ }
+ config, err := core.GetChainConfig(db, genesisHash)
+ if err != nil {
+ t.Fatalf("failed to retrieve chain config: %v", err)
+ }
+ // Validate the DAO hard-fork block number against the expected value
+ if config.DAOForkBlock == nil {
+ if expectBlock != nil {
+ t.Errorf("dao hard-fork block mismatch: have nil, want %v", expectBlock)
+ }
+ } else if expectBlock == nil {
+ t.Errorf("dao hard-fork block mismatch: have %v, want nil", config.DAOForkBlock)
+ } else if config.DAOForkBlock.Cmp(expectBlock) != 0 {
+ t.Errorf("dao hard-fork block mismatch: have %v, want %v", config.DAOForkBlock, expectBlock)
+ }
+ if config.DAOForkSupport != expectVote {
+ t.Errorf("dao hard-fork support mismatch: have %v, want %v", config.DAOForkSupport, expectVote)
+ }
+}
diff --git a/cmd/geth/genesis_test.go b/cmd/geth/genesis_test.go
new file mode 100644
index 0000000000..4f8b1642ef
--- /dev/null
+++ b/cmd/geth/genesis_test.go
@@ -0,0 +1,107 @@
+// Copyright 2016 The go-ethereum Authors
+// This file is part of go-ethereum.
+//
+// go-ethereum is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// go-ethereum is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with go-ethereum. If not, see .
+
+package main
+
+import (
+ "io/ioutil"
+ "os"
+ "path/filepath"
+ "testing"
+)
+
+var customGenesisTests = []struct {
+ genesis string
+ query string
+ result string
+}{
+ // Plain genesis file without anything extra
+ {
+ genesis: `{
+ "alloc" : {},
+ "coinbase" : "0x0000000000000000000000000000000000000000",
+ "difficulty" : "0x20000",
+ "extraData" : "",
+ "gasLimit" : "0x2fefd8",
+ "nonce" : "0x0000000000000042",
+ "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "timestamp" : "0x00"
+ }`,
+ query: "eth.getBlock(0).nonce",
+ result: "0x0000000000000042",
+ },
+ // Genesis file with an empty chain configuration (ensure missing fields work)
+ {
+ genesis: `{
+ "alloc" : {},
+ "coinbase" : "0x0000000000000000000000000000000000000000",
+ "difficulty" : "0x20000",
+ "extraData" : "",
+ "gasLimit" : "0x2fefd8",
+ "nonce" : "0x0000000000000042",
+ "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "timestamp" : "0x00",
+ "config" : {}
+ }`,
+ query: "eth.getBlock(0).nonce",
+ result: "0x0000000000000042",
+ },
+ // Genesis file with specific chain configurations
+ {
+ genesis: `{
+ "alloc" : {},
+ "coinbase" : "0x0000000000000000000000000000000000000000",
+ "difficulty" : "0x20000",
+ "extraData" : "",
+ "gasLimit" : "0x2fefd8",
+ "nonce" : "0x0000000000000042",
+ "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "timestamp" : "0x00",
+ "config" : {
+ "homesteadBlock" : 314,
+ "daoForkBlock" : 141,
+ "daoForkSupport" : true
+ },
+ }`,
+ query: "eth.getBlock(0).nonce",
+ result: "0x0000000000000042",
+ },
+}
+
+// Tests that initializing Geth with a custom genesis block and chain definitions
+// work properly.
+func TestCustomGenesis(t *testing.T) {
+ for i, tt := range customGenesisTests {
+ // Create a temporary data directory to use and inspect later
+ datadir := tmpdir(t)
+ defer os.RemoveAll(datadir)
+
+ // Initialize the data directory with the custom genesis block
+ json := filepath.Join(datadir, "genesis.json")
+ if err := ioutil.WriteFile(json, []byte(tt.genesis), 0600); err != nil {
+ t.Fatalf("test %d: failed to write genesis file: %v", i, err)
+ }
+ runGeth(t, "--datadir", datadir, "init", json).cmd.Wait()
+
+ // Query the custom genesis block
+ geth := runGeth(t, "--datadir", datadir, "--maxpeers", "0", "--nodiscover", "--nat", "none", "--ipcdisable", "--exec", tt.query, "console")
+ geth.expectRegexp(tt.result)
+ geth.expectExit()
+ }
+}
diff --git a/cmd/geth/main.go b/cmd/geth/main.go
index cb43f8769d..5f1157b90b 100644
--- a/cmd/geth/main.go
+++ b/cmd/geth/main.go
@@ -150,7 +150,6 @@ participating.
utils.IdentityFlag,
utils.UnlockedAccountFlag,
utils.PasswordFileFlag,
- utils.GenesisFileFlag,
utils.BootnodesFlag,
utils.DataDirFlag,
utils.KeyStoreDirFlag,
@@ -165,6 +164,8 @@ participating.
utils.MaxPendingPeersFlag,
utils.EtherbaseFlag,
utils.GasPriceFlag,
+ utils.SupportDAOFork,
+ utils.OpposeDAOFork,
utils.MinerThreadsFlag,
utils.MiningEnabledFlag,
utils.MiningGPUFlag,
@@ -225,12 +226,6 @@ participating.
eth.EnableBadBlockReporting = true
utils.SetupNetwork(ctx)
-
- // Deprecation warning.
- if ctx.GlobalIsSet(utils.GenesisFileFlag.Name) {
- common.PrintDepricationWarning("--genesis is deprecated. Switch to use 'geth init /path/to/file'")
- }
-
return nil
}
diff --git a/cmd/geth/usage.go b/cmd/geth/usage.go
index e7ef9e2c7b..eb897d2b5a 100644
--- a/cmd/geth/usage.go
+++ b/cmd/geth/usage.go
@@ -68,7 +68,6 @@ var AppHelpFlagGroups = []flagGroup{
utils.OlympicFlag,
utils.TestNetFlag,
utils.DevModeFlag,
- utils.GenesisFileFlag,
utils.IdentityFlag,
utils.FastSyncFlag,
utils.LightKDFFlag,
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index 38ba3a9ba0..7b5915a05d 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -126,10 +126,6 @@ var (
Name: "dev",
Usage: "Developer mode: pre-configured private network with several debugging flags",
}
- GenesisFileFlag = cli.StringFlag{
- Name: "genesis",
- Usage: "Insert/overwrite the genesis block (JSON format)",
- }
IdentityFlag = cli.StringFlag{
Name: "identity",
Usage: "Custom node name",
@@ -161,6 +157,15 @@ var (
Name: "lightkdf",
Usage: "Reduce key-derivation RAM & CPU usage at some expense of KDF strength",
}
+ // Fork settings
+ SupportDAOFork = cli.BoolFlag{
+ Name: "support-dao-fork",
+ Usage: "Updates the chain rules to support the DAO hard-fork",
+ }
+ OpposeDAOFork = cli.BoolFlag{
+ Name: "oppose-dao-fork",
+ Usage: "Updates the chain rules to oppose the DAO hard-fork",
+ }
// Miner settings
// TODO: refactor CPU vs GPU mining flags
MiningEnabledFlag = cli.BoolFlag{
@@ -534,20 +539,6 @@ func MakeWSRpcHost(ctx *cli.Context) string {
return ctx.GlobalString(WSListenAddrFlag.Name)
}
-// MakeGenesisBlock loads up a genesis block from an input file specified in the
-// command line, or returns the empty string if none set.
-func MakeGenesisBlock(ctx *cli.Context) string {
- genesis := ctx.GlobalString(GenesisFileFlag.Name)
- if genesis == "" {
- return ""
- }
- data, err := ioutil.ReadFile(genesis)
- if err != nil {
- Fatalf("Failed to load custom genesis file: %v", err)
- }
- return string(data)
-}
-
// MakeDatabaseHandles raises out the number of allowed file handles per process
// for Geth and returns half of the allowance to assign to the database.
func MakeDatabaseHandles() int {
@@ -689,7 +680,6 @@ func MakeSystemNode(name, version string, relconf release.Config, extra []byte,
ethConf := ð.Config{
ChainConfig: MustMakeChainConfig(ctx),
- Genesis: MakeGenesisBlock(ctx),
FastSync: ctx.GlobalBool(FastSyncFlag.Name),
BlockChainVersion: ctx.GlobalInt(BlockchainVersionFlag.Name),
DatabaseCache: ctx.GlobalInt(CacheFlag.Name),
@@ -722,17 +712,13 @@ func MakeSystemNode(name, version string, relconf release.Config, extra []byte,
if !ctx.GlobalIsSet(NetworkIdFlag.Name) {
ethConf.NetworkId = 1
}
- if !ctx.GlobalIsSet(GenesisFileFlag.Name) {
- ethConf.Genesis = core.OlympicGenesisBlock()
- }
+ ethConf.Genesis = core.OlympicGenesisBlock()
case ctx.GlobalBool(TestNetFlag.Name):
if !ctx.GlobalIsSet(NetworkIdFlag.Name) {
ethConf.NetworkId = 2
}
- if !ctx.GlobalIsSet(GenesisFileFlag.Name) {
- ethConf.Genesis = core.TestNetGenesisBlock()
- }
+ ethConf.Genesis = core.TestNetGenesisBlock()
state.StartingNonce = 1048576 // (2**20)
case ctx.GlobalBool(DevModeFlag.Name):
@@ -747,9 +733,7 @@ func MakeSystemNode(name, version string, relconf release.Config, extra []byte,
stackConf.ListenAddr = ":0"
}
// Override the Ethereum protocol configs
- if !ctx.GlobalIsSet(GenesisFileFlag.Name) {
- ethConf.Genesis = core.OlympicGenesisBlock()
- }
+ ethConf.Genesis = core.OlympicGenesisBlock()
if !ctx.GlobalIsSet(GasPriceFlag.Name) {
ethConf.GasPrice = new(big.Int)
}
@@ -813,24 +797,44 @@ func MustMakeChainConfig(ctx *cli.Context) *core.ChainConfig {
// MustMakeChainConfigFromDb reads the chain configuration from the given database.
func MustMakeChainConfigFromDb(ctx *cli.Context, db ethdb.Database) *core.ChainConfig {
- genesis := core.GetBlock(db, core.GetCanonicalHash(db, 0), 0)
+ // If the chain is already initialized, use any existing chain configs
+ config := new(core.ChainConfig)
- if genesis != nil {
- // Existing genesis block, use stored config if available.
+ if genesis := core.GetBlock(db, core.GetCanonicalHash(db, 0), 0); genesis != nil {
storedConfig, err := core.GetChainConfig(db, genesis.Hash())
- if err == nil {
- return storedConfig
- } else if err != core.ChainConfigNotFoundErr {
+ switch err {
+ case nil:
+ config = storedConfig
+ case core.ChainConfigNotFoundErr:
+ // No configs found, use empty, will populate below
+ default:
Fatalf("Could not make chain configuration: %v", err)
}
}
- var homesteadBlockNo *big.Int
- if ctx.GlobalBool(TestNetFlag.Name) {
- homesteadBlockNo = params.TestNetHomesteadBlock
- } else {
- homesteadBlockNo = params.MainNetHomesteadBlock
+ // Set any missing fields due to them being unset or system upgrade
+ if config.HomesteadBlock == nil {
+ if ctx.GlobalBool(TestNetFlag.Name) {
+ config.HomesteadBlock = params.TestNetHomesteadBlock
+ } else {
+ config.HomesteadBlock = params.MainNetHomesteadBlock
+ }
}
- return &core.ChainConfig{HomesteadBlock: homesteadBlockNo}
+ if config.DAOForkBlock == nil {
+ if ctx.GlobalBool(TestNetFlag.Name) {
+ config.DAOForkBlock = params.TestNetDAOForkBlock
+ } else {
+ config.DAOForkBlock = params.MainNetDAOForkBlock
+ }
+ config.DAOForkSupport = true
+ }
+ // Force override any existing configs if explicitly requested
+ switch {
+ case ctx.GlobalBool(SupportDAOFork.Name):
+ config.DAOForkSupport = true
+ case ctx.GlobalBool(OpposeDAOFork.Name):
+ config.DAOForkSupport = false
+ }
+ return config
}
// MakeChainDatabase open an LevelDB using the flags passed to the client and will hard crash if it fails.
diff --git a/core/block_validator.go b/core/block_validator.go
index c3f959324a..e5bc6178b9 100644
--- a/core/block_validator.go
+++ b/core/block_validator.go
@@ -247,7 +247,8 @@ func ValidateHeader(config *ChainConfig, pow pow.PoW, header *types.Header, pare
return &BlockNonceErr{header.Number, header.Hash(), header.Nonce.Uint64()}
}
}
- return nil
+ // If all checks passed, validate the extra-data field for hard forks
+ return ValidateDAOHeaderExtraData(config, header)
}
// CalcDifficulty is the difficulty adjustment algorithm. It returns
diff --git a/core/block_validator_test.go b/core/block_validator_test.go
index c6daf9e7f3..5320c3f8da 100644
--- a/core/block_validator_test.go
+++ b/core/block_validator_test.go
@@ -27,6 +27,7 @@ import (
"github.com/ethereum/go-ethereum/core/vm"
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/event"
+ "github.com/ethereum/go-ethereum/params"
"github.com/ethereum/go-ethereum/pow/ezp"
)
@@ -92,3 +93,107 @@ func TestPutReceipt(t *testing.T) {
t.Error("expected to get 1 receipt, got none.")
}
}
+
+// Tests that DAO-fork enabled clients can properly filter out fork-commencing
+// blocks based on their extradata fields.
+func TestDAOForkRangeExtradata(t *testing.T) {
+ forkBlock := big.NewInt(32)
+
+ // Generate a common prefix for both pro-forkers and non-forkers
+ db, _ := ethdb.NewMemDatabase()
+ genesis := WriteGenesisBlockForTesting(db)
+ prefix, _ := GenerateChain(genesis, db, int(forkBlock.Int64()-1), func(i int, gen *BlockGen) {})
+
+ // Create the concurrent, conflicting two nodes
+ proDb, _ := ethdb.NewMemDatabase()
+ WriteGenesisBlockForTesting(proDb)
+ proBc, _ := NewBlockChain(proDb, &ChainConfig{HomesteadBlock: big.NewInt(0), DAOForkBlock: forkBlock, DAOForkSupport: true}, new(FakePow), new(event.TypeMux))
+
+ conDb, _ := ethdb.NewMemDatabase()
+ WriteGenesisBlockForTesting(conDb)
+ conBc, _ := NewBlockChain(conDb, &ChainConfig{HomesteadBlock: big.NewInt(0), DAOForkBlock: forkBlock, DAOForkSupport: false}, new(FakePow), new(event.TypeMux))
+
+ if _, err := proBc.InsertChain(prefix); err != nil {
+ t.Fatalf("pro-fork: failed to import chain prefix: %v", err)
+ }
+ if _, err := conBc.InsertChain(prefix); err != nil {
+ t.Fatalf("con-fork: failed to import chain prefix: %v", err)
+ }
+ // Try to expand both pro-fork and non-fork chains iteratively with other camp's blocks
+ for i := int64(0); i < params.DAOForkExtraRange.Int64(); i++ {
+ // Create a pro-fork block, and try to feed into the no-fork chain
+ db, _ = ethdb.NewMemDatabase()
+ WriteGenesisBlockForTesting(db)
+ bc, _ := NewBlockChain(db, &ChainConfig{HomesteadBlock: big.NewInt(0)}, new(FakePow), new(event.TypeMux))
+
+ blocks := conBc.GetBlocksFromHash(conBc.CurrentBlock().Hash(), int(conBc.CurrentBlock().NumberU64()+1))
+ for j := 0; j < len(blocks)/2; j++ {
+ blocks[j], blocks[len(blocks)-1-j] = blocks[len(blocks)-1-j], blocks[j]
+ }
+ if _, err := bc.InsertChain(blocks); err != nil {
+ t.Fatalf("failed to import contra-fork chain for expansion: %v", err)
+ }
+ blocks, _ = GenerateChain(conBc.CurrentBlock(), db, 1, func(i int, gen *BlockGen) { gen.SetExtra(params.DAOForkBlockExtra) })
+ if _, err := conBc.InsertChain(blocks); err == nil {
+ t.Fatalf("contra-fork chain accepted pro-fork block: %v", blocks[0])
+ }
+ // Create a proper no-fork block for the contra-forker
+ blocks, _ = GenerateChain(conBc.CurrentBlock(), db, 1, func(i int, gen *BlockGen) {})
+ if _, err := conBc.InsertChain(blocks); err != nil {
+ t.Fatalf("contra-fork chain didn't accepted no-fork block: %v", err)
+ }
+ // Create a no-fork block, and try to feed into the pro-fork chain
+ db, _ = ethdb.NewMemDatabase()
+ WriteGenesisBlockForTesting(db)
+ bc, _ = NewBlockChain(db, &ChainConfig{HomesteadBlock: big.NewInt(0)}, new(FakePow), new(event.TypeMux))
+
+ blocks = proBc.GetBlocksFromHash(proBc.CurrentBlock().Hash(), int(proBc.CurrentBlock().NumberU64()+1))
+ for j := 0; j < len(blocks)/2; j++ {
+ blocks[j], blocks[len(blocks)-1-j] = blocks[len(blocks)-1-j], blocks[j]
+ }
+ if _, err := bc.InsertChain(blocks); err != nil {
+ t.Fatalf("failed to import pro-fork chain for expansion: %v", err)
+ }
+ blocks, _ = GenerateChain(proBc.CurrentBlock(), db, 1, func(i int, gen *BlockGen) {})
+ if _, err := proBc.InsertChain(blocks); err == nil {
+ t.Fatalf("pro-fork chain accepted contra-fork block: %v", blocks[0])
+ }
+ // Create a proper pro-fork block for the pro-forker
+ blocks, _ = GenerateChain(proBc.CurrentBlock(), db, 1, func(i int, gen *BlockGen) { gen.SetExtra(params.DAOForkBlockExtra) })
+ if _, err := proBc.InsertChain(blocks); err != nil {
+ t.Fatalf("pro-fork chain didn't accepted pro-fork block: %v", err)
+ }
+ }
+ // Verify that contra-forkers accept pro-fork extra-datas after forking finishes
+ db, _ = ethdb.NewMemDatabase()
+ WriteGenesisBlockForTesting(db)
+ bc, _ := NewBlockChain(db, &ChainConfig{HomesteadBlock: big.NewInt(0)}, new(FakePow), new(event.TypeMux))
+
+ blocks := conBc.GetBlocksFromHash(conBc.CurrentBlock().Hash(), int(conBc.CurrentBlock().NumberU64()+1))
+ for j := 0; j < len(blocks)/2; j++ {
+ blocks[j], blocks[len(blocks)-1-j] = blocks[len(blocks)-1-j], blocks[j]
+ }
+ if _, err := bc.InsertChain(blocks); err != nil {
+ t.Fatalf("failed to import contra-fork chain for expansion: %v", err)
+ }
+ blocks, _ = GenerateChain(conBc.CurrentBlock(), db, 1, func(i int, gen *BlockGen) { gen.SetExtra(params.DAOForkBlockExtra) })
+ if _, err := conBc.InsertChain(blocks); err != nil {
+ t.Fatalf("contra-fork chain didn't accept pro-fork block post-fork: %v", err)
+ }
+ // Verify that pro-forkers accept contra-fork extra-datas after forking finishes
+ db, _ = ethdb.NewMemDatabase()
+ WriteGenesisBlockForTesting(db)
+ bc, _ = NewBlockChain(db, &ChainConfig{HomesteadBlock: big.NewInt(0)}, new(FakePow), new(event.TypeMux))
+
+ blocks = proBc.GetBlocksFromHash(proBc.CurrentBlock().Hash(), int(proBc.CurrentBlock().NumberU64()+1))
+ for j := 0; j < len(blocks)/2; j++ {
+ blocks[j], blocks[len(blocks)-1-j] = blocks[len(blocks)-1-j], blocks[j]
+ }
+ if _, err := bc.InsertChain(blocks); err != nil {
+ t.Fatalf("failed to import pro-fork chain for expansion: %v", err)
+ }
+ blocks, _ = GenerateChain(proBc.CurrentBlock(), db, 1, func(i int, gen *BlockGen) {})
+ if _, err := proBc.InsertChain(blocks); err != nil {
+ t.Fatalf("pro-fork chain didn't accept contra-fork block post-fork: %v", err)
+ }
+}
diff --git a/core/config.go b/core/config.go
index 81ca76aa31..c0d065a57f 100644
--- a/core/config.go
+++ b/core/config.go
@@ -31,16 +31,17 @@ var ChainConfigNotFoundErr = errors.New("ChainConfig not found") // general conf
// that any network, identified by its genesis block, can have its own
// set of configuration options.
type ChainConfig struct {
- HomesteadBlock *big.Int // homestead switch block
+ HomesteadBlock *big.Int `json:"homesteadBlock"` // Homestead switch block (nil = no fork, 0 = already homestead)
+ DAOForkBlock *big.Int `json:"daoForkBlock"` // TheDAO hard-fork switch block (nil = no fork)
+ DAOForkSupport bool `json:"daoForkSupport"` // Whether the nodes supports or opposes the DAO hard-fork
VmConfig vm.Config `json:"-"`
}
// IsHomestead returns whether num is either equal to the homestead block or greater.
func (c *ChainConfig) IsHomestead(num *big.Int) bool {
- if num == nil {
+ if c.HomesteadBlock == nil || num == nil {
return false
}
-
return num.Cmp(c.HomesteadBlock) >= 0
}
diff --git a/core/dao.go b/core/dao.go
new file mode 100644
index 0000000000..e315c9884b
--- /dev/null
+++ b/core/dao.go
@@ -0,0 +1,74 @@
+// Copyright 2016 The go-ethereum Authors
+// This file is part of the go-ethereum library.
+//
+// The go-ethereum library is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// The go-ethereum library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with the go-ethereum library. If not, see .
+
+package core
+
+import (
+ "bytes"
+ "math/big"
+
+ "github.com/ethereum/go-ethereum/core/state"
+ "github.com/ethereum/go-ethereum/core/types"
+ "github.com/ethereum/go-ethereum/params"
+)
+
+// ValidateDAOHeaderExtraData validates the extra-data field of a block header to
+// ensure it conforms to DAO hard-fork rules.
+//
+// DAO hard-fork extension to the header validity:
+// a) if the node is no-fork, do not accept blocks in the [fork, fork+10) range
+// with the fork specific extra-data set
+// b) if the node is pro-fork, require blocks in the specific range to have the
+// unique extra-data set.
+func ValidateDAOHeaderExtraData(config *ChainConfig, header *types.Header) error {
+ // Short circuit validation if the node doesn't care about the DAO fork
+ if config.DAOForkBlock == nil {
+ return nil
+ }
+ // Make sure the block is within the fork's modified extra-data range
+ limit := new(big.Int).Add(config.DAOForkBlock, params.DAOForkExtraRange)
+ if header.Number.Cmp(config.DAOForkBlock) < 0 || header.Number.Cmp(limit) >= 0 {
+ return nil
+ }
+ // Depending whether we support or oppose the fork, validate the extra-data contents
+ if config.DAOForkSupport {
+ if bytes.Compare(header.Extra, params.DAOForkBlockExtra) != 0 {
+ return ValidationError("DAO pro-fork bad block extra-data: 0x%x", header.Extra)
+ }
+ } else {
+ if bytes.Compare(header.Extra, params.DAOForkBlockExtra) == 0 {
+ return ValidationError("DAO no-fork bad block extra-data: 0x%x", header.Extra)
+ }
+ }
+ // All ok, header has the same extra-data we expect
+ return nil
+}
+
+// ApplyDAOHardFork modifies the state database according to the DAO hard-fork
+// rules, transferring all balances of a set of DAO accounts to a single refund
+// contract.
+func ApplyDAOHardFork(statedb *state.StateDB) {
+ // Retrieve the contract to refund balances into
+ refund := statedb.GetOrNewStateObject(params.DAORefundContract)
+
+ // Move every DAO account and extra-balance account funds into the refund contract
+ for _, addr := range params.DAODrainList {
+ if account := statedb.GetStateObject(addr); account != nil {
+ refund.AddBalance(account.Balance())
+ account.SetBalance(new(big.Int))
+ }
+ }
+}
diff --git a/core/state_processor.go b/core/state_processor.go
index 95b3057bbc..6797d87b4f 100644
--- a/core/state_processor.go
+++ b/core/state_processor.go
@@ -65,7 +65,11 @@ func (p *StateProcessor) Process(block *types.Block, statedb *state.StateDB, cfg
allLogs vm.Logs
gp = new(GasPool).AddGas(block.GasLimit())
)
-
+ // Mutate the statedb according to any hard-fork specs
+ if p.config.DAOForkSupport && p.config.DAOForkBlock != nil && p.config.DAOForkBlock.Cmp(block.Number()) == 0 {
+ ApplyDAOHardFork(statedb)
+ }
+ // Iterate over and process the individual transactions
for i, tx := range block.Transactions() {
statedb.StartRecord(tx.Hash(), block.Hash(), i)
receipt, logs, _, err := ApplyTransaction(p.config, p.bc, gp, statedb, header, tx, totalUsedGas, cfg)
diff --git a/eth/backend.go b/eth/backend.go
index 351cc27445..c8a9af6eee 100644
--- a/eth/backend.go
+++ b/eth/backend.go
@@ -205,6 +205,8 @@ func New(ctx *node.ServiceContext, config *Config) (*Ethereum, error) {
if config.ChainConfig == nil {
return nil, errors.New("missing chain config")
}
+ core.WriteChainConfig(chainDb, genesis.Hash(), config.ChainConfig)
+
eth.chainConfig = config.ChainConfig
eth.chainConfig.VmConfig = vm.Config{
EnableJit: config.EnableJit,
diff --git a/eth/handler.go b/eth/handler.go
index 47a36cc0bf..01550e6c28 100644
--- a/eth/handler.go
+++ b/eth/handler.go
@@ -45,6 +45,10 @@ const (
estHeaderRlpSize = 500 // Approximate size of an RLP encoded block header
)
+var (
+ daoChallengeTimeout = 15 * time.Second // Time allowance for a node to reply to the DAO handshake challenge
+)
+
// errIncompatibleConfig is returned if the requested protocols and configs are
// not compatible (low protocol version restrictions and high requirements).
var errIncompatibleConfig = errors.New("incompatible configuration")
@@ -62,9 +66,10 @@ type ProtocolManager struct {
fastSync uint32 // Flag whether fast sync is enabled (gets disabled if we already have blocks)
synced uint32 // Flag whether we're considered synchronised (enables transaction processing)
- txpool txPool
- blockchain *core.BlockChain
- chaindb ethdb.Database
+ txpool txPool
+ blockchain *core.BlockChain
+ chaindb ethdb.Database
+ chainconfig *core.ChainConfig
downloader *downloader.Downloader
fetcher *fetcher.Fetcher
@@ -99,6 +104,7 @@ func NewProtocolManager(config *core.ChainConfig, fastSync bool, networkId int,
txpool: txpool,
blockchain: blockchain,
chaindb: chaindb,
+ chainconfig: config,
peers: newPeerSet(),
newPeerCh: make(chan *peer),
noMorePeers: make(chan struct{}),
@@ -278,6 +284,18 @@ func (pm *ProtocolManager) handle(p *peer) error {
// after this will be sent via broadcasts.
pm.syncTransactions(p)
+ // If we're DAO hard-fork aware, validate any remote peer with regard to the hard-fork
+ if daoBlock := pm.chainconfig.DAOForkBlock; daoBlock != nil {
+ // Request the peer's DAO fork header for extra-data validation
+ if err := p.RequestHeadersByNumber(daoBlock.Uint64(), 1, 0, false); err != nil {
+ return err
+ }
+ // Start a timer to disconnect if the peer doesn't reply in time
+ p.forkDrop = time.AfterFunc(daoChallengeTimeout, func() {
+ glog.V(logger.Warn).Infof("%v: timed out DAO fork-check, dropping", p)
+ pm.removePeer(p.id)
+ })
+ }
// main loop. handle incoming messages.
for {
if err := pm.handleMsg(p); err != nil {
@@ -481,9 +499,43 @@ func (pm *ProtocolManager) handleMsg(p *peer) error {
if err := msg.Decode(&headers); err != nil {
return errResp(ErrDecode, "msg %v: %v", msg, err)
}
+ // If no headers were received, but we're expending a DAO fork check, maybe it's that
+ if len(headers) == 0 && p.forkDrop != nil {
+ // Possibly an empty reply to the fork header checks, sanity check TDs
+ verifyDAO := true
+
+ // If we already have a DAO header, we can check the peer's TD against it. If
+ // the peer's ahead of this, it too must have a reply to the DAO check
+ if daoHeader := pm.blockchain.GetHeaderByNumber(pm.chainconfig.DAOForkBlock.Uint64()); daoHeader != nil {
+ if p.Td().Cmp(pm.blockchain.GetTd(daoHeader.Hash(), daoHeader.Number.Uint64())) >= 0 {
+ verifyDAO = false
+ }
+ }
+ // If we're seemingly on the same chain, disable the drop timer
+ if verifyDAO {
+ glog.V(logger.Debug).Infof("%v: seems to be on the same side of the DAO fork", p)
+ p.forkDrop.Stop()
+ p.forkDrop = nil
+ return nil
+ }
+ }
// Filter out any explicitly requested headers, deliver the rest to the downloader
filter := len(headers) == 1
if filter {
+ // If it's a potential DAO fork check, validate against the rules
+ if p.forkDrop != nil && pm.chainconfig.DAOForkBlock.Cmp(headers[0].Number) == 0 {
+ // Disable the fork drop timer
+ p.forkDrop.Stop()
+ p.forkDrop = nil
+
+ // Validate the header and either drop the peer or continue
+ if err := core.ValidateDAOHeaderExtraData(pm.chainconfig, headers[0]); err != nil {
+ glog.V(logger.Debug).Infof("%v: verified to be on the other side of the DAO fork, dropping", p)
+ return err
+ }
+ glog.V(logger.Debug).Infof("%v: verified to be on the same side of the DAO fork", p)
+ }
+ // Irrelevant of the fork checks, send the header to the fetcher just in case
headers = pm.fetcher.FilterHeaders(headers, time.Now())
}
if len(headers) > 0 || !filter {
diff --git a/eth/handler_test.go b/eth/handler_test.go
index 8418c28b23..d5b1bf3508 100644
--- a/eth/handler_test.go
+++ b/eth/handler_test.go
@@ -20,6 +20,7 @@ import (
"math/big"
"math/rand"
"testing"
+ "time"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core"
@@ -28,6 +29,7 @@ import (
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/eth/downloader"
"github.com/ethereum/go-ethereum/ethdb"
+ "github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/p2p"
"github.com/ethereum/go-ethereum/params"
)
@@ -580,3 +582,74 @@ func testGetReceipt(t *testing.T, protocol int) {
t.Errorf("receipts mismatch: %v", err)
}
}
+
+// Tests that post eth protocol handshake, DAO fork-enabled clients also execute
+// a DAO "challenge" verifying each others' DAO fork headers to ensure they're on
+// compatible chains.
+func TestDAOChallengeNoVsNo(t *testing.T) { testDAOChallenge(t, false, false, false) }
+func TestDAOChallengeNoVsPro(t *testing.T) { testDAOChallenge(t, false, true, false) }
+func TestDAOChallengeProVsNo(t *testing.T) { testDAOChallenge(t, true, false, false) }
+func TestDAOChallengeProVsPro(t *testing.T) { testDAOChallenge(t, true, true, false) }
+func TestDAOChallengeNoVsTimeout(t *testing.T) { testDAOChallenge(t, false, false, true) }
+func TestDAOChallengeProVsTimeout(t *testing.T) { testDAOChallenge(t, true, true, true) }
+
+func testDAOChallenge(t *testing.T, localForked, remoteForked bool, timeout bool) {
+ // Reduce the DAO handshake challenge timeout
+ if timeout {
+ defer func(old time.Duration) { daoChallengeTimeout = old }(daoChallengeTimeout)
+ daoChallengeTimeout = 500 * time.Millisecond
+ }
+ // Create a DAO aware protocol manager
+ var (
+ evmux = new(event.TypeMux)
+ pow = new(core.FakePow)
+ db, _ = ethdb.NewMemDatabase()
+ genesis = core.WriteGenesisBlockForTesting(db)
+ config = &core.ChainConfig{DAOForkBlock: big.NewInt(1), DAOForkSupport: localForked}
+ blockchain, _ = core.NewBlockChain(db, config, pow, evmux)
+ )
+ pm, err := NewProtocolManager(config, false, NetworkId, evmux, new(testTxPool), pow, blockchain, db)
+ if err != nil {
+ t.Fatalf("failed to start test protocol manager: %v", err)
+ }
+ pm.Start()
+ defer pm.Stop()
+
+ // Connect a new peer and check that we receive the DAO challenge
+ peer, _ := newTestPeer("peer", eth63, pm, true)
+ defer peer.close()
+
+ challenge := &getBlockHeadersData{
+ Origin: hashOrNumber{Number: config.DAOForkBlock.Uint64()},
+ Amount: 1,
+ Skip: 0,
+ Reverse: false,
+ }
+ if err := p2p.ExpectMsg(peer.app, GetBlockHeadersMsg, challenge); err != nil {
+ t.Fatalf("challenge mismatch: %v", err)
+ }
+ // Create a block to reply to the challenge if no timeout is simualted
+ if !timeout {
+ blocks, _ := core.GenerateChain(genesis, db, 1, func(i int, block *core.BlockGen) {
+ if remoteForked {
+ block.SetExtra(params.DAOForkBlockExtra)
+ }
+ })
+ if err := p2p.Send(peer.app, BlockHeadersMsg, []*types.Header{blocks[0].Header()}); err != nil {
+ t.Fatalf("failed to answer challenge: %v", err)
+ }
+ } else {
+ // Otherwise wait until the test timeout passes
+ time.Sleep(daoChallengeTimeout + 500*time.Millisecond)
+ }
+ // Verify that depending on fork side, the remote peer is maintained or dropped
+ if localForked == remoteForked && !timeout {
+ if peers := pm.peers.Len(); peers != 1 {
+ t.Fatalf("peer count mismatch: have %d, want %d", peers, 1)
+ }
+ } else {
+ if peers := pm.peers.Len(); peers != 0 {
+ t.Fatalf("peer count mismatch: have %d, want %d", peers, 0)
+ }
+ }
+}
diff --git a/eth/peer.go b/eth/peer.go
index 8eb41b0f99..b97825c69e 100644
--- a/eth/peer.go
+++ b/eth/peer.go
@@ -59,10 +59,12 @@ type peer struct {
*p2p.Peer
rw p2p.MsgReadWriter
- version int // Protocol version negotiated
- head common.Hash
- td *big.Int
- lock sync.RWMutex
+ version int // Protocol version negotiated
+ forkDrop *time.Timer // Timed connection dropper if forks aren't validated in time
+
+ head common.Hash
+ td *big.Int
+ lock sync.RWMutex
knownTxs *set.Set // Set of transaction hashes known to be known by this peer
knownBlocks *set.Set // Set of block hashes known to be known by this peer
diff --git a/miner/worker.go b/miner/worker.go
index 09cf6b6aa7..dfda6d8985 100644
--- a/miner/worker.go
+++ b/miner/worker.go
@@ -17,6 +17,7 @@
package miner
import (
+ "bytes"
"fmt"
"math/big"
"sync"
@@ -33,6 +34,7 @@ import (
"github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/logger/glog"
+ "github.com/ethereum/go-ethereum/params"
"github.com/ethereum/go-ethereum/pow"
"gopkg.in/fatih/set.v0"
)
@@ -468,7 +470,19 @@ func (self *worker) commitNewWork() {
Extra: self.extra,
Time: big.NewInt(tstamp),
}
-
+ // If we are care about TheDAO hard-fork check whether to override the extra-data or not
+ if daoBlock := self.config.DAOForkBlock; daoBlock != nil {
+ // Check whether the block is among the fork extra-override range
+ limit := new(big.Int).Add(daoBlock, params.DAOForkExtraRange)
+ if header.Number.Cmp(daoBlock) >= 0 && header.Number.Cmp(limit) < 0 {
+ // Depending whether we support or oppose the fork, override differently
+ if self.config.DAOForkSupport {
+ header.Extra = common.CopyBytes(params.DAOForkBlockExtra)
+ } else if bytes.Compare(header.Extra, params.DAOForkBlockExtra) == 0 {
+ header.Extra = []byte{} // If miner opposes, don't let it use the reserved extra-data
+ }
+ }
+ }
previous := self.current
// Could potentially happen if starting to mine in an odd state.
err := self.makeCurrent(parent, header)
@@ -476,7 +490,11 @@ func (self *worker) commitNewWork() {
glog.V(logger.Info).Infoln("Could not create new env for mining, retrying on next block.")
return
}
+ // Create the current work task and check any fork transitions needed
work := self.current
+ if self.config.DAOForkSupport && self.config.DAOForkBlock != nil && self.config.DAOForkBlock.Cmp(header.Number) == 0 {
+ core.ApplyDAOHardFork(work.state)
+ }
/* //approach 1
transactions := self.eth.TxPool().GetTransactions()
diff --git a/params/dao.go b/params/dao.go
new file mode 100644
index 0000000000..67387e4614
--- /dev/null
+++ b/params/dao.go
@@ -0,0 +1,418 @@
+// Copyright 2016 The go-ethereum Authors
+// This file is part of the go-ethereum library.
+//
+// The go-ethereum library is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// The go-ethereum library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with the go-ethereum library. If not, see .
+
+package params
+
+import (
+ "encoding/json"
+ "fmt"
+ "math/big"
+
+ "github.com/ethereum/go-ethereum/common"
+)
+
+// TestNetDAOForkBlock is the block number where the DAO hard-fork commences on
+// the Ethereum test network. It's enforced nil since it was decided not to do a
+// testnet transition.
+var TestNetDAOForkBlock *big.Int
+
+// MainNetDAOForkBlock is the block number where the DAO hard-fork commences on
+// the Ethereum main network.
+var MainNetDAOForkBlock = big.NewInt(1922000)
+
+// DAOForkBlockExtra is the block header extra-data field to set for the DAO fork
+// point and a number of consecutive blocks to allow fast/light syncers to correctly
+// pick the side they want ("dao-hard-fork").
+var DAOForkBlockExtra = common.FromHex("0x64616f2d686172642d666f726b")
+
+// DAOForkExtraRange is the number of consecutive blocks from the DAO fork point
+// to override the extra-data in to prevent no-fork attacks.
+var DAOForkExtraRange = big.NewInt(10)
+
+// DAORefundContract is the address of the refund contract to send DAO balances to.
+var DAORefundContract = common.HexToAddress("0x0000000000000000000000000000000000000000")
+
+// DAODrainList is the list of accounts whose full balances will be moved into a
+// refund contract at the beginning of the dao-fork block.
+var DAODrainList []common.Address
+
+func init() {
+ // Parse the list of DAO accounts to drain
+ var list []map[string]string
+ if err := json.Unmarshal([]byte(daoDrainListJSON), &list); err != nil {
+ panic(fmt.Errorf("Failed to parse DAO drain list: %v", err))
+ }
+ // Collect all the accounts that need draining
+ for _, dao := range list {
+ DAODrainList = append(DAODrainList, common.HexToAddress(dao["address"]))
+ DAODrainList = append(DAODrainList, common.HexToAddress(dao["extraBalanceAccount"]))
+ }
+}
+
+// daoDrainListJSON is the JSON encoded list of accounts whose full balances will
+// be moved into a refund contract at the beginning of the dao-fork block.
+const daoDrainListJSON = `
+[
+ {
+ "address":"0xd4fe7bc31cedb7bfb8a345f31e668033056b2728",
+ "balance":"186cc8bfaefb7be",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0xb3fb0e5aba0e20e5c49d252dfd30e102b171a425"
+ },
+ {
+ "address":"0x2c19c7f9ae8b751e37aeb2d93a699722395ae18f",
+ "balance":"b14e8feab1ff435",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0xecd135fa4f61a655311e86238c92adcd779555d2"
+ },
+ {
+ "address":"0x1975bd06d486162d5dc297798dfc41edd5d160a7",
+ "balance":"359d26614cb5070c77",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0xa3acf3a1e16b1d7c315e23510fdd7847b48234f6"
+ },
+ {
+ "address":"0x319f70bab6845585f412ec7724b744fec6095c85",
+ "balance":"6e075cd846d2cb1d42",
+ "extraBalance":"13d34fd41b545b81",
+ "extraBalanceAccount":"0x06706dd3f2c9abf0a21ddcc6941d9b86f0596936"
+ },
+ {
+ "address":"0x5c8536898fbb74fc7445814902fd08422eac56d0",
+ "balance":"b1e5593558008fd78",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x6966ab0d485353095148a2155858910e0965b6f9"
+ },
+ {
+ "address":"0x779543a0491a837ca36ce8c635d6154e3c4911a6",
+ "balance":"392eaa20d1aad59a4c",
+ "extraBalance":"426938826a96c9",
+ "extraBalanceAccount":"0x2a5ed960395e2a49b1c758cef4aa15213cfd874c"
+ },
+ {
+ "address":"0x5c6e67ccd5849c0d29219c4f95f1a7a93b3f5dc5",
+ "balance":"2875d22b29793d4ba7",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x9c50426be05db97f5d64fc54bf89eff947f0a321"
+ },
+ {
+ "address":"0x200450f06520bdd6c527622a273333384d870efb",
+ "balance":"43c341d9f96954c049",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0xbe8539bfe837b67d1282b2b1d61c3f723966f049"
+ },
+ {
+ "address":"0x6b0c4d41ba9ab8d8cfb5d379c69a612f2ced8ecb",
+ "balance":"75251057154d70fa816",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0xf1385fb24aad0cd7432824085e42aff90886fef5"
+ },
+ {
+ "address":"0xd1ac8b1ef1b69ff51d1d401a476e7e612414f091",
+ "balance":"392409769296cf67f36",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x8163e7fb499e90f8544ea62bbf80d21cd26d9efd"
+ },
+ {
+ "address":"0x51e0ddd9998364a2eb38588679f0d2c42653e4a6",
+ "balance":"8ac72eccbf4e8083",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x627a0a960c079c21c34f7612d5d230e01b4ad4c7"
+ },
+ {
+ "address":"0xf0b1aa0eb660754448a7937c022e30aa692fe0c5",
+ "balance":"82289c3bb3e8c98799",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x24c4d950dfd4dd1902bbed3508144a54542bba94"
+ },
+ {
+ "address":"0x9f27daea7aca0aa0446220b98d028715e3bc803d",
+ "balance":"56bc29049ebed40fd",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0xa5dc5acd6a7968a4554d89d65e59b7fd3bff0f90"
+ },
+ {
+ "address":"0xd9aef3a1e38a39c16b31d1ace71bca8ef58d315b",
+ "balance":"56bc7d3ff79110524",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x63ed5a272de2f6d968408b4acb9024f4cc208ebf"
+ },
+ {
+ "address":"0x6f6704e5a10332af6672e50b3d9754dc460dfa4d",
+ "balance":"23b651bd48cbc70cc",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x77ca7b50b6cd7e2f3fa008e24ab793fd56cb15f6"
+ },
+ {
+ "address":"0x492ea3bb0f3315521c31f273e565b868fc090f17",
+ "balance":"13ea6d4fee651dd7c9",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x0ff30d6de14a8224aa97b78aea5388d1c51c1f00"
+ },
+ {
+ "address":"0x9ea779f907f0b315b364b0cfc39a0fde5b02a416",
+ "balance":"35ac471a3836ae7de5a",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0xceaeb481747ca6c540a000c1f3641f8cef161fa7"
+ },
+ {
+ "address":"0xcc34673c6c40e791051898567a1222daf90be287",
+ "balance":"d529c0b76b7aa0",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x579a80d909f346fbfb1189493f521d7f48d52238"
+ },
+ {
+ "address":"0xe308bd1ac5fda103967359b2712dd89deffb7973",
+ "balance":"5cd9e7df3a8e5cdd3",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x4cb31628079fb14e4bc3cd5e30c2f7489b00960c"
+ },
+ {
+ "address":"0xac1ecab32727358dba8962a0f3b261731aad9723",
+ "balance":"2c8442fe35363313b93",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x4fd6ace747f06ece9c49699c7cabc62d02211f75"
+ },
+ {
+ "address":"0x440c59b325d2997a134c2c7c60a8c61611212bad",
+ "balance":"e77583a3958130e53",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x4486a3d68fac6967006d7a517b889fd3f98c102b"
+ },
+ {
+ "address":"0x9c15b54878ba618f494b38f0ae7443db6af648ba",
+ "balance":"1f0b6ade348ca998",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x27b137a85656544b1ccb5a0f2e561a5703c6a68f"
+ },
+ {
+ "address":"0x21c7fdb9ed8d291d79ffd82eb2c4356ec0d81241",
+ "balance":"61725880736659",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x23b75c2f6791eef49c69684db4c6c1f93bf49a50"
+ },
+ {
+ "address":"0x1ca6abd14d30affe533b24d7a21bff4c2d5e1f3b",
+ "balance":"42948d8dc7ddbc22d",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0xb9637156d330c0d605a791f1c31ba5890582fe1c"
+ },
+ {
+ "address":"0x6131c42fa982e56929107413a9d526fd99405560",
+ "balance":"7306683851d1eafbfa",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x1591fc0f688c81fbeb17f5426a162a7024d430c2"
+ },
+ {
+ "address":"0x542a9515200d14b68e934e9830d91645a980dd7a",
+ "balance":"2a8457d0d8432e21d0c",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0xc4bbd073882dd2add2424cf47d35213405b01324"
+ },
+ {
+ "address":"0x782495b7b3355efb2833d56ecb34dc22ad7dfcc4",
+ "balance":"d8d7391feaeaa8cdb",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x58b95c9a9d5d26825e70a82b6adb139d3fd829eb"
+ },
+ {
+ "address":"0x3ba4d81db016dc2890c81f3acec2454bff5aada5",
+ "balance":"1",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0xb52042c8ca3f8aa246fa79c3feaa3d959347c0ab"
+ },
+ {
+ "address":"0xe4ae1efdfc53b73893af49113d8694a057b9c0d1",
+ "balance":"456397665fa74041",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x3c02a7bc0391e86d91b7d144e61c2c01a25a79c5"
+ },
+ {
+ "address":"0x0737a6b837f97f46ebade41b9bc3e1c509c85c53",
+ "balance":"6324dcb7126ecbef",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x97f43a37f595ab5dd318fb46e7a155eae057317a"
+ },
+ {
+ "address":"0x52c5317c848ba20c7504cb2c8052abd1fde29d03",
+ "balance":"6c3419b0705c01cd0d",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x4863226780fe7c0356454236d3b1c8792785748d"
+ },
+ {
+ "address":"0x5d2b2e6fcbe3b11d26b525e085ff818dae332479",
+ "balance":"456397665fa74041",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x5f9f3392e9f62f63b8eac0beb55541fc8627f42c"
+ },
+ {
+ "address":"0x057b56736d32b86616a10f619859c6cd6f59092a",
+ "balance":"232c025bb44b46",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x9aa008f65de0b923a2a4f02012ad034a5e2e2192"
+ },
+ {
+ "address":"0x304a554a310c7e546dfe434669c62820b7d83490",
+ "balance":"3034f5ca7d45e17df199b",
+ "extraBalance":"f7d15162c44e97b6e",
+ "extraBalanceAccount":"0x914d1b8b43e92723e64fd0a06f5bdb8dd9b10c79"
+ },
+ {
+ "address":"0x4deb0033bb26bc534b197e61d19e0733e5679784",
+ "balance":"4417e96ed796591e09",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x07f5c1e1bc2c93e0402f23341973a0e043f7bf8a"
+ },
+ {
+ "address":"0x35a051a0010aba705c9008d7a7eff6fb88f6ea7b",
+ "balance":"d3ff7771412bbcc9",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x4fa802324e929786dbda3b8820dc7834e9134a2a"
+ },
+ {
+ "address":"0x9da397b9e80755301a3b32173283a91c0ef6c87e",
+ "balance":"32ae324c233816b4c2",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x8d9edb3054ce5c5774a420ac37ebae0ac02343c6"
+ },
+ {
+ "address":"0x0101f3be8ebb4bbd39a2e3b9a3639d4259832fd9",
+ "balance":"1e530695b705f037c6",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x5dc28b15dffed94048d73806ce4b7a4612a1d48f"
+ },
+ {
+ "address":"0xbcf899e6c7d9d5a215ab1e3444c86806fa854c76",
+ "balance":"68013bad5b4b1133fc5",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x12e626b0eebfe86a56d633b9864e389b45dcb260"
+ },
+ {
+ "address":"0xa2f1ccba9395d7fcb155bba8bc92db9bafaeade7",
+ "balance":"456397665fa74041",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0xec8e57756626fdc07c63ad2eafbd28d08e7b0ca5"
+ },
+ {
+ "address":"0xd164b088bd9108b60d0ca3751da4bceb207b0782",
+ "balance":"3635ce47fabaaa336e",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x6231b6d0d5e77fe001c2a460bd9584fee60d409b"
+ },
+ {
+ "address":"0x1cba23d343a983e9b5cfd19496b9a9701ada385f",
+ "balance":"f3abd9906c170a",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0xa82f360a8d3455c5c41366975bde739c37bfeb8a"
+ },
+ {
+ "address":"0x9fcd2deaff372a39cc679d5c5e4de7bafb0b1339",
+ "balance":"4c6679d9d9b95a4e08",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x005f5cee7a43331d5a3d3eec71305925a62f34b6"
+ },
+ {
+ "address":"0x0e0da70933f4c7849fc0d203f5d1d43b9ae4532d",
+ "balance":"40f622936475de31849",
+ "extraBalance":"671e1bbabded39754",
+ "extraBalanceAccount":"0xd131637d5275fd1a68a3200f4ad25c71a2a9522e"
+ },
+ {
+ "address":"0xbc07118b9ac290e4622f5e77a0853539789effbe",
+ "balance":"1316ccfa4a35db5e58f",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x47e7aa56d6bdf3f36be34619660de61275420af8"
+ },
+ {
+ "address":"0xacd87e28b0c9d1254e868b81cba4cc20d9a32225",
+ "balance":"b3ad6bb72000bab9f",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0xadf80daec7ba8dcf15392f1ac611fff65d94f880"
+ },
+ {
+ "address":"0x5524c55fb03cf21f549444ccbecb664d0acad706",
+ "balance":"16f2da372a5c8a70967",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x40b803a9abce16f50f36a77ba41180eb90023925"
+ },
+ {
+ "address":"0xfe24cdd8648121a43a7c86d289be4dd2951ed49f",
+ "balance":"ea0b1bdc78f500a43",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x17802f43a0137c506ba92291391a8a8f207f487d"
+ },
+ {
+ "address":"0x253488078a4edf4d6f42f113d1e62836a942cf1a",
+ "balance":"3060e3aed135cc80",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x86af3e9626fce1957c82e88cbf04ddf3a2ed7915"
+ },
+ {
+ "address":"0xb136707642a4ea12fb4bae820f03d2562ebff487",
+ "balance":"6050bdeb3354b5c98adc3",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0xdbe9b615a3ae8709af8b93336ce9b477e4ac0940"
+ },
+ {
+ "address":"0xf14c14075d6c4ed84b86798af0956deef67365b5",
+ "balance":"1d77844e94c25ba2",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0xca544e5c4687d109611d0f8f928b53a25af72448"
+ },
+ {
+ "address":"0xaeeb8ff27288bdabc0fa5ebb731b6f409507516c",
+ "balance":"2e93a72de4fc5ec0ed",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0xcbb9d3703e651b0d496cdefb8b92c25aeb2171f7"
+ },
+ {
+ "address":"0x6d87578288b6cb5549d5076a207456a1f6a63dc0",
+ "balance":"1afd340799e48c18",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0xb2c6f0dfbb716ac562e2d85d6cb2f8d5ee87603e"
+ },
+ {
+ "address":"0xaccc230e8a6e5be9160b8cdf2864dd2a001c28b6",
+ "balance":"14d0944eb3be947a8",
+ "extraBalance":"0",
+ "extraBalanceAccount":"0x2b3455ec7fedf16e646268bf88846bd7a2319bb2"
+ },
+ {
+ "address":"0x4613f3bca5c44ea06337a9e439fbc6d42e501d0a",
+ "balance":"6202b236a200e365eba",
+ "extraBalance":"11979be9020f03ec4ec",
+ "extraBalanceAccount":"0xd343b217de44030afaa275f54d31a9317c7f441e"
+ },
+ {
+ "address":"0x84ef4b2357079cd7a7c69fd7a37cd0609a679106",
+ "balance":"7ed634ebbba531901e07",
+ "extraBalance":"f9c5eff28cb08720c85",
+ "extraBalanceAccount":"0xda2fef9e4a3230988ff17df2165440f37e8b1708"
+ },
+ {
+ "address":"0xf4c64518ea10f995918a454158c6b61407ea345c",
+ "balance":"39152e15508a96ff894a",
+ "extraBalance":"14041ca908bcc185c8",
+ "extraBalanceAccount":"0x7602b46df5390e432ef1c307d4f2c9ff6d65cc97"
+ },
+ {
+ "address":"0xbb9bc244d798123fde783fcc1c72d3bb8c189413",
+ "balance":"1",
+ "extraBalance":"5553ebc",
+ "extraBalanceAccount":"0x807640a13483f8ac783c557fcdf27be11ea4ac7a"
+ }
+]
+`
diff --git a/params/util.go b/params/util.go
index b37bc79b21..9d1fa54e60 100644
--- a/params/util.go
+++ b/params/util.go
@@ -19,6 +19,6 @@ package params
import "math/big"
var (
- TestNetHomesteadBlock = big.NewInt(494000) // testnet homestead block
- MainNetHomesteadBlock = big.NewInt(1150000) // mainnet homestead block
+ TestNetHomesteadBlock = big.NewInt(494000) // Testnet homestead block
+ MainNetHomesteadBlock = big.NewInt(1150000) // Mainnet homestead block
)
diff --git a/tests/block_test.go b/tests/block_test.go
index c258268dbb..9b2fedceb4 100644
--- a/tests/block_test.go
+++ b/tests/block_test.go
@@ -20,66 +20,69 @@ import (
"math/big"
"path/filepath"
"testing"
+
+ "github.com/ethereum/go-ethereum/common"
+ "github.com/ethereum/go-ethereum/params"
)
func TestBcValidBlockTests(t *testing.T) {
- err := RunBlockTest(big.NewInt(1000000), filepath.Join(blockTestDir, "bcValidBlockTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(1000000), nil, filepath.Join(blockTestDir, "bcValidBlockTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestBcUncleHeaderValidityTests(t *testing.T) {
- err := RunBlockTest(big.NewInt(1000000), filepath.Join(blockTestDir, "bcUncleHeaderValiditiy.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(1000000), nil, filepath.Join(blockTestDir, "bcUncleHeaderValiditiy.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestBcUncleTests(t *testing.T) {
- err := RunBlockTest(big.NewInt(1000000), filepath.Join(blockTestDir, "bcUncleTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(1000000), nil, filepath.Join(blockTestDir, "bcUncleTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestBcForkUncleTests(t *testing.T) {
- err := RunBlockTest(big.NewInt(1000000), filepath.Join(blockTestDir, "bcForkUncle.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(1000000), nil, filepath.Join(blockTestDir, "bcForkUncle.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestBcInvalidHeaderTests(t *testing.T) {
- err := RunBlockTest(big.NewInt(1000000), filepath.Join(blockTestDir, "bcInvalidHeaderTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(1000000), nil, filepath.Join(blockTestDir, "bcInvalidHeaderTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestBcInvalidRLPTests(t *testing.T) {
- err := RunBlockTest(big.NewInt(1000000), filepath.Join(blockTestDir, "bcInvalidRLPTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(1000000), nil, filepath.Join(blockTestDir, "bcInvalidRLPTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestBcRPCAPITests(t *testing.T) {
- err := RunBlockTest(big.NewInt(1000000), filepath.Join(blockTestDir, "bcRPC_API_Test.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(1000000), nil, filepath.Join(blockTestDir, "bcRPC_API_Test.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestBcForkBlockTests(t *testing.T) {
- err := RunBlockTest(big.NewInt(1000000), filepath.Join(blockTestDir, "bcForkBlockTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(1000000), nil, filepath.Join(blockTestDir, "bcForkBlockTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestBcForkStress(t *testing.T) {
- err := RunBlockTest(big.NewInt(1000000), filepath.Join(blockTestDir, "bcForkStressTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(1000000), nil, filepath.Join(blockTestDir, "bcForkStressTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
@@ -89,21 +92,21 @@ func TestBcTotalDifficulty(t *testing.T) {
// skip because these will fail due to selfish mining fix
t.Skip()
- err := RunBlockTest(big.NewInt(1000000), filepath.Join(blockTestDir, "bcTotalDifficultyTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(1000000), nil, filepath.Join(blockTestDir, "bcTotalDifficultyTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestBcWallet(t *testing.T) {
- err := RunBlockTest(big.NewInt(1000000), filepath.Join(blockTestDir, "bcWalletTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(1000000), nil, filepath.Join(blockTestDir, "bcWalletTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestBcGasPricer(t *testing.T) {
- err := RunBlockTest(big.NewInt(1000000), filepath.Join(blockTestDir, "bcGasPricerTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(1000000), nil, filepath.Join(blockTestDir, "bcGasPricerTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
@@ -111,7 +114,7 @@ func TestBcGasPricer(t *testing.T) {
// TODO: iterate over files once we got more than a few
func TestBcRandom(t *testing.T) {
- err := RunBlockTest(big.NewInt(1000000), filepath.Join(blockTestDir, "RandomTests/bl201507071825GO.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(1000000), nil, filepath.Join(blockTestDir, "RandomTests/bl201507071825GO.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
@@ -121,14 +124,14 @@ func TestBcMultiChain(t *testing.T) {
// skip due to selfish mining
t.Skip()
- err := RunBlockTest(big.NewInt(1000000), filepath.Join(blockTestDir, "bcMultiChainTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(1000000), nil, filepath.Join(blockTestDir, "bcMultiChainTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestBcState(t *testing.T) {
- err := RunBlockTest(big.NewInt(1000000), filepath.Join(blockTestDir, "bcStateTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(1000000), nil, filepath.Join(blockTestDir, "bcStateTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
@@ -136,77 +139,89 @@ func TestBcState(t *testing.T) {
// Homestead tests
func TestHomesteadBcValidBlockTests(t *testing.T) {
- err := RunBlockTest(big.NewInt(0), filepath.Join(blockTestDir, "Homestead", "bcValidBlockTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(0), nil, filepath.Join(blockTestDir, "Homestead", "bcValidBlockTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestHomesteadBcUncleHeaderValidityTests(t *testing.T) {
- err := RunBlockTest(big.NewInt(0), filepath.Join(blockTestDir, "Homestead", "bcUncleHeaderValiditiy.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(0), nil, filepath.Join(blockTestDir, "Homestead", "bcUncleHeaderValiditiy.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestHomesteadBcUncleTests(t *testing.T) {
- err := RunBlockTest(big.NewInt(0), filepath.Join(blockTestDir, "Homestead", "bcUncleTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(0), nil, filepath.Join(blockTestDir, "Homestead", "bcUncleTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestHomesteadBcInvalidHeaderTests(t *testing.T) {
- err := RunBlockTest(big.NewInt(0), filepath.Join(blockTestDir, "Homestead", "bcInvalidHeaderTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(0), nil, filepath.Join(blockTestDir, "Homestead", "bcInvalidHeaderTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestHomesteadBcRPCAPITests(t *testing.T) {
- err := RunBlockTest(big.NewInt(0), filepath.Join(blockTestDir, "Homestead", "bcRPC_API_Test.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(0), nil, filepath.Join(blockTestDir, "Homestead", "bcRPC_API_Test.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestHomesteadBcForkStress(t *testing.T) {
- err := RunBlockTest(big.NewInt(0), filepath.Join(blockTestDir, "Homestead", "bcForkStressTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(0), nil, filepath.Join(blockTestDir, "Homestead", "bcForkStressTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestHomesteadBcTotalDifficulty(t *testing.T) {
- err := RunBlockTest(big.NewInt(0), filepath.Join(blockTestDir, "Homestead", "bcTotalDifficultyTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(0), nil, filepath.Join(blockTestDir, "Homestead", "bcTotalDifficultyTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestHomesteadBcWallet(t *testing.T) {
- err := RunBlockTest(big.NewInt(0), filepath.Join(blockTestDir, "Homestead", "bcWalletTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(0), nil, filepath.Join(blockTestDir, "Homestead", "bcWalletTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestHomesteadBcGasPricer(t *testing.T) {
- err := RunBlockTest(big.NewInt(0), filepath.Join(blockTestDir, "Homestead", "bcGasPricerTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(0), nil, filepath.Join(blockTestDir, "Homestead", "bcGasPricerTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestHomesteadBcMultiChain(t *testing.T) {
- err := RunBlockTest(big.NewInt(0), filepath.Join(blockTestDir, "Homestead", "bcMultiChainTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(0), nil, filepath.Join(blockTestDir, "Homestead", "bcMultiChainTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
}
func TestHomesteadBcState(t *testing.T) {
- err := RunBlockTest(big.NewInt(0), filepath.Join(blockTestDir, "Homestead", "bcStateTest.json"), BlockSkipTests)
+ err := RunBlockTest(big.NewInt(0), nil, filepath.Join(blockTestDir, "Homestead", "bcStateTest.json"), BlockSkipTests)
+ if err != nil {
+ t.Fatal(err)
+ }
+}
+
+// DAO hard-fork tests
+func TestDAOBcTheDao(t *testing.T) {
+ // Temporarilly override the hard-fork specs
+ defer func(old common.Address) { params.DAORefundContract = old }(params.DAORefundContract)
+ params.DAORefundContract = common.HexToAddress("0xabcabcabcabcabcabcabcabcabcabcabcabcabca")
+
+ err := RunBlockTest(big.NewInt(5), big.NewInt(8), filepath.Join(blockTestDir, "TestNetwork", "bcTheDaoTest.json"), BlockSkipTests)
if err != nil {
t.Fatal(err)
}
diff --git a/tests/block_test_util.go b/tests/block_test_util.go
index d9a5eec086..7da15cebe3 100644
--- a/tests/block_test_util.go
+++ b/tests/block_test_util.go
@@ -103,7 +103,7 @@ type btTransaction struct {
Value string
}
-func RunBlockTestWithReader(homesteadBlock *big.Int, r io.Reader, skipTests []string) error {
+func RunBlockTestWithReader(homesteadBlock, daoForkBlock *big.Int, r io.Reader, skipTests []string) error {
btjs := make(map[string]*btJSON)
if err := readJson(r, &btjs); err != nil {
return err
@@ -114,13 +114,13 @@ func RunBlockTestWithReader(homesteadBlock *big.Int, r io.Reader, skipTests []st
return err
}
- if err := runBlockTests(homesteadBlock, bt, skipTests); err != nil {
+ if err := runBlockTests(homesteadBlock, daoForkBlock, bt, skipTests); err != nil {
return err
}
return nil
}
-func RunBlockTest(homesteadBlock *big.Int, file string, skipTests []string) error {
+func RunBlockTest(homesteadBlock, daoForkBlock *big.Int, file string, skipTests []string) error {
btjs := make(map[string]*btJSON)
if err := readJsonFile(file, &btjs); err != nil {
return err
@@ -130,13 +130,13 @@ func RunBlockTest(homesteadBlock *big.Int, file string, skipTests []string) erro
if err != nil {
return err
}
- if err := runBlockTests(homesteadBlock, bt, skipTests); err != nil {
+ if err := runBlockTests(homesteadBlock, daoForkBlock, bt, skipTests); err != nil {
return err
}
return nil
}
-func runBlockTests(homesteadBlock *big.Int, bt map[string]*BlockTest, skipTests []string) error {
+func runBlockTests(homesteadBlock, daoForkBlock *big.Int, bt map[string]*BlockTest, skipTests []string) error {
skipTest := make(map[string]bool, len(skipTests))
for _, name := range skipTests {
skipTest[name] = true
@@ -148,7 +148,7 @@ func runBlockTests(homesteadBlock *big.Int, bt map[string]*BlockTest, skipTests
continue
}
// test the block
- if err := runBlockTest(homesteadBlock, test); err != nil {
+ if err := runBlockTest(homesteadBlock, daoForkBlock, test); err != nil {
return fmt.Errorf("%s: %v", name, err)
}
glog.Infoln("Block test passed: ", name)
@@ -157,7 +157,7 @@ func runBlockTests(homesteadBlock *big.Int, bt map[string]*BlockTest, skipTests
return nil
}
-func runBlockTest(homesteadBlock *big.Int, test *BlockTest) error {
+func runBlockTest(homesteadBlock, daoForkBlock *big.Int, test *BlockTest) error {
// import pre accounts & construct test genesis block & state root
db, _ := ethdb.NewMemDatabase()
if _, err := test.InsertPreState(db); err != nil {
@@ -169,7 +169,7 @@ func runBlockTest(homesteadBlock *big.Int, test *BlockTest) error {
core.WriteCanonicalHash(db, test.Genesis.Hash(), test.Genesis.NumberU64())
core.WriteHeadBlockHash(db, test.Genesis.Hash())
evmux := new(event.TypeMux)
- config := &core.ChainConfig{HomesteadBlock: homesteadBlock}
+ config := &core.ChainConfig{HomesteadBlock: homesteadBlock, DAOForkBlock: daoForkBlock, DAOForkSupport: true}
chain, err := core.NewBlockChain(db, config, ethash.NewShared(), evmux)
if err != nil {
return err
diff --git a/tests/files/BlockchainTests/TestNetwork/bcTheDaoTest.json b/tests/files/BlockchainTests/TestNetwork/bcTheDaoTest.json
new file mode 100644
index 0000000000..c1d2b77785
--- /dev/null
+++ b/tests/files/BlockchainTests/TestNetwork/bcTheDaoTest.json
@@ -0,0 +1,2694 @@
+{
+ "DaoTransactions" : {
+ "blocks" : [
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020000",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "f8cb917341639578ff41f66586de342d29b4b7bffc8aebcd6a981a68035d33ed",
+ "mixHash" : "e200b760aec43546c7c83f6f90cc0cacbbd101bb4a6528c4e17099d6abf9f55b",
+ "nonce" : "ad584dd4c72dea1e",
+ "number" : "0x01",
+ "parentHash" : "eb310def4877fc94c3945bdabd9ba6bbafff1c74944b2bd74a4ac01f0868804c",
+ "receiptTrie" : "63e81aadc86aed2ebe147fd86db74d8fbe91a938af0521be549669246e607443",
+ "stateRoot" : "421450c5fcaa516f03635983f0c9d936574721033424eac5e6d71c8fa14b766f",
+ "timestamp" : "0x57841831",
+ "transactionsTrie" : "ac81275d7a81a720240146377982939179218535bfcfa9469c8bdd3e264ef179",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "1",
+ "rlp" : "0xf9024cf901f9a0eb310def4877fc94c3945bdabd9ba6bbafff1c74944b2bd74a4ac01f0868804ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0421450c5fcaa516f03635983f0c9d936574721033424eac5e6d71c8fa14b766fa0ac81275d7a81a720240146377982939179218535bfcfa9469c8bdd3e264ef179a063e81aadc86aed2ebe147fd86db74d8fbe91a938af0521be549669246e607443b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302000001832fefba825208845784183180a0e200b760aec43546c7c83f6f90cc0cacbbd101bb4a6528c4e17099d6abf9f55b88ad584dd4c72dea1ef84df84b8001827530800a801ca057cb46c0b702929c4fd4127b2370f28a7aeeaa65509699e58eedf7692090a0a9a05ba7c83d99be6a9bca0c81947023ba3b5f2162516d82d0757bf8004f3e9bc03ac0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0x7530",
+ "gasPrice" : "0x01",
+ "nonce" : "0x00",
+ "r" : "0x57cb46c0b702929c4fd4127b2370f28a7aeeaa65509699e58eedf7692090a0a9",
+ "s" : "0x5ba7c83d99be6a9bca0c81947023ba3b5f2162516d82d0757bf8004f3e9bc03a",
+ "to" : "",
+ "v" : "0x1c",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020040",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "d1b7b902d227d73e3b666ab45848a1e9c0d14243028b460c90067026b7d11294",
+ "mixHash" : "db85dc45ef39ab4299c2776168643603fd8bdd46d7d0d6c8cd4c168b411a58fb",
+ "nonce" : "01afbbb39e2fe7d6",
+ "number" : "0x02",
+ "parentHash" : "f8cb917341639578ff41f66586de342d29b4b7bffc8aebcd6a981a68035d33ed",
+ "receiptTrie" : "b41287e7f7e5d2983862a73e54c86ec144ecf835096984770f6bf485188268b8",
+ "stateRoot" : "1e31d34b22a8d2fd9893bb58fa80e6ca4561320eed43776c295acca93721847c",
+ "timestamp" : "0x5784183a",
+ "transactionsTrie" : "76c7a0ce7644661f276c76fb9a82eaee879d0642cf4ed244fc10afc02c646abf",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "2",
+ "rlp" : "0xf9024cf901f9a0f8cb917341639578ff41f66586de342d29b4b7bffc8aebcd6a981a68035d33eda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a01e31d34b22a8d2fd9893bb58fa80e6ca4561320eed43776c295acca93721847ca076c7a0ce7644661f276c76fb9a82eaee879d0642cf4ed244fc10afc02c646abfa0b41287e7f7e5d2983862a73e54c86ec144ecf835096984770f6bf485188268b8b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302004002832fefba825208845784183a80a0db85dc45ef39ab4299c2776168643603fd8bdd46d7d0d6c8cd4c168b411a58fb8801afbbb39e2fe7d6f84df84b0101827530800a801ca0bb6e3cf3f281af13ef1393d7052b03cab367079a9eb71aa829ec72b231a60e1fa04bcfe1da53f26bb95806d38e9f42fef262aaaf5191e16ec473a695c8978a0b05c0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0x7530",
+ "gasPrice" : "0x01",
+ "nonce" : "0x01",
+ "r" : "0xbb6e3cf3f281af13ef1393d7052b03cab367079a9eb71aa829ec72b231a60e1f",
+ "s" : "0x4bcfe1da53f26bb95806d38e9f42fef262aaaf5191e16ec473a695c8978a0b05",
+ "to" : "",
+ "v" : "0x1c",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020080",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "207c926fb84b163aa14515e092045f213d3d30b06794616c9d3ae93fd3ad9728",
+ "mixHash" : "f8c84aafed7821f71379d4cf0be5ed4b2faab4fec20805f443e061617e9edd3d",
+ "nonce" : "915d8300b77b667c",
+ "number" : "0x03",
+ "parentHash" : "d1b7b902d227d73e3b666ab45848a1e9c0d14243028b460c90067026b7d11294",
+ "receiptTrie" : "12f61177f6c2cebe14df5474c8b8c1f8f47f4ea8fff7f8b22b7aa8a4156581c8",
+ "stateRoot" : "587518607d6c98344439896e7f39111d76a8aac09b70d624e237da6fa29bbc44",
+ "timestamp" : "0x5784183b",
+ "transactionsTrie" : "3798aa164b61e27b93484c76a5f319bd93c808dc78ef31cf8b93f4e1b248ca2c",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "3",
+ "rlp" : "0xf9024cf901f9a0d1b7b902d227d73e3b666ab45848a1e9c0d14243028b460c90067026b7d11294a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0587518607d6c98344439896e7f39111d76a8aac09b70d624e237da6fa29bbc44a03798aa164b61e27b93484c76a5f319bd93c808dc78ef31cf8b93f4e1b248ca2ca012f61177f6c2cebe14df5474c8b8c1f8f47f4ea8fff7f8b22b7aa8a4156581c8b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302008003832fefba825208845784183b80a0f8c84aafed7821f71379d4cf0be5ed4b2faab4fec20805f443e061617e9edd3d88915d8300b77b667cf84df84b0201827530800a801ca0f6d884cae1f86bdff1281e95e416089c544a4a5578a75d5e8ad76118e341b055a075b7d88985ed5acd61f30c9f9570c6c33bb92f3ad1a32b86a0747817fbc5ededc0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0x7530",
+ "gasPrice" : "0x01",
+ "nonce" : "0x02",
+ "r" : "0xf6d884cae1f86bdff1281e95e416089c544a4a5578a75d5e8ad76118e341b055",
+ "s" : "0x75b7d88985ed5acd61f30c9f9570c6c33bb92f3ad1a32b86a0747817fbc5eded",
+ "to" : "",
+ "v" : "0x1c",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x0200c0",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "61d869243d239509fea671c8e97ebf21ae357e959707054f5b4c4b30cfeb2466",
+ "mixHash" : "f7cd7fdada85a935c66a8fab09fc789181d1e1e0c39ec544f2642d8529eca374",
+ "nonce" : "c8fc27ea8c132de9",
+ "number" : "0x04",
+ "parentHash" : "207c926fb84b163aa14515e092045f213d3d30b06794616c9d3ae93fd3ad9728",
+ "receiptTrie" : "4346f81bc8c58aa684049309decc863c93cd6cdc84c592b62bd1439eee3636ac",
+ "stateRoot" : "c8ba761363f3cb1958f01fd55b864bcba7f33324ba4f95e60fc9e48d9ba6777a",
+ "timestamp" : "0x5784183d",
+ "transactionsTrie" : "4cc1b34b3a9d29bf69842a54e1c48bc97afc433883f66d2c59287f118c9c3c2c",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "4",
+ "rlp" : "0xf9024cf901f9a0207c926fb84b163aa14515e092045f213d3d30b06794616c9d3ae93fd3ad9728a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0c8ba761363f3cb1958f01fd55b864bcba7f33324ba4f95e60fc9e48d9ba6777aa04cc1b34b3a9d29bf69842a54e1c48bc97afc433883f66d2c59287f118c9c3c2ca04346f81bc8c58aa684049309decc863c93cd6cdc84c592b62bd1439eee3636acb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200c004832fefba825208845784183d80a0f7cd7fdada85a935c66a8fab09fc789181d1e1e0c39ec544f2642d8529eca37488c8fc27ea8c132de9f84df84b0301827530800a801ca0753ee5d896db8d87fe850e7935418587277cd9c010dfaaf7dd09b0a2e73785dca066deb3c241d532c7b880ae7a9a311ee7a92ef1c5e4e2bf3307990a2881bc13b0c0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0x7530",
+ "gasPrice" : "0x01",
+ "nonce" : "0x03",
+ "r" : "0x753ee5d896db8d87fe850e7935418587277cd9c010dfaaf7dd09b0a2e73785dc",
+ "s" : "0x66deb3c241d532c7b880ae7a9a311ee7a92ef1c5e4e2bf3307990a2881bc13b0",
+ "to" : "",
+ "v" : "0x1c",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020100",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0xcf08",
+ "hash" : "3ea47f1375ab14ee502989dc3a686a03091f93d6bd51595cc57846d44478eb58",
+ "mixHash" : "4b6cf201e184bfd641b2ed32c735cffd76164f07d9fdb1f9abbf160aa7c89314",
+ "nonce" : "e7b20e974fd69c3c",
+ "number" : "0x05",
+ "parentHash" : "61d869243d239509fea671c8e97ebf21ae357e959707054f5b4c4b30cfeb2466",
+ "receiptTrie" : "49f411805d9b0ace02b56752bf40396c5505bb7ced5f174abf02a20b623982c0",
+ "stateRoot" : "8045027de50cc67c31daed085a6e72311e4f931606c6caa9f85bfc34009b3d00",
+ "timestamp" : "0x57841842",
+ "transactionsTrie" : "165af780d27795ebc80c27759d3d949a9c4b05d35fcc7e9d3da8be357f5340cd",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "5",
+ "rlp" : "0xf9024cf901f9a061d869243d239509fea671c8e97ebf21ae357e959707054f5b4c4b30cfeb2466a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a08045027de50cc67c31daed085a6e72311e4f931606c6caa9f85bfc34009b3d00a0165af780d27795ebc80c27759d3d949a9c4b05d35fcc7e9d3da8be357f5340cda049f411805d9b0ace02b56752bf40396c5505bb7ced5f174abf02a20b623982c0b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302010005832fefba82cf08845784184280a04b6cf201e184bfd641b2ed32c735cffd76164f07d9fdb1f9abbf160aa7c8931488e7b20e974fd69c3cf84df84b040182ea60800a801ba0cb1400f01459519ac3dc0426c6d7f95641dc6a7b8008069c9dfbe4f94b167169a07445362aadae8c25e4f0b494ad553bfc652bf34fb2ed0ccbf9a6b089c2b09f62c0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x04",
+ "r" : "0xcb1400f01459519ac3dc0426c6d7f95641dc6a7b8008069c9dfbe4f94b167169",
+ "s" : "0x7445362aadae8c25e4f0b494ad553bfc652bf34fb2ed0ccbf9a6b089c2b09f62",
+ "to" : "",
+ "v" : "0x1b",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020140",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0xcf08",
+ "hash" : "751aff3599e189225eacaecb0df7646ffc76efb6896021312d9b1961b56d53bf",
+ "mixHash" : "ef4aad53ab703f0e3c99914be60a1eaf709e8f906b6fe48b11f4bd5488d4a7e8",
+ "nonce" : "db2f02f42b89a108",
+ "number" : "0x06",
+ "parentHash" : "3ea47f1375ab14ee502989dc3a686a03091f93d6bd51595cc57846d44478eb58",
+ "receiptTrie" : "5e40223bcc6a700b1d32c94ec5b7ed325345b400cf06913d4a1538d80dde375d",
+ "stateRoot" : "293f78bf5ea7fbe0c13c88d246c5d84bf917dbf39e35722ae601ea85543dee9d",
+ "timestamp" : "0x57841844",
+ "transactionsTrie" : "ef009c3c274a522a6e2ca98232fffff747bdfab79189be3e2b5e5dc54e2a51be",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "6",
+ "rlp" : "0xf9024cf901f9a03ea47f1375ab14ee502989dc3a686a03091f93d6bd51595cc57846d44478eb58a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0293f78bf5ea7fbe0c13c88d246c5d84bf917dbf39e35722ae601ea85543dee9da0ef009c3c274a522a6e2ca98232fffff747bdfab79189be3e2b5e5dc54e2a51bea05e40223bcc6a700b1d32c94ec5b7ed325345b400cf06913d4a1538d80dde375db90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302014006832fefba82cf08845784184480a0ef4aad53ab703f0e3c99914be60a1eaf709e8f906b6fe48b11f4bd5488d4a7e888db2f02f42b89a108f84df84b050182ea60800a801ba04d147b172eb81fdb11a21826eabad091084f6e9613d340b5897872843efa6435a023640d906f65fd156b92d518068263d99d94dc88c3e0950fd7633fb0d4d237eec0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x05",
+ "r" : "0x4d147b172eb81fdb11a21826eabad091084f6e9613d340b5897872843efa6435",
+ "s" : "0x23640d906f65fd156b92d518068263d99d94dc88c3e0950fd7633fb0d4d237ee",
+ "to" : "",
+ "v" : "0x1b",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020180",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0xa042",
+ "hash" : "8f3383708683f3f4f2da97f00689e7787ac6a81ca8176a7d5e81f2ca348a3d76",
+ "mixHash" : "de424d746ee6621aea630e8ff36e68c55689374d61173aae012d48991be6a1fa",
+ "nonce" : "7a4e89724f935f52",
+ "number" : "0x07",
+ "parentHash" : "751aff3599e189225eacaecb0df7646ffc76efb6896021312d9b1961b56d53bf",
+ "receiptTrie" : "e3beaaa91301cca4d98fc58b2aad310bd7bd147d4ff00f4fb5ce2b186a039f2d",
+ "stateRoot" : "219ec50b26a20c420f96b8905f669455145efef0233e52a39c2d338b52a60f8c",
+ "timestamp" : "0x57841847",
+ "transactionsTrie" : "b2d17fa171d19df4e817ffb15f38526d125a42b7879cd712584b130dc8ad341c",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "7",
+ "rlp" : "0xf90260f901f9a0751aff3599e189225eacaecb0df7646ffc76efb6896021312d9b1961b56d53bfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0219ec50b26a20c420f96b8905f669455145efef0233e52a39c2d338b52a60f8ca0b2d17fa171d19df4e817ffb15f38526d125a42b7879cd712584b130dc8ad341ca0e3beaaa91301cca4d98fc58b2aad310bd7bd147d4ff00f4fb5ce2b186a039f2db90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302018007832fefba82a042845784184780a0de424d746ee6621aea630e8ff36e68c55689374d61173aae012d48991be6a1fa887a4e89724f935f52f861f85f060182ea609410000000000000000000000000000000000000070a801ba0bb8523d4c53ed16b355d0a2dba02154d23a5480449dc3894be40ef95511d2fe9a010ad725c2df4979b7a071b3fa9b6b719223f0167d68b98f213e8611f84d4d81bc0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x06",
+ "r" : "0xbb8523d4c53ed16b355d0a2dba02154d23a5480449dc3894be40ef95511d2fe9",
+ "s" : "0x10ad725c2df4979b7a071b3fa9b6b719223f0167d68b98f213e8611f84d4d81b",
+ "to" : "1000000000000000000000000000000000000007",
+ "v" : "0x1b",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blocknumber" : "8",
+ "rlp" : "0xf9024af901e3a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808080a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80f861f85f070182ea609410000000000000000000000000000000000000080a801ba03bce709627e1c9340795f11cc866742a0b5ced2b7e2da53e0cfe6f5f1df0a77ea02df804cdb52edacc4e01d8632050101cf7de7b235d37c31b504010910ec8f1f6c0"
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x0201c0",
+ "extraData" : "0x64616f2d686172642d666f726b",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x65aa",
+ "hash" : "b5a3da40a0c9a3289547217e6b2bdf98ec35f622fc3670ab4a78cba604243f74",
+ "mixHash" : "d8f2e0030ec6a3743815995d85546abb9dd4f3e941479bc77557503271e8a40c",
+ "nonce" : "d088a735fc2388fa",
+ "number" : "0x08",
+ "parentHash" : "8f3383708683f3f4f2da97f00689e7787ac6a81ca8176a7d5e81f2ca348a3d76",
+ "receiptTrie" : "cb09490c5315ec68e121f33138f04090fb2b4a22da3f87a28c8626ec65a405cb",
+ "stateRoot" : "25c76e2a0478ceeaaf17619cfa46b1907f676cebf43fa41c857f10b1b50c8884",
+ "timestamp" : "0x5784184a",
+ "transactionsTrie" : "2982eb44bedb5b2484b9606fe37f966942a2cce51f0705537f9040ef0614d54e",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "8",
+ "rlp" : "0xf9026df90206a08f3383708683f3f4f2da97f00689e7787ac6a81ca8176a7d5e81f2ca348a3d76a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a025c76e2a0478ceeaaf17619cfa46b1907f676cebf43fa41c857f10b1b50c8884a02982eb44bedb5b2484b9606fe37f966942a2cce51f0705537f9040ef0614d54ea0cb09490c5315ec68e121f33138f04090fb2b4a22da3f87a28c8626ec65a405cbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830201c008832fefba8265aa845784184a8d64616f2d686172642d666f726ba0d8f2e0030ec6a3743815995d85546abb9dd4f3e941479bc77557503271e8a40c88d088a735fc2388faf861f85f070182ea609410000000000000000000000000000000000000080a801ba03bce709627e1c9340795f11cc866742a0b5ced2b7e2da53e0cfe6f5f1df0a77ea02df804cdb52edacc4e01d8632050101cf7de7b235d37c31b504010910ec8f1f6c0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x07",
+ "r" : "0x3bce709627e1c9340795f11cc866742a0b5ced2b7e2da53e0cfe6f5f1df0a77e",
+ "s" : "0x2df804cdb52edacc4e01d8632050101cf7de7b235d37c31b504010910ec8f1f6",
+ "to" : "1000000000000000000000000000000000000008",
+ "v" : "0x1b",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blocknumber" : "9",
+ "rlp" : "0xf9024af901e3a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808080a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80f861f85f080182ea6094100000000000000000000000000000000000000101801ba0af2bb21c6953c5c7bb966a9c09e43c52641e6e317ab738cd409a5fb9ef5e753fa010db71dc8b41e52ce746895f743c1cc1fe7ed32f17ff7935b610fcbccdc75720c0"
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020200",
+ "extraData" : "0x64616f2d686172642d666f726b",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "75fb6bea7b5262f6c59333a0031cbe96aad54b01530cd25fd0b4e500fba88e53",
+ "mixHash" : "f5646c4d022f1ac0a6b47e397cbf71fe5e8b4eed1166d6d4613bd8db53af31e0",
+ "nonce" : "5d1c3d7859173fe2",
+ "number" : "0x09",
+ "parentHash" : "b5a3da40a0c9a3289547217e6b2bdf98ec35f622fc3670ab4a78cba604243f74",
+ "receiptTrie" : "405be8d48a642e0536283f01acfb9868e4d921a1444005e8298cb83d00f82704",
+ "stateRoot" : "9082a0c78b99b419eed76e297c9367cd2613ac98684e211a10794599e1efd0b6",
+ "timestamp" : "0x57841850",
+ "transactionsTrie" : "7dac38119a2beeb72d0f67b77bef9a4cbae22ca5c7151f1e737f9db1bf37b135",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "9",
+ "rlp" : "0xf9026df90206a0b5a3da40a0c9a3289547217e6b2bdf98ec35f622fc3670ab4a78cba604243f74a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a09082a0c78b99b419eed76e297c9367cd2613ac98684e211a10794599e1efd0b6a07dac38119a2beeb72d0f67b77bef9a4cbae22ca5c7151f1e737f9db1bf37b135a0405be8d48a642e0536283f01acfb9868e4d921a1444005e8298cb83d00f82704b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302020009832fefba82520884578418508d64616f2d686172642d666f726ba0f5646c4d022f1ac0a6b47e397cbf71fe5e8b4eed1166d6d4613bd8db53af31e0885d1c3d7859173fe2f861f85f080182ea6094100000000000000000000000000000000000000101801ba0af2bb21c6953c5c7bb966a9c09e43c52641e6e317ab738cd409a5fb9ef5e753fa010db71dc8b41e52ce746895f743c1cc1fe7ed32f17ff7935b610fcbccdc75720c0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x08",
+ "r" : "0xaf2bb21c6953c5c7bb966a9c09e43c52641e6e317ab738cd409a5fb9ef5e753f",
+ "s" : "0x10db71dc8b41e52ce746895f743c1cc1fe7ed32f17ff7935b610fcbccdc75720",
+ "to" : "1000000000000000000000000000000000000001",
+ "v" : "0x1b",
+ "value" : "0x01"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blocknumber" : "10",
+ "rlp" : "0xf9024af901e3a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808080a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80f861f85f090182ea6094100000000000000000000000000000000000000101801ca0c3d783e93561599d86cbf460e153b3cb37d90478a3c47bfc08bd29563c9d849fa0100e466f7a4c6af73a9030988c63ec88ccaba460fd6a1fb1adc30b61dbdd0857c0"
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020240",
+ "extraData" : "0x64616f2d686172642d666f726b",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "100b63b0e3299ab19fb63aba60f7d07c7acd3e8087aac70dcf9d25166004e041",
+ "mixHash" : "80a13747b86bbc91adeb95e2e375bcc4a701b52551a7a38ffa00a95a18754529",
+ "nonce" : "befc37a5a99c6642",
+ "number" : "0x0a",
+ "parentHash" : "75fb6bea7b5262f6c59333a0031cbe96aad54b01530cd25fd0b4e500fba88e53",
+ "receiptTrie" : "7816771f20df86ba51fe1b9b124be162607d9a74753fbcec73e7fd0e4b803fc8",
+ "stateRoot" : "14baa5da9e9e7b864d11a6ab7c75d49f3582ef61566bc06ac825894eab40dd47",
+ "timestamp" : "0x57841857",
+ "transactionsTrie" : "771cef5982e1119f26a627bbeeadc21e350838157aad275b2f4a884a57e277da",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "10",
+ "rlp" : "0xf9026df90206a075fb6bea7b5262f6c59333a0031cbe96aad54b01530cd25fd0b4e500fba88e53a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a014baa5da9e9e7b864d11a6ab7c75d49f3582ef61566bc06ac825894eab40dd47a0771cef5982e1119f26a627bbeeadc21e350838157aad275b2f4a884a57e277daa07816771f20df86ba51fe1b9b124be162607d9a74753fbcec73e7fd0e4b803fc8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830202400a832fefba82520884578418578d64616f2d686172642d666f726ba080a13747b86bbc91adeb95e2e375bcc4a701b52551a7a38ffa00a95a1875452988befc37a5a99c6642f861f85f090182ea6094100000000000000000000000000000000000000101801ca0c3d783e93561599d86cbf460e153b3cb37d90478a3c47bfc08bd29563c9d849fa0100e466f7a4c6af73a9030988c63ec88ccaba460fd6a1fb1adc30b61dbdd0857c0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x09",
+ "r" : "0xc3d783e93561599d86cbf460e153b3cb37d90478a3c47bfc08bd29563c9d849f",
+ "s" : "0x100e466f7a4c6af73a9030988c63ec88ccaba460fd6a1fb1adc30b61dbdd0857",
+ "to" : "1000000000000000000000000000000000000001",
+ "v" : "0x1c",
+ "value" : "0x01"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blocknumber" : "11",
+ "rlp" : "0xf9024af901e3a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808080a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80f861f85f0a0182ea6094100000000000000000000000000000000000000101801ca076766ba9925c43448e1ac5c05f7583e6d3a3366eb3dc95a3489ff363b449795ca059b8da33b7aea0d60059f5c1eabce26c1e23e32f31930bff3b49eb1e94cc62a0c0"
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020280",
+ "extraData" : "0x64616f2d686172642d666f726b",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "d4c78a452f10b91e8304036c4bedf785c6af7eafc0804d09bd99a97d9d351047",
+ "mixHash" : "33f7624d4eefc93d4ae8be542be7bbb491071545d50433a9bf0bedd431a2c20f",
+ "nonce" : "bc754783c3b558ce",
+ "number" : "0x0b",
+ "parentHash" : "100b63b0e3299ab19fb63aba60f7d07c7acd3e8087aac70dcf9d25166004e041",
+ "receiptTrie" : "76c1e3d0c78e8ddf32608b571a8bbcf6ec06ad6e4d832b1527be8bcdc9e8babc",
+ "stateRoot" : "745349a2480a86c28aa035ce47b40f8f5045efefac899c3ed9265103427043dd",
+ "timestamp" : "0x5784185b",
+ "transactionsTrie" : "10a81573cb14d5c2794e1b406e26b6d9612c888bbc98c453131bd9b06f61d7c9",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "11",
+ "rlp" : "0xf9026df90206a0100b63b0e3299ab19fb63aba60f7d07c7acd3e8087aac70dcf9d25166004e041a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0745349a2480a86c28aa035ce47b40f8f5045efefac899c3ed9265103427043dda010a81573cb14d5c2794e1b406e26b6d9612c888bbc98c453131bd9b06f61d7c9a076c1e3d0c78e8ddf32608b571a8bbcf6ec06ad6e4d832b1527be8bcdc9e8babcb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830202800b832fefba825208845784185b8d64616f2d686172642d666f726ba033f7624d4eefc93d4ae8be542be7bbb491071545d50433a9bf0bedd431a2c20f88bc754783c3b558cef861f85f0a0182ea6094100000000000000000000000000000000000000101801ca076766ba9925c43448e1ac5c05f7583e6d3a3366eb3dc95a3489ff363b449795ca059b8da33b7aea0d60059f5c1eabce26c1e23e32f31930bff3b49eb1e94cc62a0c0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x0a",
+ "r" : "0x76766ba9925c43448e1ac5c05f7583e6d3a3366eb3dc95a3489ff363b449795c",
+ "s" : "0x59b8da33b7aea0d60059f5c1eabce26c1e23e32f31930bff3b49eb1e94cc62a0",
+ "to" : "1000000000000000000000000000000000000001",
+ "v" : "0x1c",
+ "value" : "0x01"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blocknumber" : "12",
+ "rlp" : "0xf9024af901e3a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808080a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80f861f85f0b0182ea6094100000000000000000000000000000000000000101801ca085939abfa5d1d2dd8e1bde2655e44236d8e1940a075000301d6deab472ccd680a078d2ae659006c58f9ccc5af29955f7439e48b30b2efe64abdd001165364faa9ac0"
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x0202c0",
+ "extraData" : "0x64616f2d686172642d666f726b",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "9a44d656e43bae2658cae5f762cdcf92814be00d0970a5ef8d132e903ac46b9c",
+ "mixHash" : "ed2e1f031ae953c82356f176a7c1341f6f8d3bd30e7df1d92c1b58773cbe499b",
+ "nonce" : "34be99b812a970ba",
+ "number" : "0x0c",
+ "parentHash" : "d4c78a452f10b91e8304036c4bedf785c6af7eafc0804d09bd99a97d9d351047",
+ "receiptTrie" : "7cced79fcdebd96670df83f4c13f71aa9cb3dbce19df27f7f6ff8b12fef91282",
+ "stateRoot" : "40ef6bb351314ea48ab6462f2cabcf96ee476cec1f4670919f90efb2a5956ab3",
+ "timestamp" : "0x57841860",
+ "transactionsTrie" : "b7757adef51c8c3b9b0433d1a0db70fe5505e8db1848934da1c1d2c6aafc3f65",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "12",
+ "rlp" : "0xf9026df90206a0d4c78a452f10b91e8304036c4bedf785c6af7eafc0804d09bd99a97d9d351047a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a040ef6bb351314ea48ab6462f2cabcf96ee476cec1f4670919f90efb2a5956ab3a0b7757adef51c8c3b9b0433d1a0db70fe5505e8db1848934da1c1d2c6aafc3f65a07cced79fcdebd96670df83f4c13f71aa9cb3dbce19df27f7f6ff8b12fef91282b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830202c00c832fefba82520884578418608d64616f2d686172642d666f726ba0ed2e1f031ae953c82356f176a7c1341f6f8d3bd30e7df1d92c1b58773cbe499b8834be99b812a970baf861f85f0b0182ea6094100000000000000000000000000000000000000101801ca085939abfa5d1d2dd8e1bde2655e44236d8e1940a075000301d6deab472ccd680a078d2ae659006c58f9ccc5af29955f7439e48b30b2efe64abdd001165364faa9ac0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x0b",
+ "r" : "0x85939abfa5d1d2dd8e1bde2655e44236d8e1940a075000301d6deab472ccd680",
+ "s" : "0x78d2ae659006c58f9ccc5af29955f7439e48b30b2efe64abdd001165364faa9a",
+ "to" : "1000000000000000000000000000000000000001",
+ "v" : "0x1c",
+ "value" : "0x01"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blocknumber" : "13",
+ "rlp" : "0xf9024af901e3a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808080a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80f861f85f0c0182ea6094100000000000000000000000000000000000000101801ca00bb5ae599741966cbd02d6080937bd1f247dfaa266e19891228a4fbfc0c85226a07a4f56371aa5b685bc10d64e180e24850ae18b0fcc675e7d187f877b8d9b1bf6c0"
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020300",
+ "extraData" : "0x64616f2d686172642d666f726b",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "b8850efdb301eb5c7447ce128d13a57b41fe96e315add511e568153b3c6b63fb",
+ "mixHash" : "43d22de0da39f2221c0f432a514c23bf92e8fad5a1c125f03e601f2a098825a8",
+ "nonce" : "26641ca64753ace9",
+ "number" : "0x0d",
+ "parentHash" : "9a44d656e43bae2658cae5f762cdcf92814be00d0970a5ef8d132e903ac46b9c",
+ "receiptTrie" : "27206e196468a999013a22f5ad0a2747cba1311e0398bb601fda5570045753b8",
+ "stateRoot" : "be645d0bc31a6df9f0df1ff766d651e5253eeaa750c9d6eea98349a4c2b26679",
+ "timestamp" : "0x57841865",
+ "transactionsTrie" : "38b9ac6344a8e2cdd0c0b598f70f21997ab1b39d3ecb2f7a8c7af93e300e0398",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "13",
+ "rlp" : "0xf9026df90206a09a44d656e43bae2658cae5f762cdcf92814be00d0970a5ef8d132e903ac46b9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0be645d0bc31a6df9f0df1ff766d651e5253eeaa750c9d6eea98349a4c2b26679a038b9ac6344a8e2cdd0c0b598f70f21997ab1b39d3ecb2f7a8c7af93e300e0398a027206e196468a999013a22f5ad0a2747cba1311e0398bb601fda5570045753b8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830203000d832fefba82520884578418658d64616f2d686172642d666f726ba043d22de0da39f2221c0f432a514c23bf92e8fad5a1c125f03e601f2a098825a88826641ca64753ace9f861f85f0c0182ea6094100000000000000000000000000000000000000101801ca00bb5ae599741966cbd02d6080937bd1f247dfaa266e19891228a4fbfc0c85226a07a4f56371aa5b685bc10d64e180e24850ae18b0fcc675e7d187f877b8d9b1bf6c0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x0c",
+ "r" : "0x0bb5ae599741966cbd02d6080937bd1f247dfaa266e19891228a4fbfc0c85226",
+ "s" : "0x7a4f56371aa5b685bc10d64e180e24850ae18b0fcc675e7d187f877b8d9b1bf6",
+ "to" : "1000000000000000000000000000000000000001",
+ "v" : "0x1c",
+ "value" : "0x01"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blocknumber" : "14",
+ "rlp" : "0xf9024af901e3a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808080a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80f861f85f0d0182ea6094100000000000000000000000000000000000000101801ba0db8f9cd690ad1f6481c09a5445a4185d4fcfdeed76f7ba403d303985c1abaa4ca01ed5f2e9fd9a021103acc910cbefcdaa82d2afd44205a8f681f0c17ebf2da192c0"
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020340",
+ "extraData" : "0x64616f2d686172642d666f726b",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "483ef5a4d87e34de0395aab47209e1dad3d8856cd1610fcfa0d89c7588ca9be6",
+ "mixHash" : "00a3e3d8ad7aa53abb76d5d3fb82e4ba90f965c42df18282d4c48b28625e8637",
+ "nonce" : "1f177ba198c06d71",
+ "number" : "0x0e",
+ "parentHash" : "b8850efdb301eb5c7447ce128d13a57b41fe96e315add511e568153b3c6b63fb",
+ "receiptTrie" : "3219cbaae09e7a53589bfa9a65ef4dd7e37b8d631a65b3dfbcbba13bdc3cdb05",
+ "stateRoot" : "ffcc7e2a5c78d83c28d38494c8f432971d60fc23e8461c400880e59c9f22f2e6",
+ "timestamp" : "0x5784186d",
+ "transactionsTrie" : "4b6ff42fd8884c83615bf62830df849b18901c07615aafef9aaf16d33f807349",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "14",
+ "rlp" : "0xf9026df90206a0b8850efdb301eb5c7447ce128d13a57b41fe96e315add511e568153b3c6b63fba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0ffcc7e2a5c78d83c28d38494c8f432971d60fc23e8461c400880e59c9f22f2e6a04b6ff42fd8884c83615bf62830df849b18901c07615aafef9aaf16d33f807349a03219cbaae09e7a53589bfa9a65ef4dd7e37b8d631a65b3dfbcbba13bdc3cdb05b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830203400e832fefba825208845784186d8d64616f2d686172642d666f726ba000a3e3d8ad7aa53abb76d5d3fb82e4ba90f965c42df18282d4c48b28625e8637881f177ba198c06d71f861f85f0d0182ea6094100000000000000000000000000000000000000101801ba0db8f9cd690ad1f6481c09a5445a4185d4fcfdeed76f7ba403d303985c1abaa4ca01ed5f2e9fd9a021103acc910cbefcdaa82d2afd44205a8f681f0c17ebf2da192c0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x0d",
+ "r" : "0xdb8f9cd690ad1f6481c09a5445a4185d4fcfdeed76f7ba403d303985c1abaa4c",
+ "s" : "0x1ed5f2e9fd9a021103acc910cbefcdaa82d2afd44205a8f681f0c17ebf2da192",
+ "to" : "1000000000000000000000000000000000000001",
+ "v" : "0x1b",
+ "value" : "0x01"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blocknumber" : "15",
+ "rlp" : "0xf9024af901e3a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808080a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80f861f85f0e0182ea6094100000000000000000000000000000000000000101801ca0af8f37a08239d55138f8b92680c682d4118da357c79d6a6b148a6dcce4d961d1a057bf5b29fc32419091bd8e170fed46703b7a2640be0ca91d6903d75c932be160c0"
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020380",
+ "extraData" : "0x64616f2d686172642d666f726b",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "2db651651bc9b9de8ee2fde8f3010d00105228ec8813f64dc822b2888fec3f1b",
+ "mixHash" : "3a9f5ef26ddbcd73f204d721be133e41aaf51a17fa5e66eb88f618cb28cb32ca",
+ "nonce" : "35f2bfb5c5240df8",
+ "number" : "0x0f",
+ "parentHash" : "483ef5a4d87e34de0395aab47209e1dad3d8856cd1610fcfa0d89c7588ca9be6",
+ "receiptTrie" : "3f8e538224b10251d17ea50eef083205f714f89dd10b1338df828c2fd14da074",
+ "stateRoot" : "da5a9eb135d2a19f28da52eda0fcff26d26326dac4c622d6b2f0d7a6873ab27c",
+ "timestamp" : "0x57841873",
+ "transactionsTrie" : "ce025c4f49fea19fbb8b91252f03fd36d2ff6e9e8817c701452992098534abda",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "15",
+ "rlp" : "0xf9026df90206a0483ef5a4d87e34de0395aab47209e1dad3d8856cd1610fcfa0d89c7588ca9be6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0da5a9eb135d2a19f28da52eda0fcff26d26326dac4c622d6b2f0d7a6873ab27ca0ce025c4f49fea19fbb8b91252f03fd36d2ff6e9e8817c701452992098534abdaa03f8e538224b10251d17ea50eef083205f714f89dd10b1338df828c2fd14da074b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830203800f832fefba82520884578418738d64616f2d686172642d666f726ba03a9f5ef26ddbcd73f204d721be133e41aaf51a17fa5e66eb88f618cb28cb32ca8835f2bfb5c5240df8f861f85f0e0182ea6094100000000000000000000000000000000000000101801ca0af8f37a08239d55138f8b92680c682d4118da357c79d6a6b148a6dcce4d961d1a057bf5b29fc32419091bd8e170fed46703b7a2640be0ca91d6903d75c932be160c0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x0e",
+ "r" : "0xaf8f37a08239d55138f8b92680c682d4118da357c79d6a6b148a6dcce4d961d1",
+ "s" : "0x57bf5b29fc32419091bd8e170fed46703b7a2640be0ca91d6903d75c932be160",
+ "to" : "1000000000000000000000000000000000000001",
+ "v" : "0x1c",
+ "value" : "0x01"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blocknumber" : "16",
+ "rlp" : "0xf9024af901e3a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808080a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80f861f85f0f0182ea6094100000000000000000000000000000000000000101801ba040a5467881266422758d59ae66fb3d2511f0131038b0e43abc397d01527fd61ea0172ed4b9c3cf917bf071cb6cc716c4f6754949ea94888d4bb9657eac98fd2c10c0"
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x0203c0",
+ "extraData" : "0x64616f2d686172642d666f726b",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "5f540caeaf2f3c961294d8860d2ab017812a389ab6cc3f2f14e47eebd01d00b1",
+ "mixHash" : "d91a6678bb92661c4b93ceac8fb6333526d8c068205eecd7d4e9e676aaaaa92c",
+ "nonce" : "41d6873a13454eeb",
+ "number" : "0x10",
+ "parentHash" : "2db651651bc9b9de8ee2fde8f3010d00105228ec8813f64dc822b2888fec3f1b",
+ "receiptTrie" : "cb5e5d42756e48dfe3c93e5656cb7367090c1406ddb6a47f71058cb96de158f0",
+ "stateRoot" : "7d9e18f987e1e0f6244158d2c75dc881e28cdc3b54da6ad3d6743e630d11674f",
+ "timestamp" : "0x57841878",
+ "transactionsTrie" : "6f2130deb628c7742532339d5b5f1539f9579edcab16996b3b05836a6883073f",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "16",
+ "rlp" : "0xf9026df90206a02db651651bc9b9de8ee2fde8f3010d00105228ec8813f64dc822b2888fec3f1ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a07d9e18f987e1e0f6244158d2c75dc881e28cdc3b54da6ad3d6743e630d11674fa06f2130deb628c7742532339d5b5f1539f9579edcab16996b3b05836a6883073fa0cb5e5d42756e48dfe3c93e5656cb7367090c1406ddb6a47f71058cb96de158f0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830203c010832fefba82520884578418788d64616f2d686172642d666f726ba0d91a6678bb92661c4b93ceac8fb6333526d8c068205eecd7d4e9e676aaaaa92c8841d6873a13454eebf861f85f0f0182ea6094100000000000000000000000000000000000000101801ba040a5467881266422758d59ae66fb3d2511f0131038b0e43abc397d01527fd61ea0172ed4b9c3cf917bf071cb6cc716c4f6754949ea94888d4bb9657eac98fd2c10c0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x0f",
+ "r" : "0x40a5467881266422758d59ae66fb3d2511f0131038b0e43abc397d01527fd61e",
+ "s" : "0x172ed4b9c3cf917bf071cb6cc716c4f6754949ea94888d4bb9657eac98fd2c10",
+ "to" : "1000000000000000000000000000000000000001",
+ "v" : "0x1b",
+ "value" : "0x01"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blocknumber" : "17",
+ "rlp" : "0xf9024af901e3a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808080a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80f861f85f100182ea6094100000000000000000000000000000000000000101801ba0d7933ba406ea332cdec2d673bbf5789c34a43224629c220bd0ac2c9d81c7b094a05e0a096cbe3bdc9047b18de6be4822165c669bddf712456567dc525547059ff8c0"
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020400",
+ "extraData" : "0x64616f2d686172642d666f726b",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "80df908d16953ad446881da97171b51d48bbb364d5281d74cd264f5906174a2b",
+ "mixHash" : "df9d86c5d0211102f0d2909b56c12e0e3604ec6e4a212f5db3e31eadb4588c87",
+ "nonce" : "c9b346aea491dfd5",
+ "number" : "0x11",
+ "parentHash" : "5f540caeaf2f3c961294d8860d2ab017812a389ab6cc3f2f14e47eebd01d00b1",
+ "receiptTrie" : "eea278a71391069b01fd9759bafca57b149bc9d6dc212bdddaa2f378e0ecfe95",
+ "stateRoot" : "c0f43306d07073f10d93dcf01bd8dada0eceedb213eed501801a13f2b205e333",
+ "timestamp" : "0x5784187d",
+ "transactionsTrie" : "316f3430ee504cbaa58cec2ce451de2fc9e0f1e7f99b16b33f69ab3ca93130be",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "17",
+ "rlp" : "0xf9026df90206a05f540caeaf2f3c961294d8860d2ab017812a389ab6cc3f2f14e47eebd01d00b1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0c0f43306d07073f10d93dcf01bd8dada0eceedb213eed501801a13f2b205e333a0316f3430ee504cbaa58cec2ce451de2fc9e0f1e7f99b16b33f69ab3ca93130bea0eea278a71391069b01fd9759bafca57b149bc9d6dc212bdddaa2f378e0ecfe95b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302040011832fefba825208845784187d8d64616f2d686172642d666f726ba0df9d86c5d0211102f0d2909b56c12e0e3604ec6e4a212f5db3e31eadb4588c8788c9b346aea491dfd5f861f85f100182ea6094100000000000000000000000000000000000000101801ba0d7933ba406ea332cdec2d673bbf5789c34a43224629c220bd0ac2c9d81c7b094a05e0a096cbe3bdc9047b18de6be4822165c669bddf712456567dc525547059ff8c0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x10",
+ "r" : "0xd7933ba406ea332cdec2d673bbf5789c34a43224629c220bd0ac2c9d81c7b094",
+ "s" : "0x5e0a096cbe3bdc9047b18de6be4822165c669bddf712456567dc525547059ff8",
+ "to" : "1000000000000000000000000000000000000001",
+ "v" : "0x1b",
+ "value" : "0x01"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ }
+ ],
+ "genesisBlockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020000",
+ "extraData" : "0x42",
+ "gasLimit" : "0x2fefd8",
+ "gasUsed" : "0x00",
+ "hash" : "eb310def4877fc94c3945bdabd9ba6bbafff1c74944b2bd74a4ac01f0868804c",
+ "mixHash" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "nonce" : "0102030405060708",
+ "number" : "0x00",
+ "parentHash" : "0000000000000000000000000000000000000000000000000000000000000000",
+ "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "stateRoot" : "4eda2e603f5b9ad6e92c0cba602372d0a0cd2e776a17b61a7a20225ffa7643d7",
+ "timestamp" : "0x54c98c81",
+ "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "genesisRLP" : "0xf901fcf901f7a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a04eda2e603f5b9ad6e92c0cba602372d0a0cd2e776a17b61a7a20225ffa7643d7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302000080832fefd8808454c98c8142a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421880102030405060708c0c0",
+ "lastblockhash" : "80df908d16953ad446881da97171b51d48bbb364d5281d74cd264f5906174a2b",
+ "postState" : {
+ "0c243ebe6a031753dc0dd850acf422844a3efb76" : {
+ "balance" : "0x0a",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "1000000000000000000000000000000000000001" : {
+ "balance" : "0x09",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "1000000000000000000000000000000000000007" : {
+ "balance" : "0x0a",
+ "code" : "0x73807640a13483f8ac783c557fcdf27be11ea4ac7a31600055",
+ "nonce" : "0x00",
+ "storage" : {
+ "0x00" : "0x02540be400"
+ }
+ },
+ "1000000000000000000000000000000000000008" : {
+ "balance" : "0x0a",
+ "code" : "0x73807640a13483f8ac783c557fcdf27be11ea4ac7a31600055",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "17802f43a0137c506ba92291391a8a8f207f487d" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "248f0f0f33eadb89e9d87fd5c127f58567f3ffde" : {
+ "balance" : "0x0a",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "2b3455ec7fedf16e646268bf88846bd7a2319bb2" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "304a554a310c7e546dfe434669c62820b7d83490" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "4613f3bca5c44ea06337a9e439fbc6d42e501d0a" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : {
+ "balance" : "0x0a",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "7602b46df5390e432ef1c307d4f2c9ff6d65cc97" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "807640a13483f8ac783c557fcdf27be11ea4ac7a" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "84ef4b2357079cd7a7c69fd7a37cd0609a679106" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "85c2f277588ea1e6901ed59e587bea222c575f87" : {
+ "balance" : "0x0a",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "8888f1f195afa192cfee860698584c030f4c9db1" : {
+ "balance" : "0x049b9ca9a6943ace64",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "914d1b8b43e92723e64fd0a06f5bdb8dd9b10c79" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "0x3b93fb43",
+ "code" : "0x",
+ "nonce" : "0x11",
+ "storage" : {
+ }
+ },
+ "abcabcabcabcabcabcabcabcabcabcabcabcabca" : {
+ "balance" : "0x2c3cf12e40",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "accc230e8a6e5be9160b8cdf2864dd2a001c28b6" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "aeeb8ff27288bdabc0fa5ebb731b6f409507516c" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "b136707642a4ea12fb4bae820f03d2562ebff487" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "b1d37cf6180ceb738ca45b5005a2f418c02e204b" : {
+ "balance" : "0x0a",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "bb9bc244d798123fde783fcc1c72d3bb8c189413" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "ca544e5c4687d109611d0f8f928b53a25af72448" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "cbb9d3703e651b0d496cdefb8b92c25aeb2171f7" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "d343b217de44030afaa275f54d31a9317c7f441e" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "da2fef9e4a3230988ff17df2165440f37e8b1708" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "dbe9b615a3ae8709af8b93336ce9b477e4ac0940" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : {
+ "balance" : "0x0a",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "f14c14075d6c4ed84b86798af0956deef67365b5" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "f4c64518ea10f995918a454158c6b61407ea345c" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "fe24cdd8648121a43a7c86d289be4dd2951ed49f" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "1000000000000000000000000000000000000007" : {
+ "balance" : "0x00",
+ "code" : "0x73807640a13483f8ac783c557fcdf27be11ea4ac7a31600055",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "1000000000000000000000000000000000000008" : {
+ "balance" : "0x00",
+ "code" : "0x73807640a13483f8ac783c557fcdf27be11ea4ac7a31600055",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "17802f43a0137c506ba92291391a8a8f207f487d" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "2b3455ec7fedf16e646268bf88846bd7a2319bb2" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "304a554a310c7e546dfe434669c62820b7d83490" : {
+ "balance" : "0x0f4240",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "4613f3bca5c44ea06337a9e439fbc6d42e501d0a" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "7602b46df5390e432ef1c307d4f2c9ff6d65cc97" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "807640a13483f8ac783c557fcdf27be11ea4ac7a" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "84ef4b2357079cd7a7c69fd7a37cd0609a679106" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "914d1b8b43e92723e64fd0a06f5bdb8dd9b10c79" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "0x3b9aca00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "accc230e8a6e5be9160b8cdf2864dd2a001c28b6" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "aeeb8ff27288bdabc0fa5ebb731b6f409507516c" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "b136707642a4ea12fb4bae820f03d2562ebff487" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "bb9bc244d798123fde783fcc1c72d3bb8c189413" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "ca544e5c4687d109611d0f8f928b53a25af72448" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "cbb9d3703e651b0d496cdefb8b92c25aeb2171f7" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "d343b217de44030afaa275f54d31a9317c7f441e" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "da2fef9e4a3230988ff17df2165440f37e8b1708" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "dbe9b615a3ae8709af8b93336ce9b477e4ac0940" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "f14c14075d6c4ed84b86798af0956deef67365b5" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "f4c64518ea10f995918a454158c6b61407ea345c" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "fe24cdd8648121a43a7c86d289be4dd2951ed49f" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "DaoTransactions_EmptyTransactionAndForkBlocksAhead" : {
+ "blocks" : [
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020000",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "937efbc24fab15f0dd8240830cd829997bc29516803f6dfac950b441f2821827",
+ "mixHash" : "029cb30edc14a5d27511f6e26586b35cdc9fcc65d8fbe0f5d4b6067cc29c2736",
+ "nonce" : "ffbe57d4c0758b04",
+ "number" : "0x01",
+ "parentHash" : "eb310def4877fc94c3945bdabd9ba6bbafff1c74944b2bd74a4ac01f0868804c",
+ "receiptTrie" : "63e81aadc86aed2ebe147fd86db74d8fbe91a938af0521be549669246e607443",
+ "stateRoot" : "421450c5fcaa516f03635983f0c9d936574721033424eac5e6d71c8fa14b766f",
+ "timestamp" : "0x57841881",
+ "transactionsTrie" : "ac81275d7a81a720240146377982939179218535bfcfa9469c8bdd3e264ef179",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "1",
+ "rlp" : "0xf9024cf901f9a0eb310def4877fc94c3945bdabd9ba6bbafff1c74944b2bd74a4ac01f0868804ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0421450c5fcaa516f03635983f0c9d936574721033424eac5e6d71c8fa14b766fa0ac81275d7a81a720240146377982939179218535bfcfa9469c8bdd3e264ef179a063e81aadc86aed2ebe147fd86db74d8fbe91a938af0521be549669246e607443b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302000001832fefba825208845784188180a0029cb30edc14a5d27511f6e26586b35cdc9fcc65d8fbe0f5d4b6067cc29c273688ffbe57d4c0758b04f84df84b8001827530800a801ca057cb46c0b702929c4fd4127b2370f28a7aeeaa65509699e58eedf7692090a0a9a05ba7c83d99be6a9bca0c81947023ba3b5f2162516d82d0757bf8004f3e9bc03ac0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0x7530",
+ "gasPrice" : "0x01",
+ "nonce" : "0x00",
+ "r" : "0x57cb46c0b702929c4fd4127b2370f28a7aeeaa65509699e58eedf7692090a0a9",
+ "s" : "0x5ba7c83d99be6a9bca0c81947023ba3b5f2162516d82d0757bf8004f3e9bc03a",
+ "to" : "",
+ "v" : "0x1c",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020040",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "273e426aad419e2e52632faf3ebf0c5c5ae91545e3c4afe0ad245bf8ce01c5d2",
+ "mixHash" : "16de5d01c0070ace027223feb02c75f7c53f7c456225e6102ca0797e735054dd",
+ "nonce" : "9e1ddcd0bbf5714e",
+ "number" : "0x02",
+ "parentHash" : "937efbc24fab15f0dd8240830cd829997bc29516803f6dfac950b441f2821827",
+ "receiptTrie" : "b41287e7f7e5d2983862a73e54c86ec144ecf835096984770f6bf485188268b8",
+ "stateRoot" : "1e31d34b22a8d2fd9893bb58fa80e6ca4561320eed43776c295acca93721847c",
+ "timestamp" : "0x57841884",
+ "transactionsTrie" : "76c7a0ce7644661f276c76fb9a82eaee879d0642cf4ed244fc10afc02c646abf",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "2",
+ "rlp" : "0xf9024cf901f9a0937efbc24fab15f0dd8240830cd829997bc29516803f6dfac950b441f2821827a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a01e31d34b22a8d2fd9893bb58fa80e6ca4561320eed43776c295acca93721847ca076c7a0ce7644661f276c76fb9a82eaee879d0642cf4ed244fc10afc02c646abfa0b41287e7f7e5d2983862a73e54c86ec144ecf835096984770f6bf485188268b8b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302004002832fefba825208845784188480a016de5d01c0070ace027223feb02c75f7c53f7c456225e6102ca0797e735054dd889e1ddcd0bbf5714ef84df84b0101827530800a801ca0bb6e3cf3f281af13ef1393d7052b03cab367079a9eb71aa829ec72b231a60e1fa04bcfe1da53f26bb95806d38e9f42fef262aaaf5191e16ec473a695c8978a0b05c0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0x7530",
+ "gasPrice" : "0x01",
+ "nonce" : "0x01",
+ "r" : "0xbb6e3cf3f281af13ef1393d7052b03cab367079a9eb71aa829ec72b231a60e1f",
+ "s" : "0x4bcfe1da53f26bb95806d38e9f42fef262aaaf5191e16ec473a695c8978a0b05",
+ "to" : "",
+ "v" : "0x1c",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020080",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "ef571b4f2c09362d41b8e895a66c1833790821efc6d7a6007f0c6b05d74f54f3",
+ "mixHash" : "8749f616289bd7d0d2c800a744d9f01e84b46c69773e513d75deaae814158a11",
+ "nonce" : "5aba904fb7f5b3a4",
+ "number" : "0x03",
+ "parentHash" : "273e426aad419e2e52632faf3ebf0c5c5ae91545e3c4afe0ad245bf8ce01c5d2",
+ "receiptTrie" : "12f61177f6c2cebe14df5474c8b8c1f8f47f4ea8fff7f8b22b7aa8a4156581c8",
+ "stateRoot" : "587518607d6c98344439896e7f39111d76a8aac09b70d624e237da6fa29bbc44",
+ "timestamp" : "0x57841886",
+ "transactionsTrie" : "3798aa164b61e27b93484c76a5f319bd93c808dc78ef31cf8b93f4e1b248ca2c",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "3",
+ "rlp" : "0xf9024cf901f9a0273e426aad419e2e52632faf3ebf0c5c5ae91545e3c4afe0ad245bf8ce01c5d2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0587518607d6c98344439896e7f39111d76a8aac09b70d624e237da6fa29bbc44a03798aa164b61e27b93484c76a5f319bd93c808dc78ef31cf8b93f4e1b248ca2ca012f61177f6c2cebe14df5474c8b8c1f8f47f4ea8fff7f8b22b7aa8a4156581c8b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302008003832fefba825208845784188680a08749f616289bd7d0d2c800a744d9f01e84b46c69773e513d75deaae814158a11885aba904fb7f5b3a4f84df84b0201827530800a801ca0f6d884cae1f86bdff1281e95e416089c544a4a5578a75d5e8ad76118e341b055a075b7d88985ed5acd61f30c9f9570c6c33bb92f3ad1a32b86a0747817fbc5ededc0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0x7530",
+ "gasPrice" : "0x01",
+ "nonce" : "0x02",
+ "r" : "0xf6d884cae1f86bdff1281e95e416089c544a4a5578a75d5e8ad76118e341b055",
+ "s" : "0x75b7d88985ed5acd61f30c9f9570c6c33bb92f3ad1a32b86a0747817fbc5eded",
+ "to" : "",
+ "v" : "0x1c",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x0200c0",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "bc0b83cc861213d619f8c519d91e0bc4c265b7ad28bb9b466406abbb5e570731",
+ "mixHash" : "c17cdf1351527cbb80c12d2317b0301146be41b12a4bd19203d5d9dd2d8881a6",
+ "nonce" : "9921b6ed78a9f3cc",
+ "number" : "0x04",
+ "parentHash" : "ef571b4f2c09362d41b8e895a66c1833790821efc6d7a6007f0c6b05d74f54f3",
+ "receiptTrie" : "4346f81bc8c58aa684049309decc863c93cd6cdc84c592b62bd1439eee3636ac",
+ "stateRoot" : "c8ba761363f3cb1958f01fd55b864bcba7f33324ba4f95e60fc9e48d9ba6777a",
+ "timestamp" : "0x57841888",
+ "transactionsTrie" : "4cc1b34b3a9d29bf69842a54e1c48bc97afc433883f66d2c59287f118c9c3c2c",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "4",
+ "rlp" : "0xf9024cf901f9a0ef571b4f2c09362d41b8e895a66c1833790821efc6d7a6007f0c6b05d74f54f3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0c8ba761363f3cb1958f01fd55b864bcba7f33324ba4f95e60fc9e48d9ba6777aa04cc1b34b3a9d29bf69842a54e1c48bc97afc433883f66d2c59287f118c9c3c2ca04346f81bc8c58aa684049309decc863c93cd6cdc84c592b62bd1439eee3636acb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200c004832fefba825208845784188880a0c17cdf1351527cbb80c12d2317b0301146be41b12a4bd19203d5d9dd2d8881a6889921b6ed78a9f3ccf84df84b0301827530800a801ca0753ee5d896db8d87fe850e7935418587277cd9c010dfaaf7dd09b0a2e73785dca066deb3c241d532c7b880ae7a9a311ee7a92ef1c5e4e2bf3307990a2881bc13b0c0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0x7530",
+ "gasPrice" : "0x01",
+ "nonce" : "0x03",
+ "r" : "0x753ee5d896db8d87fe850e7935418587277cd9c010dfaaf7dd09b0a2e73785dc",
+ "s" : "0x66deb3c241d532c7b880ae7a9a311ee7a92ef1c5e4e2bf3307990a2881bc13b0",
+ "to" : "",
+ "v" : "0x1c",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020100",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0xcf08",
+ "hash" : "6329ec33ae4921ac483119c459d9b433c988ecbf1dab47a42f04b7fa460a4ac1",
+ "mixHash" : "79b2376a8bb88ec4b89dfc2c8d64316d958b43592f2792801e4de93fbcc682da",
+ "nonce" : "67d3fb68ffa629d2",
+ "number" : "0x05",
+ "parentHash" : "bc0b83cc861213d619f8c519d91e0bc4c265b7ad28bb9b466406abbb5e570731",
+ "receiptTrie" : "49f411805d9b0ace02b56752bf40396c5505bb7ced5f174abf02a20b623982c0",
+ "stateRoot" : "8045027de50cc67c31daed085a6e72311e4f931606c6caa9f85bfc34009b3d00",
+ "timestamp" : "0x5784188a",
+ "transactionsTrie" : "165af780d27795ebc80c27759d3d949a9c4b05d35fcc7e9d3da8be357f5340cd",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "5",
+ "rlp" : "0xf9024cf901f9a0bc0b83cc861213d619f8c519d91e0bc4c265b7ad28bb9b466406abbb5e570731a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a08045027de50cc67c31daed085a6e72311e4f931606c6caa9f85bfc34009b3d00a0165af780d27795ebc80c27759d3d949a9c4b05d35fcc7e9d3da8be357f5340cda049f411805d9b0ace02b56752bf40396c5505bb7ced5f174abf02a20b623982c0b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302010005832fefba82cf08845784188a80a079b2376a8bb88ec4b89dfc2c8d64316d958b43592f2792801e4de93fbcc682da8867d3fb68ffa629d2f84df84b040182ea60800a801ba0cb1400f01459519ac3dc0426c6d7f95641dc6a7b8008069c9dfbe4f94b167169a07445362aadae8c25e4f0b494ad553bfc652bf34fb2ed0ccbf9a6b089c2b09f62c0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x04",
+ "r" : "0xcb1400f01459519ac3dc0426c6d7f95641dc6a7b8008069c9dfbe4f94b167169",
+ "s" : "0x7445362aadae8c25e4f0b494ad553bfc652bf34fb2ed0ccbf9a6b089c2b09f62",
+ "to" : "",
+ "v" : "0x1b",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020140",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0xcf08",
+ "hash" : "41e24f30308598382173973762075d8f518032f6a9193634c756d2c3bc6ee50b",
+ "mixHash" : "f008142ef350d111d19f370d7fb12836c5154726174d9931b9afcd3d9d2855b8",
+ "nonce" : "9a43b5bf61121f7a",
+ "number" : "0x06",
+ "parentHash" : "6329ec33ae4921ac483119c459d9b433c988ecbf1dab47a42f04b7fa460a4ac1",
+ "receiptTrie" : "5e40223bcc6a700b1d32c94ec5b7ed325345b400cf06913d4a1538d80dde375d",
+ "stateRoot" : "293f78bf5ea7fbe0c13c88d246c5d84bf917dbf39e35722ae601ea85543dee9d",
+ "timestamp" : "0x5784188d",
+ "transactionsTrie" : "ef009c3c274a522a6e2ca98232fffff747bdfab79189be3e2b5e5dc54e2a51be",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "6",
+ "rlp" : "0xf9024cf901f9a06329ec33ae4921ac483119c459d9b433c988ecbf1dab47a42f04b7fa460a4ac1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0293f78bf5ea7fbe0c13c88d246c5d84bf917dbf39e35722ae601ea85543dee9da0ef009c3c274a522a6e2ca98232fffff747bdfab79189be3e2b5e5dc54e2a51bea05e40223bcc6a700b1d32c94ec5b7ed325345b400cf06913d4a1538d80dde375db90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302014006832fefba82cf08845784188d80a0f008142ef350d111d19f370d7fb12836c5154726174d9931b9afcd3d9d2855b8889a43b5bf61121f7af84df84b050182ea60800a801ba04d147b172eb81fdb11a21826eabad091084f6e9613d340b5897872843efa6435a023640d906f65fd156b92d518068263d99d94dc88c3e0950fd7633fb0d4d237eec0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x05",
+ "r" : "0x4d147b172eb81fdb11a21826eabad091084f6e9613d340b5897872843efa6435",
+ "s" : "0x23640d906f65fd156b92d518068263d99d94dc88c3e0950fd7633fb0d4d237ee",
+ "to" : "",
+ "v" : "0x1b",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020180",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0xa042",
+ "hash" : "e854f07ec75a197378a9806b2e83e90af289aa7a9e20d651b6f75f5b055ec484",
+ "mixHash" : "083679933107345e671e06c524a95cdc1084f965f7542a692283619b807b4555",
+ "nonce" : "a463a2fe523f4078",
+ "number" : "0x07",
+ "parentHash" : "41e24f30308598382173973762075d8f518032f6a9193634c756d2c3bc6ee50b",
+ "receiptTrie" : "e3beaaa91301cca4d98fc58b2aad310bd7bd147d4ff00f4fb5ce2b186a039f2d",
+ "stateRoot" : "219ec50b26a20c420f96b8905f669455145efef0233e52a39c2d338b52a60f8c",
+ "timestamp" : "0x5784188f",
+ "transactionsTrie" : "b2d17fa171d19df4e817ffb15f38526d125a42b7879cd712584b130dc8ad341c",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "7",
+ "rlp" : "0xf90260f901f9a041e24f30308598382173973762075d8f518032f6a9193634c756d2c3bc6ee50ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0219ec50b26a20c420f96b8905f669455145efef0233e52a39c2d338b52a60f8ca0b2d17fa171d19df4e817ffb15f38526d125a42b7879cd712584b130dc8ad341ca0e3beaaa91301cca4d98fc58b2aad310bd7bd147d4ff00f4fb5ce2b186a039f2db90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302018007832fefba82a042845784188f80a0083679933107345e671e06c524a95cdc1084f965f7542a692283619b807b455588a463a2fe523f4078f861f85f060182ea609410000000000000000000000000000000000000070a801ba0bb8523d4c53ed16b355d0a2dba02154d23a5480449dc3894be40ef95511d2fe9a010ad725c2df4979b7a071b3fa9b6b719223f0167d68b98f213e8611f84d4d81bc0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x06",
+ "r" : "0xbb8523d4c53ed16b355d0a2dba02154d23a5480449dc3894be40ef95511d2fe9",
+ "s" : "0x10ad725c2df4979b7a071b3fa9b6b719223f0167d68b98f213e8611f84d4d81b",
+ "to" : "1000000000000000000000000000000000000007",
+ "v" : "0x1b",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blocknumber" : "8",
+ "rlp" : "0xf901e8f901e3a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808080a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80c0c0"
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x0201c0",
+ "extraData" : "0x64616f2d686172642d666f726b",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x00",
+ "hash" : "363d0a4d7a64d8f9a0d837ada513ae8aecf82c3a167f383baf036c15b082ab2f",
+ "mixHash" : "e28ee83890511a82ee755fbebb135d2dfc5a9a50572377520792f97c08101e7c",
+ "nonce" : "7eeb14841d8197fd",
+ "number" : "0x08",
+ "parentHash" : "e854f07ec75a197378a9806b2e83e90af289aa7a9e20d651b6f75f5b055ec484",
+ "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "stateRoot" : "d8c26888f3be8b3caa592fa608b0a6c91e4d71a0657b11afebea18528f0ff44d",
+ "timestamp" : "0x57841894",
+ "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "8",
+ "rlp" : "0xf90209f90204a0e854f07ec75a197378a9806b2e83e90af289aa7a9e20d651b6f75f5b055ec484a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0d8c26888f3be8b3caa592fa608b0a6c91e4d71a0657b11afebea18528f0ff44da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830201c008832fefba8084578418948d64616f2d686172642d666f726ba0e28ee83890511a82ee755fbebb135d2dfc5a9a50572377520792f97c08101e7c887eeb14841d8197fdc0c0",
+ "transactions" : [
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020200",
+ "extraData" : "0x64616f2d686172642d666f726b",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x65aa",
+ "hash" : "85fd587a5805508b53ced9f0fd3ce967b7de629acdb54d1dcc1f6136cc861853",
+ "mixHash" : "23ca2108bbf52d307f0485685093923cc0e88bb532e16b3e33ddfbedabf02e20",
+ "nonce" : "583a155bc41f60dc",
+ "number" : "0x09",
+ "parentHash" : "363d0a4d7a64d8f9a0d837ada513ae8aecf82c3a167f383baf036c15b082ab2f",
+ "receiptTrie" : "ba60c4ab1b477e30a2befb448e466b1404264989fabb1eb870376381202aed52",
+ "stateRoot" : "b6776ae31aa5aeaf7ec2b8f644716df0cbcba8a9d22ca34e795c9461f81fd04f",
+ "timestamp" : "0x57841897",
+ "transactionsTrie" : "964e2a482dc1856fff3b00f545aaf8720aeef70a3ffe86cebf05bbc2c34bf539",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "9",
+ "rlp" : "0xf9026df90206a0363d0a4d7a64d8f9a0d837ada513ae8aecf82c3a167f383baf036c15b082ab2fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0b6776ae31aa5aeaf7ec2b8f644716df0cbcba8a9d22ca34e795c9461f81fd04fa0964e2a482dc1856fff3b00f545aaf8720aeef70a3ffe86cebf05bbc2c34bf539a0ba60c4ab1b477e30a2befb448e466b1404264989fabb1eb870376381202aed52b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302020009832fefba8265aa84578418978d64616f2d686172642d666f726ba023ca2108bbf52d307f0485685093923cc0e88bb532e16b3e33ddfbedabf02e2088583a155bc41f60dcf861f85f070182ea6094100000000000000000000000000000000000000801801ba09e18981c45e9f6bb54e3f52cae58f2c3c00f2220a9f1c788d0ee3fc2394d4956a038207c17c10faae1fa83bff79770fa38134a19b6ca6f04059d7a307c05f67e6ac0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x07",
+ "r" : "0x9e18981c45e9f6bb54e3f52cae58f2c3c00f2220a9f1c788d0ee3fc2394d4956",
+ "s" : "0x38207c17c10faae1fa83bff79770fa38134a19b6ca6f04059d7a307c05f67e6a",
+ "to" : "1000000000000000000000000000000000000008",
+ "v" : "0x1b",
+ "value" : "0x01"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blocknumber" : "10",
+ "rlp" : "0xf90236f901e3a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808080a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80f84df84b080182ea608001801ba066a8a933ff9208ecb2334a7edcf0592751d68e5e9cf155814238cd3072a7d38ba02cd8720983a8172b1304aad194d3f2ea3daeaf5c51bc3dc983d8218448f063bdc0"
+ },
+ {
+ "blocknumber" : "11",
+ "rlp" : "0xf90236f901e3a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808080a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80f84df84b090182ea608001801ba08c41aab2b35a0c8c82f88076fe817d2c3a261e6bbab3c270f2d5f6c8ba077f2ea04861726cfb49b87296466ab8cf0790d7790e7e371168dc7e960361bc3479e985c0"
+ }
+ ],
+ "genesisBlockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020000",
+ "extraData" : "0x42",
+ "gasLimit" : "0x2fefd8",
+ "gasUsed" : "0x00",
+ "hash" : "eb310def4877fc94c3945bdabd9ba6bbafff1c74944b2bd74a4ac01f0868804c",
+ "mixHash" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "nonce" : "0102030405060708",
+ "number" : "0x00",
+ "parentHash" : "0000000000000000000000000000000000000000000000000000000000000000",
+ "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "stateRoot" : "4eda2e603f5b9ad6e92c0cba602372d0a0cd2e776a17b61a7a20225ffa7643d7",
+ "timestamp" : "0x54c98c81",
+ "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "genesisRLP" : "0xf901fcf901f7a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a04eda2e603f5b9ad6e92c0cba602372d0a0cd2e776a17b61a7a20225ffa7643d7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302000080832fefd8808454c98c8142a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421880102030405060708c0c0",
+ "lastblockhash" : "85fd587a5805508b53ced9f0fd3ce967b7de629acdb54d1dcc1f6136cc861853",
+ "postState" : {
+ "0c243ebe6a031753dc0dd850acf422844a3efb76" : {
+ "balance" : "0x0a",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "1000000000000000000000000000000000000007" : {
+ "balance" : "0x0a",
+ "code" : "0x73807640a13483f8ac783c557fcdf27be11ea4ac7a31600055",
+ "nonce" : "0x00",
+ "storage" : {
+ "0x00" : "0x02540be400"
+ }
+ },
+ "1000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "0x73807640a13483f8ac783c557fcdf27be11ea4ac7a31600055",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "17802f43a0137c506ba92291391a8a8f207f487d" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "248f0f0f33eadb89e9d87fd5c127f58567f3ffde" : {
+ "balance" : "0x0a",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "2b3455ec7fedf16e646268bf88846bd7a2319bb2" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "304a554a310c7e546dfe434669c62820b7d83490" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "4613f3bca5c44ea06337a9e439fbc6d42e501d0a" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : {
+ "balance" : "0x0a",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "7602b46df5390e432ef1c307d4f2c9ff6d65cc97" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "807640a13483f8ac783c557fcdf27be11ea4ac7a" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "84ef4b2357079cd7a7c69fd7a37cd0609a679106" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "85c2f277588ea1e6901ed59e587bea222c575f87" : {
+ "balance" : "0x0a",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "8888f1f195afa192cfee860698584c030f4c9db1" : {
+ "balance" : "0x0270801d946c97ec1c",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "914d1b8b43e92723e64fd0a06f5bdb8dd9b10c79" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "0x3b96dd9d",
+ "code" : "0x",
+ "nonce" : "0x08",
+ "storage" : {
+ }
+ },
+ "abcabcabcabcabcabcabcabcabcabcabcabcabca" : {
+ "balance" : "0x2c3cf12e40",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "accc230e8a6e5be9160b8cdf2864dd2a001c28b6" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "aeeb8ff27288bdabc0fa5ebb731b6f409507516c" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "b136707642a4ea12fb4bae820f03d2562ebff487" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "b1d37cf6180ceb738ca45b5005a2f418c02e204b" : {
+ "balance" : "0x0a",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "bb9bc244d798123fde783fcc1c72d3bb8c189413" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "ca544e5c4687d109611d0f8f928b53a25af72448" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "cbb9d3703e651b0d496cdefb8b92c25aeb2171f7" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "d343b217de44030afaa275f54d31a9317c7f441e" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "da2fef9e4a3230988ff17df2165440f37e8b1708" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "dbe9b615a3ae8709af8b93336ce9b477e4ac0940" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : {
+ "balance" : "0x0a",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "f14c14075d6c4ed84b86798af0956deef67365b5" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "f4c64518ea10f995918a454158c6b61407ea345c" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "fe24cdd8648121a43a7c86d289be4dd2951ed49f" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "1000000000000000000000000000000000000007" : {
+ "balance" : "0x00",
+ "code" : "0x73807640a13483f8ac783c557fcdf27be11ea4ac7a31600055",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "1000000000000000000000000000000000000008" : {
+ "balance" : "0x00",
+ "code" : "0x73807640a13483f8ac783c557fcdf27be11ea4ac7a31600055",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "17802f43a0137c506ba92291391a8a8f207f487d" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "2b3455ec7fedf16e646268bf88846bd7a2319bb2" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "304a554a310c7e546dfe434669c62820b7d83490" : {
+ "balance" : "0x0f4240",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "4613f3bca5c44ea06337a9e439fbc6d42e501d0a" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "7602b46df5390e432ef1c307d4f2c9ff6d65cc97" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "807640a13483f8ac783c557fcdf27be11ea4ac7a" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "84ef4b2357079cd7a7c69fd7a37cd0609a679106" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "914d1b8b43e92723e64fd0a06f5bdb8dd9b10c79" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "0x3b9aca00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "accc230e8a6e5be9160b8cdf2864dd2a001c28b6" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "aeeb8ff27288bdabc0fa5ebb731b6f409507516c" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "b136707642a4ea12fb4bae820f03d2562ebff487" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "bb9bc244d798123fde783fcc1c72d3bb8c189413" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "ca544e5c4687d109611d0f8f928b53a25af72448" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "cbb9d3703e651b0d496cdefb8b92c25aeb2171f7" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "d343b217de44030afaa275f54d31a9317c7f441e" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "da2fef9e4a3230988ff17df2165440f37e8b1708" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "dbe9b615a3ae8709af8b93336ce9b477e4ac0940" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "f14c14075d6c4ed84b86798af0956deef67365b5" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "f4c64518ea10f995918a454158c6b61407ea345c" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "fe24cdd8648121a43a7c86d289be4dd2951ed49f" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "DaoTransactions_UncleExtradata" : {
+ "blocks" : [
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020000",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "166dd0be1fc334e9ce125b8e83dd18c4351a93443c0c44a55710c71b51f33e40",
+ "mixHash" : "c9aab9b1a42fdd1e2fd07eb6592aabee582a33e8c314d6edfafce399cd44b0ee",
+ "nonce" : "216082a7e9d68e4b",
+ "number" : "0x01",
+ "parentHash" : "eb310def4877fc94c3945bdabd9ba6bbafff1c74944b2bd74a4ac01f0868804c",
+ "receiptTrie" : "63e81aadc86aed2ebe147fd86db74d8fbe91a938af0521be549669246e607443",
+ "stateRoot" : "421450c5fcaa516f03635983f0c9d936574721033424eac5e6d71c8fa14b766f",
+ "timestamp" : "0x5784189f",
+ "transactionsTrie" : "ac81275d7a81a720240146377982939179218535bfcfa9469c8bdd3e264ef179",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "1",
+ "rlp" : "0xf9024cf901f9a0eb310def4877fc94c3945bdabd9ba6bbafff1c74944b2bd74a4ac01f0868804ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0421450c5fcaa516f03635983f0c9d936574721033424eac5e6d71c8fa14b766fa0ac81275d7a81a720240146377982939179218535bfcfa9469c8bdd3e264ef179a063e81aadc86aed2ebe147fd86db74d8fbe91a938af0521be549669246e607443b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302000001832fefba825208845784189f80a0c9aab9b1a42fdd1e2fd07eb6592aabee582a33e8c314d6edfafce399cd44b0ee88216082a7e9d68e4bf84df84b8001827530800a801ca057cb46c0b702929c4fd4127b2370f28a7aeeaa65509699e58eedf7692090a0a9a05ba7c83d99be6a9bca0c81947023ba3b5f2162516d82d0757bf8004f3e9bc03ac0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0x7530",
+ "gasPrice" : "0x01",
+ "nonce" : "0x00",
+ "r" : "0x57cb46c0b702929c4fd4127b2370f28a7aeeaa65509699e58eedf7692090a0a9",
+ "s" : "0x5ba7c83d99be6a9bca0c81947023ba3b5f2162516d82d0757bf8004f3e9bc03a",
+ "to" : "",
+ "v" : "0x1c",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020040",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "be526a4f0ca82e4073b6155de5e88683b0144706ffe48080a423e7fcdf7eb207",
+ "mixHash" : "831622c412d9005be123c2cc5541d3a43c1339c8ce10dd2bc7f9a4bbc0d0b0d5",
+ "nonce" : "f65c25acd0f2047a",
+ "number" : "0x02",
+ "parentHash" : "166dd0be1fc334e9ce125b8e83dd18c4351a93443c0c44a55710c71b51f33e40",
+ "receiptTrie" : "b41287e7f7e5d2983862a73e54c86ec144ecf835096984770f6bf485188268b8",
+ "stateRoot" : "1e31d34b22a8d2fd9893bb58fa80e6ca4561320eed43776c295acca93721847c",
+ "timestamp" : "0x578418a1",
+ "transactionsTrie" : "76c7a0ce7644661f276c76fb9a82eaee879d0642cf4ed244fc10afc02c646abf",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "2",
+ "rlp" : "0xf9024cf901f9a0166dd0be1fc334e9ce125b8e83dd18c4351a93443c0c44a55710c71b51f33e40a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a01e31d34b22a8d2fd9893bb58fa80e6ca4561320eed43776c295acca93721847ca076c7a0ce7644661f276c76fb9a82eaee879d0642cf4ed244fc10afc02c646abfa0b41287e7f7e5d2983862a73e54c86ec144ecf835096984770f6bf485188268b8b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302004002832fefba82520884578418a180a0831622c412d9005be123c2cc5541d3a43c1339c8ce10dd2bc7f9a4bbc0d0b0d588f65c25acd0f2047af84df84b0101827530800a801ca0bb6e3cf3f281af13ef1393d7052b03cab367079a9eb71aa829ec72b231a60e1fa04bcfe1da53f26bb95806d38e9f42fef262aaaf5191e16ec473a695c8978a0b05c0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0x7530",
+ "gasPrice" : "0x01",
+ "nonce" : "0x01",
+ "r" : "0xbb6e3cf3f281af13ef1393d7052b03cab367079a9eb71aa829ec72b231a60e1f",
+ "s" : "0x4bcfe1da53f26bb95806d38e9f42fef262aaaf5191e16ec473a695c8978a0b05",
+ "to" : "",
+ "v" : "0x1c",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020080",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "d960470c5d6cb5777ba2ca069c41cb08ebaab95b04424c9740ff3b8b3e1afc82",
+ "mixHash" : "006836d27904b05bf304b0462e23378a65b197ed1673614bcaeb6a6cc6b75657",
+ "nonce" : "2bc803ac972a5060",
+ "number" : "0x03",
+ "parentHash" : "be526a4f0ca82e4073b6155de5e88683b0144706ffe48080a423e7fcdf7eb207",
+ "receiptTrie" : "12f61177f6c2cebe14df5474c8b8c1f8f47f4ea8fff7f8b22b7aa8a4156581c8",
+ "stateRoot" : "587518607d6c98344439896e7f39111d76a8aac09b70d624e237da6fa29bbc44",
+ "timestamp" : "0x578418a2",
+ "transactionsTrie" : "3798aa164b61e27b93484c76a5f319bd93c808dc78ef31cf8b93f4e1b248ca2c",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "3",
+ "rlp" : "0xf9024cf901f9a0be526a4f0ca82e4073b6155de5e88683b0144706ffe48080a423e7fcdf7eb207a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0587518607d6c98344439896e7f39111d76a8aac09b70d624e237da6fa29bbc44a03798aa164b61e27b93484c76a5f319bd93c808dc78ef31cf8b93f4e1b248ca2ca012f61177f6c2cebe14df5474c8b8c1f8f47f4ea8fff7f8b22b7aa8a4156581c8b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302008003832fefba82520884578418a280a0006836d27904b05bf304b0462e23378a65b197ed1673614bcaeb6a6cc6b75657882bc803ac972a5060f84df84b0201827530800a801ca0f6d884cae1f86bdff1281e95e416089c544a4a5578a75d5e8ad76118e341b055a075b7d88985ed5acd61f30c9f9570c6c33bb92f3ad1a32b86a0747817fbc5ededc0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0x7530",
+ "gasPrice" : "0x01",
+ "nonce" : "0x02",
+ "r" : "0xf6d884cae1f86bdff1281e95e416089c544a4a5578a75d5e8ad76118e341b055",
+ "s" : "0x75b7d88985ed5acd61f30c9f9570c6c33bb92f3ad1a32b86a0747817fbc5eded",
+ "to" : "",
+ "v" : "0x1c",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x0200c0",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "91e9fae950b50c551c0b31ab2e99265350ec0fdc46d508d609adcdfc3fc5bffa",
+ "mixHash" : "dcd57ffc4e31e203f27347c8d95f6200728bca67deef8f64fff020f3baee068e",
+ "nonce" : "94012fc98cabd7b5",
+ "number" : "0x04",
+ "parentHash" : "d960470c5d6cb5777ba2ca069c41cb08ebaab95b04424c9740ff3b8b3e1afc82",
+ "receiptTrie" : "4346f81bc8c58aa684049309decc863c93cd6cdc84c592b62bd1439eee3636ac",
+ "stateRoot" : "c8ba761363f3cb1958f01fd55b864bcba7f33324ba4f95e60fc9e48d9ba6777a",
+ "timestamp" : "0x578418a4",
+ "transactionsTrie" : "4cc1b34b3a9d29bf69842a54e1c48bc97afc433883f66d2c59287f118c9c3c2c",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "4",
+ "rlp" : "0xf9024cf901f9a0d960470c5d6cb5777ba2ca069c41cb08ebaab95b04424c9740ff3b8b3e1afc82a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0c8ba761363f3cb1958f01fd55b864bcba7f33324ba4f95e60fc9e48d9ba6777aa04cc1b34b3a9d29bf69842a54e1c48bc97afc433883f66d2c59287f118c9c3c2ca04346f81bc8c58aa684049309decc863c93cd6cdc84c592b62bd1439eee3636acb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200c004832fefba82520884578418a480a0dcd57ffc4e31e203f27347c8d95f6200728bca67deef8f64fff020f3baee068e8894012fc98cabd7b5f84df84b0301827530800a801ca0753ee5d896db8d87fe850e7935418587277cd9c010dfaaf7dd09b0a2e73785dca066deb3c241d532c7b880ae7a9a311ee7a92ef1c5e4e2bf3307990a2881bc13b0c0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0x7530",
+ "gasPrice" : "0x01",
+ "nonce" : "0x03",
+ "r" : "0x753ee5d896db8d87fe850e7935418587277cd9c010dfaaf7dd09b0a2e73785dc",
+ "s" : "0x66deb3c241d532c7b880ae7a9a311ee7a92ef1c5e4e2bf3307990a2881bc13b0",
+ "to" : "",
+ "v" : "0x1c",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020100",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0xcf08",
+ "hash" : "63d80f27eec75761ba0eb224acf8b5a017975569a315940b2bc9fc2efdf662e5",
+ "mixHash" : "b0755aeb8a1746b060bf2ab2bb52a2642a2e969306d9838f827cde8ca574b238",
+ "nonce" : "4838852dfaffbc26",
+ "number" : "0x05",
+ "parentHash" : "91e9fae950b50c551c0b31ab2e99265350ec0fdc46d508d609adcdfc3fc5bffa",
+ "receiptTrie" : "49f411805d9b0ace02b56752bf40396c5505bb7ced5f174abf02a20b623982c0",
+ "stateRoot" : "8045027de50cc67c31daed085a6e72311e4f931606c6caa9f85bfc34009b3d00",
+ "timestamp" : "0x578418a5",
+ "transactionsTrie" : "165af780d27795ebc80c27759d3d949a9c4b05d35fcc7e9d3da8be357f5340cd",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "5",
+ "rlp" : "0xf9024cf901f9a091e9fae950b50c551c0b31ab2e99265350ec0fdc46d508d609adcdfc3fc5bffaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a08045027de50cc67c31daed085a6e72311e4f931606c6caa9f85bfc34009b3d00a0165af780d27795ebc80c27759d3d949a9c4b05d35fcc7e9d3da8be357f5340cda049f411805d9b0ace02b56752bf40396c5505bb7ced5f174abf02a20b623982c0b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302010005832fefba82cf0884578418a580a0b0755aeb8a1746b060bf2ab2bb52a2642a2e969306d9838f827cde8ca574b238884838852dfaffbc26f84df84b040182ea60800a801ba0cb1400f01459519ac3dc0426c6d7f95641dc6a7b8008069c9dfbe4f94b167169a07445362aadae8c25e4f0b494ad553bfc652bf34fb2ed0ccbf9a6b089c2b09f62c0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x04",
+ "r" : "0xcb1400f01459519ac3dc0426c6d7f95641dc6a7b8008069c9dfbe4f94b167169",
+ "s" : "0x7445362aadae8c25e4f0b494ad553bfc652bf34fb2ed0ccbf9a6b089c2b09f62",
+ "to" : "",
+ "v" : "0x1b",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020140",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0xcf08",
+ "hash" : "b96e2b785cb110da5c125eeab71efc53ba944af01475bd9ea9e2ef609aa18d7f",
+ "mixHash" : "0826f3d1eb79d505d45cdebaaebd7bd5cdcec21f93f70368a75b7673c750cdf5",
+ "nonce" : "032d2ea53eb2bc97",
+ "number" : "0x06",
+ "parentHash" : "63d80f27eec75761ba0eb224acf8b5a017975569a315940b2bc9fc2efdf662e5",
+ "receiptTrie" : "5e40223bcc6a700b1d32c94ec5b7ed325345b400cf06913d4a1538d80dde375d",
+ "stateRoot" : "293f78bf5ea7fbe0c13c88d246c5d84bf917dbf39e35722ae601ea85543dee9d",
+ "timestamp" : "0x578418a7",
+ "transactionsTrie" : "ef009c3c274a522a6e2ca98232fffff747bdfab79189be3e2b5e5dc54e2a51be",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "6",
+ "rlp" : "0xf9024cf901f9a063d80f27eec75761ba0eb224acf8b5a017975569a315940b2bc9fc2efdf662e5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0293f78bf5ea7fbe0c13c88d246c5d84bf917dbf39e35722ae601ea85543dee9da0ef009c3c274a522a6e2ca98232fffff747bdfab79189be3e2b5e5dc54e2a51bea05e40223bcc6a700b1d32c94ec5b7ed325345b400cf06913d4a1538d80dde375db90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302014006832fefba82cf0884578418a780a00826f3d1eb79d505d45cdebaaebd7bd5cdcec21f93f70368a75b7673c750cdf588032d2ea53eb2bc97f84df84b050182ea60800a801ba04d147b172eb81fdb11a21826eabad091084f6e9613d340b5897872843efa6435a023640d906f65fd156b92d518068263d99d94dc88c3e0950fd7633fb0d4d237eec0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x05",
+ "r" : "0x4d147b172eb81fdb11a21826eabad091084f6e9613d340b5897872843efa6435",
+ "s" : "0x23640d906f65fd156b92d518068263d99d94dc88c3e0950fd7633fb0d4d237ee",
+ "to" : "",
+ "v" : "0x1b",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020180",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0xa042",
+ "hash" : "bb4f9818a9f879e3c584567919cd062474c37a9139eb447609bed432b13b5f49",
+ "mixHash" : "fab18ba8094b4a256d746adc2c15339f4f251a3c571cbee3443601b5f6e270b4",
+ "nonce" : "b874dfe7cbb3bae3",
+ "number" : "0x07",
+ "parentHash" : "b96e2b785cb110da5c125eeab71efc53ba944af01475bd9ea9e2ef609aa18d7f",
+ "receiptTrie" : "e3beaaa91301cca4d98fc58b2aad310bd7bd147d4ff00f4fb5ce2b186a039f2d",
+ "stateRoot" : "219ec50b26a20c420f96b8905f669455145efef0233e52a39c2d338b52a60f8c",
+ "timestamp" : "0x578418a9",
+ "transactionsTrie" : "b2d17fa171d19df4e817ffb15f38526d125a42b7879cd712584b130dc8ad341c",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "blocknumber" : "7",
+ "rlp" : "0xf90260f901f9a0b96e2b785cb110da5c125eeab71efc53ba944af01475bd9ea9e2ef609aa18d7fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0219ec50b26a20c420f96b8905f669455145efef0233e52a39c2d338b52a60f8ca0b2d17fa171d19df4e817ffb15f38526d125a42b7879cd712584b130dc8ad341ca0e3beaaa91301cca4d98fc58b2aad310bd7bd147d4ff00f4fb5ce2b186a039f2db90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302018007832fefba82a04284578418a980a0fab18ba8094b4a256d746adc2c15339f4f251a3c571cbee3443601b5f6e270b488b874dfe7cbb3bae3f861f85f060182ea609410000000000000000000000000000000000000070a801ba0bb8523d4c53ed16b355d0a2dba02154d23a5480449dc3894be40ef95511d2fe9a010ad725c2df4979b7a071b3fa9b6b719223f0167d68b98f213e8611f84d4d81bc0",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x06",
+ "r" : "0xbb8523d4c53ed16b355d0a2dba02154d23a5480449dc3894be40ef95511d2fe9",
+ "s" : "0x10ad725c2df4979b7a071b3fa9b6b719223f0167d68b98f213e8611f84d4d81b",
+ "to" : "1000000000000000000000000000000000000007",
+ "v" : "0x1b",
+ "value" : "0x0a"
+ }
+ ],
+ "uncleHeaders" : [
+ ]
+ },
+ {
+ "blocknumber" : "8",
+ "rlp" : "0xf901e8f901e3a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808080a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80c0c0"
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x0201c0",
+ "extraData" : "0x64616f2d686172642d666f726b",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x00",
+ "hash" : "f47d2dba3b077187b315cf126aad5e8f4b761b9056f0fe0aa25cfb1a568150fa",
+ "mixHash" : "049f458d0c79b6b9ae5227c05946a0cf7a12361d61fb310f501105d52bf8ed34",
+ "nonce" : "596610c22c5cbd93",
+ "number" : "0x08",
+ "parentHash" : "bb4f9818a9f879e3c584567919cd062474c37a9139eb447609bed432b13b5f49",
+ "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "stateRoot" : "7ff10e11aa347e565a1554d91d017eff6430b78919964cae10e41369cb9ed9b7",
+ "timestamp" : "0x578418ae",
+ "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "uncleHash" : "4e04d7cb054042a83dc42b776e622d960219e8fadf0f60d885e18eaa25e95dab"
+ },
+ "blocknumber" : "8",
+ "rlp" : "0xf90405f90204a0bb4f9818a9f879e3c584567919cd062474c37a9139eb447609bed432b13b5f49a04e04d7cb054042a83dc42b776e622d960219e8fadf0f60d885e18eaa25e95dab948888f1f195afa192cfee860698584c030f4c9db1a07ff10e11aa347e565a1554d91d017eff6430b78919964cae10e41369cb9ed9b7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830201c008832fefba8084578418ae8d64616f2d686172642d666f726ba0049f458d0c79b6b9ae5227c05946a0cf7a12361d61fb310f501105d52bf8ed3488596610c22c5cbd93c0f901faf901f7a0b96e2b785cb110da5c125eeab71efc53ba944af01475bd9ea9e2ef609aa18d7fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0293f78bf5ea7fbe0c13c88d246c5d84bf917dbf39e35722ae601ea85543dee9da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302018007832fefba8084578418ac80a0a7df96eb1ec9601197df1b7d4471a683b291a7575450248cbad3a27c828f2c1e88d62ffe60c02ef206",
+ "transactions" : [
+ ],
+ "uncleHeaders" : [
+ {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "0000000000000000000000000000000000000000",
+ "difficulty" : "0x020180",
+ "extraData" : "0x",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x00",
+ "hash" : "7b188fd0ae41e265e6508e3bb4264ee55d0cfe99dfa92deb9f9b6f5881b6eafb",
+ "mixHash" : "a7df96eb1ec9601197df1b7d4471a683b291a7575450248cbad3a27c828f2c1e",
+ "nonce" : "d62ffe60c02ef206",
+ "number" : "0x07",
+ "parentHash" : "b96e2b785cb110da5c125eeab71efc53ba944af01475bd9ea9e2ef609aa18d7f",
+ "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "stateRoot" : "293f78bf5ea7fbe0c13c88d246c5d84bf917dbf39e35722ae601ea85543dee9d",
+ "timestamp" : "0x578418ac",
+ "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ }
+ ]
+ },
+ {
+ "blocknumber" : "9",
+ "rlp" : "0xf90670f90206a0f47d2dba3b077187b315cf126aad5e8f4b761b9056f0fe0aa25cfb1a568150faa0e4510e7c4ba6daf82fefe95b7c9a2e57150f3ff648bbced13ba5ce4e9af3578c948888f1f195afa192cfee860698584c030f4c9db1a0ab2d35f61c8354793f4b1e25466f89383d5cd924b62c45784abdcde5b9cb3156a0964e2a482dc1856fff3b00f545aaf8720aeef70a3ffe86cebf05bbc2c34bf539a005cf7ce6d8dda10857c8cf25239df384e7373b2a1721cc41aff2558dcbb40e1bb90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302020009832fefba8265aa84578418b58d64616f2d686172642d666f726ba00ffba3bad095a4792c06753bcaea0c6b5f92b34414b8bfde8b931527f9ef3a0d8840a024f583bc77ccf861f85f070182ea6094100000000000000000000000000000000000000801801ba09e18981c45e9f6bb54e3f52cae58f2c3c00f2220a9f1c788d0ee3fc2394d4956a038207c17c10faae1fa83bff79770fa38134a19b6ca6f04059d7a307c05f67e6af90401f90204a0bb4f9818a9f879e3c584567919cd062474c37a9139eb447609bed432b13b5f49a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0219ec50b26a20c420f96b8905f669455145efef0233e52a39c2d338b52a60f8ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830201c008832fefba8084578418b18d64616f2d686172642d666f726ba06639b3c805a32ab42ed4fe49d86f334449f59e3e483d5e8922080b98fbb8e56888f08a457b13f6cadff901f7a0bb4f9818a9f879e3c584567919cd062474c37a9139eb447609bed432b13b5f49a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0219ec50b26a20c420f96b8905f669455145efef0233e52a39c2d338b52a60f8ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830201c008832fefba8084578418b180a09f56e9e9839fb34efda467637b9186ccca681e3f9ceb77c27c5aa4bfcda0f7dc888c714c6c969a9648"
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020180",
+ "extraData" : "0x64616f2d686172642d666f726b",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x65aa",
+ "hash" : "465d949f966ef556759cd1da49cb067358276bdfe2cbd737b49e7242a66e0e3e",
+ "mixHash" : "64bb39417f9d2094f39f191e11bd13ae84f319ba9d16de062f731a899e0ebaf1",
+ "nonce" : "bbc818b42f99cab8",
+ "number" : "0x09",
+ "parentHash" : "f47d2dba3b077187b315cf126aad5e8f4b761b9056f0fe0aa25cfb1a568150fa",
+ "receiptTrie" : "05cf7ce6d8dda10857c8cf25239df384e7373b2a1721cc41aff2558dcbb40e1b",
+ "stateRoot" : "ab2d35f61c8354793f4b1e25466f89383d5cd924b62c45784abdcde5b9cb3156",
+ "timestamp" : "0x578418c2",
+ "transactionsTrie" : "964e2a482dc1856fff3b00f545aaf8720aeef70a3ffe86cebf05bbc2c34bf539",
+ "uncleHash" : "e9509b731f9d581c6876a856e6c413feff593558dd310f769568a0ca47c4c95f"
+ },
+ "blocknumber" : "9",
+ "rlp" : "0xf90476f90206a0f47d2dba3b077187b315cf126aad5e8f4b761b9056f0fe0aa25cfb1a568150faa0e9509b731f9d581c6876a856e6c413feff593558dd310f769568a0ca47c4c95f948888f1f195afa192cfee860698584c030f4c9db1a0ab2d35f61c8354793f4b1e25466f89383d5cd924b62c45784abdcde5b9cb3156a0964e2a482dc1856fff3b00f545aaf8720aeef70a3ffe86cebf05bbc2c34bf539a005cf7ce6d8dda10857c8cf25239df384e7373b2a1721cc41aff2558dcbb40e1bb90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302018009832fefba8265aa84578418c28d64616f2d686172642d666f726ba064bb39417f9d2094f39f191e11bd13ae84f319ba9d16de062f731a899e0ebaf188bbc818b42f99cab8f861f85f070182ea6094100000000000000000000000000000000000000801801ba09e18981c45e9f6bb54e3f52cae58f2c3c00f2220a9f1c788d0ee3fc2394d4956a038207c17c10faae1fa83bff79770fa38134a19b6ca6f04059d7a307c05f67e6af90207f90204a0bb4f9818a9f879e3c584567919cd062474c37a9139eb447609bed432b13b5f49a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0219ec50b26a20c420f96b8905f669455145efef0233e52a39c2d338b52a60f8ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302014008832fefba8084578418c08d64616f2d686172642d666f726ba08cf428dd8e7567bc22982ab9f8b7b7908834b035d01603df0c672cbfdce40c5d88daafa733a83fb266",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x07",
+ "r" : "0x9e18981c45e9f6bb54e3f52cae58f2c3c00f2220a9f1c788d0ee3fc2394d4956",
+ "s" : "0x38207c17c10faae1fa83bff79770fa38134a19b6ca6f04059d7a307c05f67e6a",
+ "to" : "1000000000000000000000000000000000000008",
+ "v" : "0x1b",
+ "value" : "0x01"
+ }
+ ],
+ "uncleHeaders" : [
+ {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "0000000000000000000000000000000000000000",
+ "difficulty" : "0x020140",
+ "extraData" : "0x64616f2d686172642d666f726b",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x00",
+ "hash" : "bf4dfd5cc79a10fa9e66b782307bedf5cfc11a9e53218f41baba6b821ae55d12",
+ "mixHash" : "8cf428dd8e7567bc22982ab9f8b7b7908834b035d01603df0c672cbfdce40c5d",
+ "nonce" : "daafa733a83fb266",
+ "number" : "0x08",
+ "parentHash" : "bb4f9818a9f879e3c584567919cd062474c37a9139eb447609bed432b13b5f49",
+ "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "stateRoot" : "219ec50b26a20c420f96b8905f669455145efef0233e52a39c2d338b52a60f8c",
+ "timestamp" : "0x578418c0",
+ "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ }
+ ]
+ },
+ {
+ "blocknumber" : "10",
+ "rlp" : "0xf90455f90206a0465d949f966ef556759cd1da49cb067358276bdfe2cbd737b49e7242a66e0e3ea08553f3d50686660d32d8a483ede305d6f90e4bee1404cac2854f1f41e49b4eb5948888f1f195afa192cfee860698584c030f4c9db1a0dfa46241fd321ee668529fc010d5f260c1cecbd446e0fb75c26dba855710da85a0f49ed12e4a98811e40b2cd24a470e3ff48ab6c1887d36fa68f79440321685d00a069586b7641a84494a7674454f8953058b6497a4f67d0c6182b46e5449b93c281b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830201c00a832fefba82cf0884578418c78d64616f2d686172642d666f726ba0e98ad9119e8a1903f597415987eb7fa54aded27442e0c241187068699c6c124e88f98decbfb346a271f84df84b080182ea608001801ba066a8a933ff9208ecb2334a7edcf0592751d68e5e9cf155814238cd3072a7d38ba02cd8720983a8172b1304aad194d3f2ea3daeaf5c51bc3dc983d8218448f063bdf901faf901f7a0f47d2dba3b077187b315cf126aad5e8f4b761b9056f0fe0aa25cfb1a568150faa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07ff10e11aa347e565a1554d91d017eff6430b78919964cae10e41369cb9ed9b7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302018009832fefba8084578418c680a0a1cf856b4a26aed51fff7c25960a2f5a1746eb17043824c4e7457e77f006add0884682e0af0e40f779"
+ },
+ {
+ "blocknumber" : "11",
+ "rlp" : "0xf905fff90204a0465d949f966ef556759cd1da49cb067358276bdfe2cbd737b49e7242a66e0e3ea0d1038d662743c1ead9586287ab3eeb12a86042ba670f90252ed23a7704cdec97948888f1f195afa192cfee860698584c030f4c9db1a0e29d166bbe4cadabb95581d58830046b24c531183aafcec9ab5714f549d49649a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830201800a832fefba8084578418cf8d64616f2d686172642d666f726ba08887e7062a062b31b091ceddf24c937d4405c2e0e3ee5550907fc680e1330c22883fe7901d125c0363c0f903f4f901f7a0f47d2dba3b077187b315cf126aad5e8f4b761b9056f0fe0aa25cfb1a568150faa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07ff10e11aa347e565a1554d91d017eff6430b78919964cae10e41369cb9ed9b7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302018009832fefba8084578418cb80a03d1087f5082092c70283c661f2ea42c07261544566c729e3a369be6f180b26e688c6c99feae1660a3cf901f7a0465d949f966ef556759cd1da49cb067358276bdfe2cbd737b49e7242a66e0e3ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ab2d35f61c8354793f4b1e25466f89383d5cd924b62c45784abdcde5b9cb3156a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830201800a832fefba8084578418cc80a09613b0cbfa1f5d91c489abb1077dc86486a3c35f3c5a34ebe1e513bc4024346388ac4eaec71ef57672"
+ },
+ {
+ "blockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020140",
+ "extraData" : "0x64616f2d686172642d666f726b",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x5208",
+ "hash" : "66dcff2fd43447455e361af4c638415d7b0f1f3175abbf907d32f9a7a9cf8cf7",
+ "mixHash" : "0a505d3ce763f7ecefa4c9a34ebaee6ce8298a7c7c81d4c2431d50159cfca30b",
+ "nonce" : "4a7a73f6d266198b",
+ "number" : "0x0a",
+ "parentHash" : "465d949f966ef556759cd1da49cb067358276bdfe2cbd737b49e7242a66e0e3e",
+ "receiptTrie" : "ad35c45d79ae130f298960a3594a48071fcb8bebfccd435fdc1a4aec95edb272",
+ "stateRoot" : "96fe7230a72b9470e988f50be548baaaa497913235d9adea33be4ce46613aed2",
+ "timestamp" : "0x578418d9",
+ "transactionsTrie" : "916147a0805a950d8cc91ea336b3b7237474ac724029dc99f96b07eef085e4d7",
+ "uncleHash" : "1f79c072acb5bf959343b61d16963b2562e7fda1d9bc14d4b4af57de907ccef1"
+ },
+ "blocknumber" : "10",
+ "rlp" : "0xf9067df90206a0465d949f966ef556759cd1da49cb067358276bdfe2cbd737b49e7242a66e0e3ea01f79c072acb5bf959343b61d16963b2562e7fda1d9bc14d4b4af57de907ccef1948888f1f195afa192cfee860698584c030f4c9db1a096fe7230a72b9470e988f50be548baaaa497913235d9adea33be4ce46613aed2a0916147a0805a950d8cc91ea336b3b7237474ac724029dc99f96b07eef085e4d7a0ad35c45d79ae130f298960a3594a48071fcb8bebfccd435fdc1a4aec95edb272b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830201400a832fefba82520884578418d98d64616f2d686172642d666f726ba00a505d3ce763f7ecefa4c9a34ebaee6ce8298a7c7c81d4c2431d50159cfca30b884a7a73f6d266198bf861f85f080182ea609410000000000000000000000000000000000000106f801ba047acd0e2edbc13fbfed74b1b5e6f5afaae464ff6662fc15fc76cf16f6821a72da02e989a61feb7751d802ec9ec12d30a6c419a65c8ba6acd96857a73c18b6a5564f9040ef90204a0bb4f9818a9f879e3c584567919cd062474c37a9139eb447609bed432b13b5f49a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0219ec50b26a20c420f96b8905f669455145efef0233e52a39c2d338b52a60f8ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200c008832fefba8084578418d58d64616f2d686172642d666f726ba09d1e75c86979d104eb43440c30f4ba498554416eac73224ecbb785167a8925b1883c1505c6b7aeae94f90204a0f47d2dba3b077187b315cf126aad5e8f4b761b9056f0fe0aa25cfb1a568150faa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07ff10e11aa347e565a1554d91d017eff6430b78919964cae10e41369cb9ed9b7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302014009832fefba8084578418d58d64616f2d686172642d666f726ba08dfa01d1a190349ea73c36e380997c866826ceea8f19ddf554cf3ec672741c2f88cd117ec41480468c",
+ "transactions" : [
+ {
+ "data" : "0x",
+ "gasLimit" : "0xea60",
+ "gasPrice" : "0x01",
+ "nonce" : "0x08",
+ "r" : "0x47acd0e2edbc13fbfed74b1b5e6f5afaae464ff6662fc15fc76cf16f6821a72d",
+ "s" : "0x2e989a61feb7751d802ec9ec12d30a6c419a65c8ba6acd96857a73c18b6a5564",
+ "to" : "1000000000000000000000000000000000000010",
+ "v" : "0x1b",
+ "value" : "0x6f"
+ }
+ ],
+ "uncleHeaders" : [
+ {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "0000000000000000000000000000000000000000",
+ "difficulty" : "0x0200c0",
+ "extraData" : "0x64616f2d686172642d666f726b",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x00",
+ "hash" : "0f635777fef46428bb4cb1fea91dd9fbe99d80cc0b947639260feb3115d98aab",
+ "mixHash" : "9d1e75c86979d104eb43440c30f4ba498554416eac73224ecbb785167a8925b1",
+ "nonce" : "3c1505c6b7aeae94",
+ "number" : "0x08",
+ "parentHash" : "bb4f9818a9f879e3c584567919cd062474c37a9139eb447609bed432b13b5f49",
+ "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "stateRoot" : "219ec50b26a20c420f96b8905f669455145efef0233e52a39c2d338b52a60f8c",
+ "timestamp" : "0x578418d5",
+ "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "0000000000000000000000000000000000000000",
+ "difficulty" : "0x020140",
+ "extraData" : "0x64616f2d686172642d666f726b",
+ "gasLimit" : "0x2fefba",
+ "gasUsed" : "0x00",
+ "hash" : "e992e2c4e473dd062d96354a116612029f7a5e9da4c887bcdfa74d799f2d4cb9",
+ "mixHash" : "8dfa01d1a190349ea73c36e380997c866826ceea8f19ddf554cf3ec672741c2f",
+ "nonce" : "cd117ec41480468c",
+ "number" : "0x09",
+ "parentHash" : "f47d2dba3b077187b315cf126aad5e8f4b761b9056f0fe0aa25cfb1a568150fa",
+ "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "stateRoot" : "7ff10e11aa347e565a1554d91d017eff6430b78919964cae10e41369cb9ed9b7",
+ "timestamp" : "0x578418d5",
+ "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ }
+ ]
+ }
+ ],
+ "genesisBlockHeader" : {
+ "bloom" : "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "coinbase" : "8888f1f195afa192cfee860698584c030f4c9db1",
+ "difficulty" : "0x020000",
+ "extraData" : "0x42",
+ "gasLimit" : "0x2fefd8",
+ "gasUsed" : "0x00",
+ "hash" : "eb310def4877fc94c3945bdabd9ba6bbafff1c74944b2bd74a4ac01f0868804c",
+ "mixHash" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "nonce" : "0102030405060708",
+ "number" : "0x00",
+ "parentHash" : "0000000000000000000000000000000000000000000000000000000000000000",
+ "receiptTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "stateRoot" : "4eda2e603f5b9ad6e92c0cba602372d0a0cd2e776a17b61a7a20225ffa7643d7",
+ "timestamp" : "0x54c98c81",
+ "transactionsTrie" : "56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "uncleHash" : "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
+ },
+ "genesisRLP" : "0xf901fcf901f7a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a04eda2e603f5b9ad6e92c0cba602372d0a0cd2e776a17b61a7a20225ffa7643d7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302000080832fefd8808454c98c8142a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421880102030405060708c0c0",
+ "lastblockhash" : "66dcff2fd43447455e361af4c638415d7b0f1f3175abbf907d32f9a7a9cf8cf7",
+ "postState" : {
+ "0000000000000000000000000000000000000000" : {
+ "balance" : "0xea300b17a8b78000",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "0c243ebe6a031753dc0dd850acf422844a3efb76" : {
+ "balance" : "0x0a",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "1000000000000000000000000000000000000007" : {
+ "balance" : "0x0a",
+ "code" : "0x73807640a13483f8ac783c557fcdf27be11ea4ac7a31600055",
+ "nonce" : "0x00",
+ "storage" : {
+ "0x00" : "0x02540be400"
+ }
+ },
+ "1000000000000000000000000000000000000008" : {
+ "balance" : "0x01",
+ "code" : "0x73807640a13483f8ac783c557fcdf27be11ea4ac7a31600055",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "1000000000000000000000000000000000000010" : {
+ "balance" : "0x6f",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "17802f43a0137c506ba92291391a8a8f207f487d" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "248f0f0f33eadb89e9d87fd5c127f58567f3ffde" : {
+ "balance" : "0x0a",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "2b3455ec7fedf16e646268bf88846bd7a2319bb2" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "304a554a310c7e546dfe434669c62820b7d83490" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "4613f3bca5c44ea06337a9e439fbc6d42e501d0a" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : {
+ "balance" : "0x0a",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "7602b46df5390e432ef1c307d4f2c9ff6d65cc97" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "807640a13483f8ac783c557fcdf27be11ea4ac7a" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "84ef4b2357079cd7a7c69fd7a37cd0609a679106" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "85c2f277588ea1e6901ed59e587bea222c575f87" : {
+ "balance" : "0x0a",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "8888f1f195afa192cfee860698584c030f4c9db1" : {
+ "balance" : "0x02be902146fa2abe24",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "914d1b8b43e92723e64fd0a06f5bdb8dd9b10c79" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "0x3b968b26",
+ "code" : "0x",
+ "nonce" : "0x09",
+ "storage" : {
+ }
+ },
+ "abcabcabcabcabcabcabcabcabcabcabcabcabca" : {
+ "balance" : "0x2c3cf12e40",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "accc230e8a6e5be9160b8cdf2864dd2a001c28b6" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "aeeb8ff27288bdabc0fa5ebb731b6f409507516c" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "b136707642a4ea12fb4bae820f03d2562ebff487" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "b1d37cf6180ceb738ca45b5005a2f418c02e204b" : {
+ "balance" : "0x0a",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "bb9bc244d798123fde783fcc1c72d3bb8c189413" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "ca544e5c4687d109611d0f8f928b53a25af72448" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "cbb9d3703e651b0d496cdefb8b92c25aeb2171f7" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "d343b217de44030afaa275f54d31a9317c7f441e" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "da2fef9e4a3230988ff17df2165440f37e8b1708" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "dbe9b615a3ae8709af8b93336ce9b477e4ac0940" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : {
+ "balance" : "0x0a",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "f14c14075d6c4ed84b86798af0956deef67365b5" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "f4c64518ea10f995918a454158c6b61407ea345c" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "fe24cdd8648121a43a7c86d289be4dd2951ed49f" : {
+ "balance" : "0x00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "1000000000000000000000000000000000000007" : {
+ "balance" : "0x00",
+ "code" : "0x73807640a13483f8ac783c557fcdf27be11ea4ac7a31600055",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "1000000000000000000000000000000000000008" : {
+ "balance" : "0x00",
+ "code" : "0x73807640a13483f8ac783c557fcdf27be11ea4ac7a31600055",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "17802f43a0137c506ba92291391a8a8f207f487d" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "2b3455ec7fedf16e646268bf88846bd7a2319bb2" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "304a554a310c7e546dfe434669c62820b7d83490" : {
+ "balance" : "0x0f4240",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "4613f3bca5c44ea06337a9e439fbc6d42e501d0a" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "7602b46df5390e432ef1c307d4f2c9ff6d65cc97" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "807640a13483f8ac783c557fcdf27be11ea4ac7a" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "84ef4b2357079cd7a7c69fd7a37cd0609a679106" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "914d1b8b43e92723e64fd0a06f5bdb8dd9b10c79" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "0x3b9aca00",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "accc230e8a6e5be9160b8cdf2864dd2a001c28b6" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "aeeb8ff27288bdabc0fa5ebb731b6f409507516c" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "b136707642a4ea12fb4bae820f03d2562ebff487" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "bb9bc244d798123fde783fcc1c72d3bb8c189413" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "ca544e5c4687d109611d0f8f928b53a25af72448" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "cbb9d3703e651b0d496cdefb8b92c25aeb2171f7" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "d343b217de44030afaa275f54d31a9317c7f441e" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "da2fef9e4a3230988ff17df2165440f37e8b1708" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "dbe9b615a3ae8709af8b93336ce9b477e4ac0940" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "f14c14075d6c4ed84b86798af0956deef67365b5" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "f4c64518ea10f995918a454158c6b61407ea345c" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ },
+ "fe24cdd8648121a43a7c86d289be4dd2951ed49f" : {
+ "balance" : "0x02540be400",
+ "code" : "0x",
+ "nonce" : "0x00",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/util.go b/tests/util.go
index 877e1acdb7..8d1917d15b 100644
--- a/tests/util.go
+++ b/tests/util.go
@@ -141,6 +141,8 @@ type VmTest struct {
type RuleSet struct {
HomesteadBlock *big.Int
+ DAOForkBlock *big.Int
+ DAOForkSupport bool
}
func (r RuleSet) IsHomestead(n *big.Int) bool {
diff --git a/tests/vm_test_util.go b/tests/vm_test_util.go
index 2f516951b8..37f0af33c5 100644
--- a/tests/vm_test_util.go
+++ b/tests/vm_test_util.go
@@ -241,7 +241,7 @@ func RunVm(state *state.StateDB, env, exec map[string]string) ([]byte, vm.Logs,
caller := state.GetOrNewStateObject(from)
- vmenv := NewEnvFromMap(RuleSet{params.MainNetHomesteadBlock}, state, env, exec)
+ vmenv := NewEnvFromMap(RuleSet{params.MainNetHomesteadBlock, params.MainNetDAOForkBlock, true}, state, env, exec)
vmenv.vmTest = true
vmenv.skipTransfer = true
vmenv.initial = true