Merge branch 'release/v1.24.0' into release/v1.25.0
This commit is contained in:
		
						commit
						2bc4951d79
					
				| @ -912,6 +912,8 @@ workflows: | ||||
|             - build | ||||
|           suite: itest-sector_pledge | ||||
|           target: "./itests/sector_pledge_test.go" | ||||
|           get-params: true | ||||
|            | ||||
|       - test: | ||||
|           name: test-itest-sector_terminate | ||||
|           requires: | ||||
|  | ||||
| @ -545,7 +545,7 @@ workflows: | ||||
|           [[- if or (eq $name "worker") (eq $name "deals_concurrent") (eq $name "wdpost_worker_config")]] | ||||
|           executor: golang-2xl | ||||
|           [[- end]] | ||||
|           [[- if (eq $name "wdpost")]] | ||||
|           [[- if or (eq $name "wdpost") (eq $name "sector_pledge")]] | ||||
|           get-params: true | ||||
|           [[end]] | ||||
|       [[- end ]][[- end]] | ||||
|  | ||||
							
								
								
									
										73
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										73
									
								
								CHANGELOG.md
									
									
									
									
									
								
							| @ -1,6 +1,77 @@ | ||||
| # Lotus changelog | ||||
| 
 | ||||
| # UNRELEASED | ||||
| # v1.24.0-rc2 / 2023-10-17 | ||||
| 
 | ||||
| This is the second release candidate of the upcoming **MANDATORY Lotus v1.24.0** release, which will deliver the Filecoin network version 21, codenamed Watermelon 🍉. | ||||
| 
 | ||||
| **This release candidate does NOT set an upgrade epoch for mainnet, but sets the calibration network to upgrade at epoch 1013134, which is 2023-10-19T13:00:00Z.** This second release candidate updates go-state-types to v0.12.5, adding a proofs mapping that was missing v0.12.5. Lotus v1.24.0-RC1 remains valid for the network upgrade in the Calibration network. However, storage providers intending to conduct Synthetic PoRep testing are advised to use RC2. | ||||
| 
 | ||||
| The Filecoin network version 21 delivers the following FIPs: | ||||
| 
 | ||||
| - [FIP0052: Increase Max Sector Commitment to 3.5 years](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0052.md) | ||||
| - [FIP0059: Synthetic PoRep](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0059.md) | ||||
| - [FIP0070: Allow SPs to move partitions between deadlines](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0070.md) | ||||
| - [FIP0071: Deterministic State Access (IPLD Reachability)](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0071.md) | ||||
| - [FIP0072: Improved event syscall API](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0072.md)  | ||||
| - [FIP0073: Remove beneficiary from the self_destruct syscall](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0073.md) | ||||
| - [FIP0075: Improvements to FVM randomness syscalls](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0075.md) | ||||
| 
 | ||||
| ## v12 Builtin Actor Bundles | ||||
| 
 | ||||
| The actor bundles for the calibration network can be checked as follows: | ||||
| 
 | ||||
| ``` | ||||
| lotus state actor-cids --network-version=21 | ||||
| Network Version: 21 | ||||
| Actor Version: 12 | ||||
| Manifest CID: bafy2bzacedrunxfqta5skb7q7x32lnp4efz2oq7fn226ffm7fu5iqs62jkmvs | ||||
| 
 | ||||
| Actor             CID   | ||||
| paymentchannel    bafk2bzacebaxhk4itfiuvbftg7kz5zxugqnvdgerobitjq4vl6q4orcwk6wqg | ||||
| placeholder       bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro | ||||
| ethaccount        bafk2bzaceajmc3y3sedsqymfla3dzzqzmbu5kmr2iskm26ga2u34ll5fpztfw | ||||
| evm               bafk2bzaced4sozr7m6rzcgpobzeiupghthfw6afumysu3oz6bxxirv74uo3vw | ||||
| system            bafk2bzacecioupndtcnyw6iq2hbrxag3aufvczlv5nobnfbkbywqzcyfaa376 | ||||
| init              bafk2bzaceaewh7b6zl2egclm7fqzx2lsqr57i75lb6cj43ndoa4mal3k5ld3m | ||||
| multisig          bafk2bzacednkwcpw5yzxjceoaliajgupzj6iqxe7ks2ll3unspbprbo5f2now | ||||
| eam               bafk2bzacecb6cnwftvavpph4p34zs4psuy5xvbrhf7vszkva4npw6mw3c42xe | ||||
| reward            bafk2bzacedra77pcglf7vdca2itcaa4vd6xrxynxmgfgdjdxqxfwqyhtoxehy | ||||
| storagemarket     bafk2bzacea7g46y7xxu2zjq2h75x6mmx3utz2uxnlvnwi6tzpsvulna3bmiva | ||||
| storageminer      bafk2bzacecnh2ouohmonvebq7uughh4h3ppmg4cjsk74dzxlbbtlcij4xbzxq | ||||
| storagepower      bafk2bzacedd3ka44k7d46ckbinjhv3diyuu2epgbyvhqqyjkc64qlrg3wlgzi | ||||
| verifiedregistry  bafk2bzaceavldupmf7bimeeacs67z5xdfdlfca6p7sn6bev3mt5ggepfqvhqo | ||||
| account           bafk2bzacechwwxdqvggkdylm37zldjsra2ivkdzwp7fee56bzxbzs544wv6u6 | ||||
| cron              bafk2bzacec4gdxxkqwxqqodsv6ug5dmdbqdfqwyqfek3yhxc2wweh5psxaeq6 | ||||
| datacap           bafk2bzacecq5ppfskxgv3iea3jarsix6jdduuhwsn4fbvngtbmzelzmlygorm | ||||
| ``` | ||||
| 
 | ||||
