Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
ea2375e8
提交
ea2375e8
authored
4月 28, 2015
作者:
Jeromy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
let wantlist command show other peers wantlists
上级
ff1e58a4
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
38 行增加
和
1 行删除
+38
-1
bitswap.go
core/commands/bitswap.go
+20
-1
bitswap.go
exchange/bitswap/bitswap.go
+8
-0
engine.go
exchange/bitswap/decision/engine.go
+10
-0
没有找到文件。
core/commands/bitswap.go
浏览文件 @
ea2375e8
...
...
@@ -3,10 +3,12 @@ package commands
import
(
"bytes"
"fmt"
"io"
cmds
"github.com/ipfs/go-ipfs/commands"
bitswap
"github.com/ipfs/go-ipfs/exchange/bitswap"
peer
"github.com/ipfs/go-ipfs/p2p/peer"
u
"github.com/ipfs/go-ipfs/util"
"io"
)
var
BitswapCmd
=
&
cmds
.
Command
{
...
...
@@ -26,6 +28,9 @@ var showWantlistCmd = &cmds.Command{
ShortDescription
:
`
Print out all blocks currently on the bitswap wantlist for the local peer`
,
},
Options
:
[]
cmds
.
Option
{
cmds
.
StringOption
(
"peer"
,
"p"
,
"specify which peer to show wantlist for (default self)"
),
},
Type
:
KeyList
{},
Run
:
func
(
req
cmds
.
Request
,
res
cmds
.
Response
)
{
nd
,
err
:=
req
.
Context
()
.
GetNode
()
...
...
@@ -39,7 +44,21 @@ Print out all blocks currently on the bitswap wantlist for the local peer`,
return
}
pstr
,
found
,
err
:=
req
.
Option
(
"peer"
)
.
String
()
if
err
!=
nil
{
res
.
SetError
(
err
,
cmds
.
ErrNormal
)
return
}
if
found
{
pid
,
err
:=
peer
.
IDB58Decode
(
pstr
)
if
err
!=
nil
{
res
.
SetError
(
err
,
cmds
.
ErrNormal
)
return
}
res
.
SetOutput
(
&
KeyList
{
bs
.
WantlistForPeer
(
pid
)})
}
else
{
res
.
SetOutput
(
&
KeyList
{
bs
.
GetWantlist
()})
}
},
Marshalers
:
cmds
.
MarshalerMap
{
cmds
.
Text
:
KeyListTextMarshaler
,
...
...
exchange/bitswap/bitswap.go
浏览文件 @
ea2375e8
...
...
@@ -175,6 +175,14 @@ func (bs *Bitswap) GetBlock(parent context.Context, k u.Key) (*blocks.Block, err
}
}
func
(
bs
*
Bitswap
)
WantlistForPeer
(
p
peer
.
ID
)
[]
u
.
Key
{
var
out
[]
u
.
Key
for
_
,
e
:=
range
bs
.
engine
.
WantlistForPeer
(
p
)
{
out
=
append
(
out
,
e
.
Key
)
}
return
out
}
// GetBlocks returns a channel where the caller may receive blocks that
// correspond to the provided |keys|. Returns an error if BitSwap is unable to
// begin this request within the deadline enforced by the context.
...
...
exchange/bitswap/decision/engine.go
浏览文件 @
ea2375e8
...
...
@@ -96,6 +96,16 @@ func NewEngine(ctx context.Context, bs bstore.Blockstore) *Engine {
return
e
}
func
(
e
*
Engine
)
WantlistForPeer
(
p
peer
.
ID
)
(
out
[]
wl
.
Entry
)
{
e
.
lock
.
Lock
()
partner
,
ok
:=
e
.
ledgerMap
[
p
]
if
ok
{
out
=
partner
.
wantList
.
SortedEntries
()
}
e
.
lock
.
Unlock
()
return
out
}
func
(
e
*
Engine
)
taskWorker
(
ctx
context
.
Context
)
{
defer
close
(
e
.
outbox
)
// because taskWorker uses the channel exclusively
for
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论