lotus/build/params_shared.go

130 lines
3.2 KiB
Go
Raw Normal View History

2019-08-26 18:23:11 +00:00
package build
import (
"math/big"
2020-05-12 17:58:12 +00:00
"sort"
2020-03-31 23:13:37 +00:00
"github.com/libp2p/go-libp2p-core/protocol"
2020-05-12 17:58:12 +00:00
"github.com/filecoin-project/specs-actors/actors/abi"
"github.com/filecoin-project/specs-actors/actors/builtin"
"github.com/filecoin-project/specs-actors/actors/builtin/miner"
2020-03-31 23:13:37 +00:00
"github.com/filecoin-project/lotus/node/modules/dtypes"
)
2020-05-12 17:58:12 +00:00
func DefaultSectorSize() abi.SectorSize {
2020-05-12 18:33:46 +00:00
szs := make([]abi.SectorSize, 0, len(miner.SupportedProofTypes))
2020-05-12 17:58:12 +00:00
for spt := range miner.SupportedProofTypes {
ss, err := spt.SectorSize()
if err != nil {
panic(err)
}
szs = append(szs, ss)
}
sort.Slice(szs, func(i, j int) bool {
2020-05-13 20:21:46 +00:00
return szs[i] < szs[j]
2020-05-12 17:58:12 +00:00
})
return szs[0]
}
2019-08-26 18:23:11 +00:00
// Core network constants
2020-03-31 23:13:37 +00:00
func BlocksTopic(netName dtypes.NetworkName) string { return "/fil/blocks/" + string(netName) }
func MessagesTopic(netName dtypes.NetworkName) string { return "/fil/msgs/" + string(netName) }
func DhtProtocolName(netName dtypes.NetworkName) protocol.ID {
return protocol.ID("/fil/kad/" + string(netName))
}
2019-09-24 11:16:05 +00:00
// /////
// Storage
2019-08-26 18:23:11 +00:00
const UnixfsChunkSize uint64 = 1 << 20
2019-08-27 22:10:23 +00:00
const UnixfsLinksPerLevel = 1024
2019-09-24 11:16:05 +00:00
// /////
// Consensus / Network
// Seconds
const AllowableClockDrift = 1
2019-09-24 11:16:05 +00:00
2019-11-28 12:46:56 +00:00
// Epochs
2019-11-15 00:20:39 +00:00
const ForkLengthThreshold = Finality
2019-09-19 16:17:49 +00:00
2019-10-13 01:18:59 +00:00
// Blocks (e)
2020-05-12 17:58:12 +00:00
var BlocksPerEpoch = uint64(builtin.ExpectedLeadersPerEpoch)
2019-10-13 01:18:59 +00:00
2019-11-28 12:46:56 +00:00
// Epochs
2020-05-12 17:58:12 +00:00
const Finality = miner.ChainFinalityish
const MessageConfidence = 5
// constants for Weight calculation
// The ratio of weight contributed by short-term vs long-term factors in a given round
const WRatioNum = int64(1)
const WRatioDen = 2
2019-09-24 11:16:05 +00:00
// /////
// Proofs
2019-09-24 11:16:05 +00:00
2019-11-28 12:46:56 +00:00
// Epochs
const SealRandomnessLookback = Finality
2019-11-28 12:46:56 +00:00
// Epochs
const SealRandomnessLookbackLimit = SealRandomnessLookback + 2000 // TODO: Get from spec specs-actors
2019-11-05 16:15:52 +00:00
// Maximum lookback that randomness can be sourced from for a seal proof submission
const MaxSealLookback = SealRandomnessLookbackLimit + 2000 // TODO: Get from specs-actors
// /////
// Mining
2019-09-24 11:16:05 +00:00
2019-11-28 12:46:56 +00:00
// Epochs
const TicketRandomnessLookback = 1
const WinningPoStSectorSetLookback = 10
2019-09-24 11:16:05 +00:00
// /////
// Devnet settings
2019-11-08 08:40:02 +00:00
const TotalFilecoin = 2_000_000_000
const MiningRewardTotal = 1_400_000_000
2019-11-08 08:40:02 +00:00
const FilecoinPrecision = 1_000_000_000_000_000_000
2019-09-12 04:12:35 +00:00
2020-03-07 01:33:24 +00:00
var InitialRewardBalance *big.Int
2019-08-26 18:23:11 +00:00
// TODO: Move other important consts here
func init() {
2020-03-07 01:33:24 +00:00
InitialRewardBalance = big.NewInt(MiningRewardTotal)
InitialRewardBalance = InitialRewardBalance.Mul(InitialRewardBalance, big.NewInt(FilecoinPrecision))
}
2019-10-09 12:55:27 +00:00
// Sync
const BadBlockCacheSize = 1 << 15
2019-11-28 12:46:56 +00:00
// assuming 4000 messages per round, this lets us not lose any messages across a
// 10 block reorg.
const BlsSignatureCacheSize = 40000
// Size of signature verification cache
// 32k keeps the cache around 10MB in size, max
const VerifSigCacheSize = 32000
// ///////
// Limits
2020-05-11 20:19:35 +00:00
// TODO: If this is gonna stay, it should move to specs-actors
const BlockMessageLimit = 512
2020-05-13 01:36:56 +00:00
const BlockGasLimit = 100_000_000
var DrandCoeffs = []string{
2020-04-30 04:47:12 +00:00
"82c279cce744450e68de98ee08f9698a01dd38f8e3be3c53f2b840fb9d09ad62a0b6b87981e179e1b14bc9a2d284c985",
"82d51308ad346c686f81b8094551597d7b963295cbf313401a93df9baf52d5ae98a87745bee70839a4d6e65c342bd15b",
"94eebfd53f4ba6a3b8304236400a12e73885e5a781509a5c8d41d2e8b476923d8ea6052649b3c17282f596217f96c5de",
"8dc4231e42b4edf39e86ef1579401692480647918275da767d3e558c520d6375ad953530610fd27daf110187877a65d0",
}