| ## New features | ||||
| - Implement and support [FIP0052: Increase Max Sector Commitment to 3.5 years](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0052.md) | ||||
|    - fix: docs: Update SectorLifetime to be in line with FIP-0052 ([filecoin-project/lotus#11314](https://github.com/filecoin-project/lotus/pull/11314)) | ||||
| - Implement and support [FIP0059: Synthetic PoRep](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0059.md) - Check out the [Lotus documentation for Synthetic PoRep](https://lotus.filecoin.io/storage-providers/advanced-configurations/sealing/#synthetic-porep). | ||||
|    - feat: implement Synthetic PoRep ([filecoin-project/lotus#11258](https://github.com/filecoin-project/lotus/pull/11258)) | ||||
|    - chore: config: Update todo in UseSyntheticPoRep ([filecoin-project/lotus#11297](https://github.com/filecoin-project/lotus/pull/11297)) | ||||
| - Implement and support [FIP0070: Allow SPs to move partitions between deadlines](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0070.md) - Check out the [Lotus documentation for Moving Partitions](https://lotus.filecoin.io/storage-providers/operate/daily-chores/#move-partitions) | ||||
|    - Feat: Lotus cli: actor: Support move partition command to move partitions' deadline ([filecoin-project/lotus#11301](https://github.com/filecoin-project/lotus/pull/11301)) | ||||
|    - feat: limit PoSted partitions to 3 ([filecoin-project/lotus#11327](https://github.com/filecoin-project/lotus/pull/11327)) | ||||
|     | ||||
| ## Improvements | ||||
| - Backport: feat: sealing: Switch to calling PreCommitSectorBatch2 ([filecoin-project/lotus#11215](https://github.com/filecoin-project/lotus/pull/11215)) | ||||
| 
 | ||||
| ## Dependencies | ||||
| - github.com/filecoin-project/go-amt-ipld/v4 (v4.0.0 -> v4.2.0) | ||||
| - chore: deps: update bulitin-actors, FVM, and go-state-types ([filecoin-project/lotus#11291](https://github.com/filecoin-project/lotus/pull/11291)) | ||||
| - chore: deps: update FFI, FVM, and actors ([filecoin-project/lotus#11310](https://github.com/filecoin-project/lotus/pull/11310)) | ||||
| - chore: deps: update to latest actors and FFI ([filecoin-project/lotus#11330](https://github.com/filecoin-project/lotus/pull/11330)) | ||||
| - chore: deps: update to go-state-types v0.12.5 ([filecoin-project/lotus#11339](https://github.com/filecoin-project/lotus/pull/11339)) | ||||
| 
 | ||||
| ## Others | ||||
| - chore: nv-skeleton for feat/nv21-branch ([filecoin-project/lotus#11176](https://github.com/filecoin-project/lotus/pull/11176)) | ||||
| - chore: chain/actors: Use type proxies instead of versioned GST imports ([filecoin-project/lotus#11216](https://github.com/filecoin-project/lotus/pull/11216)) | ||||
| - chore: butterfly: Add preliminary nv21 assets ([filecoin-project/lotus#11293](https://github.com/filecoin-project/lotus/pull/11293)) | ||||
| - chore: butterfly: Update Butterfly Assets ([filecoin-project/lotus#11312](https://github.com/filecoin-project/lotus/pull/11312)) | ||||
| - chore: release: Set calibration upgrade height ([filecoin-project/lotus#11331](https://github.com/filecoin-project/lotus/pull/11331)) | ||||
| - chore: build: bump version to 1.24.0-rc1 ([filecoin-project/lotus#11332](https://github.com/filecoin-project/lotus/pull/11332)) | ||||
| 
 | ||||
| # v1.23.4-rc2 / 2023-09-27 | ||||
| 
 | ||||
|  | ||||
| @ -21,7 +21,6 @@ import ( | ||||
| 	"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/v9/market" | ||||
| 	"github.com/filecoin-project/go-state-types/builtin/v9/miner" | ||||
| 	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/dline" | ||||
| @ -29,7 +28,7 @@ import ( | ||||
| 
 | ||||
| 	apitypes "github.com/filecoin-project/lotus/api/types" | ||||
| 	"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/types" | ||||
| 	"github.com/filecoin-project/lotus/chain/types/ethtypes" | ||||
| @ -499,9 +498,9 @@ type FullNode interface { | ||||
| 	// expiration epoch
 | ||||
| 	StateSectorGetInfo(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*miner.SectorOnChainInfo, error) //perm:read
 | ||||
| 	// 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(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
 | ||||
| 	//
 | ||||
| 	// NOTE: If a replacing message is found on chain, this method will return
 | ||||
|  | ||||
| @ -14,6 +14,7 @@ import ( | ||||
| 	"github.com/filecoin-project/go-state-types/dline" | ||||
| 
 | ||||
| 	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/ethtypes" | ||||
| 	"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/big" | ||||
| 	"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" | ||||
| 
 | ||||
| 	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/storage/pipeline/sealiface" | ||||
| 	"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
 | ||||
| type PieceDealInfo struct { | ||||
| 	// "Old" builtin-market deal info
 | ||||
| 	PublishCid   *cid.Cid | ||||
| 	DealID       abi.DealID | ||||
| 	DealProposal *market.DealProposal | ||||
| 
 | ||||
| 	// Common deal info
 | ||||
| 	DealSchedule DealSchedule | ||||
| 
 | ||||
| 	// Best-effort deal asks
 | ||||
| 	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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Channel")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Channel")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Vouchers")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Vouchers")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("WaitSentinel")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("WaitSentinel")); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| @ -163,13 +163,32 @@ func (t *PaymentInfo) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 			} | ||||
| 
 | ||||
| 			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)
 | ||||
| @ -214,7 +233,7 @@ func (t *SealedRef) MarshalCBOR(w io.Writer) error { | ||||
| 	if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Size"))); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Size")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Size")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Offset")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Offset")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("SectorID")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("SectorID")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Refs")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Refs")); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| @ -447,13 +466,22 @@ func (t *SealedRefs) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 			} | ||||
| 
 | ||||
| 			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: | ||||
| @ -484,7 +512,7 @@ func (t *SealTicket) MarshalCBOR(w io.Writer) error { | ||||
| 	if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Epoch"))); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Epoch")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Epoch")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Value")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Value")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Epoch")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Epoch")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Value")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Value")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("DealID")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("DealID")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("PublishCid")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("PublishCid")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("DealProposal")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("DealProposal")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("DealSchedule")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("DealSchedule")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("KeepUnsealed")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("KeepUnsealed")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Piece")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Piece")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("DealInfo")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("DealInfo")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("EndEpoch")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("EndEpoch")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("StartEpoch")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("StartEpoch")); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
|  | ||||
| @ -26,7 +26,6 @@ import ( | ||||
| 	"github.com/filecoin-project/go-jsonrpc/auth" | ||||
| 	"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/v9/miner" | ||||
| 	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/dline" | ||||
| @ -35,7 +34,7 @@ import ( | ||||
| 
 | ||||
| 	apitypes "github.com/filecoin-project/lotus/api/types" | ||||
| 	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/ethtypes" | ||||
| 	"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"` | ||||
| 
 | ||||
| 	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"` | ||||
| 
 | ||||
| 	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"` | ||||
| 
 | ||||
| @ -3829,14 +3828,14 @@ func (s *FullNodeStub) StateSearchMsg(p0 context.Context, p1 types.TipSetKey, p2 | ||||
| 	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 { | ||||
| 		return nil, ErrNotSupported | ||||
| 	} | ||||
| 	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 | ||||
| } | ||||
| 
 | ||||
| @ -3851,14 +3850,14 @@ func (s *FullNodeStub) StateSectorGetInfo(p0 context.Context, p1 address.Address | ||||
| 	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 { | ||||
| 		return nil, ErrNotSupported | ||||
| 	} | ||||
| 	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 | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -19,8 +19,8 @@ import ( | ||||
| 	datatransfer "github.com/filecoin-project/go-data-transfer/v2" | ||||
| 	"github.com/filecoin-project/go-fil-markets/retrievalmarket" | ||||
| 	"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/node/modules/dtypes" | ||||
| ) | ||||
|  | ||||
| @ -15,7 +15,6 @@ import ( | ||||
| 	"github.com/filecoin-project/go-fil-markets/storagemarket" | ||||
| 	"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/v9/miner" | ||||
| 	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/dline" | ||||
| @ -23,7 +22,7 @@ import ( | ||||
| 
 | ||||
| 	"github.com/filecoin-project/lotus/api" | ||||
| 	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" | ||||
| 	marketevents "github.com/filecoin-project/lotus/markets/loggers" | ||||
| 	"github.com/filecoin-project/lotus/node/modules/dtypes" | ||||
| @ -450,9 +449,9 @@ type FullNode interface { | ||||
| 	// expiration epoch
 | ||||
| 	StateSectorGetInfo(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*miner.SectorOnChainInfo, error) //perm:read
 | ||||
| 	// 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(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
 | ||||
| 	//
 | ||||
| 	// NOTE: If a replacing message is found on chain, this method will return
 | ||||
|  | ||||
| @ -14,6 +14,7 @@ import ( | ||||
| 	abinetwork "github.com/filecoin-project/go-state-types/network" | ||||
| 
 | ||||
| 	"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/node/modules/dtypes" | ||||
| ) | ||||
|  | ||||
| @ -17,7 +17,6 @@ import ( | ||||
| 	"github.com/filecoin-project/go-fil-markets/storagemarket" | ||||
| 	"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/v9/miner" | ||||
| 	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/dline" | ||||
| @ -25,7 +24,7 @@ import ( | ||||
| 
 | ||||
| 	"github.com/filecoin-project/lotus/api" | ||||
| 	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" | ||||
| 	marketevents "github.com/filecoin-project/lotus/markets/loggers" | ||||
| 	"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"` | ||||
| 
 | ||||
| 	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"` | ||||
| 
 | ||||
| 	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"` | ||||
| 
 | ||||
| @ -2245,14 +2244,14 @@ func (s *FullNodeStub) StateSearchMsgLimited(p0 context.Context, p1 cid.Cid, p2 | ||||
| 	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 { | ||||
| 		return nil, ErrNotSupported | ||||
| 	} | ||||
| 	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 | ||||
| } | ||||
| 
 | ||||
| @ -2267,14 +2266,14 @@ func (s *FullNodeStub) StateSectorGetInfo(p0 context.Context, p1 address.Address | ||||
| 	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 { | ||||
| 		return nil, ErrNotSupported | ||||
| 	} | ||||
| 	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 | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -12,11 +12,11 @@ import ( | ||||
| 	"github.com/filecoin-project/go-fil-markets/storagemarket" | ||||
| 	"github.com/filecoin-project/go-state-types/abi" | ||||
| 	"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/lotus/api" | ||||
| 	"github.com/filecoin-project/lotus/api/v1api" | ||||
| 	"github.com/filecoin-project/lotus/chain/actors/builtin/miner" | ||||
| 	"github.com/filecoin-project/lotus/chain/types" | ||||
| 	marketevents "github.com/filecoin-project/lotus/markets/loggers" | ||||
| ) | ||||
|  | ||||
| @ -52,9 +52,11 @@ func (t *NetRpcReq) MarshalCBOR(w io.Writer) error { | ||||
| 		return err | ||||
| 	} | ||||
| 	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)
 | ||||
| @ -151,12 +153,25 @@ func (t *NetRpcReq) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 	} | ||||
| 
 | ||||
| 	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)
 | ||||
| @ -183,6 +198,9 @@ func (t *NetRpcReq) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 			var maj byte | ||||
| 			var extra uint64 | ||||
| 			var err error | ||||
| 			_ = maj | ||||
| 			_ = extra | ||||
| 			_ = err | ||||
| 
 | ||||
| 			maj, extra, err = cr.ReadHeader() | ||||
| 			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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.Msg)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.Msg)); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							| @ -1,2 +1,2 @@ | ||||
| /dns4/bootstrap-0.butterfly.fildev.network/tcp/1347/p2p/12D3KooWD5mtdmjHQ1Puj9Md7SEfoa7kWMpwqUhAKsyYsBP56LQC | ||||
| /dns4/bootstrap-1.butterfly.fildev.network/tcp/1347/p2p/12D3KooWEoYPkm6o87ES6AppFY7d7WHJUQg7XVPRAyQZjEU31efQ | ||||
| /dns4/bootstrap-0.butterfly.fildev.network/tcp/1347/p2p/12D3KooWNwAkUtWuLtKCyyFP2vBzmpTHSrQao7KQx7Xfa8YvSg1N | ||||
| /dns4/bootstrap-1.butterfly.fildev.network/tcp/1347/p2p/12D3KooWPn8BDeNcctAcAGuxxiic8uMw2pAi3G5vgdFtfgRs5zBu | ||||
|  | ||||
| @ -97,25 +97,25 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet | ||||
| }, { | ||||
| 	Network:      "butterflynet", | ||||
| 	Version:      12, | ||||
| 	BundleGitTag: "v11.0.0", | ||||
| 	ManifestCid:  MustParseCid("bafy2bzaceaiy4dsxxus5xp5n5i4tjzkb7sc54mjz7qnk2efhgmsrobjesxnza"), | ||||
| 	BundleGitTag: "v12.0.0-rc.1", | ||||
| 	ManifestCid:  MustParseCid("bafy2bzaceb7s3k6zyuubqil7s2rwdcdyslqqx2fn2cj536yh3hexlyi4syyk6"), | ||||
| 	Actors: map[string]cid.Cid{ | ||||
| 		"account":          MustParseCid("bafk2bzacecfdqb7p3jakhaa3cqnzpt7hxmhghrbxvafsylqno3febx55fnidw"), | ||||
| 		"cron":             MustParseCid("bafk2bzaceavmqu2qihgbe3xdaotgypuzvdpiifnm7ll6rolks2u4lac6voosk"), | ||||
| 		"datacap":          MustParseCid("bafk2bzacealtvh65rzb34fmyzw4m2np2htnio4w3pn4alzqovwxkdbf23dvpo"), | ||||
| 		"eam":              MustParseCid("bafk2bzacedko6hcjmwpuwgma5pb4gr2wgyvregk3nqqjxit7dv4es6vh5cjoc"), | ||||
| 		"ethaccount":       MustParseCid("bafk2bzacedhcei2xnr34poxr4xziypm2obqlibke4cs2cjfnr3sz6nf6h7fyy"), | ||||
| 		"evm":              MustParseCid("bafk2bzacebn5lwxboiikhz67ajwa34v2lc4qevnhpwdnipbmrnutkvrrqkb46"), | ||||
| 		"init":             MustParseCid("bafk2bzacea6vw4esh5tg7mprv5jkbx5xcyilcy4vvf64lss32mjyuvv2mh5ng"), | ||||
| 		"multisig":         MustParseCid("bafk2bzacedq2afnwcfipay5twv5mgzjoio5bbjvyo4yqchdwqcr7wrareyx54"), | ||||
| 		"paymentchannel":   MustParseCid("bafk2bzacebbsvr7i7mqmaadyjibe5wxnv7bwvvec2wlgknuwda6ep45amnd5w"), | ||||
| 		"account":          MustParseCid("bafk2bzacebp7anjdtg2sohyt6lromx4xs7nujtwdfcsffnptphaayabx7ysxs"), | ||||
| 		"cron":             MustParseCid("bafk2bzacecu2y3awtemmglpkroiglulc2fj3gpdn6eazdqr6avcautiaighrg"), | ||||
| 		"datacap":          MustParseCid("bafk2bzacebbh5aynu3v3fluqqrcdsphleodoig42xkid2ccwdnff3avhbdop4"), | ||||
| 		"eam":              MustParseCid("bafk2bzacebzwt4v4hqoltiblhliwrnttxpr2dggbu3wsrvq4pwzisp7idu5w4"), | ||||
| 		"ethaccount":       MustParseCid("bafk2bzaceb5f6vgjkl7ic6ry5sjspqm2iij6qlcdovwi3haodb7wn37pgebii"), | ||||
| 		"evm":              MustParseCid("bafk2bzacebygt6zh6p52rkg2ugehm4k5yuu6f56i2pu6ywrmjez4n4zsje4p4"), | ||||
| 		"init":             MustParseCid("bafk2bzaceagyf3pwsthod7klfi25ow2zf2i5isfrrgr5ua3lvkgfojalrdbhw"), | ||||
| 		"multisig":         MustParseCid("bafk2bzacedgfo5mw2zqjwi37lah27sfxj4cw2abylgtxf3ucep4dyhgnppmqe"), | ||||
| 		"paymentchannel":   MustParseCid("bafk2bzacebm37tgu52cgzmiln6iip6etfmq73fd3qqz2j5gxlhtvachs7kw4c"), | ||||
| 		"placeholder":      MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"), | ||||
| 		"reward":           MustParseCid("bafk2bzaceafuh6idvaqqkj353vs4qdl42tcmvnymewu5zf4rq2nruxdyunses"), | ||||
| 		"storagemarket":    MustParseCid("bafk2bzaceb7bx4honi3byjllpdk6fea32dpu3vqvil3okodybdk5m3erlnwjw"), | ||||
| 		"storageminer":     MustParseCid("bafk2bzacebxjhofdr3sb2uhy2ky2vcijh4nhmwkh5xijtbgk6dzkknji2kn7a"), | ||||
| 		"storagepower":     MustParseCid("bafk2bzaceabskmmkas6njbowols7t4ib3bipa5abpomk3jtgfwojtzd7mjzfm"), | ||||
| 		"system":           MustParseCid("bafk2bzacedtuh7cht3fud7fb4avl4g2zbz57lc4ohiaufpaex6dkmdokn5rgo"), | ||||
| 		"verifiedregistry": MustParseCid("bafk2bzaceb37hxeuoo5rgf6ansrdl2ykm5v5zp6kireubn4orcopr67jbxv6k"), | ||||
| 		"reward":           MustParseCid("bafk2bzacedebvitdsztwebi44t5es4ls3p3hor252igzawr3s6uznmbvzh2ou"), | ||||
| 		"storagemarket":    MustParseCid("bafk2bzaceb2tdeqtt2eqpzeb3gezuchb7g7uzbd52bgvcdt6bg3ckq7oisb74"), | ||||
| 		"storageminer":     MustParseCid("bafk2bzaceaaztuglvw6pw5xohwfekbw47iyugbyftxrp6hwygsaiu6rebtcty"), | ||||
| 		"storagepower":     MustParseCid("bafk2bzacedxvlj5xmhytdjrjqyonz37duvxb2ioyzk75c27yypkqalxuh3xh6"), | ||||
| 		"system":           MustParseCid("bafk2bzacec3vwj2chzaram3iqupkbfiein5h2l5qiltlrngbju2vg5umelclm"), | ||||
| 		"verifiedregistry": MustParseCid("bafk2bzacedv2irkql7nil3w5v3ohqq3e54w62pxeoppjmaktzokolaaoh5ksu"), | ||||
| 	}, | ||||
| }, { | ||||
| 	Network: "calibrationnet", | ||||
| @ -203,25 +203,25 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet | ||||
| }, { | ||||
| 	Network:      "calibrationnet", | ||||
| 	Version:      12, | ||||
| 	BundleGitTag: "v11.0.0", | ||||
| 	ManifestCid:  MustParseCid("bafy2bzacec5fl7crmxyw234qsmijvffhssgqwuphyaejulbryhel2pxxrxgey"), | ||||
| 	BundleGitTag: "v12.0.0-rc.1", | ||||
| 	ManifestCid:  MustParseCid("bafy2bzacedrunxfqta5skb7q7x32lnp4efz2oq7fn226ffm7fu5iqs62jkmvs"), | ||||
| 	Actors: map[string]cid.Cid{ | ||||
| 		"account":          MustParseCid("bafk2bzacecrjovyiuh4jryepy4pxddzqjyrg2hfinxzbv37bpzlci54r5mkr6"), | ||||
| 		"cron":             MustParseCid("bafk2bzacedy76woxmtalmsuaji4kog6wmq4h2kcgcyv5wpxbdz7f2ls2tjjmw"), | ||||
| 		"datacap":          MustParseCid("bafk2bzacec2inqddxpfm3rufwqr752d2ok3ve4cxfhmloyosy6rj2krtkpwus"), | ||||
| 		"eam":              MustParseCid("bafk2bzacea6sxno66egkqz5rqjq4e22obkeblxl7e3funjifljuinmrc2ztzg"), | ||||
| 		"ethaccount":       MustParseCid("bafk2bzacecdsvs7xm3ncm66lsjqh65uzhr3rmu3dlux7qzdgpg737r4kslhxm"), | ||||
| 		"evm":              MustParseCid("bafk2bzaceaz3b66m2znt27clmbp2zi5jsobw6g2x6fiezynyijgtkehgqhq3a"), | ||||
| 		"init":             MustParseCid("bafk2bzacecdrw7uedx456hnowtyyhm63mkekdlkh3vmlhvqlya6pn6pokiq5y"), | ||||
| 		"multisig":         MustParseCid("bafk2bzaceaxyxvmng5cel5huzy5nezscm34s7wuzn2fhndexurs3xjtp7xg5i"), | ||||
| 		"paymentchannel":   MustParseCid("bafk2bzacedrmyc4c6u6ipdo7hwaagx3urr47r4pw6lwv257wqbj6roumwfvky"), | ||||
| 		"account":          MustParseCid("bafk2bzacechwwxdqvggkdylm37zldjsra2ivkdzwp7fee56bzxbzs544wv6u6"), | ||||
| 		"cron":             MustParseCid("bafk2bzacec4gdxxkqwxqqodsv6ug5dmdbqdfqwyqfek3yhxc2wweh5psxaeq6"), | ||||
| 		"datacap":          MustParseCid("bafk2bzacecq5ppfskxgv3iea3jarsix6jdduuhwsn4fbvngtbmzelzmlygorm"), | ||||
| 		"eam":              MustParseCid("bafk2bzacecb6cnwftvavpph4p34zs4psuy5xvbrhf7vszkva4npw6mw3c42xe"), | ||||
| 		"ethaccount":       MustParseCid("bafk2bzaceajmc3y3sedsqymfla3dzzqzmbu5kmr2iskm26ga2u34ll5fpztfw"), | ||||
| 		"evm":              MustParseCid("bafk2bzaced4sozr7m6rzcgpobzeiupghthfw6afumysu3oz6bxxirv74uo3vw"), | ||||
| 		"init":             MustParseCid("bafk2bzaceaewh7b6zl2egclm7fqzx2lsqr57i75lb6cj43ndoa4mal3k5ld3m"), | ||||
| 		"multisig":         MustParseCid("bafk2bzacednkwcpw5yzxjceoaliajgupzj6iqxe7ks2ll3unspbprbo5f2now"), | ||||
| 		"paymentchannel":   MustParseCid("bafk2bzacebaxhk4itfiuvbftg7kz5zxugqnvdgerobitjq4vl6q4orcwk6wqg"), | ||||
| 		"placeholder":      MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"), | ||||
| 		"reward":           MustParseCid("bafk2bzacecq3bhrkatwash5zhy2275ksaj3criqb6rox5e3hsyvz7mrl2jh3o"), | ||||
| 		"storagemarket":    MustParseCid("bafk2bzacedswrpkbh7jmttskllbblym7oj2ynxp7bxtj2fpbxsx55mraog6sc"), | ||||
| 		"storageminer":     MustParseCid("bafk2bzacecki6ckm7gf4uje3fxvw6x5f77ukaqctvcsfha6oaecvl67veh3sg"), | ||||
| 		"storagepower":     MustParseCid("bafk2bzacecjcvxwibkgpufeah33gfd2jzlqjx5rn2pguvvch2squon23u6kne"), | ||||
| 		"system":           MustParseCid("bafk2bzaceavvlgqbcwhy3c24aa24z23wcbzggmb66gj7x5if7o3fbvddaocc4"), | ||||
| 		"verifiedregistry": MustParseCid("bafk2bzacedmxdtnpy2mc63b6bi2h4vp4dfc6hxjckqnwaxyijgkpmangygcmk"), | ||||
| 		"reward":           MustParseCid("bafk2bzacedra77pcglf7vdca2itcaa4vd6xrxynxmgfgdjdxqxfwqyhtoxehy"), | ||||
| 		"storagemarket":    MustParseCid("bafk2bzacea7g46y7xxu2zjq2h75x6mmx3utz2uxnlvnwi6tzpsvulna3bmiva"), | ||||
| 		"storageminer":     MustParseCid("bafk2bzacecnh2ouohmonvebq7uughh4h3ppmg4cjsk74dzxlbbtlcij4xbzxq"), | ||||
| 		"storagepower":     MustParseCid("bafk2bzacedd3ka44k7d46ckbinjhv3diyuu2epgbyvhqqyjkc64qlrg3wlgzi"), | ||||
| 		"system":           MustParseCid("bafk2bzacecioupndtcnyw6iq2hbrxag3aufvczlv5nobnfbkbywqzcyfaa376"), | ||||
| 		"verifiedregistry": MustParseCid("bafk2bzaceavldupmf7bimeeacs67z5xdfdlfca6p7sn6bev3mt5ggepfqvhqo"), | ||||
| 	}, | ||||
| }, { | ||||
| 	Network: "caterpillarnet", | ||||
| @ -318,25 +318,25 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet | ||||
| }, { | ||||
| 	Network:      "caterpillarnet", | ||||
| 	Version:      12, | ||||
| 	BundleGitTag: "v11.0.0", | ||||
| 	ManifestCid:  MustParseCid("bafy2bzacebexc2jgzwr5ngn6jdnkwdqwwmcapajuypdgvopoe6bnvp4yxm4o2"), | ||||
| 	BundleGitTag: "v12.0.0-rc.1", | ||||
| 	ManifestCid:  MustParseCid("bafy2bzacedrimdbavexkdqldjwczbhlx4k5byshl363z62rrt6vkt7mbvnulu"), | ||||
| 	Actors: map[string]cid.Cid{ | ||||
| 		"account":          MustParseCid("bafk2bzaceanjiq5m3feytue5m7hhxfkob2ofg2greoct5tr77reuhrjglo66g"), | ||||
| 		"cron":             MustParseCid("bafk2bzaceavgd5qj6n744tukhdrvxejygzs3jnlizmcvjsdnxkgiimrd5jrys"), | ||||
| 		"datacap":          MustParseCid("bafk2bzacedmdywxwrzop2gmf4ys5stydlmvbe35j3nyr2efmf273briksuvse"), | ||||
| 		"eam":              MustParseCid("bafk2bzacec7qo7s72li7tqysllstlrxxm2dhfqv2w32pytel2e775cki4ozqm"), | ||||
| 		"ethaccount":       MustParseCid("bafk2bzaceaygtkliu26ubb7ivljrvaeesp5sbjlis5okzl35ishxioa2tlx4w"), | ||||
| 		"evm":              MustParseCid("bafk2bzacebo7iqzy2ophz4f3civzwlltec7q5fut7kmtfckr6vy33r6ic5eqe"), | ||||
| 		"init":             MustParseCid("bafk2bzaceb7uzzlsquqwrqhb2vpbvk3jgr4wp5i3smu2splnag2v5sppdehns"), | ||||
| 		"multisig":         MustParseCid("bafk2bzacebwibfqrytobl4pjtny244zkmfoomazbap3r5gddjryckx5js4csi"), | ||||
| 		"paymentchannel":   MustParseCid("bafk2bzacecuaa5esuxpouigxoamyl5gire2qqqhvyhewsig2x2j73f6ksh7go"), | ||||
| 		"account":          MustParseCid("bafk2bzacecereuhejfvodut5357cai4lmhsyr7uenhcxvmw6jpmhe6auuly32"), | ||||
| 		"cron":             MustParseCid("bafk2bzacebo2whgy6jla4jsf5j4ovlqm2e4eepedlpw5wadas33yxmunis4b4"), | ||||
| 		"datacap":          MustParseCid("bafk2bzacecjjncl7ftgj4mrzxxfxld74pt3pyfrxmcru7a5auab25b3aoixm6"), | ||||
| 		"eam":              MustParseCid("bafk2bzacebyvawfzoxy7k4yxrj5nd3amg4rcopmnslxdwpzumfhsz5ezk4sws"), | ||||
| 		"ethaccount":       MustParseCid("bafk2bzaceaccs76uc6osvb2iy6w2pumqei3wdjtxq7rgtsotobncmqoi7kzcg"), | ||||
| 		"evm":              MustParseCid("bafk2bzaceawxgjzjkhbqwj36wzxeqbtngdh6y2tp4wsi27k7tbg2ujhw5rsjg"), | ||||
| 		"init":             MustParseCid("bafk2bzacedws5od7o6ktqyo2hudmipxuubsv2lwxz45xxjn2zguze72t6zoik"), | ||||
| 		"multisig":         MustParseCid("bafk2bzacecb4wk6n4lrmml3tssn6cszd4dc7ttux3kzjatrawhg4o6ovrng6w"), | ||||
| 		"paymentchannel":   MustParseCid("bafk2bzacea3eb556mkjvosfbqfbyfg6dgu52rfnuctwzjy3b2bh2azredxzbo"), | ||||
| 		"placeholder":      MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"), | ||||
| 		"reward":           MustParseCid("bafk2bzaced4xxqhv63njf2ibvsqshlwikafctxev7aho5lgsfxyt2javjwvtw"), | ||||
| 		"storagemarket":    MustParseCid("bafk2bzacedwtx3xokqmbgkgkoqkdt6lam4ymdjb3eznlbtec5wcrtx74l2bpc"), | ||||
| 		"storageminer":     MustParseCid("bafk2bzacebbbe4sdo3xxkez7x7lkl6j46w34vx7eg7xswmdzhp7moa44p3wjg"), | ||||
| 		"storagepower":     MustParseCid("bafk2bzacedfgz6n24tjsor4pcayomim2f5f3a3fgyatmjgwxxeejna7okndda"), | ||||
| 		"system":           MustParseCid("bafk2bzacebxfzeom3d7ahcz2n2nlwp7ncv767bdbbrisugks4l6v7lcu2tmyg"), | ||||
| 		"verifiedregistry": MustParseCid("bafk2bzacedaws3or3twy45ltcxucgvqijsje4x675ph6vup2w35smlfneamno"), | ||||
| 		"reward":           MustParseCid("bafk2bzaceb2x5zgkrho373l3ippp6krs7brugssg6hj2tib22xmqjzdm2o25a"), | ||||
| 		"storagemarket":    MustParseCid("bafk2bzaced5j6drzmsebpxbf2dtptrc5tyidlbftdljqxavxqb57s2qpbvdek"), | ||||
| 		"storageminer":     MustParseCid("bafk2bzacedozwxc3c6nqqajafs3hsjviyijhthysd5two5ptm5fcdbwh224ag"), | ||||
| 		"storagepower":     MustParseCid("bafk2bzaceagp6ilkltsltwii66nz6a4zen4qtfk7rdkvdv3gzq7fbv4ivox3u"), | ||||
| 		"system":           MustParseCid("bafk2bzacedye5j5uxox7knb6zlnhseaadztyav76mjbyk5qslhhbpiy5cdtt2"), | ||||
| 		"verifiedregistry": MustParseCid("bafk2bzacecduww5pirr7dvaijjijw4gf6ygf7vipgxh4scvv6vseo46gueb46"), | ||||
| 	}, | ||||
| }, { | ||||
| 	Network: "devnet", | ||||
| @ -424,25 +424,25 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet | ||||
| }, { | ||||
| 	Network:      "devnet", | ||||
| 	Version:      12, | ||||
| 	BundleGitTag: "v11.0.0", | ||||
| 	ManifestCid:  MustParseCid("bafy2bzaceay35go4xbjb45km6o46e5bib3bi46panhovcbedrynzwmm3drr4i"), | ||||
| 	BundleGitTag: "v12.0.0-rc.1", | ||||
| 	ManifestCid:  MustParseCid("bafy2bzacebk6yiirh4ennphzyka7b6g6jzn3lt4lr5ht7rjwulnrcthjihapo"), | ||||
| 	Actors: map[string]cid.Cid{ | ||||
| 		"account":          MustParseCid("bafk2bzacecf2pprkbdlpm4e2xz3ufunxtgrgyh2ie3stuqiyhibsvdze7kvri"), | ||||
| 		"cron":             MustParseCid("bafk2bzaceasr5d2skowvzv5mzsyak6waqrgc46ewj6rzbapkfi5woom6n6bwa"), | ||||
| 		"datacap":          MustParseCid("bafk2bzaceaqd77gptubupda7rp7daxkxbkzwc253dxhiyoezxvj2tljmkgpny"), | ||||
| 		"eam":              MustParseCid("bafk2bzacedve6p4ye6zxydjbfs4ode5r2equ7rqzpyltujsq2lu6wyxnijfx4"), | ||||
| 		"ethaccount":       MustParseCid("bafk2bzacea25xfsxwew3h2crer6jlb4c5vwu2gtch2jh73ocuxjhupenyrugy"), | ||||
| 		"evm":              MustParseCid("bafk2bzacece5hivtkmi757lyfahgti7xuqgofodb2u65pxgf6oizfwiiwlcsi"), | ||||
| 		"init":             MustParseCid("bafk2bzacecxnr5y7qifzdqqiwfbjxv2yr7lbkcyu3e2mf5zjdncteupxdlquu"), | ||||
| 		"multisig":         MustParseCid("bafk2bzaceayap4k4u3lbysaeeixct5fvhmafy3fa5eagvdpk3i4a7ubfdpobe"), | ||||
| 		"paymentchannel":   MustParseCid("bafk2bzaceafgrz5wepbein35gie7rnsu7zttxvgllgdneuefmmy4j5izydtza"), | ||||
| 		"account":          MustParseCid("bafk2bzacedki4apynvdxxuoigmqkgaktgy2erjftoxqxqaklnelgveyaqknfu"), | ||||
| 		"cron":             MustParseCid("bafk2bzacebjpczf7qtcisy3zdp3sqoohxe75tgupmdo5dr26vh7orzrsjn3b2"), | ||||
| 		"datacap":          MustParseCid("bafk2bzacecz4esatk7gizdc7yvl6soigkelhix7izbc75q6eqtb7gjzavpcqc"), | ||||
| 		"eam":              MustParseCid("bafk2bzacebhtpd5mxfyovi7fgsfj62nhtmh4t5guob4sgq73ymgsk7473ltig"), | ||||
| 		"ethaccount":       MustParseCid("bafk2bzacebvdbbw5ag4qnxd7cif5mtakrw4wzv63diwl7awta5plaidfay4vg"), | ||||
| 		"evm":              MustParseCid("bafk2bzacebb7vrhprnshn52bzfmypjdpcrcfecapk232a6gapk3kghu2mp67q"), | ||||
| 		"init":             MustParseCid("bafk2bzaceaw4iouukgqxmwukfpt3sakdvsu75ftjvw47swnwtdftz5oszbt4w"), | ||||
| 		"multisig":         MustParseCid("bafk2bzaceahyjwf6re4mnuwhopglo3qzh6aboluboncpijm7vuiz3u4bkazho"), | ||||
| 		"paymentchannel":   MustParseCid("bafk2bzaceaupjw3djghaqw3g3hd4tw7uuas3njkszgzx2fhmgqh5eh4e6q2by"), | ||||
| 		"placeholder":      MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"), | ||||
| 		"reward":           MustParseCid("bafk2bzacedwbtfqlx47fdkxjrb5mwiatheci44x3zkpx33smybc2cme23ymuo"), | ||||
| 		"storagemarket":    MustParseCid("bafk2bzaceaj74fmooaf3gj3ebwon64ky7hhdh7kytdr3agclqfrqzmpzykh7g"), | ||||
| 		"storageminer":     MustParseCid("bafk2bzacedb7bokkzzs7hnbhivp74pgcpermuy7j6b3ncodylksukkxtnn7ze"), | ||||
| 		"storagepower":     MustParseCid("bafk2bzacedilnkegizkxz3nuutib4d4wwlk4bkla22loepia2h53yf4hysmq6"), | ||||
| 		"system":           MustParseCid("bafk2bzacedpyoncjbl4oxkjm5e77ngvpy2xfajjc4myfsv2vltvzxioattlu2"), | ||||
| 		"verifiedregistry": MustParseCid("bafk2bzacebdqi5tr5pjnem5nylg2zbqcugvi7oxi35bhnrfudx4y4ufhlit2k"), | ||||
| 		"reward":           MustParseCid("bafk2bzacebzso6xkjxdscbpncw7el2d4hap6lfkgwqzrbc76lzp33vkwk6obc"), | ||||
| 		"storagemarket":    MustParseCid("bafk2bzacebzg74vyk3gzbhnz4zviwvxblyar574mtd6ayognmsvlkriejmunu"), | ||||
| 		"storageminer":     MustParseCid("bafk2bzaceajgt523lr2sf6cacvzo3goyalljlkaoeehyhxlv57wevkljw2cps"), | ||||
| 		"storagepower":     MustParseCid("bafk2bzacebbtj2m2ajawfuzxqz5nmdep7xevjo2qfjqa5tx3vr5m6qojolya4"), | ||||
| 		"system":           MustParseCid("bafk2bzacecnau5wddulbsvwn75tc3w75jrlvkybgrlxs4ngonqab6xq3eowvg"), | ||||
| 		"verifiedregistry": MustParseCid("bafk2bzacec37mddea65nvh4htsagtryfa3sq6i67utcupslyhzbhjhoy6hopa"), | ||||
| 	}, | ||||
| }, { | ||||
| 	Network: "hyperspace", | ||||
| @ -553,25 +553,25 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet | ||||
| }, { | ||||
| 	Network:      "mainnet", | ||||
| 	Version:      12, | ||||
| 	BundleGitTag: "v11.0.0", | ||||
| 	ManifestCid:  MustParseCid("bafy2bzacecnhaiwcrpyjvzl4uv4q3jzoif26okl3m66q3cijp3dfwlcxwztwo"), | ||||
| 	BundleGitTag: "v12.0.0-rc.1", | ||||
| 	ManifestCid:  MustParseCid("bafy2bzacebxmnxdgt2usdrcrpotgodr75culawwv4eklaun4lu6vlxecql6h2"), | ||||
| 	Actors: map[string]cid.Cid{ | ||||
| 		"account":          MustParseCid("bafk2bzacealnlr7st6lkwoh6wxpf2hnrlex5sknaopgmkr2tuhg7vmbfy45so"), | ||||
| 		"cron":             MustParseCid("bafk2bzacebpewdvvgt6tk2o2u4rcovdgym67tadiis5usemlbejg7k3kt567o"), | ||||
| 		"datacap":          MustParseCid("bafk2bzacebslykoyrb2hm7aacjngqgd5n2wmeii2goadrs5zaya3pvdf6pdnq"), | ||||
| 		"eam":              MustParseCid("bafk2bzaceaelwt4yfsfvsu3pa3miwalsvy3cfkcjvmt4sqoeopsppnrmj2mf2"), | ||||
| 		"ethaccount":       MustParseCid("bafk2bzaceclkmc4yidxc6lgcjpfypbde2eddnevcveo4j5kmh4ek6inqysz2k"), | ||||
| 		"evm":              MustParseCid("bafk2bzacediwh6etwzwmb5pivtclpdplewdjzphouwqpppce6opisjv2fjqfe"), | ||||
| 		"init":             MustParseCid("bafk2bzaceckwf3w6n2nw6eh77ktmsxqgsvshonvgnyk5q5syyngtetxvasfxg"), | ||||
| 		"multisig":         MustParseCid("bafk2bzaceafajceqwg5ybiz7xw6rxammuirkgtuv625gzaehsqfprm4bazjmk"), | ||||
| 		"paymentchannel":   MustParseCid("bafk2bzaceb4e6cnsnviegmqvsmoxzncruvhra54piq7bwiqfqevle6oob2gvo"), | ||||
| 		"account":          MustParseCid("bafk2bzaceboftg75mdiba7xbo2i3uvgtca4brhnr3u5ptihonixgpnrvhpxoa"), | ||||
| 		"cron":             MustParseCid("bafk2bzacechxjkfe2cehx4s7skj3wzfpzf7zolds64khrrrs66bhazsemktls"), | ||||
| 		"datacap":          MustParseCid("bafk2bzacebpiwb2ml4qbnnaayxumtk43ryhc63exdgnhivy3hwgmzemawsmpq"), | ||||
| 		"eam":              MustParseCid("bafk2bzaceb3elj4hfbbjp7g5bptc7su7mptszl4nlqfedilxvstjo5ungm6oe"), | ||||
| 		"ethaccount":       MustParseCid("bafk2bzaceb4gkau2vgsijcxpfuq33bd7w3efr2rrhxrwiacjmns2ntdiamswq"), | ||||
| 		"evm":              MustParseCid("bafk2bzacecmnyfiwb52tkbwmm2dsd7ysi3nvuxl3lmspy7pl26wxj4zj7w4wi"), | ||||
| 		"init":             MustParseCid("bafk2bzacebllyegx5r6lggf6ymyetbp7amacwpuxakhtjvjtvoy2bfkzk3vms"), | ||||
| 		"multisig":         MustParseCid("bafk2bzacecw5lyp3n3t67xdwrmo36h4z7afc3lobmmr6wg55w6yjzg5jhmh42"), | ||||
| 		"paymentchannel":   MustParseCid("bafk2bzacectv4cm47bnhga5febf3lo3fq47g72kmmp2xd5s6tcxz7hiqdywa4"), | ||||
| 		"placeholder":      MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"), | ||||
| 		"reward":           MustParseCid("bafk2bzacebwjw2vxkobs7r2kwjdqqb42h2kucyuk6flbnyzw4odg5s4mogamo"), | ||||
| 		"storagemarket":    MustParseCid("bafk2bzaceazu2j2zu4p24tr22btnqzkhzjvyjltlvsagaj6w3syevikeb5d7m"), | ||||
| 		"storageminer":     MustParseCid("bafk2bzacec24okjqrp7c7rj3hbrs5ez5apvwah2ruka6haesgfngf37mhk6us"), | ||||
| 		"storagepower":     MustParseCid("bafk2bzaceaxgloxuzg35vu7l7tohdgaq2frsfp4ejmuo7tkoxjp5zqrze6sf4"), | ||||
| 		"system":           MustParseCid("bafk2bzaced7npe5mt5nh72jxr2igi2sofoa7gedt4w6kueeke7i3xxugqpjfm"), | ||||
| 		"verifiedregistry": MustParseCid("bafk2bzacedej3dnr62g2je2abmyjg3xqv4otvh6e26du5fcrhvw7zgcaaez3a"), | ||||
| 		"reward":           MustParseCid("bafk2bzacealqnxn5lwzwexd6reav4dppypquklx2ujlnvaxiqk2tzstyvkp5u"), | ||||
| 		"storagemarket":    MustParseCid("bafk2bzacedylkg5am446lcuih4voyzdn4yjeqfsxfzh5b6mcuhx4mok5ph5c4"), | ||||
| 		"storageminer":     MustParseCid("bafk2bzacea56yi2khvvorofkf2t4rb5fbmltahrjtauszirdjz4jbunt55xsk"), | ||||
| 		"storagepower":     MustParseCid("bafk2bzacecsij5tpfzjpfuckxvccv2p3bdqjklkrfyyoei6lx5dyj5j4fvjm6"), | ||||
| 		"system":           MustParseCid("bafk2bzacebfqrja2hip7esf4eafxjmu6xcogoqu5xxtgdg7xa5szgvvdguchu"), | ||||
| 		"verifiedregistry": MustParseCid("bafk2bzacedudgflxc75c77c6zkmfyq4u2xuk7k6xw6dfdccarjrvxx453b77q"), | ||||
| 	}, | ||||
| }, { | ||||
| 	Network: "testing", | ||||
| @ -659,25 +659,25 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet | ||||
| }, { | ||||
| 	Network:      "testing", | ||||
| 	Version:      12, | ||||
| 	BundleGitTag: "v11.0.0", | ||||
| 	ManifestCid:  MustParseCid("bafy2bzacea2vxre32tg3xhpejrktiuzx4d3pcoe7yyazgscfibmegmchr6n42"), | ||||
| 	BundleGitTag: "v12.0.0-rc.1", | ||||
| 	ManifestCid:  MustParseCid("bafy2bzacebzcqzzlb5iwrledyuyy7pvob3xwzoxqsrvrbrnpaiejb52na5eza"), | ||||
| 	Actors: map[string]cid.Cid{ | ||||
| 		"account":          MustParseCid("bafk2bzaceccerssb3tgel6ukdghlwvs7dxsolj4fpkgn7dh7owzwapqb6ejpw"), | ||||
| 		"cron":             MustParseCid("bafk2bzacebtfl6fczxnitrqqjhyefskf3asyn3gzuvqcddieoqfsaddk5fd4q"), | ||||
| 		"datacap":          MustParseCid("bafk2bzacediikc55y6uzmnhucf4mik6rqpjulwvgp5gdibogxjhgbvusmzff2"), | ||||
| 		"eam":              MustParseCid("bafk2bzaceazqi5ezossp6kvqogaaba6hxlfarqgniktmb7iy5qonha3eflz6m"), | ||||
| 		"ethaccount":       MustParseCid("bafk2bzaceb77ospgfqqmf67v23wkyeg7lr2mu53ybaacu3bslx7s7nhttdueo"), | ||||
| 		"evm":              MustParseCid("bafk2bzacedvgt7mv22hux4vrnklylq7qmw43kfrqwam6wdsfzkdnaewr33qbu"), | ||||
| 		"init":             MustParseCid("bafk2bzacealzb3nk2oypway5ubz3hs5py5ok5tuw545454vg4d3mwbslef4js"), | ||||
| 		"multisig":         MustParseCid("bafk2bzacec45ppn4hrwizmopp2v2atkxw35tb6yem6uqhqilrv7aiaknnnxmu"), | ||||
| 		"paymentchannel":   MustParseCid("bafk2bzaceajbr3t6cngzh3katqteflbcrtwtdgbthnlfemon5tg6rytf2uonw"), | ||||
| 		"account":          MustParseCid("bafk2bzacea74qqkfvacykmq5emzqblh4f4nmxdkiyixxpzs7kkcfnbfa7cb6m"), | ||||
| 		"cron":             MustParseCid("bafk2bzacecotbu7k6awdzfzakf7g5iaas6gswtunjnnb2xm2klqoshjgb4imy"), | ||||
| 		"datacap":          MustParseCid("bafk2bzaceduhmqcyailiwdupt2ottfzh5hcrjoyeyiaipf3idk3mu7y3uz2mc"), | ||||
| 		"eam":              MustParseCid("bafk2bzaceb2yzzw6dcmcmhnt3mqnm4kah66f23pc4escnto3vwa552t6ctr7i"), | ||||
| 		"ethaccount":       MustParseCid("bafk2bzacebwkvvbmttkcjjlicp4ineozc52i5sc6d46pcoq6lzzs2p5i2youa"), | ||||
| 		"evm":              MustParseCid("bafk2bzacedetwacs6wmoksxwjlbpp4442uav7fd3pagadejm2cph7ucym7eck"), | ||||
| 		"init":             MustParseCid("bafk2bzacedhpoycn4sz7dragmbo5yqjspqriydxhplqdeguaqck2hmq5hgwqg"), | ||||
| 		"multisig":         MustParseCid("bafk2bzaceacc3m23yvnpzoeekstqtr2acutfv4zvsgncorjdrsucymjohzxs4"), | ||||
| 		"paymentchannel":   MustParseCid("bafk2bzaceac6i76vfexefqf6qgebkhkf2cb4g664d5nmfh2dric5spgykevd2"), | ||||
| 		"placeholder":      MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"), | ||||
| 		"reward":           MustParseCid("bafk2bzacea7ycf53kbq4robcuh3ziy7qwwhaqamc5krn3lugypgpxhlewdaiq"), | ||||
| 		"storagemarket":    MustParseCid("bafk2bzacedskmbcpaeb6bezs32szh52jrukvihobluadauayroo5gzrt32tkm"), | ||||
| 		"storageminer":     MustParseCid("bafk2bzaced3yg5lctmswnbkxyd6cleg3llyux7fu2vbddyd2ho36fpym423mq"), | ||||
| 		"storagepower":     MustParseCid("bafk2bzacebvpdf372fzxgixztbz2r7ayxyvx7jmdxwlfuqt2cq7tnqgie3klw"), | ||||
| 		"system":           MustParseCid("bafk2bzaceaatvscbnkv36ixhtt2zel4er5oskxevgumh5gegqkv7uzah36f24"), | ||||
| 		"verifiedregistry": MustParseCid("bafk2bzacebp2r56wxadvfzpfbmqwfi3dlnwpmoc5u4tau2hfftbkuafkhye64"), | ||||
| 		"reward":           MustParseCid("bafk2bzaceaajyncjxcrl7wbb6ukzkueyqz4uyekxpmtn4mpndkf7ksmggopzq"), | ||||
| 		"storagemarket":    MustParseCid("bafk2bzaced6cexdcinwjhtfvuxgkxukiejp3goylaxtvhqfd24rs5z7g2z7dm"), | ||||
| 		"storageminer":     MustParseCid("bafk2bzacecw6jvvfu62jkwsa4vzmn262cjrrxh6wza6nvjsyg5aeix7rzgmbe"), | ||||
| 		"storagepower":     MustParseCid("bafk2bzacedexrf5qplrrl5xzijfrthjdqwodfs5e6zj5kpztc7qnywbqdyiii"), | ||||
| 		"system":           MustParseCid("bafk2bzacecp4roanbxq3bflftlkipsoqqxio5etjjnzxus5pcu7lq43fnxb34"), | ||||
| 		"verifiedregistry": MustParseCid("bafk2bzaceandytrgcnuvizfi47sijbqh6c243vjtzlzumexm6kjv7s7hye45g"), | ||||
| 	}, | ||||
| }, { | ||||
| 	Network: "testing-fake-proofs", | ||||
| @ -765,24 +765,24 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet | ||||
| }, { | ||||
| 	Network:      "testing-fake-proofs", | ||||
| 	Version:      12, | ||||
| 	BundleGitTag: "v11.0.0", | ||||
| 	ManifestCid:  MustParseCid("bafy2bzacecojemqglhzzhjnhgtrcbsgkyv67ziytvtbhwlr4ym4oxqofv7zui"), | ||||
| 	BundleGitTag: "v12.0.0-rc.1", | ||||
| 	ManifestCid:  MustParseCid("bafy2bzacedtskkmrkkzairdi66syrmvfpydg63ro4dlmmqeta5krnur4hcp3a"), | ||||
| 	Actors: map[string]cid.Cid{ | ||||
| 		"account":          MustParseCid("bafk2bzaceccerssb3tgel6ukdghlwvs7dxsolj4fpkgn7dh7owzwapqb6ejpw"), | ||||
| 		"cron":             MustParseCid("bafk2bzacebtfl6fczxnitrqqjhyefskf3asyn3gzuvqcddieoqfsaddk5fd4q"), | ||||
| 		"datacap":          MustParseCid("bafk2bzacediikc55y6uzmnhucf4mik6rqpjulwvgp5gdibogxjhgbvusmzff2"), | ||||
| 		"eam":              MustParseCid("bafk2bzaceazqi5ezossp6kvqogaaba6hxlfarqgniktmb7iy5qonha3eflz6m"), | ||||
| 		"ethaccount":       MustParseCid("bafk2bzaceb77ospgfqqmf67v23wkyeg7lr2mu53ybaacu3bslx7s7nhttdueo"), | ||||
| 		"evm":              MustParseCid("bafk2bzacedvgt7mv22hux4vrnklylq7qmw43kfrqwam6wdsfzkdnaewr33qbu"), | ||||
| 		"init":             MustParseCid("bafk2bzacealzb3nk2oypway5ubz3hs5py5ok5tuw545454vg4d3mwbslef4js"), | ||||
| 		"multisig":         MustParseCid("bafk2bzacec45ppn4hrwizmopp2v2atkxw35tb6yem6uqhqilrv7aiaknnnxmu"), | ||||
| 		"paymentchannel":   MustParseCid("bafk2bzaceajbr3t6cngzh3katqteflbcrtwtdgbthnlfemon5tg6rytf2uonw"), | ||||
| 		"account":          MustParseCid("bafk2bzacea74qqkfvacykmq5emzqblh4f4nmxdkiyixxpzs7kkcfnbfa7cb6m"), | ||||
| 		"cron":             MustParseCid("bafk2bzacecotbu7k6awdzfzakf7g5iaas6gswtunjnnb2xm2klqoshjgb4imy"), | ||||
| 		"datacap":          MustParseCid("bafk2bzaceduhmqcyailiwdupt2ottfzh5hcrjoyeyiaipf3idk3mu7y3uz2mc"), | ||||
| 		"eam":              MustParseCid("bafk2bzaceb2yzzw6dcmcmhnt3mqnm4kah66f23pc4escnto3vwa552t6ctr7i"), | ||||
| 		"ethaccount":       MustParseCid("bafk2bzacebwkvvbmttkcjjlicp4ineozc52i5sc6d46pcoq6lzzs2p5i2youa"), | ||||
| 		"evm":              MustParseCid("bafk2bzacedetwacs6wmoksxwjlbpp4442uav7fd3pagadejm2cph7ucym7eck"), | ||||
| 		"init":             MustParseCid("bafk2bzacedhpoycn4sz7dragmbo5yqjspqriydxhplqdeguaqck2hmq5hgwqg"), | ||||
| 		"multisig":         MustParseCid("bafk2bzaceacc3m23yvnpzoeekstqtr2acutfv4zvsgncorjdrsucymjohzxs4"), | ||||
| 		"paymentchannel":   MustParseCid("bafk2bzaceac6i76vfexefqf6qgebkhkf2cb4g664d5nmfh2dric5spgykevd2"), | ||||
| 		"placeholder":      MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"), | ||||
| 		"reward":           MustParseCid("bafk2bzacea7ycf53kbq4robcuh3ziy7qwwhaqamc5krn3lugypgpxhlewdaiq"), | ||||
| 		"storagemarket":    MustParseCid("bafk2bzacedskmbcpaeb6bezs32szh52jrukvihobluadauayroo5gzrt32tkm"), | ||||
| 		"storageminer":     MustParseCid("bafk2bzacebqeztpa5exztccqjwqhan5droiy7ga6zekm6f2gzxoe655vneczm"), | ||||
| 		"storagepower":     MustParseCid("bafk2bzaceb2tlyuwxncdxsh3hc4fwcjnpxaijkiv54ustwdjbrqabxdsc27km"), | ||||
| 		"system":           MustParseCid("bafk2bzaceaatvscbnkv36ixhtt2zel4er5oskxevgumh5gegqkv7uzah36f24"), | ||||
| 		"verifiedregistry": MustParseCid("bafk2bzacebp2r56wxadvfzpfbmqwfi3dlnwpmoc5u4tau2hfftbkuafkhye64"), | ||||
| 		"reward":           MustParseCid("bafk2bzaceaajyncjxcrl7wbb6ukzkueyqz4uyekxpmtn4mpndkf7ksmggopzq"), | ||||
| 		"storagemarket":    MustParseCid("bafk2bzaced6cexdcinwjhtfvuxgkxukiejp3goylaxtvhqfd24rs5z7g2z7dm"), | ||||
| 		"storageminer":     MustParseCid("bafk2bzacea54x727xteh3tl46mitigy6cldqusqjxiwni65wrpofidh62k2ds"), | ||||
| 		"storagepower":     MustParseCid("bafk2bzacecdwijcbbryinjtm27pdinqqkyzoskri24pwsvsadwcq2alkkjpnc"), | ||||
| 		"system":           MustParseCid("bafk2bzacecp4roanbxq3bflftlkipsoqqxio5etjjnzxus5pcu7lq43fnxb34"), | ||||
| 		"verifiedregistry": MustParseCid("bafk2bzaceandytrgcnuvizfi47sijbqh6c243vjtzlzumexm6kjv7s7hye45g"), | ||||
| 	}, | ||||
| }} | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							| @ -19,7 +19,7 @@ var DrandSchedule = map[abi.ChainEpoch]DrandEnum{ | ||||
| 	0: DrandMainnet, | ||||
| } | ||||
| 
 | ||||
| const GenesisNetworkVersion = network.Version18 | ||||
| const GenesisNetworkVersion = network.Version20 | ||||
| 
 | ||||
| var NetworkBundle = "butterflynet" | ||||
| var BundleOverrides map[actorstypes.Version]string | ||||
| @ -52,13 +52,10 @@ const UpgradeOhSnapHeight = -18 | ||||
| const UpgradeSkyrHeight = -19 | ||||
| const UpgradeSharkHeight = -20 | ||||
| const UpgradeHyggeHeight = -21 | ||||
| const UpgradeLightningHeight = -22 | ||||
| const UpgradeThunderHeight = -23 | ||||
| 
 | ||||
| const UpgradeLightningHeight = 50 | ||||
| 
 | ||||
| const UpgradeThunderHeight = UpgradeLightningHeight + 360 | ||||
| 
 | ||||
| // ??????????
 | ||||
| const UpgradeWatermelonHeight = 999999999999999 | ||||
| const UpgradeWatermelonHeight = 400 | ||||
| 
 | ||||
| var SupportedProofTypes = []abi.RegisteredSealProof{ | ||||
| 	abi.RegisteredSealProof_StackedDrg512MiBV1, | ||||
|  | ||||
| @ -79,8 +79,8 @@ const UpgradeLightningHeight = 489094 | ||||
| // 2023-04-21T16:00:00Z
 | ||||
| const UpgradeThunderHeight = UpgradeLightningHeight + 3120 | ||||
| 
 | ||||
| // ??????????
 | ||||
| const UpgradeWatermelonHeight = 999999999999999 | ||||
| // 2023-10-19T13:00:00Z
 | ||||
| const UpgradeWatermelonHeight = 1013134 | ||||
| 
 | ||||
| var SupportedProofTypes = []abi.RegisteredSealProof{ | ||||
| 	abi.RegisteredSealProof_StackedDrg32GiBV1, | ||||
|  | ||||
| @ -37,7 +37,7 @@ func BuildTypeString() string { | ||||
| } | ||||
| 
 | ||||
| // BuildVersion is the local build version
 | ||||
| const BuildVersion = "1.25.0" | ||||
| const BuildVersion = "1.25.0-rc1" | ||||
| 
 | ||||
| func UserVersion() string { | ||||
| 	if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" { | ||||
|  | ||||
| @ -19,7 +19,7 @@ import ( | ||||
| 	"github.com/filecoin-project/lotus/chain/actors/adt" | ||||
| 	"github.com/filecoin-project/lotus/chain/actors" | ||||
| 	"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" | ||||
| 
 | ||||
| {{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-state-types/abi" | ||||
| 	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" | ||||
| 	market0 "github.com/filecoin-project/specs-actors/actors/builtin/market" | ||||
| 	adt0 "github.com/filecoin-project/specs-actors/actors/util/adt" | ||||
| 
 | ||||
| 	"github.com/filecoin-project/lotus/chain/actors" | ||||
| 	"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" | ||||
| ) | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										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" | ||||
| 	adt10 "github.com/filecoin-project/go-state-types/builtin/v10/util/adt" | ||||
| 	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/lotus/chain/actors" | ||||
| 	"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" | ||||
| ) | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										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" | ||||
| 	adt11 "github.com/filecoin-project/go-state-types/builtin/v11/util/adt" | ||||
| 	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/lotus/chain/actors" | ||||
| 	"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" | ||||
| ) | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										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" | ||||
| 	adt12 "github.com/filecoin-project/go-state-types/builtin/v12/util/adt" | ||||
| 	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/lotus/chain/actors" | ||||
| 	"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" | ||||
| ) | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										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-state-types/abi" | ||||
| 	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" | ||||
| 	market2 "github.com/filecoin-project/specs-actors/v2/actors/builtin/market" | ||||
| 	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/adt" | ||||
| 	verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" | ||||
| 	"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-state-types/abi" | ||||
| 	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" | ||||
| 	market3 "github.com/filecoin-project/specs-actors/v3/actors/builtin/market" | ||||
| 	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/adt" | ||||
| 	verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" | ||||
| 	"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-state-types/abi" | ||||
| 	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" | ||||
| 	market4 "github.com/filecoin-project/specs-actors/v4/actors/builtin/market" | ||||
| 	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/adt" | ||||
| 	verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" | ||||
| 	"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-state-types/abi" | ||||
| 	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" | ||||
| 	market5 "github.com/filecoin-project/specs-actors/v5/actors/builtin/market" | ||||
| 	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/adt" | ||||
| 	verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" | ||||
| 	"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" | ||||
| 	"github.com/filecoin-project/go-state-types/abi" | ||||
| 	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" | ||||
| 	market6 "github.com/filecoin-project/specs-actors/v6/actors/builtin/market" | ||||
| 	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/adt" | ||||
| 	verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" | ||||
| 	"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" | ||||
| 	"github.com/filecoin-project/go-state-types/abi" | ||||
| 	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" | ||||
| 	market7 "github.com/filecoin-project/specs-actors/v7/actors/builtin/market" | ||||
| 	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/adt" | ||||
| 	verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" | ||||
| 	"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" | ||||
| 	adt8 "github.com/filecoin-project/go-state-types/builtin/v8/util/adt" | ||||
| 	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/lotus/chain/actors" | ||||
| 	"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" | ||||
| ) | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										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" | ||||
| 	markettypes "github.com/filecoin-project/go-state-types/builtin/v9/market" | ||||
| 	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/lotus/chain/actors" | ||||
| 	"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" | ||||
| ) | ||||
| 
 | ||||
|  | ||||
| @ -154,7 +154,7 @@ type Partition interface { | ||||
| 
 | ||||
| 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 | ||||
| 	// ones in network version 8. | ||||
| 	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 { | ||||
| 	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: | ||||
| 		return abi.RegisteredSealProof_StackedDrg8MiBV1_1, nil | ||||
| 		return abi.RegisteredSealProof_StackedDrg8MiBV1_1_Feat_SyntheticPoRep, nil | ||||
| 	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: | ||||
| 		return abi.RegisteredSealProof_StackedDrg32GiBV1_1, nil | ||||
| 		return abi.RegisteredSealProof_StackedDrg32GiBV1_1_Feat_SyntheticPoRep, nil | ||||
| 	case abi.RegisteredPoStProof_StackedDrgWindow64GiBV1, abi.RegisteredPoStProof_StackedDrgWindow64GiBV1_1: | ||||
| 		return abi.RegisteredSealProof_StackedDrg64GiBV1_1, nil | ||||
| 		return abi.RegisteredSealProof_StackedDrg64GiBV1_1_Feat_SyntheticPoRep, nil | ||||
| 	default: | ||||
| 		return -1, xerrors.Errorf("unrecognized window post type: %d", proof) | ||||
| 	} | ||||
| @ -213,8 +230,37 @@ type PendingBeneficiaryChange = minertypes.PendingBeneficiaryChange | ||||
| type WorkerKeyChange = minertypes.WorkerKeyChange | ||||
| type SectorPreCommitOnChainInfo = minertypes.SectorPreCommitOnChainInfo | ||||
| 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 | ||||
| 
 | ||||
| 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 { | ||||
| 	OnTime abi.ChainEpoch | ||||
| 
 | ||||
|  | ||||
| @ -214,7 +214,7 @@ type Partition interface { | ||||
| 
 | ||||
| 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
 | ||||
| 	// ones in network version 8.
 | ||||
| 	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 { | ||||
| 	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: | ||||
| 		return abi.RegisteredSealProof_StackedDrg8MiBV1_1, nil | ||||
| 		return abi.RegisteredSealProof_StackedDrg8MiBV1_1_Feat_SyntheticPoRep, nil | ||||
| 	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: | ||||
| 		return abi.RegisteredSealProof_StackedDrg32GiBV1_1, nil | ||||
| 		return abi.RegisteredSealProof_StackedDrg32GiBV1_1_Feat_SyntheticPoRep, nil | ||||
| 	case abi.RegisteredPoStProof_StackedDrgWindow64GiBV1, abi.RegisteredPoStProof_StackedDrgWindow64GiBV1_1: | ||||
| 		return abi.RegisteredSealProof_StackedDrg64GiBV1_1, nil | ||||
| 		return abi.RegisteredSealProof_StackedDrg64GiBV1_1_Feat_SyntheticPoRep, nil | ||||
| 	default: | ||||
| 		return -1, xerrors.Errorf("unrecognized window post type: %d", proof) | ||||
| 	} | ||||
| @ -273,8 +290,37 @@ type PendingBeneficiaryChange = minertypes.PendingBeneficiaryChange | ||||
| type WorkerKeyChange = minertypes.WorkerKeyChange | ||||
| type SectorPreCommitOnChainInfo = minertypes.SectorPreCommitOnChainInfo | ||||
| 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 | ||||
| 
 | ||||
| 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 { | ||||
| 	OnTime abi.ChainEpoch | ||||
| 
 | ||||
|  | ||||
| @ -8,6 +8,8 @@ import ( | ||||
| 	"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) { | ||||
| 	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
 | ||||
| // 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 { | ||||
| 	case nv < network.Version7: | ||||
| 		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) | ||||
| 		} | ||||
| 	case nv >= network.Version7: | ||||
| 		var v abi.RegisteredSealProof | ||||
| 		switch ssize { | ||||
| 		case 2 << 10: | ||||
| 			return abi.RegisteredSealProof_StackedDrg2KiBV1_1, nil | ||||
| 			v = abi.RegisteredSealProof_StackedDrg2KiBV1_1 | ||||
| 		case 8 << 20: | ||||
| 			return abi.RegisteredSealProof_StackedDrg8MiBV1_1, nil | ||||
| 			v = abi.RegisteredSealProof_StackedDrg8MiBV1_1 | ||||
| 		case 512 << 20: | ||||
| 			return abi.RegisteredSealProof_StackedDrg512MiBV1_1, nil | ||||
| 			v = abi.RegisteredSealProof_StackedDrg512MiBV1_1 | ||||
| 		case 32 << 30: | ||||
| 			return abi.RegisteredSealProof_StackedDrg32GiBV1_1, nil | ||||
| 			v = abi.RegisteredSealProof_StackedDrg32GiBV1_1 | ||||
| 		case 64 << 30: | ||||
| 			return abi.RegisteredSealProof_StackedDrg64GiBV1_1, nil | ||||
| 			v = abi.RegisteredSealProof_StackedDrg64GiBV1_1 | ||||
| 		default: | ||||
| 			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") | ||||
| } | ||||
| 
 | ||||
| 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
 | ||||
| // new miner actors and new sectors
 | ||||
| func WindowPoStProofTypeFromSectorSize(ssize abi.SectorSize, nv network.Version) (abi.RegisteredPoStProof, error) { | ||||
|  | ||||
| @ -97,4 +97,6 @@ func AllCodes() []cid.Cid { | ||||
| type Allocation = verifregtypes.Allocation | ||||
| type AllocationId = verifregtypes.AllocationId | ||||
| 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 Claim = verifregtypes.Claim | ||||
| type ClaimId = verifregtypes.ClaimId | ||||
| 
 | ||||
| const NoAllocationID = verifregtypes.NoAllocationID | ||||
|  | ||||
| @ -560,8 +560,53 @@ func GetWinningPoStSectorSetLookback(nwVer network.Version) abi.ChainEpoch { | ||||
| 	return ChainFinality | ||||
| } | ||||
| 
 | ||||
| func GetMaxSectorExpirationExtension() abi.ChainEpoch { | ||||
| 	return miner12.MaxSectorExpirationExtension | ||||
| func GetMaxSectorExpirationExtension(nv network.Version) (abi.ChainEpoch, error) { | ||||
| 	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 { | ||||
| @ -577,7 +622,8 @@ func GetMaxPoStPartitions(nv network.Version, p abi.RegisteredPoStProof) (int, e | ||||
| 	if err != nil { | ||||
| 		return 0, err | ||||
| 	} | ||||
| 	return int(uint64(maxSectors) / sectorsPerPart), nil | ||||
| 
 | ||||
| 	return min(miner12.PoStedPartitionsMax, int(uint64(maxSectors)/sectorsPerPart)), nil | ||||
| } | ||||
| 
 | ||||
| func GetDefaultAggregationProof() abi.RegisteredAggregationProof { | ||||
| @ -820,3 +866,10 @@ func AggregatePreCommitNetworkFee(nwVer network.Version, aggregateSize int, base | ||||
| 		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 | ||||
| } | ||||
| 
 | ||||
| func GetMaxSectorExpirationExtension() abi.ChainEpoch { | ||||
| 	return miner{{.latestVersion}}.MaxSectorExpirationExtension | ||||
| func GetMaxSectorExpirationExtension(nv network.Version) (abi.ChainEpoch, error) { | ||||
| 	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 { | ||||
| @ -240,7 +252,8 @@ func GetMaxPoStPartitions(nv network.Version, p abi.RegisteredPoStProof) (int, e | ||||
| 	if err != nil { | ||||
| 		return 0, err | ||||
| 	} | ||||
| 	return int(uint64(maxSectors) / sectorsPerPart), nil | ||||
| 
 | ||||
| 	return min(miner{{.latestVersion}}.PoStedPartitionsMax, int(uint64(maxSectors) / sectorsPerPart)), nil | ||||
| } | ||||
| 
 | ||||
| func GetDefaultAggregationProof() abi.RegisteredAggregationProof { | ||||
| @ -329,3 +342,10 @@ func AggregatePreCommitNetworkFee(nwVer network.Version, aggregateSize int, base | ||||
| 		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/filecoin-project/go-state-types/abi" | ||||
| 	"github.com/filecoin-project/go-state-types/network" | ||||
| 	builtin0 "github.com/filecoin-project/specs-actors/actors/builtin" | ||||
| 	miner0 "github.com/filecoin-project/specs-actors/actors/builtin/miner" | ||||
| 	paych0 "github.com/filecoin-project/specs-actors/actors/builtin/paych" | ||||
| @ -74,13 +73,3 @@ func TestPartitionSizes(t *testing.T) { | ||||
| 		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 | ||||
| 	} | ||||
| 	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)
 | ||||
| @ -106,12 +108,25 @@ func (t *Request) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 	} | ||||
| 
 | ||||
| 	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)
 | ||||
| @ -173,7 +188,7 @@ func (t *Response) MarshalCBOR(w io.Writer) error { | ||||
| 	if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.ErrorMessage))); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.ErrorMessage)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.ErrorMessage)); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| @ -260,13 +275,32 @@ func (t *Response) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 	} | ||||
| 
 | ||||
| 	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 | ||||
| @ -317,9 +351,11 @@ func (t *CompactedMessages) MarshalCBOR(w io.Writer) error { | ||||
| 			return err | ||||
| 		} | ||||
| 		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 | ||||
| 			} | ||||
| 
 | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| @ -354,9 +390,11 @@ func (t *CompactedMessages) MarshalCBOR(w io.Writer) error { | ||||
| 			return err | ||||
| 		} | ||||
| 		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 nil | ||||
| @ -405,13 +443,32 @@ func (t *CompactedMessages) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 	} | ||||
| 
 | ||||
| 	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)
 | ||||
| @ -438,6 +495,9 @@ func (t *CompactedMessages) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 			var maj byte | ||||
| 			var extra uint64 | ||||
| 			var err error | ||||
| 			_ = maj | ||||
| 			_ = extra | ||||
| 			_ = err | ||||
| 
 | ||||
| 			maj, extra, err = cr.ReadHeader() | ||||
| 			if err != nil { | ||||
| @ -457,17 +517,27 @@ func (t *CompactedMessages) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 			} | ||||
| 
 | ||||
| 			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++ { | ||||
| 		{ | ||||
| 			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)
 | ||||
| @ -526,6 +615,9 @@ func (t *CompactedMessages) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 			var maj byte | ||||
| 			var extra uint64 | ||||
| 			var err error | ||||
| 			_ = maj | ||||
| 			_ = extra | ||||
| 			_ = err | ||||
| 
 | ||||
| 			maj, extra, err = cr.ReadHeader() | ||||
| 			if err != nil { | ||||
| @ -545,17 +637,27 @@ func (t *CompactedMessages) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 			} | ||||
| 
 | ||||
| 			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++ { | ||||
| 		{ | ||||
| 			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)
 | ||||
|  | ||||
| @ -578,7 +578,7 @@ func MakeGenesisBlock(ctx context.Context, j journal.Journal, bs bstore.Blocksto | ||||
| 	} | ||||
| 
 | ||||
| 	// 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 { | ||||
| 		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
 | ||||
| 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()) | ||||
| 	av, err := actorstypes.VersionForNetwork(nv) | ||||
| @ -125,14 +125,18 @@ func SetupStorageMiners(ctx context.Context, cs *store.ChainStore, sys vm.Syscal | ||||
| 		sectorWeight []abi.StoragePower | ||||
| 	}, 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) | ||||
| 	for i, m := range miners { | ||||
| 		// Create miner through power actor
 | ||||
| 		i := i | ||||
| 		m := m | ||||
| 
 | ||||
| 		spt, err := miner.SealProofTypeFromSectorSize(m.SectorSize, nv) | ||||
| 		spt, err := miner.SealProofTypeFromSectorSize(m.SectorSize, nv, synthetic) | ||||
| 		if err != nil { | ||||
| 			return cid.Undef, err | ||||
| 		} | ||||
|  | ||||
| @ -91,9 +91,11 @@ func (t *BlockHeader) MarshalCBOR(w io.Writer) error { | ||||
| 		return err | ||||
| 	} | ||||
| 	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)
 | ||||
| @ -249,13 +251,22 @@ func (t *BlockHeader) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 	} | ||||
| 
 | ||||
| 	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)
 | ||||
| @ -278,13 +289,22 @@ func (t *BlockHeader) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 	} | ||||
| 
 | ||||
| 	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)
 | ||||
| @ -307,12 +327,25 @@ func (t *BlockHeader) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 	} | ||||
| 
 | ||||
| 	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)
 | ||||
| @ -1318,9 +1351,11 @@ func (t *BlockMsg) MarshalCBOR(w io.Writer) error { | ||||
| 		return err | ||||
| 	} | ||||
| 	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)
 | ||||
| @ -1332,9 +1367,11 @@ func (t *BlockMsg) MarshalCBOR(w io.Writer) error { | ||||
| 		return err | ||||
| 	} | ||||
| 	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 | ||||
| } | ||||
| @ -1401,12 +1438,25 @@ func (t *BlockMsg) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 	} | ||||
| 
 | ||||
| 	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)
 | ||||
| @ -1429,12 +1479,25 @@ func (t *BlockMsg) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 	} | ||||
| 
 | ||||
| 	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 | ||||
| @ -1463,9 +1526,11 @@ func (t *ExpTipSet) MarshalCBOR(w io.Writer) error { | ||||
| 		return err | ||||
| 	} | ||||
| 	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)
 | ||||
| @ -1538,12 +1603,25 @@ func (t *ExpTipSet) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 	} | ||||
| 
 | ||||
| 	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)
 | ||||
| @ -1566,13 +1644,32 @@ func (t *ExpTipSet) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 	} | ||||
| 
 | ||||
| 	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)
 | ||||
| @ -1933,13 +2030,22 @@ func (t *Event) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 	} | ||||
| 
 | ||||
| 	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 | ||||
| @ -1972,7 +2078,7 @@ func (t *EventEntry) MarshalCBOR(w io.Writer) error { | ||||
| 	if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Key))); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.Key)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.Key)); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.Name)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.Name)); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| @ -2756,13 +2862,32 @@ func (t *ExecutionTrace) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 	} | ||||
| 
 | ||||
| 	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)
 | ||||
| @ -2785,13 +2910,22 @@ func (t *ExecutionTrace) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 	} | ||||
| 
 | ||||
| 	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 | ||||
|  | ||||
| @ -552,7 +552,7 @@ var sealBenchCmd = &cli.Command{ | ||||
| 
 | ||||
| 		if !skipc2 { | ||||
| 			log.Info("generating winning post candidates") | ||||
| 			wipt, err := spt(sectorSize).RegisteredWinningPoStProof() | ||||
| 			wipt, err := spt(sectorSize, false).RegisteredWinningPoStProof() | ||||
| 			if err != nil { | ||||
| 				return err | ||||
| 			} | ||||
| @ -770,7 +770,7 @@ func runSeals(sb *ffiwrapper.Sealer, sbfs *basicfs.Provider, numSectors int, par | ||||
| 				Miner:  mid, | ||||
| 				Number: i, | ||||
| 			}, | ||||
| 			ProofType: spt(sectorSize), | ||||
| 			ProofType: spt(sectorSize, false), | ||||
| 		} | ||||
| 
 | ||||
| 		start := time.Now() | ||||
| @ -802,7 +802,7 @@ func runSeals(sb *ffiwrapper.Sealer, sbfs *basicfs.Provider, numSectors int, par | ||||
| 							Miner:  mid, | ||||
| 							Number: i, | ||||
| 						}, | ||||
| 						ProofType: spt(sectorSize), | ||||
| 						ProofType: spt(sectorSize, false), | ||||
| 					} | ||||
| 
 | ||||
| 					start := time.Now() | ||||
| @ -1013,7 +1013,7 @@ var proveCmd = &cli.Command{ | ||||
| 				Miner:  abi.ActorID(mid), | ||||
| 				Number: abi.SectorNumber(c2in.SectorNum), | ||||
| 			}, | ||||
| 			ProofType: spt(abi.SectorSize(c2in.SectorSize)), | ||||
| 			ProofType: spt(abi.SectorSize(c2in.SectorSize), false), | ||||
| 		} | ||||
| 
 | ||||
