提交 361ba691 作者: Łukasz Magiera 提交者: Steven Allen

Organize NewNode a bit

License: MIT
Signed-off-by: 's avatarŁukasz Magiera <magik6k@gmail.com>
上级 0fd2f80b
......@@ -155,46 +155,74 @@ func NewNode(ctx context.Context, cfg *BuildCfg) (*IpfsNode, error) {
return cfg
})
n := &IpfsNode{
ctx: ctx,
}
app := fx.New(
params := fx.Options(
repoOption,
cfgOption,
)
storage := fx.Options(
fx.Provide(repoConfig),
fx.Provide(identity),
fx.Provide(privateKey),
fx.Provide(peerstore),
fx.Provide(baseBlockstoreCtor),
fx.Provide(gcBlockstoreCtor),
)
ident := fx.Options(
fx.Provide(identity),
fx.Provide(privateKey),
)
ipns := fx.Options(
fx.Provide(recordValidator),
)
ipfsp2p,
online := fx.Options(
fx.Provide(onlineExchangeCtor),
fx.Provide(onlineNamesysCtor),
fx.Invoke(setupSharding),
fx.Invoke(ipnsRepublisher),
fx.Invoke(provider.Provider.Run),
)
if !cfg.Online {
online = fx.Options(
fx.Provide(offline.Exchange),
fx.Provide(offlineNamesysCtor),
)
}
fx.Provide(onlineExchangeCtor), // TODO: offline
fx.Provide(onlineNamesysCtor), // TODO: ^^
core := fx.Options(
fx.Provide(bserv.New),
fx.Provide(onlineDagCtor),
fx.Provide(dagCtor),
fx.Provide(resolver.NewBasicResolver),
fx.Provide(pinning),
fx.Provide(files),
)
providers := fx.Options(
fx.Provide(providerQueue),
fx.Provide(providerCtor),
fx.Provide(reproviderCtor),
fx.Invoke(reprovider),
)
fx.Provide(p2p.NewP2P),
n := &IpfsNode{
ctx: ctx,
}
fx.Invoke(ipnsRepublisher),
fx.Invoke(provider.Provider.Run),
app := fx.New(
params,
storage,
ident,
ipfsp2p,
ipns,
online,
fx.Invoke(setupSharding),
core,
providers,
fx.Provide(p2p.NewP2P),
fx.Extract(n),
)
......
......@@ -180,6 +180,8 @@ func recordValidator(ps pstore.Peerstore) record.Validator {
// libp2p
var ipfsp2p = fx.Options(
fx.Provide(peerstore),
fx.Provide(p2pAddrFilters),
fx.Provide(p2pBandwidthCounter),
fx.Provide(p2pPNet),
......@@ -564,7 +566,7 @@ func pinning(bstore bstore.Blockstore, ds format.DAGService, repo repo.Repo) (pi
return pinning, nil
}
func onlineDagCtor(bs bserv.BlockService) format.DAGService {
func dagCtor(bs bserv.BlockService) format.DAGService {
return merkledag.NewDAGService(bs)
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论