1
- use fil_actors_runtime:: EPOCHS_IN_YEAR ;
1
+ use fil_actors_runtime:: runtime :: Policy ;
2
2
use fvm_ipld_encoding:: ipld_block:: IpldBlock ;
3
3
use fvm_ipld_encoding:: RawBytes ;
4
4
use fvm_shared:: bigint:: BigInt ;
5
5
use fvm_shared:: econ:: TokenAmount ;
6
6
use fvm_shared:: sector:: { RegisteredAggregateProof , RegisteredSealProof , SectorNumber } ;
7
- use log:: info;
8
7
use num_traits:: Zero ;
9
8
10
9
use export_macro:: vm_test;
@@ -19,107 +18,12 @@ use crate::util::{
19
18
create_accounts, create_miner, override_compute_unsealed_sector_cid, sector_info,
20
19
} ;
21
20
22
- #[ vm_test]
23
- pub fn prove_commit_sectors_niporep_test ( v : & dyn VM ) {
24
- // Expectations depend on the correct unsealed CID for empty sector.
25
- override_compute_unsealed_sector_cid ( v) ;
26
- let addrs = create_accounts ( v, 3 , & TokenAmount :: from_whole ( 10_000 ) ) ;
27
- let seal_proof = RegisteredSealProof :: StackedDRG32GiBV1P1_Feat_NiPoRep ;
28
- let ( owner, worker, _, _) = ( addrs[ 0 ] , addrs[ 0 ] , addrs[ 1 ] , addrs[ 2 ] ) ;
29
- let worker_id = worker. id ( ) . unwrap ( ) ;
30
- let ( maddr, _) = create_miner (
31
- v,
32
- & owner,
33
- & worker,
34
- seal_proof. registered_window_post_proof ( ) . unwrap ( ) ,
35
- & TokenAmount :: from_whole ( 8_000 ) ,
36
- ) ;
37
- let miner_id = maddr. id ( ) . unwrap ( ) ;
38
-
39
- // Onboard a batch of sectors
40
- let expiration = v. epoch ( ) + 2 * EPOCHS_IN_YEAR ;
41
- let seal_rand_epoch = v. epoch ( ) - 1 ;
42
- let first_sector_number: SectorNumber = 100 ;
43
- let manifests = vec ! [
44
- first_sector_number,
45
- first_sector_number + 1 ,
46
- first_sector_number + 2 ,
47
- first_sector_number + 3 ,
48
- first_sector_number + 4 ,
49
- ] ;
50
-
51
- let sectors_info: Vec < SectorNIActivationInfo > = manifests
52
- . iter ( )
53
- . map ( |sector_number| SectorNIActivationInfo {
54
- sealing_number : * sector_number,
55
- sealer_id : miner_id,
56
- sector_number : * sector_number,
57
- sealed_cid : make_sealed_cid ( format ! ( "sn: {}" , sector_number) . as_bytes ( ) ) ,
58
- seal_rand_epoch,
59
- expiration,
60
- } )
61
- . collect ( ) ;
62
-
63
- // Prove-commit NI-PoRep
64
- let proofs = vec ! [ RawBytes :: new( vec![ 1 , 2 , 3 , 4 ] ) ; manifests. len( ) ] ;
65
- let params = ProveCommitSectorsNIParams {
66
- sectors : sectors_info. clone ( ) ,
67
- seal_proof_type : RegisteredSealProof :: StackedDRG32GiBV1P1_Feat_NiPoRep ,
68
- sector_proofs : proofs,
69
- aggregate_proof : RawBytes :: default ( ) ,
70
- aggregate_proof_type : None ,
71
- require_activation_success : true ,
72
- } ;
73
-
74
- let activation_epoch = v. epoch ( ) + EPOCHS_IN_YEAR / 2 ;
75
- v. set_epoch ( activation_epoch) ;
76
-
77
- apply_ok (
78
- v,
79
- & worker,
80
- & maddr,
81
- & TokenAmount :: zero ( ) ,
82
- MinerMethod :: ProveCommitSectorsNI as u64 ,
83
- Some ( params. clone ( ) ) ,
84
- ) ;
85
-
86
- ExpectInvocation {
87
- from : worker_id,
88
- to : maddr,
89
- method : MinerMethod :: ProveCommitSectorsNI as u64 ,
90
- params : Some ( IpldBlock :: serialize_cbor ( & params) . unwrap ( ) ) ,
91
- subinvocs : None ,
92
- events : Vec :: new ( ) ,
93
- ..Default :: default ( )
94
- }
95
- . matches ( v. take_invocations ( ) . last ( ) . unwrap ( ) ) ;
96
-
97
- // Checks on sector state.
98
- let sectors = manifests
99
- . iter ( )
100
- . map ( |sector_number| sector_info ( v, & maddr, * sector_number) )
101
- . collect :: < Vec < _ > > ( ) ;
102
- info ! ( "sectors: {:#?}" , sectors) ;
103
- for ( on_chain_sector, input_sector) in sectors. iter ( ) . zip ( sectors_info) {
104
- assert_eq ! ( input_sector. sector_number, on_chain_sector. sector_number) ;
105
- assert_eq ! ( params. seal_proof_type, on_chain_sector. seal_proof) ;
106
- assert_eq ! ( input_sector. sealed_cid, on_chain_sector. sealed_cid) ;
107
- assert ! ( on_chain_sector. deprecated_deal_ids. is_empty( ) ) ;
108
- assert_eq ! ( activation_epoch, on_chain_sector. activation) ;
109
- assert_eq ! ( input_sector. expiration, on_chain_sector. expiration) ;
110
- assert_eq ! ( BigInt :: zero( ) , on_chain_sector. deal_weight) ;
111
- assert_eq ! ( BigInt :: zero( ) , on_chain_sector. verified_deal_weight) ;
112
- assert_eq ! ( activation_epoch, on_chain_sector. power_base_epoch) ;
113
- assert ! ( on_chain_sector. flags. contains( SectorOnChainInfoFlags :: SIMPLE_QA_POWER ) ) ;
114
- }
115
- }
116
-
117
21
#[ vm_test]
118
22
pub fn prove_commit_sectors_aggregate_niporep_test ( v : & dyn VM ) {
119
23
// Expectations depend on the correct unsealed CID for empty sector.
120
24
override_compute_unsealed_sector_cid ( v) ;
121
25
let addrs = create_accounts ( v, 3 , & TokenAmount :: from_whole ( 10_000 ) ) ;
122
- let seal_proof = RegisteredSealProof :: StackedDRG32GiBV1P1_Feat_NiPoRep ;
26
+ let seal_proof = RegisteredSealProof :: StackedDRG32GiBV1P2_Feat_NiPoRep ;
123
27
let ( owner, worker, _, _) = ( addrs[ 0 ] , addrs[ 0 ] , addrs[ 1 ] , addrs[ 2 ] ) ;
124
28
let worker_id = worker. id ( ) . unwrap ( ) ;
125
29
let ( maddr, _) = create_miner (
@@ -130,10 +34,11 @@ pub fn prove_commit_sectors_aggregate_niporep_test(v: &dyn VM) {
130
34
& TokenAmount :: from_whole ( 8_000 ) ,
131
35
) ;
132
36
let miner_id = maddr. id ( ) . unwrap ( ) ;
37
+ let policy = Policy :: default ( ) ;
133
38
134
39
// Onboard a batch of sectors
135
- let expiration = v. epoch ( ) + 2 * EPOCHS_IN_YEAR ;
136
- let seal_rand_epoch = v. epoch ( ) - 1 ;
40
+ let expiration = v. epoch ( ) + policy . min_sector_expiration ;
41
+ let seal_rand_epoch = v. epoch ( ) ;
137
42
let first_sector_number: SectorNumber = 100 ;
138
43
let manifests = vec ! [
139
44
first_sector_number,
@@ -159,14 +64,14 @@ pub fn prove_commit_sectors_aggregate_niporep_test(v: &dyn VM) {
159
64
let aggregate_proof = RawBytes :: new ( vec ! [ 1 , 2 , 3 , 4 ] ) ;
160
65
let params = ProveCommitSectorsNIParams {
161
66
sectors : sectors_info. clone ( ) ,
162
- seal_proof_type : RegisteredSealProof :: StackedDRG32GiBV1P1_Feat_NiPoRep ,
163
- sector_proofs : Vec :: new ( ) ,
67
+ seal_proof_type : RegisteredSealProof :: StackedDRG32GiBV1P2_Feat_NiPoRep ,
164
68
aggregate_proof,
165
- aggregate_proof_type : Some ( RegisteredAggregateProof :: SnarkPackV2 ) ,
69
+ aggregate_proof_type : RegisteredAggregateProof :: SnarkPackV2 ,
70
+ proving_deadline : 0 ,
166
71
require_activation_success : true ,
167
72
} ;
168
73
169
- let activation_epoch = v. epoch ( ) + EPOCHS_IN_YEAR / 2 ;
74
+ let activation_epoch = v. epoch ( ) + policy . max_prove_commit_ni_randomness_lookback / 2 ;
170
75
v. set_epoch ( activation_epoch) ;
171
76
172
77
apply_ok (
@@ -184,7 +89,7 @@ pub fn prove_commit_sectors_aggregate_niporep_test(v: &dyn VM) {
184
89
method : MinerMethod :: ProveCommitSectorsNI as u64 ,
185
90
params : Some ( IpldBlock :: serialize_cbor ( & params) . unwrap ( ) ) ,
186
91
subinvocs : None ,
187
- events : Vec :: new ( ) ,
92
+ events : None ,
188
93
..Default :: default ( )
189
94
}
190
95
. matches ( v. take_invocations ( ) . last ( ) . unwrap ( ) ) ;
@@ -194,7 +99,7 @@ pub fn prove_commit_sectors_aggregate_niporep_test(v: &dyn VM) {
194
99
. iter ( )
195
100
. map ( |sector_number| sector_info ( v, & maddr, * sector_number) )
196
101
. collect :: < Vec < _ > > ( ) ;
197
- info ! ( "sectors: {:#?}" , sectors ) ;
102
+
198
103
for ( on_chain_sector, input_sector) in sectors. iter ( ) . zip ( sectors_info) {
199
104
assert_eq ! ( input_sector. sector_number, on_chain_sector. sector_number) ;
200
105
assert_eq ! ( params. seal_proof_type, on_chain_sector. seal_proof) ;
0 commit comments