| 		fmt.Printf("----\nstart proof computation\n") | ||||
| @ -1044,8 +1044,8 @@ func bps(sectorSize abi.SectorSize, sectorNum int, d time.Duration) string { | ||||
| 	return types.SizeStr(types.BigInt{Int: bps}) + "/s" | ||||
| } | ||||
| 
 | ||||
| func spt(ssize abi.SectorSize) abi.RegisteredSealProof { | ||||
| 	spt, err := miner.SealProofTypeFromSectorSize(ssize, build.TestNetworkVersion) | ||||
| func spt(ssize abi.SectorSize, synth bool) abi.RegisteredSealProof { | ||||
| 	spt, err := miner.SealProofTypeFromSectorSize(ssize, build.TestNetworkVersion, synth) | ||||
| 	if err != nil { | ||||
| 		panic(err) | ||||
| 	} | ||||
|  | ||||
| @ -186,7 +186,7 @@ var simpleAddPiece = &cli.Command{ | ||||
| 				Miner:  mid, | ||||
| 				Number: 1, | ||||
| 			}, | ||||
| 			ProofType: spt(sectorSize), | ||||
| 			ProofType: spt(sectorSize, false), | ||||
| 		} | ||||
| 
 | ||||
| 		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)", | ||||
| 			Value: "t01000", | ||||
| 		}, | ||||
| 		&cli.BoolFlag{ | ||||
| 			Name:  "synthetic", | ||||
| 			Usage: "generate synthetic PoRep proofs", | ||||
| 		}, | ||||
| 	}, | ||||
| 	ArgsUsage: "[unsealed] [sealed] [cache] [[piece cid] [piece size]]...", | ||||
| 	Action: func(cctx *cli.Context) error { | ||||
| @ -259,7 +263,7 @@ var simplePreCommit1 = &cli.Command{ | ||||
| 				Miner:  mid, | ||||
| 				Number: 1, | ||||
| 			}, | ||||
| 			ProofType: spt(sectorSize), | ||||
| 			ProofType: spt(sectorSize, cctx.Bool("synthetic")), | ||||
| 		} | ||||
| 
 | ||||
