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

[Documentation] Load Testing on DevNets and TestNets #637

Merged
merged 12 commits into from
Jul 16, 2024
Merged

Conversation

okdas
Copy link
Member

@okdas okdas commented Jun 28, 2024

Summary

Documents Load Testing on DevNet (and some TestNet?)

Issue

Type of change

Select one or more:

  • New feature, functionality or library
  • Bug fix
  • Code health or cleanup
  • Documentation
  • Other (specify)

Testing

Documentation changes (only if making doc changes)

  • make docusaurus_start; only needed if you make doc changes

Local Testing (only if making code changes)

  • Unit Tests: make go_develop_and_test
  • LocalNet E2E Tests: make test_e2e
  • See quickstart guide for instructions

PR Testing (only if making code changes)

  • DevNet E2E Tests: Add the devnet-test-e2e label to the PR.
    • THIS IS VERY EXPENSIVE, so only do it after all the reviews are complete.
    • Optionally run make trigger_ci if you want to re-trigger tests without any code changes
    • If tests fail, try re-running failed tests only using the GitHub UI as shown here

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

Summary by CodeRabbit

  • Documentation

    • Updated "DevNet" documentation to "DevNets" with new sections on interaction, types, manual provisioning, and testing.
    • Reorganized load testing documentation to clarify details and shifted focus from k6 to Gherkin.
    • Added comprehensive guides for load testing on DevNets and TestNets.
    • Adjusted sidebar position and table data for load testing plan documentation.
  • Chores

    • Updated .gitignore to ignore temporary job.yaml files created by e2e scripts.
  • Refactor

    • Updated Makefile to support custom manifest files for stress testing relays and renamed a target for clarity.
  • Configuration

    • Updated loadtest_manifest_example.yaml and loadtest_manifest_localnet.yaml with new URLs, addresses, and comments for better clarity and alignment with configurations.

@okdas okdas added the documentation Improvements or additions to documentation label Jun 28, 2024
@okdas okdas self-assigned this Jun 28, 2024
@okdas okdas added this to the Shannon Beta TestNet Launch milestone Jun 28, 2024
@okdas okdas changed the title [Documentation] Load Testing on DevNets [Documentation] Load Testing on DevNets and TestNets Jun 28, 2024
@okdas okdas requested a review from red-0ne June 28, 2024 01:29
@okdas okdas marked this pull request as ready for review June 28, 2024 01:29
@okdas
Copy link
Member Author

okdas commented Jun 28, 2024

Hey @red-0ne - here are some updated load test documentation pages. Would you mind taking a look? Thank you!

@okdas
Copy link
Member Author

okdas commented Jun 28, 2024

@red-0ne actually had a chat with @bryanchriswhite - he'll take a look at this PR. You've got so many other PRs to review at this point! :)

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.

My apologies for the delay on this review. 🙇‍♂️

This is 🔥🔥🔥 - thanks for pulling all of this together! 🙌 🚀

docusaurus/docs/operate/infrastructure/devnet.md Outdated Show resolved Hide resolved
from the keybase - the user just need to change the `--node=` argument to point to the DevNet RPC endpoint.
:::

The DevNet RPC endpoint is exposed on `https://devnet-**NETWORK_NAME**-validator-rpc.poktroll.com`.
Copy link
Contributor

Choose a reason for hiding this comment

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

Is there a list or an example of NETWORK_NAMEs that we can reference?

Copy link
Member Author

Choose a reason for hiding this comment

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

Would an example a few lines below count? 😅

docusaurus/docs/operate/infrastructure/devnet.md Outdated Show resolved Hide resolved
docusaurus/docs/operate/infrastructure/devnet.md Outdated Show resolved Hide resolved
docusaurus/docs/operate/infrastructure/devnet.md Outdated Show resolved Hide resolved
docusaurus/docs/operate/testing/load_testing_devnet.md Outdated Show resolved Hide resolved
docusaurus/docs/operate/testing/load_testing_devnet.md Outdated Show resolved Hide resolved

