Skip to content
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

test: actors: manual Ni-PoRep onboarding #12045

Closed
wants to merge 32 commits into from

Conversation

rvagg
Copy link
Member

@rvagg rvagg commented May 27, 2024

Also adds multi-miner support to the manual test, including async PoST scheduling.

This depends on a bunch of changes elsewhere to work and needs manual wiring up:

@rvagg
Copy link
Member Author

rvagg commented May 27, 2024

Oh, and this currently doesn't get past the actors call for NI-PoRep WithRealProofs, it fails with:

sector proof size 14164 exceeds max 192

I believe we should have a single groth16 snark proof that rolls up the new PoRep for the batch (single) case so I that should be 192 as far as I understand. But somehow we're getting this massive proof for a single sector.

Thread about this in Slack @ https://filecoinproject.slack.com/archives/C06EZQ2DTD0/p1716637350693809

@rvagg rvagg force-pushed the rvagg/manual_cc_itest-niporep branch from 04b05e6 to 6524ea1 Compare May 27, 2024 05:22
@rvagg
Copy link
Member Author

rvagg commented May 28, 2024

FWIW this now passes if I comment out this line in actors: https://github.com/filecoin-project/builtin-actors/blob/308f0c06d01ae2fdc017fbe022a077bb972c3991/actors/miner/src/lib.rs#L2004

Discussion still ongoing regarding what the expected sizes are for proofs, but that check probably just needs to be changed to account for single NI-PoRep proof sizes which are much bigger than plain proofs.

@rvagg
Copy link
Member Author

rvagg commented May 29, 2024

Added support for NI-PoRep in lotus-bench so I can generate --non-interactive proofs and do some testing.

I did break SealProofTypeFromSectorSize in chain/actors/builtin/miner though, it currently has a synthetic bool argument, I changed it to:

type SealProofVariant int

const (
	SealProofVariant_Standard SealProofVariant = iota
	SealProofVariant_Synthetic
	SealProofVariant_NonInteractive
)

// ...

func SealProofTypeFromSectorSize(ssize abi.SectorSize, nv network.Version, variant SealProofVariant) (abi.RegisteredSealProof, error) {
// ...
}

And it does slightly more rigorous checking on what's possible—the variant must be valid for the network version.

@rvagg rvagg force-pushed the rvagg/manual_cc_itest-niporep branch 3 times, most recently from cc7b1b9 to 013b8d1 Compare May 29, 2024 06:23
@rvagg rvagg force-pushed the rvagg/manual_cc_itest-niporep branch from 013b8d1 to 3b1eaf8 Compare June 3, 2024 04:09
Base automatically changed from rvagg/manual_cc_itest to master June 6, 2024 04:47
@rvagg
Copy link
Member Author

rvagg commented Jun 15, 2024

Status of this is that (for the 3rd time) I'm going to drop this branch and push a new one soon. I've started again locally on top of master because most of the churn that went into this branch has been merged in the UnmanagedMiner work and we have the markets and client removal stuff on top of that so there's a huge diff and it's almost impossible to reconcile now. Plus, NI-PoRep will go into a new, separate itest now that we have pulled all the shared UnmanagedMiner stuff into the testkit.

@rvagg rvagg mentioned this pull request Jun 18, 2024
10 tasks
@rvagg
Copy link
Member Author

rvagg commented Jun 18, 2024

Replaced by #12105

@rvagg rvagg closed this Jun 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: ✅ Done
Development

Successfully merging this pull request may close these issues.

None yet

2 participants