浏览代码

Trie => SecureTrie

obscuren 10 年之前
父节点
当前提交
b909a5ec18
共有 3 个文件被更改,包括 7 次插入3 次删除
  1. 1 1
      state/state_object.go
  2. 2 2
      state/statedb.go
  3. 4 0
      trie/secure_trie.go

+ 1 - 1
state/state_object.go

@@ -290,7 +290,7 @@ func (c *StateObject) Init() Code {
 	return c.initCode
 }
 
-func (self *StateObject) Trie() *trie.Trie {
+func (self *StateObject) Trie() *trie.SecureTrie {
 	return self.State.trie
 }
 

+ 2 - 2
state/statedb.go

@@ -18,7 +18,7 @@ var statelogger = logger.NewLogger("STATE")
 // * Accounts
 type StateDB struct {
 	db   ethutil.Database
-	trie *trie.Trie
+	trie *trie.SecureTrie
 
 	stateObjects map[string]*StateObject
 
@@ -29,7 +29,7 @@ type StateDB struct {
 
 // Create a new state from a given trie
 func New(root []byte, db ethutil.Database) *StateDB {
-	trie := trie.New(ethutil.CopyBytes(root), db)
+	trie := trie.NewSecure(ethutil.CopyBytes(root), db)
 	return &StateDB{db: db, trie: trie, stateObjects: make(map[string]*StateObject), refund: make(map[string]*big.Int)}
 }
 

+ 4 - 0
trie/secure_trie.go

@@ -30,3 +30,7 @@ func (self *SecureTrie) Delete(key []byte) Node {
 func (self *SecureTrie) DeleteString(key string) Node {
 	return self.Delete([]byte(key))
 }
+
+func (self *SecureTrie) Copy() *SecureTrie {
+	return &SecureTrie{self.Trie.Copy()}
+}