| 		var ticket [32]byte // all zero
 | ||||
| @ -297,6 +301,10 @@ var simplePreCommit2 = &cli.Command{ | ||||
| 			Usage: "pass miner address (only necessary if using existing sectorbuilder)", | ||||
| 			Value: "t01000", | ||||
| 		}, | ||||
| 		&cli.BoolFlag{ | ||||
| 			Name:  "synthetic", | ||||
| 			Usage: "generate synthetic PoRep proofs", | ||||
| 		}, | ||||
| 	}, | ||||
| 	ArgsUsage: "[sealed] [cache] [pc1 out]", | ||||
| 	Action: func(cctx *cli.Context) error { | ||||
| @ -337,7 +345,7 @@ var simplePreCommit2 = &cli.Command{ | ||||
| 				Miner:  mid, | ||||
| 				Number: 1, | ||||
| 			}, | ||||
| 			ProofType: spt(sectorSize), | ||||
| 			ProofType: spt(sectorSize, cctx.Bool("synthetic")), | ||||
| 		} | ||||
| 
 | ||||
| 		start := time.Now() | ||||
| @ -368,6 +376,10 @@ var simpleCommit1 = &cli.Command{ | ||||
| 			Usage: "pass miner address (only necessary if using existing sectorbuilder)", | ||||
| 			Value: "t01000", | ||||
| 		}, | ||||
| 		&cli.BoolFlag{ | ||||
| 			Name:  "synthetic", | ||||
| 			Usage: "generate synthetic PoRep proofs", | ||||
| 		}, | ||||
| 	}, | ||||
| 	ArgsUsage: "[sealed] [cache] [comm D] [comm R] [c1out.json]", | ||||
| 	Action: func(cctx *cli.Context) error { | ||||
| @ -403,7 +415,7 @@ var simpleCommit1 = &cli.Command{ | ||||
| 				Miner:  mid, | ||||
| 				Number: 1, | ||||
| 			}, | ||||
| 			ProofType: spt(sectorSize), | ||||
| 			ProofType: spt(sectorSize, cctx.Bool("synthetic")), | ||||
| 		} | ||||
| 
 | ||||
