Merge branch 'feat/nv21' into asr/merge-feat-nv21
This commit is contained in:
commit
5e76b05b17
@ -912,6 +912,8 @@ workflows:
|
|||||||
- build
|
- build
|
||||||
suite: itest-sector_pledge
|
suite: itest-sector_pledge
|
||||||
target: "./itests/sector_pledge_test.go"
|
target: "./itests/sector_pledge_test.go"
|
||||||
|
get-params: true
|
||||||
|
|
||||||
- test:
|
- test:
|
||||||
name: test-itest-sector_terminate
|
name: test-itest-sector_terminate
|
||||||
requires:
|
requires:
|
||||||
|
@ -545,7 +545,7 @@ workflows:
|
|||||||
[[- if or (eq $name "worker") (eq $name "deals_concurrent") (eq $name "wdpost_worker_config")]]
|
[[- if or (eq $name "worker") (eq $name "deals_concurrent") (eq $name "wdpost_worker_config")]]
|
||||||
executor: golang-2xl
|
executor: golang-2xl
|
||||||
[[- end]]
|
[[- end]]
|
||||||
[[- if (eq $name "wdpost")]]
|
[[- if or (eq $name "wdpost") (eq $name "sector_pledge")]]
|
||||||
get-params: true
|
get-params: true
|
||||||
[[end]]
|
[[end]]
|
||||||
[[- end ]][[- end]]
|
[[- end ]][[- end]]
|
||||||
|
@ -10,6 +10,9 @@
|
|||||||
- fix: Add time slicing to splitstore purging step during compaction to reduce lock congestion [filecoin-project/lotus#11269](https://github.com/filecoin-project/lotus/pull/11269)
|
- fix: Add time slicing to splitstore purging step during compaction to reduce lock congestion [filecoin-project/lotus#11269](https://github.com/filecoin-project/lotus/pull/11269)
|
||||||
- feat: Added instructions on how to setup Prometheus/Grafana for monitoring a local Lotus node [filecoin-project/lotus#11276](https://github.com/filecoin-project/lotus/pull/11276)
|
- feat: Added instructions on how to setup Prometheus/Grafana for monitoring a local Lotus node [filecoin-project/lotus#11276](https://github.com/filecoin-project/lotus/pull/11276)
|
||||||
|
|
||||||
|
## New features
|
||||||
|
- feat: Add move-partition command ([filecoin-project/lotus#11290](https://github.com/filecoin-project/lotus/pull/11290))
|
||||||
|
|
||||||
# v1.23.3 / 2023-08-01
|
# v1.23.3 / 2023-08-01
|
||||||
|
|
||||||
This feature release of Lotus includes numerous improvements and enhancements for node operators, ETH RPC-providers and storage providers.
|
This feature release of Lotus includes numerous improvements and enhancements for node operators, ETH RPC-providers and storage providers.
|
||||||
|
@ -21,7 +21,6 @@ import (
|
|||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v8/paych"
|
"github.com/filecoin-project/go-state-types/builtin/v8/paych"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/market"
|
"github.com/filecoin-project/go-state-types/builtin/v9/market"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
||||||
"github.com/filecoin-project/go-state-types/crypto"
|
"github.com/filecoin-project/go-state-types/crypto"
|
||||||
"github.com/filecoin-project/go-state-types/dline"
|
"github.com/filecoin-project/go-state-types/dline"
|
||||||
@ -29,7 +28,7 @@ import (
|
|||||||
|
|
||||||
apitypes "github.com/filecoin-project/lotus/api/types"
|
apitypes "github.com/filecoin-project/lotus/api/types"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin"
|
"github.com/filecoin-project/lotus/chain/actors/builtin"
|
||||||
lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/power"
|
"github.com/filecoin-project/lotus/chain/actors/builtin/power"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/lotus/chain/types/ethtypes"
|
"github.com/filecoin-project/lotus/chain/types/ethtypes"
|
||||||
@ -499,9 +498,9 @@ type FullNode interface {
|
|||||||
// expiration epoch
|
// expiration epoch
|
||||||
StateSectorGetInfo(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*miner.SectorOnChainInfo, error) //perm:read
|
StateSectorGetInfo(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*miner.SectorOnChainInfo, error) //perm:read
|
||||||
// StateSectorExpiration returns epoch at which given sector will expire
|
// StateSectorExpiration returns epoch at which given sector will expire
|
||||||
StateSectorExpiration(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*lminer.SectorExpiration, error) //perm:read
|
StateSectorExpiration(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*miner.SectorExpiration, error) //perm:read
|
||||||
// StateSectorPartition finds deadline/partition with the specified sector
|
// StateSectorPartition finds deadline/partition with the specified sector
|
||||||
StateSectorPartition(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tok types.TipSetKey) (*lminer.SectorLocation, error) //perm:read
|
StateSectorPartition(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tok types.TipSetKey) (*miner.SectorLocation, error) //perm:read
|
||||||
// StateSearchMsg looks back up to limit epochs in the chain for a message, and returns its receipt and the tipset where it was executed
|
// StateSearchMsg looks back up to limit epochs in the chain for a message, and returns its receipt and the tipset where it was executed
|
||||||
//
|
//
|
||||||
// NOTE: If a replacing message is found on chain, this method will return
|
// NOTE: If a replacing message is found on chain, this method will return
|
||||||
|
@ -9,11 +9,11 @@ import (
|
|||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-jsonrpc"
|
"github.com/filecoin-project/go-jsonrpc"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
||||||
"github.com/filecoin-project/go-state-types/dline"
|
"github.com/filecoin-project/go-state-types/dline"
|
||||||
|
|
||||||
apitypes "github.com/filecoin-project/lotus/api/types"
|
apitypes "github.com/filecoin-project/lotus/api/types"
|
||||||
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/lotus/chain/types/ethtypes"
|
"github.com/filecoin-project/lotus/chain/types/ethtypes"
|
||||||
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
||||||
|
@ -19,10 +19,10 @@ import (
|
|||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/market"
|
"github.com/filecoin-project/go-state-types/builtin/v9/market"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
|
||||||
abinetwork "github.com/filecoin-project/go-state-types/network"
|
abinetwork "github.com/filecoin-project/go-state-types/network"
|
||||||
|
|
||||||
builtinactors "github.com/filecoin-project/lotus/chain/actors/builtin"
|
builtinactors "github.com/filecoin-project/lotus/chain/actors/builtin"
|
||||||
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/lotus/storage/pipeline/sealiface"
|
"github.com/filecoin-project/lotus/storage/pipeline/sealiface"
|
||||||
"github.com/filecoin-project/lotus/storage/sealer/fsutil"
|
"github.com/filecoin-project/lotus/storage/sealer/fsutil"
|
||||||
@ -461,10 +461,15 @@ type SectorOffset struct {
|
|||||||
|
|
||||||
// DealInfo is a tuple of deal identity and its schedule
|
// DealInfo is a tuple of deal identity and its schedule
|
||||||
type PieceDealInfo struct {
|
type PieceDealInfo struct {
|
||||||
|
// "Old" builtin-market deal info
|
||||||
PublishCid *cid.Cid
|
PublishCid *cid.Cid
|
||||||
DealID abi.DealID
|
DealID abi.DealID
|
||||||
DealProposal *market.DealProposal
|
DealProposal *market.DealProposal
|
||||||
|
|
||||||
|
// Common deal info
|
||||||
DealSchedule DealSchedule
|
DealSchedule DealSchedule
|
||||||
|
|
||||||
|
// Best-effort deal asks
|
||||||
KeepUnsealed bool
|
KeepUnsealed bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ func (t *PaymentInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Channel"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Channel"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Channel")); err != nil {
|
if _, err := cw.WriteString(string("Channel")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -58,7 +58,7 @@ func (t *PaymentInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Vouchers"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Vouchers"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Vouchers")); err != nil {
|
if _, err := cw.WriteString(string("Vouchers")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ func (t *PaymentInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("WaitSentinel"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("WaitSentinel"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("WaitSentinel")); err != nil {
|
if _, err := cw.WriteString(string("WaitSentinel")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -163,13 +163,32 @@ func (t *PaymentInfo) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
var v paych.SignedVoucher
|
{
|
||||||
if err := v.UnmarshalCBOR(cr); err != nil {
|
|
||||||
return err
|
b, err := cr.ReadByte()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if b != cbg.CborNull[0] {
|
||||||
|
if err := cr.UnreadByte(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
t.Vouchers[i] = new(paych.SignedVoucher)
|
||||||
|
if err := t.Vouchers[i].UnmarshalCBOR(cr); err != nil {
|
||||||
|
return xerrors.Errorf("unmarshaling t.Vouchers[i] pointer: %w", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Vouchers[i] = &v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.WaitSentinel (cid.Cid) (struct)
|
// t.WaitSentinel (cid.Cid) (struct)
|
||||||
@ -214,7 +233,7 @@ func (t *SealedRef) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Size"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Size"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Size")); err != nil {
|
if _, err := cw.WriteString(string("Size")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -230,7 +249,7 @@ func (t *SealedRef) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Offset"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Offset"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Offset")); err != nil {
|
if _, err := cw.WriteString(string("Offset")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -246,7 +265,7 @@ func (t *SealedRef) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("SectorID"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("SectorID"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("SectorID")); err != nil {
|
if _, err := cw.WriteString(string("SectorID")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -369,7 +388,7 @@ func (t *SealedRefs) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Refs"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Refs"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Refs")); err != nil {
|
if _, err := cw.WriteString(string("Refs")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -447,13 +466,22 @@ func (t *SealedRefs) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
var v SealedRef
|
{
|
||||||
if err := v.UnmarshalCBOR(cr); err != nil {
|
|
||||||
return err
|
if err := t.Refs[i].UnmarshalCBOR(cr); err != nil {
|
||||||
|
return xerrors.Errorf("unmarshaling t.Refs[i]: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Refs[i] = v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -484,7 +512,7 @@ func (t *SealTicket) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Epoch"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Epoch"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Epoch")); err != nil {
|
if _, err := cw.WriteString(string("Epoch")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -506,7 +534,7 @@ func (t *SealTicket) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Value"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Value"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Value")); err != nil {
|
if _, err := cw.WriteString(string("Value")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -639,7 +667,7 @@ func (t *SealSeed) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Epoch"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Epoch"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Epoch")); err != nil {
|
if _, err := cw.WriteString(string("Epoch")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -661,7 +689,7 @@ func (t *SealSeed) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Value"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Value"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Value")); err != nil {
|
if _, err := cw.WriteString(string("Value")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -794,7 +822,7 @@ func (t *PieceDealInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("DealID"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("DealID"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("DealID")); err != nil {
|
if _, err := cw.WriteString(string("DealID")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -810,7 +838,7 @@ func (t *PieceDealInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PublishCid"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PublishCid"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("PublishCid")); err != nil {
|
if _, err := cw.WriteString(string("PublishCid")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -832,7 +860,7 @@ func (t *PieceDealInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("DealProposal"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("DealProposal"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("DealProposal")); err != nil {
|
if _, err := cw.WriteString(string("DealProposal")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -848,7 +876,7 @@ func (t *PieceDealInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("DealSchedule"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("DealSchedule"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("DealSchedule")); err != nil {
|
if _, err := cw.WriteString(string("DealSchedule")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -864,7 +892,7 @@ func (t *PieceDealInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("KeepUnsealed"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("KeepUnsealed"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("KeepUnsealed")); err != nil {
|
if _, err := cw.WriteString(string("KeepUnsealed")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1027,7 +1055,7 @@ func (t *SectorPiece) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Piece"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Piece"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Piece")); err != nil {
|
if _, err := cw.WriteString(string("Piece")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1043,7 +1071,7 @@ func (t *SectorPiece) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("DealInfo"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("DealInfo"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("DealInfo")); err != nil {
|
if _, err := cw.WriteString(string("DealInfo")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1150,7 +1178,7 @@ func (t *DealSchedule) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("EndEpoch"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("EndEpoch"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("EndEpoch")); err != nil {
|
if _, err := cw.WriteString(string("EndEpoch")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1172,7 +1200,7 @@ func (t *DealSchedule) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("StartEpoch"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("StartEpoch"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("StartEpoch")); err != nil {
|
if _, err := cw.WriteString(string("StartEpoch")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,6 @@ import (
|
|||||||
"github.com/filecoin-project/go-jsonrpc/auth"
|
"github.com/filecoin-project/go-jsonrpc/auth"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v8/paych"
|
"github.com/filecoin-project/go-state-types/builtin/v8/paych"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
||||||
"github.com/filecoin-project/go-state-types/crypto"
|
"github.com/filecoin-project/go-state-types/crypto"
|
||||||
"github.com/filecoin-project/go-state-types/dline"
|
"github.com/filecoin-project/go-state-types/dline"
|
||||||
@ -35,7 +34,7 @@ import (
|
|||||||
|
|
||||||
apitypes "github.com/filecoin-project/lotus/api/types"
|
apitypes "github.com/filecoin-project/lotus/api/types"
|
||||||
builtinactors "github.com/filecoin-project/lotus/chain/actors/builtin"
|
builtinactors "github.com/filecoin-project/lotus/chain/actors/builtin"
|
||||||
lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/lotus/chain/types/ethtypes"
|
"github.com/filecoin-project/lotus/chain/types/ethtypes"
|
||||||
"github.com/filecoin-project/lotus/journal/alerting"
|
"github.com/filecoin-project/lotus/journal/alerting"
|
||||||
@ -564,11 +563,11 @@ type FullNodeMethods struct {
|
|||||||
|
|
||||||
StateSearchMsg func(p0 context.Context, p1 types.TipSetKey, p2 cid.Cid, p3 abi.ChainEpoch, p4 bool) (*MsgLookup, error) `perm:"read"`
|
StateSearchMsg func(p0 context.Context, p1 types.TipSetKey, p2 cid.Cid, p3 abi.ChainEpoch, p4 bool) (*MsgLookup, error) `perm:"read"`
|
||||||
|
|
||||||
StateSectorExpiration func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorExpiration, error) `perm:"read"`
|
StateSectorExpiration func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorExpiration, error) `perm:"read"`
|
||||||
|
|
||||||
StateSectorGetInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorOnChainInfo, error) `perm:"read"`
|
StateSectorGetInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorOnChainInfo, error) `perm:"read"`
|
||||||
|
|
||||||
StateSectorPartition func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorLocation, error) `perm:"read"`
|
StateSectorPartition func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorLocation, error) `perm:"read"`
|
||||||
|
|
||||||
StateSectorPreCommitInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorPreCommitOnChainInfo, error) `perm:"read"`
|
StateSectorPreCommitInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorPreCommitOnChainInfo, error) `perm:"read"`
|
||||||
|
|
||||||
@ -3829,14 +3828,14 @@ func (s *FullNodeStub) StateSearchMsg(p0 context.Context, p1 types.TipSetKey, p2
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorExpiration, error) {
|
func (s *FullNodeStruct) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorExpiration, error) {
|
||||||
if s.Internal.StateSectorExpiration == nil {
|
if s.Internal.StateSectorExpiration == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.StateSectorExpiration(p0, p1, p2, p3)
|
return s.Internal.StateSectorExpiration(p0, p1, p2, p3)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStub) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorExpiration, error) {
|
func (s *FullNodeStub) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorExpiration, error) {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3851,14 +3850,14 @@ func (s *FullNodeStub) StateSectorGetInfo(p0 context.Context, p1 address.Address
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorLocation, error) {
|
func (s *FullNodeStruct) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorLocation, error) {
|
||||||
if s.Internal.StateSectorPartition == nil {
|
if s.Internal.StateSectorPartition == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.StateSectorPartition(p0, p1, p2, p3)
|
return s.Internal.StateSectorPartition(p0, p1, p2, p3)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStub) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorLocation, error) {
|
func (s *FullNodeStub) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorLocation, error) {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,8 +19,8 @@ import (
|
|||||||
datatransfer "github.com/filecoin-project/go-data-transfer/v2"
|
datatransfer "github.com/filecoin-project/go-data-transfer/v2"
|
||||||
"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/go-state-types/builtin/v9/miner"
|
|
||||||
|
|
||||||
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
||||||
)
|
)
|
||||||
|
@ -15,7 +15,6 @@ import (
|
|||||||
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v8/paych"
|
"github.com/filecoin-project/go-state-types/builtin/v8/paych"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
||||||
"github.com/filecoin-project/go-state-types/crypto"
|
"github.com/filecoin-project/go-state-types/crypto"
|
||||||
"github.com/filecoin-project/go-state-types/dline"
|
"github.com/filecoin-project/go-state-types/dline"
|
||||||
@ -23,7 +22,7 @@ import (
|
|||||||
|
|
||||||
"github.com/filecoin-project/lotus/api"
|
"github.com/filecoin-project/lotus/api"
|
||||||
apitypes "github.com/filecoin-project/lotus/api/types"
|
apitypes "github.com/filecoin-project/lotus/api/types"
|
||||||
lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
marketevents "github.com/filecoin-project/lotus/markets/loggers"
|
marketevents "github.com/filecoin-project/lotus/markets/loggers"
|
||||||
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
||||||
@ -450,9 +449,9 @@ type FullNode interface {
|
|||||||
// expiration epoch
|
// expiration epoch
|
||||||
StateSectorGetInfo(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*miner.SectorOnChainInfo, error) //perm:read
|
StateSectorGetInfo(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*miner.SectorOnChainInfo, error) //perm:read
|
||||||
// StateSectorExpiration returns epoch at which given sector will expire
|
// StateSectorExpiration returns epoch at which given sector will expire
|
||||||
StateSectorExpiration(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*lminer.SectorExpiration, error) //perm:read
|
StateSectorExpiration(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*miner.SectorExpiration, error) //perm:read
|
||||||
// StateSectorPartition finds deadline/partition with the specified sector
|
// StateSectorPartition finds deadline/partition with the specified sector
|
||||||
StateSectorPartition(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tok types.TipSetKey) (*lminer.SectorLocation, error) //perm:read
|
StateSectorPartition(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tok types.TipSetKey) (*miner.SectorLocation, error) //perm:read
|
||||||
// StateSearchMsg searches for a message in the chain, and returns its receipt and the tipset where it was executed
|
// StateSearchMsg searches for a message in the chain, and returns its receipt and the tipset where it was executed
|
||||||
//
|
//
|
||||||
// NOTE: If a replacing message is found on chain, this method will return
|
// NOTE: If a replacing message is found on chain, this method will return
|
||||||
|
@ -8,12 +8,12 @@ import (
|
|||||||
|
|
||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
||||||
"github.com/filecoin-project/go-state-types/dline"
|
"github.com/filecoin-project/go-state-types/dline"
|
||||||
abinetwork "github.com/filecoin-project/go-state-types/network"
|
abinetwork "github.com/filecoin-project/go-state-types/network"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/api"
|
"github.com/filecoin-project/lotus/api"
|
||||||
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
||||||
)
|
)
|
||||||
|
@ -17,7 +17,6 @@ import (
|
|||||||
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v8/paych"
|
"github.com/filecoin-project/go-state-types/builtin/v8/paych"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
||||||
"github.com/filecoin-project/go-state-types/crypto"
|
"github.com/filecoin-project/go-state-types/crypto"
|
||||||
"github.com/filecoin-project/go-state-types/dline"
|
"github.com/filecoin-project/go-state-types/dline"
|
||||||
@ -25,7 +24,7 @@ import (
|
|||||||
|
|
||||||
"github.com/filecoin-project/lotus/api"
|
"github.com/filecoin-project/lotus/api"
|
||||||
apitypes "github.com/filecoin-project/lotus/api/types"
|
apitypes "github.com/filecoin-project/lotus/api/types"
|
||||||
lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
marketevents "github.com/filecoin-project/lotus/markets/loggers"
|
marketevents "github.com/filecoin-project/lotus/markets/loggers"
|
||||||
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
||||||
@ -355,11 +354,11 @@ type FullNodeMethods struct {
|
|||||||
|
|
||||||
StateSearchMsgLimited func(p0 context.Context, p1 cid.Cid, p2 abi.ChainEpoch) (*api.MsgLookup, error) `perm:"read"`
|
StateSearchMsgLimited func(p0 context.Context, p1 cid.Cid, p2 abi.ChainEpoch) (*api.MsgLookup, error) `perm:"read"`
|
||||||
|
|
||||||
StateSectorExpiration func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorExpiration, error) `perm:"read"`
|
StateSectorExpiration func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorExpiration, error) `perm:"read"`
|
||||||
|
|
||||||
StateSectorGetInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorOnChainInfo, error) `perm:"read"`
|
StateSectorGetInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorOnChainInfo, error) `perm:"read"`
|
||||||
|
|
||||||
StateSectorPartition func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorLocation, error) `perm:"read"`
|
StateSectorPartition func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorLocation, error) `perm:"read"`
|
||||||
|
|
||||||
StateSectorPreCommitInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (miner.SectorPreCommitOnChainInfo, error) `perm:"read"`
|
StateSectorPreCommitInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (miner.SectorPreCommitOnChainInfo, error) `perm:"read"`
|
||||||
|
|
||||||
@ -2245,14 +2244,14 @@ func (s *FullNodeStub) StateSearchMsgLimited(p0 context.Context, p1 cid.Cid, p2
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorExpiration, error) {
|
func (s *FullNodeStruct) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorExpiration, error) {
|
||||||
if s.Internal.StateSectorExpiration == nil {
|
if s.Internal.StateSectorExpiration == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.StateSectorExpiration(p0, p1, p2, p3)
|
return s.Internal.StateSectorExpiration(p0, p1, p2, p3)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStub) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorExpiration, error) {
|
func (s *FullNodeStub) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorExpiration, error) {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2267,14 +2266,14 @@ func (s *FullNodeStub) StateSectorGetInfo(p0 context.Context, p1 address.Address
|
|||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorLocation, error) {
|
func (s *FullNodeStruct) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorLocation, error) {
|
||||||
if s.Internal.StateSectorPartition == nil {
|
if s.Internal.StateSectorPartition == nil {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.StateSectorPartition(p0, p1, p2, p3)
|
return s.Internal.StateSectorPartition(p0, p1, p2, p3)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStub) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorLocation, error) {
|
func (s *FullNodeStub) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorLocation, error) {
|
||||||
return nil, ErrNotSupported
|
return nil, ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,11 +12,11 @@ import (
|
|||||||
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
|
||||||
"github.com/filecoin-project/go-state-types/crypto"
|
"github.com/filecoin-project/go-state-types/crypto"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/api"
|
"github.com/filecoin-project/lotus/api"
|
||||||
"github.com/filecoin-project/lotus/api/v1api"
|
"github.com/filecoin-project/lotus/api/v1api"
|
||||||
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
marketevents "github.com/filecoin-project/lotus/markets/loggers"
|
marketevents "github.com/filecoin-project/lotus/markets/loggers"
|
||||||
)
|
)
|
||||||
|
@ -52,9 +52,11 @@ func (t *NetRpcReq) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, v := range t.Cid {
|
for _, v := range t.Cid {
|
||||||
if err := cbg.WriteCid(w, v); err != nil {
|
|
||||||
return xerrors.Errorf("failed writing cid field t.Cid: %w", err)
|
if err := cbg.WriteCid(cw, v); err != nil {
|
||||||
|
return xerrors.Errorf("failed to write cid field v: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.Data ([][]uint8) (slice)
|
// t.Data ([][]uint8) (slice)
|
||||||
@ -151,12 +153,25 @@ func (t *NetRpcReq) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
c, err := cbg.ReadCid(cr)
|
{
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("reading cid field t.Cid failed: %w", err)
|
c, err := cbg.ReadCid(cr)
|
||||||
|
if err != nil {
|
||||||
|
return xerrors.Errorf("failed to read cid field t.Cid[i]: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Cid[i] = c
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
t.Cid[i] = c
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.Data ([][]uint8) (slice)
|
// t.Data ([][]uint8) (slice)
|
||||||
@ -183,6 +198,9 @@ func (t *NetRpcReq) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
var maj byte
|
var maj byte
|
||||||
var extra uint64
|
var extra uint64
|
||||||
var err error
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
maj, extra, err = cr.ReadHeader()
|
maj, extra, err = cr.ReadHeader()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -350,7 +368,7 @@ func (t *NetRpcErr) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Msg))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Msg))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.Msg)); err != nil {
|
if _, err := cw.WriteString(string(t.Msg)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Binary file not shown.
@ -1,2 +1,2 @@
|
|||||||
/dns4/bootstrap-0.butterfly.fildev.network/tcp/1347/p2p/12D3KooWD5mtdmjHQ1Puj9Md7SEfoa7kWMpwqUhAKsyYsBP56LQC
|
/dns4/bootstrap-0.butterfly.fildev.network/tcp/1347/p2p/12D3KooWRaoPgwJuZdPSN4A2iTeh8xzkZGCEBxan9vMkidHisUgn
|
||||||
/dns4/bootstrap-1.butterfly.fildev.network/tcp/1347/p2p/12D3KooWEoYPkm6o87ES6AppFY7d7WHJUQg7XVPRAyQZjEU31efQ
|
/dns4/bootstrap-1.butterfly.fildev.network/tcp/1347/p2p/12D3KooWMjLCZeEf3VzSWvQYuhe9VzCcrN6RENX9FgmQqiJfQDWs
|
||||||
|
@ -97,25 +97,25 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
|||||||
}, {
|
}, {
|
||||||
Network: "butterflynet",
|
Network: "butterflynet",
|
||||||
Version: 12,
|
Version: 12,
|
||||||
BundleGitTag: "v11.0.0",
|
BundleGitTag: "v12.0.0-rc.1",
|
||||||
ManifestCid: MustParseCid("bafy2bzaceaiy4dsxxus5xp5n5i4tjzkb7sc54mjz7qnk2efhgmsrobjesxnza"),
|
ManifestCid: MustParseCid("bafy2bzaceb7s3k6zyuubqil7s2rwdcdyslqqx2fn2cj536yh3hexlyi4syyk6"),
|
||||||
Actors: map[string]cid.Cid{
|
Actors: map[string]cid.Cid{
|
||||||
"account": MustParseCid("bafk2bzacecfdqb7p3jakhaa3cqnzpt7hxmhghrbxvafsylqno3febx55fnidw"),
|
"account": MustParseCid("bafk2bzacebp7anjdtg2sohyt6lromx4xs7nujtwdfcsffnptphaayabx7ysxs"),
|
||||||
"cron": MustParseCid("bafk2bzaceavmqu2qihgbe3xdaotgypuzvdpiifnm7ll6rolks2u4lac6voosk"),
|
"cron": MustParseCid("bafk2bzacecu2y3awtemmglpkroiglulc2fj3gpdn6eazdqr6avcautiaighrg"),
|
||||||
"datacap": MustParseCid("bafk2bzacealtvh65rzb34fmyzw4m2np2htnio4w3pn4alzqovwxkdbf23dvpo"),
|
"datacap": MustParseCid("bafk2bzacebbh5aynu3v3fluqqrcdsphleodoig42xkid2ccwdnff3avhbdop4"),
|
||||||
"eam": MustParseCid("bafk2bzacedko6hcjmwpuwgma5pb4gr2wgyvregk3nqqjxit7dv4es6vh5cjoc"),
|
"eam": MustParseCid("bafk2bzacebzwt4v4hqoltiblhliwrnttxpr2dggbu3wsrvq4pwzisp7idu5w4"),
|
||||||
"ethaccount": MustParseCid("bafk2bzacedhcei2xnr34poxr4xziypm2obqlibke4cs2cjfnr3sz6nf6h7fyy"),
|
"ethaccount": MustParseCid("bafk2bzaceb5f6vgjkl7ic6ry5sjspqm2iij6qlcdovwi3haodb7wn37pgebii"),
|
||||||
"evm": MustParseCid("bafk2bzacebn5lwxboiikhz67ajwa34v2lc4qevnhpwdnipbmrnutkvrrqkb46"),
|
"evm": MustParseCid("bafk2bzacebygt6zh6p52rkg2ugehm4k5yuu6f56i2pu6ywrmjez4n4zsje4p4"),
|
||||||
"init": MustParseCid("bafk2bzacea6vw4esh5tg7mprv5jkbx5xcyilcy4vvf64lss32mjyuvv2mh5ng"),
|
"init": MustParseCid("bafk2bzaceagyf3pwsthod7klfi25ow2zf2i5isfrrgr5ua3lvkgfojalrdbhw"),
|
||||||
"multisig": MustParseCid("bafk2bzacedq2afnwcfipay5twv5mgzjoio5bbjvyo4yqchdwqcr7wrareyx54"),
|
"multisig": MustParseCid("bafk2bzacedgfo5mw2zqjwi37lah27sfxj4cw2abylgtxf3ucep4dyhgnppmqe"),
|
||||||
"paymentchannel": MustParseCid("bafk2bzacebbsvr7i7mqmaadyjibe5wxnv7bwvvec2wlgknuwda6ep45amnd5w"),
|
"paymentchannel": MustParseCid("bafk2bzacebm37tgu52cgzmiln6iip6etfmq73fd3qqz2j5gxlhtvachs7kw4c"),
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
||||||
"reward": MustParseCid("bafk2bzaceafuh6idvaqqkj353vs4qdl42tcmvnymewu5zf4rq2nruxdyunses"),
|
"reward": MustParseCid("bafk2bzacedebvitdsztwebi44t5es4ls3p3hor252igzawr3s6uznmbvzh2ou"),
|
||||||
"storagemarket": MustParseCid("bafk2bzaceb7bx4honi3byjllpdk6fea32dpu3vqvil3okodybdk5m3erlnwjw"),
|
"storagemarket": MustParseCid("bafk2bzaceb2tdeqtt2eqpzeb3gezuchb7g7uzbd52bgvcdt6bg3ckq7oisb74"),
|
||||||
"storageminer": MustParseCid("bafk2bzacebxjhofdr3sb2uhy2ky2vcijh4nhmwkh5xijtbgk6dzkknji2kn7a"),
|
"storageminer": MustParseCid("bafk2bzaceaaztuglvw6pw5xohwfekbw47iyugbyftxrp6hwygsaiu6rebtcty"),
|
||||||
"storagepower": MustParseCid("bafk2bzaceabskmmkas6njbowols7t4ib3bipa5abpomk3jtgfwojtzd7mjzfm"),
|
"storagepower": MustParseCid("bafk2bzacedxvlj5xmhytdjrjqyonz37duvxb2ioyzk75c27yypkqalxuh3xh6"),
|
||||||
"system": MustParseCid("bafk2bzacedtuh7cht3fud7fb4avl4g2zbz57lc4ohiaufpaex6dkmdokn5rgo"),
|
"system": MustParseCid("bafk2bzacec3vwj2chzaram3iqupkbfiein5h2l5qiltlrngbju2vg5umelclm"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzaceb37hxeuoo5rgf6ansrdl2ykm5v5zp6kireubn4orcopr67jbxv6k"),
|
"verifiedregistry": MustParseCid("bafk2bzacedv2irkql7nil3w5v3ohqq3e54w62pxeoppjmaktzokolaaoh5ksu"),
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
Network: "calibrationnet",
|
Network: "calibrationnet",
|
||||||
@ -203,25 +203,25 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
|||||||
}, {
|
}, {
|
||||||
Network: "calibrationnet",
|
Network: "calibrationnet",
|
||||||
Version: 12,
|
Version: 12,
|
||||||
BundleGitTag: "v11.0.0",
|
BundleGitTag: "v12.0.0-rc.1",
|
||||||
ManifestCid: MustParseCid("bafy2bzacec5fl7crmxyw234qsmijvffhssgqwuphyaejulbryhel2pxxrxgey"),
|
ManifestCid: MustParseCid("bafy2bzacedrunxfqta5skb7q7x32lnp4efz2oq7fn226ffm7fu5iqs62jkmvs"),
|
||||||
Actors: map[string]cid.Cid{
|
Actors: map[string]cid.Cid{
|
||||||
"account": MustParseCid("bafk2bzacecrjovyiuh4jryepy4pxddzqjyrg2hfinxzbv37bpzlci54r5mkr6"),
|
"account": MustParseCid("bafk2bzacechwwxdqvggkdylm37zldjsra2ivkdzwp7fee56bzxbzs544wv6u6"),
|
||||||
"cron": MustParseCid("bafk2bzacedy76woxmtalmsuaji4kog6wmq4h2kcgcyv5wpxbdz7f2ls2tjjmw"),
|
"cron": MustParseCid("bafk2bzacec4gdxxkqwxqqodsv6ug5dmdbqdfqwyqfek3yhxc2wweh5psxaeq6"),
|
||||||
"datacap": MustParseCid("bafk2bzacec2inqddxpfm3rufwqr752d2ok3ve4cxfhmloyosy6rj2krtkpwus"),
|
"datacap": MustParseCid("bafk2bzacecq5ppfskxgv3iea3jarsix6jdduuhwsn4fbvngtbmzelzmlygorm"),
|
||||||
"eam": MustParseCid("bafk2bzacea6sxno66egkqz5rqjq4e22obkeblxl7e3funjifljuinmrc2ztzg"),
|
"eam": MustParseCid("bafk2bzacecb6cnwftvavpph4p34zs4psuy5xvbrhf7vszkva4npw6mw3c42xe"),
|
||||||
"ethaccount": MustParseCid("bafk2bzacecdsvs7xm3ncm66lsjqh65uzhr3rmu3dlux7qzdgpg737r4kslhxm"),
|
"ethaccount": MustParseCid("bafk2bzaceajmc3y3sedsqymfla3dzzqzmbu5kmr2iskm26ga2u34ll5fpztfw"),
|
||||||
"evm": MustParseCid("bafk2bzaceaz3b66m2znt27clmbp2zi5jsobw6g2x6fiezynyijgtkehgqhq3a"),
|
"evm": MustParseCid("bafk2bzaced4sozr7m6rzcgpobzeiupghthfw6afumysu3oz6bxxirv74uo3vw"),
|
||||||
"init": MustParseCid("bafk2bzacecdrw7uedx456hnowtyyhm63mkekdlkh3vmlhvqlya6pn6pokiq5y"),
|
"init": MustParseCid("bafk2bzaceaewh7b6zl2egclm7fqzx2lsqr57i75lb6cj43ndoa4mal3k5ld3m"),
|
||||||
"multisig": MustParseCid("bafk2bzaceaxyxvmng5cel5huzy5nezscm34s7wuzn2fhndexurs3xjtp7xg5i"),
|
"multisig": MustParseCid("bafk2bzacednkwcpw5yzxjceoaliajgupzj6iqxe7ks2ll3unspbprbo5f2now"),
|
||||||
"paymentchannel": MustParseCid("bafk2bzacedrmyc4c6u6ipdo7hwaagx3urr47r4pw6lwv257wqbj6roumwfvky"),
|
"paymentchannel": MustParseCid("bafk2bzacebaxhk4itfiuvbftg7kz5zxugqnvdgerobitjq4vl6q4orcwk6wqg"),
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
||||||
"reward": MustParseCid("bafk2bzacecq3bhrkatwash5zhy2275ksaj3criqb6rox5e3hsyvz7mrl2jh3o"),
|
"reward": MustParseCid("bafk2bzacedra77pcglf7vdca2itcaa4vd6xrxynxmgfgdjdxqxfwqyhtoxehy"),
|
||||||
"storagemarket": MustParseCid("bafk2bzacedswrpkbh7jmttskllbblym7oj2ynxp7bxtj2fpbxsx55mraog6sc"),
|
"storagemarket": MustParseCid("bafk2bzacea7g46y7xxu2zjq2h75x6mmx3utz2uxnlvnwi6tzpsvulna3bmiva"),
|
||||||
"storageminer": MustParseCid("bafk2bzacecki6ckm7gf4uje3fxvw6x5f77ukaqctvcsfha6oaecvl67veh3sg"),
|
"storageminer": MustParseCid("bafk2bzacecnh2ouohmonvebq7uughh4h3ppmg4cjsk74dzxlbbtlcij4xbzxq"),
|
||||||
"storagepower": MustParseCid("bafk2bzacecjcvxwibkgpufeah33gfd2jzlqjx5rn2pguvvch2squon23u6kne"),
|
"storagepower": MustParseCid("bafk2bzacedd3ka44k7d46ckbinjhv3diyuu2epgbyvhqqyjkc64qlrg3wlgzi"),
|
||||||
"system": MustParseCid("bafk2bzaceavvlgqbcwhy3c24aa24z23wcbzggmb66gj7x5if7o3fbvddaocc4"),
|
"system": MustParseCid("bafk2bzacecioupndtcnyw6iq2hbrxag3aufvczlv5nobnfbkbywqzcyfaa376"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzacedmxdtnpy2mc63b6bi2h4vp4dfc6hxjckqnwaxyijgkpmangygcmk"),
|
"verifiedregistry": MustParseCid("bafk2bzaceavldupmf7bimeeacs67z5xdfdlfca6p7sn6bev3mt5ggepfqvhqo"),
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
Network: "caterpillarnet",
|
Network: "caterpillarnet",
|
||||||
@ -318,25 +318,25 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
|||||||
}, {
|
}, {
|
||||||
Network: "caterpillarnet",
|
Network: "caterpillarnet",
|
||||||
Version: 12,
|
Version: 12,
|
||||||
BundleGitTag: "v11.0.0",
|
BundleGitTag: "v12.0.0-rc.1",
|
||||||
ManifestCid: MustParseCid("bafy2bzacebexc2jgzwr5ngn6jdnkwdqwwmcapajuypdgvopoe6bnvp4yxm4o2"),
|
ManifestCid: MustParseCid("bafy2bzacedrimdbavexkdqldjwczbhlx4k5byshl363z62rrt6vkt7mbvnulu"),
|
||||||
Actors: map[string]cid.Cid{
|
Actors: map[string]cid.Cid{
|
||||||
"account": MustParseCid("bafk2bzaceanjiq5m3feytue5m7hhxfkob2ofg2greoct5tr77reuhrjglo66g"),
|
"account": MustParseCid("bafk2bzacecereuhejfvodut5357cai4lmhsyr7uenhcxvmw6jpmhe6auuly32"),
|
||||||
"cron": MustParseCid("bafk2bzaceavgd5qj6n744tukhdrvxejygzs3jnlizmcvjsdnxkgiimrd5jrys"),
|
"cron": MustParseCid("bafk2bzacebo2whgy6jla4jsf5j4ovlqm2e4eepedlpw5wadas33yxmunis4b4"),
|
||||||
"datacap": MustParseCid("bafk2bzacedmdywxwrzop2gmf4ys5stydlmvbe35j3nyr2efmf273briksuvse"),
|
"datacap": MustParseCid("bafk2bzacecjjncl7ftgj4mrzxxfxld74pt3pyfrxmcru7a5auab25b3aoixm6"),
|
||||||
"eam": MustParseCid("bafk2bzacec7qo7s72li7tqysllstlrxxm2dhfqv2w32pytel2e775cki4ozqm"),
|
"eam": MustParseCid("bafk2bzacebyvawfzoxy7k4yxrj5nd3amg4rcopmnslxdwpzumfhsz5ezk4sws"),
|
||||||
"ethaccount": MustParseCid("bafk2bzaceaygtkliu26ubb7ivljrvaeesp5sbjlis5okzl35ishxioa2tlx4w"),
|
"ethaccount": MustParseCid("bafk2bzaceaccs76uc6osvb2iy6w2pumqei3wdjtxq7rgtsotobncmqoi7kzcg"),
|
||||||
"evm": MustParseCid("bafk2bzacebo7iqzy2ophz4f3civzwlltec7q5fut7kmtfckr6vy33r6ic5eqe"),
|
"evm": MustParseCid("bafk2bzaceawxgjzjkhbqwj36wzxeqbtngdh6y2tp4wsi27k7tbg2ujhw5rsjg"),
|
||||||
"init": MustParseCid("bafk2bzaceb7uzzlsquqwrqhb2vpbvk3jgr4wp5i3smu2splnag2v5sppdehns"),
|
"init": MustParseCid("bafk2bzacedws5od7o6ktqyo2hudmipxuubsv2lwxz45xxjn2zguze72t6zoik"),
|
||||||
"multisig": MustParseCid("bafk2bzacebwibfqrytobl4pjtny244zkmfoomazbap3r5gddjryckx5js4csi"),
|
"multisig": MustParseCid("bafk2bzacecb4wk6n4lrmml3tssn6cszd4dc7ttux3kzjatrawhg4o6ovrng6w"),
|
||||||
"paymentchannel": MustParseCid("bafk2bzacecuaa5esuxpouigxoamyl5gire2qqqhvyhewsig2x2j73f6ksh7go"),
|
"paymentchannel": MustParseCid("bafk2bzacea3eb556mkjvosfbqfbyfg6dgu52rfnuctwzjy3b2bh2azredxzbo"),
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
||||||
"reward": MustParseCid("bafk2bzaced4xxqhv63njf2ibvsqshlwikafctxev7aho5lgsfxyt2javjwvtw"),
|
"reward": MustParseCid("bafk2bzaceb2x5zgkrho373l3ippp6krs7brugssg6hj2tib22xmqjzdm2o25a"),
|
||||||
"storagemarket": MustParseCid("bafk2bzacedwtx3xokqmbgkgkoqkdt6lam4ymdjb3eznlbtec5wcrtx74l2bpc"),
|
"storagemarket": MustParseCid("bafk2bzaced5j6drzmsebpxbf2dtptrc5tyidlbftdljqxavxqb57s2qpbvdek"),
|
||||||
"storageminer": MustParseCid("bafk2bzacebbbe4sdo3xxkez7x7lkl6j46w34vx7eg7xswmdzhp7moa44p3wjg"),
|
"storageminer": MustParseCid("bafk2bzacedozwxc3c6nqqajafs3hsjviyijhthysd5two5ptm5fcdbwh224ag"),
|
||||||
"storagepower": MustParseCid("bafk2bzacedfgz6n24tjsor4pcayomim2f5f3a3fgyatmjgwxxeejna7okndda"),
|
"storagepower": MustParseCid("bafk2bzaceagp6ilkltsltwii66nz6a4zen4qtfk7rdkvdv3gzq7fbv4ivox3u"),
|
||||||
"system": MustParseCid("bafk2bzacebxfzeom3d7ahcz2n2nlwp7ncv767bdbbrisugks4l6v7lcu2tmyg"),
|
"system": MustParseCid("bafk2bzacedye5j5uxox7knb6zlnhseaadztyav76mjbyk5qslhhbpiy5cdtt2"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzacedaws3or3twy45ltcxucgvqijsje4x675ph6vup2w35smlfneamno"),
|
"verifiedregistry": MustParseCid("bafk2bzacecduww5pirr7dvaijjijw4gf6ygf7vipgxh4scvv6vseo46gueb46"),
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
Network: "devnet",
|
Network: "devnet",
|
||||||
@ -424,25 +424,25 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
|||||||
}, {
|
}, {
|
||||||
Network: "devnet",
|
Network: "devnet",
|
||||||
Version: 12,
|
Version: 12,
|
||||||
BundleGitTag: "v11.0.0",
|
BundleGitTag: "v12.0.0-rc.1",
|
||||||
ManifestCid: MustParseCid("bafy2bzaceay35go4xbjb45km6o46e5bib3bi46panhovcbedrynzwmm3drr4i"),
|
ManifestCid: MustParseCid("bafy2bzacebk6yiirh4ennphzyka7b6g6jzn3lt4lr5ht7rjwulnrcthjihapo"),
|
||||||
Actors: map[string]cid.Cid{
|
Actors: map[string]cid.Cid{
|
||||||
"account": MustParseCid("bafk2bzacecf2pprkbdlpm4e2xz3ufunxtgrgyh2ie3stuqiyhibsvdze7kvri"),
|
"account": MustParseCid("bafk2bzacedki4apynvdxxuoigmqkgaktgy2erjftoxqxqaklnelgveyaqknfu"),
|
||||||
"cron": MustParseCid("bafk2bzaceasr5d2skowvzv5mzsyak6waqrgc46ewj6rzbapkfi5woom6n6bwa"),
|
"cron": MustParseCid("bafk2bzacebjpczf7qtcisy3zdp3sqoohxe75tgupmdo5dr26vh7orzrsjn3b2"),
|
||||||
"datacap": MustParseCid("bafk2bzaceaqd77gptubupda7rp7daxkxbkzwc253dxhiyoezxvj2tljmkgpny"),
|
"datacap": MustParseCid("bafk2bzacecz4esatk7gizdc7yvl6soigkelhix7izbc75q6eqtb7gjzavpcqc"),
|
||||||
"eam": MustParseCid("bafk2bzacedve6p4ye6zxydjbfs4ode5r2equ7rqzpyltujsq2lu6wyxnijfx4"),
|
"eam": MustParseCid("bafk2bzacebhtpd5mxfyovi7fgsfj62nhtmh4t5guob4sgq73ymgsk7473ltig"),
|
||||||
"ethaccount": MustParseCid("bafk2bzacea25xfsxwew3h2crer6jlb4c5vwu2gtch2jh73ocuxjhupenyrugy"),
|
"ethaccount": MustParseCid("bafk2bzacebvdbbw5ag4qnxd7cif5mtakrw4wzv63diwl7awta5plaidfay4vg"),
|
||||||
"evm": MustParseCid("bafk2bzacece5hivtkmi757lyfahgti7xuqgofodb2u65pxgf6oizfwiiwlcsi"),
|
"evm": MustParseCid("bafk2bzacebb7vrhprnshn52bzfmypjdpcrcfecapk232a6gapk3kghu2mp67q"),
|
||||||
"init": MustParseCid("bafk2bzacecxnr5y7qifzdqqiwfbjxv2yr7lbkcyu3e2mf5zjdncteupxdlquu"),
|
"init": MustParseCid("bafk2bzaceaw4iouukgqxmwukfpt3sakdvsu75ftjvw47swnwtdftz5oszbt4w"),
|
||||||
"multisig": MustParseCid("bafk2bzaceayap4k4u3lbysaeeixct5fvhmafy3fa5eagvdpk3i4a7ubfdpobe"),
|
"multisig": MustParseCid("bafk2bzaceahyjwf6re4mnuwhopglo3qzh6aboluboncpijm7vuiz3u4bkazho"),
|
||||||
"paymentchannel": MustParseCid("bafk2bzaceafgrz5wepbein35gie7rnsu7zttxvgllgdneuefmmy4j5izydtza"),
|
"paymentchannel": MustParseCid("bafk2bzaceaupjw3djghaqw3g3hd4tw7uuas3njkszgzx2fhmgqh5eh4e6q2by"),
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
||||||
"reward": MustParseCid("bafk2bzacedwbtfqlx47fdkxjrb5mwiatheci44x3zkpx33smybc2cme23ymuo"),
|
"reward": MustParseCid("bafk2bzacebzso6xkjxdscbpncw7el2d4hap6lfkgwqzrbc76lzp33vkwk6obc"),
|
||||||
"storagemarket": MustParseCid("bafk2bzaceaj74fmooaf3gj3ebwon64ky7hhdh7kytdr3agclqfrqzmpzykh7g"),
|
"storagemarket": MustParseCid("bafk2bzacebzg74vyk3gzbhnz4zviwvxblyar574mtd6ayognmsvlkriejmunu"),
|
||||||
"storageminer": MustParseCid("bafk2bzacedb7bokkzzs7hnbhivp74pgcpermuy7j6b3ncodylksukkxtnn7ze"),
|
"storageminer": MustParseCid("bafk2bzaceajgt523lr2sf6cacvzo3goyalljlkaoeehyhxlv57wevkljw2cps"),
|
||||||
"storagepower": MustParseCid("bafk2bzacedilnkegizkxz3nuutib4d4wwlk4bkla22loepia2h53yf4hysmq6"),
|
"storagepower": MustParseCid("bafk2bzacebbtj2m2ajawfuzxqz5nmdep7xevjo2qfjqa5tx3vr5m6qojolya4"),
|
||||||
"system": MustParseCid("bafk2bzacedpyoncjbl4oxkjm5e77ngvpy2xfajjc4myfsv2vltvzxioattlu2"),
|
"system": MustParseCid("bafk2bzacecnau5wddulbsvwn75tc3w75jrlvkybgrlxs4ngonqab6xq3eowvg"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzacebdqi5tr5pjnem5nylg2zbqcugvi7oxi35bhnrfudx4y4ufhlit2k"),
|
"verifiedregistry": MustParseCid("bafk2bzacec37mddea65nvh4htsagtryfa3sq6i67utcupslyhzbhjhoy6hopa"),
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
Network: "hyperspace",
|
Network: "hyperspace",
|
||||||
@ -553,25 +553,25 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
|||||||
}, {
|
}, {
|
||||||
Network: "mainnet",
|
Network: "mainnet",
|
||||||
Version: 12,
|
Version: 12,
|
||||||
BundleGitTag: "v11.0.0",
|
BundleGitTag: "v12.0.0-rc.1",
|
||||||
ManifestCid: MustParseCid("bafy2bzacecnhaiwcrpyjvzl4uv4q3jzoif26okl3m66q3cijp3dfwlcxwztwo"),
|
ManifestCid: MustParseCid("bafy2bzacebxmnxdgt2usdrcrpotgodr75culawwv4eklaun4lu6vlxecql6h2"),
|
||||||
Actors: map[string]cid.Cid{
|
Actors: map[string]cid.Cid{
|
||||||
"account": MustParseCid("bafk2bzacealnlr7st6lkwoh6wxpf2hnrlex5sknaopgmkr2tuhg7vmbfy45so"),
|
"account": MustParseCid("bafk2bzaceboftg75mdiba7xbo2i3uvgtca4brhnr3u5ptihonixgpnrvhpxoa"),
|
||||||
"cron": MustParseCid("bafk2bzacebpewdvvgt6tk2o2u4rcovdgym67tadiis5usemlbejg7k3kt567o"),
|
"cron": MustParseCid("bafk2bzacechxjkfe2cehx4s7skj3wzfpzf7zolds64khrrrs66bhazsemktls"),
|
||||||
"datacap": MustParseCid("bafk2bzacebslykoyrb2hm7aacjngqgd5n2wmeii2goadrs5zaya3pvdf6pdnq"),
|
"datacap": MustParseCid("bafk2bzacebpiwb2ml4qbnnaayxumtk43ryhc63exdgnhivy3hwgmzemawsmpq"),
|
||||||
"eam": MustParseCid("bafk2bzaceaelwt4yfsfvsu3pa3miwalsvy3cfkcjvmt4sqoeopsppnrmj2mf2"),
|
"eam": MustParseCid("bafk2bzaceb3elj4hfbbjp7g5bptc7su7mptszl4nlqfedilxvstjo5ungm6oe"),
|
||||||
"ethaccount": MustParseCid("bafk2bzaceclkmc4yidxc6lgcjpfypbde2eddnevcveo4j5kmh4ek6inqysz2k"),
|
"ethaccount": MustParseCid("bafk2bzaceb4gkau2vgsijcxpfuq33bd7w3efr2rrhxrwiacjmns2ntdiamswq"),
|
||||||
"evm": MustParseCid("bafk2bzacediwh6etwzwmb5pivtclpdplewdjzphouwqpppce6opisjv2fjqfe"),
|
"evm": MustParseCid("bafk2bzacecmnyfiwb52tkbwmm2dsd7ysi3nvuxl3lmspy7pl26wxj4zj7w4wi"),
|
||||||
"init": MustParseCid("bafk2bzaceckwf3w6n2nw6eh77ktmsxqgsvshonvgnyk5q5syyngtetxvasfxg"),
|
"init": MustParseCid("bafk2bzacebllyegx5r6lggf6ymyetbp7amacwpuxakhtjvjtvoy2bfkzk3vms"),
|
||||||
"multisig": MustParseCid("bafk2bzaceafajceqwg5ybiz7xw6rxammuirkgtuv625gzaehsqfprm4bazjmk"),
|
"multisig": MustParseCid("bafk2bzacecw5lyp3n3t67xdwrmo36h4z7afc3lobmmr6wg55w6yjzg5jhmh42"),
|
||||||
"paymentchannel": MustParseCid("bafk2bzaceb4e6cnsnviegmqvsmoxzncruvhra54piq7bwiqfqevle6oob2gvo"),
|
"paymentchannel": MustParseCid("bafk2bzacectv4cm47bnhga5febf3lo3fq47g72kmmp2xd5s6tcxz7hiqdywa4"),
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
||||||
"reward": MustParseCid("bafk2bzacebwjw2vxkobs7r2kwjdqqb42h2kucyuk6flbnyzw4odg5s4mogamo"),
|
"reward": MustParseCid("bafk2bzacealqnxn5lwzwexd6reav4dppypquklx2ujlnvaxiqk2tzstyvkp5u"),
|
||||||
"storagemarket": MustParseCid("bafk2bzaceazu2j2zu4p24tr22btnqzkhzjvyjltlvsagaj6w3syevikeb5d7m"),
|
"storagemarket": MustParseCid("bafk2bzacedylkg5am446lcuih4voyzdn4yjeqfsxfzh5b6mcuhx4mok5ph5c4"),
|
||||||
"storageminer": MustParseCid("bafk2bzacec24okjqrp7c7rj3hbrs5ez5apvwah2ruka6haesgfngf37mhk6us"),
|
"storageminer": MustParseCid("bafk2bzacea56yi2khvvorofkf2t4rb5fbmltahrjtauszirdjz4jbunt55xsk"),
|
||||||
"storagepower": MustParseCid("bafk2bzaceaxgloxuzg35vu7l7tohdgaq2frsfp4ejmuo7tkoxjp5zqrze6sf4"),
|
"storagepower": MustParseCid("bafk2bzacecsij5tpfzjpfuckxvccv2p3bdqjklkrfyyoei6lx5dyj5j4fvjm6"),
|
||||||
"system": MustParseCid("bafk2bzaced7npe5mt5nh72jxr2igi2sofoa7gedt4w6kueeke7i3xxugqpjfm"),
|
"system": MustParseCid("bafk2bzacebfqrja2hip7esf4eafxjmu6xcogoqu5xxtgdg7xa5szgvvdguchu"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzacedej3dnr62g2je2abmyjg3xqv4otvh6e26du5fcrhvw7zgcaaez3a"),
|
"verifiedregistry": MustParseCid("bafk2bzacedudgflxc75c77c6zkmfyq4u2xuk7k6xw6dfdccarjrvxx453b77q"),
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
Network: "testing",
|
Network: "testing",
|
||||||
@ -659,25 +659,25 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
|||||||
}, {
|
}, {
|
||||||
Network: "testing",
|
Network: "testing",
|
||||||
Version: 12,
|
Version: 12,
|
||||||
BundleGitTag: "v11.0.0",
|
BundleGitTag: "v12.0.0-rc.1",
|
||||||
ManifestCid: MustParseCid("bafy2bzacea2vxre32tg3xhpejrktiuzx4d3pcoe7yyazgscfibmegmchr6n42"),
|
ManifestCid: MustParseCid("bafy2bzacebzcqzzlb5iwrledyuyy7pvob3xwzoxqsrvrbrnpaiejb52na5eza"),
|
||||||
Actors: map[string]cid.Cid{
|
Actors: map[string]cid.Cid{
|
||||||
"account": MustParseCid("bafk2bzaceccerssb3tgel6ukdghlwvs7dxsolj4fpkgn7dh7owzwapqb6ejpw"),
|
"account": MustParseCid("bafk2bzacea74qqkfvacykmq5emzqblh4f4nmxdkiyixxpzs7kkcfnbfa7cb6m"),
|
||||||
"cron": MustParseCid("bafk2bzacebtfl6fczxnitrqqjhyefskf3asyn3gzuvqcddieoqfsaddk5fd4q"),
|
"cron": MustParseCid("bafk2bzacecotbu7k6awdzfzakf7g5iaas6gswtunjnnb2xm2klqoshjgb4imy"),
|
||||||
"datacap": MustParseCid("bafk2bzacediikc55y6uzmnhucf4mik6rqpjulwvgp5gdibogxjhgbvusmzff2"),
|
"datacap": MustParseCid("bafk2bzaceduhmqcyailiwdupt2ottfzh5hcrjoyeyiaipf3idk3mu7y3uz2mc"),
|
||||||
"eam": MustParseCid("bafk2bzaceazqi5ezossp6kvqogaaba6hxlfarqgniktmb7iy5qonha3eflz6m"),
|
"eam": MustParseCid("bafk2bzaceb2yzzw6dcmcmhnt3mqnm4kah66f23pc4escnto3vwa552t6ctr7i"),
|
||||||
"ethaccount": MustParseCid("bafk2bzaceb77ospgfqqmf67v23wkyeg7lr2mu53ybaacu3bslx7s7nhttdueo"),
|
"ethaccount": MustParseCid("bafk2bzacebwkvvbmttkcjjlicp4ineozc52i5sc6d46pcoq6lzzs2p5i2youa"),
|
||||||
"evm": MustParseCid("bafk2bzacedvgt7mv22hux4vrnklylq7qmw43kfrqwam6wdsfzkdnaewr33qbu"),
|
"evm": MustParseCid("bafk2bzacedetwacs6wmoksxwjlbpp4442uav7fd3pagadejm2cph7ucym7eck"),
|
||||||
"init": MustParseCid("bafk2bzacealzb3nk2oypway5ubz3hs5py5ok5tuw545454vg4d3mwbslef4js"),
|
"init": MustParseCid("bafk2bzacedhpoycn4sz7dragmbo5yqjspqriydxhplqdeguaqck2hmq5hgwqg"),
|
||||||
"multisig": MustParseCid("bafk2bzacec45ppn4hrwizmopp2v2atkxw35tb6yem6uqhqilrv7aiaknnnxmu"),
|
"multisig": MustParseCid("bafk2bzaceacc3m23yvnpzoeekstqtr2acutfv4zvsgncorjdrsucymjohzxs4"),
|
||||||
"paymentchannel": MustParseCid("bafk2bzaceajbr3t6cngzh3katqteflbcrtwtdgbthnlfemon5tg6rytf2uonw"),
|
"paymentchannel": MustParseCid("bafk2bzaceac6i76vfexefqf6qgebkhkf2cb4g664d5nmfh2dric5spgykevd2"),
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
||||||
"reward": MustParseCid("bafk2bzacea7ycf53kbq4robcuh3ziy7qwwhaqamc5krn3lugypgpxhlewdaiq"),
|
"reward": MustParseCid("bafk2bzaceaajyncjxcrl7wbb6ukzkueyqz4uyekxpmtn4mpndkf7ksmggopzq"),
|
||||||
"storagemarket": MustParseCid("bafk2bzacedskmbcpaeb6bezs32szh52jrukvihobluadauayroo5gzrt32tkm"),
|
"storagemarket": MustParseCid("bafk2bzaced6cexdcinwjhtfvuxgkxukiejp3goylaxtvhqfd24rs5z7g2z7dm"),
|
||||||
"storageminer": MustParseCid("bafk2bzaced3yg5lctmswnbkxyd6cleg3llyux7fu2vbddyd2ho36fpym423mq"),
|
"storageminer": MustParseCid("bafk2bzacecw6jvvfu62jkwsa4vzmn262cjrrxh6wza6nvjsyg5aeix7rzgmbe"),
|
||||||
"storagepower": MustParseCid("bafk2bzacebvpdf372fzxgixztbz2r7ayxyvx7jmdxwlfuqt2cq7tnqgie3klw"),
|
"storagepower": MustParseCid("bafk2bzacedexrf5qplrrl5xzijfrthjdqwodfs5e6zj5kpztc7qnywbqdyiii"),
|
||||||
"system": MustParseCid("bafk2bzaceaatvscbnkv36ixhtt2zel4er5oskxevgumh5gegqkv7uzah36f24"),
|
"system": MustParseCid("bafk2bzacecp4roanbxq3bflftlkipsoqqxio5etjjnzxus5pcu7lq43fnxb34"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzacebp2r56wxadvfzpfbmqwfi3dlnwpmoc5u4tau2hfftbkuafkhye64"),
|
"verifiedregistry": MustParseCid("bafk2bzaceandytrgcnuvizfi47sijbqh6c243vjtzlzumexm6kjv7s7hye45g"),
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
Network: "testing-fake-proofs",
|
Network: "testing-fake-proofs",
|
||||||
@ -765,24 +765,24 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
|||||||
}, {
|
}, {
|
||||||
Network: "testing-fake-proofs",
|
Network: "testing-fake-proofs",
|
||||||
Version: 12,
|
Version: 12,
|
||||||
BundleGitTag: "v11.0.0",
|
BundleGitTag: "v12.0.0-rc.1",
|
||||||
ManifestCid: MustParseCid("bafy2bzacecojemqglhzzhjnhgtrcbsgkyv67ziytvtbhwlr4ym4oxqofv7zui"),
|
ManifestCid: MustParseCid("bafy2bzacedtskkmrkkzairdi66syrmvfpydg63ro4dlmmqeta5krnur4hcp3a"),
|
||||||
Actors: map[string]cid.Cid{
|
Actors: map[string]cid.Cid{
|
||||||
"account": MustParseCid("bafk2bzaceccerssb3tgel6ukdghlwvs7dxsolj4fpkgn7dh7owzwapqb6ejpw"),
|
"account": MustParseCid("bafk2bzacea74qqkfvacykmq5emzqblh4f4nmxdkiyixxpzs7kkcfnbfa7cb6m"),
|
||||||
"cron": MustParseCid("bafk2bzacebtfl6fczxnitrqqjhyefskf3asyn3gzuvqcddieoqfsaddk5fd4q"),
|
"cron": MustParseCid("bafk2bzacecotbu7k6awdzfzakf7g5iaas6gswtunjnnb2xm2klqoshjgb4imy"),
|
||||||
"datacap": MustParseCid("bafk2bzacediikc55y6uzmnhucf4mik6rqpjulwvgp5gdibogxjhgbvusmzff2"),
|
"datacap": MustParseCid("bafk2bzaceduhmqcyailiwdupt2ottfzh5hcrjoyeyiaipf3idk3mu7y3uz2mc"),
|
||||||
"eam": MustParseCid("bafk2bzaceazqi5ezossp6kvqogaaba6hxlfarqgniktmb7iy5qonha3eflz6m"),
|
"eam": MustParseCid("bafk2bzaceb2yzzw6dcmcmhnt3mqnm4kah66f23pc4escnto3vwa552t6ctr7i"),
|
||||||
"ethaccount": MustParseCid("bafk2bzaceb77ospgfqqmf67v23wkyeg7lr2mu53ybaacu3bslx7s7nhttdueo"),
|
"ethaccount": MustParseCid("bafk2bzacebwkvvbmttkcjjlicp4ineozc52i5sc6d46pcoq6lzzs2p5i2youa"),
|
||||||
"evm": MustParseCid("bafk2bzacedvgt7mv22hux4vrnklylq7qmw43kfrqwam6wdsfzkdnaewr33qbu"),
|
"evm": MustParseCid("bafk2bzacedetwacs6wmoksxwjlbpp4442uav7fd3pagadejm2cph7ucym7eck"),
|
||||||
"init": MustParseCid("bafk2bzacealzb3nk2oypway5ubz3hs5py5ok5tuw545454vg4d3mwbslef4js"),
|
"init": MustParseCid("bafk2bzacedhpoycn4sz7dragmbo5yqjspqriydxhplqdeguaqck2hmq5hgwqg"),
|
||||||
"multisig": MustParseCid("bafk2bzacec45ppn4hrwizmopp2v2atkxw35tb6yem6uqhqilrv7aiaknnnxmu"),
|
"multisig": MustParseCid("bafk2bzaceacc3m23yvnpzoeekstqtr2acutfv4zvsgncorjdrsucymjohzxs4"),
|
||||||
"paymentchannel": MustParseCid("bafk2bzaceajbr3t6cngzh3katqteflbcrtwtdgbthnlfemon5tg6rytf2uonw"),
|
"paymentchannel": MustParseCid("bafk2bzaceac6i76vfexefqf6qgebkhkf2cb4g664d5nmfh2dric5spgykevd2"),
|
||||||
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
|
||||||
"reward": MustParseCid("bafk2bzacea7ycf53kbq4robcuh3ziy7qwwhaqamc5krn3lugypgpxhlewdaiq"),
|
"reward": MustParseCid("bafk2bzaceaajyncjxcrl7wbb6ukzkueyqz4uyekxpmtn4mpndkf7ksmggopzq"),
|
||||||
"storagemarket": MustParseCid("bafk2bzacedskmbcpaeb6bezs32szh52jrukvihobluadauayroo5gzrt32tkm"),
|
"storagemarket": MustParseCid("bafk2bzaced6cexdcinwjhtfvuxgkxukiejp3goylaxtvhqfd24rs5z7g2z7dm"),
|
||||||
"storageminer": MustParseCid("bafk2bzacebqeztpa5exztccqjwqhan5droiy7ga6zekm6f2gzxoe655vneczm"),
|
"storageminer": MustParseCid("bafk2bzacea54x727xteh3tl46mitigy6cldqusqjxiwni65wrpofidh62k2ds"),
|
||||||
"storagepower": MustParseCid("bafk2bzaceb2tlyuwxncdxsh3hc4fwcjnpxaijkiv54ustwdjbrqabxdsc27km"),
|
"storagepower": MustParseCid("bafk2bzacecdwijcbbryinjtm27pdinqqkyzoskri24pwsvsadwcq2alkkjpnc"),
|
||||||
"system": MustParseCid("bafk2bzaceaatvscbnkv36ixhtt2zel4er5oskxevgumh5gegqkv7uzah36f24"),
|
"system": MustParseCid("bafk2bzacecp4roanbxq3bflftlkipsoqqxio5etjjnzxus5pcu7lq43fnxb34"),
|
||||||
"verifiedregistry": MustParseCid("bafk2bzacebp2r56wxadvfzpfbmqwfi3dlnwpmoc5u4tau2hfftbkuafkhye64"),
|
"verifiedregistry": MustParseCid("bafk2bzaceandytrgcnuvizfi47sijbqh6c243vjtzlzumexm6kjv7s7hye45g"),
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -19,7 +19,7 @@ var DrandSchedule = map[abi.ChainEpoch]DrandEnum{
|
|||||||
0: DrandMainnet,
|
0: DrandMainnet,
|
||||||
}
|
}
|
||||||
|
|
||||||
const GenesisNetworkVersion = network.Version18
|
const GenesisNetworkVersion = network.Version20
|
||||||
|
|
||||||
var NetworkBundle = "butterflynet"
|
var NetworkBundle = "butterflynet"
|
||||||
var BundleOverrides map[actorstypes.Version]string
|
var BundleOverrides map[actorstypes.Version]string
|
||||||
@ -52,13 +52,10 @@ const UpgradeOhSnapHeight = -18
|
|||||||
const UpgradeSkyrHeight = -19
|
const UpgradeSkyrHeight = -19
|
||||||
const UpgradeSharkHeight = -20
|
const UpgradeSharkHeight = -20
|
||||||
const UpgradeHyggeHeight = -21
|
const UpgradeHyggeHeight = -21
|
||||||
|
const UpgradeLightningHeight = -22
|
||||||
|
const UpgradeThunderHeight = -23
|
||||||
|
|
||||||
const UpgradeLightningHeight = 50
|
const UpgradeWatermelonHeight = 400
|
||||||
|
|
||||||
const UpgradeThunderHeight = UpgradeLightningHeight + 360
|
|
||||||
|
|
||||||
// ??????????
|
|
||||||
const UpgradeWatermelonHeight = 999999999999999
|
|
||||||
|
|
||||||
var SupportedProofTypes = []abi.RegisteredSealProof{
|
var SupportedProofTypes = []abi.RegisteredSealProof{
|
||||||
abi.RegisteredSealProof_StackedDrg512MiBV1,
|
abi.RegisteredSealProof_StackedDrg512MiBV1,
|
||||||
|
@ -79,8 +79,8 @@ const UpgradeLightningHeight = 489094
|
|||||||
// 2023-04-21T16:00:00Z
|
// 2023-04-21T16:00:00Z
|
||||||
const UpgradeThunderHeight = UpgradeLightningHeight + 3120
|
const UpgradeThunderHeight = UpgradeLightningHeight + 3120
|
||||||
|
|
||||||
// ??????????
|
// 2023-10-19T13:00:00Z
|
||||||
const UpgradeWatermelonHeight = 999999999999999
|
const UpgradeWatermelonHeight = 1013134
|
||||||
|
|
||||||
var SupportedProofTypes = []abi.RegisteredSealProof{
|
var SupportedProofTypes = []abi.RegisteredSealProof{
|
||||||
abi.RegisteredSealProof_StackedDrg32GiBV1,
|
abi.RegisteredSealProof_StackedDrg32GiBV1,
|
||||||
|
@ -19,7 +19,7 @@ import (
|
|||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
"github.com/filecoin-project/lotus/chain/actors/adt"
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
"github.com/filecoin-project/lotus/chain/actors"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
|
|
||||||
{{if (le .v 7)}}
|
{{if (le .v 7)}}
|
||||||
|
2
chain/actors/builtin/market/v0.go
generated
2
chain/actors/builtin/market/v0.go
generated
@ -11,13 +11,13 @@ import (
|
|||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
market0 "github.com/filecoin-project/specs-actors/actors/builtin/market"
|
market0 "github.com/filecoin-project/specs-actors/actors/builtin/market"
|
||||||
adt0 "github.com/filecoin-project/specs-actors/actors/util/adt"
|
adt0 "github.com/filecoin-project/specs-actors/actors/util/adt"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
"github.com/filecoin-project/lotus/chain/actors"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
"github.com/filecoin-project/lotus/chain/actors/adt"
|
||||||
|
verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
2
chain/actors/builtin/market/v10.go
generated
2
chain/actors/builtin/market/v10.go
generated
@ -17,11 +17,11 @@ import (
|
|||||||
market10 "github.com/filecoin-project/go-state-types/builtin/v10/market"
|
market10 "github.com/filecoin-project/go-state-types/builtin/v10/market"
|
||||||
adt10 "github.com/filecoin-project/go-state-types/builtin/v10/util/adt"
|
adt10 "github.com/filecoin-project/go-state-types/builtin/v10/util/adt"
|
||||||
markettypes "github.com/filecoin-project/go-state-types/builtin/v9/market"
|
markettypes "github.com/filecoin-project/go-state-types/builtin/v9/market"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
"github.com/filecoin-project/lotus/chain/actors"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
"github.com/filecoin-project/lotus/chain/actors/adt"
|
||||||
|
verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
2
chain/actors/builtin/market/v11.go
generated
2
chain/actors/builtin/market/v11.go
generated
@ -17,11 +17,11 @@ import (
|
|||||||
market11 "github.com/filecoin-project/go-state-types/builtin/v11/market"
|
market11 "github.com/filecoin-project/go-state-types/builtin/v11/market"
|
||||||
adt11 "github.com/filecoin-project/go-state-types/builtin/v11/util/adt"
|
adt11 "github.com/filecoin-project/go-state-types/builtin/v11/util/adt"
|
||||||
markettypes "github.com/filecoin-project/go-state-types/builtin/v9/market"
|
markettypes "github.com/filecoin-project/go-state-types/builtin/v9/market"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
"github.com/filecoin-project/lotus/chain/actors"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
"github.com/filecoin-project/lotus/chain/actors/adt"
|
||||||
|
verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
2
chain/actors/builtin/market/v12.go
generated
2
chain/actors/builtin/market/v12.go
generated
@ -17,11 +17,11 @@ import (
|
|||||||
market12 "github.com/filecoin-project/go-state-types/builtin/v12/market"
|
market12 "github.com/filecoin-project/go-state-types/builtin/v12/market"
|
||||||
adt12 "github.com/filecoin-project/go-state-types/builtin/v12/util/adt"
|
adt12 "github.com/filecoin-project/go-state-types/builtin/v12/util/adt"
|
||||||
markettypes "github.com/filecoin-project/go-state-types/builtin/v9/market"
|
markettypes "github.com/filecoin-project/go-state-types/builtin/v9/market"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
"github.com/filecoin-project/lotus/chain/actors"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
"github.com/filecoin-project/lotus/chain/actors/adt"
|
||||||
|
verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
2
chain/actors/builtin/market/v2.go
generated
2
chain/actors/builtin/market/v2.go
generated
@ -11,13 +11,13 @@ import (
|
|||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
market2 "github.com/filecoin-project/specs-actors/v2/actors/builtin/market"
|
market2 "github.com/filecoin-project/specs-actors/v2/actors/builtin/market"
|
||||||
adt2 "github.com/filecoin-project/specs-actors/v2/actors/util/adt"
|
adt2 "github.com/filecoin-project/specs-actors/v2/actors/util/adt"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
"github.com/filecoin-project/lotus/chain/actors"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
"github.com/filecoin-project/lotus/chain/actors/adt"
|
||||||
|
verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
2
chain/actors/builtin/market/v3.go
generated
2
chain/actors/builtin/market/v3.go
generated
@ -11,13 +11,13 @@ import (
|
|||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
market3 "github.com/filecoin-project/specs-actors/v3/actors/builtin/market"
|
market3 "github.com/filecoin-project/specs-actors/v3/actors/builtin/market"
|
||||||
adt3 "github.com/filecoin-project/specs-actors/v3/actors/util/adt"
|
adt3 "github.com/filecoin-project/specs-actors/v3/actors/util/adt"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
"github.com/filecoin-project/lotus/chain/actors"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
"github.com/filecoin-project/lotus/chain/actors/adt"
|
||||||
|
verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
2
chain/actors/builtin/market/v4.go
generated
2
chain/actors/builtin/market/v4.go
generated
@ -11,13 +11,13 @@ import (
|
|||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
market4 "github.com/filecoin-project/specs-actors/v4/actors/builtin/market"
|
market4 "github.com/filecoin-project/specs-actors/v4/actors/builtin/market"
|
||||||
adt4 "github.com/filecoin-project/specs-actors/v4/actors/util/adt"
|
adt4 "github.com/filecoin-project/specs-actors/v4/actors/util/adt"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
"github.com/filecoin-project/lotus/chain/actors"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
"github.com/filecoin-project/lotus/chain/actors/adt"
|
||||||
|
verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
2
chain/actors/builtin/market/v5.go
generated
2
chain/actors/builtin/market/v5.go
generated
@ -11,13 +11,13 @@ import (
|
|||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
market5 "github.com/filecoin-project/specs-actors/v5/actors/builtin/market"
|
market5 "github.com/filecoin-project/specs-actors/v5/actors/builtin/market"
|
||||||
adt5 "github.com/filecoin-project/specs-actors/v5/actors/util/adt"
|
adt5 "github.com/filecoin-project/specs-actors/v5/actors/util/adt"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
"github.com/filecoin-project/lotus/chain/actors"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
"github.com/filecoin-project/lotus/chain/actors/adt"
|
||||||
|
verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
2
chain/actors/builtin/market/v6.go
generated
2
chain/actors/builtin/market/v6.go
generated
@ -13,13 +13,13 @@ import (
|
|||||||
rlepluslazy "github.com/filecoin-project/go-bitfield/rle"
|
rlepluslazy "github.com/filecoin-project/go-bitfield/rle"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
market6 "github.com/filecoin-project/specs-actors/v6/actors/builtin/market"
|
market6 "github.com/filecoin-project/specs-actors/v6/actors/builtin/market"
|
||||||
adt6 "github.com/filecoin-project/specs-actors/v6/actors/util/adt"
|
adt6 "github.com/filecoin-project/specs-actors/v6/actors/util/adt"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
"github.com/filecoin-project/lotus/chain/actors"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
"github.com/filecoin-project/lotus/chain/actors/adt"
|
||||||
|
verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
2
chain/actors/builtin/market/v7.go
generated
2
chain/actors/builtin/market/v7.go
generated
@ -13,13 +13,13 @@ import (
|
|||||||
rlepluslazy "github.com/filecoin-project/go-bitfield/rle"
|
rlepluslazy "github.com/filecoin-project/go-bitfield/rle"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
market7 "github.com/filecoin-project/specs-actors/v7/actors/builtin/market"
|
market7 "github.com/filecoin-project/specs-actors/v7/actors/builtin/market"
|
||||||
adt7 "github.com/filecoin-project/specs-actors/v7/actors/util/adt"
|
adt7 "github.com/filecoin-project/specs-actors/v7/actors/util/adt"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
"github.com/filecoin-project/lotus/chain/actors"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
"github.com/filecoin-project/lotus/chain/actors/adt"
|
||||||
|
verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
2
chain/actors/builtin/market/v8.go
generated
2
chain/actors/builtin/market/v8.go
generated
@ -16,11 +16,11 @@ import (
|
|||||||
market8 "github.com/filecoin-project/go-state-types/builtin/v8/market"
|
market8 "github.com/filecoin-project/go-state-types/builtin/v8/market"
|
||||||
adt8 "github.com/filecoin-project/go-state-types/builtin/v8/util/adt"
|
adt8 "github.com/filecoin-project/go-state-types/builtin/v8/util/adt"
|
||||||
markettypes "github.com/filecoin-project/go-state-types/builtin/v9/market"
|
markettypes "github.com/filecoin-project/go-state-types/builtin/v9/market"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
"github.com/filecoin-project/lotus/chain/actors"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
"github.com/filecoin-project/lotus/chain/actors/adt"
|
||||||
|
verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
2
chain/actors/builtin/market/v9.go
generated
2
chain/actors/builtin/market/v9.go
generated
@ -17,11 +17,11 @@ import (
|
|||||||
market9 "github.com/filecoin-project/go-state-types/builtin/v9/market"
|
market9 "github.com/filecoin-project/go-state-types/builtin/v9/market"
|
||||||
markettypes "github.com/filecoin-project/go-state-types/builtin/v9/market"
|
markettypes "github.com/filecoin-project/go-state-types/builtin/v9/market"
|
||||||
adt9 "github.com/filecoin-project/go-state-types/builtin/v9/util/adt"
|
adt9 "github.com/filecoin-project/go-state-types/builtin/v9/util/adt"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
|
||||||
"github.com/filecoin-project/go-state-types/manifest"
|
"github.com/filecoin-project/go-state-types/manifest"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
"github.com/filecoin-project/lotus/chain/actors"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
"github.com/filecoin-project/lotus/chain/actors/adt"
|
||||||
|
verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -154,7 +154,7 @@ type Partition interface {
|
|||||||
|
|
||||||
type SectorOnChainInfo = minertypes.SectorOnChainInfo
|
type SectorOnChainInfo = minertypes.SectorOnChainInfo
|
||||||
|
|
||||||
func PreferredSealProofTypeFromWindowPoStType(nver network.Version, proof abi.RegisteredPoStProof) (abi.RegisteredSealProof, error) {
|
func PreferredSealProofTypeFromWindowPoStType(nver network.Version, proof abi.RegisteredPoStProof, configWantSynthetic bool) (abi.RegisteredSealProof, error) {
|
||||||
// We added support for the new proofs in network version 7, and removed support for the old
|
// We added support for the new proofs in network version 7, and removed support for the old
|
||||||
// ones in network version 8.
|
// ones in network version 8.
|
||||||
if nver < network.Version7 {
|
if nver < network.Version7 {
|
||||||
@ -174,17 +174,34 @@ func PreferredSealProofTypeFromWindowPoStType(nver network.Version, proof abi.Re
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if nver < MinSyntheticPoRepVersion || !configWantSynthetic {
|
||||||
|
switch proof {
|
||||||
|
case abi.RegisteredPoStProof_StackedDrgWindow2KiBV1, abi.RegisteredPoStProof_StackedDrgWindow2KiBV1_1:
|
||||||
|
return abi.RegisteredSealProof_StackedDrg2KiBV1_1, nil
|
||||||
|
case abi.RegisteredPoStProof_StackedDrgWindow8MiBV1, abi.RegisteredPoStProof_StackedDrgWindow8MiBV1_1:
|
||||||
|
return abi.RegisteredSealProof_StackedDrg8MiBV1_1, nil
|
||||||
|
case abi.RegisteredPoStProof_StackedDrgWindow512MiBV1, abi.RegisteredPoStProof_StackedDrgWindow512MiBV1_1:
|
||||||
|
return abi.RegisteredSealProof_StackedDrg512MiBV1_1, nil
|
||||||
|
case abi.RegisteredPoStProof_StackedDrgWindow32GiBV1, abi.RegisteredPoStProof_StackedDrgWindow32GiBV1_1:
|
||||||
|
return abi.RegisteredSealProof_StackedDrg32GiBV1_1, nil
|
||||||
|
case abi.RegisteredPoStProof_StackedDrgWindow64GiBV1, abi.RegisteredPoStProof_StackedDrgWindow64GiBV1_1:
|
||||||
|
return abi.RegisteredSealProof_StackedDrg64GiBV1_1, nil
|
||||||
|
default:
|
||||||
|
return -1, xerrors.Errorf("unrecognized window post type: %d", proof)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
switch proof {
|
switch proof {
|
||||||
case abi.RegisteredPoStProof_StackedDrgWindow2KiBV1, abi.RegisteredPoStProof_StackedDrgWindow2KiBV1_1:
|
case abi.RegisteredPoStProof_StackedDrgWindow2KiBV1, abi.RegisteredPoStProof_StackedDrgWindow2KiBV1_1:
|
||||||
return abi.RegisteredSealProof_StackedDrg2KiBV1_1, nil
|
return abi.RegisteredSealProof_StackedDrg2KiBV1_1_Feat_SyntheticPoRep, nil
|
||||||
case abi.RegisteredPoStProof_StackedDrgWindow8MiBV1, abi.RegisteredPoStProof_StackedDrgWindow8MiBV1_1:
|
case abi.RegisteredPoStProof_StackedDrgWindow8MiBV1, abi.RegisteredPoStProof_StackedDrgWindow8MiBV1_1:
|
||||||
return abi.RegisteredSealProof_StackedDrg8MiBV1_1, nil
|
return abi.RegisteredSealProof_StackedDrg8MiBV1_1_Feat_SyntheticPoRep, nil
|
||||||
case abi.RegisteredPoStProof_StackedDrgWindow512MiBV1, abi.RegisteredPoStProof_StackedDrgWindow512MiBV1_1:
|
case abi.RegisteredPoStProof_StackedDrgWindow512MiBV1, abi.RegisteredPoStProof_StackedDrgWindow512MiBV1_1:
|
||||||
return abi.RegisteredSealProof_StackedDrg512MiBV1_1, nil
|
return abi.RegisteredSealProof_StackedDrg512MiBV1_1_Feat_SyntheticPoRep, nil
|
||||||
case abi.RegisteredPoStProof_StackedDrgWindow32GiBV1, abi.RegisteredPoStProof_StackedDrgWindow32GiBV1_1:
|
case abi.RegisteredPoStProof_StackedDrgWindow32GiBV1, abi.RegisteredPoStProof_StackedDrgWindow32GiBV1_1:
|
||||||
return abi.RegisteredSealProof_StackedDrg32GiBV1_1, nil
|
return abi.RegisteredSealProof_StackedDrg32GiBV1_1_Feat_SyntheticPoRep, nil
|
||||||
case abi.RegisteredPoStProof_StackedDrgWindow64GiBV1, abi.RegisteredPoStProof_StackedDrgWindow64GiBV1_1:
|
case abi.RegisteredPoStProof_StackedDrgWindow64GiBV1, abi.RegisteredPoStProof_StackedDrgWindow64GiBV1_1:
|
||||||
return abi.RegisteredSealProof_StackedDrg64GiBV1_1, nil
|
return abi.RegisteredSealProof_StackedDrg64GiBV1_1_Feat_SyntheticPoRep, nil
|
||||||
default:
|
default:
|
||||||
return -1, xerrors.Errorf("unrecognized window post type: %d", proof)
|
return -1, xerrors.Errorf("unrecognized window post type: %d", proof)
|
||||||
}
|
}
|
||||||
@ -213,8 +230,37 @@ type PendingBeneficiaryChange = minertypes.PendingBeneficiaryChange
|
|||||||
type WorkerKeyChange = minertypes.WorkerKeyChange
|
type WorkerKeyChange = minertypes.WorkerKeyChange
|
||||||
type SectorPreCommitOnChainInfo = minertypes.SectorPreCommitOnChainInfo
|
type SectorPreCommitOnChainInfo = minertypes.SectorPreCommitOnChainInfo
|
||||||
type SectorPreCommitInfo = minertypes.SectorPreCommitInfo
|
type SectorPreCommitInfo = minertypes.SectorPreCommitInfo
|
||||||
|
type SubmitWindowedPoStParams = minertypes.SubmitWindowedPoStParams
|
||||||
|
type PoStPartition = minertypes.PoStPartition
|
||||||
|
type RecoveryDeclaration = minertypes.RecoveryDeclaration
|
||||||
|
type FaultDeclaration = minertypes.FaultDeclaration
|
||||||
|
type DeclareFaultsRecoveredParams = minertypes.DeclareFaultsRecoveredParams
|
||||||
|
type DeclareFaultsParams = minertypes.DeclareFaultsParams
|
||||||
|
type ProveCommitAggregateParams = minertypes.ProveCommitAggregateParams
|
||||||
|
type ProveCommitSectorParams = minertypes.ProveCommitSectorParams
|
||||||
|
type ProveReplicaUpdatesParams = minertypes.ProveReplicaUpdatesParams
|
||||||
|
type ReplicaUpdate = minertypes.ReplicaUpdate
|
||||||
|
type PreCommitSectorBatchParams = minertypes.PreCommitSectorBatchParams
|
||||||
|
type PreCommitSectorBatchParams2 = minertypes.PreCommitSectorBatchParams2
|
||||||
|
type ExtendSectorExpiration2Params = minertypes.ExtendSectorExpiration2Params
|
||||||
|
type SectorClaim = minertypes.SectorClaim
|
||||||
|
type ExpirationExtension2 = minertypes.ExpirationExtension2
|
||||||
|
type CompactPartitionsParams = minertypes.CompactPartitionsParams
|
||||||
|
type WithdrawBalanceParams = minertypes.WithdrawBalanceParams
|
||||||
|
|
||||||
|
var QAPowerMax = minertypes.QAPowerMax
|
||||||
|
|
||||||
type WindowPostVerifyInfo = proof.WindowPoStVerifyInfo
|
type WindowPostVerifyInfo = proof.WindowPoStVerifyInfo
|
||||||
|
|
||||||
|
var WPoStProvingPeriod = func() abi.ChainEpoch { return minertypes.WPoStProvingPeriod }
|
||||||
|
var WPoStChallengeWindow = func() abi.ChainEpoch { return minertypes.WPoStChallengeWindow }
|
||||||
|
|
||||||
|
const WPoStPeriodDeadlines = minertypes.WPoStPeriodDeadlines
|
||||||
|
const WPoStChallengeLookback = minertypes.WPoStChallengeLookback
|
||||||
|
const FaultDeclarationCutoff = minertypes.FaultDeclarationCutoff
|
||||||
|
const MinAggregatedSectors = minertypes.MinAggregatedSectors
|
||||||
|
const MinSectorExpiration = minertypes.MinSectorExpiration
|
||||||
|
|
||||||
type SectorExpiration struct {
|
type SectorExpiration struct {
|
||||||
OnTime abi.ChainEpoch
|
OnTime abi.ChainEpoch
|
||||||
|
|
||||||
|
@ -214,7 +214,7 @@ type Partition interface {
|
|||||||
|
|
||||||
type SectorOnChainInfo = minertypes.SectorOnChainInfo
|
type SectorOnChainInfo = minertypes.SectorOnChainInfo
|
||||||
|
|
||||||
func PreferredSealProofTypeFromWindowPoStType(nver network.Version, proof abi.RegisteredPoStProof) (abi.RegisteredSealProof, error) {
|
func PreferredSealProofTypeFromWindowPoStType(nver network.Version, proof abi.RegisteredPoStProof, configWantSynthetic bool) (abi.RegisteredSealProof, error) {
|
||||||
// We added support for the new proofs in network version 7, and removed support for the old
|
// We added support for the new proofs in network version 7, and removed support for the old
|
||||||
// ones in network version 8.
|
// ones in network version 8.
|
||||||
if nver < network.Version7 {
|
if nver < network.Version7 {
|
||||||
@ -234,17 +234,34 @@ func PreferredSealProofTypeFromWindowPoStType(nver network.Version, proof abi.Re
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if nver < MinSyntheticPoRepVersion || !configWantSynthetic {
|
||||||
|
switch proof {
|
||||||
|
case abi.RegisteredPoStProof_StackedDrgWindow2KiBV1, abi.RegisteredPoStProof_StackedDrgWindow2KiBV1_1:
|
||||||
|
return abi.RegisteredSealProof_StackedDrg2KiBV1_1, nil
|
||||||
|
case abi.RegisteredPoStProof_StackedDrgWindow8MiBV1, abi.RegisteredPoStProof_StackedDrgWindow8MiBV1_1:
|
||||||
|
return abi.RegisteredSealProof_StackedDrg8MiBV1_1, nil
|
||||||
|
case abi.RegisteredPoStProof_StackedDrgWindow512MiBV1, abi.RegisteredPoStProof_StackedDrgWindow512MiBV1_1:
|
||||||
|
return abi.RegisteredSealProof_StackedDrg512MiBV1_1, nil
|
||||||
|
case abi.RegisteredPoStProof_StackedDrgWindow32GiBV1, abi.RegisteredPoStProof_StackedDrgWindow32GiBV1_1:
|
||||||
|
return abi.RegisteredSealProof_StackedDrg32GiBV1_1, nil
|
||||||
|
case abi.RegisteredPoStProof_StackedDrgWindow64GiBV1, abi.RegisteredPoStProof_StackedDrgWindow64GiBV1_1:
|
||||||
|
return abi.RegisteredSealProof_StackedDrg64GiBV1_1, nil
|
||||||
|
default:
|
||||||
|
return -1, xerrors.Errorf("unrecognized window post type: %d", proof)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
switch proof {
|
switch proof {
|
||||||
case abi.RegisteredPoStProof_StackedDrgWindow2KiBV1, abi.RegisteredPoStProof_StackedDrgWindow2KiBV1_1:
|
case abi.RegisteredPoStProof_StackedDrgWindow2KiBV1, abi.RegisteredPoStProof_StackedDrgWindow2KiBV1_1:
|
||||||
return abi.RegisteredSealProof_StackedDrg2KiBV1_1, nil
|
return abi.RegisteredSealProof_StackedDrg2KiBV1_1_Feat_SyntheticPoRep, nil
|
||||||
case abi.RegisteredPoStProof_StackedDrgWindow8MiBV1, abi.RegisteredPoStProof_StackedDrgWindow8MiBV1_1:
|
case abi.RegisteredPoStProof_StackedDrgWindow8MiBV1, abi.RegisteredPoStProof_StackedDrgWindow8MiBV1_1:
|
||||||
return abi.RegisteredSealProof_StackedDrg8MiBV1_1, nil
|
return abi.RegisteredSealProof_StackedDrg8MiBV1_1_Feat_SyntheticPoRep, nil
|
||||||
case abi.RegisteredPoStProof_StackedDrgWindow512MiBV1, abi.RegisteredPoStProof_StackedDrgWindow512MiBV1_1:
|
case abi.RegisteredPoStProof_StackedDrgWindow512MiBV1, abi.RegisteredPoStProof_StackedDrgWindow512MiBV1_1:
|
||||||
return abi.RegisteredSealProof_StackedDrg512MiBV1_1, nil
|
return abi.RegisteredSealProof_StackedDrg512MiBV1_1_Feat_SyntheticPoRep, nil
|
||||||
case abi.RegisteredPoStProof_StackedDrgWindow32GiBV1, abi.RegisteredPoStProof_StackedDrgWindow32GiBV1_1:
|
case abi.RegisteredPoStProof_StackedDrgWindow32GiBV1, abi.RegisteredPoStProof_StackedDrgWindow32GiBV1_1:
|
||||||
return abi.RegisteredSealProof_StackedDrg32GiBV1_1, nil
|
return abi.RegisteredSealProof_StackedDrg32GiBV1_1_Feat_SyntheticPoRep, nil
|
||||||
case abi.RegisteredPoStProof_StackedDrgWindow64GiBV1, abi.RegisteredPoStProof_StackedDrgWindow64GiBV1_1:
|
case abi.RegisteredPoStProof_StackedDrgWindow64GiBV1, abi.RegisteredPoStProof_StackedDrgWindow64GiBV1_1:
|
||||||
return abi.RegisteredSealProof_StackedDrg64GiBV1_1, nil
|
return abi.RegisteredSealProof_StackedDrg64GiBV1_1_Feat_SyntheticPoRep, nil
|
||||||
default:
|
default:
|
||||||
return -1, xerrors.Errorf("unrecognized window post type: %d", proof)
|
return -1, xerrors.Errorf("unrecognized window post type: %d", proof)
|
||||||
}
|
}
|
||||||
@ -273,8 +290,37 @@ type PendingBeneficiaryChange = minertypes.PendingBeneficiaryChange
|
|||||||
type WorkerKeyChange = minertypes.WorkerKeyChange
|
type WorkerKeyChange = minertypes.WorkerKeyChange
|
||||||
type SectorPreCommitOnChainInfo = minertypes.SectorPreCommitOnChainInfo
|
type SectorPreCommitOnChainInfo = minertypes.SectorPreCommitOnChainInfo
|
||||||
type SectorPreCommitInfo = minertypes.SectorPreCommitInfo
|
type SectorPreCommitInfo = minertypes.SectorPreCommitInfo
|
||||||
|
type SubmitWindowedPoStParams = minertypes.SubmitWindowedPoStParams
|
||||||
|
type PoStPartition = minertypes.PoStPartition
|
||||||
|
type RecoveryDeclaration = minertypes.RecoveryDeclaration
|
||||||
|
type FaultDeclaration = minertypes.FaultDeclaration
|
||||||
|
type DeclareFaultsRecoveredParams = minertypes.DeclareFaultsRecoveredParams
|
||||||
|
type DeclareFaultsParams = minertypes.DeclareFaultsParams
|
||||||
|
type ProveCommitAggregateParams = minertypes.ProveCommitAggregateParams
|
||||||
|
type ProveCommitSectorParams = minertypes.ProveCommitSectorParams
|
||||||
|
type ProveReplicaUpdatesParams = minertypes.ProveReplicaUpdatesParams
|
||||||
|
type ReplicaUpdate = minertypes.ReplicaUpdate
|
||||||
|
type PreCommitSectorBatchParams = minertypes.PreCommitSectorBatchParams
|
||||||
|
type PreCommitSectorBatchParams2 = minertypes.PreCommitSectorBatchParams2
|
||||||
|
type ExtendSectorExpiration2Params = minertypes.ExtendSectorExpiration2Params
|
||||||
|
type SectorClaim = minertypes.SectorClaim
|
||||||
|
type ExpirationExtension2 = minertypes.ExpirationExtension2
|
||||||
|
type CompactPartitionsParams = minertypes.CompactPartitionsParams
|
||||||
|
type WithdrawBalanceParams = minertypes.WithdrawBalanceParams
|
||||||
|
|
||||||
|
var QAPowerMax = minertypes.QAPowerMax
|
||||||
|
|
||||||
type WindowPostVerifyInfo = proof.WindowPoStVerifyInfo
|
type WindowPostVerifyInfo = proof.WindowPoStVerifyInfo
|
||||||
|
|
||||||
|
var WPoStProvingPeriod = func() abi.ChainEpoch { return minertypes.WPoStProvingPeriod }
|
||||||
|
var WPoStChallengeWindow = func() abi.ChainEpoch { return minertypes.WPoStChallengeWindow }
|
||||||
|
|
||||||
|
const WPoStPeriodDeadlines = minertypes.WPoStPeriodDeadlines
|
||||||
|
const WPoStChallengeLookback = minertypes.WPoStChallengeLookback
|
||||||
|
const FaultDeclarationCutoff = minertypes.FaultDeclarationCutoff
|
||||||
|
const MinAggregatedSectors = minertypes.MinAggregatedSectors
|
||||||
|
const MinSectorExpiration = minertypes.MinSectorExpiration
|
||||||
|
|
||||||
type SectorExpiration struct {
|
type SectorExpiration struct {
|
||||||
OnTime abi.ChainEpoch
|
OnTime abi.ChainEpoch
|
||||||
|
|
||||||
|
@ -8,6 +8,8 @@ import (
|
|||||||
"github.com/filecoin-project/go-state-types/network"
|
"github.com/filecoin-project/go-state-types/network"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var MinSyntheticPoRepVersion = network.Version21
|
||||||
|
|
||||||
func AllPartSectors(mas State, sget func(Partition) (bitfield.BitField, error)) (bitfield.BitField, error) {
|
func AllPartSectors(mas State, sget func(Partition) (bitfield.BitField, error)) (bitfield.BitField, error) {
|
||||||
var parts []bitfield.BitField
|
var parts []bitfield.BitField
|
||||||
|
|
||||||
@ -31,7 +33,7 @@ func AllPartSectors(mas State, sget func(Partition) (bitfield.BitField, error))
|
|||||||
|
|
||||||
// SealProofTypeFromSectorSize returns preferred seal proof type for creating
|
// SealProofTypeFromSectorSize returns preferred seal proof type for creating
|
||||||
// new miner actors and new sectors
|
// new miner actors and new sectors
|
||||||
func SealProofTypeFromSectorSize(ssize abi.SectorSize, nv network.Version) (abi.RegisteredSealProof, error) {
|
func SealProofTypeFromSectorSize(ssize abi.SectorSize, nv network.Version, synthetic bool) (abi.RegisteredSealProof, error) {
|
||||||
switch {
|
switch {
|
||||||
case nv < network.Version7:
|
case nv < network.Version7:
|
||||||
switch ssize {
|
switch ssize {
|
||||||
@ -49,25 +51,49 @@ func SealProofTypeFromSectorSize(ssize abi.SectorSize, nv network.Version) (abi.
|
|||||||
return 0, xerrors.Errorf("unsupported sector size for miner: %v", ssize)
|
return 0, xerrors.Errorf("unsupported sector size for miner: %v", ssize)
|
||||||
}
|
}
|
||||||
case nv >= network.Version7:
|
case nv >= network.Version7:
|
||||||
|
var v abi.RegisteredSealProof
|
||||||
switch ssize {
|
switch ssize {
|
||||||
case 2 << 10:
|
case 2 << 10:
|
||||||
return abi.RegisteredSealProof_StackedDrg2KiBV1_1, nil
|
v = abi.RegisteredSealProof_StackedDrg2KiBV1_1
|
||||||
case 8 << 20:
|
case 8 << 20:
|
||||||
return abi.RegisteredSealProof_StackedDrg8MiBV1_1, nil
|
v = abi.RegisteredSealProof_StackedDrg8MiBV1_1
|
||||||
case 512 << 20:
|
case 512 << 20:
|
||||||
return abi.RegisteredSealProof_StackedDrg512MiBV1_1, nil
|
v = abi.RegisteredSealProof_StackedDrg512MiBV1_1
|
||||||
case 32 << 30:
|
case 32 << 30:
|
||||||
return abi.RegisteredSealProof_StackedDrg32GiBV1_1, nil
|
v = abi.RegisteredSealProof_StackedDrg32GiBV1_1
|
||||||
case 64 << 30:
|
case 64 << 30:
|
||||||
return abi.RegisteredSealProof_StackedDrg64GiBV1_1, nil
|
v = abi.RegisteredSealProof_StackedDrg64GiBV1_1
|
||||||
default:
|
default:
|
||||||
return 0, xerrors.Errorf("unsupported sector size for miner: %v", ssize)
|
return 0, xerrors.Errorf("unsupported sector size for miner: %v", ssize)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if nv >= MinSyntheticPoRepVersion && synthetic {
|
||||||
|
return toSynthetic(v)
|
||||||
|
} else {
|
||||||
|
return v, nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0, xerrors.Errorf("unsupported network version")
|
return 0, xerrors.Errorf("unsupported network version")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func toSynthetic(in abi.RegisteredSealProof) (abi.RegisteredSealProof, error) {
|
||||||
|
switch in {
|
||||||
|
case abi.RegisteredSealProof_StackedDrg2KiBV1_1:
|
||||||
|
return abi.RegisteredSealProof_StackedDrg2KiBV1_1_Feat_SyntheticPoRep, nil
|
||||||
|
case abi.RegisteredSealProof_StackedDrg8MiBV1_1:
|
||||||
|
return abi.RegisteredSealProof_StackedDrg8MiBV1_1_Feat_SyntheticPoRep, nil
|
||||||
|
case abi.RegisteredSealProof_StackedDrg512MiBV1_1:
|
||||||
|
return abi.RegisteredSealProof_StackedDrg512MiBV1_1_Feat_SyntheticPoRep, nil
|
||||||
|
case abi.RegisteredSealProof_StackedDrg32GiBV1_1:
|
||||||
|
return abi.RegisteredSealProof_StackedDrg32GiBV1_1_Feat_SyntheticPoRep, nil
|
||||||
|
case abi.RegisteredSealProof_StackedDrg64GiBV1_1:
|
||||||
|
return abi.RegisteredSealProof_StackedDrg64GiBV1_1_Feat_SyntheticPoRep, nil
|
||||||
|
default:
|
||||||
|
return 0, xerrors.Errorf("unsupported conversion to synthetic: %v", in)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// WindowPoStProofTypeFromSectorSize returns preferred post proof type for creating
|
// WindowPoStProofTypeFromSectorSize returns preferred post proof type for creating
|
||||||
// new miner actors and new sectors
|
// new miner actors and new sectors
|
||||||
func WindowPoStProofTypeFromSectorSize(ssize abi.SectorSize, nv network.Version) (abi.RegisteredPoStProof, error) {
|
func WindowPoStProofTypeFromSectorSize(ssize abi.SectorSize, nv network.Version) (abi.RegisteredPoStProof, error) {
|
||||||
|
@ -98,3 +98,5 @@ type Allocation = verifregtypes.Allocation
|
|||||||
type AllocationId = verifregtypes.AllocationId
|
type AllocationId = verifregtypes.AllocationId
|
||||||
type Claim = verifregtypes.Claim
|
type Claim = verifregtypes.Claim
|
||||||
type ClaimId = verifregtypes.ClaimId
|
type ClaimId = verifregtypes.ClaimId
|
||||||
|
|
||||||
|
const NoAllocationID = verifregtypes.NoAllocationID
|
||||||
|
2
chain/actors/builtin/verifreg/verifreg.go
generated
2
chain/actors/builtin/verifreg/verifreg.go
generated
@ -168,3 +168,5 @@ type Allocation = verifregtypes.Allocation
|
|||||||
type AllocationId = verifregtypes.AllocationId
|
type AllocationId = verifregtypes.AllocationId
|
||||||
type Claim = verifregtypes.Claim
|
type Claim = verifregtypes.Claim
|
||||||
type ClaimId = verifregtypes.ClaimId
|
type ClaimId = verifregtypes.ClaimId
|
||||||
|
|
||||||
|
const NoAllocationID = verifregtypes.NoAllocationID
|
||||||
|
@ -560,8 +560,53 @@ func GetWinningPoStSectorSetLookback(nwVer network.Version) abi.ChainEpoch {
|
|||||||
return ChainFinality
|
return ChainFinality
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetMaxSectorExpirationExtension() abi.ChainEpoch {
|
func GetMaxSectorExpirationExtension(nv network.Version) (abi.ChainEpoch, error) {
|
||||||
return miner12.MaxSectorExpirationExtension
|
v, err := actorstypes.VersionForNetwork(nv)
|
||||||
|
if err != nil {
|
||||||
|
return 0, xerrors.Errorf("failed to get actors version: %w", err)
|
||||||
|
}
|
||||||
|
switch v {
|
||||||
|
|
||||||
|
case actorstypes.Version0:
|
||||||
|
return miner0.MaxSectorExpirationExtension, nil
|
||||||
|
|
||||||
|
case actorstypes.Version2:
|
||||||
|
return miner2.MaxSectorExpirationExtension, nil
|
||||||
|
|
||||||
|
case actorstypes.Version3:
|
||||||
|
return miner3.MaxSectorExpirationExtension, nil
|
||||||
|
|
||||||
|
case actorstypes.Version4:
|
||||||
|
return miner4.MaxSectorExpirationExtension, nil
|
||||||
|
|
||||||
|
case actorstypes.Version5:
|
||||||
|
return miner5.MaxSectorExpirationExtension, nil
|
||||||
|
|
||||||
|
case actorstypes.Version6:
|
||||||
|
return miner6.MaxSectorExpirationExtension, nil
|
||||||
|
|
||||||
|
case actorstypes.Version7:
|
||||||
|
return miner7.MaxSectorExpirationExtension, nil
|
||||||
|
|
||||||
|
case actorstypes.Version8:
|
||||||
|
return miner8.MaxSectorExpirationExtension, nil
|
||||||
|
|
||||||
|
case actorstypes.Version9:
|
||||||
|
return miner9.MaxSectorExpirationExtension, nil
|
||||||
|
|
||||||
|
case actorstypes.Version10:
|
||||||
|
return miner10.MaxSectorExpirationExtension, nil
|
||||||
|
|
||||||
|
case actorstypes.Version11:
|
||||||
|
return miner11.MaxSectorExpirationExtension, nil
|
||||||
|
|
||||||
|
case actorstypes.Version12:
|
||||||
|
return miner12.MaxSectorExpirationExtension, nil
|
||||||
|
|
||||||
|
default:
|
||||||
|
return 0, xerrors.Errorf("unsupported network version")
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetMinSectorExpiration() abi.ChainEpoch {
|
func GetMinSectorExpiration() abi.ChainEpoch {
|
||||||
@ -577,7 +622,8 @@ func GetMaxPoStPartitions(nv network.Version, p abi.RegisteredPoStProof) (int, e
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
return int(uint64(maxSectors) / sectorsPerPart), nil
|
|
||||||
|
return min(miner12.PoStedPartitionsMax, int(uint64(maxSectors)/sectorsPerPart)), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetDefaultAggregationProof() abi.RegisteredAggregationProof {
|
func GetDefaultAggregationProof() abi.RegisteredAggregationProof {
|
||||||
@ -820,3 +866,10 @@ func AggregatePreCommitNetworkFee(nwVer network.Version, aggregateSize int, base
|
|||||||
return big.Zero(), xerrors.Errorf("unsupported network version")
|
return big.Zero(), xerrors.Errorf("unsupported network version")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func min(a, b int) int {
|
||||||
|
if a < b {
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
@ -223,8 +223,20 @@ func GetWinningPoStSectorSetLookback(nwVer network.Version) abi.ChainEpoch {
|
|||||||
return ChainFinality
|
return ChainFinality
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetMaxSectorExpirationExtension() abi.ChainEpoch {
|
func GetMaxSectorExpirationExtension(nv network.Version) (abi.ChainEpoch, error) {
|
||||||
return miner{{.latestVersion}}.MaxSectorExpirationExtension
|
v, err := actorstypes.VersionForNetwork(nv)
|
||||||
|
if err != nil {
|
||||||
|
return 0, xerrors.Errorf("failed to get actors version: %w", err)
|
||||||
|
}
|
||||||
|
switch v {
|
||||||
|
{{range .versions}}
|
||||||
|
case actorstypes.Version{{.}}:
|
||||||
|
return miner{{.}}.MaxSectorExpirationExtension, nil
|
||||||
|
{{end}}
|
||||||
|
default:
|
||||||
|
return 0, xerrors.Errorf("unsupported network version")
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetMinSectorExpiration() abi.ChainEpoch {
|
func GetMinSectorExpiration() abi.ChainEpoch {
|
||||||
@ -240,7 +252,8 @@ func GetMaxPoStPartitions(nv network.Version, p abi.RegisteredPoStProof) (int, e
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
return int(uint64(maxSectors) / sectorsPerPart), nil
|
|
||||||
|
return min(miner{{.latestVersion}}.PoStedPartitionsMax, int(uint64(maxSectors) / sectorsPerPart)), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetDefaultAggregationProof() abi.RegisteredAggregationProof {
|
func GetDefaultAggregationProof() abi.RegisteredAggregationProof {
|
||||||
@ -329,3 +342,10 @@ func AggregatePreCommitNetworkFee(nwVer network.Version, aggregateSize int, base
|
|||||||
return big.Zero(), xerrors.Errorf("unsupported network version")
|
return big.Zero(), xerrors.Errorf("unsupported network version")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func min(a, b int) int {
|
||||||
|
if a < b {
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
@ -7,7 +7,6 @@ import (
|
|||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/network"
|
|
||||||
builtin0 "github.com/filecoin-project/specs-actors/actors/builtin"
|
builtin0 "github.com/filecoin-project/specs-actors/actors/builtin"
|
||||||
miner0 "github.com/filecoin-project/specs-actors/actors/builtin/miner"
|
miner0 "github.com/filecoin-project/specs-actors/actors/builtin/miner"
|
||||||
paych0 "github.com/filecoin-project/specs-actors/actors/builtin/paych"
|
paych0 "github.com/filecoin-project/specs-actors/actors/builtin/paych"
|
||||||
@ -74,13 +73,3 @@ func TestPartitionSizes(t *testing.T) {
|
|||||||
require.Equal(t, sizeOld, sizeNew)
|
require.Equal(t, sizeOld, sizeNew)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPoStSize(t *testing.T) {
|
|
||||||
//stm: @BLOCKCHAIN_POLICY_GET_MAX_POST_PARTITIONS_001
|
|
||||||
v12PoStSize, err := GetMaxPoStPartitions(network.Version12, abi.RegisteredPoStProof_StackedDrgWindow64GiBV1)
|
|
||||||
require.Equal(t, 4, v12PoStSize)
|
|
||||||
require.NoError(t, err)
|
|
||||||
v13PoStSize, err := GetMaxPoStPartitions(network.Version13, abi.RegisteredPoStProof_StackedDrgWindow64GiBV1)
|
|
||||||
require.NoError(t, err)
|
|
||||||
require.Equal(t, 10, v13PoStSize)
|
|
||||||
}
|
|
||||||
|
@ -43,9 +43,11 @@ func (t *Request) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, v := range t.Head {
|
for _, v := range t.Head {
|
||||||
if err := cbg.WriteCid(w, v); err != nil {
|
|
||||||
return xerrors.Errorf("failed writing cid field t.Head: %w", err)
|
if err := cbg.WriteCid(cw, v); err != nil {
|
||||||
|
return xerrors.Errorf("failed to write cid field v: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.Length (uint64) (uint64)
|
// t.Length (uint64) (uint64)
|
||||||
@ -106,12 +108,25 @@ func (t *Request) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
c, err := cbg.ReadCid(cr)
|
{
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("reading cid field t.Head failed: %w", err)
|
c, err := cbg.ReadCid(cr)
|
||||||
|
if err != nil {
|
||||||
|
return xerrors.Errorf("failed to read cid field t.Head[i]: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Head[i] = c
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
t.Head[i] = c
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.Length (uint64) (uint64)
|
// t.Length (uint64) (uint64)
|
||||||
@ -173,7 +188,7 @@ func (t *Response) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.ErrorMessage))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.ErrorMessage))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.ErrorMessage)); err != nil {
|
if _, err := cw.WriteString(string(t.ErrorMessage)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -260,13 +275,32 @@ func (t *Response) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
var v BSTipSet
|
{
|
||||||
if err := v.UnmarshalCBOR(cr); err != nil {
|
|
||||||
return err
|
b, err := cr.ReadByte()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if b != cbg.CborNull[0] {
|
||||||
|
if err := cr.UnreadByte(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
t.Chain[i] = new(BSTipSet)
|
||||||
|
if err := t.Chain[i].UnmarshalCBOR(cr); err != nil {
|
||||||
|
return xerrors.Errorf("unmarshaling t.Chain[i] pointer: %w", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Chain[i] = &v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
@ -317,9 +351,11 @@ func (t *CompactedMessages) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, v := range v {
|
for _, v := range v {
|
||||||
if err := cw.CborWriteHeader(cbg.MajUnsignedInt, uint64(v)); err != nil {
|
|
||||||
|
if err := cw.WriteMajorTypeHeader(cbg.MajUnsignedInt, uint64(v)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -354,9 +390,11 @@ func (t *CompactedMessages) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, v := range v {
|
for _, v := range v {
|
||||||
if err := cw.CborWriteHeader(cbg.MajUnsignedInt, uint64(v)); err != nil {
|
|
||||||
|
if err := cw.WriteMajorTypeHeader(cbg.MajUnsignedInt, uint64(v)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
@ -405,13 +443,32 @@ func (t *CompactedMessages) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
var v types.Message
|
{
|
||||||
if err := v.UnmarshalCBOR(cr); err != nil {
|
|
||||||
return err
|
b, err := cr.ReadByte()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if b != cbg.CborNull[0] {
|
||||||
|
if err := cr.UnreadByte(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
t.Bls[i] = new(types.Message)
|
||||||
|
if err := t.Bls[i].UnmarshalCBOR(cr); err != nil {
|
||||||
|
return xerrors.Errorf("unmarshaling t.Bls[i] pointer: %w", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Bls[i] = &v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.BlsIncludes ([][]uint64) (slice)
|
// t.BlsIncludes ([][]uint64) (slice)
|
||||||
@ -438,6 +495,9 @@ func (t *CompactedMessages) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
var maj byte
|
var maj byte
|
||||||
var extra uint64
|
var extra uint64
|
||||||
var err error
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
maj, extra, err = cr.ReadHeader()
|
maj, extra, err = cr.ReadHeader()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -457,17 +517,27 @@ func (t *CompactedMessages) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for j := 0; j < int(extra); j++ {
|
for j := 0; j < int(extra); j++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
maj, val, err := cr.ReadHeader()
|
{
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("failed to read uint64 for t.BlsIncludes[i] slice: %w", err)
|
maj, extra, err = cr.ReadHeader()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if maj != cbg.MajUnsignedInt {
|
||||||
|
return fmt.Errorf("wrong type for uint64 field")
|
||||||
|
}
|
||||||
|
t.BlsIncludes[i][j] = uint64(extra)
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if maj != cbg.MajUnsignedInt {
|
|
||||||
return xerrors.Errorf("value read for array t.BlsIncludes[i] was not a uint, instead got %d", maj)
|
|
||||||
}
|
|
||||||
|
|
||||||
t.BlsIncludes[i][j] = uint64(val)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -493,13 +563,32 @@ func (t *CompactedMessages) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
var v types.SignedMessage
|
{
|
||||||
if err := v.UnmarshalCBOR(cr); err != nil {
|
|
||||||
return err
|
b, err := cr.ReadByte()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if b != cbg.CborNull[0] {
|
||||||
|
if err := cr.UnreadByte(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
t.Secpk[i] = new(types.SignedMessage)
|
||||||
|
if err := t.Secpk[i].UnmarshalCBOR(cr); err != nil {
|
||||||
|
return xerrors.Errorf("unmarshaling t.Secpk[i] pointer: %w", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Secpk[i] = &v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.SecpkIncludes ([][]uint64) (slice)
|
// t.SecpkIncludes ([][]uint64) (slice)
|
||||||
@ -526,6 +615,9 @@ func (t *CompactedMessages) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
var maj byte
|
var maj byte
|
||||||
var extra uint64
|
var extra uint64
|
||||||
var err error
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
maj, extra, err = cr.ReadHeader()
|
maj, extra, err = cr.ReadHeader()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -545,17 +637,27 @@ func (t *CompactedMessages) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for j := 0; j < int(extra); j++ {
|
for j := 0; j < int(extra); j++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
maj, val, err := cr.ReadHeader()
|
{
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("failed to read uint64 for t.SecpkIncludes[i] slice: %w", err)
|
maj, extra, err = cr.ReadHeader()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if maj != cbg.MajUnsignedInt {
|
||||||
|
return fmt.Errorf("wrong type for uint64 field")
|
||||||
|
}
|
||||||
|
t.SecpkIncludes[i][j] = uint64(extra)
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if maj != cbg.MajUnsignedInt {
|
|
||||||
return xerrors.Errorf("value read for array t.SecpkIncludes[i] was not a uint, instead got %d", maj)
|
|
||||||
}
|
|
||||||
|
|
||||||
t.SecpkIncludes[i][j] = uint64(val)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -642,13 +744,32 @@ func (t *BSTipSet) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
var v types.BlockHeader
|
{
|
||||||
if err := v.UnmarshalCBOR(cr); err != nil {
|
|
||||||
return err
|
b, err := cr.ReadByte()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if b != cbg.CborNull[0] {
|
||||||
|
if err := cr.UnreadByte(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
t.Blocks[i] = new(types.BlockHeader)
|
||||||
|
if err := t.Blocks[i].UnmarshalCBOR(cr); err != nil {
|
||||||
|
return xerrors.Errorf("unmarshaling t.Blocks[i] pointer: %w", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Blocks[i] = &v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.Messages (exchange.CompactedMessages) (struct)
|
// t.Messages (exchange.CompactedMessages) (struct)
|
||||||
|
@ -578,7 +578,7 @@ func MakeGenesisBlock(ctx context.Context, j journal.Journal, bs bstore.Blocksto
|
|||||||
}
|
}
|
||||||
|
|
||||||
// setup Storage Miners
|
// setup Storage Miners
|
||||||
stateroot, err = SetupStorageMiners(ctx, cs, sys, stateroot, template.Miners, template.NetworkVersion)
|
stateroot, err = SetupStorageMiners(ctx, cs, sys, stateroot, template.Miners, template.NetworkVersion, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, xerrors.Errorf("setup miners failed: %w", err)
|
return nil, xerrors.Errorf("setup miners failed: %w", err)
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,7 @@ func mkFakedSigSyscalls(base vm.SyscallBuilder) vm.SyscallBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Note: Much of this is brittle, if the methodNum / param / return changes, it will break things
|
// Note: Much of this is brittle, if the methodNum / param / return changes, it will break things
|
||||||
func SetupStorageMiners(ctx context.Context, cs *store.ChainStore, sys vm.SyscallBuilder, sroot cid.Cid, miners []genesis.Miner, nv network.Version) (cid.Cid, error) {
|
func SetupStorageMiners(ctx context.Context, cs *store.ChainStore, sys vm.SyscallBuilder, sroot cid.Cid, miners []genesis.Miner, nv network.Version, synthetic bool) (cid.Cid, error) {
|
||||||
|
|
||||||
cst := cbor.NewCborStore(cs.StateBlockstore())
|
cst := cbor.NewCborStore(cs.StateBlockstore())
|
||||||
av, err := actorstypes.VersionForNetwork(nv)
|
av, err := actorstypes.VersionForNetwork(nv)
|
||||||
@ -125,14 +125,18 @@ func SetupStorageMiners(ctx context.Context, cs *store.ChainStore, sys vm.Syscal
|
|||||||
sectorWeight []abi.StoragePower
|
sectorWeight []abi.StoragePower
|
||||||
}, len(miners))
|
}, len(miners))
|
||||||
|
|
||||||
maxPeriods := policy.GetMaxSectorExpirationExtension() / minertypes.WPoStProvingPeriod
|
maxLifetime, err := policy.GetMaxSectorExpirationExtension(nv)
|
||||||
|
if err != nil {
|
||||||
|
return cid.Undef, xerrors.Errorf("failed to get max extension: %w", err)
|
||||||
|
}
|
||||||
|
maxPeriods := maxLifetime / minertypes.WPoStProvingPeriod
|
||||||
rawPow, qaPow := big.NewInt(0), big.NewInt(0)
|
rawPow, qaPow := big.NewInt(0), big.NewInt(0)
|
||||||
for i, m := range miners {
|
for i, m := range miners {
|
||||||
// Create miner through power actor
|
// Create miner through power actor
|
||||||
i := i
|
i := i
|
||||||
m := m
|
m := m
|
||||||
|
|
||||||
spt, err := miner.SealProofTypeFromSectorSize(m.SectorSize, nv)
|
spt, err := miner.SealProofTypeFromSectorSize(m.SectorSize, nv, synthetic)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return cid.Undef, err
|
return cid.Undef, err
|
||||||
}
|
}
|
||||||
|
@ -91,9 +91,11 @@ func (t *BlockHeader) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, v := range t.Parents {
|
for _, v := range t.Parents {
|
||||||
if err := cbg.WriteCid(w, v); err != nil {
|
|
||||||
return xerrors.Errorf("failed writing cid field t.Parents: %w", err)
|
if err := cbg.WriteCid(cw, v); err != nil {
|
||||||
|
return xerrors.Errorf("failed to write cid field v: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.ParentWeight (big.Int) (struct)
|
// t.ParentWeight (big.Int) (struct)
|
||||||
@ -249,13 +251,22 @@ func (t *BlockHeader) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
var v BeaconEntry
|
{
|
||||||
if err := v.UnmarshalCBOR(cr); err != nil {
|
|
||||||
return err
|
if err := t.BeaconEntries[i].UnmarshalCBOR(cr); err != nil {
|
||||||
|
return xerrors.Errorf("unmarshaling t.BeaconEntries[i]: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.BeaconEntries[i] = v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.WinPoStProof ([]proof.PoStProof) (slice)
|
// t.WinPoStProof ([]proof.PoStProof) (slice)
|
||||||
@ -278,13 +289,22 @@ func (t *BlockHeader) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
var v proof.PoStProof
|
{
|
||||||
if err := v.UnmarshalCBOR(cr); err != nil {
|
|
||||||
return err
|
if err := t.WinPoStProof[i].UnmarshalCBOR(cr); err != nil {
|
||||||
|
return xerrors.Errorf("unmarshaling t.WinPoStProof[i]: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.WinPoStProof[i] = v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.Parents ([]cid.Cid) (slice)
|
// t.Parents ([]cid.Cid) (slice)
|
||||||
@ -307,12 +327,25 @@ func (t *BlockHeader) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
c, err := cbg.ReadCid(cr)
|
{
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("reading cid field t.Parents failed: %w", err)
|
c, err := cbg.ReadCid(cr)
|
||||||
|
if err != nil {
|
||||||
|
return xerrors.Errorf("failed to read cid field t.Parents[i]: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Parents[i] = c
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
t.Parents[i] = c
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.ParentWeight (big.Int) (struct)
|
// t.ParentWeight (big.Int) (struct)
|
||||||
@ -1318,9 +1351,11 @@ func (t *BlockMsg) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, v := range t.BlsMessages {
|
for _, v := range t.BlsMessages {
|
||||||
if err := cbg.WriteCid(w, v); err != nil {
|
|
||||||
return xerrors.Errorf("failed writing cid field t.BlsMessages: %w", err)
|
if err := cbg.WriteCid(cw, v); err != nil {
|
||||||
|
return xerrors.Errorf("failed to write cid field v: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.SecpkMessages ([]cid.Cid) (slice)
|
// t.SecpkMessages ([]cid.Cid) (slice)
|
||||||
@ -1332,9 +1367,11 @@ func (t *BlockMsg) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, v := range t.SecpkMessages {
|
for _, v := range t.SecpkMessages {
|
||||||
if err := cbg.WriteCid(w, v); err != nil {
|
|
||||||
return xerrors.Errorf("failed writing cid field t.SecpkMessages: %w", err)
|
if err := cbg.WriteCid(cw, v); err != nil {
|
||||||
|
return xerrors.Errorf("failed to write cid field v: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -1401,12 +1438,25 @@ func (t *BlockMsg) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
c, err := cbg.ReadCid(cr)
|
{
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("reading cid field t.BlsMessages failed: %w", err)
|
c, err := cbg.ReadCid(cr)
|
||||||
|
if err != nil {
|
||||||
|
return xerrors.Errorf("failed to read cid field t.BlsMessages[i]: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.BlsMessages[i] = c
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
t.BlsMessages[i] = c
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.SecpkMessages ([]cid.Cid) (slice)
|
// t.SecpkMessages ([]cid.Cid) (slice)
|
||||||
@ -1429,12 +1479,25 @@ func (t *BlockMsg) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
c, err := cbg.ReadCid(cr)
|
{
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("reading cid field t.SecpkMessages failed: %w", err)
|
c, err := cbg.ReadCid(cr)
|
||||||
|
if err != nil {
|
||||||
|
return xerrors.Errorf("failed to read cid field t.SecpkMessages[i]: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.SecpkMessages[i] = c
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
t.SecpkMessages[i] = c
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
@ -1463,9 +1526,11 @@ func (t *ExpTipSet) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, v := range t.Cids {
|
for _, v := range t.Cids {
|
||||||
if err := cbg.WriteCid(w, v); err != nil {
|
|
||||||
return xerrors.Errorf("failed writing cid field t.Cids: %w", err)
|
if err := cbg.WriteCid(cw, v); err != nil {
|
||||||
|
return xerrors.Errorf("failed to write cid field v: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.Blocks ([]*types.BlockHeader) (slice)
|
// t.Blocks ([]*types.BlockHeader) (slice)
|
||||||
@ -1538,12 +1603,25 @@ func (t *ExpTipSet) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
c, err := cbg.ReadCid(cr)
|
{
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("reading cid field t.Cids failed: %w", err)
|
c, err := cbg.ReadCid(cr)
|
||||||
|
if err != nil {
|
||||||
|
return xerrors.Errorf("failed to read cid field t.Cids[i]: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Cids[i] = c
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
t.Cids[i] = c
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.Blocks ([]*types.BlockHeader) (slice)
|
// t.Blocks ([]*types.BlockHeader) (slice)
|
||||||
@ -1566,13 +1644,32 @@ func (t *ExpTipSet) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
var v BlockHeader
|
{
|
||||||
if err := v.UnmarshalCBOR(cr); err != nil {
|
|
||||||
return err
|
b, err := cr.ReadByte()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if b != cbg.CborNull[0] {
|
||||||
|
if err := cr.UnreadByte(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
t.Blocks[i] = new(BlockHeader)
|
||||||
|
if err := t.Blocks[i].UnmarshalCBOR(cr); err != nil {
|
||||||
|
return xerrors.Errorf("unmarshaling t.Blocks[i] pointer: %w", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Blocks[i] = &v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.Height (abi.ChainEpoch) (int64)
|
// t.Height (abi.ChainEpoch) (int64)
|
||||||
@ -1933,13 +2030,22 @@ func (t *Event) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
var v EventEntry
|
{
|
||||||
if err := v.UnmarshalCBOR(cr); err != nil {
|
|
||||||
return err
|
if err := t.Entries[i].UnmarshalCBOR(cr); err != nil {
|
||||||
|
return xerrors.Errorf("unmarshaling t.Entries[i]: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Entries[i] = v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
@ -1972,7 +2078,7 @@ func (t *EventEntry) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Key))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Key))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.Key)); err != nil {
|
if _, err := cw.WriteString(string(t.Key)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2103,7 +2209,7 @@ func (t *GasTrace) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Name))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Name))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.Name)); err != nil {
|
if _, err := cw.WriteString(string(t.Name)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2756,13 +2862,32 @@ func (t *ExecutionTrace) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
var v GasTrace
|
{
|
||||||
if err := v.UnmarshalCBOR(cr); err != nil {
|
|
||||||
return err
|
b, err := cr.ReadByte()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if b != cbg.CborNull[0] {
|
||||||
|
if err := cr.UnreadByte(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
t.GasCharges[i] = new(GasTrace)
|
||||||
|
if err := t.GasCharges[i].UnmarshalCBOR(cr); err != nil {
|
||||||
|
return xerrors.Errorf("unmarshaling t.GasCharges[i] pointer: %w", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.GasCharges[i] = &v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.Subcalls ([]types.ExecutionTrace) (slice)
|
// t.Subcalls ([]types.ExecutionTrace) (slice)
|
||||||
@ -2785,13 +2910,22 @@ func (t *ExecutionTrace) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
var v ExecutionTrace
|
{
|
||||||
if err := v.UnmarshalCBOR(cr); err != nil {
|
|
||||||
return err
|
if err := t.Subcalls[i].UnmarshalCBOR(cr); err != nil {
|
||||||
|
return xerrors.Errorf("unmarshaling t.Subcalls[i]: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Subcalls[i] = v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
@ -553,7 +553,7 @@ var sealBenchCmd = &cli.Command{
|
|||||||
|
|
||||||
if !skipc2 {
|
if !skipc2 {
|
||||||
log.Info("generating winning post candidates")
|
log.Info("generating winning post candidates")
|
||||||
wipt, err := spt(sectorSize).RegisteredWinningPoStProof()
|
wipt, err := spt(sectorSize, false).RegisteredWinningPoStProof()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -771,7 +771,7 @@ func runSeals(sb *ffiwrapper.Sealer, sbfs *basicfs.Provider, numSectors int, par
|
|||||||
Miner: mid,
|
Miner: mid,
|
||||||
Number: i,
|
Number: i,
|
||||||
},
|
},
|
||||||
ProofType: spt(sectorSize),
|
ProofType: spt(sectorSize, false),
|
||||||
}
|
}
|
||||||
|
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
@ -803,7 +803,7 @@ func runSeals(sb *ffiwrapper.Sealer, sbfs *basicfs.Provider, numSectors int, par
|
|||||||
Miner: mid,
|
Miner: mid,
|
||||||
Number: i,
|
Number: i,
|
||||||
},
|
},
|
||||||
ProofType: spt(sectorSize),
|
ProofType: spt(sectorSize, false),
|
||||||
}
|
}
|
||||||
|
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
@ -1014,7 +1014,7 @@ var proveCmd = &cli.Command{
|
|||||||
Miner: abi.ActorID(mid),
|
Miner: abi.ActorID(mid),
|
||||||
Number: abi.SectorNumber(c2in.SectorNum),
|
Number: abi.SectorNumber(c2in.SectorNum),
|
||||||
},
|
},
|
||||||
ProofType: spt(abi.SectorSize(c2in.SectorSize)),
|
ProofType: spt(abi.SectorSize(c2in.SectorSize), false),
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Printf("----\nstart proof computation\n")
|
fmt.Printf("----\nstart proof computation\n")
|
||||||
@ -1045,8 +1045,8 @@ func bps(sectorSize abi.SectorSize, sectorNum int, d time.Duration) string {
|
|||||||
return types.SizeStr(types.BigInt{Int: bps}) + "/s"
|
return types.SizeStr(types.BigInt{Int: bps}) + "/s"
|
||||||
}
|
}
|
||||||
|
|
||||||
func spt(ssize abi.SectorSize) abi.RegisteredSealProof {
|
func spt(ssize abi.SectorSize, synth bool) abi.RegisteredSealProof {
|
||||||
spt, err := miner.SealProofTypeFromSectorSize(ssize, build.TestNetworkVersion)
|
spt, err := miner.SealProofTypeFromSectorSize(ssize, build.TestNetworkVersion, synth)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
@ -186,7 +186,7 @@ var simpleAddPiece = &cli.Command{
|
|||||||
Miner: mid,
|
Miner: mid,
|
||||||
Number: 1,
|
Number: 1,
|
||||||
},
|
},
|
||||||
ProofType: spt(sectorSize),
|
ProofType: spt(sectorSize, false),
|
||||||
}
|
}
|
||||||
|
|
||||||
data, err := os.Open(cctx.Args().First())
|
data, err := os.Open(cctx.Args().First())
|
||||||
@ -223,6 +223,10 @@ var simplePreCommit1 = &cli.Command{
|
|||||||
Usage: "pass miner address (only necessary if using existing sectorbuilder)",
|
Usage: "pass miner address (only necessary if using existing sectorbuilder)",
|
||||||
Value: "t01000",
|
Value: "t01000",
|
||||||
},
|
},
|
||||||
|
&cli.BoolFlag{
|
||||||
|
Name: "synthetic",
|
||||||
|
Usage: "generate synthetic PoRep proofs",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
ArgsUsage: "[unsealed] [sealed] [cache] [[piece cid] [piece size]]...",
|
ArgsUsage: "[unsealed] [sealed] [cache] [[piece cid] [piece size]]...",
|
||||||
Action: func(cctx *cli.Context) error {
|
Action: func(cctx *cli.Context) error {
|
||||||
@ -259,7 +263,7 @@ var simplePreCommit1 = &cli.Command{
|
|||||||
Miner: mid,
|
Miner: mid,
|
||||||
Number: 1,
|
Number: 1,
|
||||||
},
|
},
|
||||||
ProofType: spt(sectorSize),
|
ProofType: spt(sectorSize, cctx.Bool("synthetic")),
|
||||||
}
|
}
|
||||||
|
|
||||||
var ticket [32]byte // all zero
|
var ticket [32]byte // all zero
|
||||||
@ -297,6 +301,10 @@ var simplePreCommit2 = &cli.Command{
|
|||||||
Usage: "pass miner address (only necessary if using existing sectorbuilder)",
|
Usage: "pass miner address (only necessary if using existing sectorbuilder)",
|
||||||
Value: "t01000",
|
Value: "t01000",
|
||||||
},
|
},
|
||||||
|
&cli.BoolFlag{
|
||||||
|
Name: "synthetic",
|
||||||
|
Usage: "generate synthetic PoRep proofs",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
ArgsUsage: "[sealed] [cache] [pc1 out]",
|
ArgsUsage: "[sealed] [cache] [pc1 out]",
|
||||||
Action: func(cctx *cli.Context) error {
|
Action: func(cctx *cli.Context) error {
|
||||||
@ -337,7 +345,7 @@ var simplePreCommit2 = &cli.Command{
|
|||||||
Miner: mid,
|
Miner: mid,
|
||||||
Number: 1,
|
Number: 1,
|
||||||
},
|
},
|
||||||
ProofType: spt(sectorSize),
|
ProofType: spt(sectorSize, cctx.Bool("synthetic")),
|
||||||
}
|
}
|
||||||
|
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
@ -368,6 +376,10 @@ var simpleCommit1 = &cli.Command{
|
|||||||
Usage: "pass miner address (only necessary if using existing sectorbuilder)",
|
Usage: "pass miner address (only necessary if using existing sectorbuilder)",
|
||||||
Value: "t01000",
|
Value: "t01000",
|
||||||
},
|
},
|
||||||
|
&cli.BoolFlag{
|
||||||
|
Name: "synthetic",
|
||||||
|
Usage: "generate synthetic PoRep proofs",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
ArgsUsage: "[sealed] [cache] [comm D] [comm R] [c1out.json]",
|
ArgsUsage: "[sealed] [cache] [comm D] [comm R] [c1out.json]",
|
||||||
Action: func(cctx *cli.Context) error {
|
Action: func(cctx *cli.Context) error {
|
||||||
@ -403,7 +415,7 @@ var simpleCommit1 = &cli.Command{
|
|||||||
Miner: mid,
|
Miner: mid,
|
||||||
Number: 1,
|
Number: 1,
|
||||||
},
|
},
|
||||||
ProofType: spt(sectorSize),
|
ProofType: spt(sectorSize, cctx.Bool("synthetic")),
|
||||||
}
|
}
|
||||||
|
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
@ -469,6 +481,10 @@ var simpleCommit2 = &cli.Command{
|
|||||||
Usage: "pass miner address (only necessary if using existing sectorbuilder)",
|
Usage: "pass miner address (only necessary if using existing sectorbuilder)",
|
||||||
Value: "t01000",
|
Value: "t01000",
|
||||||
},
|
},
|
||||||
|
&cli.BoolFlag{
|
||||||
|
Name: "synthetic",
|
||||||
|
Usage: "generate synthetic PoRep proofs",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Action: func(c *cli.Context) error {
|
Action: func(c *cli.Context) error {
|
||||||
if c.Bool("no-gpu") {
|
if c.Bool("no-gpu") {
|
||||||
@ -515,7 +531,7 @@ var simpleCommit2 = &cli.Command{
|
|||||||
Miner: abi.ActorID(mid),
|
Miner: abi.ActorID(mid),
|
||||||
Number: abi.SectorNumber(c2in.SectorNum),
|
Number: abi.SectorNumber(c2in.SectorNum),
|
||||||
},
|
},
|
||||||
ProofType: spt(abi.SectorSize(c2in.SectorSize)),
|
ProofType: spt(abi.SectorSize(c2in.SectorSize), c.Bool("synthetic")),
|
||||||
}
|
}
|
||||||
|
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
@ -573,7 +589,7 @@ var simpleWindowPost = &cli.Command{
|
|||||||
return xerrors.Errorf("parse commr: %w", err)
|
return xerrors.Errorf("parse commr: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
wpt, err := spt(sectorSize).RegisteredWindowPoStProof()
|
wpt, err := spt(sectorSize, false).RegisteredWindowPoStProof()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -593,7 +609,7 @@ var simpleWindowPost = &cli.Command{
|
|||||||
|
|
||||||
vp, err := ffi.GenerateSingleVanillaProof(ffi.PrivateSectorInfo{
|
vp, err := ffi.GenerateSingleVanillaProof(ffi.PrivateSectorInfo{
|
||||||
SectorInfo: prf.SectorInfo{
|
SectorInfo: prf.SectorInfo{
|
||||||
SealProof: spt(sectorSize),
|
SealProof: spt(sectorSize, false),
|
||||||
SectorNumber: sn,
|
SectorNumber: sn,
|
||||||
SealedCID: commr,
|
SealedCID: commr,
|
||||||
},
|
},
|
||||||
@ -660,7 +676,7 @@ var simpleWinningPost = &cli.Command{
|
|||||||
return xerrors.Errorf("parse commr: %w", err)
|
return xerrors.Errorf("parse commr: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
wpt, err := spt(sectorSize).RegisteredWinningPoStProof()
|
wpt, err := spt(sectorSize, false).RegisteredWinningPoStProof()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -680,7 +696,7 @@ var simpleWinningPost = &cli.Command{
|
|||||||
|
|
||||||
vp, err := ffi.GenerateSingleVanillaProof(ffi.PrivateSectorInfo{
|
vp, err := ffi.GenerateSingleVanillaProof(ffi.PrivateSectorInfo{
|
||||||
SectorInfo: prf.SectorInfo{
|
SectorInfo: prf.SectorInfo{
|
||||||
SealProof: spt(sectorSize),
|
SealProof: spt(sectorSize, false),
|
||||||
SectorNumber: sn,
|
SectorNumber: sn,
|
||||||
SealedCID: commr,
|
SealedCID: commr,
|
||||||
},
|
},
|
||||||
@ -763,7 +779,7 @@ var simpleReplicaUpdate = &cli.Command{
|
|||||||
Miner: mid,
|
Miner: mid,
|
||||||
Number: 1,
|
Number: 1,
|
||||||
},
|
},
|
||||||
ProofType: spt(sectorSize),
|
ProofType: spt(sectorSize, false),
|
||||||
}
|
}
|
||||||
|
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
@ -831,7 +847,7 @@ var simpleProveReplicaUpdate1 = &cli.Command{
|
|||||||
Miner: mid,
|
Miner: mid,
|
||||||
Number: 1,
|
Number: 1,
|
||||||
},
|
},
|
||||||
ProofType: spt(sectorSize),
|
ProofType: spt(sectorSize, false),
|
||||||
}
|
}
|
||||||
|
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
@ -918,7 +934,7 @@ var simpleProveReplicaUpdate2 = &cli.Command{
|
|||||||
Miner: mid,
|
Miner: mid,
|
||||||
Number: 1,
|
Number: 1,
|
||||||
},
|
},
|
||||||
ProofType: spt(sectorSize),
|
ProofType: spt(sectorSize, false),
|
||||||
}
|
}
|
||||||
|
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
"github.com/filecoin-project/go-state-types/builtin"
|
"github.com/filecoin-project/go-state-types/builtin"
|
||||||
|
minerV12 "github.com/filecoin-project/go-state-types/builtin/v12/miner"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
||||||
"github.com/filecoin-project/go-state-types/network"
|
"github.com/filecoin-project/go-state-types/network"
|
||||||
|
|
||||||
@ -49,6 +50,7 @@ var actorCmd = &cli.Command{
|
|||||||
actorProposeChangeWorker,
|
actorProposeChangeWorker,
|
||||||
actorConfirmChangeWorker,
|
actorConfirmChangeWorker,
|
||||||
actorCompactAllocatedCmd,
|
actorCompactAllocatedCmd,
|
||||||
|
actorMovePartitionsCmd,
|
||||||
actorProposeChangeBeneficiary,
|
actorProposeChangeBeneficiary,
|
||||||
actorConfirmChangeBeneficiary,
|
actorConfirmChangeBeneficiary,
|
||||||
},
|
},
|
||||||
@ -1286,13 +1288,149 @@ var actorConfirmChangeBeneficiary = &cli.Command{
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var actorMovePartitionsCmd = &cli.Command{
|
||||||
|
Name: "move-partitions",
|
||||||
|
Usage: "move deadline of specified partitions from one to another",
|
||||||
|
Flags: []cli.Flag{
|
||||||
|
&cli.Int64SliceFlag{
|
||||||
|
Name: "partition-indices",
|
||||||
|
Usage: "Indices of partitions to update, separated by comma",
|
||||||
|
},
|
||||||
|
&cli.Uint64Flag{
|
||||||
|
Name: "orig-deadline",
|
||||||
|
Usage: "Deadline to move partition from",
|
||||||
|
},
|
||||||
|
&cli.Uint64Flag{
|
||||||
|
Name: "dest-deadline",
|
||||||
|
Usage: "Deadline to move partition to",
|
||||||
|
},
|
||||||
|
&cli.BoolFlag{
|
||||||
|
Name: "really-do-it",
|
||||||
|
Usage: "Actually send transaction performing the action",
|
||||||
|
Value: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Action: func(cctx *cli.Context) error {
|
||||||
|
if !cctx.Bool("really-do-it") {
|
||||||
|
fmt.Println("Pass --really-do-it to actually execute this action")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if cctx.Args().Present() {
|
||||||
|
return fmt.Errorf("please use flags to provide arguments")
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx := lcli.ReqContext(cctx)
|
||||||
|
|
||||||
|
minerApi, closer, err := lcli.GetStorageMinerAPI(cctx)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer closer()
|
||||||
|
|
||||||
|
maddr, err := minerApi.ActorAddress(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf("Miner: %s\n", color.BlueString("%s", maddr))
|
||||||
|
|
||||||
|
fullNodeApi, acloser, err := lcli.GetFullNodeAPI(cctx)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer acloser()
|
||||||
|
|
||||||
|
minfo, err := fullNodeApi.StateMinerInfo(ctx, maddr, types.EmptyTSK)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
origDeadline := cctx.Uint64("orig-deadline")
|
||||||
|
if origDeadline > miner.WPoStPeriodDeadlines {
|
||||||
|
return fmt.Errorf("orig-deadline %d out of range", origDeadline)
|
||||||
|
}
|
||||||
|
destDeadline := cctx.Uint64("dest-deadline")
|
||||||
|
if destDeadline > miner.WPoStPeriodDeadlines {
|
||||||
|
return fmt.Errorf("dest-deadline %d out of range", destDeadline)
|
||||||
|
}
|
||||||
|
if origDeadline == destDeadline {
|
||||||
|
return fmt.Errorf("dest-desdline cannot be the same as orig-deadline")
|
||||||
|
}
|
||||||
|
|
||||||
|
partitions := cctx.Int64Slice("partition-indices")
|
||||||
|
if len(partitions) == 0 {
|
||||||
|
return fmt.Errorf("must include at least one partition to move")
|
||||||
|
}
|
||||||
|
|
||||||
|
curPartitions, err := fullNodeApi.StateMinerPartitions(ctx, maddr, origDeadline, types.EmptyTSK)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("getting partitions for deadline %d: %w", origDeadline, err)
|
||||||
|
}
|
||||||
|
if len(partitions) > len(curPartitions) {
|
||||||
|
return fmt.Errorf("partition size(%d) cannot be bigger than current partition size(%d) for deadline %d", len(partitions), len(curPartitions), origDeadline)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf("Moving %d paritions\n", len(partitions))
|
||||||
|
|
||||||
|
partitionsBf := bitfield.New()
|
||||||
|
for _, partition := range partitions {
|
||||||
|
if partition >= int64(len(curPartitions)) {
|
||||||
|
return fmt.Errorf("partition index(%d) doesn't exist", partition)
|
||||||
|
}
|
||||||
|
partitionsBf.Set(uint64(partition))
|
||||||
|
}
|
||||||
|
|
||||||
|
params := minerV12.MovePartitionsParams{
|
||||||
|
OrigDeadline: origDeadline,
|
||||||
|
DestDeadline: destDeadline,
|
||||||
|
Partitions: partitionsBf,
|
||||||
|
}
|
||||||
|
|
||||||
|
serializedParams, err := actors.SerializeParams(¶ms)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("serializing params: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
smsg, err := fullNodeApi.MpoolPushMessage(ctx, &types.Message{
|
||||||
|
From: minfo.Worker,
|
||||||
|
To: maddr,
|
||||||
|
Method: builtin.MethodsMiner.MovePartitions,
|
||||||
|
Value: big.Zero(),
|
||||||
|
Params: serializedParams,
|
||||||
|
}, nil)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("mpool push: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println("MovePartitions Message CID:", smsg.Cid())
|
||||||
|
|
||||||
|
// wait for it to get mined into a block
|
||||||
|
fmt.Println("Waiting for block confirmation...")
|
||||||
|
wait, err := fullNodeApi.StateWaitMsg(ctx, smsg.Cid(), build.MessageConfidence)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// check it executed successfully
|
||||||
|
if wait.Receipt.ExitCode.IsError() {
|
||||||
|
fmt.Println("Moving partitions failed!")
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println("Move partition confirmed")
|
||||||
|
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
var actorCompactAllocatedCmd = &cli.Command{
|
var actorCompactAllocatedCmd = &cli.Command{
|
||||||
Name: "compact-allocated",
|
Name: "compact-allocated",
|
||||||
Usage: "compact allocated sectors bitfield",
|
Usage: "compact allocated sectors bitfield",
|
||||||
Flags: []cli.Flag{
|
Flags: []cli.Flag{
|
||||||
&cli.Uint64Flag{
|
&cli.Uint64Flag{
|
||||||
Name: "mask-last-offset",
|
Name: "mask-last-offset",
|
||||||
Usage: "Mask sector IDs from 0 to 'higest_allocated - offset'",
|
Usage: "Mask sector IDs from 0 to 'highest_allocated - offset'",
|
||||||
},
|
},
|
||||||
&cli.Uint64Flag{
|
&cli.Uint64Flag{
|
||||||
Name: "mask-upto-n",
|
Name: "mask-upto-n",
|
||||||
|
@ -7,7 +7,6 @@ import (
|
|||||||
cbor "github.com/ipfs/go-ipld-cbor"
|
cbor "github.com/ipfs/go-ipld-cbor"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
|
|
||||||
minertypes "github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
|
||||||
"github.com/filecoin-project/specs-actors/v7/actors/util/adt"
|
"github.com/filecoin-project/specs-actors/v7/actors/util/adt"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/blockstore"
|
"github.com/filecoin-project/lotus/blockstore"
|
||||||
@ -39,8 +38,8 @@ var sectorPreCommitsCmd = &cli.Command{
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
preCommitSector := make([]minertypes.SectorPreCommitOnChainInfo, 0)
|
preCommitSector := make([]miner.SectorPreCommitOnChainInfo, 0)
|
||||||
err = mst.ForEachPrecommittedSector(func(info minertypes.SectorPreCommitOnChainInfo) error {
|
err = mst.ForEachPrecommittedSector(func(info miner.SectorPreCommitOnChainInfo) error {
|
||||||
preCommitSector = append(preCommitSector, info)
|
preCommitSector = append(preCommitSector, info)
|
||||||
return err
|
return err
|
||||||
})
|
})
|
||||||
|
@ -24,14 +24,13 @@ import (
|
|||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
"github.com/filecoin-project/go-state-types/builtin"
|
"github.com/filecoin-project/go-state-types/builtin"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
|
||||||
"github.com/filecoin-project/go-state-types/network"
|
"github.com/filecoin-project/go-state-types/network"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/api"
|
"github.com/filecoin-project/lotus/api"
|
||||||
"github.com/filecoin-project/lotus/blockstore"
|
"github.com/filecoin-project/lotus/blockstore"
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
"github.com/filecoin-project/lotus/chain/actors"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
"github.com/filecoin-project/lotus/chain/actors/adt"
|
||||||
lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
"github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/policy"
|
"github.com/filecoin-project/lotus/chain/actors/policy"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
@ -193,14 +192,14 @@ var sectorsStatusCmd = &cli.Command{
|
|||||||
}
|
}
|
||||||
|
|
||||||
tbs := blockstore.NewTieredBstore(blockstore.NewAPIBlockstore(fullApi), blockstore.NewMemory())
|
tbs := blockstore.NewTieredBstore(blockstore.NewAPIBlockstore(fullApi), blockstore.NewMemory())
|
||||||
mas, err := lminer.Load(adt.WrapStore(ctx, cbor.NewCborStore(tbs)), mact)
|
mas, err := miner.Load(adt.WrapStore(ctx, cbor.NewCborStore(tbs)), mact)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
errFound := errors.New("found")
|
errFound := errors.New("found")
|
||||||
if err := mas.ForEachDeadline(func(dlIdx uint64, dl lminer.Deadline) error {
|
if err := mas.ForEachDeadline(func(dlIdx uint64, dl miner.Deadline) error {
|
||||||
return dl.ForEachPartition(func(partIdx uint64, part lminer.Partition) error {
|
return dl.ForEachPartition(func(partIdx uint64, part miner.Partition) error {
|
||||||
pas, err := part.AllSectors()
|
pas, err := part.AllSectors()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -847,7 +846,12 @@ var sectorsCheckExpireCmd = &cli.Command{
|
|||||||
|
|
||||||
for _, sector := range sectors {
|
for _, sector := range sectors {
|
||||||
MaxExpiration := sector.Activation + policy.GetSectorMaxLifetime(sector.SealProof, nv)
|
MaxExpiration := sector.Activation + policy.GetSectorMaxLifetime(sector.SealProof, nv)
|
||||||
MaxExtendNow := currEpoch + policy.GetMaxSectorExpirationExtension()
|
maxExtension, err := policy.GetMaxSectorExpirationExtension(nv)
|
||||||
|
if err != nil {
|
||||||
|
return xerrors.Errorf("failed to get max extension: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
MaxExtendNow := currEpoch + maxExtension
|
||||||
|
|
||||||
if MaxExtendNow > MaxExpiration {
|
if MaxExtendNow > MaxExpiration {
|
||||||
MaxExtendNow = MaxExpiration
|
MaxExtendNow = MaxExpiration
|
||||||
@ -1075,22 +1079,22 @@ var sectorsExtendCmd = &cli.Command{
|
|||||||
|
|
||||||
tbs := blockstore.NewTieredBstore(blockstore.NewAPIBlockstore(fullApi), blockstore.NewMemory())
|
tbs := blockstore.NewTieredBstore(blockstore.NewAPIBlockstore(fullApi), blockstore.NewMemory())
|
||||||
adtStore := adt.WrapStore(ctx, cbor.NewCborStore(tbs))
|
adtStore := adt.WrapStore(ctx, cbor.NewCborStore(tbs))
|
||||||
mas, err := lminer.Load(adtStore, mact)
|
mas, err := miner.Load(adtStore, mact)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
activeSectorsLocation := make(map[abi.SectorNumber]*lminer.SectorLocation, len(activeSet))
|
activeSectorsLocation := make(map[abi.SectorNumber]*miner.SectorLocation, len(activeSet))
|
||||||
|
|
||||||
if err := mas.ForEachDeadline(func(dlIdx uint64, dl lminer.Deadline) error {
|
if err := mas.ForEachDeadline(func(dlIdx uint64, dl miner.Deadline) error {
|
||||||
return dl.ForEachPartition(func(partIdx uint64, part lminer.Partition) error {
|
return dl.ForEachPartition(func(partIdx uint64, part miner.Partition) error {
|
||||||
pas, err := part.ActiveSectors()
|
pas, err := part.ActiveSectors()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return pas.ForEach(func(i uint64) error {
|
return pas.ForEach(func(i uint64) error {
|
||||||
activeSectorsLocation[abi.SectorNumber(i)] = &lminer.SectorLocation{
|
activeSectorsLocation[abi.SectorNumber(i)] = &miner.SectorLocation{
|
||||||
Deadline: dlIdx,
|
Deadline: dlIdx,
|
||||||
Partition: partIdx,
|
Partition: partIdx,
|
||||||
}
|
}
|
||||||
@ -1177,7 +1181,7 @@ var sectorsExtendCmd = &cli.Command{
|
|||||||
return diff <= abi.ChainEpoch(cctx.Int64("tolerance"))
|
return diff <= abi.ChainEpoch(cctx.Int64("tolerance"))
|
||||||
}
|
}
|
||||||
|
|
||||||
extensions := map[lminer.SectorLocation]map[abi.ChainEpoch][]abi.SectorNumber{}
|
extensions := map[miner.SectorLocation]map[abi.ChainEpoch][]abi.SectorNumber{}
|
||||||
for _, si := range sis {
|
for _, si := range sis {
|
||||||
extension := abi.ChainEpoch(cctx.Int64("extension"))
|
extension := abi.ChainEpoch(cctx.Int64("extension"))
|
||||||
newExp := si.Expiration + extension
|
newExp := si.Expiration + extension
|
||||||
@ -1186,7 +1190,12 @@ var sectorsExtendCmd = &cli.Command{
|
|||||||
newExp = abi.ChainEpoch(cctx.Int64("new-expiration"))
|
newExp = abi.ChainEpoch(cctx.Int64("new-expiration"))
|
||||||
}
|
}
|
||||||
|
|
||||||
maxExtendNow := currEpoch + policy.GetMaxSectorExpirationExtension()
|
maxExtension, err := policy.GetMaxSectorExpirationExtension(nv)
|
||||||
|
if err != nil {
|
||||||
|
return xerrors.Errorf("failed to get max extension: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
maxExtendNow := currEpoch + maxExtension
|
||||||
if newExp > maxExtendNow {
|
if newExp > maxExtendNow {
|
||||||
newExp = maxExtendNow
|
newExp = maxExtendNow
|
||||||
}
|
}
|
||||||
@ -1741,7 +1750,7 @@ var sectorsCapacityCollateralCmd = &cli.Command{
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
spt, err := lminer.PreferredSealProofTypeFromWindowPoStType(nv, mi.WindowPoStProofType)
|
spt, err := miner.PreferredSealProofTypeFromWindowPoStType(nv, mi.WindowPoStProofType, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -1756,7 +1765,12 @@ var sectorsCapacityCollateralCmd = &cli.Command{
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
pci.Expiration = policy.GetMaxSectorExpirationExtension() + h.Height()
|
maxExtension, err := policy.GetMaxSectorExpirationExtension(nv)
|
||||||
|
if err != nil {
|
||||||
|
return xerrors.Errorf("failed to get max extension: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
pci.Expiration = maxExtension + h.Height()
|
||||||
}
|
}
|
||||||
|
|
||||||
pc, err := nApi.StateMinerInitialPledgeCollateral(ctx, maddr, pci, types.EmptyTSK)
|
pc, err := nApi.StateMinerInitialPledgeCollateral(ctx, maddr, pci, types.EmptyTSK)
|
||||||
@ -1910,7 +1924,7 @@ var sectorsExpiredCmd = &cli.Command{
|
|||||||
}
|
}
|
||||||
|
|
||||||
tbs := blockstore.NewTieredBstore(blockstore.NewAPIBlockstore(fullApi), blockstore.NewMemory())
|
tbs := blockstore.NewTieredBstore(blockstore.NewAPIBlockstore(fullApi), blockstore.NewMemory())
|
||||||
mas, err := lminer.Load(adt.WrapStore(ctx, cbor.NewCborStore(tbs)), mact)
|
mas, err := miner.Load(adt.WrapStore(ctx, cbor.NewCborStore(tbs)), mact)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -1926,8 +1940,8 @@ var sectorsExpiredCmd = &cli.Command{
|
|||||||
return xerrors.Errorf("intersecting bitfields: %w", err)
|
return xerrors.Errorf("intersecting bitfields: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := mas.ForEachDeadline(func(dlIdx uint64, dl lminer.Deadline) error {
|
if err := mas.ForEachDeadline(func(dlIdx uint64, dl miner.Deadline) error {
|
||||||
return dl.ForEachPartition(func(partIdx uint64, part lminer.Partition) error {
|
return dl.ForEachPartition(func(partIdx uint64, part miner.Partition) error {
|
||||||
live, err := part.LiveSectors()
|
live, err := part.LiveSectors()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -137,7 +137,9 @@ var preSealCmd = &cli.Command{
|
|||||||
nv = network.Version(c.Uint64("network-version"))
|
nv = network.Version(c.Uint64("network-version"))
|
||||||
}
|
}
|
||||||
|
|
||||||
spt, err := miner.SealProofTypeFromSectorSize(sectorSize, nv)
|
var synthetic = false // there's little reason to have this for a seed.
|
||||||
|
|
||||||
|
spt, err := miner.SealProofTypeFromSectorSize(sectorSize, nv, synthetic)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
|
"runtime/pprof"
|
||||||
|
|
||||||
logging "github.com/ipfs/go-log/v2"
|
logging "github.com/ipfs/go-log/v2"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
@ -116,10 +117,31 @@ func main() {
|
|||||||
Name: "log-level",
|
Name: "log-level",
|
||||||
Value: "info",
|
Value: "info",
|
||||||
},
|
},
|
||||||
|
&cli.StringFlag{
|
||||||
|
Name: "pprof",
|
||||||
|
Usage: "specify name of file for writing cpu profile to",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Before: func(cctx *cli.Context) error {
|
Before: func(cctx *cli.Context) error {
|
||||||
|
if prof := cctx.String("pprof"); prof != "" {
|
||||||
|
profile, err := os.Create(prof)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := pprof.StartCPUProfile(profile); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return logging.SetLogLevel("lotus-shed", cctx.String("log-level"))
|
return logging.SetLogLevel("lotus-shed", cctx.String("log-level"))
|
||||||
},
|
},
|
||||||
|
After: func(cctx *cli.Context) error {
|
||||||
|
if prof := cctx.String("pprof"); prof != "" {
|
||||||
|
pprof.StopCPUProfile()
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// terminate early on ctrl+c
|
// terminate early on ctrl+c
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"github.com/filecoin-project/go-state-types/builtin"
|
"github.com/filecoin-project/go-state-types/builtin"
|
||||||
v10 "github.com/filecoin-project/go-state-types/builtin/v10"
|
v10 "github.com/filecoin-project/go-state-types/builtin/v10"
|
||||||
v11 "github.com/filecoin-project/go-state-types/builtin/v11"
|
v11 "github.com/filecoin-project/go-state-types/builtin/v11"
|
||||||
|
v12 "github.com/filecoin-project/go-state-types/builtin/v12"
|
||||||
market8 "github.com/filecoin-project/go-state-types/builtin/v8/market"
|
market8 "github.com/filecoin-project/go-state-types/builtin/v8/market"
|
||||||
adt8 "github.com/filecoin-project/go-state-types/builtin/v8/util/adt"
|
adt8 "github.com/filecoin-project/go-state-types/builtin/v8/util/adt"
|
||||||
v9 "github.com/filecoin-project/go-state-types/builtin/v9"
|
v9 "github.com/filecoin-project/go-state-types/builtin/v9"
|
||||||
@ -243,6 +244,8 @@ func getMigrationFuncsForNetwork(nv network.Version) (UpgradeActorsFunc, PreUpgr
|
|||||||
return filcns.UpgradeActorsV10, filcns.PreUpgradeActorsV10, checkNv18Invariants, nil
|
return filcns.UpgradeActorsV10, filcns.PreUpgradeActorsV10, checkNv18Invariants, nil
|
||||||
case network.Version19:
|
case network.Version19:
|
||||||
return filcns.UpgradeActorsV11, filcns.PreUpgradeActorsV11, checkNv19Invariants, nil
|
return filcns.UpgradeActorsV11, filcns.PreUpgradeActorsV11, checkNv19Invariants, nil
|
||||||
|
case network.Version21:
|
||||||
|
return filcns.UpgradeActorsV12, filcns.PreUpgradeActorsV12, checkNv21Invariants, nil
|
||||||
default:
|
default:
|
||||||
return nil, nil, nil, xerrors.Errorf("migration not implemented for nv%d", nv)
|
return nil, nil, nil, xerrors.Errorf("migration not implemented for nv%d", nv)
|
||||||
}
|
}
|
||||||
@ -252,6 +255,38 @@ type UpgradeActorsFunc = func(context.Context, *stmgr.StateManager, stmgr.Migrat
|
|||||||
type PreUpgradeActorsFunc = func(context.Context, *stmgr.StateManager, stmgr.MigrationCache, cid.Cid, abi.ChainEpoch, *types.TipSet) error
|
type PreUpgradeActorsFunc = func(context.Context, *stmgr.StateManager, stmgr.MigrationCache, cid.Cid, abi.ChainEpoch, *types.TipSet) error
|
||||||
type CheckInvariantsFunc = func(context.Context, cid.Cid, cid.Cid, blockstore.Blockstore, abi.ChainEpoch) error
|
type CheckInvariantsFunc = func(context.Context, cid.Cid, cid.Cid, blockstore.Blockstore, abi.ChainEpoch) error
|
||||||
|
|
||||||
|
func checkNv21Invariants(ctx context.Context, oldStateRootCid cid.Cid, newStateRootCid cid.Cid, bs blockstore.Blockstore, epoch abi.ChainEpoch) error {
|
||||||
|
|
||||||
|
actorStore := store.ActorStore(ctx, bs)
|
||||||
|
startTime := time.Now()
|
||||||
|
|
||||||
|
// Load the new state root.
|
||||||
|
var newStateRoot types.StateRoot
|
||||||
|
if err := actorStore.Get(ctx, newStateRootCid, &newStateRoot); err != nil {
|
||||||
|
return xerrors.Errorf("failed to decode state root: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
actorCodeCids, err := actors.GetActorCodeIDs(actorstypes.Version12)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
newActorTree, err := builtin.LoadTree(actorStore, newStateRoot.Actors)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
messages, err := v12.CheckStateInvariants(newActorTree, epoch, actorCodeCids)
|
||||||
|
if err != nil {
|
||||||
|
return xerrors.Errorf("checking state invariants: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, message := range messages.Messages() {
|
||||||
|
fmt.Println("got the following error: ", message)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println("completed invariant checks, took ", time.Since(startTime))
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
func checkNv19Invariants(ctx context.Context, oldStateRootCid cid.Cid, newStateRootCid cid.Cid, bs blockstore.Blockstore, epoch abi.ChainEpoch) error {
|
func checkNv19Invariants(ctx context.Context, oldStateRootCid cid.Cid, newStateRootCid cid.Cid, bs blockstore.Blockstore, epoch abi.ChainEpoch) error {
|
||||||
|
|
||||||
actorStore := store.ActorStore(ctx, bs)
|
actorStore := store.ActorStore(ctx, bs)
|
||||||
|
@ -38,7 +38,7 @@ func (t *CarbNode) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Sub"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Sub"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Sub")); err != nil {
|
if _, err := cw.WriteString(string("Sub")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -50,9 +50,11 @@ func (t *CarbNode) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, v := range t.Sub {
|
for _, v := range t.Sub {
|
||||||
if err := cbg.WriteCid(w, v); err != nil {
|
|
||||||
return xerrors.Errorf("failed writing cid field t.Sub: %w", err)
|
if err := cbg.WriteCid(cw, v); err != nil {
|
||||||
|
return xerrors.Errorf("failed to write cid field v: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -116,12 +118,25 @@ func (t *CarbNode) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
c, err := cbg.ReadCid(cr)
|
{
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("reading cid field t.Sub failed: %w", err)
|
c, err := cbg.ReadCid(cr)
|
||||||
|
if err != nil {
|
||||||
|
return xerrors.Errorf("failed to read cid field t.Sub[i]: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Sub[i] = c
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
t.Sub[i] = c
|
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -165,7 +165,7 @@ func (stage *PreCommitStage) packMiner(
|
|||||||
|
|
||||||
// Generate pre-commits.
|
// Generate pre-commits.
|
||||||
sealType, err := miner.PreferredSealProofTypeFromWindowPoStType(
|
sealType, err := miner.PreferredSealProofTypeFromWindowPoStType(
|
||||||
nv, minerInfo.WindowPoStProofType,
|
nv, minerInfo.WindowPoStProofType, false,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, false, err
|
return 0, false, err
|
||||||
@ -176,7 +176,12 @@ func (stage *PreCommitStage) packMiner(
|
|||||||
return 0, false, err
|
return 0, false, err
|
||||||
}
|
}
|
||||||
|
|
||||||
expiration := epoch + policy.GetMaxSectorExpirationExtension()
|
maxExtension, err := policy.GetMaxSectorExpirationExtension(nv)
|
||||||
|
if err != nil {
|
||||||
|
return 0, false, xerrors.Errorf("failed to get max extension: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
expiration := epoch + maxExtension
|
||||||
infos := make([]minertypes.PreCommitSectorParams, len(sectorNos))
|
infos := make([]minertypes.PreCommitSectorParams, len(sectorNos))
|
||||||
for i, sno := range sectorNos {
|
for i, sno := range sectorNos {
|
||||||
infos[i] = minertypes.PreCommitSectorParams{
|
infos[i] = minertypes.PreCommitSectorParams{
|
||||||
|
@ -44,7 +44,7 @@ func (t *State) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Value))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Value))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.Value)); err != nil {
|
if _, err := cw.WriteString(string(t.Value)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,13 +117,32 @@ func (t *State) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
var v UnmarshallableCBOR
|
{
|
||||||
if err := v.UnmarshalCBOR(cr); err != nil {
|
|
||||||
return err
|
b, err := cr.ReadByte()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if b != cbg.CborNull[0] {
|
||||||
|
if err := cr.UnreadByte(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
t.Unmarshallable[i] = new(UnmarshallableCBOR)
|
||||||
|
if err := t.Unmarshallable[i].UnmarshalCBOR(cr); err != nil {
|
||||||
|
return xerrors.Errorf("unmarshaling t.Unmarshallable[i] pointer: %w", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Unmarshallable[i] = &v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
@ -177,9 +196,11 @@ func (t *CallerValidationArgs) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, v := range t.Types {
|
for _, v := range t.Types {
|
||||||
if err := cbg.WriteCid(w, v); err != nil {
|
|
||||||
return xerrors.Errorf("failed writing cid field t.Types: %w", err)
|
if err := cbg.WriteCid(cw, v); err != nil {
|
||||||
|
return xerrors.Errorf("failed to write cid field v: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -252,13 +273,22 @@ func (t *CallerValidationArgs) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
var v address.Address
|
{
|
||||||
if err := v.UnmarshalCBOR(cr); err != nil {
|
|
||||||
return err
|
if err := t.Addrs[i].UnmarshalCBOR(cr); err != nil {
|
||||||
|
return xerrors.Errorf("unmarshaling t.Addrs[i]: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Addrs[i] = v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.Types ([]cid.Cid) (slice)
|
// t.Types ([]cid.Cid) (slice)
|
||||||
@ -281,12 +311,25 @@ func (t *CallerValidationArgs) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
c, err := cbg.ReadCid(cr)
|
{
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("reading cid field t.Types failed: %w", err)
|
c, err := cbg.ReadCid(cr)
|
||||||
|
if err != nil {
|
||||||
|
return xerrors.Errorf("failed to read cid field t.Types[i]: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Types[i] = c
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
t.Types[i] = c
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
@ -746,7 +789,7 @@ func (t *MutateStateArgs) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Value))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Value))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.Value)); err != nil {
|
if _, err := cw.WriteString(string(t.Value)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -857,7 +900,7 @@ func (t *AbortWithArgs) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Message))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Message))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.Message)); err != nil {
|
if _, err := cw.WriteString(string(t.Message)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4213,6 +4213,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1610612736,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 10737418240,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 32212254720,
|
||||||
|
"MaxMemory": 103079215104,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 34359738368,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 64424509440,
|
||||||
|
"MaxMemory": 128849018880,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 68719476736,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1073741824,
|
"MinMemory": 1073741824,
|
||||||
"MaxMemory": 1610612736,
|
"MaxMemory": 1610612736,
|
||||||
@ -4305,6 +4350,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 10737418240,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 34359738368,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 68719476736,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 2048,
|
"MinMemory": 2048,
|
||||||
"MaxMemory": 2048,
|
"MaxMemory": 2048,
|
||||||
@ -4397,6 +4487,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 4294967296,
|
||||||
|
"MaxMemory": 4294967296,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 8589934592,
|
||||||
|
"MaxMemory": 8589934592,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1073741824,
|
"MinMemory": 1073741824,
|
||||||
"MaxMemory": 1073741824,
|
"MaxMemory": 1073741824,
|
||||||
@ -4489,6 +4624,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1073741824,
|
"MinMemory": 1073741824,
|
||||||
"MaxMemory": 1073741824,
|
"MaxMemory": 1073741824,
|
||||||
@ -4581,6 +4761,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1610612736,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 10737418240,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 32212254720,
|
||||||
|
"MaxMemory": 161061273600,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 34359738368,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 64424509440,
|
||||||
|
"MaxMemory": 204010946560,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 68719476736,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1073741824,
|
"MinMemory": 1073741824,
|
||||||
"MaxMemory": 1610612736,
|
"MaxMemory": 1610612736,
|
||||||
@ -4673,6 +4898,51 @@ Response:
|
|||||||
"BaseMinMemory": 1073741824,
|
"BaseMinMemory": 1073741824,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 4294967296,
|
||||||
|
"MaxMemory": 4294967296,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 4294967296,
|
||||||
|
"MaxMemory": 4294967296,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 4294967296,
|
||||||
|
"MaxMemory": 4294967296,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 4294967296,
|
||||||
|
"MaxMemory": 4294967296,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 4294967296,
|
||||||
|
"MaxMemory": 4294967296,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 4294967296,
|
"MinMemory": 4294967296,
|
||||||
"MaxMemory": 4294967296,
|
"MaxMemory": 4294967296,
|
||||||
@ -4765,6 +5035,51 @@ Response:
|
|||||||
"BaseMinMemory": 0,
|
"BaseMinMemory": 0,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 1048576,
|
||||||
|
"MaxMemory": 1048576,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 0,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 1048576,
|
||||||
|
"MaxMemory": 1048576,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 0,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1048576,
|
||||||
|
"MaxMemory": 1048576,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 0,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 1048576,
|
||||||
|
"MaxMemory": 1048576,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 0,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 1048576,
|
||||||
|
"MaxMemory": 1048576,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 0,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1048576,
|
"MinMemory": 1048576,
|
||||||
"MaxMemory": 1048576,
|
"MaxMemory": 1048576,
|
||||||
@ -4857,6 +5172,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 805306368,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1048576,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 60129542144,
|
||||||
|
"MaxMemory": 68719476736,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 10485760,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 120259084288,
|
||||||
|
"MaxMemory": 137438953472,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 10485760,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 805306368,
|
"MinMemory": 805306368,
|
||||||
"MaxMemory": 1073741824,
|
"MaxMemory": 1073741824,
|
||||||
@ -4949,6 +5309,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1610612736,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 16106127360,
|
||||||
|
"MaxMemory": 16106127360,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 32212254720,
|
||||||
|
"MaxMemory": 32212254720,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1073741824,
|
"MinMemory": 1073741824,
|
||||||
"MaxMemory": 1610612736,
|
"MaxMemory": 1610612736,
|
||||||
@ -5041,6 +5446,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1073741824,
|
"MinMemory": 1073741824,
|
||||||
"MaxMemory": 1073741824,
|
"MaxMemory": 1073741824,
|
||||||
@ -5133,6 +5583,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1610612736,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 10737418240,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 32212254720,
|
||||||
|
"MaxMemory": 161061273600,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 34359738368,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 64424509440,
|
||||||
|
"MaxMemory": 204010946560,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 68719476736,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1073741824,
|
"MinMemory": 1073741824,
|
||||||
"MaxMemory": 1610612736,
|
"MaxMemory": 1610612736,
|
||||||
@ -5225,6 +5720,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 4294967296,
|
||||||
|
"MaxMemory": 4294967296,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 8589934592,
|
||||||
|
"MaxMemory": 8589934592,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1073741824,
|
"MinMemory": 1073741824,
|
||||||
"MaxMemory": 1073741824,
|
"MaxMemory": 1073741824,
|
||||||
@ -5317,6 +5857,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 4294967296,
|
||||||
|
"MaxMemory": 4294967296,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 8589934592,
|
||||||
|
"MaxMemory": 8589934592,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1073741824,
|
"MinMemory": 1073741824,
|
||||||
"MaxMemory": 1073741824,
|
"MaxMemory": 1073741824,
|
||||||
@ -5409,6 +5994,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 805306368,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1048576,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 60129542144,
|
||||||
|
"MaxMemory": 68719476736,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 10485760,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 120259084288,
|
||||||
|
"MaxMemory": 137438953472,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 10485760,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 805306368,
|
"MinMemory": 805306368,
|
||||||
"MaxMemory": 1073741824,
|
"MaxMemory": 1073741824,
|
||||||
|
@ -138,6 +138,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1610612736,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 10737418240,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 32212254720,
|
||||||
|
"MaxMemory": 103079215104,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 34359738368,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 64424509440,
|
||||||
|
"MaxMemory": 128849018880,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 68719476736,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1073741824,
|
"MinMemory": 1073741824,
|
||||||
"MaxMemory": 1610612736,
|
"MaxMemory": 1610612736,
|
||||||
@ -230,6 +275,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 10737418240,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 34359738368,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 68719476736,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 2048,
|
"MinMemory": 2048,
|
||||||
"MaxMemory": 2048,
|
"MaxMemory": 2048,
|
||||||
@ -322,6 +412,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 4294967296,
|
||||||
|
"MaxMemory": 4294967296,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 8589934592,
|
||||||
|
"MaxMemory": 8589934592,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1073741824,
|
"MinMemory": 1073741824,
|
||||||
"MaxMemory": 1073741824,
|
"MaxMemory": 1073741824,
|
||||||
@ -414,6 +549,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1073741824,
|
"MinMemory": 1073741824,
|
||||||
"MaxMemory": 1073741824,
|
"MaxMemory": 1073741824,
|
||||||
@ -506,6 +686,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1610612736,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 10737418240,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 32212254720,
|
||||||
|
"MaxMemory": 161061273600,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 34359738368,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 64424509440,
|
||||||
|
"MaxMemory": 204010946560,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 68719476736,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1073741824,
|
"MinMemory": 1073741824,
|
||||||
"MaxMemory": 1610612736,
|
"MaxMemory": 1610612736,
|
||||||
@ -598,6 +823,51 @@ Response:
|
|||||||
"BaseMinMemory": 1073741824,
|
"BaseMinMemory": 1073741824,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 4294967296,
|
||||||
|
"MaxMemory": 4294967296,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 4294967296,
|
||||||
|
"MaxMemory": 4294967296,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 4294967296,
|
||||||
|
"MaxMemory": 4294967296,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 4294967296,
|
||||||
|
"MaxMemory": 4294967296,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 4294967296,
|
||||||
|
"MaxMemory": 4294967296,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 4294967296,
|
"MinMemory": 4294967296,
|
||||||
"MaxMemory": 4294967296,
|
"MaxMemory": 4294967296,
|
||||||
@ -690,6 +960,51 @@ Response:
|
|||||||
"BaseMinMemory": 0,
|
"BaseMinMemory": 0,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 1048576,
|
||||||
|
"MaxMemory": 1048576,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 0,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 1048576,
|
||||||
|
"MaxMemory": 1048576,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 0,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1048576,
|
||||||
|
"MaxMemory": 1048576,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 0,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 1048576,
|
||||||
|
"MaxMemory": 1048576,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 0,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 1048576,
|
||||||
|
"MaxMemory": 1048576,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 0,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1048576,
|
"MinMemory": 1048576,
|
||||||
"MaxMemory": 1048576,
|
"MaxMemory": 1048576,
|
||||||
@ -782,6 +1097,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 805306368,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1048576,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 60129542144,
|
||||||
|
"MaxMemory": 68719476736,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 10485760,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 120259084288,
|
||||||
|
"MaxMemory": 137438953472,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 10485760,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 805306368,
|
"MinMemory": 805306368,
|
||||||
"MaxMemory": 1073741824,
|
"MaxMemory": 1073741824,
|
||||||
@ -874,6 +1234,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1610612736,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 16106127360,
|
||||||
|
"MaxMemory": 16106127360,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 32212254720,
|
||||||
|
"MaxMemory": 32212254720,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1073741824,
|
"MinMemory": 1073741824,
|
||||||
"MaxMemory": 1610612736,
|
"MaxMemory": 1610612736,
|
||||||
@ -966,6 +1371,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 0,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1073741824,
|
"MinMemory": 1073741824,
|
||||||
"MaxMemory": 1073741824,
|
"MaxMemory": 1073741824,
|
||||||
@ -1058,6 +1508,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1610612736,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 10737418240,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 32212254720,
|
||||||
|
"MaxMemory": 161061273600,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 34359738368,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 64424509440,
|
||||||
|
"MaxMemory": 204010946560,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": -1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 68719476736,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1073741824,
|
"MinMemory": 1073741824,
|
||||||
"MaxMemory": 1610612736,
|
"MaxMemory": 1610612736,
|
||||||
@ -1150,6 +1645,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 4294967296,
|
||||||
|
"MaxMemory": 4294967296,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 8589934592,
|
||||||
|
"MaxMemory": 8589934592,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1073741824,
|
"MinMemory": 1073741824,
|
||||||
"MaxMemory": 1073741824,
|
"MaxMemory": 1073741824,
|
||||||
@ -1242,6 +1782,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 1073741824,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 4294967296,
|
||||||
|
"MaxMemory": 4294967296,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 8589934592,
|
||||||
|
"MaxMemory": 8589934592,
|
||||||
|
"GPUUtilization": 1,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 6,
|
||||||
|
"BaseMinMemory": 1073741824,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 1073741824,
|
"MinMemory": 1073741824,
|
||||||
"MaxMemory": 1073741824,
|
"MaxMemory": 1073741824,
|
||||||
@ -1334,6 +1919,51 @@ Response:
|
|||||||
"BaseMinMemory": 8388608,
|
"BaseMinMemory": 8388608,
|
||||||
"MaxConcurrent": 0
|
"MaxConcurrent": 0
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"MinMemory": 2048,
|
||||||
|
"MaxMemory": 2048,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 2048,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"MinMemory": 8388608,
|
||||||
|
"MaxMemory": 8388608,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 8388608,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"MinMemory": 805306368,
|
||||||
|
"MaxMemory": 1073741824,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 1048576,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"13": {
|
||||||
|
"MinMemory": 60129542144,
|
||||||
|
"MaxMemory": 68719476736,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 10485760,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
|
"14": {
|
||||||
|
"MinMemory": 120259084288,
|
||||||
|
"MaxMemory": 137438953472,
|
||||||
|
"GPUUtilization": 0,
|
||||||
|
"MaxParallelism": 1,
|
||||||
|
"MaxParallelismGPU": 0,
|
||||||
|
"BaseMinMemory": 10485760,
|
||||||
|
"MaxConcurrent": 0
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"MinMemory": 805306368,
|
"MinMemory": 805306368,
|
||||||
"MaxMemory": 1073741824,
|
"MaxMemory": 1073741824,
|
||||||
|
@ -223,6 +223,7 @@ COMMANDS:
|
|||||||
propose-change-worker Propose a worker address change
|
propose-change-worker Propose a worker address change
|
||||||
confirm-change-worker Confirm a worker address change
|
confirm-change-worker Confirm a worker address change
|
||||||
compact-allocated compact allocated sectors bitfield
|
compact-allocated compact allocated sectors bitfield
|
||||||
|
move-partitions move deadline of specified partitions from one to another
|
||||||
propose-change-beneficiary Propose a beneficiary address change
|
propose-change-beneficiary Propose a beneficiary address change
|
||||||
confirm-change-beneficiary Confirm a beneficiary address change
|
confirm-change-beneficiary Confirm a beneficiary address change
|
||||||
help, h Shows a list of commands or help for one command
|
help, h Shows a list of commands or help for one command
|
||||||
@ -366,12 +367,28 @@ USAGE:
|
|||||||
lotus-miner actor compact-allocated [command options] [arguments...]
|
lotus-miner actor compact-allocated [command options] [arguments...]
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
--mask-last-offset value Mask sector IDs from 0 to 'higest_allocated - offset' (default: 0)
|
--mask-last-offset value Mask sector IDs from 0 to 'highest_allocated - offset' (default: 0)
|
||||||
--mask-upto-n value Mask sector IDs from 0 to 'n' (default: 0)
|
--mask-upto-n value Mask sector IDs from 0 to 'n' (default: 0)
|
||||||
--really-do-it Actually send transaction performing the action (default: false)
|
--really-do-it Actually send transaction performing the action (default: false)
|
||||||
--help, -h show help
|
--help, -h show help
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### lotus-miner actor move-partitions
|
||||||
|
```
|
||||||
|
NAME:
|
||||||
|
lotus-miner actor move-partitions - move deadline of specified partitions from one to another
|
||||||
|
|
||||||
|
USAGE:
|
||||||
|
lotus-miner actor move-partitions [command options] [arguments...]
|
||||||
|
|
||||||
|
OPTIONS:
|
||||||
|
--partition-indices value [ --partition-indices value ] Indices of partitions to update, separated by comma
|
||||||
|
--orig-deadline value Deadline to move partition from (default: 0)
|
||||||
|
--dest-deadline value Deadline to move partition to (default: 0)
|
||||||
|
--really-do-it Actually send transaction performing the action (default: false)
|
||||||
|
--help, -h show help
|
||||||
|
```
|
||||||
|
|
||||||
### lotus-miner actor propose-change-beneficiary
|
### lotus-miner actor propose-change-beneficiary
|
||||||
```
|
```
|
||||||
NAME:
|
NAME:
|
||||||
|
@ -427,13 +427,10 @@
|
|||||||
# env var: LOTUS_PROVING_DISABLEWDPOSTPRECHECKS
|
# env var: LOTUS_PROVING_DISABLEWDPOSTPRECHECKS
|
||||||
#DisableWDPoStPreChecks = false
|
#DisableWDPoStPreChecks = false
|
||||||
|
|
||||||
# Maximum number of partitions to prove in a single SubmitWindowPoSt messace. 0 = network limit (10 in nv16)
|
# Maximum number of partitions to prove in a single SubmitWindowPoSt messace. 0 = network limit (3 in nv21)
|
||||||
#
|
#
|
||||||
# A single partition may contain up to 2349 32GiB sectors, or 2300 64GiB sectors.
|
# A single partition may contain up to 2349 32GiB sectors, or 2300 64GiB sectors.
|
||||||
#
|
# //
|
||||||
# The maximum number of sectors which can be proven in a single PoSt message is 25000 in network version 16, which
|
|
||||||
# means that a single message can prove at most 10 partitions
|
|
||||||
#
|
|
||||||
# Note that setting this value lower may result in less efficient gas use - more messages will be sent,
|
# Note that setting this value lower may result in less efficient gas use - more messages will be sent,
|
||||||
# to prove each deadline, resulting in more total gas use (but each message will have lower gas limit)
|
# to prove each deadline, resulting in more total gas use (but each message will have lower gas limit)
|
||||||
#
|
#
|
||||||
@ -523,7 +520,7 @@
|
|||||||
|
|
||||||
# CommittedCapacitySectorLifetime is the duration a Committed Capacity (CC) sector will
|
# CommittedCapacitySectorLifetime is the duration a Committed Capacity (CC) sector will
|
||||||
# live before it must be extended or converted into sector containing deals before it is
|
# live before it must be extended or converted into sector containing deals before it is
|
||||||
# terminated. Value must be between 180-540 days inclusive
|
# terminated. Value must be between 180-1278 days (1278 in nv21, 540 before nv21).
|
||||||
#
|
#
|
||||||
# type: Duration
|
# type: Duration
|
||||||
# env var: LOTUS_SEALING_COMMITTEDCAPACITYSECTORLIFETIME
|
# env var: LOTUS_SEALING_COMMITTEDCAPACITYSECTORLIFETIME
|
||||||
@ -666,6 +663,12 @@
|
|||||||
# env var: LOTUS_SEALING_TERMINATEBATCHWAIT
|
# env var: LOTUS_SEALING_TERMINATEBATCHWAIT
|
||||||
#TerminateBatchWait = "5m0s"
|
#TerminateBatchWait = "5m0s"
|
||||||
|
|
||||||
|
# UseSyntheticPoRep, when set to true, will reduce the amount of cache data held on disk after the completion of PreCommit 2 to 11GiB.
|
||||||
|
#
|
||||||
|
# type: bool
|
||||||
|
# env var: LOTUS_SEALING_USESYNTHETICPOREP
|
||||||
|
#UseSyntheticPoRep = false
|
||||||
|
|
||||||
|
|
||||||
[Storage]
|
[Storage]
|
||||||
# type: int
|
# type: int
|
||||||
|
2
extern/filecoin-ffi
vendored
2
extern/filecoin-ffi
vendored
@ -1 +1 @@
|
|||||||
Subproject commit bf5edd551d23901fa565aac4ce94433afe0c278e
|
Subproject commit 441fa8e61189dc32c2960c1f8d8ba56269f20366
|
4
go.mod
4
go.mod
@ -45,7 +45,7 @@ require (
|
|||||||
github.com/filecoin-project/go-jsonrpc v0.3.1
|
github.com/filecoin-project/go-jsonrpc v0.3.1
|
||||||
github.com/filecoin-project/go-padreader v0.0.1
|
github.com/filecoin-project/go-padreader v0.0.1
|
||||||
github.com/filecoin-project/go-paramfetch v0.0.4
|
github.com/filecoin-project/go-paramfetch v0.0.4
|
||||||
github.com/filecoin-project/go-state-types v0.12.1
|
github.com/filecoin-project/go-state-types v0.12.4
|
||||||
github.com/filecoin-project/go-statemachine v1.0.3
|
github.com/filecoin-project/go-statemachine v1.0.3
|
||||||
github.com/filecoin-project/go-statestore v0.2.0
|
github.com/filecoin-project/go-statestore v0.2.0
|
||||||
github.com/filecoin-project/go-storedcounter v0.1.0
|
github.com/filecoin-project/go-storedcounter v0.1.0
|
||||||
@ -138,7 +138,7 @@ require (
|
|||||||
github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7
|
github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7
|
||||||
github.com/urfave/cli/v2 v2.25.5
|
github.com/urfave/cli/v2 v2.25.5
|
||||||
github.com/whyrusleeping/bencher v0.0.0-20190829221104-bb6607aa8bba
|
github.com/whyrusleeping/bencher v0.0.0-20190829221104-bb6607aa8bba
|
||||||
github.com/whyrusleeping/cbor-gen v0.0.0-20230126041949-52956bd4c9aa
|
github.com/whyrusleeping/cbor-gen v0.0.0-20230923211252-36a87e1ba72f
|
||||||
github.com/whyrusleeping/ledger-filecoin-go v0.9.1-0.20201010031517-c3dcc1bddce4
|
github.com/whyrusleeping/ledger-filecoin-go v0.9.1-0.20201010031517-c3dcc1bddce4
|
||||||
github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7
|
github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7
|
||||||
github.com/xeipuuv/gojsonschema v1.2.0
|
github.com/xeipuuv/gojsonschema v1.2.0
|
||||||
|
11
go.sum
11
go.sum
@ -337,9 +337,9 @@ github.com/filecoin-project/go-state-types v0.0.0-20201102161440-c8033295a1fc/go
|
|||||||
github.com/filecoin-project/go-state-types v0.1.0/go.mod h1:ezYnPf0bNkTsDibL/psSz5dy4B5awOJ/E7P2Saeep8g=
|
github.com/filecoin-project/go-state-types v0.1.0/go.mod h1:ezYnPf0bNkTsDibL/psSz5dy4B5awOJ/E7P2Saeep8g=
|
||||||
github.com/filecoin-project/go-state-types v0.1.6/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
|
github.com/filecoin-project/go-state-types v0.1.6/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
|
||||||
github.com/filecoin-project/go-state-types v0.1.10/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
|
github.com/filecoin-project/go-state-types v0.1.10/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
|
||||||
github.com/filecoin-project/go-state-types v0.11.1/go.mod h1:SyNPwTsU7I22gL2r0OAPcImvLoTVfgRwdK/Y5rR1zz8=
|
github.com/filecoin-project/go-state-types v0.11.2-0.20230712101859-8f37624fa540/go.mod h1:SyNPwTsU7I22gL2r0OAPcImvLoTVfgRwdK/Y5rR1zz8=
|
||||||
github.com/filecoin-project/go-state-types v0.12.1 h1:/1ip/jXIP4QzWd3hlaQ7RGp1DHKKYG3+NOhd/r08UJY=
|
github.com/filecoin-project/go-state-types v0.12.4 h1:F1yQRCgFGvg+UmBGWxskHcvNswjh061Ok/kOk0OWhQY=
|
||||||
github.com/filecoin-project/go-state-types v0.12.1/go.mod h1:KOBGyvCalT8uHBS7KSKOVbjsilD90bBZHgLAqrzz6gU=
|
github.com/filecoin-project/go-state-types v0.12.4/go.mod h1:iJTqGdWDvzXhuVf64Lw0hzt4TIoitMo0VgHdxdjNDZI=
|
||||||
github.com/filecoin-project/go-statemachine v0.0.0-20200925024713-05bd7c71fbfe/go.mod h1:FGwQgZAt2Gh5mjlwJUlVB62JeYdo+if0xWxSEfBD9ig=
|
github.com/filecoin-project/go-statemachine v0.0.0-20200925024713-05bd7c71fbfe/go.mod h1:FGwQgZAt2Gh5mjlwJUlVB62JeYdo+if0xWxSEfBD9ig=
|
||||||
github.com/filecoin-project/go-statemachine v1.0.3 h1:N07o6alys+V1tNoSTi4WuuoeNC4erS/6jE74+NsgQuk=
|
github.com/filecoin-project/go-statemachine v1.0.3 h1:N07o6alys+V1tNoSTi4WuuoeNC4erS/6jE74+NsgQuk=
|
||||||
github.com/filecoin-project/go-statemachine v1.0.3/go.mod h1:jZdXXiHa61n4NmgWFG4w8tnqgvZVHYbJ3yW7+y8bF54=
|
github.com/filecoin-project/go-statemachine v1.0.3/go.mod h1:jZdXXiHa61n4NmgWFG4w8tnqgvZVHYbJ3yW7+y8bF54=
|
||||||
@ -1637,8 +1637,8 @@ github.com/whyrusleeping/cbor-gen v0.0.0-20200826160007-0b9f6c5fb163/go.mod h1:f
|
|||||||
github.com/whyrusleeping/cbor-gen v0.0.0-20210118024343-169e9d70c0c2/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ=
|
github.com/whyrusleeping/cbor-gen v0.0.0-20210118024343-169e9d70c0c2/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ=
|
||||||
github.com/whyrusleeping/cbor-gen v0.0.0-20210303213153-67a261a1d291/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ=
|
github.com/whyrusleeping/cbor-gen v0.0.0-20210303213153-67a261a1d291/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ=
|
||||||
github.com/whyrusleeping/cbor-gen v0.0.0-20220323183124-98fa8256a799/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ=
|
github.com/whyrusleeping/cbor-gen v0.0.0-20220323183124-98fa8256a799/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ=
|
||||||
github.com/whyrusleeping/cbor-gen v0.0.0-20230126041949-52956bd4c9aa h1:EyA027ZAkuaCLoxVX4r1TZMPy1d31fM6hbfQ4OU4I5o=
|
github.com/whyrusleeping/cbor-gen v0.0.0-20230923211252-36a87e1ba72f h1:SBuSxXJL0/ZJMtTxbXZgHZkThl9dNrzyaNhlyaqscRo=
|
||||||
github.com/whyrusleeping/cbor-gen v0.0.0-20230126041949-52956bd4c9aa/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ=
|
github.com/whyrusleeping/cbor-gen v0.0.0-20230923211252-36a87e1ba72f/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ=
|
||||||
github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f h1:jQa4QT2UP9WYv2nzyawpKMOCl+Z/jW7djv2/J50lj9E=
|
github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f h1:jQa4QT2UP9WYv2nzyawpKMOCl+Z/jW7djv2/J50lj9E=
|
||||||
github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f/go.mod h1:p9UJB6dDgdPgMJZs7UjUOdulKyRr9fqkS+6JKAInPy8=
|
github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f/go.mod h1:p9UJB6dDgdPgMJZs7UjUOdulKyRr9fqkS+6JKAInPy8=
|
||||||
github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 h1:EKhdznlJHPMoKr0XTrX+IlJs1LH3lyx2nfr1dOlZ79k=
|
github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 h1:EKhdznlJHPMoKr0XTrX+IlJs1LH3lyx2nfr1dOlZ79k=
|
||||||
@ -2265,6 +2265,7 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
|||||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
|
gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
|
||||||
|
@ -618,9 +618,9 @@ func TestFEVMRecursiveActorCall(t *testing.T) {
|
|||||||
t.Run("n=251,r=32", testN(251, 32, exitcode.Ok))
|
t.Run("n=251,r=32", testN(251, 32, exitcode.Ok))
|
||||||
|
|
||||||
t.Run("n=0,r=252", testN(0, 252, exitcode.Ok))
|
t.Run("n=0,r=252", testN(0, 252, exitcode.Ok))
|
||||||
t.Run("n=251,r=166", testN(251, 166, exitcode.Ok))
|
t.Run("n=251,r=164", testN(251, 164, exitcode.Ok))
|
||||||
|
|
||||||
t.Run("n=0,r=253-fails", testN(0, 254, exitcode.ExitCode(33))) // 33 means transaction reverted
|
t.Run("n=0,r=255-fails", testN(0, 255, exitcode.ExitCode(33))) // 33 means transaction reverted
|
||||||
t.Run("n=251,r=167-fails", testN(251, 167, exitcode.ExitCode(33)))
|
t.Run("n=251,r=167-fails", testN(251, 167, exitcode.ExitCode(33)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -260,7 +260,7 @@ func (n *Ensemble) MinerEnroll(minerNode *TestMiner, full *TestFullNode, opts ..
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Will use 2KiB sectors by default (default value of sectorSize).
|
// Will use 2KiB sectors by default (default value of sectorSize).
|
||||||
proofType, err := miner.SealProofTypeFromSectorSize(options.sectorSize, n.genesis.version)
|
proofType, err := miner.SealProofTypeFromSectorSize(options.sectorSize, n.genesis.version, false)
|
||||||
require.NoError(n.t, err)
|
require.NoError(n.t, err)
|
||||||
|
|
||||||
// Create the preseal commitment.
|
// Create the preseal commitment.
|
||||||
|
@ -34,6 +34,7 @@ import (
|
|||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/datacap"
|
"github.com/filecoin-project/lotus/chain/actors/builtin/datacap"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/market"
|
"github.com/filecoin-project/lotus/chain/actors/builtin/market"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
|
"github.com/filecoin-project/lotus/chain/actors/builtin/system"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
"github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
|
||||||
"github.com/filecoin-project/lotus/chain/consensus/filcns"
|
"github.com/filecoin-project/lotus/chain/consensus/filcns"
|
||||||
"github.com/filecoin-project/lotus/chain/state"
|
"github.com/filecoin-project/lotus/chain/state"
|
||||||
@ -301,7 +302,7 @@ func TestMigrationNV17(t *testing.T) {
|
|||||||
minerInfo, err := testClient.StateMinerInfo(ctx, testMiner.ActorAddr, types.EmptyTSK)
|
minerInfo, err := testClient.StateMinerInfo(ctx, testMiner.ActorAddr, types.EmptyTSK)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
spt, err := miner.SealProofTypeFromSectorSize(minerInfo.SectorSize, network.Version17)
|
spt, err := miner.SealProofTypeFromSectorSize(minerInfo.SectorSize, network.Version17, false)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
preCommitParams := miner9.PreCommitSectorParams{
|
preCommitParams := miner9.PreCommitSectorParams{
|
||||||
@ -762,3 +763,68 @@ waitForProof20:
|
|||||||
require.Equal(t, v1proof, minerInfo.WindowPoStProofType)
|
require.Equal(t, v1proof, minerInfo.WindowPoStProofType)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestMigrationNV21(t *testing.T) {
|
||||||
|
kit.QuietMiningLogs()
|
||||||
|
|
||||||
|
nv21epoch := abi.ChainEpoch(100)
|
||||||
|
testClient, _, ens := kit.EnsembleMinimal(t, kit.MockProofs(),
|
||||||
|
kit.UpgradeSchedule(stmgr.Upgrade{
|
||||||
|
Network: network.Version20,
|
||||||
|
Height: -1,
|
||||||
|
}, stmgr.Upgrade{
|
||||||
|
Network: network.Version21,
|
||||||
|
Height: nv21epoch,
|
||||||
|
Migration: filcns.UpgradeActorsV12,
|
||||||
|
},
|
||||||
|
))
|
||||||
|
|
||||||
|
ens.InterconnectAll().BeginMining(10 * time.Millisecond)
|
||||||
|
|
||||||
|
clientApi := testClient.FullNode.(*impl.FullNodeAPI)
|
||||||
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
testClient.WaitTillChain(ctx, kit.HeightAtLeast(nv21epoch+5))
|
||||||
|
|
||||||
|
// Now that we have upgraded, we need to verify:
|
||||||
|
// - Sector info changes executed successfully
|
||||||
|
// - Direct data onboarding correct
|
||||||
|
|
||||||
|
bs := blockstore.NewAPIBlockstore(testClient)
|
||||||
|
ctxStore := gstStore.WrapBlockStore(ctx, bs)
|
||||||
|
|
||||||
|
currTs, err := clientApi.ChainHead(ctx)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
newStateTree, err := state.LoadStateTree(ctxStore, currTs.Blocks()[0].ParentStateRoot)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
require.Equal(t, types.StateTreeVersion5, newStateTree.Version())
|
||||||
|
|
||||||
|
// check the system actor
|
||||||
|
systemAct, err := newStateTree.GetActor(builtin.SystemActorAddr)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
systemCode, ok := actors.GetActorCodeID(actorstypes.Version12, manifest.SystemKey)
|
||||||
|
require.True(t, ok)
|
||||||
|
|
||||||
|
require.Equal(t, systemCode, systemAct.Code)
|
||||||
|
|
||||||
|
systemSt, err := system.Load(ctxStore, systemAct)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
manifest12Cid, ok := actors.GetManifest(actorstypes.Version12)
|
||||||
|
require.True(t, ok)
|
||||||
|
|
||||||
|
manifest12, err := actors.LoadManifest(ctx, manifest12Cid, ctxStore)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, manifest12.Data, systemSt.GetBuiltinActors())
|
||||||
|
|
||||||
|
// start post migration checks
|
||||||
|
|
||||||
|
//todo @aayush sector info changes
|
||||||
|
|
||||||
|
//todo @zen Direct data onboarding tests
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -88,7 +88,7 @@ func TestSectorImport(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
ver, err := client.StateNetworkVersion(ctx, types.EmptyTSK)
|
ver, err := client.StateNetworkVersion(ctx, types.EmptyTSK)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
spt, err := lminer.PreferredSealProofTypeFromWindowPoStType(ver, mi.WindowPoStProofType)
|
spt, err := lminer.PreferredSealProofTypeFromWindowPoStType(ver, mi.WindowPoStProofType, false)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
ssize, err := spt.SectorSize()
|
ssize, err := spt.SectorSize()
|
||||||
|
@ -63,7 +63,7 @@ func TestSectorImportAfterPC2(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
ver, err := client.StateNetworkVersion(ctx, types.EmptyTSK)
|
ver, err := client.StateNetworkVersion(ctx, types.EmptyTSK)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
spt, err := lminer.PreferredSealProofTypeFromWindowPoStType(ver, mi.WindowPoStProofType)
|
spt, err := lminer.PreferredSealProofTypeFromWindowPoStType(ver, mi.WindowPoStProofType, false)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
ssize, err := spt.SectorSize()
|
ssize, err := spt.SectorSize()
|
||||||
|
@ -18,6 +18,7 @@ import (
|
|||||||
"github.com/filecoin-project/lotus/build"
|
"github.com/filecoin-project/lotus/build"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/lotus/itests/kit"
|
"github.com/filecoin-project/lotus/itests/kit"
|
||||||
|
"github.com/filecoin-project/lotus/node/config"
|
||||||
"github.com/filecoin-project/lotus/node/impl"
|
"github.com/filecoin-project/lotus/node/impl"
|
||||||
sealing "github.com/filecoin-project/lotus/storage/pipeline"
|
sealing "github.com/filecoin-project/lotus/storage/pipeline"
|
||||||
)
|
)
|
||||||
@ -195,3 +196,30 @@ func TestPledgeMaxBatching(t *testing.T) {
|
|||||||
|
|
||||||
t.Run("Force max prove commit aggregate size", runTest)
|
t.Run("Force max prove commit aggregate size", runTest)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestPledgeSynth(t *testing.T) {
|
||||||
|
kit.QuietMiningLogs()
|
||||||
|
|
||||||
|
blockTime := 50 * time.Millisecond
|
||||||
|
|
||||||
|
runTest := func(t *testing.T, nSectors int) {
|
||||||
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
_, miner, ens := kit.EnsembleMinimal(t, kit.MutateSealingConfig(func(sc *config.SealingConfig) {
|
||||||
|
sc.UseSyntheticPoRep = true
|
||||||
|
})) // no mock proofs
|
||||||
|
|
||||||
|
ens.InterconnectAll().BeginMiningMustPost(blockTime)
|
||||||
|
|
||||||
|
miner.PledgeSectors(ctx, nSectors, 0, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Run("1", func(t *testing.T) {
|
||||||
|
runTest(t, 1)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("3", func(t *testing.T) {
|
||||||
|
runTest(t, 3)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
@ -186,7 +186,10 @@ func (n *ProviderNodeAdapter) GetProofType(ctx context.Context, maddr address.Ad
|
|||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return miner.PreferredSealProofTypeFromWindowPoStType(nver, mi.WindowPoStProofType)
|
// false because this variance is not consumed.
|
||||||
|
const configWantSynthetic = false
|
||||||
|
|
||||||
|
return miner.PreferredSealProofTypeFromWindowPoStType(nver, mi.WindowPoStProofType, configWantSynthetic)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *ProviderNodeAdapter) SignBytes(ctx context.Context, signer address.Address, b []byte) (*crypto.Signature, error) {
|
func (n *ProviderNodeAdapter) SignBytes(ctx context.Context, signer address.Address, b []byte) (*crypto.Signature, error) {
|
||||||
|
@ -10,6 +10,7 @@ import (
|
|||||||
|
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
|
"github.com/filecoin-project/go-state-types/network"
|
||||||
miner5 "github.com/filecoin-project/specs-actors/v5/actors/builtin/miner"
|
miner5 "github.com/filecoin-project/specs-actors/v5/actors/builtin/miner"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin"
|
"github.com/filecoin-project/lotus/chain/actors/builtin"
|
||||||
@ -122,6 +123,8 @@ func DefaultFullNode() *FullNode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func DefaultStorageMiner() *StorageMiner {
|
func DefaultStorageMiner() *StorageMiner {
|
||||||
|
// TODO: Should we increase this to nv21, which would push it to 3.5 years?
|
||||||
|
maxSectorExtentsion, _ := policy.GetMaxSectorExpirationExtension(network.Version20)
|
||||||
cfg := &StorageMiner{
|
cfg := &StorageMiner{
|
||||||
Common: defCommon(),
|
Common: defCommon(),
|
||||||
|
|
||||||
@ -143,7 +146,7 @@ func DefaultStorageMiner() *StorageMiner {
|
|||||||
// XXX snap deals wait deals slack if first
|
// XXX snap deals wait deals slack if first
|
||||||
PreCommitBatchSlack: Duration(3 * time.Hour), // time buffer for forceful batch submission before sectors/deals in batch would start expiring, higher value will lower the chances for message fail due to expiration
|
PreCommitBatchSlack: Duration(3 * time.Hour), // time buffer for forceful batch submission before sectors/deals in batch would start expiring, higher value will lower the chances for message fail due to expiration
|
||||||
|
|
||||||
CommittedCapacitySectorLifetime: Duration(builtin.EpochDurationSeconds * uint64(policy.GetMaxSectorExpirationExtension()) * uint64(time.Second)),
|
CommittedCapacitySectorLifetime: Duration(builtin.EpochDurationSeconds * uint64(maxSectorExtentsion) * uint64(time.Second)),
|
||||||
|
|
||||||
AggregateCommits: true,
|
AggregateCommits: true,
|
||||||
MinCommitBatch: miner5.MinAggregatedSectors, // per FIP13, we must have at least four proofs to aggregate, where 4 is the cross over point where aggregation wins out on single provecommit gas costs
|
MinCommitBatch: miner5.MinAggregatedSectors, // per FIP13, we must have at least four proofs to aggregate, where 4 is the cross over point where aggregation wins out on single provecommit gas costs
|
||||||
@ -158,6 +161,7 @@ func DefaultStorageMiner() *StorageMiner {
|
|||||||
TerminateBatchMax: 100,
|
TerminateBatchMax: 100,
|
||||||
TerminateBatchWait: Duration(5 * time.Minute),
|
TerminateBatchWait: Duration(5 * time.Minute),
|
||||||
MaxSectorProveCommitsSubmittedPerEpoch: 20,
|
MaxSectorProveCommitsSubmittedPerEpoch: 20,
|
||||||
|
UseSyntheticPoRep: false,
|
||||||
},
|
},
|
||||||
|
|
||||||
Proving: ProvingConfig{
|
Proving: ProvingConfig{
|
||||||
|
@ -859,13 +859,10 @@ After changing this option, confirm that the new value works in your setup by in
|
|||||||
Name: "MaxPartitionsPerPoStMessage",
|
Name: "MaxPartitionsPerPoStMessage",
|
||||||
Type: "int",
|
Type: "int",
|
||||||
|
|
||||||
Comment: `Maximum number of partitions to prove in a single SubmitWindowPoSt messace. 0 = network limit (10 in nv16)
|
Comment: `Maximum number of partitions to prove in a single SubmitWindowPoSt messace. 0 = network limit (3 in nv21)
|
||||||
|
|
||||||
A single partition may contain up to 2349 32GiB sectors, or 2300 64GiB sectors.
|
A single partition may contain up to 2349 32GiB sectors, or 2300 64GiB sectors.
|
||||||
|
//
|
||||||
The maximum number of sectors which can be proven in a single PoSt message is 25000 in network version 16, which
|
|
||||||
means that a single message can prove at most 10 partitions
|
|
||||||
|
|
||||||
Note that setting this value lower may result in less efficient gas use - more messages will be sent,
|
Note that setting this value lower may result in less efficient gas use - more messages will be sent,
|
||||||
to prove each deadline, resulting in more total gas use (but each message will have lower gas limit)
|
to prove each deadline, resulting in more total gas use (but each message will have lower gas limit)
|
||||||
|
|
||||||
@ -1156,7 +1153,7 @@ required to have expiration of at least the soonest-ending deal`,
|
|||||||
|
|
||||||
Comment: `CommittedCapacitySectorLifetime is the duration a Committed Capacity (CC) sector will
|
Comment: `CommittedCapacitySectorLifetime is the duration a Committed Capacity (CC) sector will
|
||||||
live before it must be extended or converted into sector containing deals before it is
|
live before it must be extended or converted into sector containing deals before it is
|
||||||
terminated. Value must be between 180-540 days inclusive`,
|
terminated. Value must be between 180-1278 days (1278 in nv21, 540 before nv21).`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "WaitDealsDelay",
|
Name: "WaitDealsDelay",
|
||||||
@ -1301,6 +1298,12 @@ Submitting a smaller number of prove commits per epoch would reduce the possibil
|
|||||||
|
|
||||||
Comment: ``,
|
Comment: ``,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
Name: "UseSyntheticPoRep",
|
||||||
|
Type: "bool",
|
||||||
|
|
||||||
|
Comment: `UseSyntheticPoRep, when set to true, will reduce the amount of cache data held on disk after the completion of PreCommit 2 to 11GiB.`,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
"Splitstore": []DocField{
|
"Splitstore": []DocField{
|
||||||
{
|
{
|
||||||
|
@ -290,13 +290,10 @@ type ProvingConfig struct {
|
|||||||
// 'lotus-miner proving compute window-post 0'
|
// 'lotus-miner proving compute window-post 0'
|
||||||
DisableWDPoStPreChecks bool
|
DisableWDPoStPreChecks bool
|
||||||
|
|
||||||
// Maximum number of partitions to prove in a single SubmitWindowPoSt messace. 0 = network limit (10 in nv16)
|
// Maximum number of partitions to prove in a single SubmitWindowPoSt messace. 0 = network limit (3 in nv21)
|
||||||
//
|
//
|
||||||
// A single partition may contain up to 2349 32GiB sectors, or 2300 64GiB sectors.
|
// A single partition may contain up to 2349 32GiB sectors, or 2300 64GiB sectors.
|
||||||
//
|
// //
|
||||||
// The maximum number of sectors which can be proven in a single PoSt message is 25000 in network version 16, which
|
|
||||||
// means that a single message can prove at most 10 partitions
|
|
||||||
//
|
|
||||||
// Note that setting this value lower may result in less efficient gas use - more messages will be sent,
|
// Note that setting this value lower may result in less efficient gas use - more messages will be sent,
|
||||||
// to prove each deadline, resulting in more total gas use (but each message will have lower gas limit)
|
// to prove each deadline, resulting in more total gas use (but each message will have lower gas limit)
|
||||||
//
|
//
|
||||||
@ -358,7 +355,7 @@ type SealingConfig struct {
|
|||||||
|
|
||||||
// CommittedCapacitySectorLifetime is the duration a Committed Capacity (CC) sector will
|
// CommittedCapacitySectorLifetime is the duration a Committed Capacity (CC) sector will
|
||||||
// live before it must be extended or converted into sector containing deals before it is
|
// live before it must be extended or converted into sector containing deals before it is
|
||||||
// terminated. Value must be between 180-540 days inclusive
|
// terminated. Value must be between 180-1278 days (1278 in nv21, 540 before nv21).
|
||||||
CommittedCapacitySectorLifetime Duration
|
CommittedCapacitySectorLifetime Duration
|
||||||
|
|
||||||
// Period of time that a newly created sector will wait for more deals to be packed in to before it starts to seal.
|
// Period of time that a newly created sector will wait for more deals to be packed in to before it starts to seal.
|
||||||
@ -429,6 +426,9 @@ type SealingConfig struct {
|
|||||||
// todo TargetSealingSectors uint64
|
// todo TargetSealingSectors uint64
|
||||||
|
|
||||||
// todo TargetSectors - stop auto-pleding new sectors after this many sectors are sealed, default CC upgrade for deals sectors if above
|
// todo TargetSectors - stop auto-pleding new sectors after this many sectors are sealed, default CC upgrade for deals sectors if above
|
||||||
|
|
||||||
|
// UseSyntheticPoRep, when set to true, will reduce the amount of cache data held on disk after the completion of PreCommit 2 to 11GiB.
|
||||||
|
UseSyntheticPoRep bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type SealerConfig struct {
|
type SealerConfig struct {
|
||||||
|
@ -43,9 +43,11 @@ func (t *HelloMessage) MarshalCBOR(w io.Writer) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, v := range t.HeaviestTipSet {
|
for _, v := range t.HeaviestTipSet {
|
||||||
if err := cbg.WriteCid(w, v); err != nil {
|
|
||||||
return xerrors.Errorf("failed writing cid field t.HeaviestTipSet: %w", err)
|
if err := cbg.WriteCid(cw, v); err != nil {
|
||||||
|
return xerrors.Errorf("failed to write cid field v: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.HeaviestTipSetHeight (abi.ChainEpoch) (int64)
|
// t.HeaviestTipSetHeight (abi.ChainEpoch) (int64)
|
||||||
@ -116,12 +118,25 @@ func (t *HelloMessage) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
c, err := cbg.ReadCid(cr)
|
{
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("reading cid field t.HeaviestTipSet failed: %w", err)
|
c, err := cbg.ReadCid(cr)
|
||||||
|
if err != nil {
|
||||||
|
return xerrors.Errorf("failed to read cid field t.HeaviestTipSet[i]: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.HeaviestTipSet[i] = c
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
t.HeaviestTipSet[i] = c
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.HeaviestTipSetHeight (abi.ChainEpoch) (int64)
|
// t.HeaviestTipSetHeight (abi.ChainEpoch) (int64)
|
||||||
|
@ -197,7 +197,7 @@ func (a *API) dealStarter(ctx context.Context, params *api.StartDealParams, isSt
|
|||||||
return nil, xerrors.Errorf("failed to get network version: %w", err)
|
return nil, xerrors.Errorf("failed to get network version: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
st, err := miner.PreferredSealProofTypeFromWindowPoStType(networkVersion, mi.WindowPoStProofType)
|
st, err := miner.PreferredSealProofTypeFromWindowPoStType(networkVersion, mi.WindowPoStProofType, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, xerrors.Errorf("failed to get seal proof type: %w", err)
|
return nil, xerrors.Errorf("failed to get seal proof type: %w", err)
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"math"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
@ -19,8 +20,7 @@ import (
|
|||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
minertypes "github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
market12 "github.com/filecoin-project/go-state-types/builtin/v12/market"
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
|
||||||
"github.com/filecoin-project/go-state-types/cbor"
|
"github.com/filecoin-project/go-state-types/cbor"
|
||||||
"github.com/filecoin-project/go-state-types/crypto"
|
"github.com/filecoin-project/go-state-types/crypto"
|
||||||
"github.com/filecoin-project/go-state-types/dline"
|
"github.com/filecoin-project/go-state-types/dline"
|
||||||
@ -794,7 +794,7 @@ func (a *StateAPI) StateGetAllocationForPendingDeal(ctx context.Context, dealId
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if allocationId == verifregtypes.NoAllocationID {
|
if allocationId == verifreg.NoAllocationID {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -914,32 +914,31 @@ func (a *StateAPI) StateComputeDataCID(ctx context.Context, maddr address.Addres
|
|||||||
return cid.Cid{}, err
|
return cid.Cid{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var ccparams []byte
|
|
||||||
if nv < network.Version13 {
|
if nv < network.Version13 {
|
||||||
ccparams, err = actors.SerializeParams(&market2.ComputeDataCommitmentParams{
|
return a.stateComputeDataCIDv1(ctx, maddr, sectorType, deals, tsk)
|
||||||
DealIDs: deals,
|
} else if nv < network.Version21 {
|
||||||
SectorType: sectorType,
|
return a.stateComputeDataCIDv2(ctx, maddr, sectorType, deals, tsk)
|
||||||
})
|
|
||||||
} else {
|
} else {
|
||||||
ccparams, err = actors.SerializeParams(&market5.ComputeDataCommitmentParams{
|
return a.stateComputeDataCIDv3(ctx, maddr, sectorType, deals, tsk)
|
||||||
Inputs: []*market5.SectorDataSpec{
|
|
||||||
{
|
|
||||||
DealIDs: deals,
|
|
||||||
SectorType: sectorType,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *StateAPI) stateComputeDataCIDv1(ctx context.Context, maddr address.Address, sectorType abi.RegisteredSealProof, deals []abi.DealID, tsk types.TipSetKey) (cid.Cid, error) {
|
||||||
|
var err error
|
||||||
|
ccparams, err := actors.SerializeParams(&market2.ComputeDataCommitmentParams{
|
||||||
|
DealIDs: deals,
|
||||||
|
SectorType: sectorType,
|
||||||
|
})
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return cid.Undef, xerrors.Errorf("computing params for ComputeDataCommitment: %w", err)
|
return cid.Undef, xerrors.Errorf("computing params for ComputeDataCommitment: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ccmt := &types.Message{
|
ccmt := &types.Message{
|
||||||
To: market.Address,
|
To: market.Address,
|
||||||
From: maddr,
|
From: maddr,
|
||||||
Value: types.NewInt(0),
|
Value: types.NewInt(0),
|
||||||
Method: market.Methods.ComputeDataCommitment,
|
// Hard coded, because the method has since been deprecated
|
||||||
|
Method: 8,
|
||||||
Params: ccparams,
|
Params: ccparams,
|
||||||
}
|
}
|
||||||
r, err := a.StateCall(ctx, ccmt, tsk)
|
r, err := a.StateCall(ctx, ccmt, tsk)
|
||||||
@ -950,13 +949,42 @@ func (a *StateAPI) StateComputeDataCID(ctx context.Context, maddr address.Addres
|
|||||||
return cid.Undef, xerrors.Errorf("receipt for ComputeDataCommitment had exit code %d", r.MsgRct.ExitCode)
|
return cid.Undef, xerrors.Errorf("receipt for ComputeDataCommitment had exit code %d", r.MsgRct.ExitCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
if nv < network.Version13 {
|
var c cbg.CborCid
|
||||||
var c cbg.CborCid
|
if err := c.UnmarshalCBOR(bytes.NewReader(r.MsgRct.Return)); err != nil {
|
||||||
if err := c.UnmarshalCBOR(bytes.NewReader(r.MsgRct.Return)); err != nil {
|
return cid.Undef, xerrors.Errorf("failed to unmarshal CBOR to CborCid: %w", err)
|
||||||
return cid.Undef, xerrors.Errorf("failed to unmarshal CBOR to CborCid: %w", err)
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return cid.Cid(c), nil
|
return cid.Cid(c), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *StateAPI) stateComputeDataCIDv2(ctx context.Context, maddr address.Address, sectorType abi.RegisteredSealProof, deals []abi.DealID, tsk types.TipSetKey) (cid.Cid, error) {
|
||||||
|
var err error
|
||||||
|
ccparams, err := actors.SerializeParams(&market5.ComputeDataCommitmentParams{
|
||||||
|
Inputs: []*market5.SectorDataSpec{
|
||||||
|
{
|
||||||
|
DealIDs: deals,
|
||||||
|
SectorType: sectorType,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return cid.Undef, xerrors.Errorf("computing params for ComputeDataCommitment: %w", err)
|
||||||
|
}
|
||||||
|
ccmt := &types.Message{
|
||||||
|
To: market.Address,
|
||||||
|
From: maddr,
|
||||||
|
Value: types.NewInt(0),
|
||||||
|
// Hard coded, because the method has since been deprecated
|
||||||
|
Method: 8,
|
||||||
|
Params: ccparams,
|
||||||
|
}
|
||||||
|
r, err := a.StateCall(ctx, ccmt, tsk)
|
||||||
|
if err != nil {
|
||||||
|
return cid.Undef, xerrors.Errorf("calling ComputeDataCommitment: %w", err)
|
||||||
|
}
|
||||||
|
if r.MsgRct.ExitCode != 0 {
|
||||||
|
return cid.Undef, xerrors.Errorf("receipt for ComputeDataCommitment had exit code %d", r.MsgRct.ExitCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
var cr market5.ComputeDataCommitmentReturn
|
var cr market5.ComputeDataCommitmentReturn
|
||||||
@ -971,6 +999,52 @@ func (a *StateAPI) StateComputeDataCID(ctx context.Context, maddr address.Addres
|
|||||||
return cid.Cid(cr.CommDs[0]), nil
|
return cid.Cid(cr.CommDs[0]), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *StateAPI) stateComputeDataCIDv3(ctx context.Context, maddr address.Address, sectorType abi.RegisteredSealProof, deals []abi.DealID, tsk types.TipSetKey) (cid.Cid, error) {
|
||||||
|
if len(deals) == 0 {
|
||||||
|
return cid.Undef, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var err error
|
||||||
|
ccparams, err := actors.SerializeParams(&market12.VerifyDealsForActivationParams{
|
||||||
|
Sectors: []market12.SectorDeals{{
|
||||||
|
SectorType: sectorType,
|
||||||
|
SectorExpiry: math.MaxInt64,
|
||||||
|
DealIDs: deals,
|
||||||
|
}},
|
||||||
|
})
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return cid.Undef, xerrors.Errorf("computing params for VerifyDealsForActivation: %w", err)
|
||||||
|
}
|
||||||
|
ccmt := &types.Message{
|
||||||
|
To: market.Address,
|
||||||
|
From: maddr,
|
||||||
|
Value: types.NewInt(0),
|
||||||
|
Method: market.Methods.VerifyDealsForActivation,
|
||||||
|
Params: ccparams,
|
||||||
|
}
|
||||||
|
r, err := a.StateCall(ctx, ccmt, tsk)
|
||||||
|
if err != nil {
|
||||||
|
return cid.Undef, xerrors.Errorf("calling VerifyDealsForActivation: %w", err)
|
||||||
|
}
|
||||||
|
if r.MsgRct.ExitCode != 0 {
|
||||||
|
return cid.Undef, xerrors.Errorf("receipt for VerifyDealsForActivation had exit code %d", r.MsgRct.ExitCode)
|
||||||
|
}
|
||||||
|
|
||||||
|
var cr market12.VerifyDealsForActivationReturn
|
||||||
|
if err := cr.UnmarshalCBOR(bytes.NewReader(r.MsgRct.Return)); err != nil {
|
||||||
|
return cid.Undef, xerrors.Errorf("failed to unmarshal CBOR to VerifyDealsForActivationReturn: %w", err)
|
||||||
|
}
|
||||||
|
if len(cr.UnsealedCIDs) != 1 {
|
||||||
|
return cid.Undef, xerrors.Errorf("Sectors output must have 1 entry")
|
||||||
|
}
|
||||||
|
ucid := cr.UnsealedCIDs[0]
|
||||||
|
if ucid == nil {
|
||||||
|
return cid.Undef, xerrors.Errorf("computed data CID is nil")
|
||||||
|
}
|
||||||
|
return *ucid, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (a *StateAPI) StateChangedActors(ctx context.Context, old cid.Cid, new cid.Cid) (map[string]types.Actor, error) {
|
func (a *StateAPI) StateChangedActors(ctx context.Context, old cid.Cid, new cid.Cid) (map[string]types.Actor, error) {
|
||||||
store := a.Chain.ActorStore(ctx)
|
store := a.Chain.ActorStore(ctx)
|
||||||
|
|
||||||
@ -1040,7 +1114,7 @@ func (a *StateAPI) StateMinerAllocated(ctx context.Context, addr address.Address
|
|||||||
return mas.GetAllocatedSectors()
|
return mas.GetAllocatedSectors()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *StateAPI) StateSectorPreCommitInfo(ctx context.Context, maddr address.Address, n abi.SectorNumber, tsk types.TipSetKey) (*minertypes.SectorPreCommitOnChainInfo, error) {
|
func (a *StateAPI) StateSectorPreCommitInfo(ctx context.Context, maddr address.Address, n abi.SectorNumber, tsk types.TipSetKey) (*miner.SectorPreCommitOnChainInfo, error) {
|
||||||
ts, err := a.Chain.GetTipSetFromKey(ctx, tsk)
|
ts, err := a.Chain.GetTipSetFromKey(ctx, tsk)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, xerrors.Errorf("loading tipset %s: %w", tsk, err)
|
return nil, xerrors.Errorf("loading tipset %s: %w", tsk, err)
|
||||||
@ -1315,7 +1389,7 @@ func (m *StateModule) MsigGetPending(ctx context.Context, addr address.Address,
|
|||||||
var initialPledgeNum = types.NewInt(110)
|
var initialPledgeNum = types.NewInt(110)
|
||||||
var initialPledgeDen = types.NewInt(100)
|
var initialPledgeDen = types.NewInt(100)
|
||||||
|
|
||||||
func (a *StateAPI) StateMinerPreCommitDepositForPower(ctx context.Context, maddr address.Address, pci minertypes.SectorPreCommitInfo, tsk types.TipSetKey) (types.BigInt, error) {
|
func (a *StateAPI) StateMinerPreCommitDepositForPower(ctx context.Context, maddr address.Address, pci miner.SectorPreCommitInfo, tsk types.TipSetKey) (types.BigInt, error) {
|
||||||
ts, err := a.Chain.GetTipSetFromKey(ctx, tsk)
|
ts, err := a.Chain.GetTipSetFromKey(ctx, tsk)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return types.EmptyInt, xerrors.Errorf("loading tipset %s: %w", tsk, err)
|
return types.EmptyInt, xerrors.Errorf("loading tipset %s: %w", tsk, err)
|
||||||
@ -1347,7 +1421,7 @@ func (a *StateAPI) StateMinerPreCommitDepositForPower(ctx context.Context, maddr
|
|||||||
sectorWeight = builtin.QAPowerForWeight(ssize, duration, w, vw)
|
sectorWeight = builtin.QAPowerForWeight(ssize, duration, w, vw)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
sectorWeight = minertypes.QAPowerMax(ssize)
|
sectorWeight = miner.QAPowerMax(ssize)
|
||||||
}
|
}
|
||||||
|
|
||||||
var powerSmoothed builtin.FilterEstimate
|
var powerSmoothed builtin.FilterEstimate
|
||||||
@ -1379,7 +1453,7 @@ func (a *StateAPI) StateMinerPreCommitDepositForPower(ctx context.Context, maddr
|
|||||||
return types.BigDiv(types.BigMul(deposit, initialPledgeNum), initialPledgeDen), nil
|
return types.BigDiv(types.BigMul(deposit, initialPledgeNum), initialPledgeDen), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *StateAPI) StateMinerInitialPledgeCollateral(ctx context.Context, maddr address.Address, pci minertypes.SectorPreCommitInfo, tsk types.TipSetKey) (types.BigInt, error) {
|
func (a *StateAPI) StateMinerInitialPledgeCollateral(ctx context.Context, maddr address.Address, pci miner.SectorPreCommitInfo, tsk types.TipSetKey) (types.BigInt, error) {
|
||||||
// TODO: this repeats a lot of the previous function. Fix that.
|
// TODO: this repeats a lot of the previous function. Fix that.
|
||||||
ts, err := a.Chain.GetTipSetFromKey(ctx, tsk)
|
ts, err := a.Chain.GetTipSetFromKey(ctx, tsk)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -35,7 +35,6 @@ import (
|
|||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
builtintypes "github.com/filecoin-project/go-state-types/builtin"
|
builtintypes "github.com/filecoin-project/go-state-types/builtin"
|
||||||
minertypes "github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
|
||||||
"github.com/filecoin-project/go-state-types/network"
|
"github.com/filecoin-project/go-state-types/network"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/api"
|
"github.com/filecoin-project/lotus/api"
|
||||||
@ -43,6 +42,7 @@ import (
|
|||||||
"github.com/filecoin-project/lotus/build"
|
"github.com/filecoin-project/lotus/build"
|
||||||
"github.com/filecoin-project/lotus/chain/actors"
|
"github.com/filecoin-project/lotus/chain/actors"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin"
|
"github.com/filecoin-project/lotus/chain/actors/builtin"
|
||||||
|
lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/gen"
|
"github.com/filecoin-project/lotus/chain/gen"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
mktsdagstore "github.com/filecoin-project/lotus/markets/dagstore"
|
mktsdagstore "github.com/filecoin-project/lotus/markets/dagstore"
|
||||||
@ -497,7 +497,7 @@ func (sm *StorageMinerAPI) SectorReceive(ctx context.Context, meta api.RemoteSec
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sm *StorageMinerAPI) ComputeWindowPoSt(ctx context.Context, dlIdx uint64, tsk types.TipSetKey) ([]minertypes.SubmitWindowedPoStParams, error) {
|
func (sm *StorageMinerAPI) ComputeWindowPoSt(ctx context.Context, dlIdx uint64, tsk types.TipSetKey) ([]lminer.SubmitWindowedPoStParams, error) {
|
||||||
var ts *types.TipSet
|
var ts *types.TipSet
|
||||||
var err error
|
var err error
|
||||||
if tsk == types.EmptyTSK {
|
if tsk == types.EmptyTSK {
|
||||||
@ -1404,7 +1404,7 @@ func (sm *StorageMinerAPI) withdrawBalance(ctx context.Context, amount abi.Token
|
|||||||
amount = available
|
amount = available
|
||||||
}
|
}
|
||||||
|
|
||||||
params, err := actors.SerializeParams(&minertypes.WithdrawBalanceParams{
|
params, err := actors.SerializeParams(&lminer.WithdrawBalanceParams{
|
||||||
AmountRequested: amount,
|
AmountRequested: amount,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -157,7 +157,8 @@ func SealProofType(maddr dtypes.MinerAddress, fnapi v1api.FullNode) (abi.Registe
|
|||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return miner.PreferredSealProofTypeFromWindowPoStType(networkVersion, mi.WindowPoStProofType)
|
// node seal proof type does not decide whether or not we use synthetic porep
|
||||||
|
return miner.PreferredSealProofTypeFromWindowPoStType(networkVersion, mi.WindowPoStProofType, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddressSelector(addrConf *config.MinerAddressConfig) func() (*ctladdr.AddressSelector, error) {
|
func AddressSelector(addrConf *config.MinerAddressConfig) func() (*ctladdr.AddressSelector, error) {
|
||||||
@ -1016,6 +1017,7 @@ func NewSetSealConfigFunc(r repo.LockedRepo) (dtypes.SetSealingConfigFunc, error
|
|||||||
TerminateBatchMin: cfg.TerminateBatchMin,
|
TerminateBatchMin: cfg.TerminateBatchMin,
|
||||||
TerminateBatchWait: config.Duration(cfg.TerminateBatchWait),
|
TerminateBatchWait: config.Duration(cfg.TerminateBatchWait),
|
||||||
MaxSectorProveCommitsSubmittedPerEpoch: cfg.MaxSectorProveCommitsSubmittedPerEpoch,
|
MaxSectorProveCommitsSubmittedPerEpoch: cfg.MaxSectorProveCommitsSubmittedPerEpoch,
|
||||||
|
UseSyntheticPoRep: cfg.UseSyntheticPoRep,
|
||||||
}
|
}
|
||||||
c.SetSealingConfig(newCfg)
|
c.SetSealingConfig(newCfg)
|
||||||
})
|
})
|
||||||
@ -1060,6 +1062,7 @@ func ToSealingConfig(dealmakingCfg config.DealmakingConfig, sealingCfg config.Se
|
|||||||
TerminateBatchMax: sealingCfg.TerminateBatchMax,
|
TerminateBatchMax: sealingCfg.TerminateBatchMax,
|
||||||
TerminateBatchMin: sealingCfg.TerminateBatchMin,
|
TerminateBatchMin: sealingCfg.TerminateBatchMin,
|
||||||
TerminateBatchWait: time.Duration(sealingCfg.TerminateBatchWait),
|
TerminateBatchWait: time.Duration(sealingCfg.TerminateBatchWait),
|
||||||
|
UseSyntheticPoRep: sealingCfg.UseSyntheticPoRep,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ func (t *VoucherInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Proof"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Proof"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Proof")); err != nil {
|
if _, err := cw.WriteString(string("Proof")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ func (t *VoucherInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Voucher"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Voucher"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Voucher")); err != nil {
|
if _, err := cw.WriteString(string("Voucher")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,7 +81,7 @@ func (t *VoucherInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Submitted"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Submitted"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Submitted")); err != nil {
|
if _, err := cw.WriteString(string("Submitted")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -218,7 +218,7 @@ func (t *ChannelInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Amount"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Amount"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Amount")); err != nil {
|
if _, err := cw.WriteString(string("Amount")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -234,7 +234,7 @@ func (t *ChannelInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Target"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Target"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Target")); err != nil {
|
if _, err := cw.WriteString(string("Target")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -250,7 +250,7 @@ func (t *ChannelInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Channel"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Channel"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Channel")); err != nil {
|
if _, err := cw.WriteString(string("Channel")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -266,7 +266,7 @@ func (t *ChannelInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Control"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Control"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Control")); err != nil {
|
if _, err := cw.WriteString(string("Control")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -282,7 +282,7 @@ func (t *ChannelInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("NextLane"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("NextLane"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("NextLane")); err != nil {
|
if _, err := cw.WriteString(string("NextLane")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -298,7 +298,7 @@ func (t *ChannelInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Settling"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Settling"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Settling")); err != nil {
|
if _, err := cw.WriteString(string("Settling")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -314,7 +314,7 @@ func (t *ChannelInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Vouchers"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Vouchers"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Vouchers")); err != nil {
|
if _, err := cw.WriteString(string("Vouchers")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -339,7 +339,7 @@ func (t *ChannelInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("ChannelID"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("ChannelID"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("ChannelID")); err != nil {
|
if _, err := cw.WriteString(string("ChannelID")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -350,7 +350,7 @@ func (t *ChannelInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.ChannelID))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.ChannelID))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.ChannelID)); err != nil {
|
if _, err := cw.WriteString(string(t.ChannelID)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -362,7 +362,7 @@ func (t *ChannelInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("CreateMsg"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("CreateMsg"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("CreateMsg")); err != nil {
|
if _, err := cw.WriteString(string("CreateMsg")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -384,7 +384,7 @@ func (t *ChannelInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Direction"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Direction"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Direction")); err != nil {
|
if _, err := cw.WriteString(string("Direction")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -400,7 +400,7 @@ func (t *ChannelInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("AddFundsMsg"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("AddFundsMsg"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("AddFundsMsg")); err != nil {
|
if _, err := cw.WriteString(string("AddFundsMsg")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -422,7 +422,7 @@ func (t *ChannelInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PendingAmount"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PendingAmount"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("PendingAmount")); err != nil {
|
if _, err := cw.WriteString(string("PendingAmount")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -438,7 +438,7 @@ func (t *ChannelInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("AvailableAmount"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("AvailableAmount"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("AvailableAmount")); err != nil {
|
if _, err := cw.WriteString(string("AvailableAmount")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -454,7 +454,7 @@ func (t *ChannelInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PendingAvailableAmount"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PendingAvailableAmount"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("PendingAvailableAmount")); err != nil {
|
if _, err := cw.WriteString(string("PendingAvailableAmount")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -606,13 +606,32 @@ func (t *ChannelInfo) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
var v VoucherInfo
|
{
|
||||||
if err := v.UnmarshalCBOR(cr); err != nil {
|
|
||||||
return err
|
b, err := cr.ReadByte()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if b != cbg.CborNull[0] {
|
||||||
|
if err := cr.UnreadByte(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
t.Vouchers[i] = new(VoucherInfo)
|
||||||
|
if err := t.Vouchers[i].UnmarshalCBOR(cr); err != nil {
|
||||||
|
return xerrors.Errorf("unmarshaling t.Vouchers[i] pointer: %w", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Vouchers[i] = &v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.ChannelID (string) (string)
|
// t.ChannelID (string) (string)
|
||||||
@ -746,7 +765,7 @@ func (t *MsgInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Err"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Err"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Err")); err != nil {
|
if _, err := cw.WriteString(string("Err")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -757,7 +776,7 @@ func (t *MsgInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Err))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Err))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.Err)); err != nil {
|
if _, err := cw.WriteString(string(t.Err)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -769,7 +788,7 @@ func (t *MsgInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("MsgCid"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("MsgCid"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("MsgCid")); err != nil {
|
if _, err := cw.WriteString(string("MsgCid")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -785,7 +804,7 @@ func (t *MsgInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Received"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Received"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Received")); err != nil {
|
if _, err := cw.WriteString(string("Received")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -801,7 +820,7 @@ func (t *MsgInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("ChannelID"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("ChannelID"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("ChannelID")); err != nil {
|
if _, err := cw.WriteString(string("ChannelID")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -812,7 +831,7 @@ func (t *MsgInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.ChannelID))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.ChannelID))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.ChannelID)); err != nil {
|
if _, err := cw.WriteString(string(t.ChannelID)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -43,7 +43,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Log"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Log"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Log")); err != nil {
|
if _, err := cw.WriteString(string("Log")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,7 +68,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("CommD"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("CommD"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("CommD")); err != nil {
|
if _, err := cw.WriteString(string("CommD")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,7 +90,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("CommR"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("CommR"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("CommR")); err != nil {
|
if _, err := cw.WriteString(string("CommR")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -112,7 +112,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Proof"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Proof"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Proof")); err != nil {
|
if _, err := cw.WriteString(string("Proof")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,7 +136,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("State"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("State"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("State")); err != nil {
|
if _, err := cw.WriteString(string("State")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -147,7 +147,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.State))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.State))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.State)); err != nil {
|
if _, err := cw.WriteString(string(t.State)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -159,7 +159,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Pieces"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Pieces"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Pieces")); err != nil {
|
if _, err := cw.WriteString(string("Pieces")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,7 +184,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Return"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Return"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Return")); err != nil {
|
if _, err := cw.WriteString(string("Return")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -195,7 +195,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Return))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Return))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.Return)); err != nil {
|
if _, err := cw.WriteString(string(t.Return)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -207,7 +207,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("LastErr"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("LastErr"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("LastErr")); err != nil {
|
if _, err := cw.WriteString(string("LastErr")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -218,7 +218,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.LastErr))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.LastErr))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.LastErr)); err != nil {
|
if _, err := cw.WriteString(string(t.LastErr)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -230,7 +230,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("CCPieces"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("CCPieces"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("CCPieces")); err != nil {
|
if _, err := cw.WriteString(string("CCPieces")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -255,7 +255,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("CCUpdate"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("CCUpdate"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("CCUpdate")); err != nil {
|
if _, err := cw.WriteString(string("CCUpdate")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -271,7 +271,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("SeedEpoch"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("SeedEpoch"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("SeedEpoch")); err != nil {
|
if _, err := cw.WriteString(string("SeedEpoch")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -293,7 +293,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("SeedValue"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("SeedValue"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("SeedValue")); err != nil {
|
if _, err := cw.WriteString(string("SeedValue")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -317,7 +317,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("SectorType"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("SectorType"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("SectorType")); err != nil {
|
if _, err := cw.WriteString(string("SectorType")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -339,7 +339,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("TicketEpoch"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("TicketEpoch"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("TicketEpoch")); err != nil {
|
if _, err := cw.WriteString(string("TicketEpoch")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -361,7 +361,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("TicketValue"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("TicketValue"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("TicketValue")); err != nil {
|
if _, err := cw.WriteString(string("TicketValue")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -385,7 +385,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("CreationTime"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("CreationTime"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("CreationTime")); err != nil {
|
if _, err := cw.WriteString(string("CreationTime")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -407,7 +407,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("SectorNumber"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("SectorNumber"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("SectorNumber")); err != nil {
|
if _, err := cw.WriteString(string("SectorNumber")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -423,7 +423,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("TerminatedAt"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("TerminatedAt"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("TerminatedAt")); err != nil {
|
if _, err := cw.WriteString(string("TerminatedAt")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -445,7 +445,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("UpdateSealed"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("UpdateSealed"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("UpdateSealed")); err != nil {
|
if _, err := cw.WriteString(string("UpdateSealed")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -467,7 +467,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("CommitMessage"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("CommitMessage"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("CommitMessage")); err != nil {
|
if _, err := cw.WriteString(string("CommitMessage")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -489,7 +489,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("InvalidProofs"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("InvalidProofs"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("InvalidProofs")); err != nil {
|
if _, err := cw.WriteString(string("InvalidProofs")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -505,7 +505,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PreCommit1Out"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PreCommit1Out"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("PreCommit1Out")); err != nil {
|
if _, err := cw.WriteString(string("PreCommit1Out")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -529,7 +529,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("FaultReportMsg"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("FaultReportMsg"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("FaultReportMsg")); err != nil {
|
if _, err := cw.WriteString(string("FaultReportMsg")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -551,7 +551,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("UpdateUnsealed"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("UpdateUnsealed"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("UpdateUnsealed")); err != nil {
|
if _, err := cw.WriteString(string("UpdateUnsealed")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -573,7 +573,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PreCommit1Fails"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PreCommit1Fails"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("PreCommit1Fails")); err != nil {
|
if _, err := cw.WriteString(string("PreCommit1Fails")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -589,7 +589,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PreCommit2Fails"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PreCommit2Fails"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("PreCommit2Fails")); err != nil {
|
if _, err := cw.WriteString(string("PreCommit2Fails")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -605,7 +605,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PreCommitTipSet"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PreCommitTipSet"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("PreCommitTipSet")); err != nil {
|
if _, err := cw.WriteString(string("PreCommitTipSet")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -621,7 +621,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("RemoteDataCache"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("RemoteDataCache"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("RemoteDataCache")); err != nil {
|
if _, err := cw.WriteString(string("RemoteDataCache")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -637,7 +637,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PreCommitDeposit"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PreCommitDeposit"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("PreCommitDeposit")); err != nil {
|
if _, err := cw.WriteString(string("PreCommitDeposit")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -653,7 +653,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PreCommitMessage"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("PreCommitMessage"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("PreCommitMessage")); err != nil {
|
if _, err := cw.WriteString(string("PreCommitMessage")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -675,7 +675,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("RemoteDataSealed"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("RemoteDataSealed"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("RemoteDataSealed")); err != nil {
|
if _, err := cw.WriteString(string("RemoteDataSealed")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -691,7 +691,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("TerminateMessage"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("TerminateMessage"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("TerminateMessage")); err != nil {
|
if _, err := cw.WriteString(string("TerminateMessage")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -713,7 +713,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("RemoteDataUnsealed"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("RemoteDataUnsealed"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("RemoteDataUnsealed")); err != nil {
|
if _, err := cw.WriteString(string("RemoteDataUnsealed")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -729,7 +729,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("ReplicaUpdateProof"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("ReplicaUpdateProof"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("ReplicaUpdateProof")); err != nil {
|
if _, err := cw.WriteString(string("ReplicaUpdateProof")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -753,7 +753,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("RemoteDataFinalized"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("RemoteDataFinalized"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("RemoteDataFinalized")); err != nil {
|
if _, err := cw.WriteString(string("RemoteDataFinalized")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -769,7 +769,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("ReplicaUpdateMessage"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("ReplicaUpdateMessage"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("ReplicaUpdateMessage")); err != nil {
|
if _, err := cw.WriteString(string("ReplicaUpdateMessage")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -791,7 +791,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("RemoteCommit1Endpoint"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("RemoteCommit1Endpoint"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("RemoteCommit1Endpoint")); err != nil {
|
if _, err := cw.WriteString(string("RemoteCommit1Endpoint")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -802,7 +802,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.RemoteCommit1Endpoint))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.RemoteCommit1Endpoint))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.RemoteCommit1Endpoint)); err != nil {
|
if _, err := cw.WriteString(string(t.RemoteCommit1Endpoint)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -814,7 +814,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("RemoteCommit2Endpoint"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("RemoteCommit2Endpoint"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("RemoteCommit2Endpoint")); err != nil {
|
if _, err := cw.WriteString(string("RemoteCommit2Endpoint")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -825,7 +825,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.RemoteCommit2Endpoint))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.RemoteCommit2Endpoint))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.RemoteCommit2Endpoint)); err != nil {
|
if _, err := cw.WriteString(string(t.RemoteCommit2Endpoint)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -837,7 +837,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("RemoteSealingDoneEndpoint"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("RemoteSealingDoneEndpoint"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("RemoteSealingDoneEndpoint")); err != nil {
|
if _, err := cw.WriteString(string("RemoteSealingDoneEndpoint")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -848,7 +848,7 @@ func (t *SectorInfo) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.RemoteSealingDoneEndpoint))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.RemoteSealingDoneEndpoint))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.RemoteSealingDoneEndpoint)); err != nil {
|
if _, err := cw.WriteString(string(t.RemoteSealingDoneEndpoint)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
@ -913,13 +913,22 @@ func (t *SectorInfo) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
var v Log
|
{
|
||||||
if err := v.UnmarshalCBOR(cr); err != nil {
|
|
||||||
return err
|
if err := t.Log[i].UnmarshalCBOR(cr); err != nil {
|
||||||
|
return xerrors.Errorf("unmarshaling t.Log[i]: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Log[i] = v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.CommD (cid.Cid) (struct)
|
// t.CommD (cid.Cid) (struct)
|
||||||
@ -1022,13 +1031,22 @@ func (t *SectorInfo) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
var v api.SectorPiece
|
{
|
||||||
if err := v.UnmarshalCBOR(cr); err != nil {
|
|
||||||
return err
|
if err := t.Pieces[i].UnmarshalCBOR(cr); err != nil {
|
||||||
|
return xerrors.Errorf("unmarshaling t.Pieces[i]: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Pieces[i] = v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.Return (sealing.ReturnState) (string)
|
// t.Return (sealing.ReturnState) (string)
|
||||||
@ -1074,13 +1092,22 @@ func (t *SectorInfo) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
var v api.SectorPiece
|
{
|
||||||
if err := v.UnmarshalCBOR(cr); err != nil {
|
|
||||||
return err
|
if err := t.CCPieces[i].UnmarshalCBOR(cr); err != nil {
|
||||||
|
return xerrors.Errorf("unmarshaling t.CCPieces[i]: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.CCPieces[i] = v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.CCUpdate (bool) (bool)
|
// t.CCUpdate (bool) (bool)
|
||||||
@ -1700,7 +1727,7 @@ func (t *Log) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Kind"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Kind"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Kind")); err != nil {
|
if _, err := cw.WriteString(string("Kind")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1711,7 +1738,7 @@ func (t *Log) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Kind))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Kind))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.Kind)); err != nil {
|
if _, err := cw.WriteString(string(t.Kind)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1723,7 +1750,7 @@ func (t *Log) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Trace"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Trace"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Trace")); err != nil {
|
if _, err := cw.WriteString(string("Trace")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1734,7 +1761,7 @@ func (t *Log) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Trace))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Trace))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.Trace)); err != nil {
|
if _, err := cw.WriteString(string(t.Trace)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1746,7 +1773,7 @@ func (t *Log) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Message"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Message"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Message")); err != nil {
|
if _, err := cw.WriteString(string("Message")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1757,7 +1784,7 @@ func (t *Log) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Message))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Message))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.Message)); err != nil {
|
if _, err := cw.WriteString(string(t.Message)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1769,7 +1796,7 @@ func (t *Log) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Timestamp"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Timestamp"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Timestamp")); err != nil {
|
if _, err := cw.WriteString(string("Timestamp")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,13 +106,15 @@ func checkPrecommit(ctx context.Context, maddr address.Address, si SectorInfo, t
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
commD, err := api.StateComputeDataCID(ctx, maddr, si.SectorType, si.dealIDs(), tsk)
|
if si.hasDeals() {
|
||||||
if err != nil {
|
commD, err := api.StateComputeDataCID(ctx, maddr, si.SectorType, si.dealIDs(), tsk)
|
||||||
return &ErrApi{xerrors.Errorf("calling StateComputeDataCommitment: %w", err)}
|
if err != nil {
|
||||||
}
|
return &ErrApi{xerrors.Errorf("calling StateComputeDataCommitment: %w", err)}
|
||||||
|
}
|
||||||
|
|
||||||
if si.CommD == nil || !commD.Equals(*si.CommD) {
|
if si.CommD == nil || !commD.Equals(*si.CommD) {
|
||||||
return &ErrBadCommD{xerrors.Errorf("on chain CommD differs from sector: %s != %s", commD, si.CommD)}
|
return &ErrBadCommD{xerrors.Errorf("on chain CommD differs from sector: %s != %s", commD, si.CommD)}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pci, err := api.StateSectorPreCommitInfo(ctx, maddr, si.SectorNumber, tsk)
|
pci, err := api.StateSectorPreCommitInfo(ctx, maddr, si.SectorNumber, tsk)
|
||||||
|
@ -16,12 +16,12 @@ import (
|
|||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
"github.com/filecoin-project/go-state-types/builtin"
|
"github.com/filecoin-project/go-state-types/builtin"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
|
||||||
"github.com/filecoin-project/go-state-types/network"
|
"github.com/filecoin-project/go-state-types/network"
|
||||||
"github.com/filecoin-project/go-state-types/proof"
|
"github.com/filecoin-project/go-state-types/proof"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/api"
|
"github.com/filecoin-project/lotus/api"
|
||||||
"github.com/filecoin-project/lotus/build"
|
"github.com/filecoin-project/lotus/build"
|
||||||
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/policy"
|
"github.com/filecoin-project/lotus/chain/actors/policy"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/lotus/node/config"
|
"github.com/filecoin-project/lotus/node/config"
|
||||||
|
@ -13,12 +13,12 @@ import (
|
|||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
"github.com/filecoin-project/go-state-types/builtin"
|
"github.com/filecoin-project/go-state-types/builtin"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
||||||
"github.com/filecoin-project/go-state-types/network"
|
"github.com/filecoin-project/go-state-types/network"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/api"
|
"github.com/filecoin-project/lotus/api"
|
||||||
"github.com/filecoin-project/lotus/build"
|
"github.com/filecoin-project/lotus/build"
|
||||||
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/policy"
|
"github.com/filecoin-project/lotus/chain/actors/policy"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/lotus/node/config"
|
"github.com/filecoin-project/lotus/node/config"
|
||||||
|
@ -85,10 +85,15 @@ func (p *BasicPreCommitPolicy) Expiration(ctx context.Context, ps ...api.SectorP
|
|||||||
}
|
}
|
||||||
|
|
||||||
if end == nil {
|
if end == nil {
|
||||||
// no deal pieces, get expiration for committed capacity sector
|
nv, err := p.api.StateNetworkVersion(ctx, types.EmptyTSK)
|
||||||
expirationDuration, err := p.getCCSectorLifetime()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, xerrors.Errorf("failed to get network version: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// no deal pieces, get expiration for committed capacity sector
|
||||||
|
expirationDuration, err := p.getCCSectorLifetime(nv)
|
||||||
|
if err != nil {
|
||||||
|
return 0, xerrors.Errorf("failed to get cc sector lifetime: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
tmp := ts.Height() + expirationDuration
|
tmp := ts.Height() + expirationDuration
|
||||||
@ -105,25 +110,30 @@ func (p *BasicPreCommitPolicy) Expiration(ctx context.Context, ps ...api.SectorP
|
|||||||
return *end, nil
|
return *end, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *BasicPreCommitPolicy) getCCSectorLifetime() (abi.ChainEpoch, error) {
|
func (p *BasicPreCommitPolicy) getCCSectorLifetime(nv network.Version) (abi.ChainEpoch, error) {
|
||||||
c, err := p.getSealingConfig()
|
c, err := p.getSealingConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, xerrors.Errorf("sealing config load error: %w", err)
|
return 0, xerrors.Errorf("sealing config load error: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
maxCommitment, err := policy.GetMaxSectorExpirationExtension(nv)
|
||||||
|
if err != nil {
|
||||||
|
return 0, xerrors.Errorf("failed to get max extension: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
var ccLifetimeEpochs = abi.ChainEpoch(uint64(c.CommittedCapacitySectorLifetime.Seconds()) / builtin.EpochDurationSeconds)
|
var ccLifetimeEpochs = abi.ChainEpoch(uint64(c.CommittedCapacitySectorLifetime.Seconds()) / builtin.EpochDurationSeconds)
|
||||||
// if zero value in config, assume default sector extension
|
// if zero value in config, assume default sector extension
|
||||||
if ccLifetimeEpochs == 0 {
|
if ccLifetimeEpochs == 0 {
|
||||||
ccLifetimeEpochs = policy.GetMaxSectorExpirationExtension()
|
ccLifetimeEpochs = maxCommitment
|
||||||
}
|
}
|
||||||
|
|
||||||
if minExpiration := abi.ChainEpoch(miner.MinSectorExpiration); ccLifetimeEpochs < minExpiration {
|
if minExpiration := abi.ChainEpoch(miner.MinSectorExpiration); ccLifetimeEpochs < minExpiration {
|
||||||
log.Warnf("value for CommittedCapacitySectorLiftime is too short, using default minimum (%d epochs)", minExpiration)
|
log.Warnf("value for CommittedCapacitySectorLiftime is too short, using default minimum (%d epochs)", minExpiration)
|
||||||
return minExpiration, nil
|
return minExpiration, nil
|
||||||
}
|
}
|
||||||
if maxExpiration := policy.GetMaxSectorExpirationExtension(); ccLifetimeEpochs > maxExpiration {
|
if ccLifetimeEpochs > maxCommitment {
|
||||||
log.Warnf("value for CommittedCapacitySectorLiftime is too long, using default maximum (%d epochs)", maxExpiration)
|
log.Warnf("value for CommittedCapacitySectorLiftime is too long, using default maximum (%d epochs)", maxCommitment)
|
||||||
return maxExpiration, nil
|
return maxCommitment, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return ccLifetimeEpochs - p.provingBuffer, nil
|
return ccLifetimeEpochs - p.provingBuffer, nil
|
||||||
|
@ -68,7 +68,9 @@ func TestBasicPolicyEmptySector(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
// as set when there are no deal pieces
|
// as set when there are no deal pieces
|
||||||
expected := h + policy.GetMaxSectorExpirationExtension() - pBuffer
|
maxExtension, err := policy.GetMaxSectorExpirationExtension(build.TestNetworkVersion)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
expected := h + maxExtension - pBuffer
|
||||||
assert.Equal(t, int(expected), int(exp))
|
assert.Equal(t, int(expected), int(exp))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -132,7 +134,7 @@ func TestBasicPolicyMostConstrictiveSchedule(t *testing.T) {
|
|||||||
|
|
||||||
func TestBasicPolicyIgnoresExistingScheduleIfExpired(t *testing.T) {
|
func TestBasicPolicyIgnoresExistingScheduleIfExpired(t *testing.T) {
|
||||||
cfg := fakeConfigGetter(nil)
|
cfg := fakeConfigGetter(nil)
|
||||||
policy := pipeline.NewBasicPreCommitPolicy(&fakeChain{
|
pcp := pipeline.NewBasicPreCommitPolicy(&fakeChain{
|
||||||
h: abi.ChainEpoch(55),
|
h: abi.ChainEpoch(55),
|
||||||
}, cfg, 0)
|
}, cfg, 0)
|
||||||
|
|
||||||
@ -152,11 +154,14 @@ func TestBasicPolicyIgnoresExistingScheduleIfExpired(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
exp, err := policy.Expiration(context.Background(), pieces...)
|
exp, err := pcp.Expiration(context.Background(), pieces...)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
maxLifetime, err := policy.GetMaxSectorExpirationExtension(build.TestNetworkVersion)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
// Treated as a CC sector, so expiration becomes currEpoch + maxLifetime = 55 + 1555200
|
// Treated as a CC sector, so expiration becomes currEpoch + maxLifetime = 55 + 1555200
|
||||||
assert.Equal(t, 1555255, int(exp))
|
assert.Equal(t, 55+maxLifetime, exp)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMissingDealIsIgnored(t *testing.T) {
|
func TestMissingDealIsIgnored(t *testing.T) {
|
||||||
|
@ -60,4 +60,6 @@ type Config struct {
|
|||||||
TerminateBatchMax uint64
|
TerminateBatchMax uint64
|
||||||
TerminateBatchMin uint64
|
TerminateBatchMin uint64
|
||||||
TerminateBatchWait time.Duration
|
TerminateBatchWait time.Duration
|
||||||
|
|
||||||
|
UseSyntheticPoRep bool
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,6 @@ import (
|
|||||||
"github.com/filecoin-project/go-bitfield"
|
"github.com/filecoin-project/go-bitfield"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
|
||||||
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
||||||
"github.com/filecoin-project/go-state-types/crypto"
|
"github.com/filecoin-project/go-state-types/crypto"
|
||||||
"github.com/filecoin-project/go-state-types/dline"
|
"github.com/filecoin-project/go-state-types/dline"
|
||||||
@ -24,6 +23,7 @@ import (
|
|||||||
"github.com/filecoin-project/go-storedcounter"
|
"github.com/filecoin-project/go-storedcounter"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/api"
|
"github.com/filecoin-project/lotus/api"
|
||||||
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/events"
|
"github.com/filecoin-project/lotus/chain/events"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
@ -339,7 +339,12 @@ func (m *Sealing) currentSealProof(ctx context.Context) (abi.RegisteredSealProof
|
|||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return lminer.PreferredSealProofTypeFromWindowPoStType(ver, mi.WindowPoStProofType)
|
c, err := m.getConfig()
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return lminer.PreferredSealProofTypeFromWindowPoStType(ver, mi.WindowPoStProofType, c.UseSyntheticPoRep)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Sealing) minerSector(spt abi.RegisteredSealProof, num abi.SectorNumber) storiface.SectorRef {
|
func (m *Sealing) minerSector(spt abi.RegisteredSealProof, num abi.SectorNumber) storiface.SectorRef {
|
||||||
|
@ -10,12 +10,12 @@ import (
|
|||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-commp-utils/zerocomm"
|
"github.com/filecoin-project/go-commp-utils/zerocomm"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
|
||||||
"github.com/filecoin-project/go-state-types/exitcode"
|
"github.com/filecoin-project/go-state-types/exitcode"
|
||||||
"github.com/filecoin-project/go-statemachine"
|
"github.com/filecoin-project/go-statemachine"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/api"
|
"github.com/filecoin-project/lotus/api"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/market"
|
"github.com/filecoin-project/lotus/chain/actors/builtin/market"
|
||||||
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/lotus/storage/sealer/storiface"
|
"github.com/filecoin-project/lotus/storage/sealer/storiface"
|
||||||
)
|
)
|
||||||
|
@ -10,12 +10,12 @@ import (
|
|||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
"github.com/filecoin-project/go-state-types/builtin"
|
"github.com/filecoin-project/go-state-types/builtin"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
|
||||||
"github.com/filecoin-project/go-state-types/exitcode"
|
"github.com/filecoin-project/go-state-types/exitcode"
|
||||||
"github.com/filecoin-project/go-statemachine"
|
"github.com/filecoin-project/go-statemachine"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/api"
|
"github.com/filecoin-project/lotus/api"
|
||||||
"github.com/filecoin-project/lotus/build"
|
"github.com/filecoin-project/lotus/build"
|
||||||
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/policy"
|
"github.com/filecoin-project/lotus/chain/actors/policy"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
@ -17,7 +17,6 @@ import (
|
|||||||
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
actorstypes "github.com/filecoin-project/go-state-types/actors"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
"github.com/filecoin-project/go-state-types/big"
|
||||||
"github.com/filecoin-project/go-state-types/builtin"
|
"github.com/filecoin-project/go-state-types/builtin"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
|
||||||
"github.com/filecoin-project/go-state-types/crypto"
|
"github.com/filecoin-project/go-state-types/crypto"
|
||||||
"github.com/filecoin-project/go-state-types/exitcode"
|
"github.com/filecoin-project/go-state-types/exitcode"
|
||||||
"github.com/filecoin-project/go-state-types/network"
|
"github.com/filecoin-project/go-state-types/network"
|
||||||
@ -26,6 +25,7 @@ import (
|
|||||||
|
|
||||||
"github.com/filecoin-project/lotus/api"
|
"github.com/filecoin-project/lotus/api"
|
||||||
"github.com/filecoin-project/lotus/build"
|
"github.com/filecoin-project/lotus/build"
|
||||||
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/policy"
|
"github.com/filecoin-project/lotus/chain/actors/policy"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/lotus/storage/pipeline/lib/nullreader"
|
"github.com/filecoin-project/lotus/storage/pipeline/lib/nullreader"
|
||||||
@ -399,7 +399,12 @@ func (m *Sealing) preCommitInfo(ctx statemachine.Context, sector SectorInfo) (*m
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Assume: both precommit msg & commit msg land on chain as early as possible
|
// Assume: both precommit msg & commit msg land on chain as early as possible
|
||||||
maxExpiration := ts.Height() + policy.GetPreCommitChallengeDelay() + policy.GetMaxSectorExpirationExtension()
|
maxExtension, err := policy.GetMaxSectorExpirationExtension(nv)
|
||||||
|
if err != nil {
|
||||||
|
return nil, big.Zero(), types.EmptyTSK, ctx.Send(SectorSealPreCommit1Failed{xerrors.Errorf("failed to get max extension: %w", err)})
|
||||||
|
}
|
||||||
|
|
||||||
|
maxExpiration := ts.Height() + policy.GetPreCommitChallengeDelay() + maxExtension
|
||||||
if expiration > maxExpiration {
|
if expiration > maxExpiration {
|
||||||
expiration = maxExpiration
|
expiration = maxExpiration
|
||||||
}
|
}
|
||||||
@ -630,6 +635,7 @@ func (m *Sealing) handleCommitting(ctx statemachine.Context, sector SectorInfo)
|
|||||||
|
|
||||||
porepProof, err = m.sealer.SealCommit2(sector.sealingCtx(ctx.Context()), m.minerSector(sector.SectorType, sector.SectorNumber), c2in)
|
porepProof, err = m.sealer.SealCommit2(sector.sealingCtx(ctx.Context()), m.minerSector(sector.SectorType, sector.SectorNumber), c2in)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
log.Errorw("Commit2 error", "error", err)
|
||||||
return ctx.Send(SectorComputeProofFailed{xerrors.Errorf("computing seal proof failed(2): %w", err)})
|
return ctx.Send(SectorComputeProofFailed{xerrors.Errorf("computing seal proof failed(2): %w", err)})
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -40,7 +40,7 @@ func (t *Call) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("ID"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("ID"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("ID")); err != nil {
|
if _, err := cw.WriteString(string("ID")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ func (t *Call) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("State"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("State"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("State")); err != nil {
|
if _, err := cw.WriteString(string("State")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,7 +72,7 @@ func (t *Call) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Result"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Result"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Result")); err != nil {
|
if _, err := cw.WriteString(string("Result")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -88,7 +88,7 @@ func (t *Call) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("RetType"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("RetType"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("RetType")); err != nil {
|
if _, err := cw.WriteString(string("RetType")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -99,7 +99,7 @@ func (t *Call) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.RetType))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.RetType))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.RetType)); err != nil {
|
if _, err := cw.WriteString(string(t.RetType)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
@ -228,7 +228,7 @@ func (t *WorkState) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("ID"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("ID"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("ID")); err != nil {
|
if _, err := cw.WriteString(string("ID")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -244,7 +244,7 @@ func (t *WorkState) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Status"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Status"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Status")); err != nil {
|
if _, err := cw.WriteString(string("Status")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -255,7 +255,7 @@ func (t *WorkState) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Status))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Status))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.Status)); err != nil {
|
if _, err := cw.WriteString(string(t.Status)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -267,7 +267,7 @@ func (t *WorkState) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("StartTime"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("StartTime"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("StartTime")); err != nil {
|
if _, err := cw.WriteString(string("StartTime")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -289,7 +289,7 @@ func (t *WorkState) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("WorkError"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("WorkError"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("WorkError")); err != nil {
|
if _, err := cw.WriteString(string("WorkError")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -300,7 +300,7 @@ func (t *WorkState) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.WorkError))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.WorkError))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.WorkError)); err != nil {
|
if _, err := cw.WriteString(string(t.WorkError)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -312,7 +312,7 @@ func (t *WorkState) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("WorkerCall"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("WorkerCall"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("WorkerCall")); err != nil {
|
if _, err := cw.WriteString(string("WorkerCall")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -328,7 +328,7 @@ func (t *WorkState) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("WorkerHostname"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("WorkerHostname"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("WorkerHostname")); err != nil {
|
if _, err := cw.WriteString(string("WorkerHostname")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -339,7 +339,7 @@ func (t *WorkState) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.WorkerHostname))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.WorkerHostname))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.WorkerHostname)); err != nil {
|
if _, err := cw.WriteString(string(t.WorkerHostname)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
@ -491,7 +491,7 @@ func (t *WorkID) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Method"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Method"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Method")); err != nil {
|
if _, err := cw.WriteString(string("Method")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -502,7 +502,7 @@ func (t *WorkID) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Method))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Method))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.Method)); err != nil {
|
if _, err := cw.WriteString(string(t.Method)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -514,7 +514,7 @@ func (t *WorkID) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Params"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Params"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Params")); err != nil {
|
if _, err := cw.WriteString(string("Params")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -525,7 +525,7 @@ func (t *WorkID) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Params))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Params))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.Params)); err != nil {
|
if _, err := cw.WriteString(string(t.Params)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -896,15 +896,49 @@ func (sb *Sealer) SealPreCommit2(ctx context.Context, sector storiface.SectorRef
|
|||||||
return storiface.SectorCids{}, xerrors.Errorf("unmarshaling pc1 output: %w", err)
|
return storiface.SectorCids{}, xerrors.Errorf("unmarshaling pc1 output: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
var ticket abi.SealRandomness
|
|
||||||
ti, found := p1odec["_lotus_SealRandomness"]
|
ti, found := p1odec["_lotus_SealRandomness"]
|
||||||
|
|
||||||
|
if abi.Synthetic[sector.ProofType] {
|
||||||
|
if !found {
|
||||||
|
return storiface.SectorCids{}, xerrors.Errorf("synthetic mode: ticket not found")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if found {
|
if found {
|
||||||
ticket, err = base64.StdEncoding.DecodeString(ti.(string))
|
ticket, err := base64.StdEncoding.DecodeString(ti.(string))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return storiface.SectorCids{}, xerrors.Errorf("decoding ticket: %w", err)
|
return storiface.SectorCids{}, xerrors.Errorf("decoding ticket: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if abi.Synthetic[sector.ProofType] {
|
||||||
|
// note: we generate synth porep challenges first because the C1 check below reads from those
|
||||||
|
|
||||||
|
err = ffi.GenerateSynthProofs(
|
||||||
|
sector.ProofType,
|
||||||
|
sealedCID,
|
||||||
|
unsealedCID,
|
||||||
|
paths.Cache,
|
||||||
|
paths.Sealed,
|
||||||
|
sector.ID.Number,
|
||||||
|
sector.ID.Miner, ticket,
|
||||||
|
[]abi.PieceInfo{{Size: abi.PaddedPieceSize(ssize), PieceCID: unsealedCID}})
|
||||||
|
if err != nil {
|
||||||
|
log.Warn("GenerateSynthProofs() failed: ", err)
|
||||||
|
log.Warnf("num:%d tkt:%v, sealedCID:%v, unsealedCID:%v", sector.ID.Number, ticket, sealedCID, unsealedCID)
|
||||||
|
return storiface.SectorCids{}, xerrors.Errorf("generate synth proofs: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err = ffi.ClearLayerData(ssize, paths.Cache); err != nil {
|
||||||
|
log.Warn("failed to GenerateSynthProofs(): ", err)
|
||||||
|
log.Warnf("num:%d tkt:%v, sealedCID:%v, unsealedCID:%v", sector.ID.Number, ticket, sealedCID, unsealedCID)
|
||||||
|
return storiface.SectorCids{
|
||||||
|
Unsealed: unsealedCID,
|
||||||
|
Sealed: sealedCID,
|
||||||
|
}, nil
|
||||||
|
// Note: non-fatal error.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for i := 0; i < PC2CheckRounds; i++ {
|
for i := 0; i < PC2CheckRounds; i++ {
|
||||||
var sd [32]byte
|
var sd [32]byte
|
||||||
_, _ = rand.Read(sd[:])
|
_, _ = rand.Read(sd[:])
|
||||||
@ -960,6 +994,7 @@ func (sb *Sealer) SealCommit1(ctx context.Context, sector storiface.SectorRef, t
|
|||||||
|
|
||||||
return nil, xerrors.Errorf("StandaloneSealCommit: %w", err)
|
return nil, xerrors.Errorf("StandaloneSealCommit: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return output, nil
|
return output, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1149,6 +1184,13 @@ func (sb *Sealer) FinalizeSector(ctx context.Context, sector storiface.SectorRef
|
|||||||
}
|
}
|
||||||
defer done()
|
defer done()
|
||||||
|
|
||||||
|
if abi.Synthetic[sector.ProofType] {
|
||||||
|
if err = ffi.ClearSyntheticProofs(uint64(ssize), paths.Cache); err != nil {
|
||||||
|
log.Warn("Unable to delete Synth cache:", err)
|
||||||
|
// Pass-Thru on error.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return ffi.ClearCache(uint64(ssize), paths.Cache)
|
return ffi.ClearCache(uint64(ssize), paths.Cache)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1187,6 +1229,13 @@ func (sb *Sealer) FinalizeSectorInto(ctx context.Context, sector storiface.Secto
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if abi.Synthetic[sector.ProofType] {
|
||||||
|
if err = ffi.ClearSyntheticProofs(uint64(ssize), dest); err != nil {
|
||||||
|
log.Warn("Unable to delete Synth cache:", err)
|
||||||
|
// Pass-Thru on error.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return ffi.ClearCache(uint64(ssize), dest)
|
return ffi.ClearCache(uint64(ssize), dest)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1203,6 +1252,12 @@ func (sb *Sealer) FinalizeReplicaUpdate(ctx context.Context, sector storiface.Se
|
|||||||
}
|
}
|
||||||
defer done()
|
defer done()
|
||||||
|
|
||||||
|
if abi.Synthetic[sector.ProofType] {
|
||||||
|
if err = ffi.ClearSyntheticProofs(uint64(ssize), paths.Cache); err != nil {
|
||||||
|
return xerrors.Errorf("clear synth cache: %w", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if err := ffi.ClearCache(uint64(ssize), paths.Cache); err != nil {
|
if err := ffi.ClearCache(uint64(ssize), paths.Cache); err != nil {
|
||||||
return xerrors.Errorf("clear cache: %w", err)
|
return xerrors.Errorf("clear cache: %w", err)
|
||||||
}
|
}
|
||||||
@ -1215,6 +1270,8 @@ func (sb *Sealer) FinalizeReplicaUpdate(ctx context.Context, sector storiface.Se
|
|||||||
}
|
}
|
||||||
defer done()
|
defer done()
|
||||||
|
|
||||||
|
// note: synth cache is not a thing for snapdeals
|
||||||
|
|
||||||
if err := ffi.ClearCache(uint64(ssize), paths.UpdateCache); err != nil {
|
if err := ffi.ClearCache(uint64(ssize), paths.UpdateCache); err != nil {
|
||||||
return xerrors.Errorf("clear cache: %w", err)
|
return xerrors.Errorf("clear cache: %w", err)
|
||||||
}
|
}
|
||||||
|
@ -1087,7 +1087,111 @@ func TestDCAPCloses(t *testing.T) {
|
|||||||
require.Equal(t, "baga6ea4seaqeje7jy4hufnybpo7ckxzujaigqbcxhdjq7ojb4b6xzgqdugkyciq", c.PieceCID.String())
|
require.Equal(t, "baga6ea4seaqeje7jy4hufnybpo7ckxzujaigqbcxhdjq7ojb4b6xzgqdugkyciq", c.PieceCID.String())
|
||||||
require.True(t, clr.closed)
|
require.True(t, clr.closed)
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSealAndVerifySynth(t *testing.T) {
|
||||||
|
sealProofType = abi.RegisteredSealProof_StackedDrg2KiBV1_1_Feat_SyntheticPoRep
|
||||||
|
|
||||||
|
if testing.Short() {
|
||||||
|
t.Skip("skipping test in short mode")
|
||||||
|
}
|
||||||
|
|
||||||
|
defer requireFDsClosed(t, openFDs(t))
|
||||||
|
|
||||||
|
if runtime.NumCPU() < 10 && os.Getenv("CI") == "" { // don't bother on slow hardware
|
||||||
|
t.Skip("this is slow")
|
||||||
|
}
|
||||||
|
_ = os.Setenv("RUST_LOG", "info")
|
||||||
|
|
||||||
|
getGrothParamFileAndVerifyingKeys(sectorSize)
|
||||||
|
|
||||||
|
cdir, err := os.MkdirTemp("", "sbtest-c-")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
miner := abi.ActorID(123)
|
||||||
|
|
||||||
|
synthPorRepVProofsName := "syn-porep-vanilla-proofs.dat"
|
||||||
|
|
||||||
|
printFileList := func(stage string, expectSynthPorep bool) {
|
||||||
|
var hasSynthPorep bool
|
||||||
|
|
||||||
|
fmt.Println("----file list:", stage)
|
||||||
|
err := filepath.Walk(cdir, func(path string, info os.FileInfo, err error) error {
|
||||||
|
if strings.Contains(path, synthPorRepVProofsName) {
|
||||||
|
hasSynthPorep = true
|
||||||
|
}
|
||||||
|
fmt.Println(path)
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
require.Equal(t, expectSynthPorep, hasSynthPorep)
|
||||||
|
|
||||||
|
fmt.Println("----")
|
||||||
|
}
|
||||||
|
|
||||||
|
sp := &basicfs.Provider{
|
||||||
|
Root: cdir,
|
||||||
|
}
|
||||||
|
sb, err := New(sp)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("%+v", err)
|
||||||
|
}
|
||||||
|
t.Cleanup(func() {
|
||||||
|
if t.Failed() {
|
||||||
|
fmt.Printf("not removing %s\n", cdir)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err := os.RemoveAll(cdir); err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
si := storiface.SectorRef{
|
||||||
|
ID: abi.SectorID{Miner: miner, Number: 1},
|
||||||
|
ProofType: sealProofType,
|
||||||
|
}
|
||||||
|
|
||||||
|
s := seal{ref: si}
|
||||||
|
|
||||||
|
start := time.Now()
|
||||||
|
|
||||||
|
s.precommit(t, sb, si, func() {})
|
||||||
|
|
||||||
|
printFileList("precommit", true)
|
||||||
|
|
||||||
|
precommit := time.Now()
|
||||||
|
|
||||||
|
s.commit(t, sb, func() {})
|
||||||
|
|
||||||
|
printFileList("commit", true)
|
||||||
|
|
||||||
|
commit := time.Now()
|
||||||
|
|
||||||
|
post(t, sb, nil, s)
|
||||||
|
|
||||||
|
printFileList("post", true)
|
||||||
|
|
||||||
|
epost := time.Now()
|
||||||
|
|
||||||
|
post(t, sb, nil, s)
|
||||||
|
|
||||||
|
if err := sb.FinalizeSector(context.TODO(), si); err != nil {
|
||||||
|
t.Fatalf("%+v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
printFileList("finalize", false)
|
||||||
|
|
||||||
|
s.unseal(t, sb, sp, si, func() {})
|
||||||
|
|
||||||
|
printFileList("unseal", false)
|
||||||
|
|
||||||
|
fmt.Printf("PreCommit: %s\n", precommit.Sub(start).String())
|
||||||
|
fmt.Printf("Commit: %s\n", commit.Sub(precommit).String())
|
||||||
|
fmt.Printf("EPoSt: %s\n", epost.Sub(commit).String())
|
||||||
}
|
}
|
||||||
|
|
||||||
type closeAssertReader struct {
|
type closeAssertReader struct {
|
||||||
|
@ -38,7 +38,7 @@ func (t *CallID) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("ID"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("ID"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("ID")); err != nil {
|
if _, err := cw.WriteString(string("ID")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ func (t *CallID) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Sector"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Sector"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Sector")); err != nil {
|
if _, err := cw.WriteString(string("Sector")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -173,7 +173,7 @@ func (t *SecDataHttpHeader) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Key"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Key"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Key")); err != nil {
|
if _, err := cw.WriteString(string("Key")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,7 +184,7 @@ func (t *SecDataHttpHeader) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Key))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Key))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.Key)); err != nil {
|
if _, err := cw.WriteString(string(t.Key)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,7 +196,7 @@ func (t *SecDataHttpHeader) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Value"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Value"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Value")); err != nil {
|
if _, err := cw.WriteString(string("Value")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -207,7 +207,7 @@ func (t *SecDataHttpHeader) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Value))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Value))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.Value)); err != nil {
|
if _, err := cw.WriteString(string(t.Value)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
@ -302,7 +302,7 @@ func (t *SectorLocation) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("URL"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("URL"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("URL")); err != nil {
|
if _, err := cw.WriteString(string("URL")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -313,7 +313,7 @@ func (t *SectorLocation) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.URL))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.URL))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string(t.URL)); err != nil {
|
if _, err := cw.WriteString(string(t.URL)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -325,7 +325,7 @@ func (t *SectorLocation) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Local"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Local"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Local")); err != nil {
|
if _, err := cw.WriteString(string("Local")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -341,7 +341,7 @@ func (t *SectorLocation) MarshalCBOR(w io.Writer) error {
|
|||||||
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Headers"))); err != nil {
|
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Headers"))); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := io.WriteString(w, string("Headers")); err != nil {
|
if _, err := cw.WriteString(string("Headers")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -448,13 +448,22 @@ func (t *SectorLocation) UnmarshalCBOR(r io.Reader) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < int(extra); i++ {
|
for i := 0; i < int(extra); i++ {
|
||||||
|
{
|
||||||
|
var maj byte
|
||||||
|
var extra uint64
|
||||||
|
var err error
|
||||||
|
_ = maj
|
||||||
|
_ = extra
|
||||||
|
_ = err
|
||||||
|
|
||||||
var v SecDataHttpHeader
|
{
|
||||||
if err := v.UnmarshalCBOR(cr); err != nil {
|
|
||||||
return err
|
if err := t.Headers[i].UnmarshalCBOR(cr); err != nil {
|
||||||
|
return xerrors.Errorf("unmarshaling t.Headers[i]: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Headers[i] = v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -587,13 +587,18 @@ func init() {
|
|||||||
ResourceTable[sealtasks.TTDataCid][proof] = ResourceTable[sealtasks.TTAddPiece][abi.RegisteredSealProof_StackedDrg32GiBV1]
|
ResourceTable[sealtasks.TTDataCid][proof] = ResourceTable[sealtasks.TTAddPiece][abi.RegisteredSealProof_StackedDrg32GiBV1]
|
||||||
}
|
}
|
||||||
|
|
||||||
// V1_1 is the same as V1
|
// V1_1 and SynthethicpoRep is the same as V1
|
||||||
for _, m := range ResourceTable {
|
for _, m := range ResourceTable {
|
||||||
m[abi.RegisteredSealProof_StackedDrg2KiBV1_1] = m[abi.RegisteredSealProof_StackedDrg2KiBV1]
|
m[abi.RegisteredSealProof_StackedDrg2KiBV1_1] = m[abi.RegisteredSealProof_StackedDrg2KiBV1]
|
||||||
|
m[abi.RegisteredSealProof_StackedDrg2KiBV1_1_Feat_SyntheticPoRep] = m[abi.RegisteredSealProof_StackedDrg2KiBV1]
|
||||||
m[abi.RegisteredSealProof_StackedDrg8MiBV1_1] = m[abi.RegisteredSealProof_StackedDrg8MiBV1]
|
m[abi.RegisteredSealProof_StackedDrg8MiBV1_1] = m[abi.RegisteredSealProof_StackedDrg8MiBV1]
|
||||||
|
m[abi.RegisteredSealProof_StackedDrg8MiBV1_1_Feat_SyntheticPoRep] = m[abi.RegisteredSealProof_StackedDrg8MiBV1]
|
||||||
m[abi.RegisteredSealProof_StackedDrg512MiBV1_1] = m[abi.RegisteredSealProof_StackedDrg512MiBV1]
|
m[abi.RegisteredSealProof_StackedDrg512MiBV1_1] = m[abi.RegisteredSealProof_StackedDrg512MiBV1]
|
||||||
|
m[abi.RegisteredSealProof_StackedDrg512MiBV1_1_Feat_SyntheticPoRep] = m[abi.RegisteredSealProof_StackedDrg512MiBV1]
|
||||||
m[abi.RegisteredSealProof_StackedDrg32GiBV1_1] = m[abi.RegisteredSealProof_StackedDrg32GiBV1]
|
m[abi.RegisteredSealProof_StackedDrg32GiBV1_1] = m[abi.RegisteredSealProof_StackedDrg32GiBV1]
|
||||||
|
m[abi.RegisteredSealProof_StackedDrg32GiBV1_1_Feat_SyntheticPoRep] = m[abi.RegisteredSealProof_StackedDrg32GiBV1]
|
||||||
m[abi.RegisteredSealProof_StackedDrg64GiBV1_1] = m[abi.RegisteredSealProof_StackedDrg64GiBV1]
|
m[abi.RegisteredSealProof_StackedDrg64GiBV1_1] = m[abi.RegisteredSealProof_StackedDrg64GiBV1]
|
||||||
|
m[abi.RegisteredSealProof_StackedDrg64GiBV1_1_Feat_SyntheticPoRep] = m[abi.RegisteredSealProof_StackedDrg64GiBV1]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,9 +6,9 @@ import (
|
|||||||
|
|
||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/builtin/v9/miner"
|
|
||||||
"github.com/filecoin-project/go-state-types/dline"
|
"github.com/filecoin-project/go-state-types/dline"
|
||||||
|
|
||||||
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -531,12 +531,12 @@ func nextDeadline(currentDeadline *dline.Info) *dline.Info {
|
|||||||
newDeadline := currentDeadline.Index + 1
|
newDeadline := currentDeadline.Index + 1
|
||||||
if newDeadline == miner.WPoStPeriodDeadlines {
|
if newDeadline == miner.WPoStPeriodDeadlines {
|
||||||
newDeadline = 0
|
newDeadline = 0
|
||||||
periodStart = periodStart + miner.WPoStProvingPeriod
|
periodStart = periodStart + miner.WPoStProvingPeriod()
|
||||||
}
|
}
|
||||||
|
|
||||||
return NewDeadlineInfo(periodStart, newDeadline, currentDeadline.CurrentEpoch)
|
return NewDeadlineInfo(periodStart, newDeadline, currentDeadline.CurrentEpoch)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewDeadlineInfo(periodStart abi.ChainEpoch, deadlineIdx uint64, currEpoch abi.ChainEpoch) *dline.Info {
|
func NewDeadlineInfo(periodStart abi.ChainEpoch, deadlineIdx uint64, currEpoch abi.ChainEpoch) *dline.Info {
|
||||||
return dline.NewInfo(periodStart, deadlineIdx, currEpoch, miner.WPoStPeriodDeadlines, miner.WPoStProvingPeriod, miner.WPoStChallengeWindow, miner.WPoStChallengeLookback, miner.FaultDeclarationCutoff)
|
return dline.NewInfo(periodStart, deadlineIdx, currEpoch, miner.WPoStPeriodDeadlines, miner.WPoStProvingPeriod(), miner.WPoStChallengeWindow(), miner.WPoStChallengeLookback, miner.FaultDeclarationCutoff)
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user