Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
297ff3d4
提交
297ff3d4
authored
11月 20, 2014
作者:
Jeromy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
randomize rebroadcast target
上级
19da0570
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
7 行增加
和
7 行删除
+7
-7
bitswap.go
exchange/bitswap/bitswap.go
+7
-2
interface.go
exchange/bitswap/strategy/interface.go
+0
-1
strategy.go
exchange/bitswap/strategy/strategy.go
+0
-4
没有找到文件。
exchange/bitswap/bitswap.go
浏览文件 @
297ff3d4
...
...
@@ -3,6 +3,7 @@
package
bitswap
import
(
"math/rand"
"time"
context
"github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
...
...
@@ -96,7 +97,6 @@ func (bs *bitswap) GetBlock(parent context.Context, k u.Key) (*blocks.Block, err
log
.
Event
(
ctx
,
"GetBlockRequestBegin"
,
&
k
)
defer
log
.
Event
(
ctx
,
"GetBlockRequestEnd"
,
&
k
)
bs
.
wantlist
.
Add
(
k
)
promise
:=
bs
.
notifications
.
Subscribe
(
ctx
,
k
)
select
{
...
...
@@ -171,17 +171,22 @@ func (bs *bitswap) run(ctx context.Context) {
if
len
(
wantlist
)
==
0
{
continue
}
providers
:=
bs
.
routing
.
FindProvidersAsync
(
ctx
,
wantlist
[
0
],
maxProvidersPerRequest
)
n
:=
rand
.
Intn
(
len
(
wantlist
))
providers
:=
bs
.
routing
.
FindProvidersAsync
(
ctx
,
wantlist
[
n
],
maxProvidersPerRequest
)
err
:=
bs
.
sendWantListTo
(
ctx
,
providers
)
if
err
!=
nil
{
log
.
Errorf
(
"error sending wantlist: %s"
,
err
)
}
case
ks
:=
<-
bs
.
batchRequests
:
// TODO: implement batching on len(ks) > X for some X
if
len
(
ks
)
==
0
{
log
.
Warning
(
"Received batch request for zero blocks"
)
continue
}
for
_
,
k
:=
range
ks
{
bs
.
wantlist
.
Add
(
k
)
}
providers
:=
bs
.
routing
.
FindProvidersAsync
(
ctx
,
ks
[
0
],
maxProvidersPerRequest
)
err
:=
bs
.
sendWantListTo
(
ctx
,
providers
)
...
...
exchange/bitswap/strategy/interface.go
浏览文件 @
297ff3d4
...
...
@@ -34,6 +34,5 @@ type Strategy interface {
// Values determining bitswap behavioural patterns
GetBatchSize
()
int
GetBatchDelay
()
time
.
Duration
GetRebroadcastDelay
()
time
.
Duration
}
exchange/bitswap/strategy/strategy.go
浏览文件 @
297ff3d4
...
...
@@ -145,10 +145,6 @@ func (s *strategist) GetBatchSize() int {
return
10
}
func
(
s
*
strategist
)
GetBatchDelay
()
time
.
Duration
{
return
time
.
Millisecond
*
3
}
func
(
s
*
strategist
)
GetRebroadcastDelay
()
time
.
Duration
{
return
time
.
Second
*
2
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论