| 		start := time.Now() | ||||
| @ -469,6 +481,10 @@ var simpleCommit2 = &cli.Command{ | ||||
| 			Usage: "pass miner address (only necessary if using existing sectorbuilder)", | ||||
| 			Value: "t01000", | ||||
| 		}, | ||||
| 		&cli.BoolFlag{ | ||||
| 			Name:  "synthetic", | ||||
| 			Usage: "generate synthetic PoRep proofs", | ||||
| 		}, | ||||
| 	}, | ||||
| 	Action: func(c *cli.Context) error { | ||||
| 		if c.Bool("no-gpu") { | ||||
| @ -515,7 +531,7 @@ var simpleCommit2 = &cli.Command{ | ||||
| 				Miner:  abi.ActorID(mid), | ||||
| 				Number: abi.SectorNumber(c2in.SectorNum), | ||||
| 			}, | ||||
| 			ProofType: spt(abi.SectorSize(c2in.SectorSize)), | ||||
| 			ProofType: spt(abi.SectorSize(c2in.SectorSize), c.Bool("synthetic")), | ||||
| 		} | ||||
| 
 | ||||
| 		start := time.Now() | ||||
| @ -573,7 +589,7 @@ var simpleWindowPost = &cli.Command{ | ||||
| 			return xerrors.Errorf("parse commr: %w", err) | ||||
| 		} | ||||
| 
 | ||||
| 		wpt, err := spt(sectorSize).RegisteredWindowPoStProof() | ||||
| 		wpt, err := spt(sectorSize, false).RegisteredWindowPoStProof() | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| @ -593,7 +609,7 @@ var simpleWindowPost = &cli.Command{ | ||||
| 
 | ||||
| 		vp, err := ffi.GenerateSingleVanillaProof(ffi.PrivateSectorInfo{ | ||||
| 			SectorInfo: prf.SectorInfo{ | ||||
| 				SealProof:    spt(sectorSize), | ||||
| 				SealProof:    spt(sectorSize, false), | ||||
| 				SectorNumber: sn, | ||||
| 				SealedCID:    commr, | ||||
| 			}, | ||||
| @ -660,7 +676,7 @@ var simpleWinningPost = &cli.Command{ | ||||
| 			return xerrors.Errorf("parse commr: %w", err) | ||||
| 		} | ||||
| 
 | ||||
| 		wpt, err := spt(sectorSize).RegisteredWinningPoStProof() | ||||
| 		wpt, err := spt(sectorSize, false).RegisteredWinningPoStProof() | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| @ -680,7 +696,7 @@ var simpleWinningPost = &cli.Command{ | ||||
| 
 | ||||
| 		vp, err := ffi.GenerateSingleVanillaProof(ffi.PrivateSectorInfo{ | ||||
| 			SectorInfo: prf.SectorInfo{ | ||||
| 				SealProof:    spt(sectorSize), | ||||
| 				SealProof:    spt(sectorSize, false), | ||||
| 				SectorNumber: sn, | ||||
| 				SealedCID:    commr, | ||||
| 			}, | ||||
| @ -763,7 +779,7 @@ var simpleReplicaUpdate = &cli.Command{ | ||||
| 				Miner:  mid, | ||||
| 				Number: 1, | ||||
| 			}, | ||||
| 			ProofType: spt(sectorSize), | ||||
| 			ProofType: spt(sectorSize, false), | ||||
| 		} | ||||
| 
 | ||||
| 		start := time.Now() | ||||
| @ -831,7 +847,7 @@ var simpleProveReplicaUpdate1 = &cli.Command{ | ||||
| 				Miner:  mid, | ||||
| 				Number: 1, | ||||
| 			}, | ||||
| 			ProofType: spt(sectorSize), | ||||
| 			ProofType: spt(sectorSize, false), | ||||
| 		} | ||||
| 
 | ||||
| 		start := time.Now() | ||||
| @ -918,7 +934,7 @@ var simpleProveReplicaUpdate2 = &cli.Command{ | ||||
| 				Miner:  mid, | ||||
| 				Number: 1, | ||||
| 			}, | ||||
| 			ProofType: spt(sectorSize), | ||||
| 			ProofType: spt(sectorSize, false), | ||||
| 		} | ||||
| 
 | ||||
| 		start := time.Now() | ||||
|  | ||||
| @ -21,6 +21,7 @@ import ( | ||||
| 	"github.com/filecoin-project/go-state-types/abi" | ||||
| 	"github.com/filecoin-project/go-state-types/big" | ||||
| 	"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/network" | ||||
| 
 | ||||
| @ -49,6 +50,7 @@ var actorCmd = &cli.Command{ | ||||
| 		actorProposeChangeWorker, | ||||
| 		actorConfirmChangeWorker, | ||||
| 		actorCompactAllocatedCmd, | ||||
| 		actorMovePartitionsCmd, | ||||
| 		actorProposeChangeBeneficiary, | ||||
| 		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{ | ||||
| 	Name:  "compact-allocated", | ||||
| 	Usage: "compact allocated sectors bitfield", | ||||
| 	Flags: []cli.Flag{ | ||||
| 		&cli.Uint64Flag{ | ||||
| 			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{ | ||||
| 			Name:  "mask-upto-n", | ||||
|  | ||||
| @ -7,7 +7,6 @@ import ( | ||||
| 	cbor "github.com/ipfs/go-ipld-cbor" | ||||
| 	"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/lotus/blockstore" | ||||
| @ -39,8 +38,8 @@ var sectorPreCommitsCmd = &cli.Command{ | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 		preCommitSector := make([]minertypes.SectorPreCommitOnChainInfo, 0) | ||||
| 		err = mst.ForEachPrecommittedSector(func(info minertypes.SectorPreCommitOnChainInfo) error { | ||||
| 		preCommitSector := make([]miner.SectorPreCommitOnChainInfo, 0) | ||||
| 		err = mst.ForEachPrecommittedSector(func(info miner.SectorPreCommitOnChainInfo) error { | ||||
| 			preCommitSector = append(preCommitSector, info) | ||||
| 			return err | ||||
| 		}) | ||||
|  | ||||
| @ -24,14 +24,13 @@ import ( | ||||
| 	"github.com/filecoin-project/go-state-types/abi" | ||||
| 	"github.com/filecoin-project/go-state-types/big" | ||||
| 	"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/lotus/api" | ||||
| 	"github.com/filecoin-project/lotus/blockstore" | ||||
| 	"github.com/filecoin-project/lotus/chain/actors" | ||||
| 	"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/policy" | ||||
| 	"github.com/filecoin-project/lotus/chain/types" | ||||
| @ -193,14 +192,14 @@ var sectorsStatusCmd = &cli.Command{ | ||||
| 			} | ||||
| 
 | ||||
| 			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 { | ||||
| 				return err | ||||
| 			} | ||||
| 
 | ||||
| 			errFound := errors.New("found") | ||||
| 			if err := mas.ForEachDeadline(func(dlIdx uint64, dl lminer.Deadline) error { | ||||
| 				return dl.ForEachPartition(func(partIdx uint64, part lminer.Partition) error { | ||||
| 			if err := mas.ForEachDeadline(func(dlIdx uint64, dl miner.Deadline) error { | ||||
| 				return dl.ForEachPartition(func(partIdx uint64, part miner.Partition) error { | ||||
| 					pas, err := part.AllSectors() | ||||
| 					if err != nil { | ||||
| 						return err | ||||
| @ -847,7 +846,12 @@ var sectorsCheckExpireCmd = &cli.Command{ | ||||
| 
 | ||||
| 		for _, sector := range sectors { | ||||
| 			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 { | ||||
| 				MaxExtendNow = MaxExpiration | ||||
| @ -1075,22 +1079,22 @@ var sectorsExtendCmd = &cli.Command{ | ||||
| 
 | ||||
| 		tbs := blockstore.NewTieredBstore(blockstore.NewAPIBlockstore(fullApi), blockstore.NewMemory()) | ||||
| 		adtStore := adt.WrapStore(ctx, cbor.NewCborStore(tbs)) | ||||
| 		mas, err := lminer.Load(adtStore, mact) | ||||
| 		mas, err := miner.Load(adtStore, mact) | ||||
| 		if err != nil { | ||||
| 			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 { | ||||
| 			return dl.ForEachPartition(func(partIdx uint64, part lminer.Partition) error { | ||||
| 		if err := mas.ForEachDeadline(func(dlIdx uint64, dl miner.Deadline) error { | ||||
| 			return dl.ForEachPartition(func(partIdx uint64, part miner.Partition) error { | ||||
| 				pas, err := part.ActiveSectors() | ||||
| 				if err != nil { | ||||
| 					return err | ||||
| 				} | ||||
| 
 | ||||
| 				return pas.ForEach(func(i uint64) error { | ||||
| 					activeSectorsLocation[abi.SectorNumber(i)] = &lminer.SectorLocation{ | ||||
| 					activeSectorsLocation[abi.SectorNumber(i)] = &miner.SectorLocation{ | ||||
| 						Deadline:  dlIdx, | ||||
| 						Partition: partIdx, | ||||
| 					} | ||||
| @ -1177,7 +1181,7 @@ var sectorsExtendCmd = &cli.Command{ | ||||
| 			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 { | ||||
| 			extension := abi.ChainEpoch(cctx.Int64("extension")) | ||||
| 			newExp := si.Expiration + extension | ||||
| @ -1186,7 +1190,12 @@ var sectorsExtendCmd = &cli.Command{ | ||||
| 				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 { | ||||
| 				newExp = maxExtendNow | ||||
| 			} | ||||
| @ -1741,7 +1750,7 @@ var sectorsCapacityCollateralCmd = &cli.Command{ | ||||
| 			return err | ||||
| 		} | ||||
| 
 | ||||
| 		spt, err := lminer.PreferredSealProofTypeFromWindowPoStType(nv, mi.WindowPoStProofType) | ||||
| 		spt, err := miner.PreferredSealProofTypeFromWindowPoStType(nv, mi.WindowPoStProofType, false) | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| @ -1756,7 +1765,12 @@ var sectorsCapacityCollateralCmd = &cli.Command{ | ||||
| 				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) | ||||
| @ -1910,7 +1924,7 @@ var sectorsExpiredCmd = &cli.Command{ | ||||
| 		} | ||||
| 
 | ||||
| 		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 { | ||||
| 			return err | ||||
| 		} | ||||
| @ -1926,8 +1940,8 @@ var sectorsExpiredCmd = &cli.Command{ | ||||
| 			return xerrors.Errorf("intersecting bitfields: %w", err) | ||||
| 		} | ||||
| 
 | ||||
| 		if err := mas.ForEachDeadline(func(dlIdx uint64, dl lminer.Deadline) error { | ||||
| 			return dl.ForEachPartition(func(partIdx uint64, part lminer.Partition) error { | ||||
| 		if err := mas.ForEachDeadline(func(dlIdx uint64, dl miner.Deadline) error { | ||||
| 			return dl.ForEachPartition(func(partIdx uint64, part miner.Partition) error { | ||||
| 				live, err := part.LiveSectors() | ||||
| 				if err != nil { | ||||
| 					return err | ||||
|  | ||||
| @ -137,7 +137,9 @@ var preSealCmd = &cli.Command{ | ||||
| 			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 { | ||||
| 			return err | ||||
| 		} | ||||
|  | ||||
| @ -5,6 +5,7 @@ import ( | ||||
| 	"fmt" | ||||
| 	"os" | ||||
| 	"os/signal" | ||||
| 	"runtime/pprof" | ||||
| 
 | ||||
| 	logging "github.com/ipfs/go-log/v2" | ||||
| 	"github.com/urfave/cli/v2" | ||||
| @ -116,10 +117,31 @@ func main() { | ||||
| 				Name:  "log-level", | ||||
| 				Value: "info", | ||||
| 			}, | ||||
| 			&cli.StringFlag{ | ||||
| 				Name:  "pprof", | ||||
| 				Usage: "specify name of file for writing cpu profile to", | ||||
| 			}, | ||||
| 		}, | ||||
| 		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")) | ||||
| 		}, | ||||
| 		After: func(cctx *cli.Context) error { | ||||
| 			if prof := cctx.String("pprof"); prof != "" { | ||||
| 				pprof.StopCPUProfile() | ||||
| 			} | ||||
| 			return nil | ||||
| 		}, | ||||
| 	} | ||||
| 
 | ||||
| 	// terminate early on ctrl+c
 | ||||
|  | ||||
| @ -21,6 +21,7 @@ import ( | ||||
| 	"github.com/filecoin-project/go-state-types/builtin" | ||||
| 	v10 "github.com/filecoin-project/go-state-types/builtin/v10" | ||||
| 	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" | ||||
| 	adt8 "github.com/filecoin-project/go-state-types/builtin/v8/util/adt" | ||||
| 	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 | ||||
| 	case network.Version19: | ||||
| 		return filcns.UpgradeActorsV11, filcns.PreUpgradeActorsV11, checkNv19Invariants, nil | ||||
| 	case network.Version21: | ||||
| 		return filcns.UpgradeActorsV12, filcns.PreUpgradeActorsV12, checkNv21Invariants, nil | ||||
| 	default: | ||||
| 		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 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 { | ||||
| 
 | ||||
| 	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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Sub")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Sub")); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| @ -50,9 +50,11 @@ func (t *CarbNode) MarshalCBOR(w io.Writer) error { | ||||
| 		return err | ||||
| 	} | ||||
| 	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 | ||||
| } | ||||
| @ -116,12 +118,25 @@ func (t *CarbNode) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 			} | ||||
| 
 | ||||
| 			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: | ||||
|  | ||||
| @ -165,7 +165,7 @@ func (stage *PreCommitStage) packMiner( | ||||
| 
 | ||||
| 	// Generate pre-commits.
 | ||||
| 	sealType, err := miner.PreferredSealProofTypeFromWindowPoStType( | ||||
| 		nv, minerInfo.WindowPoStProofType, | ||||
| 		nv, minerInfo.WindowPoStProofType, false, | ||||
| 	) | ||||
| 	if err != nil { | ||||
| 		return 0, false, err | ||||
| @ -176,7 +176,12 @@ func (stage *PreCommitStage) packMiner( | ||||
| 		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)) | ||||
| 	for i, sno := range sectorNos { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.Value)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.Value)); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| @ -117,13 +117,32 @@ func (t *State) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 	} | ||||
| 
 | ||||
| 	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 | ||||
| @ -177,9 +196,11 @@ func (t *CallerValidationArgs) MarshalCBOR(w io.Writer) error { | ||||
| 		return err | ||||
| 	} | ||||
| 	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 | ||||
| } | ||||
| @ -252,13 +273,22 @@ func (t *CallerValidationArgs) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 	} | ||||
| 
 | ||||
| 	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)
 | ||||
| @ -281,12 +311,25 @@ func (t *CallerValidationArgs) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 	} | ||||
| 
 | ||||
| 	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 | ||||
| @ -746,7 +789,7 @@ func (t *MutateStateArgs) MarshalCBOR(w io.Writer) error { | ||||
| 	if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Value))); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.Value)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.Value)); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.Message)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.Message)); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
|  | ||||
| @ -4213,6 +4213,51 @@ Response: | ||||
|               "BaseMinMemory": 8388608, | ||||
|               "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": { | ||||
|               "MinMemory": 1073741824, | ||||
|               "MaxMemory": 1610612736, | ||||
| @ -4305,6 +4350,51 @@ Response: | ||||
|               "BaseMinMemory": 8388608, | ||||
|               "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": { | ||||
|               "MinMemory": 2048, | ||||
|               "MaxMemory": 2048, | ||||
| @ -4397,6 +4487,51 @@ Response: | ||||
|               "BaseMinMemory": 8388608, | ||||
|               "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": { | ||||
|               "MinMemory": 1073741824, | ||||
|               "MaxMemory": 1073741824, | ||||
| @ -4489,6 +4624,51 @@ Response: | ||||
|               "BaseMinMemory": 8388608, | ||||
|               "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": { | ||||
|               "MinMemory": 1073741824, | ||||
|               "MaxMemory": 1073741824, | ||||
| @ -4581,6 +4761,51 @@ Response: | ||||
|               "BaseMinMemory": 8388608, | ||||
|               "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": { | ||||
|               "MinMemory": 1073741824, | ||||
|               "MaxMemory": 1610612736, | ||||
| @ -4673,6 +4898,51 @@ Response: | ||||
|               "BaseMinMemory": 1073741824, | ||||
|               "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": { | ||||
|               "MinMemory": 4294967296, | ||||
|               "MaxMemory": 4294967296, | ||||
| @ -4765,6 +5035,51 @@ Response: | ||||
|               "BaseMinMemory": 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": { | ||||
|               "MinMemory": 1048576, | ||||
|               "MaxMemory": 1048576, | ||||
| @ -4857,6 +5172,51 @@ Response: | ||||
|               "BaseMinMemory": 8388608, | ||||
|               "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": { | ||||
|               "MinMemory": 805306368, | ||||
|               "MaxMemory": 1073741824, | ||||
| @ -4949,6 +5309,51 @@ Response: | ||||
|               "BaseMinMemory": 8388608, | ||||
|               "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": { | ||||
|               "MinMemory": 1073741824, | ||||
|               "MaxMemory": 1610612736, | ||||
| @ -5041,6 +5446,51 @@ Response: | ||||
|               "BaseMinMemory": 8388608, | ||||
|               "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": { | ||||
|               "MinMemory": 1073741824, | ||||
|               "MaxMemory": 1073741824, | ||||
| @ -5133,6 +5583,51 @@ Response: | ||||
|               "BaseMinMemory": 8388608, | ||||
|               "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": { | ||||
|               "MinMemory": 1073741824, | ||||
|               "MaxMemory": 1610612736, | ||||
| @ -5225,6 +5720,51 @@ Response: | ||||
|               "BaseMinMemory": 8388608, | ||||
|               "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": { | ||||
|               "MinMemory": 1073741824, | ||||
|               "MaxMemory": 1073741824, | ||||
| @ -5317,6 +5857,51 @@ Response: | ||||
|               "BaseMinMemory": 8388608, | ||||
|               "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": { | ||||
|               "MinMemory": 1073741824, | ||||
|               "MaxMemory": 1073741824, | ||||
| @ -5409,6 +5994,51 @@ Response: | ||||
|               "BaseMinMemory": 8388608, | ||||
|               "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": { | ||||
|               "MinMemory": 805306368, | ||||
|               "MaxMemory": 1073741824, | ||||
|  | ||||
| @ -138,6 +138,51 @@ Response: | ||||
|           "BaseMinMemory": 8388608, | ||||
|           "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": { | ||||
|           "MinMemory": 1073741824, | ||||
|           "MaxMemory": 1610612736, | ||||
| @ -230,6 +275,51 @@ Response: | ||||
|           "BaseMinMemory": 8388608, | ||||
|           "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": { | ||||
|           "MinMemory": 2048, | ||||
|           "MaxMemory": 2048, | ||||
| @ -322,6 +412,51 @@ Response: | ||||
|           "BaseMinMemory": 8388608, | ||||
|           "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": { | ||||
|           "MinMemory": 1073741824, | ||||
|           "MaxMemory": 1073741824, | ||||
| @ -414,6 +549,51 @@ Response: | ||||
|           "BaseMinMemory": 8388608, | ||||
|           "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": { | ||||
|           "MinMemory": 1073741824, | ||||
|           "MaxMemory": 1073741824, | ||||
| @ -506,6 +686,51 @@ Response: | ||||
|           "BaseMinMemory": 8388608, | ||||
|           "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": { | ||||
|           "MinMemory": 1073741824, | ||||
|           "MaxMemory": 1610612736, | ||||
| @ -598,6 +823,51 @@ Response: | ||||
|           "BaseMinMemory": 1073741824, | ||||
|           "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": { | ||||
|           "MinMemory": 4294967296, | ||||
|           "MaxMemory": 4294967296, | ||||
| @ -690,6 +960,51 @@ Response: | ||||
|           "BaseMinMemory": 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": { | ||||
|           "MinMemory": 1048576, | ||||
|           "MaxMemory": 1048576, | ||||
| @ -782,6 +1097,51 @@ Response: | ||||
|           "BaseMinMemory": 8388608, | ||||
|           "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": { | ||||
|           "MinMemory": 805306368, | ||||
|           "MaxMemory": 1073741824, | ||||
| @ -874,6 +1234,51 @@ Response: | ||||
|           "BaseMinMemory": 8388608, | ||||
|           "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": { | ||||
|           "MinMemory": 1073741824, | ||||
|           "MaxMemory": 1610612736, | ||||
| @ -966,6 +1371,51 @@ Response: | ||||
|           "BaseMinMemory": 8388608, | ||||
|           "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": { | ||||
|           "MinMemory": 1073741824, | ||||
|           "MaxMemory": 1073741824, | ||||
| @ -1058,6 +1508,51 @@ Response: | ||||
|           "BaseMinMemory": 8388608, | ||||
|           "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": { | ||||
|           "MinMemory": 1073741824, | ||||
|           "MaxMemory": 1610612736, | ||||
| @ -1150,6 +1645,51 @@ Response: | ||||
|           "BaseMinMemory": 8388608, | ||||
|           "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": { | ||||
|           "MinMemory": 1073741824, | ||||
|           "MaxMemory": 1073741824, | ||||
| @ -1242,6 +1782,51 @@ Response: | ||||
|           "BaseMinMemory": 8388608, | ||||
|           "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": { | ||||
|           "MinMemory": 1073741824, | ||||
|           "MaxMemory": 1073741824, | ||||
| @ -1334,6 +1919,51 @@ Response: | ||||
|           "BaseMinMemory": 8388608, | ||||
|           "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": { | ||||
|           "MinMemory": 805306368, | ||||
|           "MaxMemory": 1073741824, | ||||
|  | ||||
| @ -7,7 +7,7 @@ USAGE: | ||||
|    lotus-miner [global options] command [command options] [arguments...] | ||||
| 
 | ||||
| VERSION: | ||||
|    1.25.0 | ||||
|    1.25.0-rc1 | ||||
| 
 | ||||
| COMMANDS: | ||||
|    init     Initialize a lotus miner repo | ||||
| @ -223,6 +223,7 @@ COMMANDS: | ||||
|    propose-change-worker       Propose a worker address change | ||||
|    confirm-change-worker       Confirm a worker address change | ||||
|    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 | ||||
|    confirm-change-beneficiary  Confirm a beneficiary address change | ||||
|    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...] | ||||
| 
 | ||||
| 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) | ||||
|    --really-do-it            Actually send transaction performing the action (default: false) | ||||
|    --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 | ||||
| ``` | ||||
| NAME: | ||||
|  | ||||
| @ -7,7 +7,7 @@ USAGE: | ||||
|    lotus-worker [global options] command [command options] [arguments...] | ||||
| 
 | ||||
| VERSION: | ||||
|    1.25.0 | ||||
|    1.25.0-rc1 | ||||
| 
 | ||||
| COMMANDS: | ||||
|    run        Start lotus worker | ||||
|  | ||||
| @ -7,7 +7,7 @@ USAGE: | ||||
|    lotus [global options] command [command options] [arguments...] | ||||
| 
 | ||||
| VERSION: | ||||
|    1.25.0 | ||||
|    1.25.0-rc1 | ||||
| 
 | ||||
| COMMANDS: | ||||
|    daemon   Start a lotus daemon process | ||||
|  | ||||
| @ -427,13 +427,10 @@ | ||||
|   # env var: LOTUS_PROVING_DISABLEWDPOSTPRECHECKS | ||||
|   #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. | ||||
|   #  | ||||
|   # 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, | ||||
|   # 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 | ||||
|   # 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 | ||||
|   # env var: LOTUS_SEALING_COMMITTEDCAPACITYSECTORLIFETIME | ||||
| @ -666,6 +663,12 @@ | ||||
|   # env var: LOTUS_SEALING_TERMINATEBATCHWAIT | ||||
|   #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] | ||||
|   # 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-padreader v0.0.1 | ||||
| 	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.5 | ||||
| 	github.com/filecoin-project/go-statemachine v1.0.3 | ||||
| 	github.com/filecoin-project/go-statestore v0.2.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/urfave/cli/v2 v2.25.5 | ||||
| 	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/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 | ||||
| 	github.com/xeipuuv/gojsonschema v1.2.0 | ||||
|  | ||||
							
								
								
									
										10
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								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.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.11.1/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.1/go.mod h1:KOBGyvCalT8uHBS7KSKOVbjsilD90bBZHgLAqrzz6gU= | ||||
| 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.5 h1:VQ2N2T3JeUDdIHEo/xhjnT7Q218Wl0UYIyglqT7Z9Ck= | ||||
| github.com/filecoin-project/go-state-types v0.12.5/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 v1.0.3 h1:N07o6alys+V1tNoSTi4WuuoeNC4erS/6jE74+NsgQuk= | ||||
| 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-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-20230126041949-52956bd4c9aa h1:EyA027ZAkuaCLoxVX4r1TZMPy1d31fM6hbfQ4OU4I5o= | ||||
| 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 h1:SBuSxXJL0/ZJMtTxbXZgHZkThl9dNrzyaNhlyaqscRo= | ||||
| 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/go.mod h1:p9UJB6dDgdPgMJZs7UjUOdulKyRr9fqkS+6JKAInPy8= | ||||
| github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 h1:EKhdznlJHPMoKr0XTrX+IlJs1LH3lyx2nfr1dOlZ79k= | ||||
|  | ||||
| @ -618,9 +618,9 @@ func TestFEVMRecursiveActorCall(t *testing.T) { | ||||
| 	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=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))) | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -260,7 +260,7 @@ func (n *Ensemble) MinerEnroll(minerNode *TestMiner, full *TestFullNode, opts .. | ||||
| 		) | ||||
| 
 | ||||
| 		// 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) | ||||
| 
 | ||||
| 		// 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/market" | ||||
| 	"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/consensus/filcns" | ||||
| 	"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) | ||||
| 	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) | ||||
| 
 | ||||
| 	preCommitParams := miner9.PreCommitSectorParams{ | ||||
| @ -762,3 +763,68 @@ waitForProof20: | ||||
| 	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) | ||||
| 			ver, err := client.StateNetworkVersion(ctx, types.EmptyTSK) | ||||
| 			require.NoError(t, err) | ||||
| 			spt, err := lminer.PreferredSealProofTypeFromWindowPoStType(ver, mi.WindowPoStProofType) | ||||
| 			spt, err := lminer.PreferredSealProofTypeFromWindowPoStType(ver, mi.WindowPoStProofType, false) | ||||
| 			require.NoError(t, err) | ||||
| 
 | ||||
| 			ssize, err := spt.SectorSize() | ||||
|  | ||||
| @ -63,7 +63,7 @@ func TestSectorImportAfterPC2(t *testing.T) { | ||||
| 	require.NoError(t, err) | ||||
| 	ver, err := client.StateNetworkVersion(ctx, types.EmptyTSK) | ||||
| 	require.NoError(t, err) | ||||
| 	spt, err := lminer.PreferredSealProofTypeFromWindowPoStType(ver, mi.WindowPoStProofType) | ||||
| 	spt, err := lminer.PreferredSealProofTypeFromWindowPoStType(ver, mi.WindowPoStProofType, false) | ||||
| 	require.NoError(t, err) | ||||
| 
 | ||||
| 	ssize, err := spt.SectorSize() | ||||
|  | ||||
| @ -18,6 +18,7 @@ import ( | ||||
| 	"github.com/filecoin-project/lotus/build" | ||||
| 	"github.com/filecoin-project/lotus/chain/types" | ||||
| 	"github.com/filecoin-project/lotus/itests/kit" | ||||
| 	"github.com/filecoin-project/lotus/node/config" | ||||
| 	"github.com/filecoin-project/lotus/node/impl" | ||||
| 	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) | ||||
| } | ||||
| 
 | ||||
| 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 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) { | ||||
|  | ||||
| @ -10,6 +10,7 @@ import ( | ||||
| 
 | ||||
| 	"github.com/filecoin-project/go-state-types/abi" | ||||
| 	"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" | ||||
| 
 | ||||
| 	"github.com/filecoin-project/lotus/chain/actors/builtin" | ||||
| @ -122,6 +123,8 @@ func DefaultFullNode() *FullNode { | ||||
| } | ||||
| 
 | ||||
| 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{ | ||||
| 		Common: defCommon(), | ||||
| 
 | ||||
| @ -143,7 +146,7 @@ func DefaultStorageMiner() *StorageMiner { | ||||
| 			// 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
 | ||||
| 
 | ||||
| 			CommittedCapacitySectorLifetime: Duration(builtin.EpochDurationSeconds * uint64(policy.GetMaxSectorExpirationExtension()) * uint64(time.Second)), | ||||
| 			CommittedCapacitySectorLifetime: Duration(builtin.EpochDurationSeconds * uint64(maxSectorExtentsion) * uint64(time.Second)), | ||||
| 
 | ||||
| 			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
 | ||||
| @ -158,6 +161,7 @@ func DefaultStorageMiner() *StorageMiner { | ||||
| 			TerminateBatchMax:                      100, | ||||
| 			TerminateBatchWait:                     Duration(5 * time.Minute), | ||||
| 			MaxSectorProveCommitsSubmittedPerEpoch: 20, | ||||
| 			UseSyntheticPoRep:                      false, | ||||
| 		}, | ||||
| 
 | ||||
| 		Proving: ProvingConfig{ | ||||
|  | ||||
| @ -853,13 +853,10 @@ After changing this option, confirm that the new value works in your setup by in | ||||
| 			Name: "MaxPartitionsPerPoStMessage", | ||||
| 			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. | ||||
| 
 | ||||
| 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, | ||||
| to prove each deadline, resulting in more total gas use (but each message will have lower gas limit) | ||||
| 
 | ||||
| @ -1150,7 +1147,7 @@ required to have expiration of at least the soonest-ending deal`, | ||||
| 
 | ||||
| 			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 | ||||
| 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", | ||||
| @ -1295,6 +1292,12 @@ Submitting a smaller number of prove commits per epoch would reduce the possibil | ||||
| 
 | ||||
| 			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{ | ||||
| 		{ | ||||
|  | ||||
| @ -290,13 +290,10 @@ type ProvingConfig struct { | ||||
| 	// 'lotus-miner proving compute window-post 0'
 | ||||
| 	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.
 | ||||
| 	//
 | ||||
| 	// 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,
 | ||||
| 	// 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
 | ||||
| 	// 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 | ||||
| 
 | ||||
| 	// 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 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 { | ||||
|  | ||||
| @ -43,9 +43,11 @@ func (t *HelloMessage) MarshalCBOR(w io.Writer) error { | ||||
| 		return err | ||||
| 	} | ||||
| 	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)
 | ||||
| @ -116,12 +118,25 @@ func (t *HelloMessage) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 	} | ||||
| 
 | ||||
| 	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)
 | ||||
|  | ||||
| @ -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) | ||||
| 	} | ||||
| 
 | ||||
| 	st, err := miner.PreferredSealProofTypeFromWindowPoStType(networkVersion, mi.WindowPoStProofType) | ||||
| 	st, err := miner.PreferredSealProofTypeFromWindowPoStType(networkVersion, mi.WindowPoStProofType, false) | ||||
| 	if err != nil { | ||||
| 		return nil, xerrors.Errorf("failed to get seal proof type: %w", err) | ||||
| 	} | ||||
|  | ||||
| @ -6,6 +6,7 @@ import ( | ||||
| 	"encoding/json" | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"math" | ||||
| 	"strconv" | ||||
| 
 | ||||
| 	"github.com/ipfs/go-cid" | ||||
| @ -19,8 +20,7 @@ import ( | ||||
| 	"github.com/filecoin-project/go-state-types/abi" | ||||
| 	actorstypes "github.com/filecoin-project/go-state-types/actors" | ||||
| 	"github.com/filecoin-project/go-state-types/big" | ||||
| 	minertypes "github.com/filecoin-project/go-state-types/builtin/v9/miner" | ||||
| 	verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" | ||||
| 	market12 "github.com/filecoin-project/go-state-types/builtin/v12/market" | ||||
| 	"github.com/filecoin-project/go-state-types/cbor" | ||||
| 	"github.com/filecoin-project/go-state-types/crypto" | ||||
| 	"github.com/filecoin-project/go-state-types/dline" | ||||
| @ -794,7 +794,7 @@ func (a *StateAPI) StateGetAllocationForPendingDeal(ctx context.Context, dealId | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	if allocationId == verifregtypes.NoAllocationID { | ||||
| 	if allocationId == verifreg.NoAllocationID { | ||||
| 		return nil, nil | ||||
| 	} | ||||
| 
 | ||||
| @ -914,32 +914,31 @@ func (a *StateAPI) StateComputeDataCID(ctx context.Context, maddr address.Addres | ||||
| 		return cid.Cid{}, err | ||||
| 	} | ||||
| 
 | ||||
| 	var ccparams []byte | ||||
| 	if nv < network.Version13 { | ||||
| 		ccparams, err = actors.SerializeParams(&market2.ComputeDataCommitmentParams{ | ||||
| 			DealIDs:    deals, | ||||
| 			SectorType: sectorType, | ||||
| 		}) | ||||
| 		return a.stateComputeDataCIDv1(ctx, maddr, sectorType, deals, tsk) | ||||
| 	} else if nv < network.Version21 { | ||||
| 		return a.stateComputeDataCIDv2(ctx, maddr, sectorType, deals, tsk) | ||||
| 	} else { | ||||
| 		ccparams, err = actors.SerializeParams(&market5.ComputeDataCommitmentParams{ | ||||
| 			Inputs: []*market5.SectorDataSpec{ | ||||
| 				{ | ||||
| 					DealIDs:    deals, | ||||
| 					SectorType: sectorType, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}) | ||||
| 		return a.stateComputeDataCIDv3(ctx, maddr, sectorType, deals, tsk) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| 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 { | ||||
| 		return cid.Undef, xerrors.Errorf("computing params for ComputeDataCommitment: %w", err) | ||||
| 	} | ||||
| 
 | ||||
| 	ccmt := &types.Message{ | ||||
| 		To:     market.Address, | ||||
| 		From:   maddr, | ||||
| 		Value:  types.NewInt(0), | ||||
| 		Method: market.Methods.ComputeDataCommitment, | ||||
| 		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) | ||||
| @ -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) | ||||
| 	} | ||||
| 
 | ||||
| 	if nv < network.Version13 { | ||||
| 		var c cbg.CborCid | ||||
| 		if err := c.UnmarshalCBOR(bytes.NewReader(r.MsgRct.Return)); err != nil { | ||||
| 			return cid.Undef, xerrors.Errorf("failed to unmarshal CBOR to CborCid: %w", err) | ||||
| 		} | ||||
| 	var c cbg.CborCid | ||||
| 	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.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 | ||||
| @ -971,6 +999,52 @@ func (a *StateAPI) StateComputeDataCID(ctx context.Context, maddr address.Addres | ||||
| 	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) { | ||||
| 	store := a.Chain.ActorStore(ctx) | ||||
| 
 | ||||
| @ -1040,7 +1114,7 @@ func (a *StateAPI) StateMinerAllocated(ctx context.Context, addr address.Address | ||||
| 	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) | ||||
| 	if err != nil { | ||||
| 		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 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) | ||||
| 	if err != nil { | ||||
| 		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) | ||||
| 		} | ||||
| 	} else { | ||||
| 		sectorWeight = minertypes.QAPowerMax(ssize) | ||||
| 		sectorWeight = miner.QAPowerMax(ssize) | ||||
| 	} | ||||
| 
 | ||||
| 	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 | ||||
| } | ||||
| 
 | ||||
| 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.
 | ||||
| 	ts, err := a.Chain.GetTipSetFromKey(ctx, tsk) | ||||
| 	if err != nil { | ||||
|  | ||||
| @ -35,7 +35,6 @@ import ( | ||||
| 	"github.com/filecoin-project/go-state-types/abi" | ||||
| 	"github.com/filecoin-project/go-state-types/big" | ||||
| 	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/lotus/api" | ||||
| @ -43,6 +42,7 @@ import ( | ||||
| 	"github.com/filecoin-project/lotus/build" | ||||
| 	"github.com/filecoin-project/lotus/chain/actors" | ||||
| 	"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/types" | ||||
| 	mktsdagstore "github.com/filecoin-project/lotus/markets/dagstore" | ||||
| @ -497,7 +497,7 @@ func (sm *StorageMinerAPI) SectorReceive(ctx context.Context, meta api.RemoteSec | ||||
| 	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 err error | ||||
| 	if tsk == types.EmptyTSK { | ||||
| @ -1404,7 +1404,7 @@ func (sm *StorageMinerAPI) withdrawBalance(ctx context.Context, amount abi.Token | ||||
| 		amount = available | ||||
| 	} | ||||
| 
 | ||||
| 	params, err := actors.SerializeParams(&minertypes.WithdrawBalanceParams{ | ||||
| 	params, err := actors.SerializeParams(&lminer.WithdrawBalanceParams{ | ||||
| 		AmountRequested: amount, | ||||
| 	}) | ||||
| 	if err != nil { | ||||
|  | ||||
| @ -157,7 +157,8 @@ func SealProofType(maddr dtypes.MinerAddress, fnapi v1api.FullNode) (abi.Registe | ||||
| 		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) { | ||||
| @ -1016,6 +1017,7 @@ func NewSetSealConfigFunc(r repo.LockedRepo) (dtypes.SetSealingConfigFunc, error | ||||
| 				TerminateBatchMin:                      cfg.TerminateBatchMin, | ||||
| 				TerminateBatchWait:                     config.Duration(cfg.TerminateBatchWait), | ||||
| 				MaxSectorProveCommitsSubmittedPerEpoch: cfg.MaxSectorProveCommitsSubmittedPerEpoch, | ||||
| 				UseSyntheticPoRep:                      cfg.UseSyntheticPoRep, | ||||
| 			} | ||||
| 			c.SetSealingConfig(newCfg) | ||||
| 		}) | ||||
| @ -1060,6 +1062,7 @@ func ToSealingConfig(dealmakingCfg config.DealmakingConfig, sealingCfg config.Se | ||||
| 		TerminateBatchMax:  sealingCfg.TerminateBatchMax, | ||||
| 		TerminateBatchMin:  sealingCfg.TerminateBatchMin, | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Proof")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Proof")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Voucher")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Voucher")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Submitted")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Submitted")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Amount")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Amount")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Target")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Target")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Channel")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Channel")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Control")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Control")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("NextLane")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("NextLane")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Settling")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Settling")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Vouchers")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Vouchers")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("ChannelID")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("ChannelID")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.ChannelID)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.ChannelID)); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("CreateMsg")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("CreateMsg")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Direction")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Direction")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("AddFundsMsg")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("AddFundsMsg")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("PendingAmount")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("PendingAmount")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("AvailableAmount")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("AvailableAmount")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("PendingAvailableAmount")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("PendingAvailableAmount")); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| @ -606,13 +606,32 @@ func (t *ChannelInfo) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 			} | ||||
| 
 | ||||
| 			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)
 | ||||
| @ -746,7 +765,7 @@ func (t *MsgInfo) MarshalCBOR(w io.Writer) error { | ||||
| 	if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Err"))); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Err")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Err")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.Err)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.Err)); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("MsgCid")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("MsgCid")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Received")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Received")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("ChannelID")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("ChannelID")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.ChannelID)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.ChannelID)); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Log")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Log")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("CommD")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("CommD")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("CommR")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("CommR")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Proof")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Proof")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("State")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("State")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.State)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.State)); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Pieces")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Pieces")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Return")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Return")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.Return)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.Return)); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("LastErr")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("LastErr")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.LastErr)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.LastErr)); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("CCPieces")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("CCPieces")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("CCUpdate")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("CCUpdate")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("SeedEpoch")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("SeedEpoch")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("SeedValue")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("SeedValue")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("SectorType")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("SectorType")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("TicketEpoch")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("TicketEpoch")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("TicketValue")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("TicketValue")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("CreationTime")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("CreationTime")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("SectorNumber")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("SectorNumber")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("TerminatedAt")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("TerminatedAt")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("UpdateSealed")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("UpdateSealed")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("CommitMessage")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("CommitMessage")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("InvalidProofs")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("InvalidProofs")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("PreCommit1Out")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("PreCommit1Out")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("FaultReportMsg")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("FaultReportMsg")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("UpdateUnsealed")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("UpdateUnsealed")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("PreCommit2Fails")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("PreCommit2Fails")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("PreCommitTipSet")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("PreCommitTipSet")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("RemoteDataCache")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("RemoteDataCache")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("PreCommitDeposit")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("PreCommitDeposit")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("PreCommitMessage")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("PreCommitMessage")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("RemoteDataSealed")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("RemoteDataSealed")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("TerminateMessage")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("TerminateMessage")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("RemoteDataUnsealed")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("RemoteDataUnsealed")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("ReplicaUpdateProof")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("ReplicaUpdateProof")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("RemoteDataFinalized")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("RemoteDataFinalized")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("ReplicaUpdateMessage")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("ReplicaUpdateMessage")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("RemoteCommit1Endpoint")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("RemoteCommit1Endpoint")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.RemoteCommit1Endpoint)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.RemoteCommit1Endpoint)); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("RemoteCommit2Endpoint")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("RemoteCommit2Endpoint")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.RemoteCommit2Endpoint)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.RemoteCommit2Endpoint)); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("RemoteSealingDoneEndpoint")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("RemoteSealingDoneEndpoint")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.RemoteSealingDoneEndpoint)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.RemoteSealingDoneEndpoint)); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	return nil | ||||
| @ -913,13 +913,22 @@ func (t *SectorInfo) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 			} | ||||
| 
 | ||||
| 			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)
 | ||||
| @ -1022,13 +1031,22 @@ func (t *SectorInfo) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 			} | ||||
| 
 | ||||
| 			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)
 | ||||
| @ -1074,13 +1092,22 @@ func (t *SectorInfo) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 			} | ||||
| 
 | ||||
| 			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)
 | ||||
| @ -1700,7 +1727,7 @@ func (t *Log) MarshalCBOR(w io.Writer) error { | ||||
| 	if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("Kind"))); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Kind")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Kind")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.Kind)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.Kind)); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Trace")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Trace")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.Trace)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.Trace)); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Message")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Message")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.Message)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.Message)); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Timestamp")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Timestamp")); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
|  | ||||
| @ -106,13 +106,15 @@ func checkPrecommit(ctx context.Context, maddr address.Address, si SectorInfo, t | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	commD, err := api.StateComputeDataCID(ctx, maddr, si.SectorType, si.dealIDs(), tsk) | ||||
| 	if err != nil { | ||||
| 		return &ErrApi{xerrors.Errorf("calling StateComputeDataCommitment: %w", err)} | ||||
| 	} | ||||
| 	if si.hasDeals() { | ||||
| 		commD, err := api.StateComputeDataCID(ctx, maddr, si.SectorType, si.dealIDs(), tsk) | ||||
| 		if err != nil { | ||||
| 			return &ErrApi{xerrors.Errorf("calling StateComputeDataCommitment: %w", err)} | ||||
| 		} | ||||
| 
 | ||||
| 	if si.CommD == nil || !commD.Equals(*si.CommD) { | ||||
| 		return &ErrBadCommD{xerrors.Errorf("on chain CommD differs from sector: %s != %s", commD, 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)} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	pci, err := api.StateSectorPreCommitInfo(ctx, maddr, si.SectorNumber, tsk) | ||||
|  | ||||
| @ -16,12 +16,12 @@ import ( | ||||
| 	actorstypes "github.com/filecoin-project/go-state-types/actors" | ||||
| 	"github.com/filecoin-project/go-state-types/big" | ||||
| 	"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/proof" | ||||
| 
 | ||||
| 	"github.com/filecoin-project/lotus/api" | ||||
| 	"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/types" | ||||
| 	"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/big" | ||||
| 	"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" | ||||
| 	"github.com/filecoin-project/go-state-types/network" | ||||
| 
 | ||||
| 	"github.com/filecoin-project/lotus/api" | ||||
| 	"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/types" | ||||
| 	"github.com/filecoin-project/lotus/node/config" | ||||
|  | ||||
| @ -85,10 +85,15 @@ func (p *BasicPreCommitPolicy) Expiration(ctx context.Context, ps ...api.SectorP | ||||
| 	} | ||||
| 
 | ||||
| 	if end == nil { | ||||
| 		// no deal pieces, get expiration for committed capacity sector
 | ||||
| 		expirationDuration, err := p.getCCSectorLifetime() | ||||
| 		nv, err := p.api.StateNetworkVersion(ctx, types.EmptyTSK) | ||||
| 		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 | ||||
| @ -105,25 +110,30 @@ func (p *BasicPreCommitPolicy) Expiration(ctx context.Context, ps ...api.SectorP | ||||
| 	return *end, nil | ||||
| } | ||||
| 
 | ||||
| func (p *BasicPreCommitPolicy) getCCSectorLifetime() (abi.ChainEpoch, error) { | ||||
| func (p *BasicPreCommitPolicy) getCCSectorLifetime(nv network.Version) (abi.ChainEpoch, error) { | ||||
| 	c, err := p.getSealingConfig() | ||||
| 	if err != nil { | ||||
| 		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) | ||||
| 	// if zero value in config, assume default sector extension
 | ||||
| 	if ccLifetimeEpochs == 0 { | ||||
| 		ccLifetimeEpochs = policy.GetMaxSectorExpirationExtension() | ||||
| 		ccLifetimeEpochs = maxCommitment | ||||
| 	} | ||||
| 
 | ||||
| 	if minExpiration := abi.ChainEpoch(miner.MinSectorExpiration); ccLifetimeEpochs < minExpiration { | ||||
| 		log.Warnf("value for CommittedCapacitySectorLiftime is too short, using default minimum (%d epochs)", minExpiration) | ||||
| 		return minExpiration, nil | ||||
| 	} | ||||
| 	if maxExpiration := policy.GetMaxSectorExpirationExtension(); ccLifetimeEpochs > maxExpiration { | ||||
| 		log.Warnf("value for CommittedCapacitySectorLiftime is too long, using default maximum (%d epochs)", maxExpiration) | ||||
| 		return maxExpiration, nil | ||||
| 	if ccLifetimeEpochs > maxCommitment { | ||||
| 		log.Warnf("value for CommittedCapacitySectorLiftime is too long, using default maximum (%d epochs)", maxCommitment) | ||||
| 		return maxCommitment, nil | ||||
| 	} | ||||
| 
 | ||||
| 	return ccLifetimeEpochs - p.provingBuffer, nil | ||||
|  | ||||
| @ -68,7 +68,9 @@ func TestBasicPolicyEmptySector(t *testing.T) { | ||||
| 	require.NoError(t, err) | ||||
| 
 | ||||
| 	// 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)) | ||||
| } | ||||
| 
 | ||||
| @ -132,7 +134,7 @@ func TestBasicPolicyMostConstrictiveSchedule(t *testing.T) { | ||||
| 
 | ||||
| func TestBasicPolicyIgnoresExistingScheduleIfExpired(t *testing.T) { | ||||
| 	cfg := fakeConfigGetter(nil) | ||||
| 	policy := pipeline.NewBasicPreCommitPolicy(&fakeChain{ | ||||
| 	pcp := pipeline.NewBasicPreCommitPolicy(&fakeChain{ | ||||
| 		h: abi.ChainEpoch(55), | ||||
| 	}, 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) | ||||
| 
 | ||||
| 	// 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) { | ||||
|  | ||||
| @ -60,4 +60,6 @@ type Config struct { | ||||
| 	TerminateBatchMax  uint64 | ||||
| 	TerminateBatchMin  uint64 | ||||
| 	TerminateBatchWait time.Duration | ||||
| 
 | ||||
| 	UseSyntheticPoRep bool | ||||
| } | ||||
|  | ||||
| @ -15,7 +15,6 @@ import ( | ||||
| 	"github.com/filecoin-project/go-bitfield" | ||||
| 	"github.com/filecoin-project/go-state-types/abi" | ||||
| 	"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" | ||||
| 	"github.com/filecoin-project/go-state-types/crypto" | ||||
| 	"github.com/filecoin-project/go-state-types/dline" | ||||
| @ -24,6 +23,7 @@ import ( | ||||
| 	"github.com/filecoin-project/go-storedcounter" | ||||
| 
 | ||||
| 	"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" | ||||
| 	"github.com/filecoin-project/lotus/chain/events" | ||||
| 	"github.com/filecoin-project/lotus/chain/types" | ||||
| @ -339,7 +339,12 @@ func (m *Sealing) currentSealProof(ctx context.Context) (abi.RegisteredSealProof | ||||
| 		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 { | ||||
|  | ||||
| @ -10,12 +10,12 @@ import ( | ||||
| 	"github.com/filecoin-project/go-address" | ||||
| 	"github.com/filecoin-project/go-commp-utils/zerocomm" | ||||
| 	"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-statemachine" | ||||
| 
 | ||||
| 	"github.com/filecoin-project/lotus/api" | ||||
| 	"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/storage/sealer/storiface" | ||||
| ) | ||||
|  | ||||
| @ -10,12 +10,12 @@ import ( | ||||
| 	"github.com/filecoin-project/go-state-types/abi" | ||||
| 	"github.com/filecoin-project/go-state-types/big" | ||||
| 	"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-statemachine" | ||||
| 
 | ||||
| 	"github.com/filecoin-project/lotus/api" | ||||
| 	"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/types" | ||||
| ) | ||||
|  | ||||
| @ -17,7 +17,6 @@ import ( | ||||
| 	actorstypes "github.com/filecoin-project/go-state-types/actors" | ||||
| 	"github.com/filecoin-project/go-state-types/big" | ||||
| 	"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/exitcode" | ||||
| 	"github.com/filecoin-project/go-state-types/network" | ||||
| @ -26,6 +25,7 @@ import ( | ||||
| 
 | ||||
| 	"github.com/filecoin-project/lotus/api" | ||||
| 	"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/types" | ||||
| 	"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
 | ||||
| 	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 { | ||||
| 		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) | ||||
| 		if err != nil { | ||||
| 			log.Errorw("Commit2 error", "error", err) | ||||
| 			return ctx.Send(SectorComputeProofFailed{xerrors.Errorf("computing seal proof failed(2): %w", err)}) | ||||
| 		} | ||||
| 	} else { | ||||
|  | ||||
| @ -40,7 +40,7 @@ func (t *Call) MarshalCBOR(w io.Writer) error { | ||||
| 	if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("ID"))); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("ID")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("ID")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("State")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("State")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Result")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Result")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("RetType")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("RetType")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.RetType)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.RetType)); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("ID")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("ID")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Status")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Status")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.Status)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.Status)); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("StartTime")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("StartTime")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("WorkError")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("WorkError")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.WorkError)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.WorkError)); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("WorkerCall")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("WorkerCall")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("WorkerHostname")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("WorkerHostname")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.WorkerHostname)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.WorkerHostname)); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Method")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Method")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.Method)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.Method)); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Params")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Params")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.Params)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.Params)); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	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) | ||||
| 	} | ||||
| 
 | ||||
| 	var ticket abi.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 { | ||||
| 		ticket, err = base64.StdEncoding.DecodeString(ti.(string)) | ||||
| 		ticket, err := base64.StdEncoding.DecodeString(ti.(string)) | ||||
| 		if err != nil { | ||||
| 			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++ { | ||||
| 			var sd [32]byte | ||||
| 			_, _ = 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 output, nil | ||||
| } | ||||
| 
 | ||||
| @ -1149,6 +1184,13 @@ func (sb *Sealer) FinalizeSector(ctx context.Context, sector storiface.SectorRef | ||||
| 	} | ||||
| 	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) | ||||
| } | ||||
| 
 | ||||
| @ -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) | ||||
| } | ||||
| 
 | ||||
| @ -1203,6 +1252,12 @@ func (sb *Sealer) FinalizeReplicaUpdate(ctx context.Context, sector storiface.Se | ||||
| 		} | ||||
| 		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 { | ||||
| 			return xerrors.Errorf("clear cache: %w", err) | ||||
| 		} | ||||
| @ -1215,6 +1270,8 @@ func (sb *Sealer) FinalizeReplicaUpdate(ctx context.Context, sector storiface.Se | ||||
| 		} | ||||
| 		defer done() | ||||
| 
 | ||||
| 		// note: synth cache is not a thing for snapdeals
 | ||||
| 
 | ||||
| 		if err := ffi.ClearCache(uint64(ssize), paths.UpdateCache); err != nil { | ||||
| 			return xerrors.Errorf("clear cache: %w", err) | ||||
| 		} | ||||
|  | ||||
| @ -1086,7 +1086,111 @@ func TestDCAPCloses(t *testing.T) { | ||||
| 		require.Equal(t, "baga6ea4seaqeje7jy4hufnybpo7ckxzujaigqbcxhdjq7ojb4b6xzgqdugkyciq", c.PieceCID.String()) | ||||
| 		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 { | ||||
|  | ||||
| @ -38,7 +38,7 @@ func (t *CallID) MarshalCBOR(w io.Writer) error { | ||||
| 	if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("ID"))); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("ID")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("ID")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Sector")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Sector")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Key")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Key")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.Key)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.Key)); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Value")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Value")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.Value)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.Value)); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("URL")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("URL")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string(t.URL)); err != nil { | ||||
| 	if _, err := cw.WriteString(string(t.URL)); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Local")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Local")); err != nil { | ||||
| 		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 { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := io.WriteString(w, string("Headers")); err != nil { | ||||
| 	if _, err := cw.WriteString(string("Headers")); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| @ -448,13 +448,22 @@ func (t *SectorLocation) UnmarshalCBOR(r io.Reader) (err error) { | ||||
| 			} | ||||
| 
 | ||||
| 			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: | ||||
|  | ||||
| @ -587,13 +587,18 @@ func init() { | ||||
| 		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 { | ||||
| 		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_Feat_SyntheticPoRep] = m[abi.RegisteredSealProof_StackedDrg8MiBV1] | ||||
| 		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_Feat_SyntheticPoRep] = m[abi.RegisteredSealProof_StackedDrg32GiBV1] | ||||
| 		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-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/lotus/chain/actors/builtin/miner" | ||||
| 	"github.com/filecoin-project/lotus/chain/types" | ||||
| ) | ||||
| 
 | ||||
| @ -531,12 +531,12 @@ func nextDeadline(currentDeadline *dline.Info) *dline.Info { | ||||
| 	newDeadline := currentDeadline.Index + 1 | ||||
| 	if newDeadline == miner.WPoStPeriodDeadlines { | ||||
| 		newDeadline = 0 | ||||
| 		periodStart = periodStart + miner.WPoStProvingPeriod | ||||
| 		periodStart = periodStart + miner.WPoStProvingPeriod() | ||||
| 	} | ||||
| 
 | ||||
| 	return NewDeadlineInfo(periodStart, newDeadline, currentDeadline.CurrentEpoch) | ||||
| } | ||||
| 
 | ||||
| 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) | ||||
| } | ||||
|  | ||||
| @ -4,8 +4,9 @@ import ( | ||||
| 	"github.com/ipfs/go-cid" | ||||
| 
 | ||||
| 	"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/lotus/chain/actors/builtin/miner" | ||||
| ) | ||||
| 
 | ||||
| // SchedulerState defines the possible states in which the scheduler could be,
 | ||||
|  | ||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue
	
	Block a user