Please refer to the generic [load testing documentation](./load_testing.md#non-ephemeral-networks-testnets-mainnet-etc) for non-ephemeral networks (TestNets, MainNet, etc.). The steps are very similar to those for DevNets, which are thoroughly documented on the dedicated [Load Testing on DevNets](./load_testing_devnet.md) page.

Key points to consider:
Copy link
Contributor

Choose a reason for hiding this comment

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

👌

Copy link
Contributor

Choose a reason for hiding this comment

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

👌

Copy link

coderabbitai bot commented Jul 8, 2024

Walkthrough

The update enhances documentation and scripts for DevNets, TestNets, and load testing. New sections in DevNet and load testing guides detail manual provisioning, configuration, scaling, and testing. Changes also involve updates to scripts and manifests, emphasizing the shift from k6 to Gherkin for load testing, and refining how custom manifest files are handled in the Makefile.

Changes

Files Change Summaries
.gitignore, Makefile Added job.yaml to .gitignore. Renamed test_load_relays_stress_example to test_load_relays_stress_custom in Makefile, allowing custom manifest specification with LOAD_TEST_CUSTOM_MANIFEST.
.../docs/operate/...devnet.md, ...devnet_testing.md Expanded DevNet guide, adding sections on interaction, types, manual provisioning, scaling actors, and running e2e tests. Introduced a comprehensive load testing guide for DevNets.
.../docs/operate/...load_testing.md, ...testnet.md Reorganized load testing documentation, introducing Gherkin over k6 for test scripting. Provided a guide for load testing on TestNets, detailing necessary considerations and steps.
.../loadtest_manifest_example.yaml, ...localnet.yaml Modified URLs, service IDs, account addresses, and gateway configurations within example load-test manifest files. Added comments to clarify is_ephemeral_chain and ensure alignment in LocalNet.

Sequence Diagram(s)

N/A

Poem

In the realm of DevNets and TestNets,
Where actors and scripts blend like sunsets,
Docs updated, guides so grand,
Gherkin leads, we understand.
Custom manifests now take their stand,
Scaling heights upon command.


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 11

Outside diff range and nitpick comments (1)
docusaurus/docs/operate/infrastructure/devnet.md (1)

67-81: Add a comma after 'for example'.

After the expression 'for example', a comma is usually used.

- It is possible to reuse the LocalNet make targets with DevNet endpoints. For example
+ It is possible to reuse the LocalNet make targets with DevNet endpoints. For example,
Tools
LanguageTool

[typographical] ~76-~76: After the expression ‘for example’ a comma is usually used.
Context: ...make targets with DevNet endpoints. For example ```bash POCKET_NODE=https://devnet-iss...

(COMMA_FOR_EXAMPLE)

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 602d806 and e899039.

Files selected for processing (8)
  • .gitignore (1 hunks)
  • docusaurus/docs/operate/infrastructure/devnet.md (3 hunks)
  • docusaurus/docs/operate/testing/load_testing.md (1 hunks)
  • docusaurus/docs/operate/testing/load_testing_devnet.md (1 hunks)
  • docusaurus/docs/operate/testing/load_testing_plan_1.md (4 hunks)
  • docusaurus/docs/operate/testing/load_testing_testnet.md (1 hunks)
  • load-testing/loadtest_manifest_example.yaml (1 hunks)
  • load-testing/loadtest_manifest_localnet.yaml (3 hunks)
Files skipped from review due to trivial changes (2)
  • .gitignore
  • docusaurus/docs/operate/testing/load_testing_testnet.md
Additional context used
LanguageTool
docusaurus/docs/operate/testing/load_testing_devnet.md

[grammar] ~41-~41: The verb ‘ignite’ does not usually follow articles like ‘the’. Check that ‘ignite’ is spelled correctly; using ‘ignite’ as a noun may be non-standard.
Context: ... Instead, the accounts are derived from the ignite config.yaml (as in LocalNet) for conv...

(A_INFINITIVE)


[uncategorized] ~114-~114: Possible missing comma found.
Context: ...x-ingress-controller). The DevNets have LoadBalancers which allow for more metrics about netw...

(AI_HYDRA_LEO_MISSING_COMMA)

docusaurus/docs/operate/testing/load_testing.md

[style] ~17-~17: In American English, abbreviations like “etc.” require a period.
Context: ...-Ephemeral Networks (TestNets, MainNet, etc)](#non-ephemeral-networks-testnets-main...

(ETC_PERIOD)


[style] ~76-~76: In American English, abbreviations like “etc.” require a period.
Context: ...-Ephemeral Networks (TestNets, MainNet, etc) These networks are generated with ran...

(ETC_PERIOD)


[misspelling] ~86-~86: Use “An” instead of ‘A’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ...environment. ::: #### Prerequisites - A account with sufficient tokens for appl...

(EN_A_VS_AN)

docusaurus/docs/operate/infrastructure/devnet.md

[duplication] ~23-~23: Possible typo: you repeated a word
Context: ...on](#configuration) - Interaction with DevNet - DevNet types - [Manually provi...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~64-~64: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...eploy Validators and off-chain actors. Each Helm chart receives a list of configura...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[typographical] ~76-~76: After the expression ‘for example’ a comma is usually used.
Context: ...make targets with DevNet endpoints. For example ```bash POCKET_NODE=https://devnet-iss...

(COMMA_FOR_EXAMPLE)


[uncategorized] ~87-~87: Possible missing article found.
Context: ...igured. E.g. we automatically provision single instance of each actor only. 2. Manuall...

(AI_HYDRA_LEO_MISSING_A)

docusaurus/docs/operate/testing/load_testing_plan_1.md

[typographical] ~152-~152: Two consecutive dots
Context: ... #### 4. RelayMiner (Supplier, SMT, etc..) What: Multiple line charts to cap...

(DOUBLE_PUNCTUATION)

Markdownlint
docusaurus/docs/operate/testing/load_testing_devnet.md

14-14: null
Link fragments should be valid

(MD051, link-fragments)

docusaurus/docs/operate/infrastructure/devnet.md

28-28: null
Link fragments should be valid

(MD051, link-fragments)


29-29: null
Link fragments should be valid

(MD051, link-fragments)


31-31: null
Link fragments should be valid

(MD051, link-fragments)


86-86: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


87-87: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


89-89: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


90-90: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


108-108: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

Additional comments not posted (19)
load-testing/loadtest_manifest_example.yaml (4)

7-7: Verify the updated testnet node URL.

Ensure that https://devnet-sophon-validator-rpc.poktroll.com is the correct URL for the intended environment.


10-10: Verify the updated service ID.

Ensure that "anvil" is the correct service ID for the intended load test.


14-14: Verify the updated funding account address.

Ensure that pokt1eeeksh2tvkh7wzmfrljnhw4wrhs55lcuvmekkw is the correct address and has sufficient funds for the load test.


18-23: Verify the updated gateway addresses and URLs.

Ensure that the following gateway addresses and URLs are correct for the intended environment:

  • pokt15vzxjqklzjtlz7lahe8z2dfe9nm5vxwwmscne4https://devnet-sophon-gateway-1.poktroll.com
  • pokt15w3fhfyc0lttv7r585e2ncpf6t2kl9uh8rsnyzhttps://devnet-sophon-gateway-2.poktroll.com
  • pokt1zhmkkd0rh788mc9prfq0m2h88t9ge0j83gnxyahttps://devnet-sophon-gateway-3.poktroll.com
load-testing/loadtest_manifest_localnet.yaml (3)

3-4: LGTM!

The added comment provides useful information to ensure correct configuration for LocalNet.


16-18: LGTM!

The added comments provide useful information to ensure correct alignment with the localnet_config.yaml file for the number of suppliers.


40-42: LGTM!

The added comments provide useful information to ensure correct alignment with the localnet_config.yaml file for the number of gateways.

docusaurus/docs/operate/testing/load_testing_devnet.md (4)

1-6: LGTM!

The updates to the document's metadata and title align with the document's purpose.


19-24: LGTM!

The added warning provides important information to prevent potential issues with load testing on DevNets created with devnet-test-e2e tags.


39-41: LGTM!

The added comment provides useful information to ensure correct understanding of account generation in DevNets.

Tools
LanguageTool

[grammar] ~41-~41: The verb ‘ignite’ does not usually follow articles like ‘the’. Check that ‘ignite’ is spelled correctly; using ‘ignite’ as a noun may be non-standard.
Context: ... Instead, the accounts are derived from the ignite config.yaml (as in LocalNet) for conv...

(A_INFINITIVE)


93-93: LGTM!

The added TODO comment provides a reminder to address a technical debt issue by replacing the funding account address with a faucet address.

docusaurus/docs/operate/testing/load_testing.md (8)

12-13: LGTM!

The updated section title Load Test Manifests aligns with the content of the section.


17-18: LGTM!

The updated section title Non-Ephemeral Networks (TestNets, MainNet, etc) aligns with the content of the section.

Tools
LanguageTool

[style] ~17-~17: In American English, abbreviations like “etc.” require a period.
Context: ...-Ephemeral Networks (TestNets, MainNet, etc)](#non-ephemeral-networks-testnets-main...

(ETC_PERIOD)


35-35: LGTM!

The updated description of load test manifests improves clarity and comprehensiveness.


39-39: LGTM!

The updated description of test features improves clarity and comprehensiveness.


41-41: LGTM!

The updated description of feature files improves clarity and comprehensiveness.


58-58: LGTM!

The updated description of the natural language syntax used in feature files improves clarity and comprehensiveness.


78-78: LGTM!

The added comment provides useful information to ensure correct understanding of network generation for non-ephemeral networks.


92-92: LGTM!

The added comment provides useful information to ensure correct usage of loadtest_manifest_example.yaml as a template for modifying values.

Comment on lines +105 to +111
New container images are automatically built on each merge to the `main` branch and each push to non-main branches for which there exists a PR with the `push-image` label.
Images named according to the following format:

```
ghcr.io/pokt-network/poktrolld:sha-7042be3
ghcr.io/pokt-network/poktrolld:sha-7042be3922245fb4313ee90e1f28d0f402b700a0
```
Copy link

Choose a reason for hiding this comment

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

Specify language for fenced code blocks.

Fenced code blocks should have a language specified for syntax highlighting.

- ```
+ ```yaml
Tools
Markdownlint

108-108: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

### Run e2e tests on a manually provisioned DevNet

1. The image tag must match the tag of the image from the devnet config YAML file.
2. The name of the devnet in the environment variables must be specified.
Copy link

Choose a reason for hiding this comment

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

Provide an example for the devnet name in environment variables.

Add an example to clarify how the devnet name should be specified in the environment variables.

- The name of the devnet in the environment variables must be specified.
+ The name of the devnet in the environment variables must be specified (e.g., `NETWORK_NAME=sophon`).
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
2. The name of the devnet in the environment variables must be specified.
2. The name of the devnet in the environment variables must be specified (e.g., `NETWORK_NAME=sophon`).

Comment on lines 96 to 101
Create a new YAML file in [devnets-configs](https://github.com/pokt-network/protocol-infra/tree/main/devnets-configs).
Use [this template](https://github.com/pokt-network/protocol-infra/blob/main/devnets-configs/_TEMPLATE_YAML_) as a reference.

### How to delete

Remove the devnet config file.
Copy link

Choose a reason for hiding this comment

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

Clarify instructions for creating and deleting DevNet config files.

The instructions should mention that the new file needs to be merged to the main branch for the changes to take effect.

- Create a new YAML file in [devnets-configs](https://github.com/pokt-network/protocol-infra/tree/main/devnets-configs).
+ Create a new YAML file in [devnets-configs](https://github.com/pokt-network/protocol-infra/tree/main/devnets-configs) and merge it to the main branch.
- Remove the devnet config file.
+ Remove the devnet config file and merge the changes to the main branch.
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Create a new YAML file in [devnets-configs](https://github.com/pokt-network/protocol-infra/tree/main/devnets-configs).
Use [this template](https://github.com/pokt-network/protocol-infra/blob/main/devnets-configs/_TEMPLATE_YAML_) as a reference.
### How to delete
Remove the devnet config file.
Create a new YAML file in [devnets-configs](https://github.com/pokt-network/protocol-infra/tree/main/devnets-configs) and merge it to the main branch.
Use [this template](https://github.com/pokt-network/protocol-infra/blob/main/devnets-configs/_TEMPLATE_YAML_) as a reference.
### How to delete
Remove the devnet config file and merge the changes to the main branch.

Comment on lines 23 to 31
- [Interaction with DevNet](#interaction-with-devnet)
- [DevNet types](#devnet-types)
- [Manually provisioned DevNets](#manually-provisioned-devnets)
- [How to create](#how-to-create)
- [How to delete](#how-to-delete)
- [Configure and update the version of the software](#configure-and-update-the-version-of-the-software)
- [Scale actors up and down](#scale-actors-up-and-down)
- [Run e2e tests on a manually provisioned DevNet](#run-e2e-tests-on-a-manually-provisioned-devnet)
- [Stake actors](#stake-actors)
Copy link

Choose a reason for hiding this comment

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

Fix link fragments in Table of Contents.

The link fragments for the new sections should be valid. Ensure they match the corresponding section headers.

- [Interaction with DevNet](#interaction-with-devnet)
- [DevNet types](#devnet-types)
- [Manually provisioned DevNets](#manually-provisioned-devnets)
  - [How to create](#how-to-create)
  - [How to delete](#how-to-delete)
  - [Configure and update the version of the software](#configure-and-update-the-version-of-the-software)
  - [Scale actors up and down](#scale-actors-up-and-down)
  - [Run e2e tests on a manually provisioned DevNet](#run-e2e-tests-on-a-manually-provisioned-devnet)
  - [Stake actors](#stake-actors)
+ [Interaction with DevNet](#interaction-with-devnet)
+ [DevNet types](#devnet-types)
+ [Manually provisioned DevNets](#manually-provisioned-devnets)
+   - [How to create](#how-to-create)
+   - [How to delete](#how-to-delete)
+   - [Configuring and updating DevNets](#configuring-and-updating-devnets)
+   - [Scaling actors up and down](#scaling-actors-up-and-down)
+   - [Run e2e tests on a manually provisioned DevNet](#run-e2e-tests-on-a-manually-provisioned-devnet)
+   - [Staking actors](#staking-actors)
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- [Interaction with DevNet](#interaction-with-devnet)
- [DevNet types](#devnet-types)
- [Manually provisioned DevNets](#manually-provisioned-devnets)
- [How to create](#how-to-create)
- [How to delete](#how-to-delete)
- [Configure and update the version of the software](#configure-and-update-the-version-of-the-software)
- [Scale actors up and down](#scale-actors-up-and-down)
- [Run e2e tests on a manually provisioned DevNet](#run-e2e-tests-on-a-manually-provisioned-devnet)
- [Stake actors](#stake-actors)
- [Interaction with DevNet](#interaction-with-devnet)
- [DevNet types](#devnet-types)
- [Manually provisioned DevNets](#manually-provisioned-devnets)
- [How to create](#how-to-create)
- [How to delete](#how-to-delete)
- [Configure and update the version of the software](#configure-and-update-the-version-of-the-software)
- [Scale actors up and down](#scale-actors-up-and-down)
- [Run e2e tests on a manually provisioned DevNet](#run-e2e-tests-on-a-manually-provisioned-devnet)
- [Stake actors](#stake-actors)
+ [Interaction with DevNet](#interaction-with-devnet)
+ [DevNet types](#devnet-types)
+ [Manually provisioned DevNets](#manually-provisioned-devnets)
+ - [How to create](#how-to-create)
+ - [How to delete](#how-to-delete)
+ - [Configuring and updating DevNets](#configuring-and-updating-devnets)
+ - [Scaling actors up and down](#scaling-actors-up-and-down)
+ - [Run e2e tests on a manually provisioned DevNet](#run-e2e-tests-on-a-manually-provisioned-devnet)
+ - [Staking actors](#staking-actors)
Tools
LanguageTool

[duplication] ~23-~23: Possible typo: you repeated a word
Context: ...on](#configuration) - Interaction with DevNet - DevNet types - [Manually provi...

(ENGLISH_WORD_REPEAT_RULE)

Markdownlint

28-28: null
Link fragments should be valid

(MD051, link-fragments)


29-29: null
Link fragments should be valid

(MD051, link-fragments)


31-31: null
Link fragments should be valid

(MD051, link-fragments)

Comment on lines +165 to +168
| SMT | ❓ | ❓ | | ❓ | ❓ |
| Caches & State | ❓ | | | | |
| Request Processing | | | | | ❓ |
| Response Generation | | ❓ | ❓ | | ❓ |
Copy link

Choose a reason for hiding this comment

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

Clarify the use of question marks for missing values.

Replace the question marks with placeholders or explanations for missing values.

- | SMT                 | ❓   | ❓   |         | ❓    | ❓    |
+ | SMT                 | TBD  | TBD  |         | TBD  | TBD  |
- | Caches & State      | ❓   |     |         |      |      |
+ | Caches & State      | TBD  |     |         |      |      |
- | Request Processing  |     |     |         |      | ❓    |
+ | Request Processing  |     |     |         |      | TBD  |
- | Response Generation |     | ❓   | ❓       |      | ❓    |
+ | Response Generation |     | TBD  | TBD     |      | TBD  |
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| SMT | || | | |
| Caches & State | | | | | |
| Request Processing | | | | | |
| Response Generation | | | | | |
| SMT | TBD | TBD | | TBD | TBD |
| Caches & State | TBD | | | | |
| Request Processing | | | | | TBD |
| Response Generation | | TBD | TBD | | TBD |

Comment on lines +129 to +132
| Proof Validation | ❓ | ❓ | | | ❓ |
| Block Generation | ❓ | | | | |
| Block Publishing | | | ❓ | | |
| Data Availability State | | | | ❓ | |
Copy link

Choose a reason for hiding this comment

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

Clarify the use of question marks for missing values.

Replace the question marks with placeholders or explanations for missing values.

- | Proof Validation        | ❓   | ❓   |         |      | ❓    |
+ | Proof Validation        | TBD  | TBD  |         |      | TBD  |
- | Block Generation        | ❓   |     |         |      |      |
+ | Block Generation        | TBD  |     |         |      |      |
- | Block Publishing        |     |     | ❓       |      |      |
+ | Block Publishing        |     |     | TBD     |      |      |
- | Data Availability State |     |     |         | ❓    |      |
+ | Data Availability State |     |     |         | TBD  |      |
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| Proof Validation | || | | |
| Block Generation | | | | | |
| Block Publishing | | | | | |
| Data Availability State | | | | | |
| Proof Validation | TBD | TBD | | | TBD |
| Block Generation | TBD | | | | |
| Block Publishing | | | TBD | | |
| Data Availability State | | | | TBD | |

Comment on lines +147 to +150
| Relay Proxies | | | ❓ | | ❓ |
| Caches & State | ❓ | ❓ | | | |
| Request Processing | | | | | ❓ |
| ??? | | | | ❓ | |
Copy link

Choose a reason for hiding this comment

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

Clarify the use of question marks for missing values.

Replace the question marks with placeholders or explanations for missing values.

- | Relay Proxies      |     |     | ❓       |      | ❓    |
+ | Relay Proxies      |     |     | TBD     |      | TBD  |
- | Caches & State     | ❓   | ❓   |         |      |      |
+ | Caches & State     | TBD  | TBD  |         |      |      |
- | Request Processing |     |     |         |      | ❓    |
+ | Request Processing |     |     |         |      | TBD  |
- | ???                |     |     |         | ❓    |      |
+ | ???                |     |     |         | TBD  |      |
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| Relay Proxies | | | | | |
| Caches & State | | | | | |
| Request Processing | | | | | |
| ??? | | | | | |
| Relay Proxies | | | TBD | | TBD |
| Caches & State | TBD | TBD | | | |
| Request Processing | | | | | TBD |
| ??? | | | | TBD | |

@okdas
Copy link
Member Author

okdas commented Jul 9, 2024

Thank you, @bryanchriswhite. As always — amazing feedback! I addressed most of your points, and have a couple to take care of left. I'll request a review tomorrow once they're taken care of.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 9

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between e899039 and fb520a5.

Files selected for processing (1)
  • docusaurus/docs/operate/infrastructure/devnet.md (3 hunks)
Additional context used
LanguageTool
docusaurus/docs/operate/infrastructure/devnet.md

[duplication] ~23-~23: Possible typo: you repeated a word
Context: ...on](#configuration) - Interaction with DevNet - DevNet types - [Manually provi...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~64-~64: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...eploy Validators and off-chain actors. Each Helm chart receives a list of configura...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[typographical] ~76-~76: After the expression ‘for example’ a comma is usually used.
Context: ...make targets with DevNet endpoints. For example ```bash POCKET_NODE=https://devnet-iss...

(COMMA_FOR_EXAMPLE)


[uncategorized] ~87-~87: Possible missing article found.
Context: ...igured. E.g. we automatically provision single instance of each actor only. 2. Manuall...

(AI_HYDRA_LEO_MISSING_A)

Markdownlint
docusaurus/docs/operate/infrastructure/devnet.md

86-86: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


87-87: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


89-89: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


90-90: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


162-162: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


113-113: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

Comment on lines +113 to +116
```
ghcr.io/pokt-network/poktrolld:sha-7042be3
ghcr.io/pokt-network/poktrolld:sha-7042be3922245fb4313ee90e1f28d0f402b700a0
```
Copy link

Choose a reason for hiding this comment

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

Specify language for fenced code blocks.

Fenced code blocks should have a language specified for syntax highlighting.

- ```
+ ```yaml
Tools
Markdownlint

113-113: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

Comment on lines +67 to +74
## Interaction with DevNet

:::note
Devnets are provisioned with the same mnemonc phrases as LocalNet, so it is possible to reuse the same keys
from the keybase - the user just needs to change the `--node=` flag to point to the DevNet RPC endpoint when using the `poktrolld` CLI.
:::

The DevNet RPC endpoint is exposed on `https://devnet-**NETWORK_NAME**-validator-rpc.poktroll.com`.
Copy link

Choose a reason for hiding this comment

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

Provide an example for the devnet name in environment variables.

Add an example to clarify how the devnet name should be specified in the environment variables.

- The DevNet RPC endpoint is exposed on `https://devnet-**NETWORK_NAME**-validator-rpc.poktroll.com`.
+ The DevNet RPC endpoint is exposed on `https://devnet-**NETWORK_NAME**-validator-rpc.poktroll.com` (e.g., `NETWORK_NAME=sophon`).
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## Interaction with DevNet
:::note
Devnets are provisioned with the same mnemonc phrases as LocalNet, so it is possible to reuse the same keys
from the keybase - the user just needs to change the `--node=` flag to point to the DevNet RPC endpoint when using the `poktrolld` CLI.
:::
The DevNet RPC endpoint is exposed on `https://devnet-**NETWORK_NAME**-validator-rpc.poktroll.com`.
The DevNet RPC endpoint is exposed on `https://devnet-**NETWORK_NAME**-validator-rpc.poktroll.com` (e.g., `NETWORK_NAME=sophon`).

Comment on lines 179 to 180
Since the genesis actor keys are the same as LocalNet, we can use the same commands (and keyring) to stake actors on DevNet. Additionally, DevNets
match the hostnames with LocalNet, which makes it possible for the same stake configs to work on different networks.
Copy link

Choose a reason for hiding this comment

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

Clarify that DevNets match hostnames with LocalNet.

Rephrase the sentence to make it clear that DevNets match the hostnames with LocalNet.

- Additionally, DevNets match the hostnames with LocalNet, which makes it possible for the same stake configs to work on different networks.
+ Additionally, DevNets match the hostnames with LocalNet, making it possible for the same stake configs to work on different networks.
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Since the genesis actor keys are the same as LocalNet, we can use the same commands (and keyring) to stake actors on DevNet. Additionally, DevNets
match the hostnames with LocalNet, which makes it possible for the same stake configs to work on different networks.
Since the genesis actor keys are the same as LocalNet, we can use the same commands (and keyring) to stake actors on DevNet. Additionally, DevNets match the hostnames with LocalNet, making it possible for the same stake configs to work on different networks.

Comment on lines +168 to +171
:::info
- The `IMAGE_TAG` must match the tag of the image from the devnet config YAML file.
- The name of the devnet in the environment variables must be specified.
- The Kubernetes context must be pointed to the protocol cluster. This command can be used to change context:
Copy link

Choose a reason for hiding this comment

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

Provide an example for the devnet name in environment variables.

Add an example to clarify how the devnet name should be specified in the environment variables.

- The name of the devnet in the environment variables must be specified.
+ The name of the devnet in the environment variables must be specified (e.g., `NETWORK_NAME=sophon`).
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
:::info
- The `IMAGE_TAG` must match the tag of the image from the devnet config YAML file.
- The name of the devnet in the environment variables must be specified.
- The Kubernetes context must be pointed to the protocol cluster. This command can be used to change context:
:::info
- The `IMAGE_TAG` must match the tag of the image from the devnet config YAML file.
- The name of the devnet in the environment variables must be specified (e.g., `NETWORK_NAME=sophon`).
- The Kubernetes context must be pointed to the protocol cluster. This command can be used to change context:

Comment on lines +23 to +31
- [Interaction with DevNet](#interaction-with-devnet)
- [DevNet types](#devnet-types)
- [Manually provisioned DevNets](#manually-provisioned-devnets)
- [How to create](#how-to-create)
- [How to delete](#how-to-delete)
- [Configuring and updating DevNets](#configuring-and-updating-devnets)
- [Scaling actors up and down](#scaling-actors-up-and-down)
- [Run e2e tests on a manually provisioned DevNet](#run-e2e-tests-on-a-manually-provisioned-devnet)
- [Staking actors](#staking-actors)
Copy link

Choose a reason for hiding this comment

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

Fix link fragments in Table of Contents.

Ensure the link fragments match the corresponding section headers.

- [Interaction with DevNet](#interaction-with-devnet)
- [DevNet types](#devnet-types)
- [Manually provisioned DevNets](#manually-provisioned-devnets)
  - [How to create](#how-to-create)
  - [How to delete](#how-to-delete)
  - [Configure and update the version of the software](#configure-and-update-the-version-of-the-software)
  - [Scale actors up and down](#scale-actors-up-and-down)
  - [Run e2e tests on a manually provisioned DevNet](#run-e2e-tests-on-a-manually-provisioned-devnet)
  - [Stake actors](#stake-actors)
+ [Interaction with DevNet](#interaction-with-devnet)
+ [DevNet types](#devnet-types)
+ [Manually provisioned DevNets](#manually-provisioned-devnets)
+   - [How to create](#how-to-create)
+   - [How to delete](#how-to-delete)
+   - [Configuring and updating DevNets](#configuring-and-updating-devnets)
+   - [Scaling actors up and down](#scaling-actors-up-and-down)
+   - [Run e2e tests on a manually provisioned DevNet](#run-e2e-tests-on-a-manually-provisioned-devnet)
+   - [Staking actors](#staking-actors)

Committable suggestion was skipped due to low confidence.

Tools
LanguageTool

[duplication] ~23-~23: Possible typo: you repeated a word
Context: ...on](#configuration) - Interaction with DevNet - DevNet types - [Manually provi...

(ENGLISH_WORD_REPEAT_RULE)

Comment on lines +130 to +134
You can modify the number of each actor by changing the devnet config file:

:::info
We use the same ignite `config.yaml` to provision genesis in devnet as is used in localnet. Because localnet supports a max of 3 of each actor type, any devnet deployment with more actors would also require additional corresponding genesis state to be included in `config.yaml`, or on-demand account funding and staking. General rule of thumb: don't go over `3`.
:::
Copy link

Choose a reason for hiding this comment

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

Clarify the rule of thumb for actor count.

Rephrase the note to make it clear that the rule of thumb is to not go over 3 actors.

- General rule of thumb: don't go over `3`.
+ General rule of thumb: do not go over three actors.
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
You can modify the number of each actor by changing the devnet config file:
:::info
We use the same ignite `config.yaml` to provision genesis in devnet as is used in localnet. Because localnet supports a max of 3 of each actor type, any devnet deployment with more actors would also require additional corresponding genesis state to be included in `config.yaml`, or on-demand account funding and staking. General rule of thumb: don't go over `3`.
:::
You can modify the number of each actor by changing the devnet config file:
:::info
We use the same ignite `config.yaml` to provision genesis in devnet as is used in localnet. Because localnet supports a max of 3 of each actor type, any devnet deployment with more actors would also require additional corresponding genesis state to be included in `config.yaml`, or on-demand account funding and staking. General rule of thumb: do not go over three actors.
:::

Comment on lines 120 to 126
```yaml
image:
tag: sha-7042be3
```

As all parameters in this config are passed to the [downstream helm chart](https://github.com/pokt-network/protocol-infra/tree/main/charts/full-network) via an [ArgoCD Application](https://github.com/pokt-network/protocol-infra/blob/main/clusters/protocol-us-central1/devnets-persistent.yaml).
Here is a [list of all options](https://github.com/pokt-network/protocol-infra/blob/main/charts/full-network/values.yaml) which can be modified, in addition to the image tag.
Copy link

Choose a reason for hiding this comment

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

Clarify that all parameters are passed to the downstream Helm chart.

Rephrase the sentence to make it clear that all parameters in the config are passed to the downstream Helm chart.

- As all parameters in this config are passed to the [downstream helm chart](https://github.com/pokt-network/protocol-infra/tree/main/charts/full-network) via an [ArgoCD Application](https://github.com/pokt-network/protocol-infra/blob/main/clusters/protocol-us-central1/devnets-persistent.yaml).
+ All parameters in this config are passed to the [downstream helm chart](https://github.com/pokt-network/protocol-infra/tree/main/charts/full-network) via an [ArgoCD Application](https://github.com/pokt-network/protocol-infra/blob/main/clusters/protocol-us-central1/devnets-persistent.yaml).
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```yaml
image:
tag: sha-7042be3
```
As all parameters in this config are passed to the [downstream helm chart](https://github.com/pokt-network/protocol-infra/tree/main/charts/full-network) via an [ArgoCD Application](https://github.com/pokt-network/protocol-infra/blob/main/clusters/protocol-us-central1/devnets-persistent.yaml).
Here is a [list of all options](https://github.com/pokt-network/protocol-infra/blob/main/charts/full-network/values.yaml) which can be modified, in addition to the image tag.
```yaml
image:
tag: sha-7042be3
```
All parameters in this config are passed to the [downstream helm chart](https://github.com/pokt-network/protocol-infra/tree/main/charts/full-network) via an [ArgoCD Application](https://github.com/pokt-network/protocol-infra/blob/main/clusters/protocol-us-central1/devnets-persistent.yaml).
Here is a [list of all options](https://github.com/pokt-network/protocol-infra/blob/main/charts/full-network/values.yaml) which can be modified, in addition to the image tag.

Comment on lines +94 to +106
### How to create

Commit a new YAML file in the [devnets-configs](https://github.com/pokt-network/protocol-infra/tree/main/devnets-configs)
directory on the `main` branch. Use [this template](https://github.com/pokt-network/protocol-infra/blob/main/devnets-configs/_TEMPLATE_YAML_)
as a reference. If you are not a member of the protocol team, open a pull request (PR) to add the new YAML file to the
`main` branch. Protocol team members can bypass the `main` branch protection to commit directly without going through
the PR flow.

### How to delete

Remove the devnet config file by committing the deletion to the `main` branch. If you are not a member of the protocol
team, open a pull request (PR) to delete the YAML file from the `main` branch. Protocol team members can bypass the
`main` branch protection to commit the deletion directly without going through the PR flow.
Copy link

Choose a reason for hiding this comment

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

Clarify instructions for creating and deleting DevNet config files.

The instructions should mention that the new file needs to be merged to the main branch for the changes to take effect.

- Commit a new YAML file in the [devnets-configs](https://github.com/pokt-network/protocol-infra/tree/main/devnets-configs)
- directory on the `main` branch. Use [this template](https://github.com/pokt-network/protocol-infra/blob/main/devnets-configs/_TEMPLATE_YAML_)
- as a reference. If you are not a member of the protocol team, open a pull request (PR) to add the new YAML file to the
- `main` branch. Protocol team members can bypass the `main` branch protection to commit directly without going through
- the PR flow.
+ Create a new YAML file in [devnets-configs](https://github.com/pokt-network/protocol-infra/tree/main/devnets-configs) and merge it to the main branch. Use [this template](https://github.com/pokt-network/protocol-infra/blob/main/devnets-configs/_TEMPLATE_YAML_) as a reference. If you are not a member of the protocol team, open a pull request (PR) to add the new YAML file to the main branch. Protocol team members can bypass the main branch protection to commit directly without going through the PR flow.
- Remove the devnet config file by committing the deletion to the `main` branch. If you are not a member of the protocol
- team, open a pull request (PR) to delete the YAML file from the `main` branch. Protocol team members can bypass the
- `main` branch protection to commit the deletion directly without going through the PR flow.
+ Remove the devnet config file and merge the changes to the main branch. If you are not a member of the protocol team, open a pull request (PR) to delete the YAML file from the main branch. Protocol team members can bypass the main branch protection to commit the deletion directly without going through the PR flow.
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### How to create
Commit a new YAML file in the [devnets-configs](https://github.com/pokt-network/protocol-infra/tree/main/devnets-configs)
directory on the `main` branch. Use [this template](https://github.com/pokt-network/protocol-infra/blob/main/devnets-configs/_TEMPLATE_YAML_)
as a reference. If you are not a member of the protocol team, open a pull request (PR) to add the new YAML file to the
`main` branch. Protocol team members can bypass the `main` branch protection to commit directly without going through
the PR flow.
### How to delete
Remove the devnet config file by committing the deletion to the `main` branch. If you are not a member of the protocol
team, open a pull request (PR) to delete the YAML file from the `main` branch. Protocol team members can bypass the
`main` branch protection to commit the deletion directly without going through the PR flow.
### How to create
Create a new YAML file in [devnets-configs](https://github.com/pokt-network/protocol-infra/tree/main/devnets-configs) and merge it to the main branch. Use [this template](https://github.com/pokt-network/protocol-infra/blob/main/devnets-configs/_TEMPLATE_YAML_) as a reference. If you are not a member of the protocol team, open a pull request (PR) to add the new YAML file to the main branch. Protocol team members can bypass the main branch protection to commit directly without going through the PR flow.
### How to delete
Remove the devnet config file and merge the changes to the main branch. If you are not a member of the protocol team, open a pull request (PR) to delete the YAML file from the main branch. Protocol team members can bypass the main branch protection to commit the deletion directly without going through the PR flow.

Comment on lines +84 to +90
We have two types of DevNets:
1. Automatically provisioned by `devnet-test-e2e` GitHub label.
- Their main purpose is to automatically run e2e tests for each PR this label has been assigned to.
- They are not easily modified and configured. E.g. we automatically provision single instance of each actor only.
2. Manually provisioned by creating a file in [protocol-infra repo under `devnet-configs` directory](https://github.com/pokt-network/protocol-infra/tree/main/devnets-configs).
- Their main purpose is for testing new features or configurations that require more complex setups than the first type can provide.
- They are easily modified and configured, allowing you to add multiple instances of each actor.
Copy link

Choose a reason for hiding this comment

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

Fix unordered list indentation.

The unordered list items should be properly indented.

-  - Their main purpose is to automatically run e2e tests for each PR this label has been assigned to.
-  - They are not easily modified and configured. E.g. we automatically provision single instance of each actor only.
-  - Their main purpose is for testing new features or configurations that require more complex setups than the first type can provide.
-  - They are easily modified and configured, allowing you to add multiple instances of each actor.
+  - Their main purpose is to automatically run e2e tests for each PR this label has been assigned to.
+  - They are not easily modified and configured. E.g. we automatically provision single instance of each actor only.
+  - Their main purpose is for testing new features or configurations that require more complex setups than the first type can provide.
+  - They are easily modified and configured, allowing you to add multiple instances of each actor.
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
We have two types of DevNets:
1. Automatically provisioned by `devnet-test-e2e` GitHub label.
- Their main purpose is to automatically run e2e tests for each PR this label has been assigned to.
- They are not easily modified and configured. E.g. we automatically provision single instance of each actor only.
2. Manually provisioned by creating a file in [protocol-infra repo under `devnet-configs` directory](https://github.com/pokt-network/protocol-infra/tree/main/devnets-configs).
- Their main purpose is for testing new features or configurations that require more complex setups than the first type can provide.
- They are easily modified and configured, allowing you to add multiple instances of each actor.
We have two types of DevNets:
1. Automatically provisioned by `devnet-test-e2e` GitHub label.
- Their main purpose is to automatically run e2e tests for each PR this label has been assigned to.
- They are not easily modified and configured. E.g. we automatically provision single instance of each actor only.
2. Manually provisioned by creating a file in [protocol-infra repo under `devnet-configs` directory](https://github.com/pokt-network/protocol-infra/tree/main/devnets-configs).
- Their main purpose is for testing new features or configurations that require more complex setups than the first type can provide.
- They are easily modified and configured, allowing you to add multiple instances of each actor.
Tools
LanguageTool

[uncategorized] ~87-~87: Possible missing article found.
Context: ...igured. E.g. we automatically provision single instance of each actor only. 2. Manuall...

(AI_HYDRA_LEO_MISSING_A)

Markdownlint

86-86: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


87-87: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


89-89: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


90-90: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between fb520a5 and 91dd241.

Files selected for processing (3)
  • Makefile (2 hunks)
  • docusaurus/docs/operate/infrastructure/devnet.md (3 hunks)
  • docusaurus/docs/operate/testing/load_testing.md (1 hunks)
Additional context used
LanguageTool
docusaurus/docs/operate/testing/load_testing.md

[style] ~17-~17: In American English, abbreviations like “etc.” require a period.
Context: ...-Ephemeral Networks (TestNets, MainNet, etc)](#non-ephemeral-networks-testnets-main...

(ETC_PERIOD)


[style] ~79-~79: In American English, abbreviations like “etc.” require a period.
Context: ...-Ephemeral Networks (TestNets, MainNet, etc) These networks are generated with ran...

(ETC_PERIOD)


[misspelling] ~89-~89: Use “An” instead of ‘A’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ...environment. ::: #### Prerequisites - A account with sufficient tokens for appl...

(EN_A_VS_AN)

docusaurus/docs/operate/infrastructure/devnet.md

[duplication] ~23-~23: Possible typo: you repeated a word
Context: ...on](#configuration) - Interaction with DevNet - DevNet types - [Manually provi...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~64-~64: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...eploy Validators and off-chain actors. Each Helm chart receives a list of configura...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[typographical] ~76-~76: After the expression ‘for example’ a comma is usually used.
Context: ...make targets with DevNet endpoints. For example ```bash POCKET_NODE=https://devnet-iss...

(COMMA_FOR_EXAMPLE)


[uncategorized] ~87-~87: Possible missing article found.
Context: ...igured. E.g. we automatically provision single instance of each actor only. 2. Manuall...

(AI_HYDRA_LEO_MISSING_A)

Markdownlint
docusaurus/docs/operate/infrastructure/devnet.md

86-86: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


87-87: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


89-89: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


90-90: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


162-162: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


113-113: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

Additional comments not posted (16)
docusaurus/docs/operate/testing/load_testing.md (5)

35-35: Detailed Explanation Added

The detailed explanation of Load Test Manifests is clear and comprehensive.


39-56: Clear Explanation and Example Added

The detailed explanation and example of Test Features are clear and comprehensive.


62-111: Clear Instructions for Executing Tests

The detailed instructions for executing tests on LocalNet and Non-Ephemeral Networks are clear and comprehensive.

Tools
LanguageTool

[style] ~79-~79: In American English, abbreviations like “etc.” require a period.
Context: ...-Ephemeral Networks (TestNets, MainNet, etc) These networks are generated with ran...

(ETC_PERIOD)


[misspelling] ~89-~89: Use “An” instead of ‘A’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ...environment. ::: #### Prerequisites - A account with sufficient tokens for appl...

(EN_A_VS_AN)


113-115: Clear Explanation of Result Analysis

The detailed explanation of Result Analysis is clear and comprehensive.


117-119: Clear Explanation of Developing Custom Tests

The detailed explanation of Developing Custom Tests is clear and comprehensive.

docusaurus/docs/operate/infrastructure/devnet.md (9)

3-3: Title Change Approved

The title change from "DevNet" to "DevNets" is appropriate and aligns with the content.


23-31: Updated Table of Contents Approved

The updates to the Table of Contents are appropriate and align with the content.

Tools
LanguageTool

[duplication] ~23-~23: Possible typo: you repeated a word
Context: ...on](#configuration) - Interaction with DevNet - DevNet types - [Manually provi...

(ENGLISH_WORD_REPEAT_RULE)


67-75: Clear Instructions for Interaction with DevNet

The detailed instructions for interacting with DevNet are clear and comprehensive.


82-90: Clear Explanation of DevNet Types

The detailed explanation of DevNet types is clear and comprehensive.

Tools
LanguageTool

[uncategorized] ~87-~87: Possible missing article found.
Context: ...igured. E.g. we automatically provision single instance of each actor only. 2. Manuall...

(AI_HYDRA_LEO_MISSING_A)

Markdownlint

86-86: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


87-87: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


89-89: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


90-90: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


92-106: Clear Instructions for Manually Provisioned DevNets

The detailed instructions for manually provisioning DevNets are clear and comprehensive.


108-127: Clear Instructions for Configuring and Updating DevNets

The detailed instructions for configuring and updating DevNets are clear and comprehensive.

Tools
Markdownlint

113-113: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)


128-145: Clear Instructions for Scaling Actors Up and Down

The detailed instructions for scaling actors up and down are clear and comprehensive.


146-175: Clear Instructions for Running e2e Tests on a Manually Provisioned DevNet

The detailed instructions for running e2e tests on a manually provisioned DevNet are clear and comprehensive.

Tools
Markdownlint

162-162: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


177-189: Clear Instructions for Staking Actors

The detailed instructions for staking actors are clear and comprehensive.

Makefile (2)

19-19: Introduction of LOAD_TEST_CUSTOM_MANIFEST variable is approved.

This variable allows specifying a custom manifest file for stress tests.


407-411: Renaming and updating test_load_relays_stress_example target is approved.

The target is renamed to test_load_relays_stress_custom, and the command is updated to use the LOAD_TEST_CUSTOM_MANIFEST variable.

@okdas
Copy link
Member Author

okdas commented Jul 10, 2024

@bryanchriswhite all feedback has been addressed now. Thank you! :)

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.

🚀 🚀 🚀 🚀

@okdas okdas merged commit a8ceb4f into main Jul 16, 2024
12 checks passed
bryanchriswhite added a commit that referenced this pull request Jul 17, 2024
…get-hash

* pokt/main:
  [Supplier] Deny supplier staking with unknown services (#693)
  [Documentation] Load Testing on DevNets and TestNets (#637)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
Status: ✅ Done
Development

Successfully merging this pull request may close these issues.

None yet

2 participants