Skip to content

[Tooling][Utility] CLI - Querying governance params #619

@Olshansk

Description

@Olshansk

Objective

Improve the ability to access on-chain params while improving how they are maintained.

Origin Document

V0 Parametesr

The utility specification mentions a non-exhaustive list of on-chain parameters that will be used in V1.

The V0 RPC spec can be found here, allowing to query the v0 params like so:

curl --location -X 'POST' -H 'Content-Type: application/json' 'https://<user>:<pass>@<hostname>:<port>/v1/query/allParams' | jq

{
  "app_params": [
    {
      "param_key": "application/StabilityAdjustment",
      "param_value": "0"
    },
    {
      "param_key": "application/ParticipationRateOn",
      "param_value": "false"
    },
    {
      "param_key": "application/ApplicationStakeMinimum",
      "param_value": "1000000"
    },
    {
      "param_key": "application/BaseRelaysPerPOKT",
      "param_value": "200000"
    },
    {
      "param_key": "application/AppUnstakingTime",
      "param_value": "1814000000000000"
    },
    {
      "param_key": "application/MaxApplications",
      "param_value": "2295"
    },
    {
      "param_key": "application/MaximumChains",
      "param_value": "15"
    }
  ],
  "auth_params": [
    {
      "param_key": "auth/FeeMultipliers",
      "param_value": "{\"fee_multiplier\":null,\"default\":\"1\"}"
    },
    {
      "param_key": "auth/MaxMemoCharacters",
      "param_value": "75"
    },
    {
      "param_key": "auth/TxSigLimit",
      "param_value": "8"
    }
  ],
  "gov_params": [
    {
    ...

V1 Paramters

The code to list and maintain governance parameters is spread throughout the codebase. A good starting point would be to look at all *gov* files:

Screenshot 2023-03-24 at 12 22 54 PM

For example, gov_test.go or gov.go

Goals

  • Enable querying localnet params via the CLI
  • Reduce the code footprint of governance parameters. This has two underlying goles:
    • Easier to read & maintain code
    • Less context that will allow using this library with ChatGPT (more code -> more tokens -> less context)

Deliverable

  • A PR that reduces the code footprint of everything related to maintaining governance paramsSelect and document build tags used to include/exclude actor-specific business logic
  • Add a /v1/query/nodeParams to the v1 RPC spec.
  • A make target that helps querying these params on localnet

Non-goals / Non-deliverables

  • Adding/removing any existing parameters in the codebase

General issue deliverables

  • Update the appropriate CHANGELOG(s)
  • Update any relevant local/global README(s)
  • Update relevant source code tree explanations
  • Add or update any relevant or supporting mermaid diagrams

Testing Methodology

  • Required: A make target that queries the on-chain parameters of localnet
  • All tests: make test_all
  • LocalNet: verify a LocalNet is still functioning correctly by following the instructions at docs/development/README.md

Creator: @Olshansk
Co-Owners: @jessicadaugherty

Metadata

Metadata

Assignees

Labels

clientwork needed to interface with the node (rpc, cli, etc..)communityOpen to or owned by a non-core team memberutilityUtility specific changes

Type

No type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions