Merge pull request #8546 from simlecode/feat/state_network_params_api
feat: api: add StateGetNetworkParams api
This commit is contained in:
commit
f22a0f9ec0
@ -592,6 +592,9 @@ type FullNode interface {
|
|||||||
// StateGetRandomnessFromBeacon is used to sample the beacon for randomness.
|
// StateGetRandomnessFromBeacon is used to sample the beacon for randomness.
|
||||||
StateGetRandomnessFromBeacon(ctx context.Context, personalization crypto.DomainSeparationTag, randEpoch abi.ChainEpoch, entropy []byte, tsk types.TipSetKey) (abi.Randomness, error) //perm:read
|
StateGetRandomnessFromBeacon(ctx context.Context, personalization crypto.DomainSeparationTag, randEpoch abi.ChainEpoch, entropy []byte, tsk types.TipSetKey) (abi.Randomness, error) //perm:read
|
||||||
|
|
||||||
|
// StateGetNetworkParams return current network params
|
||||||
|
StateGetNetworkParams(ctx context.Context) (*NetworkParams, error) //perm:read
|
||||||
|
|
||||||
// MethodGroup: Msig
|
// MethodGroup: Msig
|
||||||
// The Msig methods are used to interact with multisig wallets on the
|
// The Msig methods are used to interact with multisig wallets on the
|
||||||
// filecoin network
|
// filecoin network
|
||||||
|
@ -2406,6 +2406,21 @@ func (mr *MockFullNodeMockRecorder) StateGetActor(arg0, arg1, arg2 interface{})
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetActor", reflect.TypeOf((*MockFullNode)(nil).StateGetActor), arg0, arg1, arg2)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetActor", reflect.TypeOf((*MockFullNode)(nil).StateGetActor), arg0, arg1, arg2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// StateGetNetworkParams mocks base method.
|
||||||
|
func (m *MockFullNode) StateGetNetworkParams(arg0 context.Context) (*api.NetworkParams, error) {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "StateGetNetworkParams", arg0)
|
||||||
|
ret0, _ := ret[0].(*api.NetworkParams)
|
||||||
|
ret1, _ := ret[1].(error)
|
||||||
|
return ret0, ret1
|
||||||
|
}
|
||||||
|
|
||||||
|
// StateGetNetworkParams indicates an expected call of StateGetNetworkParams.
|
||||||
|
func (mr *MockFullNodeMockRecorder) StateGetNetworkParams(arg0 interface{}) *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetNetworkParams", reflect.TypeOf((*MockFullNode)(nil).StateGetNetworkParams), arg0)
|
||||||
|
}
|
||||||
|
|
||||||
// StateGetRandomnessFromBeacon mocks base method.
|
// StateGetRandomnessFromBeacon mocks base method.
|
||||||
func (m *MockFullNode) StateGetRandomnessFromBeacon(arg0 context.Context, arg1 crypto.DomainSeparationTag, arg2 abi.ChainEpoch, arg3 []byte, arg4 types.TipSetKey) (abi.Randomness, error) {
|
func (m *MockFullNode) StateGetRandomnessFromBeacon(arg0 context.Context, arg1 crypto.DomainSeparationTag, arg2 abi.ChainEpoch, arg3 []byte, arg4 types.TipSetKey) (abi.Randomness, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
|
@ -352,6 +352,8 @@ type FullNodeStruct struct {
|
|||||||
|
|
||||||
StateGetActor func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*types.Actor, error) `perm:"read"`
|
StateGetActor func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*types.Actor, error) `perm:"read"`
|
||||||
|
|
||||||
|
StateGetNetworkParams func(p0 context.Context) (*NetworkParams, error) `perm:"read"`
|
||||||
|
|
||||||
StateGetRandomnessFromBeacon func(p0 context.Context, p1 crypto.DomainSeparationTag, p2 abi.ChainEpoch, p3 []byte, p4 types.TipSetKey) (abi.Randomness, error) `perm:"read"`
|
StateGetRandomnessFromBeacon func(p0 context.Context, p1 crypto.DomainSeparationTag, p2 abi.ChainEpoch, p3 []byte, p4 types.TipSetKey) (abi.Randomness, error) `perm:"read"`
|
||||||
|
|
||||||
StateGetRandomnessFromTickets func(p0 context.Context, p1 crypto.DomainSeparationTag, p2 abi.ChainEpoch, p3 []byte, p4 types.TipSetKey) (abi.Randomness, error) `perm:"read"`
|
StateGetRandomnessFromTickets func(p0 context.Context, p1 crypto.DomainSeparationTag, p2 abi.ChainEpoch, p3 []byte, p4 types.TipSetKey) (abi.Randomness, error) `perm:"read"`
|
||||||
@ -2470,6 +2472,17 @@ func (s *FullNodeStub) StateGetActor(p0 context.Context, p1 address.Address, p2
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *FullNodeStruct) StateGetNetworkParams(p0 context.Context) (*NetworkParams, error) {
|
||||||
|
if s.Internal.StateGetNetworkParams == nil {
|
||||||
|
return nil, ErrNotSupported
|
||||||
|
}
|
||||||
|
return s.Internal.StateGetNetworkParams(p0)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *FullNodeStub) StateGetNetworkParams(p0 context.Context) (*NetworkParams, error) {
|
||||||
|
return nil, ErrNotSupported
|
||||||
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) StateGetRandomnessFromBeacon(p0 context.Context, p1 crypto.DomainSeparationTag, p2 abi.ChainEpoch, p3 []byte, p4 types.TipSetKey) (abi.Randomness, error) {
|
func (s *FullNodeStruct) StateGetRandomnessFromBeacon(p0 context.Context, p1 crypto.DomainSeparationTag, p2 abi.ChainEpoch, p3 []byte, p4 types.TipSetKey) (abi.Randomness, error) {
|
||||||
if s.Internal.StateGetRandomnessFromBeacon == nil {
|
if s.Internal.StateGetRandomnessFromBeacon == nil {
|
||||||
return *new(abi.Randomness), ErrNotSupported
|
return *new(abi.Randomness), ErrNotSupported
|
||||||
|
33
api/types.go
33
api/types.go
@ -11,6 +11,7 @@ import (
|
|||||||
"github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
"github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
|
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
"github.com/ipfs/go-graphsync"
|
"github.com/ipfs/go-graphsync"
|
||||||
|
|
||||||
@ -284,3 +285,35 @@ type ExportRef struct {
|
|||||||
FromLocalCAR string // if specified, get data from a local CARv2 file.
|
FromLocalCAR string // if specified, get data from a local CARv2 file.
|
||||||
DealID retrievalmarket.DealID
|
DealID retrievalmarket.DealID
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type NetworkParams struct {
|
||||||
|
NetworkName dtypes.NetworkName
|
||||||
|
BlockDelaySecs uint64
|
||||||
|
ConsensusMinerMinPower abi.StoragePower
|
||||||
|
SupportedProofTypes []abi.RegisteredSealProof
|
||||||
|
PreCommitChallengeDelay abi.ChainEpoch
|
||||||
|
ForkUpgradeParams ForkUpgradeParams
|
||||||
|
}
|
||||||
|
|
||||||
|
type ForkUpgradeParams struct {
|
||||||
|
UpgradeSmokeHeight abi.ChainEpoch
|
||||||
|
UpgradeBreezeHeight abi.ChainEpoch
|
||||||
|
UpgradeIgnitionHeight abi.ChainEpoch
|
||||||
|
UpgradeLiftoffHeight abi.ChainEpoch
|
||||||
|
UpgradeAssemblyHeight abi.ChainEpoch
|
||||||
|
UpgradeRefuelHeight abi.ChainEpoch
|
||||||
|
UpgradeTapeHeight abi.ChainEpoch
|
||||||
|
UpgradeKumquatHeight abi.ChainEpoch
|
||||||
|
UpgradePriceListOopsHeight abi.ChainEpoch
|
||||||
|
BreezeGasTampingDuration abi.ChainEpoch
|
||||||
|
UpgradeCalicoHeight abi.ChainEpoch
|
||||||
|
UpgradePersianHeight abi.ChainEpoch
|
||||||
|
UpgradeOrangeHeight abi.ChainEpoch
|
||||||
|
UpgradeClausHeight abi.ChainEpoch
|
||||||
|
UpgradeTrustHeight abi.ChainEpoch
|
||||||
|
UpgradeNorwegianHeight abi.ChainEpoch
|
||||||
|
UpgradeTurboHeight abi.ChainEpoch
|
||||||
|
UpgradeHyperdriveHeight abi.ChainEpoch
|
||||||
|
UpgradeChocolateHeight abi.ChainEpoch
|
||||||
|
UpgradeOhSnapHeight abi.ChainEpoch
|
||||||
|
}
|
||||||
|
@ -604,6 +604,9 @@ type FullNode interface {
|
|||||||
// StateGetRandomnessFromBeacon is used to sample the beacon for randomness.
|
// StateGetRandomnessFromBeacon is used to sample the beacon for randomness.
|
||||||
StateGetRandomnessFromBeacon(ctx context.Context, personalization crypto.DomainSeparationTag, randEpoch abi.ChainEpoch, entropy []byte, tsk types.TipSetKey) (abi.Randomness, error) //perm:read
|
StateGetRandomnessFromBeacon(ctx context.Context, personalization crypto.DomainSeparationTag, randEpoch abi.ChainEpoch, entropy []byte, tsk types.TipSetKey) (abi.Randomness, error) //perm:read
|
||||||
|
|
||||||
|
// StateGetNetworkParams return current network params
|
||||||
|
StateGetNetworkParams(ctx context.Context) (*api.NetworkParams, error) //perm:read
|
||||||
|
|
||||||
// MethodGroup: Msig
|
// MethodGroup: Msig
|
||||||
// The Msig methods are used to interact with multisig wallets on the
|
// The Msig methods are used to interact with multisig wallets on the
|
||||||
// filecoin network
|
// filecoin network
|
||||||
|
@ -267,6 +267,8 @@ type FullNodeStruct struct {
|
|||||||
|
|
||||||
StateGetActor func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*types.Actor, error) `perm:"read"`
|
StateGetActor func(p0 context.Context, p1 address.Address, p2 types.TipSetKey) (*types.Actor, error) `perm:"read"`
|
||||||
|
|
||||||
|
StateGetNetworkParams func(p0 context.Context) (*api.NetworkParams, error) `perm:"read"`
|
||||||
|
|
||||||
StateGetRandomnessFromBeacon func(p0 context.Context, p1 crypto.DomainSeparationTag, p2 abi.ChainEpoch, p3 []byte, p4 types.TipSetKey) (abi.Randomness, error) `perm:"read"`
|
StateGetRandomnessFromBeacon func(p0 context.Context, p1 crypto.DomainSeparationTag, p2 abi.ChainEpoch, p3 []byte, p4 types.TipSetKey) (abi.Randomness, error) `perm:"read"`
|
||||||
|
|
||||||
StateGetRandomnessFromTickets func(p0 context.Context, p1 crypto.DomainSeparationTag, p2 abi.ChainEpoch, p3 []byte, p4 types.TipSetKey) (abi.Randomness, error) `perm:"read"`
|
StateGetRandomnessFromTickets func(p0 context.Context, p1 crypto.DomainSeparationTag, p2 abi.ChainEpoch, p3 []byte, p4 types.TipSetKey) (abi.Randomness, error) `perm:"read"`
|
||||||
@ -1746,6 +1748,17 @@ func (s *FullNodeStub) StateGetActor(p0 context.Context, p1 address.Address, p2
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *FullNodeStruct) StateGetNetworkParams(p0 context.Context) (*api.NetworkParams, error) {
|
||||||
|
if s.Internal.StateGetNetworkParams == nil {
|
||||||
|
return nil, ErrNotSupported
|
||||||
|
}
|
||||||
|
return s.Internal.StateGetNetworkParams(p0)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *FullNodeStub) StateGetNetworkParams(p0 context.Context) (*api.NetworkParams, error) {
|
||||||
|
return nil, ErrNotSupported
|
||||||
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) StateGetRandomnessFromBeacon(p0 context.Context, p1 crypto.DomainSeparationTag, p2 abi.ChainEpoch, p3 []byte, p4 types.TipSetKey) (abi.Randomness, error) {
|
func (s *FullNodeStruct) StateGetRandomnessFromBeacon(p0 context.Context, p1 crypto.DomainSeparationTag, p2 abi.ChainEpoch, p3 []byte, p4 types.TipSetKey) (abi.Randomness, error) {
|
||||||
if s.Internal.StateGetRandomnessFromBeacon == nil {
|
if s.Internal.StateGetRandomnessFromBeacon == nil {
|
||||||
return *new(abi.Randomness), ErrNotSupported
|
return *new(abi.Randomness), ErrNotSupported
|
||||||
|
@ -2275,6 +2275,21 @@ func (mr *MockFullNodeMockRecorder) StateGetActor(arg0, arg1, arg2 interface{})
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetActor", reflect.TypeOf((*MockFullNode)(nil).StateGetActor), arg0, arg1, arg2)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetActor", reflect.TypeOf((*MockFullNode)(nil).StateGetActor), arg0, arg1, arg2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// StateGetNetworkParams mocks base method.
|
||||||
|
func (m *MockFullNode) StateGetNetworkParams(arg0 context.Context) (*api.NetworkParams, error) {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "StateGetNetworkParams", arg0)
|
||||||
|
ret0, _ := ret[0].(*api.NetworkParams)
|
||||||
|
ret1, _ := ret[1].(error)
|
||||||
|
return ret0, ret1
|
||||||
|
}
|
||||||
|
|
||||||
|
// StateGetNetworkParams indicates an expected call of StateGetNetworkParams.
|
||||||
|
func (mr *MockFullNodeMockRecorder) StateGetNetworkParams(arg0 interface{}) *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StateGetNetworkParams", reflect.TypeOf((*MockFullNode)(nil).StateGetNetworkParams), arg0)
|
||||||
|
}
|
||||||
|
|
||||||
// StateGetRandomnessFromBeacon mocks base method.
|
// StateGetRandomnessFromBeacon mocks base method.
|
||||||
func (m *MockFullNode) StateGetRandomnessFromBeacon(arg0 context.Context, arg1 crypto.DomainSeparationTag, arg2 abi.ChainEpoch, arg3 []byte, arg4 types.TipSetKey) (abi.Randomness, error) {
|
func (m *MockFullNode) StateGetRandomnessFromBeacon(arg0 context.Context, arg1 crypto.DomainSeparationTag, arg2 abi.ChainEpoch, arg3 []byte, arg4 types.TipSetKey) (abi.Randomness, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -53,11 +53,19 @@ var DrandSchedule = map[abi.ChainEpoch]DrandEnum{
|
|||||||
0: DrandMainnet,
|
0: DrandMainnet,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var SupportedProofTypes = []abi.RegisteredSealProof{
|
||||||
|
abi.RegisteredSealProof_StackedDrg2KiBV1,
|
||||||
|
abi.RegisteredSealProof_StackedDrg8MiBV1,
|
||||||
|
}
|
||||||
|
var ConsensusMinerMinPower = abi.NewStoragePower(2048)
|
||||||
|
var MinVerifiedDealSize = abi.NewStoragePower(256)
|
||||||
|
var PreCommitChallengeDelay = abi.ChainEpoch(10)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
policy.SetSupportedProofTypes(abi.RegisteredSealProof_StackedDrg2KiBV1, abi.RegisteredSealProof_StackedDrg8MiBV1)
|
policy.SetSupportedProofTypes(SupportedProofTypes...)
|
||||||
policy.SetConsensusMinerMinPower(abi.NewStoragePower(2048))
|
policy.SetConsensusMinerMinPower(ConsensusMinerMinPower)
|
||||||
policy.SetMinVerifiedDealSize(abi.NewStoragePower(256))
|
policy.SetMinVerifiedDealSize(MinVerifiedDealSize)
|
||||||
policy.SetPreCommitChallengeDelay(abi.ChainEpoch(10))
|
policy.SetPreCommitChallengeDelay(PreCommitChallengeDelay)
|
||||||
|
|
||||||
getUpgradeHeight := func(ev string, def abi.ChainEpoch) abi.ChainEpoch {
|
getUpgradeHeight := func(ev string, def abi.ChainEpoch) abi.ChainEpoch {
|
||||||
hs, found := os.LookupEnv(ev)
|
hs, found := os.LookupEnv(ev)
|
||||||
|
@ -44,13 +44,20 @@ const UpgradeChocolateHeight = -17
|
|||||||
|
|
||||||
const UpgradeOhSnapHeight = 240
|
const UpgradeOhSnapHeight = 240
|
||||||
|
|
||||||
|
var SupportedProofTypes = []abi.RegisteredSealProof{
|
||||||
|
abi.RegisteredSealProof_StackedDrg512MiBV1,
|
||||||
|
abi.RegisteredSealProof_StackedDrg32GiBV1,
|
||||||
|
abi.RegisteredSealProof_StackedDrg64GiBV1,
|
||||||
|
}
|
||||||
|
var ConsensusMinerMinPower = abi.NewStoragePower(2 << 30)
|
||||||
|
var MinVerifiedDealSize = abi.NewStoragePower(1 << 20)
|
||||||
|
var PreCommitChallengeDelay = abi.ChainEpoch(150)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
policy.SetConsensusMinerMinPower(abi.NewStoragePower(2 << 30))
|
policy.SetSupportedProofTypes(SupportedProofTypes...)
|
||||||
policy.SetSupportedProofTypes(
|
policy.SetConsensusMinerMinPower(ConsensusMinerMinPower)
|
||||||
abi.RegisteredSealProof_StackedDrg512MiBV1,
|
policy.SetMinVerifiedDealSize(MinVerifiedDealSize)
|
||||||
abi.RegisteredSealProof_StackedDrg32GiBV1,
|
policy.SetPreCommitChallengeDelay(PreCommitChallengeDelay)
|
||||||
abi.RegisteredSealProof_StackedDrg64GiBV1,
|
|
||||||
)
|
|
||||||
|
|
||||||
SetAddressNetwork(address.Testnet)
|
SetAddressNetwork(address.Testnet)
|
||||||
|
|
||||||
|
@ -57,12 +57,19 @@ const UpgradeChocolateHeight = 312746
|
|||||||
// 2022-02-10T19:23:00Z
|
// 2022-02-10T19:23:00Z
|
||||||
const UpgradeOhSnapHeight = 682006
|
const UpgradeOhSnapHeight = 682006
|
||||||
|
|
||||||
|
var SupportedProofTypes = []abi.RegisteredSealProof{
|
||||||
|
abi.RegisteredSealProof_StackedDrg32GiBV1,
|
||||||
|
abi.RegisteredSealProof_StackedDrg64GiBV1,
|
||||||
|
}
|
||||||
|
var ConsensusMinerMinPower = abi.NewStoragePower(32 << 30)
|
||||||
|
var MinVerifiedDealSize = abi.NewStoragePower(1 << 20)
|
||||||
|
var PreCommitChallengeDelay = abi.ChainEpoch(150)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
policy.SetConsensusMinerMinPower(abi.NewStoragePower(32 << 30))
|
policy.SetSupportedProofTypes(SupportedProofTypes...)
|
||||||
policy.SetSupportedProofTypes(
|
policy.SetConsensusMinerMinPower(ConsensusMinerMinPower)
|
||||||
abi.RegisteredSealProof_StackedDrg32GiBV1,
|
policy.SetMinVerifiedDealSize(MinVerifiedDealSize)
|
||||||
abi.RegisteredSealProof_StackedDrg64GiBV1,
|
policy.SetPreCommitChallengeDelay(PreCommitChallengeDelay)
|
||||||
)
|
|
||||||
|
|
||||||
SetAddressNetwork(address.Testnet)
|
SetAddressNetwork(address.Testnet)
|
||||||
|
|
||||||
|
@ -53,15 +53,20 @@ var DrandSchedule = map[abi.ChainEpoch]DrandEnum{
|
|||||||
0: DrandMainnet,
|
0: DrandMainnet,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var SupportedProofTypes = []abi.RegisteredSealProof{
|
||||||
|
abi.RegisteredSealProof_StackedDrg2KiBV1,
|
||||||
|
abi.RegisteredSealProof_StackedDrg8MiBV1,
|
||||||
|
abi.RegisteredSealProof_StackedDrg512MiBV1,
|
||||||
|
}
|
||||||
|
var ConsensusMinerMinPower = abi.NewStoragePower(2048)
|
||||||
|
var MinVerifiedDealSize = abi.NewStoragePower(256)
|
||||||
|
var PreCommitChallengeDelay = abi.ChainEpoch(10)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
policy.SetSupportedProofTypes(
|
policy.SetSupportedProofTypes(SupportedProofTypes...)
|
||||||
abi.RegisteredSealProof_StackedDrg2KiBV1,
|
policy.SetConsensusMinerMinPower(ConsensusMinerMinPower)
|
||||||
abi.RegisteredSealProof_StackedDrg8MiBV1,
|
policy.SetMinVerifiedDealSize(MinVerifiedDealSize)
|
||||||
abi.RegisteredSealProof_StackedDrg512MiBV1,
|
policy.SetPreCommitChallengeDelay(PreCommitChallengeDelay)
|
||||||
)
|
|
||||||
policy.SetConsensusMinerMinPower(abi.NewStoragePower(2048))
|
|
||||||
policy.SetMinVerifiedDealSize(abi.NewStoragePower(256))
|
|
||||||
policy.SetPreCommitChallengeDelay(abi.ChainEpoch(10))
|
|
||||||
|
|
||||||
getUpgradeHeight := func(ev string, def abi.ChainEpoch) abi.ChainEpoch {
|
getUpgradeHeight := func(ev string, def abi.ChainEpoch) abi.ChainEpoch {
|
||||||
hs, found := os.LookupEnv(ev)
|
hs, found := os.LookupEnv(ev)
|
||||||
|
@ -70,6 +70,14 @@ const UpgradeChocolateHeight = 1231620
|
|||||||
// 2022-03-01T15:00:00Z
|
// 2022-03-01T15:00:00Z
|
||||||
var UpgradeOhSnapHeight = abi.ChainEpoch(1594680)
|
var UpgradeOhSnapHeight = abi.ChainEpoch(1594680)
|
||||||
|
|
||||||
|
var SupportedProofTypes = []abi.RegisteredSealProof{
|
||||||
|
abi.RegisteredSealProof_StackedDrg32GiBV1,
|
||||||
|
abi.RegisteredSealProof_StackedDrg64GiBV1,
|
||||||
|
}
|
||||||
|
var ConsensusMinerMinPower = abi.NewStoragePower(10 << 40)
|
||||||
|
var MinVerifiedDealSize = abi.NewStoragePower(1 << 20)
|
||||||
|
var PreCommitChallengeDelay = abi.ChainEpoch(150)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
if os.Getenv("LOTUS_USE_TEST_ADDRESSES") != "1" {
|
if os.Getenv("LOTUS_USE_TEST_ADDRESSES") != "1" {
|
||||||
SetAddressNetwork(address.Mainnet)
|
SetAddressNetwork(address.Mainnet)
|
||||||
|
@ -50,23 +50,29 @@ const UpgradeHyperdriveHeight = 379178
|
|||||||
|
|
||||||
const UpgradeChocolateHeight = 999999999
|
const UpgradeChocolateHeight = 999999999
|
||||||
|
|
||||||
|
var SupportedProofTypes = []abi.RegisteredSealProof{
|
||||||
|
abi.RegisteredSealProof_StackedDrg512MiBV1,
|
||||||
|
abi.RegisteredSealProof_StackedDrg32GiBV1,
|
||||||
|
abi.RegisteredSealProof_StackedDrg64GiBV1,
|
||||||
|
}
|
||||||
|
|
||||||
|
// Minimum block production power is set to 4 TiB
|
||||||
|
// Rationale is to discourage small-scale miners from trying to take over the network
|
||||||
|
// One needs to invest in ~2.3x the compute to break consensus, making it not worth it
|
||||||
|
//
|
||||||
|
// DOWNSIDE: the fake-seals need to be kept alive/protected, otherwise network will seize
|
||||||
|
//
|
||||||
|
var ConsensusMinerMinPower = abi.NewStoragePower(4 << 40)
|
||||||
|
var MinVerifiedDealSize = abi.NewStoragePower(1 << 20)
|
||||||
|
|
||||||
|
// Lower the most time-consuming parts of PoRep
|
||||||
|
var PreCommitChallengeDelay = abi.ChainEpoch(10)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
// Minimum block production power is set to 4 TiB
|
policy.SetSupportedProofTypes(SupportedProofTypes...)
|
||||||
// Rationale is to discourage small-scale miners from trying to take over the network
|
policy.SetConsensusMinerMinPower(ConsensusMinerMinPower)
|
||||||
// One needs to invest in ~2.3x the compute to break consensus, making it not worth it
|
policy.SetMinVerifiedDealSize(MinVerifiedDealSize)
|
||||||
//
|
policy.SetPreCommitChallengeDelay(PreCommitChallengeDelay)
|
||||||
// DOWNSIDE: the fake-seals need to be kept alive/protected, otherwise network will seize
|
|
||||||
//
|
|
||||||
policy.SetConsensusMinerMinPower(abi.NewStoragePower(4 << 40))
|
|
||||||
|
|
||||||
policy.SetSupportedProofTypes(
|
|
||||||
abi.RegisteredSealProof_StackedDrg512MiBV1,
|
|
||||||
abi.RegisteredSealProof_StackedDrg32GiBV1,
|
|
||||||
abi.RegisteredSealProof_StackedDrg64GiBV1,
|
|
||||||
)
|
|
||||||
|
|
||||||
// Lower the most time-consuming parts of PoRep
|
|
||||||
policy.SetPreCommitChallengeDelay(10)
|
|
||||||
|
|
||||||
// TODO - make this a variable
|
// TODO - make this a variable
|
||||||
//miner.WPoStChallengeLookback = abi.ChainEpoch(2)
|
//miner.WPoStChallengeLookback = abi.ChainEpoch(2)
|
||||||
|
@ -33,6 +33,12 @@ var (
|
|||||||
MinimumBaseFee = int64(100)
|
MinimumBaseFee = int64(100)
|
||||||
BlockDelaySecs = uint64(builtin2.EpochDurationSeconds)
|
BlockDelaySecs = uint64(builtin2.EpochDurationSeconds)
|
||||||
PropagationDelaySecs = uint64(6)
|
PropagationDelaySecs = uint64(6)
|
||||||
|
SupportedProofTypes = []abi.RegisteredSealProof{
|
||||||
|
abi.RegisteredSealProof_StackedDrg32GiBV1,
|
||||||
|
abi.RegisteredSealProof_StackedDrg64GiBV1,
|
||||||
|
}
|
||||||
|
ConsensusMinerMinPower = abi.NewStoragePower(10 << 40)
|
||||||
|
PreCommitChallengeDelay = abi.ChainEpoch(150)
|
||||||
|
|
||||||
AllowableClockDriftSecs = uint64(1)
|
AllowableClockDriftSecs = uint64(1)
|
||||||
|
|
||||||
|
@ -165,6 +165,7 @@
|
|||||||
* [StateDealProviderCollateralBounds](#StateDealProviderCollateralBounds)
|
* [StateDealProviderCollateralBounds](#StateDealProviderCollateralBounds)
|
||||||
* [StateDecodeParams](#StateDecodeParams)
|
* [StateDecodeParams](#StateDecodeParams)
|
||||||
* [StateGetActor](#StateGetActor)
|
* [StateGetActor](#StateGetActor)
|
||||||
|
* [StateGetNetworkParams](#StateGetNetworkParams)
|
||||||
* [StateGetRandomnessFromBeacon](#StateGetRandomnessFromBeacon)
|
* [StateGetRandomnessFromBeacon](#StateGetRandomnessFromBeacon)
|
||||||
* [StateGetRandomnessFromTickets](#StateGetRandomnessFromTickets)
|
* [StateGetRandomnessFromTickets](#StateGetRandomnessFromTickets)
|
||||||
* [StateGetReceipt](#StateGetReceipt)
|
* [StateGetReceipt](#StateGetReceipt)
|
||||||
@ -5185,6 +5186,49 @@ Response:
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### StateGetNetworkParams
|
||||||
|
StateGetNetworkParams return current network params
|
||||||
|
|
||||||
|
|
||||||
|
Perms: read
|
||||||
|
|
||||||
|
Inputs: `null`
|
||||||
|
|
||||||
|
Response:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"NetworkName": "lotus",
|
||||||
|
"BlockDelaySecs": 42,
|
||||||
|
"ConsensusMinerMinPower": "0",
|
||||||
|
"SupportedProofTypes": [
|
||||||
|
8
|
||||||
|
],
|
||||||
|
"PreCommitChallengeDelay": 10101,
|
||||||
|
"ForkUpgradeParams": {
|
||||||
|
"UpgradeSmokeHeight": 10101,
|
||||||
|
"UpgradeBreezeHeight": 10101,
|
||||||
|
"UpgradeIgnitionHeight": 10101,
|
||||||
|
"UpgradeLiftoffHeight": 10101,
|
||||||
|
"UpgradeAssemblyHeight": 10101,
|
||||||
|
"UpgradeRefuelHeight": 10101,
|
||||||
|
"UpgradeTapeHeight": 10101,
|
||||||
|
"UpgradeKumquatHeight": 10101,
|
||||||
|
"UpgradePriceListOopsHeight": 10101,
|
||||||
|
"BreezeGasTampingDuration": 10101,
|
||||||
|
"UpgradeCalicoHeight": 10101,
|
||||||
|
"UpgradePersianHeight": 10101,
|
||||||
|
"UpgradeOrangeHeight": 10101,
|
||||||
|
"UpgradeClausHeight": 10101,
|
||||||
|
"UpgradeTrustHeight": 10101,
|
||||||
|
"UpgradeNorwegianHeight": 10101,
|
||||||
|
"UpgradeTurboHeight": 10101,
|
||||||
|
"UpgradeHyperdriveHeight": 10101,
|
||||||
|
"UpgradeChocolateHeight": 10101,
|
||||||
|
"UpgradeOhSnapHeight": 10101
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### StateGetRandomnessFromBeacon
|
### StateGetRandomnessFromBeacon
|
||||||
StateGetRandomnessFromBeacon is used to sample the beacon for randomness.
|
StateGetRandomnessFromBeacon is used to sample the beacon for randomness.
|
||||||
|
|
||||||
|
@ -175,6 +175,7 @@
|
|||||||
* [StateDecodeParams](#StateDecodeParams)
|
* [StateDecodeParams](#StateDecodeParams)
|
||||||
* [StateEncodeParams](#StateEncodeParams)
|
* [StateEncodeParams](#StateEncodeParams)
|
||||||
* [StateGetActor](#StateGetActor)
|
* [StateGetActor](#StateGetActor)
|
||||||
|
* [StateGetNetworkParams](#StateGetNetworkParams)
|
||||||
* [StateGetRandomnessFromBeacon](#StateGetRandomnessFromBeacon)
|
* [StateGetRandomnessFromBeacon](#StateGetRandomnessFromBeacon)
|
||||||
* [StateGetRandomnessFromTickets](#StateGetRandomnessFromTickets)
|
* [StateGetRandomnessFromTickets](#StateGetRandomnessFromTickets)
|
||||||
* [StateListActors](#StateListActors)
|
* [StateListActors](#StateListActors)
|
||||||
@ -5642,6 +5643,49 @@ Response:
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### StateGetNetworkParams
|
||||||
|
StateGetNetworkParams return current network params
|
||||||
|
|
||||||
|
|
||||||
|
Perms: read
|
||||||
|
|
||||||
|
Inputs: `null`
|
||||||
|
|
||||||
|
Response:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"NetworkName": "lotus",
|
||||||
|
"BlockDelaySecs": 42,
|
||||||
|
"ConsensusMinerMinPower": "0",
|
||||||
|
"SupportedProofTypes": [
|
||||||
|
8
|
||||||
|
],
|
||||||
|
"PreCommitChallengeDelay": 10101,
|
||||||
|
"ForkUpgradeParams": {
|
||||||
|
"UpgradeSmokeHeight": 10101,
|
||||||
|
"UpgradeBreezeHeight": 10101,
|
||||||
|
"UpgradeIgnitionHeight": 10101,
|
||||||
|
"UpgradeLiftoffHeight": 10101,
|
||||||
|
"UpgradeAssemblyHeight": 10101,
|
||||||
|
"UpgradeRefuelHeight": 10101,
|
||||||
|
"UpgradeTapeHeight": 10101,
|
||||||
|
"UpgradeKumquatHeight": 10101,
|
||||||
|
"UpgradePriceListOopsHeight": 10101,
|
||||||
|
"BreezeGasTampingDuration": 10101,
|
||||||
|
"UpgradeCalicoHeight": 10101,
|
||||||
|
"UpgradePersianHeight": 10101,
|
||||||
|
"UpgradeOrangeHeight": 10101,
|
||||||
|
"UpgradeClausHeight": 10101,
|
||||||
|
"UpgradeTrustHeight": 10101,
|
||||||
|
"UpgradeNorwegianHeight": 10101,
|
||||||
|
"UpgradeTurboHeight": 10101,
|
||||||
|
"UpgradeHyperdriveHeight": 10101,
|
||||||
|
"UpgradeChocolateHeight": 10101,
|
||||||
|
"UpgradeOhSnapHeight": 10101
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### StateGetRandomnessFromBeacon
|
### StateGetRandomnessFromBeacon
|
||||||
StateGetRandomnessFromBeacon is used to sample the beacon for randomness.
|
StateGetRandomnessFromBeacon is used to sample the beacon for randomness.
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@ import (
|
|||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
"github.com/filecoin-project/go-state-types/dline"
|
"github.com/filecoin-project/go-state-types/dline"
|
||||||
"github.com/filecoin-project/go-state-types/network"
|
"github.com/filecoin-project/go-state-types/network"
|
||||||
|
"github.com/filecoin-project/lotus/build"
|
||||||
"github.com/filecoin-project/lotus/extern/sector-storage/ffiwrapper"
|
"github.com/filecoin-project/lotus/extern/sector-storage/ffiwrapper"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/api"
|
"github.com/filecoin-project/lotus/api"
|
||||||
@ -1438,3 +1439,39 @@ func (a *StateAPI) StateGetRandomnessFromBeacon(ctx context.Context, personaliza
|
|||||||
return a.StateManager.GetRandomnessFromBeacon(ctx, personalization, randEpoch, entropy, tsk)
|
return a.StateManager.GetRandomnessFromBeacon(ctx, personalization, randEpoch, entropy, tsk)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *StateAPI) StateGetNetworkParams(ctx context.Context) (*api.NetworkParams, error) {
|
||||||
|
networkName, err := a.StateNetworkName(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &api.NetworkParams{
|
||||||
|
NetworkName: networkName,
|
||||||
|
BlockDelaySecs: build.BlockDelaySecs,
|
||||||
|
ConsensusMinerMinPower: build.ConsensusMinerMinPower,
|
||||||
|
SupportedProofTypes: build.SupportedProofTypes,
|
||||||
|
PreCommitChallengeDelay: build.PreCommitChallengeDelay,
|
||||||
|
ForkUpgradeParams: api.ForkUpgradeParams{
|
||||||
|
UpgradeSmokeHeight: build.UpgradeSmokeHeight,
|
||||||
|
UpgradeBreezeHeight: build.UpgradeBreezeHeight,
|
||||||
|
UpgradeIgnitionHeight: build.UpgradeIgnitionHeight,
|
||||||
|
UpgradeLiftoffHeight: build.UpgradeLiftoffHeight,
|
||||||
|
UpgradeAssemblyHeight: build.UpgradeAssemblyHeight,
|
||||||
|
UpgradeRefuelHeight: build.UpgradeRefuelHeight,
|
||||||
|
UpgradeTapeHeight: build.UpgradeTapeHeight,
|
||||||
|
UpgradeKumquatHeight: build.UpgradeKumquatHeight,
|
||||||
|
BreezeGasTampingDuration: build.BreezeGasTampingDuration,
|
||||||
|
UpgradeCalicoHeight: build.UpgradeCalicoHeight,
|
||||||
|
UpgradePersianHeight: build.UpgradePersianHeight,
|
||||||
|
UpgradeOrangeHeight: build.UpgradeOrangeHeight,
|
||||||
|
UpgradeClausHeight: build.UpgradeClausHeight,
|
||||||
|
UpgradeTrustHeight: build.UpgradeTrustHeight,
|
||||||
|
UpgradeNorwegianHeight: build.UpgradeNorwegianHeight,
|
||||||
|
UpgradeTurboHeight: build.UpgradeTurboHeight,
|
||||||
|
UpgradeHyperdriveHeight: build.UpgradeHyperdriveHeight,
|
||||||
|
UpgradeChocolateHeight: build.UpgradeChocolateHeight,
|
||||||
|
UpgradeOhSnapHeight: build.UpgradeOhSnapHeight,
|
||||||
|
},
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user