Module Authorizations
Pocket Network utilizes an onchain governance mechanism that enables the community to vote on proposals.
Once a proposal passes, or a decision by PNF is made on behalf of the DAO, the parameters updates are applied.
Table of Contents
Access Control
MainNet Authorizations
The list of authorizations enabled on MainNet genesis can be found at pokt-network/pocket-network-genesis/tree/master/shannon/mainnet.
x/gov
Module Account
The x/gov
module account is deterministically tied to address pokt10d07y265gmmuvt4z0w9aw880jnsr700j8yv32t
. This will be true for any "pocket" network; e.g., LocalNet, TestNet, MainNet, etc.
The x/gov
module account is the default configured "authority" for all cosmos-sdk modules. Each module references its own configured "authority" when executing messages which require authorization (e.g. MsgUpdateParams messages).
No one has access to this address, but the grants it has provided to other accounts can be queried like so:
pocketd query authz grants-by-granter pokt10d07y265gmmuvt4z0w9aw880jnsr700j8yv32t --node https://shannon-grove-rpc.mainnet.poktroll.com
PNF
Account Grantee
The authorizations which the x/gov
module account has granted to the PNF
account can be queried like so:
pocketd query authz grants-by-grantee pokt1hv3xrylxvwd7hfv03j50ql0ttp3s5hqqelegmv --node https://shannon-grove-rpc.mainnet.poktroll.com
Examples
Example: Adding a new Authorization
In this PR, the following was added to dao_genesis_authorizations.json
:
{
"granter": "pokt10d07y265gmmuvt4z0w9aw880jnsr700j8yv32t",
"grantee": "pokt1eeeksh2tvkh7wzmfrljnhw4wrhs55lcuvmekkw",
"authorization": {
"@type": "cosmos.authz.v1beta1.GenericAuthorization",
"msg": "pocket.migration.MsgUpdateParams"
},
"expiration": "2500-01-01T00:00:00Z"
},
In order to enable it on an already deployed network, we need to submit the following transaction:
pocketd tx authz grant \
pokt1eeeksh2tvkh7wzmfrljnhw4wrhs55lcuvmekkw \
"pocket.migration.MsgUpdateParams" \
--from pnf \
--expiration 16725225600 \
--chain-id pocket \
--gas auto