use mini quorum commands for proposals and approvals
This commit is contained in:
parent
4999b08e7e
commit
923828a3b8
|
@ -60,27 +60,13 @@ The approver is responsible for verifying a transaction proposed by a [proposer]
|
||||||
|
|
||||||
* `cd /root/vaults`
|
* `cd /root/vaults`
|
||||||
|
|
||||||
1. Verify the detached signature for the payload
|
1. Verify the existing signatures and add your own signature:
|
||||||
|
|
||||||
* `gpg --verify <payload>.<num>.json <payload>.<num>.<key_id>.sig`
|
* `icepick workflow --add-signature-to-file <namespace>/ceremonies/<date>/payload_<num>.json --keyring <namespace>/keyring.asc`
|
||||||
|
|
||||||
* The filename will be of format: `/<namespace>/ceremonies/<date>/payloads/payload_<number>.json`
|
|
||||||
|
|
||||||
1. Verify the key is authenticated:
|
|
||||||
|
|
||||||
* `sq-wot --gpg list "<their@email.co>"`
|
|
||||||
|
|
||||||
* Ensure the output of the command includes "fully authenticated"
|
|
||||||
|
|
||||||
1. Sign the transaction payload:
|
|
||||||
|
|
||||||
* `gpg --detach-sign <namespace>/ceremonies/<date>/payloads/payload_<num>.json > <namespace>/ceremonies/<date>/payloads/payload_<num>_$pgp_key_id.sig`
|
|
||||||
|
|
||||||
* e.g `gpg --detach-sign solana-01/ceremonies/2025-01-01/payloads/payload_1.json > solana-01/ceremonies/2025-01-01/payloads/payload_1_F4BF5C81EC78A5DD341C91EEDC4B7D1F52E0BA4D.sig`
|
|
||||||
|
|
||||||
1. Stage the modified file:
|
1. Stage the modified file:
|
||||||
|
|
||||||
* `git add <namespace>/ceremonies/<date>/payloads/payload_<num>_$pgp_key_id.sig`
|
* `git add <namespace>/ceremonies/<date>/payloads/*`
|
||||||
|
|
||||||
1. Create a signed git commit:
|
1. Create a signed git commit:
|
||||||
|
|
||||||
|
|
|
@ -98,52 +98,21 @@ The proposer must combine these values into a JSON file, such as:
|
||||||
|
|
||||||
* e.g `touch solana-01/ceremonies/2025-01-01/payloads/payload_1.json`
|
* e.g `touch solana-01/ceremonies/2025-01-01/payloads/payload_1.json`
|
||||||
|
|
||||||
1. Collect data for the transaction being sent, and structure it according to the template below, replacing values with valid ones. The values have to come from a organization approved list of values, for each field, except for `datetime` which is just the current date and time.
|
|
||||||
|
|
||||||
* Write the data to the file: `vim <namespace>/ceremonies/<date>/payloads/payload_<num>.json`
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"workflow": ["<workflow_namespace>", "<workflow_name>"],
|
|
||||||
"values": {
|
|
||||||
"<workflow_field>": "<workflow_value>"
|
|
||||||
},
|
|
||||||
"proposal_datetime": "<datetime>"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Example data object:
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"workflow": ["cosmos", "withdraw"],
|
|
||||||
"values": {
|
|
||||||
"delegate_address": "kyve1q9w3nar74up6mxnwd428wpr5nffcw3360tkxer",
|
|
||||||
"validator_address": "kyvevaloper1ghpmzfuggm7vcruyhfzrczl4aczy8gas8guslh",
|
|
||||||
"asset_name": "KYVE",
|
|
||||||
"asset_amount": "0.4",
|
|
||||||
"chain_name": "korellia"
|
|
||||||
},
|
|
||||||
"proposal_datetime": "2025-01-28T18:18:00"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
1. Import the keys relevant to the ceremony:
|
1. Import the keys relevant to the ceremony:
|
||||||
|
|
||||||
* `gpg --import <namespace>/keyring.asc`
|
* `gpg --import <namespace>/keyring.asc`
|
||||||
|
|
||||||
1. Sign the data in the CLI using `gpg` or another OpenPGP implementation:
|
1. Use `icepick workflow --help` to list the available workflows and options
|
||||||
|
|
||||||
* `gpg --detach-sign <namespace>/ceremonies/<date>/payloads/<payload>_<num>.json > <namespace>/ceremonies/<date>/payloads/payload_<num>_$smart_card_id.sig`
|
1. Use icepick to generate and sign the payload:
|
||||||
|
|
||||||
* e.g `gpg --detach-sign solana-01/ceremonies/2025-01-01/payloads/payload_1.json > solana-01/ceremonies/2025-01-01/payloads/payload_1_F4BF5C81EC78A5DD341C91EEDC4B7D1F52E0BA4D.sig`
|
* `icepick workflow <chain> <workflow> <--option value> <--option value> --export-for-quorum --sign > <output_file>`
|
||||||
|
|
||||||
1. Stage the new file:
|
* e.g `icepick workflow cosmos withdraw-rewards --delegate-address kyve1q9w3nar74up6mxnwd428wpr5nffcw3360tkxer --validator-address kyvevaloper1ghpmzfuggm7vcruyhfzrczl4aczy8gas8guslh --chain-name korellia --export-for-quorum --sign > <namespace>/ceremonies/<date>/payloads/payload_<num>.json`
|
||||||
|
|
||||||
* `git add <namespace>/ceremonies/<date>/payloads/<payload>.<num>.$smart_card_id.sig`
|
1. Stage the new files:
|
||||||
|
|
||||||
1. Create a signed git commit:
|
* `git add <namespace>/ceremonies/<date>/payloads/*`
|
||||||
|
|
||||||
* `git commit -S -m "add payload signature for payload_<num>.sig using $smart_card_id"`
|
|
||||||
|
|
||||||
1. {{ #include ../../../../component-documents/finding-device-name.md:content }}
|
1. {{ #include ../../../../component-documents/finding-device-name.md:content }}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue