Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
efa282d4
提交
efa282d4
authored
10月 24, 2018
作者:
Steven Allen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update for pubsub rename
License: MIT Signed-off-by:
Steven Allen
<
steven@stebalien.com
>
上级
d3bba25f
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
31 行增加
和
31 行删除
+31
-31
README.md
README.md
+1
-1
daemon.go
cmd/ipfs/daemon.go
+3
-3
core.go
core/core.go
+11
-11
pubsub.go
core/coreapi/pubsub.go
+8
-8
package.json
package.json
+8
-8
没有找到文件。
README.md
浏览文件 @
efa282d4
...
...
@@ -389,7 +389,7 @@ Some places to get you started on the codebase:
-
libp2p
-
libp2p: https://github.com/libp2p/go-libp2p
-
DHT: https://github.com/libp2p/go-libp2p-kad-dht
-
PubSub: https://github.com/libp2p/go-
flood
sub
-
PubSub: https://github.com/libp2p/go-
libp2p-pub
sub
### CLI, HTTP-API, Architecture Diagram
...
...
cmd/ipfs/daemon.go
浏览文件 @
efa282d4
...
...
@@ -50,7 +50,7 @@ const (
unencryptTransportKwd
=
"disable-transport-encryption"
unrestrictedApiAccessKwd
=
"unrestricted-api"
writableKwd
=
"writable"
enable
FloodSubKwd
=
"enable-pubsub-experiment"
enable
PubSubKwd
=
"enable-pubsub-experiment"
enableIPNSPubSubKwd
=
"enable-namesys-pubsub"
enableMultiplexKwd
=
"enable-mplex-experiment"
// apiAddrKwd = "address-api"
...
...
@@ -163,7 +163,7 @@ Headers.
cmdkit
.
BoolOption
(
adjustFDLimitKwd
,
"Check and raise file descriptor limits if needed"
)
.
WithDefault
(
true
),
cmdkit
.
BoolOption
(
offlineKwd
,
"Run offline. Do not connect to the rest of the network but provide local API."
),
cmdkit
.
BoolOption
(
migrateKwd
,
"If true, assume yes at the migrate prompt. If false, assume no."
),
cmdkit
.
BoolOption
(
enable
Flood
SubKwd
,
"Instantiate the ipfs daemon with the experimental pubsub feature enabled."
),
cmdkit
.
BoolOption
(
enable
Pub
SubKwd
,
"Instantiate the ipfs daemon with the experimental pubsub feature enabled."
),
cmdkit
.
BoolOption
(
enableIPNSPubSubKwd
,
"Enable IPNS record distribution through pubsub; enables pubsub."
),
cmdkit
.
BoolOption
(
enableMultiplexKwd
,
"Add the experimental 'go-multiplex' stream muxer to libp2p on construction."
)
.
WithDefault
(
true
),
...
...
@@ -285,7 +285,7 @@ func daemonFunc(req *cmds.Request, re cmds.ResponseEmitter, env cmds.Environment
offline
,
_
:=
req
.
Options
[
offlineKwd
]
.
(
bool
)
ipnsps
,
_
:=
req
.
Options
[
enableIPNSPubSubKwd
]
.
(
bool
)
pubsub
,
_
:=
req
.
Options
[
enable
Flood
SubKwd
]
.
(
bool
)
pubsub
,
_
:=
req
.
Options
[
enable
Pub
SubKwd
]
.
(
bool
)
mplex
,
_
:=
req
.
Options
[
enableMultiplexKwd
]
.
(
bool
)
// Start assembling node config
...
...
core/core.go
浏览文件 @
efa282d4
...
...
@@ -44,6 +44,7 @@ import (
ic
"gx/ipfs/QmPvyPwuCgJ7pDmrKDxRtsScJgBaM5h4EpRL2qQJsmXf4n/go-libp2p-crypto"
nilrouting
"gx/ipfs/QmQ9PR61a8rwEFuFNs7JMA1QtQC9yZnBwoDn51JWXDbaTd/go-ipfs-routing/none"
offroute
"gx/ipfs/QmQ9PR61a8rwEFuFNs7JMA1QtQC9yZnBwoDn51JWXDbaTd/go-ipfs-routing/offline"
psrouter
"gx/ipfs/QmQ9qNWAZDDoPYenvsMwoyh4ZrJFZdbfGTVDuZkxUcJKp1/go-libp2p-pubsub-router"
exchange
"gx/ipfs/QmR1nncPsZR14A4hWr39mq8Lm7BGgS68bHVT9nop8NpWEM/go-ipfs-exchange-interface"
goprocess
"gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess"
mamask
"gx/ipfs/QmSMZwvs3n4GBikZ7hKzT17c3bk65FmyZo2JqtJ16swqCv/multiaddr-filter"
...
...
@@ -53,12 +54,10 @@ import (
config
"gx/ipfs/QmSoYrBMibm2T3LupaLuez7LPGnyrJwdRxvTfPUyCp691u/go-ipfs-config"
dht
"gx/ipfs/QmSteomMgXnSQxLEY5UpxmkYAd8QF9JuLLeLYBokTHxFru/go-libp2p-kad-dht"
dhtopts
"gx/ipfs/QmSteomMgXnSQxLEY5UpxmkYAd8QF9JuLLeLYBokTHxFru/go-libp2p-kad-dht/opts"
floodsub
"gx/ipfs/QmTcC9Qx2adsdGguNpqZ6dJK7MMsH8sf3yfxZxG3bSwKet/go-libp2p-floodsub"
merkledag
"gx/ipfs/QmVvNkTCx8V9Zei8xuTYTBdUXmbnDRS4iNuw1SztYyhQwQ/go-merkledag"
yamux
"gx/ipfs/QmVwYCtShoL74Xi8TgEg9jXvHVVtWwZ3Hg1QZqQvQA9xji/go-smux-yamux"
ft
"gx/ipfs/QmWE6Ftsk98cG2MTVgH4wJT8VP2nL9TuBkYTrz9GSqcsh5/go-unixfs"
pstore
"gx/ipfs/QmWtCpWB39Rzc2xTB75MKorsxNpo3TyecTEN24CJ3KVohE/go-libp2p-peerstore"
psrouter
"gx/ipfs/QmX5cToCpsigs7ZebYjm8P8aQN5A6Mx9LydrrSyBBtevzn/go-libp2p-pubsub-router"
bitswap
"gx/ipfs/QmXBT58TaD2CJThpHy4xkxC1xsW4hXWBGZuKMepwjuzJ5B/go-bitswap"
bsnet
"gx/ipfs/QmXBT58TaD2CJThpHy4xkxC1xsW4hXWBGZuKMepwjuzJ5B/go-bitswap/network"
pnet
"gx/ipfs/QmY4Q5JC4vxLEi8EpVxJM4rcRryEVtH1zRKVTAm6BKV1pg/go-libp2p-pnet"
...
...
@@ -75,6 +74,7 @@ import (
bstore
"gx/ipfs/QmcDDgAXDbpDUpadCJKLr49KYR4HuL7T8Z1dZTHt6ixsoR/go-ipfs-blockstore"
ipld
"gx/ipfs/QmdDXJs4axxefSPgK6Y1QhpJWKuDPnGJiqgq4uncb4rFHL/go-ipld-format"
"gx/ipfs/QmdrpbDgeYH3VxkCciQCJY5LkDYdXtig6unDzQmMxFtWEw/go-path/resolver"
pubsub
"gx/ipfs/QmdxgseTjZvbvEKGbpnSitR6oCCanRZiSiqjn1SC4pb7Wy/go-libp2p-pubsub"
mfs
"gx/ipfs/Qmf5gumjmXpwmn7uDfAvkXbFQ5sHGGbJGccS8znSYmDQaz/go-mfs"
p2phost
"gx/ipfs/Qmf5yHzmWAyHSJRPAmZzfk3Yd7icydBLi7eec5741aov7v/go-libp2p-host"
)
...
...
@@ -137,7 +137,7 @@ type IpfsNode struct {
Reprovider
*
rp
.
Reprovider
// the value reprovider system
IpnsRepub
*
ipnsrp
.
Republisher
Floodsub
*
flood
sub
.
PubSub
PubSub
*
pub
sub
.
PubSub
PSRouter
*
psrouter
.
PubsubValueStore
DHT
*
dht
.
IpfsDHT
P2P
*
p2p
.
P2P
...
...
@@ -459,26 +459,26 @@ func (n *IpfsNode) HandlePeerFound(p pstore.PeerInfo) {
// startOnlineServicesWithHost is the set of services which need to be
// initialized with the host and _before_ we start listening.
func
(
n
*
IpfsNode
)
startOnlineServicesWithHost
(
ctx
context
.
Context
,
host
p2phost
.
Host
,
routingOption
RoutingOption
,
pubsub
bool
,
i
pnsps
bool
)
error
{
func
(
n
*
IpfsNode
)
startOnlineServicesWithHost
(
ctx
context
.
Context
,
host
p2phost
.
Host
,
routingOption
RoutingOption
,
enablePubsub
bool
,
enableI
pnsps
bool
)
error
{
// setup diagnostics service
n
.
Ping
=
ping
.
NewPingService
(
host
)
if
pubsub
||
i
pnsps
{
if
enablePubsub
||
enableI
pnsps
{
cfg
,
err
:=
n
.
Repo
.
Config
()
if
err
!=
nil
{
return
err
}
var
service
*
flood
sub
.
PubSub
var
service
*
pub
sub
.
PubSub
switch
cfg
.
Pubsub
.
Router
{
case
""
:
fallthrough
case
"floodsub"
:
service
,
err
=
flood
sub
.
NewFloodSub
(
ctx
,
host
)
service
,
err
=
pub
sub
.
NewFloodSub
(
ctx
,
host
)
case
"gossipsub"
:
service
,
err
=
flood
sub
.
NewGossipSub
(
ctx
,
host
)
service
,
err
=
pub
sub
.
NewGossipSub
(
ctx
,
host
)
default
:
err
=
fmt
.
Errorf
(
"Unknown pubsub router %s"
,
cfg
.
Pubsub
.
Router
)
...
...
@@ -487,7 +487,7 @@ func (n *IpfsNode) startOnlineServicesWithHost(ctx context.Context, host p2phost
if
err
!=
nil
{
return
err
}
n
.
Floods
ub
=
service
n
.
PubS
ub
=
service
}
// setup routing service
...
...
@@ -514,12 +514,12 @@ func (n *IpfsNode) startOnlineServicesWithHost(ctx context.Context, host p2phost
n
.
DHT
=
dht
}
if
i
pnsps
{
if
enableI
pnsps
{
n
.
PSRouter
=
psrouter
.
NewPubsubValueStore
(
ctx
,
host
,
n
.
Routing
,
n
.
Floods
ub
,
n
.
PubS
ub
,
n
.
RecordValidator
,
)
n
.
Routing
=
rhelpers
.
Tiered
{
...
...
core/coreapi/pubsub.go
浏览文件 @
efa282d4
...
...
@@ -12,20 +12,20 @@ import (
caopts
"github.com/ipfs/go-ipfs/core/coreapi/interface/options"
cid
"gx/ipfs/QmPSQnBKM9g7BaUcZCvswUJVscQ1ipjmwxN5PXCjkp9EQ7/go-cid"
floodsub
"gx/ipfs/QmTcC9Qx2adsdGguNpqZ6dJK7MMsH8sf3yfxZxG3bSwKet/go-libp2p-floodsub"
pstore
"gx/ipfs/QmWtCpWB39Rzc2xTB75MKorsxNpo3TyecTEN24CJ3KVohE/go-libp2p-peerstore"
peer
"gx/ipfs/QmbNepETomvmXfz1X5pHNFD2QuPqnqi47dTd94QJWSorQ3/go-libp2p-peer"
pubsub
"gx/ipfs/QmdxgseTjZvbvEKGbpnSitR6oCCanRZiSiqjn1SC4pb7Wy/go-libp2p-pubsub"
)
type
PubSubAPI
CoreAPI
type
pubSubSubscription
struct
{
cancel
context
.
CancelFunc
subscription
*
flood
sub
.
Subscription
subscription
*
pub
sub
.
Subscription
}
type
pubSubMessage
struct
{
msg
*
flood
sub
.
Message
msg
*
pub
sub
.
Message
}
func
(
api
*
PubSubAPI
)
Ls
(
ctx
context
.
Context
)
([]
string
,
error
)
{
...
...
@@ -33,7 +33,7 @@ func (api *PubSubAPI) Ls(ctx context.Context) ([]string, error) {
return
nil
,
err
}
return
api
.
node
.
Floods
ub
.
GetTopics
(),
nil
return
api
.
node
.
PubS
ub
.
GetTopics
(),
nil
}
func
(
api
*
PubSubAPI
)
Peers
(
ctx
context
.
Context
,
opts
...
caopts
.
PubSubPeersOption
)
([]
peer
.
ID
,
error
)
{
...
...
@@ -46,7 +46,7 @@ func (api *PubSubAPI) Peers(ctx context.Context, opts ...caopts.PubSubPeersOptio
return
nil
,
err
}
peers
:=
api
.
node
.
Floods
ub
.
ListPeers
(
settings
.
Topic
)
peers
:=
api
.
node
.
PubS
ub
.
ListPeers
(
settings
.
Topic
)
out
:=
make
([]
peer
.
ID
,
len
(
peers
))
for
i
,
peer
:=
range
peers
{
...
...
@@ -61,7 +61,7 @@ func (api *PubSubAPI) Publish(ctx context.Context, topic string, data []byte) er
return
err
}
return
api
.
node
.
Floods
ub
.
Publish
(
topic
,
data
)
return
api
.
node
.
PubS
ub
.
Publish
(
topic
,
data
)
}
func
(
api
*
PubSubAPI
)
Subscribe
(
ctx
context
.
Context
,
topic
string
,
opts
...
caopts
.
PubSubSubscribeOption
)
(
coreiface
.
PubSubSubscription
,
error
)
{
...
...
@@ -71,7 +71,7 @@ func (api *PubSubAPI) Subscribe(ctx context.Context, topic string, opts ...caopt
return
nil
,
err
}
sub
,
err
:=
api
.
node
.
Floods
ub
.
Subscribe
(
topic
)
sub
,
err
:=
api
.
node
.
PubS
ub
.
Subscribe
(
topic
)
if
err
!=
nil
{
return
nil
,
err
}
...
...
@@ -122,7 +122,7 @@ func (api *PubSubAPI) checkNode() error {
return
coreiface
.
ErrOffline
}
if
api
.
node
.
Floods
ub
==
nil
{
if
api
.
node
.
PubS
ub
==
nil
{
return
errors
.
New
(
"experimental pubsub feature not enabled. Run daemon with --enable-pubsub-experiment to use."
)
}
...
...
package.json
浏览文件 @
efa282d4
...
...
@@ -183,12 +183,6 @@
},
{
"author"
:
"whyrusleeping"
,
"hash"
:
"QmTcC9Qx2adsdGguNpqZ6dJK7MMsH8sf3yfxZxG3bSwKet"
,
"name"
:
"go-libp2p-floodsub"
,
"version"
:
"0.9.36"
},
{
"author"
:
"whyrusleeping"
,
"hash"
:
"QmdDXJs4axxefSPgK6Y1QhpJWKuDPnGJiqgq4uncb4rFHL"
,
"name"
:
"go-ipld-format"
,
"version"
:
"0.6.0"
...
...
@@ -464,9 +458,9 @@
},
{
"author"
:
"stebalien"
,
"hash"
:
"Qm
X5cToCpsigs7ZebYjm8P8aQN5A6Mx9LydrrSyBBtevzn
"
,
"hash"
:
"Qm
Q9qNWAZDDoPYenvsMwoyh4ZrJFZdbfGTVDuZkxUcJKp1
"
,
"name"
:
"go-libp2p-pubsub-router"
,
"version"
:
"0.4.1
1
"
"version"
:
"0.4.1
2
"
},
{
"author"
:
"Stebalien"
,
...
...
@@ -586,6 +580,12 @@
"hash"
:
"QmZMWMvWMVKCbHetJ4RgndbuEF1io2UpUxwQwtNjtYPzSC"
,
"name"
:
"go-ipfs-files"
,
"version"
:
"1.0.1"
},
{
"author"
:
"whyrusleeping"
,
"hash"
:
"QmdxgseTjZvbvEKGbpnSitR6oCCanRZiSiqjn1SC4pb7Wy"
,
"name"
:
"go-libp2p-pubsub"
,
"version"
:
"0.10.0"
}
],
"gxVersion"
:
"0.10.0"
,
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论