aboutsummaryrefslogtreecommitdiffstats
path: root/ethchain/block_chain.go
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-10-08 17:59:44 +0800
committerobscuren <geffobscura@gmail.com>2014-10-08 17:59:44 +0800
commitb417766b36f46316cbae6fa42815f1a519e5f733 (patch)
treeaba26c0aefdcda3c3cd4b3583b84a2b2ebcf1efd /ethchain/block_chain.go
parent0015ce1e353f52cca818d11f566b9a656fb85f24 (diff)
downloadgo-tangerine-b417766b36f46316cbae6fa42815f1a519e5f733.tar
go-tangerine-b417766b36f46316cbae6fa42815f1a519e5f733.tar.gz
go-tangerine-b417766b36f46316cbae6fa42815f1a519e5f733.tar.bz2
go-tangerine-b417766b36f46316cbae6fa42815f1a519e5f733.tar.lz
go-tangerine-b417766b36f46316cbae6fa42815f1a519e5f733.tar.xz
go-tangerine-b417766b36f46316cbae6fa42815f1a519e5f733.tar.zst
go-tangerine-b417766b36f46316cbae6fa42815f1a519e5f733.zip
Minor tweaks for poc7
Diffstat (limited to 'ethchain/block_chain.go')
-rw-r--r--ethchain/block_chain.go34
1 files changed, 22 insertions, 12 deletions
diff --git a/ethchain/block_chain.go b/ethchain/block_chain.go
index 467c54058..113e313ac 100644
--- a/ethchain/block_chain.go
+++ b/ethchain/block_chain.go
@@ -78,6 +78,22 @@ func (bc *BlockChain) NewBlock(coinbase []byte) *Block {
return block
}
+func (bc *BlockChain) Reset() {
+ AddTestNetFunds(bc.genesisBlock)
+
+ bc.genesisBlock.state.Trie.Sync()
+ // Prepare the genesis block
+ bc.Add(bc.genesisBlock)
+ fk := append([]byte("bloom"), bc.genesisBlock.Hash()...)
+ bc.Ethereum.Db().Put(fk, make([]byte, 255))
+ bc.CurrentBlock = bc.genesisBlock
+
+ bc.SetTotalDifficulty(ethutil.Big("0"))
+
+ // Set the last know difficulty (might be 0x0 as initial value, Genesis)
+ bc.TD = ethutil.BigD(ethutil.Config.Db.LastKnownTD())
+}
+
func (bc *BlockChain) HasBlock(hash []byte) bool {
data, _ := ethutil.Config.Db.Get(hash)
return len(data) != 0
@@ -149,28 +165,22 @@ func AddTestNetFunds(block *Block) {
}
func (bc *BlockChain) setLastBlock() {
- // Prep genesis
- AddTestNetFunds(bc.genesisBlock)
-
data, _ := ethutil.Config.Db.Get([]byte("LastBlock"))
if len(data) != 0 {
+ // Prep genesis
+ AddTestNetFunds(bc.genesisBlock)
+
block := NewBlockFromBytes(data)
bc.CurrentBlock = block
bc.LastBlockHash = block.Hash()
bc.LastBlockNumber = block.Number.Uint64()
+ // Set the last know difficulty (might be 0x0 as initial value, Genesis)
+ bc.TD = ethutil.BigD(ethutil.Config.Db.LastKnownTD())
} else {
- bc.genesisBlock.state.Trie.Sync()
- // Prepare the genesis block
- bc.Add(bc.genesisBlock)
- fk := append([]byte("bloom"), bc.genesisBlock.Hash()...)
- bc.Ethereum.Db().Put(fk, make([]byte, 255))
- bc.CurrentBlock = bc.genesisBlock
+ bc.Reset()
}
- // Set the last know difficulty (might be 0x0 as initial value, Genesis)
- bc.TD = ethutil.BigD(ethutil.Config.Db.LastKnownTD())
-
chainlogger.Infof("Last block (#%d) %x\n", bc.LastBlockNumber, bc.CurrentBlock.Hash())
}