Documentation ¶
Index ¶
- Constants
- Variables
- func BlocksTopic(netName dtypes.NetworkName) string
- func BuiltinBootstrap() ([]peer.AddrInfo, error)
- func DhtProtocolName(netName dtypes.NetworkName) protocol.ID
- func DrandConfigSchedule() dtypes.DrandSchedule
- func IsNearUpgrade(epoch, upgradeEpoch abi.ChainEpoch) bool
- func MaybeGenesis() []byte
- func MessagesTopic(netName dtypes.NetworkName) string
- func MustParseAddress(addr string) address.Address
- func ParametersJSON() []byte
- func SetAddressNetwork(n address.Network)
- func UserVersion() string
- type DrandEnum
- type NodeType
- type Version
Constants ¶
const ( BuildDefault = 0 BuildMainnet = 0x1 Build2k = 0x2 BuildDebug = 0x3 BuildCalibnet = 0x4 )
const ActorUpgradeNetworkVersion = network.Version4
const AddressMainnetEnvVar = "_mainnet_"
const AllowableClockDriftSecs = uint64(1)
const BadBlockCacheSize = 1 << 15
Sync
const BaseFeeMaxChangeDenom = 8 // 12.5%
const BlockDelaySecs = uint64(builtin2.EpochDurationSeconds)
const BlockGasLimit = 10_000_000_000
const BlockGasTarget = BlockGasLimit / 2
const BlockMessageLimit = 10000
TODO: If this is gonna stay, it should move to specs-actors
const BlsSignatureCacheSize = 40000
assuming 4000 messages per round, this lets us not lose any messages across a 10 block reorg.
const BootstrapPeerThreshold = 4
BootstrapPeerThreshold is the minimum number peers we need to track for a sync worker to start
const BootstrappersFile = "mainnet.pi"
const BreezeGasTampingDuration = 120
const BuildVersion = "1.5.0"
BuildVersion is the local build version, set by build system
const FilAllocStorageMining = uint64(1_100_000_000)
const FilBase = uint64(2_000_000_000)
const FilReserved = uint64(300_000_000)
const FilecoinPrecision = uint64(1_000_000_000_000_000_000)
const Finality = policy.ChainFinality
Epochs
const ForkLengthThreshold = Finality
Epochs
const GenesisFile = "mainnet.car"
const InitialBaseFee = 100e6
const MessageConfidence = uint64(5)
const MinimumBaseFee = 100
const NewestNetworkVersion = network.Version9
const PackingEfficiencyDenom = 5
const PackingEfficiencyNum = 4
const PropagationDelaySecs = uint64(6)
const SealRandomnessLookback = policy.SealRandomnessLookback
Epochs TODO: unused
const TicketRandomnessLookback = abi.ChainEpoch(1)
Epochs
const UnixfsChunkSize uint64 = 1 << 20
const UnixfsLinksPerLevel = 1024
const UpgradeActorsV2Height = 138720
const UpgradeBreezeHeight = 41280
const UpgradeCalicoHeight = 265200
const UpgradeClausHeight = 343200
2020-12-22T02:00:00Z
const UpgradeIgnitionHeight = 94000
const UpgradeKumquatHeight = 170000
const UpgradeLiftoffHeight = 148888
This signals our tentative epoch for mainnet launch. Can make it later, but not earlier. Miners, clients, developers, custodians all need time to prepare. We still have upgrades and state changes to do, but can happen after signaling timing here.
const UpgradeOrangeHeight = 336458
const UpgradePersianHeight = UpgradeCalicoHeight + (builtin2.EpochsInHour * 60)
const UpgradeRefuelHeight = 130800
const UpgradeSmokeHeight = 51000
const UpgradeTapeHeight = 140760
const VerifSigCacheSize = 32000
Size of signature verification cache 32k keeps the cache around 10MB in size, max
const WRatioDen = uint64(2)
const WRatioNum = int64(1)
constants for Weight calculation The ratio of weight contributed by short-term vs long-term factors in a given round
Variables ¶
var ( FullAPIVersion = newVer(1, 1, 0) MinerAPIVersion = newVer(1, 0, 1) WorkerAPIVersion = newVer(1, 0, 0) )
semver versions of the rpc api exposed
var BlocksPerEpoch = uint64(builtin2.ExpectedLeadersPerEpoch)
Blocks (e)
var BuildType int
var Clock = clock.New()
Clock is the global clock for the system. In standard builds, we use a real-time clock, which maps to the `time` package.
Tests that need control of time can replace this variable with clock.NewMock(). Always use real time for socket/stream deadlines.
var CurrentCommit string
var Devnet = true
var DisableBuiltinAssets = false
DisableBuiltinAssets disables the resolution of go.rice boxes that store built-in assets, such as proof parameters, bootstrap peers, genesis blocks, etc.
When this value is set to true, it is expected that the user will provide any such configurations through the Lotus API itself.
This is useful when you're using Lotus as a library, such as to orchestrate test scenarios, or for other purposes where you don't need to use the defaults shipped with the binary.
For this flag to be effective, it must be enabled _before_ instantiating Lotus.
var DrandConfigs = map[DrandEnum]dtypes.DrandConfig{ DrandMainnet: { Servers: []string{ "https://api.drand.sh", "https://api2.drand.sh", "https://api3.drand.sh", "https://drand.cloudflare.com", }, Relays: []string{ "/dnsaddr/api.drand.sh/", "/dnsaddr/api2.drand.sh/", "/dnsaddr/api3.drand.sh/", }, ChainInfoJSON: `{"public_key":"868f005eb8e6e4ca0a47c8a77ceaa5309a47978a7c71bc5cce96366b5d7a569937c529eeda66c7293784a9402801af31","period":30,"genesis_time":1595431050,"hash":"8990e7a9aaed2ffed73dbd7092123d6f289930540d7651336225dc172e51b2ce","groupHash":"176f93498eac9ca337150b46d21dd58673ea4e3581185f869672e59fa4cb390a"}`, }, DrandTestnet: { Servers: []string{ "https://pl-eu.testnet.drand.sh", "https://pl-us.testnet.drand.sh", "https://pl-sin.testnet.drand.sh", }, Relays: []string{ "/dnsaddr/pl-eu.testnet.drand.sh/", "/dnsaddr/pl-us.testnet.drand.sh/", "/dnsaddr/pl-sin.testnet.drand.sh/", }, ChainInfoJSON: `{"public_key":"922a2e93828ff83345bae533f5172669a26c02dc76d6bf59c80892e12ab1455c229211886f35bb56af6d5bea981024df","period":25,"genesis_time":1590445175,"hash":"84b2234fb34e835dccd048255d7ad3194b81af7d978c3bf157e3469592ae4e02","groupHash":"4dd408e5fdff9323c76a9b6f087ba8fdc5a6da907bd9217d9d10f2287d081957"}`, }, DrandDevnet: { Servers: []string{ "https://dev1.drand.sh", "https://dev2.drand.sh", }, Relays: []string{ "/dnsaddr/dev1.drand.sh/", "/dnsaddr/dev2.drand.sh/", }, ChainInfoJSON: `{"public_key":"8cda589f88914aa728fd183f383980b35789ce81b274e5daee1f338b77d02566ef4d3fb0098af1f844f10f9c803c1827","period":25,"genesis_time":1595348225,"hash":"e73b7dc3c4f6a236378220c0dd6aa110eb16eed26c11259606e07ee122838d4f","groupHash":"567d4785122a5a3e75a9bc9911d7ea807dd85ff76b78dc4ff06b075712898607"}`, }, DrandIncentinet: { ChainInfoJSON: `{"public_key":"8cad0c72c606ab27d36ee06de1d5b2db1faf92e447025ca37575ab3a8aac2eaae83192f846fc9e158bc738423753d000","period":30,"genesis_time":1595873820,"hash":"80c8b872c714f4c00fdd3daa465d5514049f457f01f85a4caf68cdcd394ba039","groupHash":"d9406aaed487f7af71851b4399448e311f2328923d454e971536c05398ce2d9b"}`, }, }
var DrandSchedule = map[abi.ChainEpoch]DrandEnum{ 0: DrandIncentinet, UpgradeSmokeHeight: DrandMainnet, }
var InitialFilReserved *big.Int
var InitialRewardBalance *big.Int
var InsecurePoStValidation = false
var MinDealDuration = abi.ChainEpoch(180 * builtin2.EpochsInDay)
Actor consts TODO: Pull from actors when its made not private
var UpgradeActorsV3Height = abi.ChainEpoch(550321)
2021-03-04T00:00:30Z
var ZeroAddress = MustParseAddress("f3yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaby2smx7a")
the 'f' prefix doesn't matter
Functions ¶
func BlocksTopic ¶ added in v0.3.0
func BlocksTopic(netName dtypes.NetworkName) string
func BuiltinBootstrap ¶
func DhtProtocolName ¶ added in v0.3.0
func DhtProtocolName(netName dtypes.NetworkName) protocol.ID
func DrandConfigSchedule ¶ added in v0.7.0
func DrandConfigSchedule() dtypes.DrandSchedule
func IsNearUpgrade ¶ added in v1.4.0
func IsNearUpgrade(epoch, upgradeEpoch abi.ChainEpoch) bool
func MaybeGenesis ¶
func MaybeGenesis() []byte
func MessagesTopic ¶ added in v0.3.0
func MessagesTopic(netName dtypes.NetworkName) string
func MustParseAddress ¶ added in v1.2.0
func MustParseAddress(addr string) address.Address
func ParametersJSON ¶ added in v0.3.1
func ParametersJSON() []byte
func SetAddressNetwork ¶ added in v0.8.1
func SetAddressNetwork(n address.Network)
func UserVersion ¶ added in v0.1.1
func UserVersion() string
Types ¶
type Version ¶
type Version uint32