-
Notifications
You must be signed in to change notification settings - Fork 13
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
[SessionManager] Implement off-chain proof params usage #765
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.
🙌 Nice one @red-0ne!
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.
Great job. Let's get this in!
The CI will now also run the e2e tests on devnet, which increases the time it takes to complete all CI checks. You may need to run GCP workloads (requires changing the namespace to 765) |
pkg/relayer/session/proof.go
Outdated
|
||
// isProofRequired determines whether a proof is required for the given session's | ||
// claim based on the current proof module governance parameters. | ||
// TODO_TECHDEBT: Once the on/off-chain loggers are unified, move this logic to |
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.
Is it overkill to just pass a logger, unify it now, and add a TECHDEBT explaining why we pas sin a logger?
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.
The on-chain logger cosmossdk.io/log
and off-chain one github.com/pokt-network/poktroll/pkg/polylog
seem to be incompatible.
I'm maybe missing something but we can't pass in a logger in both on/off-chain.
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.
Did you confirm that this doesn't work?
I believe this is the problem polylog
was meant to solve. cc @bryanchriswhite
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.
I tried, but had the following:
Will sync-up with @bryanchriswhite on this.
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.
Updated the comments to include investigation.
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.
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.
@red-0ne Left a couple more comments. Please review and update TODOs accordingly. Feel free to merge in after.
Approving pre-emtively.
Already discussed with Bryan about the changes that came after his last review.
…ke-transfer * pokt/main: [Tooling, Code Health] refactor: split Makefile into multiple files (#816) [Tooling] fix and add makefile targets (#814) [Docs] Add a debugging tip: using transaction hashes (#786) [Refactor] Replace embedded Service with ServiceId (#802) [Session,Service] Ensure SessionHeader and Service basic validation. (#782) [Tokenomics] Preparation for Global Mint Reimbursement Request (#755) [Quick PR][LocalNet] Turn off minimum-gas-prices (#805) [GATEWAY POC] A couple helpers to help deploy a PATH gateway (#801) [Documentation] Cosmovisor (#768) [CI] Add cosmovisor to container images (#796) Use a descriptive error if service ID is not found (#787) [SessionManager] Implement off-chain proof params usage (#765) [SDK] Update shannon sdk dependency (#800) [E2E Test] Remove redundant logging (#798)
…actor/transfer-msg_period-param * issues/657/feat/app-stake-transfer: [Tooling, Code Health] refactor: split Makefile into multiple files (#816) [Tooling] fix and add makefile targets (#814) [Docs] Add a debugging tip: using transaction hashes (#786) [Refactor] Replace embedded Service with ServiceId (#802) [Session,Service] Ensure SessionHeader and Service basic validation. (#782) [Tokenomics] Preparation for Global Mint Reimbursement Request (#755) [Quick PR][LocalNet] Turn off minimum-gas-prices (#805) [GATEWAY POC] A couple helpers to help deploy a PATH gateway (#801) [Documentation] Cosmovisor (#768) [CI] Add cosmovisor to container images (#796) Use a descriptive error if service ID is not found (#787) [SessionManager] Implement off-chain proof params usage (#765) [SDK] Update shannon sdk dependency (#800) [E2E Test] Remove redundant logging (#798)
…ues/657/chore/app-transfer-period * issues/657/refactor/transfer-msg_period-param: [Tooling, Code Health] refactor: split Makefile into multiple files (#816) [Tooling] fix and add makefile targets (#814) [Docs] Add a debugging tip: using transaction hashes (#786) [Refactor] Replace embedded Service with ServiceId (#802) [Session,Service] Ensure SessionHeader and Service basic validation. (#782) [Tokenomics] Preparation for Global Mint Reimbursement Request (#755) [Quick PR][LocalNet] Turn off minimum-gas-prices (#805) [GATEWAY POC] A couple helpers to help deploy a PATH gateway (#801) [Documentation] Cosmovisor (#768) [CI] Add cosmovisor to container images (#796) Use a descriptive error if service ID is not found (#787) [SessionManager] Implement off-chain proof params usage (#765) [SDK] Update shannon sdk dependency (#800) [E2E Test] Remove redundant logging (#798)
## Summary This PR introduces the proof params to the `RelayMiner` so it does not submit proofs when not required. The E2E and `SessionManager` tests have been updated to account for proof requirement. ## Issue The `RelayMiner`'s `SessionManager` was systematically submitting proofs on-chain whether they were required or not. This led to a state chain bloat since proofs are what takes most for the block space. Given the permissionless nature of the protocol, this causing scalability issues. - #758 ## Type of change Select one or more: - [x] New feature, functionality or library - [ ] Bug fix - [ ] Code health or cleanup - [ ] Documentation - [ ] Other (specify) ## Testing - [ ] **Documentation**: `make docusaurus_start`; only needed if you make doc changes - [x] **Unit Tests**: `make go_develop_and_test` - [x] **LocalNet E2E Tests**: `make test_e2e` - [ ] **DevNet E2E Tests**: Add the `devnet-test-e2e` label to the PR. ## Sanity Checklist - [x] I have tested my changes using the available tooling - [x] I have commented my code - [x] I have performed a self-review of my own code; both comments & source code - [ ] I create and reference any new tickets, if applicable - [x] I have left TODOs throughout the codebase, if applicable --------- Co-authored-by: Daniel Olshansky <[email protected]>
Summary
This PR introduces the proof params to the
RelayMiner
so it does not submit proofs when not required.The E2E and
SessionManager
tests have been updated to account for proof requirement.Issue
The
RelayMiner
'sSessionManager
was systematically submitting proofs on-chain whether they were required or not.This led to a state chain bloat since proofs are what takes most for the block space.
Given the permissionless nature of the protocol, this causing scalability issues.
Type of change
Select one or more:
Testing
make docusaurus_start
; only needed if you make doc changesmake go_develop_and_test
make test_e2e
devnet-test-e2e
label to the PR.Sanity Checklist