only enable rcmgr by default in full nodes

opt-in with envvar for other nodes, as there are still some issues
with markets related protocols
This commit is contained in:
vyzo 2022-05-31 12:03:03 +03:00 committed by Jennifer Wang
parent dda9ac31c6
commit d4d5ce3021
4 changed files with 14 additions and 2 deletions

View File

@ -27,9 +27,10 @@ import (
func ResourceManager(connMgrHi uint) func(lc fx.Lifecycle, repo repo.LockedRepo) (network.ResourceManager, error) {
return func(lc fx.Lifecycle, repo repo.LockedRepo) (network.ResourceManager, error) {
isFullNode := repo.RepoType().Type() == "FullNode"
envvar := os.Getenv("LOTUS_RCMGR")
if envvar == "0" {
// this is enabled by default; specify LOTUS_RCMGR=0 to disable
if (isFullNode && envvar == "0") || // only set NullResourceManager if envvar is explicitly "0"
(!isFullNode && envvar != "1") { // set NullResourceManager *unless* envvar is explicitly "1"
log.Info("libp2p resource manager is disabled")
return network.NullResourceManager, nil
}

View File

@ -417,6 +417,10 @@ type fsLockedRepo struct {
configLk sync.Mutex
}
func (fsr *fsLockedRepo) RepoType() RepoType {
return fsr.repoType
}
func (fsr *fsLockedRepo) Readonly() bool {
return fsr.readonly
}

View File

@ -52,6 +52,9 @@ type LockedRepo interface {
// Close closes repo and removes lock.
Close() error
// returns the type of this repo
RepoType() RepoType
// Returns datastore defined in this repo.
// The supplied context must only be used to initialize the datastore.
// The implementation should not retain the context for usage throughout

View File

@ -55,6 +55,10 @@ type lockedMemRepo struct {
token *byte
}
func (lmem *lockedMemRepo) RepoType() RepoType {
return lmem.t
}
func (lmem *lockedMemRepo) GetStorage() (stores.StorageConfig, error) {
if err := lmem.checkToken(); err != nil {
return stores.StorageConfig{}, err