Skip to content

Commit

Permalink
[Docs] Add operations documentation about proof submission fee (#806)
Browse files Browse the repository at this point in the history
## Summary

Add documentation about payable proof submissions to the
`relayminer_config` doc.

## Issue

Now that proof submission is a payable message. The `Supplier` operators
need to be aware that they have to have enough funds to cover for proof
submission.

- #758 

## Type of change

Select one or more from the following:

- [ ] New feature, functionality or library
- [ ] Consensus breaking; add the `consensus-breaking` label if so. See
#791 for details
- [ ] Bug fix
- [ ] Code health or cleanup
- [x] Documentation
- [ ] Other (specify)

## Testing

- [x] **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

- [x] I have tested my changes using the available tooling
- [ ] 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
  • Loading branch information
red-0ne authored Sep 23, 2024
1 parent 6f3a9e8 commit c1e5167
Showing 1 changed file with 80 additions and 2 deletions.
82 changes: 80 additions & 2 deletions docusaurus/docs/operate/configs/relayminer_config.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ You can find a fully featured example configuration at [relayminer_config_full_e
- [Configuring Signing Keys](#configuring-signing-keys)
- [Example Configuration](#example-configuration)
- [Supported server types](#supported-server-types)
- [Payable Proof Submissions](#payable-proof-submissions)
- [Overview](#overview)
- [Key Requirements for Operators](#key-requirements-for-operators)
- [Recommendations for Supplier Operators](#recommendations-for-supplier-operators)

## Introduction

Expand Down Expand Up @@ -115,8 +119,9 @@ smt_store_path: <string>
_`Required`_ if `suppliers.*.signing_key_names` is not specified.

This configuration option specifies a list of key names from the keyring that the
`RelayMiner` will use to sign transactions. These key names are used to derive the public
key and the corresponding address, which are essential for interacting with POKT.
`RelayMiner` will use to sign transactions (i.e. `SupplierOperator`).
These key names are used to derive the public key and the corresponding address,
which are essential for interacting with POKT.
Each key name listed here must be present in the keyring used to start the
`RelayMiner` instance.

Expand Down Expand Up @@ -451,3 +456,76 @@ flowchart
## Supported server types

The list of supported server types can be found at [pkg/relayer/config/types.go](https://github.com/pokt-network/poktroll/tree/main/pkg/relayer/config/types.go#L8)

## Payable Proof Submissions

### Overview

Submitting `Proofs` requires the payment of a fee, which is defined by the
`proof_submission_fee` governance parameter.

This fee mechanism is designed to prevent spam attacks (e.g., Sybil bloat attacks)
by discouraging invalid or unnecessary `Proofs`.

Since `Proofs` are the most block space-consuming primitive in the Pocket Network,
this fee plays a crucial role in maintaining the integrity of the network.

<!-- TODO_MAINNET(@red-0ne): Add a link to a block in our explorer showcasing this. -->

### Key Requirements for Operators

Due to the probabilistic nature of the `Proof` requirement, `Supplier` operators must
ensure that they maintain sufficient funds to cover the submission fees for all
`Proof`s associated with the `Claim`s they plan to submit.

Failure to maintain adequate funds can result in missed submissions, which can
result in `Supplier` slashing if the `Proof` is required.

### Recommendations for Supplier Operators

- **Sufficient Balance**: Operators should regularly check their account balance
and ensure they have enough funds to cover the submission fees for `Proofs`.

The following command can be used to check the balance of a `Supplier` operator:
```bash
poktrolld query bank balance <supplier_operator_address> upokt --node https://shannon-testnet-grove-seed-rpc.poktroll.com
```
Which output would look like:
```yaml
balance:
amount: "109999000"
denom: upokt
```
- **Automated Monitoring**: It is highly recommended to implement balance monitoring
or alert systems to avoid running out of funds during critical periods.
<!-- TODO_POST_MAINNET(@okdas): Link to example alerts & infrastructure others can use. -->
- **Cost Awareness**: Operators should familiarize themselves with the current
`proof_submission_fee` and plan their funding accordingly, especially if they
anticipate submitting a higher volume of `Proofs`.

The following command can be used to check the current `proof_submission_fee`:
```bash
poktrolld query proof params --node https://shannon-testnet-grove-seed-rpc.poktroll.com
```
Which output would look like:
```yaml
proof_submission_fee:
amount: "1000000"
denom: upokt
```

The list of `Proof` governance parameters can be found at [proto/proof/params.proto](https://github.com/pokt-network/poktroll/blob/main/proto/poktroll/proof/params.proto)

:::warning

If you submit a claim but do not submit its corresponding proof, this could result in SLASHING!

Having insufficient funds could lead to rejected `Proof` submissions . This
can disrupt the operator’s participation in the Pocket Network. To maintain a
smooth operation, avoid being slashed, and earn your rewards, operators must plan
and manage their account balance as part of their operational procedures.

:::

0 comments on commit c1e5167

Please sign in to comment.