Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
whqwjb
go-ethereum
提交
80a2a35b
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,发现更多精彩内容 >>
未验证
提交
80a2a35b
编写于
4月 05, 2019
作者:
P
Péter Szilágyi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
trie: there's no point in retrieving the metaroot
上级
fca5f9fd
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
38 addition
and
0 deletion
+38
-0
trie/database.go
trie/database.go
+5
-0
trie/database_test.go
trie/database_test.go
+33
-0
未找到文件。
trie/database.go
浏览文件 @
80a2a35b
...
...
@@ -17,6 +17,7 @@
package
trie
import
(
"errors"
"fmt"
"io"
"sync"
...
...
@@ -391,6 +392,10 @@ func (db *Database) node(hash common.Hash, cachegen uint16) node {
// Node retrieves an encoded cached trie node from memory. If it cannot be found
// cached, the method queries the persistent database for the content.
func
(
db
*
Database
)
Node
(
hash
common
.
Hash
)
([]
byte
,
error
)
{
// It doens't make sense to retrieve the metaroot
if
hash
==
(
common
.
Hash
{})
{
return
nil
,
errors
.
New
(
"not found"
)
}
// Retrieve the node from the clean cache if available
if
db
.
cleans
!=
nil
{
if
enc
,
err
:=
db
.
cleans
.
Get
(
string
(
hash
[
:
]));
err
==
nil
&&
enc
!=
nil
{
...
...
trie/database_test.go
0 → 100644
浏览文件 @
80a2a35b
// Copyright 2019 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 <http://www.gnu.org/licenses/>.
package
trie
import
(
"testing"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/ethdb"
)
// Tests that the trie database returns a missing trie node error if attempting
// to retrieve the meta root.
func
TestDatabaseMetarootFetch
(
t
*
testing
.
T
)
{
db
:=
NewDatabase
(
ethdb
.
NewMemDatabase
())
if
_
,
err
:=
db
.
Node
(
common
.
Hash
{});
err
==
nil
{
t
.
Fatalf
(
"metaroot retrieval succeeded"
)
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录