diff --git a/build/params_calibnet.go b/build/params_calibnet.go index 9ecfc048dc7..c44cf718722 100644 --- a/build/params_calibnet.go +++ b/build/params_calibnet.go @@ -4,6 +4,9 @@ package build import ( + "os" + "strconv" + "github.com/ipfs/go-cid" "github.com/filecoin-project/go-address" @@ -84,13 +87,25 @@ func init() { Devnet = true + if len(os.Getenv("PROPAGATION_DELAY_SECS")) != 0 { + PropagationDelaySecs, err := strconv.ParseUint(os.Getenv("PROPAGATION_DELAY_SECS"), 10, 64) + if err != nil { + PropagationDelaySecs = uint64(10) + log.Warnw("Error setting PROPAGATION_DELAY_SECS, %v, proceed with default value %s", err, + PropagationDelaySecs) + } else { + log.Warnw(" !!WARNING!! propagation delay is set to be %s second, "+ + "this value impacts your message republish interval and block forming - monitor with caution!!", PropagationDelaySecs) + } + } + BuildType = BuildCalibnet } const BlockDelaySecs = uint64(builtin2.EpochDurationSeconds) -const PropagationDelaySecs = uint64(6) +const PropagationDelaySecs = uint64(10) // BootstrapPeerThreshold is the minimum number peers we need to track for a sync worker to start const BootstrapPeerThreshold = 4 diff --git a/build/params_mainnet.go b/build/params_mainnet.go index 7a532c17451..e08e1b9b10b 100644 --- a/build/params_mainnet.go +++ b/build/params_mainnet.go @@ -6,6 +6,7 @@ package build import ( "math" "os" + "strconv" "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-state-types/abi" @@ -86,6 +87,7 @@ var SupportedProofTypes = []abi.RegisteredSealProof{ var ConsensusMinerMinPower = abi.NewStoragePower(10 << 40) var MinVerifiedDealSize = abi.NewStoragePower(1 << 20) var PreCommitChallengeDelay = abi.ChainEpoch(150) +var PropagationDelaySecs = uint64(10) func init() { if os.Getenv("LOTUS_USE_TEST_ADDRESSES") != "1" { @@ -96,6 +98,21 @@ func init() { UpgradeSkyrHeight = math.MaxInt64 } + // NOTE: DO NOT change this unless you REALLY know what you're doing. This is not consensus critical, however, + //set this value too high may impacts your block submission; set this value too low may cause you miss + //parent tipsets for blocking forming and mining. + if len(os.Getenv("PROPAGATION_DELAY_SECS")) != 0 { + PropagationDelaySecs, err := strconv.ParseUint(os.Getenv("PROPAGATION_DELAY_SECS"), 10, 64) + if err != nil { + PropagationDelaySecs = uint64(10) + log.Warnw("Error setting PROPAGATION_DELAY_SECS, %v, proceed with default value %s", err, + PropagationDelaySecs) + } else { + log.Warnw(" !!WARNING!! propagation delay is set to be %s second, "+ + "this value impacts your message republish interval and block forming - monitor with caution!!", PropagationDelaySecs) + } + } + Devnet = false BuildType = BuildMainnet @@ -103,8 +120,6 @@ func init() { const BlockDelaySecs = uint64(builtin2.EpochDurationSeconds) -const PropagationDelaySecs = uint64(6) - // BootstrapPeerThreshold is the minimum number peers we need to track for a sync worker to start const BootstrapPeerThreshold = 4