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

Rational PoSt #332

Merged
merged 32 commits into from
Aug 21, 2019
Merged

Rational PoSt #332

merged 32 commits into from
Aug 21, 2019

Conversation

dignifiedquire
Copy link
Contributor

No description provided.

drafts/proof-of-spacetime.md Outdated Show resolved Hide resolved
drafts/proof-of-spacetime.md Outdated Show resolved Hide resolved
drafts/proof-of-spacetime.md Outdated Show resolved Hide resolved
drafts/proof-of-spacetime.md Outdated Show resolved Hide resolved
@pooja pooja mentioned this pull request Jul 3, 2019
19 tasks
@dignifiedquire dignifiedquire force-pushed the update-post branch 2 times, most recently from eb0ef36 to a560992 Compare July 15, 2019 11:38
proof-of-spacetime.md Outdated Show resolved Hide resolved
proof-of-spacetime.md Outdated Show resolved Hide resolved
@dignifiedquire dignifiedquire force-pushed the update-post branch 2 times, most recently from e085023 to dfecd8e Compare July 26, 2019 20:50
@dignifiedquire dignifiedquire changed the title [wip] improving post spec [wip] Rational PoSt Jul 26, 2019
mining.md Outdated Show resolved Hide resolved
@whyrusleeping
Copy link
Member

overall +1, great to finally have this written down in a spec

proof-of-spacetime.md Outdated Show resolved Hide resolved
proof-of-spacetime.md Outdated Show resolved Hide resolved
@pooja pooja mentioned this pull request Jul 30, 2019
18 tasks
@dignifiedquire dignifiedquire changed the title [wip] Rational PoSt Rational PoSt Jul 31, 2019
@dignifiedquire dignifiedquire marked this pull request as ready for review July 31, 2019 15:15
proof-of-spacetime.md Outdated Show resolved Hide resolved
proof-of-spacetime.md Outdated Show resolved Hide resolved
proof-of-spacetime.md Outdated Show resolved Hide resolved
proof-of-spacetime.md Outdated Show resolved Hide resolved
@dignifiedquire
Copy link
Contributor Author

@anorth sorry I was wrong, the code does not handle this yet properly, updating it now

Copy link
Member

@whyrusleeping whyrusleeping left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not ideal, but the things i'd like improved are supposed to be improved in the upcoming faults PR, so fine to merge this now.

Copy link
Member

@anorth anorth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. This looks good to me modulo the outstanding TODOs around faults.

I would like to see some documentation somewhere addressing @whyrusleeping's concern about whether loss of power as the only penalty for omitting a PoSt damages the assumptions underlying the rational PoSt construction.

Other outstanding things for follow-up:

  • recovery from >1 unexpected faults during consecutive challenge windows
  • consensus penalty for reported faults (if more than just loss of power)
  • consensus penalty for missing PoSts (if more than just loss of power)
  • repeatedly faulty sectors must become eligible for deal arbitration by clients

actors.md Outdated Show resolved Hide resolved
actors.md Outdated Show resolved Hide resolved
actors.md Outdated Show resolved Hide resolved
actors.md Outdated Show resolved Hide resolved
proof-of-spacetime.md Outdated Show resolved Hide resolved

```go
// Generate a new PoSt.
func GeneratePoSt(sectorSize BytesAmount, sectors SectorSet, seed Seed, faults FaultSet) PoStProof {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should adjust POST_CHALLENGE_TIME to allow ample time for churn to resolve and still leave time for proof calculation.

} else {
// bad case, submitted late, need to take new proving period end as reference
seed = GetRandFromBlock(nextPovingPeriodEnd - POST_CHALLENGE_TIME)
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are some obvious cases where this could fail if SubmitPoSt is submitted too early, or races against the proving period end arriving. I guess they're implicitly fatal, but the spec should eventually be specific.

@dignifiedquire
Copy link
Contributor Author

#449 is the follow up tracking issue, if I missed anything please comment there

@dignifiedquire dignifiedquire merged commit 71d3e2a into master Aug 21, 2019
@dignifiedquire dignifiedquire deleted the update-post branch August 21, 2019 11:52
@pooja pooja mentioned this pull request Aug 27, 2019
22 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants