Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
f7d3f616
提交
f7d3f616
authored
10月 27, 2016
作者:
Jeromy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
clean up some code, update cbor package, and add tests
License: MIT Signed-off-by:
Jeromy
<
why@ipfs.io
>
上级
6b797f10
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
78 行增加
和
43 行删除
+78
-43
dag.go
core/commands/dag/dag.go
+16
-36
merkledag.go
merkledag/merkledag.go
+1
-5
package.json
package.json
+2
-2
t0053-dag.sh
test/sharness/t0053-dag.sh
+59
-0
没有找到文件。
core/commands/dag/dag.go
浏览文件 @
f7d3f616
...
...
@@ -10,7 +10,7 @@ import (
node
"gx/ipfs/QmU7bFWQ793qmvNy7outdCaMfSDNk8uqhx4VNrxYj5fj5g/go-ipld-node"
cid
"gx/ipfs/QmXfiyr2RWEXpVDdaYnD2HNiBk6UBddsvEP4RPfXb6nGqY/go-cid"
ipldcbor
"gx/ipfs/QmY
RzW9YDHVNCDbfFzbS7TEXAG1swE1yjq1basZ5WnJYH4
/go-ipld-cbor"
ipldcbor
"gx/ipfs/QmY
7L2aEa1rHjkSSbXJB8oC7825JTpUUvDygmM2JPQeqhr
/go-ipld-cbor"
)
var
DagCmd
=
&
cmds
.
Command
{
...
...
@@ -37,8 +37,8 @@ var DagPutCmd = &cmds.Command{
cmds
.
FileArg
(
"object data"
,
true
,
false
,
"The object to put"
)
.
EnableStdin
(),
},
Options
:
[]
cmds
.
Option
{
cmds
.
StringOption
(
"format"
,
"f"
,
"Format that the object will be."
)
.
Default
(
"cbor"
),
cmds
.
StringOption
(
"input-enc"
,
"Format that the object will be."
)
.
Default
(
"json"
),
cmds
.
StringOption
(
"format"
,
"f"
,
"Format that the object will be
added as
."
)
.
Default
(
"cbor"
),
cmds
.
StringOption
(
"input-enc"
,
"Format that the
input
object will be."
)
.
Default
(
"json"
),
},
Run
:
func
(
req
cmds
.
Request
,
res
cmds
.
Response
)
{
n
,
err
:=
req
.
InvocContext
()
.
GetNode
()
...
...
@@ -55,17 +55,10 @@ var DagPutCmd = &cmds.Command{
ienc
,
_
,
_
:=
req
.
Option
(
"input-enc"
)
.
String
()
format
,
_
,
_
:=
req
.
Option
(
"format"
)
.
String
()
_
=
format
switch
ienc
{
case
"json"
:
var
obj
map
[
string
]
interface
{}
err
:=
json
.
NewDecoder
(
fi
)
.
Decode
(
&
obj
)
if
err
!=
nil
{
res
.
SetError
(
err
,
cmds
.
ErrNormal
)
return
}
nd
,
err
:=
convertJsonToType
(
obj
,
format
)
nd
,
err
:=
convertJsonToType
(
fi
,
format
)
if
err
!=
nil
{
res
.
SetError
(
err
,
cmds
.
ErrNormal
)
return
...
...
@@ -79,29 +72,9 @@ var DagPutCmd = &cmds.Command{
res
.
SetOutput
(
&
OutputObject
{
Cid
:
c
})
return
/*
case "btc":
data, err := ioutil.ReadAll(fi)
if err != nil {
res.SetError(err, cmds.ErrNormal)
return
}
blk, err := ipldbtc.DecodeBlock(data)
if err != nil {
res.SetError(err, cmds.ErrNormal)
return
}
c, err := n.DAG.Add(blk)
if err != nil {
res.SetError(err, cmds.ErrNormal)
return
}
res.SetOutput(&OutputObject{Cid: c})
return
*/
default
:
res
.
SetError
(
fmt
.
Errorf
(
"unrecognized input encoding: %s"
,
ienc
),
cmds
.
ErrNormal
)
return
}
},
Type
:
OutputObject
{},
...
...
@@ -147,7 +120,13 @@ var DagGetCmd = &cmds.Command{
},
}
func
convertJsonToType
(
obj
map
[
string
]
interface
{},
format
string
)
(
node
.
Node
,
error
)
{
func
convertJsonToType
(
r
io
.
Reader
,
format
string
)
(
node
.
Node
,
error
)
{
var
obj
map
[
string
]
interface
{}
err
:=
json
.
NewDecoder
(
r
)
.
Decode
(
&
obj
)
if
err
!=
nil
{
return
nil
,
err
}
switch
format
{
case
"cbor"
,
"dag-cbor"
:
return
convertJsonToCbor
(
obj
)
...
...
@@ -166,6 +145,7 @@ func convertJsonToCbor(from map[string]interface{}) (*ipldcbor.Node, error) {
return
ipldcbor
.
WrapMap
(
out
)
}
func
convertMapSIToCbor
(
from
map
[
string
]
interface
{})
(
map
[
interface
{}]
interface
{},
error
)
{
to
:=
make
(
map
[
interface
{}]
interface
{})
for
k
,
v
:=
range
from
{
...
...
merkledag/merkledag.go
浏览文件 @
f7d3f616
...
...
@@ -14,7 +14,7 @@ import (
logging
"gx/ipfs/QmSpJByNKFX1sCsHBEp3R73FL4NF6FnQTEGyNAXHm2GS52/go-log"
node
"gx/ipfs/QmU7bFWQ793qmvNy7outdCaMfSDNk8uqhx4VNrxYj5fj5g/go-ipld-node"
cid
"gx/ipfs/QmXfiyr2RWEXpVDdaYnD2HNiBk6UBddsvEP4RPfXb6nGqY/go-cid"
ipldcbor
"gx/ipfs/QmY
RzW9YDHVNCDbfFzbS7TEXAG1swE1yjq1basZ5WnJYH4
/go-ipld-cbor"
ipldcbor
"gx/ipfs/QmY
7L2aEa1rHjkSSbXJB8oC7825JTpUUvDygmM2JPQeqhr
/go-ipld-cbor"
)
var
log
=
logging
.
Logger
(
"merkledag"
)
...
...
@@ -108,10 +108,6 @@ func decodeBlock(b blocks.Block) (node.Node, error) {
return
NewRawNode
(
b
.
RawData
()),
nil
case
cid
.
CBOR
:
return
ipldcbor
.
Decode
(
b
.
RawData
())
/*
case cid.Bitcoin:
return ipldbtc.DecodeBlock(b.RawData())
*/
default
:
return
nil
,
fmt
.
Errorf
(
"unrecognized object type: %s"
,
c
.
Type
())
}
...
...
package.json
浏览文件 @
f7d3f616
...
...
@@ -278,9 +278,9 @@
},
{
"author"
:
"whyrusleeping"
,
"hash"
:
"QmY
RzW9YDHVNCDbfFzbS7TEXAG1swE1yjq1basZ5WnJYH4
"
,
"hash"
:
"QmY
7L2aEa1rHjkSSbXJB8oC7825JTpUUvDygmM2JPQeqhr
"
,
"name"
:
"go-ipld-cbor"
,
"version"
:
"0.2.
1
"
"version"
:
"0.2.
2
"
}
],
"gxVersion"
:
"0.4.0"
,
...
...
test/sharness/t0053-dag.sh
0 → 100755
浏览文件 @
f7d3f616
#!/bin/sh
#
# Copyright (c) 2016 Jeromy Johnson
# MIT Licensed; see the LICENSE file in this repository.
#
test_description
=
"Test dag command"
.
lib/test-lib.sh
test_init_ipfs
test_expect_success
"make a few test files"
'
echo "foo" > file1 &&
echo "bar" > file2 &&
echo "baz" > file3 &&
echo "qux" > file4 &&
HASH1=$(ipfs add -q file1) &&
HASH2=$(ipfs add -q file2) &&
HASH3=$(ipfs add -q file3) &&
HASH4=$(ipfs add -q file4)
'
test_expect_success
"make an ipld object in json"
'
printf "{\"hello\":\"world\",\"cats\":[{\"/\":\"%s\"},{\"water\":{\"/\":\"%s\"}}],\"magic\":{\"/\":\"%s\"}}" $HASH1 $HASH2 $HASH3 > ipld_object
'
test_dag_cmd
()
{
test_expect_success
"can add an ipld object"
'
IPLDHASH=$(cat ipld_object | ipfs dag put)
'
test_expect_success
"output looks correct"
'
EXPHASH="zdpuApvChR5xM7ttbQmpmtna7wcShHi4gPyxUcWbB7nh8K7cN"
test $EXPHASH = $IPLDHASH
'
test_expect_success
"various path traversals work"
'
ipfs cat $IPLDHASH/cats/0 > out1 &&
ipfs cat $IPLDHASH/cats/1/water > out2 &&
ipfs cat $IPLDHASH/magic > out3
'
test_expect_success
"outputs look correct"
'
test_cmp file1 out1 &&
test_cmp file2 out2 &&
test_cmp file3 out3
'
}
# should work offline
test_dag_cmd
# should work online
test_launch_ipfs_daemon
test_dag_cmd
test_kill_ipfs_daemon
test_done
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论