Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
whqwjb
go-ethereum
提交
ae45a39d
G
go-ethereum
项目概览
whqwjb
/
go-ethereum
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
go-ethereum
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ae45a39d
编写于
2月 28, 2015
作者:
O
obscuren
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Secure trie
上级
7ab13e0f
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
33 addition
and
3 deletion
+33
-3
cmd/evm/main.go
cmd/evm/main.go
+0
-1
core/execution.go
core/execution.go
+1
-1
trie/secure_trie.go
trie/secure_trie.go
+32
-0
trie/trie_test.go
trie/trie_test.go
+0
-1
未找到文件。
cmd/evm/main.go
浏览文件 @
ae45a39d
...
...
@@ -65,7 +65,6 @@ func main() {
statedb
:=
state
.
New
(
nil
,
db
)
sender
:=
statedb
.
NewStateObject
([]
byte
(
"sender"
))
receiver
:=
statedb
.
NewStateObject
([]
byte
(
"receiver"
))
//receiver.SetCode([]byte(*code))
receiver
.
SetCode
(
ethutil
.
Hex2Bytes
(
*
code
))
vmenv
:=
NewEnv
(
statedb
,
[]
byte
(
"evmuser"
),
ethutil
.
Big
(
*
value
))
...
...
core/execution.go
浏览文件 @
ae45a39d
...
...
@@ -61,10 +61,10 @@ func (self *Execution) exec(code, contextAddr []byte, caller vm.ContextRef) (ret
snapshot
:=
env
.
State
()
.
Copy
()
start
:=
time
.
Now
()
ret
,
err
=
evm
.
Run
(
to
,
caller
,
code
,
self
.
value
,
self
.
Gas
,
self
.
price
,
self
.
input
)
chainlogger
.
Debugf
(
"vm took %v
\n
"
,
time
.
Since
(
start
))
if
err
!=
nil
{
env
.
State
()
.
Set
(
snapshot
)
}
chainlogger
.
Debugf
(
"vm took %v
\n
"
,
time
.
Since
(
start
))
return
}
...
...
trie/secure_trie.go
0 → 100644
浏览文件 @
ae45a39d
package
trie
import
"github.com/ethereum/go-ethereum/crypto"
type
SecureTrie
struct
{
*
Trie
}
func
NewSecure
(
root
[]
byte
,
backend
Backend
)
*
SecureTrie
{
return
&
SecureTrie
{
New
(
root
,
backend
)}
}
func
(
self
*
SecureTrie
)
Update
(
key
,
value
[]
byte
)
Node
{
return
self
.
Trie
.
Update
(
crypto
.
Sha3
(
key
),
value
)
}
func
(
self
*
SecureTrie
)
UpdateString
(
key
,
value
string
)
Node
{
return
self
.
Update
([]
byte
(
key
),
[]
byte
(
value
))
}
func
(
self
*
SecureTrie
)
Get
(
key
[]
byte
)
[]
byte
{
return
self
.
Trie
.
Get
(
crypto
.
Sha3
(
key
))
}
func
(
self
*
SecureTrie
)
GetString
(
key
string
)
[]
byte
{
return
self
.
Get
([]
byte
(
key
))
}
func
(
self
*
SecureTrie
)
Delete
(
key
[]
byte
)
Node
{
return
self
.
Trie
.
Delete
(
crypto
.
Sha3
(
key
))
}
func
(
self
*
SecureTrie
)
DeletString
(
key
string
)
Node
{
return
self
.
Delete
([]
byte
(
key
))
}
trie/trie_test.go
浏览文件 @
ae45a39d
...
...
@@ -274,7 +274,6 @@ func TestLargeData(t *testing.T) {
trie
.
Update
(
value2
.
k
,
value2
.
v
)
vals
[
string
(
value
.
k
)]
=
value
vals
[
string
(
value2
.
k
)]
=
value2
fmt
.
Println
(
value
,
"
\n
"
,
value2
)
}
it
:=
trie
.
Iterator
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录