aboutsummaryrefslogtreecommitdiffstats
path: root/core/blockchain.go
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2016-09-27 18:13:13 +0800
committerPéter Szilágyi <peterke@gmail.com>2016-09-28 18:32:12 +0800
commitf50c2a5c70525ddedb12beeafea5af4ae203658c (patch)
treeb2e8870786a0cbb43489a5fc787e4bfe77aac623 /core/blockchain.go
parentddadf402fcb49a4c9624441897c77de3e8cce50f (diff)
downloadgo-tangerine-f50c2a5c70525ddedb12beeafea5af4ae203658c.tar
go-tangerine-f50c2a5c70525ddedb12beeafea5af4ae203658c.tar.gz
go-tangerine-f50c2a5c70525ddedb12beeafea5af4ae203658c.tar.bz2
go-tangerine-f50c2a5c70525ddedb12beeafea5af4ae203658c.tar.lz
go-tangerine-f50c2a5c70525ddedb12beeafea5af4ae203658c.tar.xz
go-tangerine-f50c2a5c70525ddedb12beeafea5af4ae203658c.tar.zst
go-tangerine-f50c2a5c70525ddedb12beeafea5af4ae203658c.zip
[release/1.4.14] core, eth, trie: reuse trie journals in all our code
(cherry picked from commit 710435b51b97b4c688b70bda35ab9d1aa704a988)
Diffstat (limited to 'core/blockchain.go')
-rw-r--r--core/blockchain.go7
1 files changed, 6 insertions, 1 deletions
diff --git a/core/blockchain.go b/core/blockchain.go
index 5fc6b2190..9a8a72d0b 100644
--- a/core/blockchain.go
+++ b/core/blockchain.go
@@ -357,7 +357,12 @@ func (self *BlockChain) AuxValidator() pow.PoW { return self.pow }
// State returns a new mutable state based on the current HEAD block.
func (self *BlockChain) State() (*state.StateDB, error) {
- return state.New(self.CurrentBlock().Root(), self.chainDb)
+ return self.StateAt(self.CurrentBlock().Root())
+}
+
+// StateAt returns a new mutable state based on a particular point in time.
+func (self *BlockChain) StateAt(root common.Hash) (*state.StateDB, error) {
+ return self.stateCache.New(root)
}
// Reset purges the entire blockchain, restoring it to its genesis state.