-
Notifications
You must be signed in to change notification settings - Fork 8
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
[Supplier] Initial slashing implementation #795
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.
Haven't gone through the meet yet in x/tokenomics/keeper/settle_pending_claims.go
but publishing a partial review
I added an unexpected change due to a conflict (cyclic dependency) resulting from merging The The conflict itself is due to While in this branch, |
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.
Minor comment but LGTM otherwise!
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 795) |
…nt-stake-supplier * pokt/main: [Supplier] Initial slashing implementation (#795)
…99/e2e/param-helpers * issues/799/e2e/idempotent-stake-supplier: chore: add comment chore: sync shared module default params fix: failing E2E test [Supplier] Initial slashing implementation (#795) [Container image] Change base image for release (#829) [Proof] Prevent proof submission when not required (#822) chore: rename paramsAnyMap type to mitigate variable name shadowing [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)
…lier-stake-events * issues/799/e2e/param-helpers: chore: review feedback improvements chore: add comment chore: sync shared module default params fix: failing E2E test [Supplier] Initial slashing implementation (#795) [Container image] Change base image for release (#829) [Proof] Prevent proof submission when not required (#822) chore: rename paramsAnyMap type to mitigate variable name shadowing [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)
…tests/params * issues/799/feat/supplier-stake-events: chore: review feedback improvements chore: add comment chore: sync shared module default params fix: failing E2E test [Supplier] Initial slashing implementation (#795) [Container image] Change base image for release (#829) [Proof] Prevent proof submission when not required (#822) chore: rename paramsAnyMap type to mitigate variable name shadowing [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)
## Summary This PR introduces the initial implementation of `Supplier` slashing: - Adjusts proof parameters to align with the probabilistic proofs paper. - Adds comments on potential follow-up improvements and adjustments. - Implements `Supplier` slashing for invalid or missing proofs. - Unstakes a `Supplier` whose stake falls below the minimum due to slashing. - Move the `ComputeUnitsToTokenMultiplier` to the `shared` module. _~1300LOC is auto-generated code_ ## Issue To enable permissionless demand, the protocol must discourage the submission of false or invalid claims. As part of this, `Suppliers` should be penalized for failing to comply with the C&P life cycle rules. - #758 ## Type of change Select one or more from the following: - [x] New feature, functionality or library - [x] Consensus breaking; add the `consensus-breaking` label if so. See #791 for details - [ ] 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` - [x] **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 initial implementation of
Supplier
slashing:Supplier
slashing for invalid or missing proofs.Supplier
whose stake falls below the minimum due to slashing.ComputeUnitsToTokenMultiplier
to theshared
module.~1300LOC is auto-generated code
Issue
To enable permissionless demand, the protocol must discourage the submission of false or invalid claims.
As part of this,
Suppliers
should be penalized for failing to comply with the C&P life cycle rules.Type of change
Select one or more from the following:
consensus-breaking
label if so. See [Infra] Automatically add theconsensus-breaking
label #791 for detailsTesting
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