builder: Handle chainstore config in ConfigFullNode
This commit is contained in:
parent
b0f57d74e5
commit
52e93371bd
@ -3,7 +3,6 @@ package node
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"os"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
metricsi "github.com/ipfs/go-metrics-interface"
|
metricsi "github.com/ipfs/go-metrics-interface"
|
||||||
@ -293,59 +292,9 @@ func Repo(r repo.Repo) Option {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
var cfg *config.Chainstore
|
|
||||||
switch settings.nodeType {
|
|
||||||
case repo.FullNode:
|
|
||||||
cfgp, ok := c.(*config.FullNode)
|
|
||||||
if !ok {
|
|
||||||
return xerrors.Errorf("invalid config from repo, got: %T", c)
|
|
||||||
}
|
|
||||||
cfg = &cfgp.Chainstore
|
|
||||||
default:
|
|
||||||
cfg = &config.Chainstore{}
|
|
||||||
}
|
|
||||||
|
|
||||||
return Options(
|
return Options(
|
||||||
Override(new(repo.LockedRepo), modules.LockedRepo(lr)), // module handles closing
|
Override(new(repo.LockedRepo), modules.LockedRepo(lr)), // module handles closing
|
||||||
|
|
||||||
Override(new(dtypes.UniversalBlockstore), modules.UniversalBlockstore),
|
|
||||||
|
|
||||||
If(cfg.EnableSplitstore,
|
|
||||||
If(cfg.Splitstore.ColdStoreType == "universal",
|
|
||||||
Override(new(dtypes.ColdBlockstore), From(new(dtypes.UniversalBlockstore)))),
|
|
||||||
If(cfg.Splitstore.ColdStoreType == "discard",
|
|
||||||
Override(new(dtypes.ColdBlockstore), modules.DiscardColdBlockstore)),
|
|
||||||
If(cfg.Splitstore.HotStoreType == "badger",
|
|
||||||
Override(new(dtypes.HotBlockstore), modules.BadgerHotBlockstore)),
|
|
||||||
Override(new(dtypes.SplitBlockstore), modules.SplitBlockstore(cfg)),
|
|
||||||
Override(new(dtypes.BasicChainBlockstore), modules.ChainSplitBlockstore),
|
|
||||||
Override(new(dtypes.BasicStateBlockstore), modules.StateSplitBlockstore),
|
|
||||||
Override(new(dtypes.BaseBlockstore), From(new(dtypes.SplitBlockstore))),
|
|
||||||
Override(new(dtypes.ExposedBlockstore), modules.ExposedSplitBlockstore),
|
|
||||||
Override(new(dtypes.GCReferenceProtector), modules.SplitBlockstoreGCReferenceProtector),
|
|
||||||
),
|
|
||||||
If(!cfg.EnableSplitstore,
|
|
||||||
Override(new(dtypes.BasicChainBlockstore), modules.ChainFlatBlockstore),
|
|
||||||
Override(new(dtypes.BasicStateBlockstore), modules.StateFlatBlockstore),
|
|
||||||
Override(new(dtypes.BaseBlockstore), From(new(dtypes.UniversalBlockstore))),
|
|
||||||
Override(new(dtypes.ExposedBlockstore), From(new(dtypes.UniversalBlockstore))),
|
|
||||||
Override(new(dtypes.GCReferenceProtector), modules.NoopGCReferenceProtector),
|
|
||||||
),
|
|
||||||
|
|
||||||
Override(new(dtypes.ChainBlockstore), From(new(dtypes.BasicChainBlockstore))),
|
|
||||||
Override(new(dtypes.StateBlockstore), From(new(dtypes.BasicStateBlockstore))),
|
|
||||||
|
|
||||||
If(os.Getenv("LOTUS_ENABLE_CHAINSTORE_FALLBACK") == "1",
|
|
||||||
Override(new(dtypes.ChainBlockstore), modules.FallbackChainBlockstore),
|
|
||||||
Override(new(dtypes.StateBlockstore), modules.FallbackStateBlockstore),
|
|
||||||
Override(SetupFallbackBlockstoresKey, modules.InitFallbackBlockstores),
|
|
||||||
),
|
|
||||||
|
|
||||||
Override(new(dtypes.ClientImportMgr), modules.ClientImportMgr),
|
|
||||||
|
|
||||||
Override(new(dtypes.ClientBlockstore), modules.ClientBlockstore),
|
|
||||||
|
|
||||||
Override(new(ci.PrivKey), lp2p.PrivKey),
|
Override(new(ci.PrivKey), lp2p.PrivKey),
|
||||||
Override(new(ci.PubKey), ci.PrivKey.GetPublic),
|
Override(new(ci.PubKey), ci.PrivKey.GetPublic),
|
||||||
Override(new(peer.ID), peer.IDFromPublicKey),
|
Override(new(peer.ID), peer.IDFromPublicKey),
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package node
|
package node
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"os"
|
||||||
|
|
||||||
"go.uber.org/fx"
|
"go.uber.org/fx"
|
||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
|
|
||||||
@ -167,6 +169,43 @@ func ConfigFullNode(c interface{}) Option {
|
|||||||
return Options(
|
return Options(
|
||||||
ConfigCommon(&cfg.Common, enableLibp2pNode),
|
ConfigCommon(&cfg.Common, enableLibp2pNode),
|
||||||
|
|
||||||
|
Override(new(dtypes.UniversalBlockstore), modules.UniversalBlockstore),
|
||||||
|
|
||||||
|
If(cfg.Chainstore.EnableSplitstore,
|
||||||
|
If(cfg.Chainstore.Splitstore.ColdStoreType == "universal",
|
||||||
|
Override(new(dtypes.ColdBlockstore), From(new(dtypes.UniversalBlockstore)))),
|
||||||
|
If(cfg.Chainstore.Splitstore.ColdStoreType == "discard",
|
||||||
|
Override(new(dtypes.ColdBlockstore), modules.DiscardColdBlockstore)),
|
||||||
|
If(cfg.Chainstore.Splitstore.HotStoreType == "badger",
|
||||||
|
Override(new(dtypes.HotBlockstore), modules.BadgerHotBlockstore)),
|
||||||
|
Override(new(dtypes.SplitBlockstore), modules.SplitBlockstore(&cfg.Chainstore)),
|
||||||
|
Override(new(dtypes.BasicChainBlockstore), modules.ChainSplitBlockstore),
|
||||||
|
Override(new(dtypes.BasicStateBlockstore), modules.StateSplitBlockstore),
|
||||||
|
Override(new(dtypes.BaseBlockstore), From(new(dtypes.SplitBlockstore))),
|
||||||
|
Override(new(dtypes.ExposedBlockstore), modules.ExposedSplitBlockstore),
|
||||||
|
Override(new(dtypes.GCReferenceProtector), modules.SplitBlockstoreGCReferenceProtector),
|
||||||
|
),
|
||||||
|
If(!cfg.Chainstore.EnableSplitstore,
|
||||||
|
Override(new(dtypes.BasicChainBlockstore), modules.ChainFlatBlockstore),
|
||||||
|
Override(new(dtypes.BasicStateBlockstore), modules.StateFlatBlockstore),
|
||||||
|
Override(new(dtypes.BaseBlockstore), From(new(dtypes.UniversalBlockstore))),
|
||||||
|
Override(new(dtypes.ExposedBlockstore), From(new(dtypes.UniversalBlockstore))),
|
||||||
|
Override(new(dtypes.GCReferenceProtector), modules.NoopGCReferenceProtector),
|
||||||
|
),
|
||||||
|
|
||||||
|
Override(new(dtypes.ChainBlockstore), From(new(dtypes.BasicChainBlockstore))),
|
||||||
|
Override(new(dtypes.StateBlockstore), From(new(dtypes.BasicStateBlockstore))),
|
||||||
|
|
||||||
|
If(os.Getenv("LOTUS_ENABLE_CHAINSTORE_FALLBACK") == "1",
|
||||||
|
Override(new(dtypes.ChainBlockstore), modules.FallbackChainBlockstore),
|
||||||
|
Override(new(dtypes.StateBlockstore), modules.FallbackStateBlockstore),
|
||||||
|
Override(SetupFallbackBlockstoresKey, modules.InitFallbackBlockstores),
|
||||||
|
),
|
||||||
|
|
||||||
|
Override(new(dtypes.ClientImportMgr), modules.ClientImportMgr),
|
||||||
|
|
||||||
|
Override(new(dtypes.ClientBlockstore), modules.ClientBlockstore),
|
||||||
|
|
||||||
If(cfg.Client.UseIpfs,
|
If(cfg.Client.UseIpfs,
|
||||||
Override(new(dtypes.ClientBlockstore), modules.IpfsClientBlockstore(ipfsMaddr, cfg.Client.IpfsOnlineMode)),
|
Override(new(dtypes.ClientBlockstore), modules.IpfsClientBlockstore(ipfsMaddr, cfg.Client.IpfsOnlineMode)),
|
||||||
Override(new(storagemarket.BlockstoreAccessor), modules.IpfsStorageBlockstoreAccessor),
|
Override(new(storagemarket.BlockstoreAccessor), modules.IpfsStorageBlockstoreAccessor),
|
||||||
|
Loading…
Reference in New Issue
Block a user