Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
8a47786c
提交
8a47786c
authored
3月 31, 2017
作者:
Kevin Atkinson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
hamt: support using CIDv1 by allowing the prefix to be set
License: MIT Signed-off-by:
Kevin Atkinson
<
k@kevina.org
>
上级
076d0bd9
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
29 行增加
和
4 行删除
+29
-4
t0260-sharding-flag.sh
test/sharness/t0260-sharding-flag.sh
+19
-0
hamt.go
unixfs/hamt/hamt.go
+7
-0
dirbuilder.go
unixfs/io/dirbuilder.go
+3
-4
没有找到文件。
test/sharness/t0260-sharding-flag.sh
浏览文件 @
8a47786c
...
...
@@ -55,4 +55,23 @@ test_expect_success "sharded and unsharded output look the same" '
test_cmp sharded_out unsharded_out
'
test_add_large_dir_v1
()
{
exphash
=
"
$1
"
test_expect_success
"ipfs add (CIDv1) on very large directory succeeds"
'
ipfs add -r -q --cid-version=1 testdata | tail -n1 > sharddir_out &&
echo "$exphash" > sharddir_exp &&
test_cmp sharddir_exp sharddir_out
'
}
# this hash implies both the directory and the leaf entries are CIDv1
SHARDEDV1
=
"zdj7WX91spg4DsnNpvoBLjyjXUGgcTTWavygBbSifpmJdgPUA"
test_add_large_dir_v1
"
$SHARDEDV1
"
test_launch_ipfs_daemon
test_add_large_dir_v1
"
$SHARDEDV1
"
test_kill_ipfs_daemon
test_done
unixfs/hamt/hamt.go
浏览文件 @
8a47786c
...
...
@@ -31,6 +31,7 @@ import (
format
"github.com/ipfs/go-ipfs/unixfs"
upb
"github.com/ipfs/go-ipfs/unixfs/pb"
cid
"gx/ipfs/QmYhQaCYEcaPPjxJX7YcPcVKkQfRy6sJ7B3XmGFk82XYdQ/go-cid"
proto
"gx/ipfs/QmZ4Qi3GaRbjcx28Sme5eMH7RQjGkt8wHxt2a65oLaeFEV/gogo-protobuf/proto"
node
"gx/ipfs/Qmb3Hm9QDFmfYuET4pu7Kyg8JV78jFa1nvZx5vnCZsK4ck/go-ipld-format"
"gx/ipfs/QmfJHywXQu98UeZtGJBQrPAR6AtmDjjbe3qjTo9piXHPnx/murmur3"
...
...
@@ -50,6 +51,7 @@ type HamtShard struct {
tableSize
int
tableSizeLg2
int
prefix
*
cid
.
Prefix
hashFunc
uint64
prefixPadStr
string
...
...
@@ -123,9 +125,14 @@ func NewHamtFromDag(dserv dag.DAGService, nd node.Node) (*HamtShard, error) {
return
ds
,
nil
}
func
(
ds
*
HamtShard
)
SetPrefix
(
prefix
*
cid
.
Prefix
)
{
ds
.
prefix
=
prefix
}
// Node serializes the HAMT structure into a merkledag node with unixfs formatting
func
(
ds
*
HamtShard
)
Node
()
(
node
.
Node
,
error
)
{
out
:=
new
(
dag
.
ProtoNode
)
out
.
SetPrefix
(
ds
.
prefix
)
// TODO: optimized 'for each set bit'
for
i
:=
0
;
i
<
ds
.
tableSize
;
i
++
{
...
...
unixfs/io/dirbuilder.go
浏览文件 @
8a47786c
...
...
@@ -85,10 +85,9 @@ func (d *Directory) SetPrefix(prefix *cid.Prefix) {
if
d
.
dirnode
!=
nil
{
d
.
dirnode
.
SetPrefix
(
prefix
)
}
// FIXME: Should we do this? -- kevina
//if d.shard != nil {
// d.shard.SetPrefix(prefix)
//}
if
d
.
shard
!=
nil
{
d
.
shard
.
SetPrefix
(
prefix
)
}
}
// AddChild adds a (name, key)-pair to the root node.
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论