Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
e4cf6600
提交
e4cf6600
authored
4月 03, 2019
作者:
Łukasz Magiera
提交者:
Steven Allen
4月 17, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Move option parsing to BuildCfg; fix imports
License: MIT Signed-off-by:
Łukasz Magiera
<
magik6k@gmail.com
>
上级
3ac60574
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
70 行增加
和
65 行删除
+70
-65
builder.go
core/builder.go
+3
-0
path.go
core/coreapi/path.go
+3
-3
builder.go
core/node/builder.go
+41
-2
core.go
core/node/core.go
+9
-9
groups.go
core/node/groups.go
+6
-43
libp2p.go
core/node/libp2p.go
+1
-0
ipns_unix.go
fuse/ipns/ipns_unix.go
+2
-2
resolve.go
namesys/resolve/resolve.go
+5
-6
没有找到文件。
core/builder.go
浏览文件 @
e4cf6600
...
...
@@ -3,6 +3,7 @@ package core
import
(
"context"
"github.com/ipfs/go-metrics-interface"
"go.uber.org/fx"
"github.com/ipfs/go-ipfs/core/bootstrap"
...
...
@@ -13,6 +14,8 @@ type BuildCfg = node.BuildCfg // Alias for compatibility until we properly refac
// NewNode constructs and returns an IpfsNode using the given cfg.
func
NewNode
(
ctx
context
.
Context
,
cfg
*
BuildCfg
)
(
*
IpfsNode
,
error
)
{
ctx
=
metrics
.
CtxScope
(
ctx
,
"ipfs"
)
n
:=
&
IpfsNode
{
ctx
:
ctx
,
}
...
...
core/coreapi/path.go
浏览文件 @
e4cf6600
...
...
@@ -5,7 +5,7 @@ import (
"fmt"
gopath
"path"
node2
"github.com/ipfs/go-ipfs/namesys/resolve"
"github.com/ipfs/go-ipfs/namesys/resolve"
"github.com/ipfs/go-cid"
ipld
"github.com/ipfs/go-ipld-format"
...
...
@@ -42,8 +42,8 @@ func (api *CoreAPI) ResolvePath(ctx context.Context, p path.Path) (path.Resolved
}
ipath
:=
ipfspath
.
Path
(
p
.
String
())
ipath
,
err
:=
node2
.
ResolveIPNS
(
ctx
,
api
.
namesys
,
ipath
)
if
err
==
node2
.
ErrNoNamesys
{
ipath
,
err
:=
resolve
.
ResolveIPNS
(
ctx
,
api
.
namesys
,
ipath
)
if
err
==
resolve
.
ErrNoNamesys
{
return
nil
,
coreiface
.
ErrOffline
}
else
if
err
!=
nil
{
return
nil
,
err
...
...
core/node/builder.go
浏览文件 @
e4cf6600
package
node
import
(
"context"
"crypto/rand"
"encoding/base64"
"errors"
"go.uber.org/fx"
"github.com/ipfs/go-ipfs/repo"
ds
"github.com/ipfs/go-datastore"
dsync
"github.com/ipfs/go-datastore/sync"
cfg
"github.com/ipfs/go-ipfs-config"
ci
"github.com/libp2p/go-libp2p-crypto"
peer
"github.com/libp2p/go-libp2p-peer"
"github.com/ipfs/go-ipfs/repo"
)
type
BuildCfg
struct
{
...
...
@@ -75,6 +78,42 @@ func (cfg *BuildCfg) fillDefaults() error {
return
nil
}
func
(
cfg
*
BuildCfg
)
options
(
ctx
context
.
Context
)
fx
.
Option
{
err
:=
cfg
.
fillDefaults
()
if
err
!=
nil
{
return
fx
.
Error
(
err
)
}
repoOption
:=
fx
.
Provide
(
func
(
lc
fx
.
Lifecycle
)
repo
.
Repo
{
lc
.
Append
(
fx
.
Hook
{
OnStop
:
func
(
ctx
context
.
Context
)
error
{
return
cfg
.
Repo
.
Close
()
},
})
return
cfg
.
Repo
})
metricsCtx
:=
fx
.
Provide
(
func
()
MetricsCtx
{
return
MetricsCtx
(
ctx
)
})
hostOption
:=
fx
.
Provide
(
func
()
HostOption
{
return
cfg
.
Host
})
routingOption
:=
fx
.
Provide
(
func
()
RoutingOption
{
return
cfg
.
Routing
})
return
fx
.
Options
(
repoOption
,
hostOption
,
routingOption
,
metricsCtx
,
)
}
func
defaultRepo
(
dstore
repo
.
Datastore
)
(
repo
.
Repo
,
error
)
{
c
:=
cfg
.
Config
{}
priv
,
pub
,
err
:=
ci
.
GenerateKeyPairWithReader
(
ci
.
RSA
,
1024
,
rand
.
Reader
)
...
...
core/node/core.go
浏览文件 @
e4cf6600
...
...
@@ -4,24 +4,24 @@ import (
"context"
"fmt"
"github.com/ipfs/go-ipfs/pin"
"github.com/ipfs/go-ipfs/repo"
"github.com/ipfs/go-bitswap"
"github.com/ipfs/go-bitswap/network"
"github.com/ipfs/go-blockservice"
"github.com/ipfs/go-cid"
"github.com/ipfs/go-datastore"
blockstore
"github.com/ipfs/go-ipfs-blockstore"
exchange
"github.com/ipfs/go-ipfs-exchange-interface"
offline
"github.com/ipfs/go-ipfs-exchange-offline"
format
"github.com/ipfs/go-ipld-format"
"github.com/ipfs/go-ipfs-blockstore"
"github.com/ipfs/go-ipfs-exchange-interface"
"github.com/ipfs/go-ipfs-exchange-offline"
"github.com/ipfs/go-ipld-format"
"github.com/ipfs/go-merkledag"
"github.com/ipfs/go-mfs"
"github.com/ipfs/go-unixfs"
host
"github.com/libp2p/go-libp2p-host"
routing
"github.com/libp2p/go-libp2p-routing"
"github.com/libp2p/go-libp2p-host"
"github.com/libp2p/go-libp2p-routing"
"go.uber.org/fx"
"github.com/ipfs/go-ipfs/pin"
"github.com/ipfs/go-ipfs/repo"
)
func
BlockServiceCtor
(
lc
fx
.
Lifecycle
,
bs
blockstore
.
Blockstore
,
rem
exchange
.
Interface
)
blockservice
.
BlockService
{
...
...
core/node/groups.go
浏览文件 @
e4cf6600
...
...
@@ -3,15 +3,13 @@ package node
import
(
"context"
"github.com/ipfs/go-ipfs/p2p"
"github.com/ipfs/go-ipfs/provider"
offline
"github.com/ipfs/go-ipfs-exchange-offline"
"github.com/ipfs/go-metrics-interfac
e"
offroute
"github.com/ipfs/go-ipfs-routing/offlin
e"
"github.com/ipfs/go-path/resolver"
"go.uber.org/fx"
offroute
"github.com/ipfs/go-ipfs-routing/offline"
"github.com/ipfs/go-ipfs/p2p"
"github.com/ipfs/go-ipfs/provider"
"github.com/ipfs/go-ipfs/repo"
)
var
BaseLibP2P
=
fx
.
Options
(
...
...
@@ -117,44 +115,9 @@ func IPFS(ctx context.Context, cfg *BuildCfg) fx.Option {
cfg
=
new
(
BuildCfg
)
}
err
:=
cfg
.
fillDefaults
()
if
err
!=
nil
{
return
fx
.
Error
(
err
)
}
ctx
=
metrics
.
CtxScope
(
ctx
,
"ipfs"
)
repoOption
:=
fx
.
Provide
(
func
(
lc
fx
.
Lifecycle
)
repo
.
Repo
{
lc
.
Append
(
fx
.
Hook
{
OnStop
:
func
(
ctx
context
.
Context
)
error
{
return
cfg
.
Repo
.
Close
()
},
})
return
cfg
.
Repo
})
metricsCtx
:=
fx
.
Provide
(
func
()
MetricsCtx
{
return
MetricsCtx
(
ctx
)
})
hostOption
:=
fx
.
Provide
(
func
()
HostOption
{
return
cfg
.
Host
})
routingOption
:=
fx
.
Provide
(
func
()
RoutingOption
{
return
cfg
.
Routing
})
params
:=
fx
.
Options
(
repoOption
,
hostOption
,
routingOption
,
metricsCtx
,
)
return
fx
.
Options
(
params
,
cfg
.
options
(
ctx
),
fx
.
Provide
(
baseProcess
),
fx
.
Invoke
(
setupSharding
),
...
...
core/node/libp2p.go
浏览文件 @
e4cf6600
...
...
@@ -123,6 +123,7 @@ type Libp2pOpts struct {
}
type
PNetFingerprint
[]
byte
func
P2PPNet
(
repo
repo
.
Repo
)
(
opts
Libp2pOpts
,
fp
PNetFingerprint
,
err
error
)
{
swarmkey
,
err
:=
repo
.
SwarmKey
()
if
err
!=
nil
||
swarmkey
==
nil
{
...
...
fuse/ipns/ipns_unix.go
浏览文件 @
e4cf6600
...
...
@@ -13,7 +13,7 @@ import (
core
"github.com/ipfs/go-ipfs/core"
namesys
"github.com/ipfs/go-ipfs/namesys"
node2
"github.com/ipfs/go-ipfs/namesys/resolve"
resolve
"github.com/ipfs/go-ipfs/namesys/resolve"
dag
"github.com/ipfs/go-merkledag"
path
"github.com/ipfs/go-path"
...
...
@@ -98,7 +98,7 @@ func loadRoot(ctx context.Context, rt *keyRoot, ipfs *core.IpfsNode, name string
return
nil
,
err
}
node
,
err
:=
node2
.
Resolve
(
ctx
,
ipfs
.
Namesys
,
ipfs
.
Resolver
,
p
)
node
,
err
:=
resolve
.
Resolve
(
ctx
,
ipfs
.
Namesys
,
ipfs
.
Resolver
,
p
)
switch
err
{
case
nil
:
case
namesys
.
ErrResolveFailed
:
...
...
namesys/resolve/resolve.go
浏览文件 @
e4cf6600
...
...
@@ -6,7 +6,6 @@ import (
"strings"
"github.com/ipfs/go-ipld-format"
log2
"github.com/ipfs/go-log"
logging
"github.com/ipfs/go-log"
"github.com/ipfs/go-path"
"github.com/ipfs/go-path/resolver"
...
...
@@ -30,34 +29,34 @@ func ResolveIPNS(ctx context.Context, nsys namesys.NameSystem, p path.Path) (pat
// TODO(cryptix): we should be able to query the local cache for the path
if
nsys
==
nil
{
evt
.
Append
(
log
2
.
LoggableMap
{
"error"
:
ErrNoNamesys
.
Error
()})
evt
.
Append
(
log
ging
.
LoggableMap
{
"error"
:
ErrNoNamesys
.
Error
()})
return
""
,
ErrNoNamesys
}
seg
:=
p
.
Segments
()
if
len
(
seg
)
<
2
||
seg
[
1
]
==
""
{
// just "/<protocol/>" without further segments
evt
.
Append
(
log
2
.
LoggableMap
{
"error"
:
path
.
ErrNoComponents
.
Error
()})
evt
.
Append
(
log
ging
.
LoggableMap
{
"error"
:
path
.
ErrNoComponents
.
Error
()})
return
""
,
path
.
ErrNoComponents
}
extensions
:=
seg
[
2
:
]
resolvable
,
err
:=
path
.
FromSegments
(
"/"
,
seg
[
0
],
seg
[
1
])
if
err
!=
nil
{
evt
.
Append
(
log
2
.
LoggableMap
{
"error"
:
err
.
Error
()})
evt
.
Append
(
log
ging
.
LoggableMap
{
"error"
:
err
.
Error
()})
return
""
,
err
}
respath
,
err
:=
nsys
.
Resolve
(
ctx
,
resolvable
.
String
())
if
err
!=
nil
{
evt
.
Append
(
log
2
.
LoggableMap
{
"error"
:
err
.
Error
()})
evt
.
Append
(
log
ging
.
LoggableMap
{
"error"
:
err
.
Error
()})
return
""
,
err
}
segments
:=
append
(
respath
.
Segments
(),
extensions
...
)
p
,
err
=
path
.
FromSegments
(
"/"
,
segments
...
)
if
err
!=
nil
{
evt
.
Append
(
log
2
.
LoggableMap
{
"error"
:
err
.
Error
()})
evt
.
Append
(
log
ging
.
LoggableMap
{
"error"
:
err
.
Error
()})
return
""
,
err
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论