2020-06-30 13:18:01 +00:00
|
|
|
// +build !testground
|
|
|
|
|
2019-08-26 18:23:11 +00:00
|
|
|
package build
|
|
|
|
|
2019-10-16 07:07:16 +00:00
|
|
|
import (
|
|
|
|
"math/big"
|
2020-09-25 19:45:27 +00:00
|
|
|
"os"
|
|
|
|
|
|
|
|
"github.com/filecoin-project/go-address"
|
2020-10-08 01:09:33 +00:00
|
|
|
"github.com/filecoin-project/go-state-types/abi"
|
2020-09-10 18:53:10 +00:00
|
|
|
"github.com/filecoin-project/go-state-types/network"
|
|
|
|
|
2020-10-08 01:09:33 +00:00
|
|
|
builtin2 "github.com/filecoin-project/specs-actors/v2/actors/builtin"
|
|
|
|
|
|
|
|
"github.com/filecoin-project/lotus/chain/actors/policy"
|
2019-10-16 07:07:16 +00:00
|
|
|
)
|
2019-09-27 21:42:12 +00:00
|
|
|
|
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
|
|
|
|
|
2020-06-30 14:00:01 +00:00
|
|
|
const AllowableClockDriftSecs = uint64(1)
|
2021-05-06 05:44:11 +00:00
|
|
|
const NewestNetworkVersion = network.Version13
|
2020-09-24 21:30:11 +00:00
|
|
|
const ActorUpgradeNetworkVersion = network.Version4
|
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-10-08 01:09:33 +00:00
|
|
|
var BlocksPerEpoch = uint64(builtin2.ExpectedLeadersPerEpoch)
|
2019-10-13 01:18:59 +00:00
|
|
|
|
2019-11-28 12:46:56 +00:00
|
|
|
// Epochs
|
2020-09-29 00:28:16 +00:00
|
|
|
const Finality = policy.ChainFinality
|
2020-06-30 13:58:34 +00:00
|
|
|
const MessageConfidence = uint64(5)
|
2019-10-28 17:14:24 +00:00
|
|
|
|
2019-11-09 00:18:15 +00:00
|
|
|
// constants for Weight calculation
|
|
|
|
// The ratio of weight contributed by short-term vs long-term factors in a given round
|
|
|
|
const WRatioNum = int64(1)
|
2020-06-30 13:58:34 +00:00
|
|
|
const WRatioDen = uint64(2)
|
2019-11-09 00:18:15 +00:00
|
|
|
|
2019-09-24 11:16:05 +00:00
|
|
|
// /////
|
2019-10-28 08:15:08 +00:00
|
|
|
// Proofs
|
2019-09-24 11:16:05 +00:00
|
|
|
|
2019-11-28 12:46:56 +00:00
|
|
|
// Epochs
|
2020-09-29 00:28:16 +00:00
|
|
|
// TODO: unused
|
|
|
|
const SealRandomnessLookback = policy.SealRandomnessLookback
|
2020-01-08 21:40:51 +00:00
|
|
|
|
2019-10-28 08:15:08 +00:00
|
|
|
// /////
|
|
|
|
// Mining
|
2019-09-24 11:16:05 +00:00
|
|
|
|
2019-11-28 12:46:56 +00:00
|
|
|
// Epochs
|
2020-06-30 13:58:34 +00:00
|
|
|
const TicketRandomnessLookback = abi.ChainEpoch(1)
|
2019-09-19 13:32:00 +00:00
|
|
|
|
2020-09-25 19:45:27 +00:00
|
|
|
// /////
|
|
|
|
// Address
|
|
|
|
|
|
|
|
const AddressMainnetEnvVar = "_mainnet_"
|
|
|
|
|
2020-11-17 06:34:06 +00:00
|
|
|
// the 'f' prefix doesn't matter
|
|
|
|
var ZeroAddress = MustParseAddress("f3yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaby2smx7a")
|
|
|
|
|
2019-09-24 11:16:05 +00:00
|
|
|
// /////
|
|
|
|
// Devnet settings
|
|
|
|
|
2020-09-24 21:30:11 +00:00
|
|
|
var Devnet = true
|
|
|
|
|
2020-07-27 23:10:13 +00:00
|
|
|
const FilBase = uint64(2_000_000_000)
|
|
|
|
const FilAllocStorageMining = uint64(1_100_000_000)
|
2019-09-26 22:33:38 +00:00
|
|
|
|
2020-06-30 13:58:34 +00:00
|
|
|
const FilecoinPrecision = uint64(1_000_000_000_000_000_000)
|
2020-10-05 01:38:52 +00:00
|
|
|
const FilReserved = uint64(300_000_000)
|
2019-09-12 04:12:35 +00:00
|
|
|
|
2020-03-07 01:33:24 +00:00
|
|
|
var InitialRewardBalance *big.Int
|
2020-10-05 01:38:52 +00:00
|
|
|
var InitialFilReserved *big.Int
|
2020-03-07 01:33:24 +00:00
|
|
|
|
2019-08-26 18:23:11 +00:00
|
|
|
// TODO: Move other important consts here
|
2019-09-27 21:42:12 +00:00
|
|
|
|
|
|
|
func init() {
|
2020-07-27 23:10:13 +00:00
|
|
|
InitialRewardBalance = big.NewInt(int64(FilAllocStorageMining))
|
2020-06-30 13:58:34 +00:00
|
|
|
InitialRewardBalance = InitialRewardBalance.Mul(InitialRewardBalance, big.NewInt(int64(FilecoinPrecision)))
|
2020-09-25 19:45:27 +00:00
|
|
|
|
2020-10-05 01:38:52 +00:00
|
|
|
InitialFilReserved = big.NewInt(int64(FilReserved))
|
|
|
|
InitialFilReserved = InitialFilReserved.Mul(InitialFilReserved, big.NewInt(int64(FilecoinPrecision)))
|
|
|
|
|
2020-09-25 19:45:27 +00:00
|
|
|
if os.Getenv("LOTUS_ADDRESS_TYPE") == AddressMainnetEnvVar {
|
|
|
|
SetAddressNetwork(address.Mainnet)
|
|
|
|
}
|
2019-09-27 21:42:12 +00:00
|
|
|
}
|
2019-10-09 12:55:27 +00:00
|
|
|
|
|
|
|
// Sync
|
2019-11-11 22:37:34 +00:00
|
|
|
const BadBlockCacheSize = 1 << 15
|
2019-11-12 07:16:42 +00:00
|
|
|
|
2019-11-28 12:46:56 +00:00
|
|
|
// assuming 4000 messages per round, this lets us not lose any messages across a
|
2019-11-11 22:37:34 +00:00
|
|
|
// 10 block reorg.
|
2019-11-12 07:16:42 +00:00
|
|
|
const BlsSignatureCacheSize = 40000
|
2020-01-07 20:41:26 +00:00
|
|
|
|
2020-05-15 17:56:38 +00:00
|
|
|
// Size of signature verification cache
|
|
|
|
// 32k keeps the cache around 10MB in size, max
|
|
|
|
const VerifSigCacheSize = 32000
|
|
|
|
|
2020-01-07 20:41:26 +00:00
|
|
|
// ///////
|
|
|
|
// Limits
|
|
|
|
|
2020-05-11 20:19:35 +00:00
|
|
|
// TODO: If this is gonna stay, it should move to specs-actors
|
2020-08-07 02:16:05 +00:00
|
|
|
const BlockMessageLimit = 10000
|
2020-08-18 13:19:24 +00:00
|
|
|
|
2020-08-06 17:09:03 +00:00
|
|
|
const BlockGasLimit = 10_000_000_000
|
|
|
|
const BlockGasTarget = BlockGasLimit / 2
|
|
|
|
const BaseFeeMaxChangeDenom = 8 // 12.5%
|
|
|
|
const InitialBaseFee = 100e6
|
|
|
|
const MinimumBaseFee = 100
|
2020-08-18 13:19:24 +00:00
|
|
|
const PackingEfficiencyNum = 4
|
|
|
|
const PackingEfficiencyDenom = 5
|
2020-07-28 17:51:47 +00:00
|
|
|
|
|
|
|
// Actor consts
|
2020-12-30 08:02:53 +00:00
|
|
|
// TODO: pieceSize unused from actors
|
|
|
|
var MinDealDuration, MaxDealDuration = policy.DealDurationBounds(0)
|