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

[Application] Single Service Applications #886

Merged
merged 13 commits into from
Oct 28, 2024
Merged

Conversation

red-0ne
Copy link
Contributor

@red-0ne red-0ne commented Oct 17, 2024

Summary

This PR enforces staking Applications to have a single service, updates the tests and add documentation about the reasoning behind this enforcement.

Note that the Application.ServiceConfigs remains a slice, reducing the codebase diff and allowing future multi-service Applications

Issue

Having MaxClaimableAmount = Application.Stake * numSessionSuppliers could allow Applications to over-service by making Suppliers of different session claim from the same stake.

image

Type of change

Select one or more from the following:

  • New feature, functionality or library
  • Documentation

Testing

  • Documentation: make docusaurus_start; only needed if you make doc changes
  • Unit Tests: make go_develop_and_test
  • LocalNet E2E Tests: make test_e2e
  • DevNet E2E Tests: Add the devnet-test-e2e label to the PR.

Sanity Checklist

  • I have tested my changes using the available tooling
  • I have commented my code
  • I have performed a self-review of my own code; both comments & source code
  • I create and reference any new tickets, if applicable
  • I have left TODOs throughout the codebase, if applicable

@red-0ne red-0ne added application Changes related to the Application actor service Anything related to general-purpose RPC service support tokenomics Token Economics - what else do you need? labels Oct 17, 2024
@red-0ne red-0ne added this to the Shannon Beta TestNet Launch milestone Oct 17, 2024
@red-0ne red-0ne self-assigned this Oct 17, 2024
Copy link
Contributor

@bryanchriswhite bryanchriswhite left a comment

Choose a reason for hiding this comment

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

image

e2e/tests/init_test.go Outdated Show resolved Hide resolved
e2e/tests/node.go Outdated Show resolved Hide resolved
e2e/tests/node.go Outdated Show resolved Hide resolved
e2e/tests/relay.feature Outdated Show resolved Hide resolved
Copy link

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 make trigger_ci to submit an empty commit that'll trigger the tests.

GCP workloads (requires changing the namespace to 886)
Grafana network dashboard for devnet-issue-886

@github-actions github-actions bot added devnet push-image CI related - pushes images to ghcr.io labels Oct 23, 2024
Copy link

gitguardian bot commented Oct 24, 2024

⚠️ GitGuardian has uncovered 1 secret following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secret in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
12819930 Triggered Generic Password 57e7f8c localnet/kubernetes/values-pocketdex-postgres.yaml View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secret safely. Learn here the best practices.
  3. Revoke and rotate this secret.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

docusaurus/docs/operate/configs/app_staking_config.md Outdated Show resolved Hide resolved
docusaurus/docs/operate/configs/app_staking_config.md Outdated Show resolved Hide resolved
docusaurus/docs/protocol/tokenomics/token_logic_modules.md Outdated Show resolved Hide resolved
e2e/tests/stake_app.feature Outdated Show resolved Hide resolved
proto/poktroll/application/types.proto Outdated Show resolved Hide resolved
Copy link
Contributor

@bryanchriswhite bryanchriswhite left a comment

Choose a reason for hiding this comment

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

Preemptively approving! +1 to outstanding feedback, plus one question; otherwise, LGTM! 🙌

go.mod Outdated Show resolved Hide resolved
@red-0ne red-0ne requested a review from Olshansk October 25, 2024 16:11
Copy link
Member

@Olshansk Olshansk left a comment

Choose a reason for hiding this comment

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

Ty!

@red-0ne red-0ne merged commit ff99cfc into main Oct 28, 2024
13 checks passed
bryanchriswhite added a commit that referenced this pull request Nov 4, 2024
…tlement

# By Redouane Lakrache (3) and others
# Via GitHub
* pokt/main:
  [Observability] Foundation for load testing telemetry (#832)
  [Tokenomics] Implement Global Mint Reimbursement Request (#878)
  [Docs] Assign owners to all `TODO_BETA` (#898)
  [Supplier] Add supplier staking fee (#883)
  [Application] Single Service Applications (#886)

# Conflicts:
#	testutil/keeper/tokenomics.go
#	x/tokenomics/keeper/settle_pending_claims.go
#	x/tokenomics/keeper/token_logic_modules.go
#	x/tokenomics/keeper/token_logic_modules_test.go
#	x/tokenomics/module/abci.go
#	x/tokenomics/types/errors.go
bryanchriswhite added a commit that referenced this pull request Nov 4, 2024
# By Redouane Lakrache (3) and others
# Via GitHub
* pokt/main:
  [Observability] Foundation for load testing telemetry (#832)
  [Tokenomics] Implement Global Mint Reimbursement Request (#878)
  [Docs] Assign owners to all `TODO_BETA` (#898)
  [Supplier] Add supplier staking fee (#883)
  [Application] Single Service Applications (#886)

# Conflicts:
#	x/supplier/keeper/msg_server_stake_supplier.go
#	x/supplier/keeper/msg_server_stake_supplier_test.go
#	x/supplier/keeper/msg_server_unstake_supplier_test.go
okdas added a commit that referenced this pull request Nov 14, 2024
## Summary

This PR enforces staking `Application`s to have a single service,
updates the tests and add documentation about the reasoning behind this
enforcement.

Note that the `Application.ServiceConfigs` remains a slice, reducing the
codebase diff and allowing future multi-service `Applications`

## Issue

Having `MaxClaimableAmount = Application.Stake * numSessionSuppliers`
could allow `Application`s to over-service by making `Supplier`s of
different session claim from the same stake.


![image](https://github.com/user-attachments/assets/f1396ea5-5788-4185-8a3c-4c8afc3429ef)

-
#750 (comment)

## Type of change

Select one or more from the following:

- [x] New feature, functionality or library
- [x] Documentation

## Testing

- [x] **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
- [ ] I have left TODOs throughout the codebase, if applicable

---------

Co-authored-by: Dmitry K <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
application Changes related to the Application actor devnet devnet-test-e2e push-image CI related - pushes images to ghcr.io service Anything related to general-purpose RPC service support tokenomics Token Economics - what else do you need?
Projects
Status: ✅ Done
Development

Successfully merging this pull request may close these issues.

4 participants