-
Notifications
You must be signed in to change notification settings - Fork 79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FIP-0076: Merge integration/direct-onboarding into master #1486
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First pass of a code review.
if let Some(existing_deal_ids) = existing_deal_ids { | ||
// The filter below is a linear scan of deals_to_remove. | ||
// This is expected to be a small list, often a singleton, so is usually | ||
// pretty fast. | ||
// Loading into a HashSet could be an improvement for large collections of deals | ||
// in a single sector being removed at one time. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Won't this always be all the deals in the sector? Given that:
- Cron is paying for it.
- An SP can create a sector with a lot of deals (thousands?).
This makes be a bit uncomfortable.
If we don't expect missing deals, we can sort then filter:
deals_to_remove.sort();
let deals_to_remove = deals_to_remove.iter().peekable();
let new_deals = existing_deal_ids // assume sorted?
.deals
.iter()
.filter(|deal_id| deals_to_remove.next_if_eq(deal_id).is_none())
.cloned()
.collect();
(we can skip missing deals, it's just slightly less clean).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Won't this always be all the deals in the sector?
Only if they all expire at around the same epoch.
Also there is a policy limit of 256 deals / sector, at least in the current precommit-based and non-DDO flow. You've inadvertently pointed to an interesting item that there is not a policy limit on the number of piece manifests activated with an individual sector in the new flow. This is relevant to concurrent discussion about removing artificial policy limits that could be better limited by gas.
With FIP-0074 cron will no longer pay for this (for new deals). The deal client will specify the deals to settle, which becomes deals_to_remove. We need to non-trivially rebase that code on FIP-0076 after landing this, but I expect the issue to become pretty minor.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only if they all expire at around the same epoch.
It's more a matter of it being under the control of the miner (who can self-deal here).
Also there is a policy limit of 256 deals / sector
Ok, that makes me feel a lot better (although 256^2
is still a fair amount).
With FIP-0074 cron will no longer pay for this (for new deals). The deal client will specify the deals to settle, which becomes deals_to_remove. We need to non-trivially rebase that code on FIP-0076 after landing this, but I expect the issue to become pretty minor.
Ah, is that slated for this upgrade? If so, I have no more concerns here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another chunk (lots of nits you can ignore, some you probably shouldn't).
Thanks for the review. I think the only significant item I haven't addressed in #1499 is #1486 (comment) . I propose that we leave it as-is until after rebasing and landing #1483 on top of this. Then it will be merely a question of efficiency of large batches, which we should probably improve but isn't critical. (I would say it must handle missing deals, so can't directly use the code you suggested). |
I've merged the changes from #1499 into here and will mark the associated comments as resolved. |
actors/miner/src/lib.rs
Outdated
)?; | ||
// Drop invalid inputs. | ||
let update_sector_infos: Vec<UpdateAndSectorInfo> = | ||
batch_return.successes(&update_sector_infos).iter().map(|x| (*x).clone()).collect(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
batch_return.successes(&update_sector_infos).iter().map(|x| (*x).clone()).collect(); | |
batch_return.successes(&update_sector_infos).into_iter().cloned().collect(); |
actors/miner/src/lib.rs
Outdated
let data_activation_inputs: Vec<DealsActivationInput> = | ||
update_sector_infos.iter().map(|x| x.into()).collect(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
note: we do import the itertools crate, so you can write this as:
let data_activation_inputs: Vec<DealsActivationInput> = | |
update_sector_infos.iter().map(|x| x.into()).collect(); | |
let data_activation_inputs: Vec<DealsActivationInput> = | |
update_sector_infos.iter().map_into().collect(); |
(but that is relying on an external crate, so up to you)
new_deals.deals.extend(existing_deal_ids.deals.iter()); | ||
} | ||
new_deals.deals.sort(); | ||
new_deals.deals.dedup(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SGTM. Just wanted to make sure this was intentional.
if let Some(existing_deal_ids) = existing_deal_ids { | ||
// The filter below is a linear scan of deals_to_remove. | ||
// This is expected to be a small list, often a singleton, so is usually | ||
// pretty fast. | ||
// Loading into a HashSet could be an improvement for large collections of deals | ||
// in a single sector being removed at one time. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only if they all expire at around the same epoch.
It's more a matter of it being under the control of the miner (who can self-deal here).
Also there is a policy limit of 256 deals / sector
Ok, that makes me feel a lot better (although 256^2
is still a fair amount).
With FIP-0074 cron will no longer pay for this (for new deals). The deal client will specify the deals to settle, which becomes deals_to_remove. We need to non-trivially rebase that code on FIP-0076 after landing this, but I expect the issue to become pretty minor.
Ah, is that slated for this upgrade? If so, I have no more concerns here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably my last comments.
actors/miner/src/lib.rs
Outdated
sector_infos.push(sectors.must_get(update.sector)?); | ||
let sector_type = sector_infos.last().unwrap().seal_proof; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sector_infos.push(sectors.must_get(update.sector)?); | |
let sector_type = sector_infos.last().unwrap().seal_proof; | |
let sector = sectors.must_get(update.sector)? | |
let sector_type = sector.seal_proof; | |
sector_infos.push(sector); |
actors/miner/src/lib.rs
Outdated
let mut notifications: Vec<ActivationNotifications> = vec![]; | ||
for (update, sector_info) in successful_manifests { | ||
notifications.push(ActivationNotifications { | ||
sector_number: update.sector, | ||
sector_expiration: sector_info.expiration, | ||
pieces: &update.pieces, | ||
}); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit:
let mut notifications: Vec<ActivationNotifications> = vec![]; | |
for (update, sector_info) in successful_manifests { | |
notifications.push(ActivationNotifications { | |
sector_number: update.sector, | |
sector_expiration: sector_info.expiration, | |
pieces: &update.pieces, | |
}); | |
} | |
let notifications: Vec<ActivationNotifications> = successful_manifests | |
.into_iter() | |
.map(|(update, sector_info)| ActivationNotifications { | |
sector_number: update.sector, | |
sector_expiration: sector_info.expiration, | |
pieces: &update.pieces, | |
}) | |
.collect(); |
(for simple cases, not really critical I guess).
actors/miner/src/lib.rs
Outdated
if let Some(compact_commd) = &precommit.unsealed_cid { | ||
if let Some(commd) = compact_commd.0 { | ||
if !is_unsealed_sector(&commd) { | ||
return Err(actor_error!( | ||
illegal_argument, | ||
"unsealed CID had wrong prefix" | ||
)); | ||
} | ||
} | ||
} else { | ||
return Err(actor_error!( | ||
illegal_argument, | ||
"unspecified CompactCommD not allowed past nv21, need explicit None value for CC or CommD" | ||
)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
match &precommit.unsealed_cid {
Some(Some(compact_commd)) if !is_unsealed_sector(&commd) => {
return Err(actor_error!(illegal_argument, "unsealed CID had wrong prefix"));
}
None => return Err(actor_error!(
illegal_argument,
"unspecified CompactCommD not allowed past nv21, need explicit None value for CC or CommD")),
_ => {},
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(slightly easier to read, IMO)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but won't work because there's a tuple struct in the middle, maybe this?
match precommit.unsealed_cid.as_ref().and_then(|c| c.0.as_ref()) {
Some(compact_commd) if !is_unsealed_sector(&compact_commd) => {
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah. It can also be written as:
match &precommit.unsealed_cid {
Some(CompactCommD(Some(commd))) if !is_unsealed_sector(commd) => {
return Err(actor_error!(illegal_argument, "unsealed CID had wrong prefix"));
}
None => return Err(actor_error!(
illegal_argument,
"unspecified CompactCommD not allowed past nv21, need explicit None value for CC or CommD")),
_ => {},
}
if commd.0 != *computed_cid { | ||
return Err(actor_error!(illegal_argument, "computed {:?} and passed {:?} CommDs not equal", | ||
computed_cid, commd)); | ||
let declared_commd = precommit.unsealed_cid.unwrap(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will this not be an issue during a migration period? Can there not be "null" pre-commits on-chain right now?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is checked as a precondition earlier in this method (the code block that your previous comment is attached to). But thanks - you've pointed out that we can remove this Option now. I'll do it in a follow-up.
actors/miner/src/lib.rs
Outdated
&[update.sector_info.clone()], | ||
&[new_sector_info.clone()], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perf nit:
&[update.sector_info.clone()], | |
&[new_sector_info.clone()], | |
std::slice::from_ref(&update.sector_info), | |
std::slice::from_ref(&new_sector_info), |
(you can transform a reference into a size-one slice with no copying)
- PreCommitSector and PreCommitBatch deprecated - PreCommitBatchV2 now requires specifying (compact) CommD - Move all testing to use PreCommitBatchV2 Co-authored-by: ZenGround0 <5515260+ZenGround0@users.noreply.github.com> Co-authored-by: zenground0 <ZenGround0@users.noreply.github.com>
Co-authored-by: zenground0 <ZenGround0@users.noreply.github.com>
…ta (#1387) Co-authored-by: ZenGround0 <5515260+ZenGround0@users.noreply.github.com>
Send SectorContentChanged from new onboarding methods. Simplify return values to make notifications fire and forget.
* Simplify input to activate_sectors_deals * Remove old PRU2 and parameter types * Reuse PRU2 name for DDO PRU fka PRU 3 --------- Co-authored-by: zenground0 <ZenGround0@users.noreply.github.com>
Co-authored-by: zenground0 <ZenGround0@users.noreply.github.com>
* Tests and fixes for ProveReplicaUpdates2 * Helper function
Tests that CommD computed from pieces must match that declared at precommit. Tests that updating an empty replica to be empty is permitted (later, when we allow updates to non-empty replicas, it won't be a no-op).
This just avoids some awkward unwraps.
9b48125
to
db65674
Compare
#1508 has landed with final review responses. |
commit f0a0631 Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Wed Jan 31 11:57:31 2024 +0400 emit event during settling payments commit a35b1cc Merge: 1722310 859c731 Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Tue Jan 30 09:47:20 2024 +0400 Merge remote-tracking branch 'origin/master' into feat/ddo-actor-events commit 1722310 Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Mon Jan 29 14:04:27 2024 +0400 Apply suggestions from code review Co-authored-by: Rod Vagg <rod@vagg.org> commit b149550 Merge: 803f420 d0b8d9c Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Mon Jan 29 14:00:12 2024 +0400 Merge remote-tracking branch 'origin/integration/manual-settlement' into feat/ddo-actor-events commit d0b8d9c Author: Alex Su <alexanderytsu@gmail.com> Date: Mon Oct 16 09:09:28 2023 +1100 Use ExitCode::USR_NOT_FOUND for missing state in GetDealActivation (#1441) * hide deals that are asynchronously termianted in get_deal_activation * add test for EX_DEAL_EXPIRED behaviour commit c6227a2 Author: Alex Su <alexanderytsu@gmail.com> Date: Mon Oct 9 13:00:46 2023 +1100 Additional tests for synchronous termination and SettleDealPayments (#1423) * rename some tests and comments to no longer reference slashed_epoch which will never be observable * port cron tick tests for deal termination * move deal termination tests * modify generate and publish deal to return proposal inline * fix bug when settling payments between between publish and activation * deal termination edge cases * pr review commit 21baa60 Author: Alex Su <alexanderytsu@gmail.com> Date: Fri Sep 8 12:29:14 2023 +1000 Explicit deal settlement in built-in market (#1377) commit 803f420 Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Tue Jan 23 18:21:17 2024 +0400 changes commit 78ec9f6 Merge: c90fafe e671d69 Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Tue Jan 23 18:21:02 2024 +0400 Merge remote-tracking branch 'origin/integration/direct-onboarding' into feat/ddo-actor-events commit e671d69 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Tue Jan 23 14:07:21 2024 +1300 More review response for #1486. (#1508) commit db65674 Author: Steven Allen <steven@stebalien.com> Date: Wed Jan 17 10:56:30 2024 -0800 Cleanup batch return merge logic (#1503) This just avoids some awkward unwraps. commit 84b0c00 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Wed Jan 17 09:05:16 2024 +1300 Response to review on #1486 (#1499) Response to review on #1486 commit 049b9c7 Author: Steven Allen <steven@stebalien.com> Date: Mon Jan 15 12:48:17 2024 -0800 chore: remove unnecessary clone of piece payload (#1494) commit 9334a87 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Tue Jan 9 07:04:12 2024 +1300 Add aggregate proof type parameter to ProveCommitSectors3 (#1489) commit 4126ccb Author: Alex North <445306+anorth@users.noreply.github.com> Date: Fri Dec 22 07:17:28 2023 +1100 Add missing vm_test annotations. (#1488) commit 3ad21ac Author: Alex North <445306+anorth@users.noreply.github.com> Date: Tue Dec 19 11:49:23 2023 +1100 Rename PCS2/PRU2 to PCS3/PRU3 (#1485) commit 53cb47e Author: Alex North <445306+anorth@users.noreply.github.com> Date: Tue Dec 19 11:08:21 2023 +1100 Transparent serialization for ProveReplicaUpdates2Return (#1484) commit 5cdfc2f Author: Alex North <445306+anorth@users.noreply.github.com> Date: Tue Oct 31 13:49:37 2023 +1100 Integration test for prove_replica_updates2 (#1453) commit 0f8c593 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Tue Oct 31 12:52:33 2023 +1100 Integration test for prove_commit_sectors2 (#1450) commit 5cecdf6 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Tue Oct 31 11:52:06 2023 +1100 Add GetDealSector exported API method to market actor (#1443) commit 21c01a9 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Tue Oct 17 05:20:35 2023 +1100 More tests for direct data onboarding (#1440) Tests that CommD computed from pieces must match that declared at precommit. Tests that updating an empty replica to be empty is permitted (later, when we allow updates to non-empty replicas, it won't be a no-op). commit 47e1cf1 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Mon Oct 16 07:18:28 2023 +1100 Tests for prove_commit_sectors2 (#1437) commit a108360 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Thu Sep 28 03:11:22 2023 +1000 Tests for ProveCommitSectors2 for cases that abort entirely (#1414) commit ff66f79 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Sat Sep 23 05:05:35 2023 +1000 Check state invariants in direct onboarding tests (#1416) commit 3354d8a Author: Alex North <445306+anorth@users.noreply.github.com> Date: Sat Sep 16 04:23:58 2023 +1000 Tests and fixes for ProveReplicaUpdates2 (#1411) * Tests and fixes for ProveReplicaUpdates2 * Helper function commit 869af32 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Mon Sep 11 10:17:48 2023 +1000 Move prove_commit2 tests to separate file from pru tests (#1410) commit 24b5cd6 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Fri Sep 8 10:19:52 2023 +1000 PRU2 tests that abort the whole method (#1407) commit ff472f2 Author: ZenGround0 <5515260+ZenGround0@users.noreply.github.com> Date: Thu Sep 7 19:04:58 2023 -0400 Prove commit 2 simple tests (#1408) commit a861f02 Author: Shrenuj Bansal <108157875+shrenujbansal@users.noreply.github.com> Date: Wed Sep 6 21:47:36 2023 -0400 Return error if success count for proof validation or data activations is 0 (#1406) commit 0457d86 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Wed Sep 6 08:26:36 2023 +1000 Remove allocation id from market deal state. Clean up and improve state checks. (#1403) commit e0083f4 Author: ZenGround0 <5515260+ZenGround0@users.noreply.github.com> Date: Mon Sep 4 20:48:54 2023 -0400 Deprecate Deal IDs (#1402) Co-authored-by: zenground0 <ZenGround0@users.noreply.github.com> commit d78586f Author: ZenGround0 <5515260+ZenGround0@users.noreply.github.com> Date: Mon Sep 4 14:44:41 2023 -0400 Deprecate unused Prove Replica update 2 (#1401) * Simplify input to activate_sectors_deals * Remove old PRU2 and parameter types * Reuse PRU2 name for DDO PRU fka PRU 3 --------- Co-authored-by: zenground0 <ZenGround0@users.noreply.github.com> commit c1aa98f Author: Alex North <445306+anorth@users.noreply.github.com> Date: Mon Sep 4 11:09:24 2023 +1000 Basic unit tests for ProveReplicaUpdate3 (#1394) commit 5de9cae Author: Alex North <445306+anorth@users.noreply.github.com> Date: Fri Sep 1 08:24:52 2023 +1000 Compute batch returns for direct onboarding methods (#1393) commit 06f282a Author: Alex North <445306+anorth@users.noreply.github.com> Date: Thu Aug 31 05:10:48 2023 +1000 Send SectorContentChanged from new onboarding methods (#1386) Send SectorContentChanged from new onboarding methods. Simplify return values to make notifications fire and forget. commit 6a2a089 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Thu Aug 31 03:43:37 2023 +1000 Miner notifies market of termination only of sectors with non-zero data (#1387) Co-authored-by: ZenGround0 <5515260+ZenGround0@users.noreply.github.com> commit ba9b579 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Wed Aug 30 20:07:45 2023 +1000 Implement new ProveReplicaUpdates3 for direct data onboarding. (#1385) commit 9c681c7 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Tue Aug 29 08:38:39 2023 +1000 Implements new ProveCommit batch+aggregate for direct onboarding (#1380) Co-authored-by: zenground0 <ZenGround0@users.noreply.github.com> commit c5fd304 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Tue Aug 15 13:35:08 2023 +1000 Implements SectorContentChanged method in built-in market actor (#1353) commit e55498d Author: Alex North <445306+anorth@users.noreply.github.com> Date: Wed Aug 9 08:40:52 2023 +1000 Remove deprecated precommit methods (#1357) - PreCommitSector and PreCommitBatch deprecated - PreCommitBatchV2 now requires specifying (compact) CommD - Move all testing to use PreCommitBatchV2 Co-authored-by: ZenGround0 <5515260+ZenGround0@users.noreply.github.com> Co-authored-by: zenground0 <ZenGround0@users.noreply.github.com> commit 181305e Author: Alex North <445306+anorth@users.noreply.github.com> Date: Fri Aug 4 04:33:49 2023 +1000 Implement sector->deal mapping in built-in market actor (#1347) commit c90fafe Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Thu Jan 18 20:06:10 2024 +0400 changes as per steb's review commit 7e0abca Author: Alex North <445306+anorth@users.noreply.github.com> Date: Fri Jan 12 11:24:13 2024 +1300 Simply deal activation return and intermediate data flow commit 6e3b5ca Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Thu Jan 11 21:41:05 2024 +0400 finish review commit 4d20e04 Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Thu Jan 11 18:28:23 2024 +0400 tests pass commit 733a98f Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Wed Jan 10 17:51:41 2024 +0400 fix itests commit aef0fdd Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Wed Jan 10 17:21:41 2024 +0400 batch activate deals should return piece info commit 4a1ecdf Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Tue Jan 9 19:59:35 2024 +0400 rustfmt commit f92222d Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Tue Jan 9 19:53:59 2024 +0400 itests green commit 6f8be0d Merge: 693338f aa0a168 Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Tue Jan 9 17:28:53 2024 +0400 Merge remote-tracking branch 'origin/integration/direct-onboarding' into feat/ddo-actor-events commit 693338f Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Tue Jan 9 17:25:36 2024 +0400 itests almost there commit aa0a168 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Tue Jan 9 07:04:12 2024 +1300 Add aggregate proof type parameter to ProveCommitSectors3 (#1489) commit 9e19d32 Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Mon Jan 8 19:32:09 2024 +0400 itests partially complete commit 0485317 Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Mon Jan 8 17:09:44 2024 +0400 itests work 1 commit 2ce92e6 Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Mon Jan 8 14:29:03 2024 +0400 miner actor events commit 9a22c67 Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Wed Jan 3 12:48:36 2024 +0400 miner actor events commit 6e5d70c Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Tue Jan 2 13:15:42 2024 +0400 market actor events commit f522274 Author: Aarsh Shah <aarshkshah1992@gmail.com> Date: Tue Jan 2 10:02:11 2024 +0400 verifreg events and itest harness commit 1d85ec5 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Fri Dec 22 07:17:28 2023 +1100 Add missing vm_test annotations. (#1488) commit 0d103fe Author: Alex North <445306+anorth@users.noreply.github.com> Date: Tue Dec 19 11:49:23 2023 +1100 Rename PCS2/PRU2 to PCS3/PRU3 (#1485) commit e01a799 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Tue Dec 19 11:08:21 2023 +1100 Transparent serialization for ProveReplicaUpdates2Return (#1484) commit 13931e0 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Tue Oct 31 13:49:37 2023 +1100 Integration test for prove_replica_updates2 (#1453) commit 39b488b Author: Alex North <445306+anorth@users.noreply.github.com> Date: Tue Oct 31 12:52:33 2023 +1100 Integration test for prove_commit_sectors2 (#1450) commit 04f3843 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Tue Oct 31 11:52:06 2023 +1100 Add GetDealSector exported API method to market actor (#1443) commit e48433c Author: Alex North <445306+anorth@users.noreply.github.com> Date: Tue Oct 17 05:20:35 2023 +1100 More tests for direct data onboarding (#1440) Tests that CommD computed from pieces must match that declared at precommit. Tests that updating an empty replica to be empty is permitted (later, when we allow updates to non-empty replicas, it won't be a no-op). commit 7dfdfc2 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Mon Oct 16 07:18:28 2023 +1100 Tests for prove_commit_sectors2 (#1437) commit df2711e Author: Alex North <445306+anorth@users.noreply.github.com> Date: Thu Sep 28 03:11:22 2023 +1000 Tests for ProveCommitSectors2 for cases that abort entirely (#1414) commit 3f3a6c4 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Sat Sep 23 05:05:35 2023 +1000 Check state invariants in direct onboarding tests (#1416) commit c9fdbaa Author: Alex North <445306+anorth@users.noreply.github.com> Date: Sat Sep 16 04:23:58 2023 +1000 Tests and fixes for ProveReplicaUpdates2 (#1411) * Tests and fixes for ProveReplicaUpdates2 * Helper function commit 6ef0eb2 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Mon Sep 11 10:17:48 2023 +1000 Move prove_commit2 tests to separate file from pru tests (#1410) commit 5f28bc2 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Fri Sep 8 10:19:52 2023 +1000 PRU2 tests that abort the whole method (#1407) commit 415bc7a Author: ZenGround0 <5515260+ZenGround0@users.noreply.github.com> Date: Thu Sep 7 19:04:58 2023 -0400 Prove commit 2 simple tests (#1408) commit d3e7256 Author: Shrenuj Bansal <108157875+shrenujbansal@users.noreply.github.com> Date: Wed Sep 6 21:47:36 2023 -0400 Return error if success count for proof validation or data activations is 0 (#1406) commit aaca941 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Wed Sep 6 08:26:36 2023 +1000 Remove allocation id from market deal state. Clean up and improve state checks. (#1403) commit 2724624 Author: ZenGround0 <5515260+ZenGround0@users.noreply.github.com> Date: Mon Sep 4 20:48:54 2023 -0400 Deprecate Deal IDs (#1402) Co-authored-by: zenground0 <ZenGround0@users.noreply.github.com> commit fbbdaf8 Author: ZenGround0 <5515260+ZenGround0@users.noreply.github.com> Date: Mon Sep 4 14:44:41 2023 -0400 Deprecate unused Prove Replica update 2 (#1401) * Simplify input to activate_sectors_deals * Remove old PRU2 and parameter types * Reuse PRU2 name for DDO PRU fka PRU 3 --------- Co-authored-by: zenground0 <ZenGround0@users.noreply.github.com> commit 4b9042b Author: Alex North <445306+anorth@users.noreply.github.com> Date: Mon Sep 4 11:09:24 2023 +1000 Basic unit tests for ProveReplicaUpdate3 (#1394) commit 3a293df Author: Alex North <445306+anorth@users.noreply.github.com> Date: Fri Sep 1 08:24:52 2023 +1000 Compute batch returns for direct onboarding methods (#1393) commit 351a15a Author: Alex North <445306+anorth@users.noreply.github.com> Date: Thu Aug 31 05:10:48 2023 +1000 Send SectorContentChanged from new onboarding methods (#1386) Send SectorContentChanged from new onboarding methods. Simplify return values to make notifications fire and forget. commit 35efa32 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Thu Aug 31 03:43:37 2023 +1000 Miner notifies market of termination only of sectors with non-zero data (#1387) Co-authored-by: ZenGround0 <5515260+ZenGround0@users.noreply.github.com> commit 8dd2c12 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Wed Aug 30 20:07:45 2023 +1000 Implement new ProveReplicaUpdates3 for direct data onboarding. (#1385) commit 079ebbc Author: Alex North <445306+anorth@users.noreply.github.com> Date: Tue Aug 29 08:38:39 2023 +1000 Implements new ProveCommit batch+aggregate for direct onboarding (#1380) Co-authored-by: zenground0 <ZenGround0@users.noreply.github.com> commit 047c3ec Author: Alex North <445306+anorth@users.noreply.github.com> Date: Tue Aug 15 13:35:08 2023 +1000 Implements SectorContentChanged method in built-in market actor (#1353) commit 3e14b94 Author: Alex North <445306+anorth@users.noreply.github.com> Date: Wed Aug 9 08:40:52 2023 +1000 Remove deprecated precommit methods (#1357) - PreCommitSector and PreCommitBatch deprecated - PreCommitBatchV2 now requires specifying (compact) CommD - Move all testing to use PreCommitBatchV2 Co-authored-by: ZenGround0 <5515260+ZenGround0@users.noreply.github.com> Co-authored-by: zenground0 <ZenGround0@users.noreply.github.com> commit dd3b68e Author: Alex North <445306+anorth@users.noreply.github.com> Date: Fri Aug 4 04:33:49 2023 +1000 Implement sector->deal mapping in built-in market actor (#1347)
See https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0076.md
This code was originally reviewed when landing on integration/direct-onboarding in these PRs. For any blocking changes (or sufficient non-blocking ones), I'll make a new PR against that base to resolve them.
Reviewers: in addition to checking over the code please point to or suggest additional testing we can do following the merge.
Note this code also contains the following FIP amendments:
We don't need to wait for them, but if they are changed or rejected, the code needs to change to match.
Closes #1342.