Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
36494e49
提交
36494e49
authored
11月 11, 2019
作者:
Adin Schmahmann
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ipns(pubsub): utilize persistent pubsub value store
上级
6eb481cd
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
54 行增加
和
15 行删除
+54
-15
groups.go
core/node/groups.go
+4
-1
pubsub.go
core/node/libp2p/pubsub.go
+6
-5
routing.go
core/node/libp2p/routing.go
+9
-4
topicdiscovery.go
core/node/libp2p/topicdiscovery.go
+31
-0
go.mod
go.mod
+2
-1
go.sum
go.sum
+2
-4
没有找到文件。
core/node/groups.go
浏览文件 @
36494e49
...
...
@@ -67,8 +67,10 @@ func LibP2P(bcfg *BuildCfg, cfg *config.Config) fx.Option {
// parse PubSub config
ps
:=
fx
.
Options
()
ps
,
disc
:=
fx
.
Options
(),
fx
.
Options
()
if
bcfg
.
getOpt
(
"pubsub"
)
||
bcfg
.
getOpt
(
"ipnsps"
)
{
disc
=
fx
.
Provide
(
libp2p
.
TopicDiscovery
())
var
pubsubOptions
[]
pubsub
.
Option
pubsubOptions
=
append
(
pubsubOptions
,
...
...
@@ -113,6 +115,7 @@ func LibP2P(bcfg *BuildCfg, cfg *config.Config) fx.Option {
maybeInvoke
(
libp2p
.
AutoNATService
(
cfg
.
Experimental
.
QUIC
),
cfg
.
Swarm
.
EnableAutoNATService
),
connmgr
,
ps
,
disc
,
)
return
opts
...
...
core/node/libp2p/pubsub.go
浏览文件 @
36494e49
package
libp2p
import
(
host
"github.com/libp2p/go-libp2p-core/host"
"github.com/libp2p/go-libp2p-core/discovery"
"github.com/libp2p/go-libp2p-core/host"
pubsub
"github.com/libp2p/go-libp2p-pubsub"
"go.uber.org/fx"
...
...
@@ -9,13 +10,13 @@ import (
)
func
FloodSub
(
pubsubOptions
...
pubsub
.
Option
)
interface
{}
{
return
func
(
mctx
helpers
.
MetricsCtx
,
lc
fx
.
Lifecycle
,
host
host
.
Host
)
(
service
*
pubsub
.
PubSub
,
err
error
)
{
return
pubsub
.
NewFloodSub
(
helpers
.
LifecycleCtx
(
mctx
,
lc
),
host
,
pubsubOptions
...
)
return
func
(
mctx
helpers
.
MetricsCtx
,
lc
fx
.
Lifecycle
,
host
host
.
Host
,
disc
discovery
.
Discovery
)
(
service
*
pubsub
.
PubSub
,
err
error
)
{
return
pubsub
.
NewFloodSub
(
helpers
.
LifecycleCtx
(
mctx
,
lc
),
host
,
append
(
pubsubOptions
,
pubsub
.
WithDiscovery
(
disc
))
...
)
}
}
func
GossipSub
(
pubsubOptions
...
pubsub
.
Option
)
interface
{}
{
return
func
(
mctx
helpers
.
MetricsCtx
,
lc
fx
.
Lifecycle
,
host
host
.
Host
)
(
service
*
pubsub
.
PubSub
,
err
error
)
{
return
pubsub
.
NewGossipSub
(
helpers
.
LifecycleCtx
(
mctx
,
lc
),
host
,
pubsubOptions
...
)
return
func
(
mctx
helpers
.
MetricsCtx
,
lc
fx
.
Lifecycle
,
host
host
.
Host
,
disc
discovery
.
Discovery
)
(
service
*
pubsub
.
PubSub
,
err
error
)
{
return
pubsub
.
NewGossipSub
(
helpers
.
LifecycleCtx
(
mctx
,
lc
),
host
,
append
(
pubsubOptions
,
pubsub
.
WithDiscovery
(
disc
))
...
)
}
}
core/node/libp2p/routing.go
浏览文件 @
36494e49
...
...
@@ -3,6 +3,7 @@ package libp2p
import
(
"context"
"sort"
"time"
host
"github.com/libp2p/go-libp2p-core/host"
routing
"github.com/libp2p/go-libp2p-core/routing"
...
...
@@ -83,15 +84,19 @@ type p2pPSRoutingIn struct {
PubSub
*
pubsub
.
PubSub
`optional:"true"`
}
func
PubsubRouter
(
mctx
helpers
.
MetricsCtx
,
lc
fx
.
Lifecycle
,
in
p2pPSRoutingIn
)
(
p2pRouterOut
,
*
namesys
.
PubsubValueStore
)
{
psRouter
:=
namesys
.
NewPubsubValueStore
(
func
PubsubRouter
(
mctx
helpers
.
MetricsCtx
,
lc
fx
.
Lifecycle
,
in
p2pPSRoutingIn
)
(
p2pRouterOut
,
*
namesys
.
PubsubValueStore
,
error
)
{
psRouter
,
err
:=
namesys
.
NewPubsubValueStore
(
helpers
.
LifecycleCtx
(
mctx
,
lc
),
in
.
Host
,
in
.
BaseIpfsRouting
,
in
.
PubSub
,
in
.
Validator
,
namesys
.
WithRebroadcastInterval
(
time
.
Minute
),
)
if
err
!=
nil
{
return
p2pRouterOut
{},
nil
,
err
}
return
p2pRouterOut
{
Router
:
Router
{
Routing
:
&
routinghelpers
.
Compose
{
...
...
@@ -102,5 +107,5 @@ func PubsubRouter(mctx helpers.MetricsCtx, lc fx.Lifecycle, in p2pPSRoutingIn) (
},
Priority
:
100
,
},
},
psRouter
},
psRouter
,
nil
}
core/node/libp2p/topicdiscovery.go
0 → 100644
浏览文件 @
36494e49
package
libp2p
import
(
"math/rand"
"time"
"github.com/libp2p/go-libp2p-core/discovery"
"github.com/libp2p/go-libp2p-core/host"
disc
"github.com/libp2p/go-libp2p-discovery"
"github.com/ipfs/go-ipfs/core/node/helpers"
"go.uber.org/fx"
)
func
TopicDiscovery
()
interface
{}
{
return
func
(
mctx
helpers
.
MetricsCtx
,
lc
fx
.
Lifecycle
,
host
host
.
Host
,
cr
BaseIpfsRouting
)
(
service
discovery
.
Discovery
,
err
error
)
{
baseDisc
:=
disc
.
NewRoutingDiscovery
(
cr
)
minBackoff
,
maxBackoff
:=
time
.
Second
*
60
,
time
.
Hour
rng
:=
rand
.
New
(
rand
.
NewSource
(
rand
.
Int63
()))
d
,
err
:=
disc
.
NewBackoffDiscovery
(
baseDisc
,
disc
.
NewExponentialBackoff
(
minBackoff
,
maxBackoff
,
disc
.
FullJitter
,
time
.
Second
,
5.0
,
0
,
rng
),
)
if
err
!=
nil
{
return
nil
,
err
}
return
d
,
nil
}
}
go.mod
浏览文件 @
36494e49
...
...
@@ -62,6 +62,7 @@ require (
github.com/libp2p/go-libp2p-circuit v0.1.4
github.com/libp2p/go-libp2p-connmgr v0.1.1
github.com/libp2p/go-libp2p-core v0.2.5
github.com/libp2p/go-libp2p-discovery v0.2.0
github.com/libp2p/go-libp2p-http v0.1.4
github.com/libp2p/go-libp2p-kad-dht v0.3.1
github.com/libp2p/go-libp2p-kbucket v0.2.1
...
...
@@ -70,7 +71,7 @@ require (
github.com/libp2p/go-libp2p-peerstore v0.1.4
github.com/libp2p/go-libp2p-pnet v0.1.0
github.com/libp2p/go-libp2p-pubsub v0.2.4
github.com/libp2p/go-libp2p-pubsub-router v0.
1
.0
github.com/libp2p/go-libp2p-pubsub-router v0.
2
.0
github.com/libp2p/go-libp2p-quic-transport v0.2.2
github.com/libp2p/go-libp2p-record v0.1.2
github.com/libp2p/go-libp2p-routing-helpers v0.1.0
...
...
go.sum
浏览文件 @
36494e49
...
...
@@ -168,7 +168,6 @@ github.com/ipfs/go-datastore v0.1.0 h1:TOxI04l8CmO4zGtesENhzm4PwkFwJXY3rKiYaaMf9
github.com/ipfs/go-datastore v0.1.0/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE=
github.com/ipfs/go-datastore v0.1.1 h1:F4k0TkTAZGLFzBOrVKDAvch6JZtuN4NHkfdcEZL50aI=
github.com/ipfs/go-datastore v0.1.1/go.mod h1:w38XXW9kVFNp57Zj5knbKWM2T+KOZCGDRVNdgPHtbHw=
github.com/ipfs/go-datastore v0.3.0 h1:9au0tYi/+n7xeUnGHG6davnS8x9hWbOzP/388Vx3CMs=
github.com/ipfs/go-datastore v0.3.0/go.mod h1:w38XXW9kVFNp57Zj5knbKWM2T+KOZCGDRVNdgPHtbHw=
github.com/ipfs/go-datastore v0.3.1 h1:SS1t869a6cctoSYmZXUk8eL6AzVXgASmKIWFNQkQ1jU=
github.com/ipfs/go-datastore v0.3.1/go.mod h1:w38XXW9kVFNp57Zj5knbKWM2T+KOZCGDRVNdgPHtbHw=
...
...
@@ -433,11 +432,10 @@ github.com/libp2p/go-libp2p-pnet v0.1.0 h1:kRUES28dktfnHNIRW4Ro78F7rKBHBiw5MJpl0
github.com/libp2p/go-libp2p-pnet v0.1.0/go.mod h1:ZkyZw3d0ZFOex71halXRihWf9WH/j3OevcJdTmD0lyE=
github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s=
github.com/libp2p/go-libp2p-protocol v0.1.0/go.mod h1:KQPHpAabB57XQxGrXCNvbL6UEXfQqUgC/1adR2Xtflk=
github.com/libp2p/go-libp2p-pubsub v0.1.0/go.mod h1:ZwlKzRSe1eGvSIdU5bD7+8RZN/Uzw0t1Bp9R1znpR/Q=
github.com/libp2p/go-libp2p-pubsub v0.2.4 h1:O4BcaKpPQ9p82yTBtzIzgDFoOXkqhrQpfcVac3FAywU=
github.com/libp2p/go-libp2p-pubsub v0.2.4/go.mod h1:1tJwAfySvZQ49R9uTVlkwtSTMVLeQQdrnLTJrr91gVc=
github.com/libp2p/go-libp2p-pubsub-router v0.
1.0 h1:xA5B8Sdx64tNlSRIcay2QUngtlu8LpUJClaUk/dYYrg
=
github.com/libp2p/go-libp2p-pubsub-router v0.
1.0/go.mod h1:PnHOshBr/2I2ZxVfEsqfgCQPsVg09zo+DhSlWkOhPFM
=
github.com/libp2p/go-libp2p-pubsub-router v0.
2.0 h1:AcrCIL2aUNiQkQuqKonqVxhFBEfP0PsHVUdAowZZVLA
=
github.com/libp2p/go-libp2p-pubsub-router v0.
2.0/go.mod h1:CgbGriQhei3gy9y3MwmAapge+SYGYNrcwOeXp3Sefpg
=
github.com/libp2p/go-libp2p-quic-transport v0.2.2 h1:XyGRqFHD1oHdI2k98P1tWWRb9s27fl1SfmCcaX8plso=
github.com/libp2p/go-libp2p-quic-transport v0.2.2/go.mod h1:rVzcsiuOFBomAqvNOxeBUcP4vM4wE+NqqRZWvxjkbe0=
github.com/libp2p/go-libp2p-record v0.0.1/go.mod h1:grzqg263Rug/sRex85QrDOLntdFAymLDLm7lxMgU79Q=
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论