Implementation Claim & Proof windows without hacky tech debt.
Origin Document
There are many comments and temporary work around in the code. the following is just one of them:
// TODO_BLOCKER: query the on-chain governance parameter once available.
// `* 3` is just a random factor Olshansky added for now to make sure expiration
// doesn't happen immediately after a session's grace period is complete.
submitProofWindowEndHeight := sessionkeeper.GetSessionGracePeriodBlockCount() * 3
Goals
Resolve a lot of TECHDEBT related to claim / proof windows
Implement some of the core macro utility of the protocol
Deliverables
Reminder: This can be multiple PRs
[x] Add governance parameters for the following:
[x] sessionkeeper.ClaimOpenWindowMinNumBlocks - The minimum number of blocks (after a session ends) when a claim can be sent. Should be functionally independent of session grace period, but they will be "tied at the hip" in the implementation.
561
[x] sessionkeeper.ClaimCloseWindowMaxNumBlocks - The max number of blocks after a session ends when claims are no longer accepted. It must strictly greater than when a claim window opens.
568
[x] sessionkeeper.ProofOpenWindowMinNumBlocks - The min number of blocks (after a session ends) when a proof can be sent. It MUST be after the claim window closes.
569
[x] sessionkeeper.SubmitProofCloseWindowNumBlocks - The max number of block after a session ends. It must be strictly greater than when a proof window opens.
570
[ ] Techdebt - search for, identify, update and cleanup all comments / code / functions related to documented tech debt.
[x] Business logic - implement the actual thing
565
566
592
588
[ ] Testing
[x] Ensure we have at least 1 E2E test for each of the governance parameters above
[x] Ensure we have at least 1 integration (in memory) test for each of the governance parameter sabove
[ ] Add a TODO_BLOCKER where appropriate for the non-goals below
[ ] Makefile targets to:
[x] Modify / update the parameters
[x] Run the relevant E2E tests
[ ] Docs in docusurus to:
[ ] Minimally document these parameters. Feel free to use the explanation above as a starting point
Non-goals / Non-deliverables
Build a mature production-ready approach to evenly distributing the open/close windows
The min / max window define global windows, but later we'll add distributions that are session specific
Objective
Implementation
Claim
&Proof
windows without hacky tech debt.Origin Document
There are many comments and temporary work around in the code. the following is just one of them:
Goals
Deliverables
Reminder: This can be multiple PRs
sessionkeeper.ClaimOpenWindowMinNumBlocks
- The minimum number of blocks (after a session ends) when a claim can be sent. Should be functionally independent of session grace period, but they will be "tied at the hip" in the implementation.561
sessionkeeper.ClaimCloseWindowMaxNumBlocks
- The max number of blocks after a session ends when claims are no longer accepted. It must strictly greater than when a claim window opens.568
sessionkeeper.ProofOpenWindowMinNumBlocks
- The min number of blocks (after a session ends) when a proof can be sent. It MUST be after the claim window closes.569
sessionkeeper.SubmitProofCloseWindowNumBlocks
- The max number of block after a session ends. It must be strictly greater than when a proof window opens.570
565
566
592
588
TODO_BLOCKER
where appropriate for the non-goals belowNon-goals / Non-deliverables
Creator: @Olshansk Co-Owners: @bryanchriswhite