Merge PR #2010: Add RELEASE_TEST_SCRIPT.md
This commit is contained in:
parent
61b49d560f
commit
c9cbb0b094
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"node_id": "1ebc5ca705b3ae1c06a0888ff1287ada82149dc3",
|
||||
"ip": "138.68.77.24",
|
||||
"validator": {
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4="
|
||||
},
|
||||
"power": 100,
|
||||
"name": "adrian"
|
||||
},
|
||||
"app_gen_tx": {
|
||||
"name": "default",
|
||||
"address": "D9C12CB5186FE0018179742FD3110EE534C63460",
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4="
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"node_id": "c272ae3cff7558db2c6195eea38fd43fd08406dc",
|
||||
"ip": "206.189.31.178",
|
||||
"validator": {
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "tJlZJWjOpYvRitYFTWNPTaUtvQVf+hoNjlfI84VPqvI="
|
||||
},
|
||||
"power": 100,
|
||||
"name": "anton"
|
||||
},
|
||||
"app_gen_tx": {
|
||||
"name": "default",
|
||||
"address": "E766088FD171906289617F60BF0014C46F0F85EC",
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "tJlZJWjOpYvRitYFTWNPTaUtvQVf+hoNjlfI84VPqvI="
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"node_id": "aef085c4bfed0c1ffc6705f2e1e3bf85e5164600",
|
||||
"ip": "45.77.53.208",
|
||||
"validator": {
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0="
|
||||
},
|
||||
"power": 100,
|
||||
"name": "aurel"
|
||||
},
|
||||
"app_gen_tx": {
|
||||
"name": "aurel",
|
||||
"address": "10B0899E05A486AE4E5589C39587DF7E9A185872",
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0="
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"node_id": "b0dd378c3fbc4c156cd6d302a799f0d2e4227201",
|
||||
"ip": "159.89.121.174",
|
||||
"validator": {
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o="
|
||||
},
|
||||
"power": 100,
|
||||
"name": "bucky"
|
||||
},
|
||||
"app_gen_tx": {
|
||||
"name": "bucky",
|
||||
"address": "935E48ED79F1006ED135553768E1D9A768747CF6",
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o="
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"node_id": "e25603602d8cf8542570ad0e311d50f55f497f85",
|
||||
"ip": "158.69.63.13",
|
||||
"validator": {
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0="
|
||||
},
|
||||
"power": 100,
|
||||
"name": "cwgoes"
|
||||
},
|
||||
"app_gen_tx": {
|
||||
"name": "cwgoes",
|
||||
"address": "328FBB8EA315D070DF908982A5F91A3618001D20",
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0="
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"node_id": "aabf05a67b2f399807dc602d05bf97b0ed283ac2",
|
||||
"ip": "116.62.62.39",
|
||||
"validator": {
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw="
|
||||
},
|
||||
"power": 100,
|
||||
"name": "iris"
|
||||
},
|
||||
"app_gen_tx": {
|
||||
"name": "=suyu",
|
||||
"address": "4B5BE759EB23B0D76C6A60636BD0E3111178794E",
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw="
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"node_id": "79466a03e9d4b4648a7dd8cead1fa7121ce76ee3",
|
||||
"ip": "34.235.130.1",
|
||||
"validator": {
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc="
|
||||
},
|
||||
"power": 100,
|
||||
"name": "lino"
|
||||
},
|
||||
"app_gen_tx": {
|
||||
"name": "lino",
|
||||
"address": "5A007B81A25AF34B829B79DA508A26E12180BCDB",
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc="
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"node_id": "adb290585a2753bf1a520c76802b0dab3dffa895",
|
||||
"ip": "34.201.21.179",
|
||||
"validator": {
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A="
|
||||
},
|
||||
"power": 100,
|
||||
"name": "pbostrom"
|
||||
},
|
||||
"app_gen_tx": {
|
||||
"name": "default",
|
||||
"address": "109720515B4F8C0858DA3521E448262334534FFD",
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A="
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"node_id": "678503e6c8f50db7279c7da3cb9b072aac4bc0d5",
|
||||
"ip": "35.193.188.125",
|
||||
"validator": {
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8="
|
||||
},
|
||||
"power": 100,
|
||||
"name": "polsdam"
|
||||
},
|
||||
"app_gen_tx": {
|
||||
"name": "poldsam",
|
||||
"address": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5",
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8="
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"node_id": "3519f05985394107e0b2e285361b7e012adb1113",
|
||||
"ip": "54.209.118.64",
|
||||
"validator": {
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "vq0V0BjpmIh6WyNnFpMaO5LyUK2FamkNt65eJYa5AaQ="
|
||||
},
|
||||
"power": 100,
|
||||
"name": "staked"
|
||||
},
|
||||
"app_gen_tx": {
|
||||
"name": "default",
|
||||
"address": "935E04662697134905706A4CCDB822AC6FC11C2E",
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "vq0V0BjpmIh6WyNnFpMaO5LyUK2FamkNt65eJYa5AaQ="
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"node_id": "8a2802fb25d352f3e7e277559a4f683780c3ef22",
|
||||
"ip": "167.99.191.184",
|
||||
"validator": {
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE="
|
||||
},
|
||||
"power": 100,
|
||||
"name": ""
|
||||
},
|
||||
"app_gen_tx": {
|
||||
"name": "zach",
|
||||
"address": "9D5723057702E2090405AB5D3B48C45B9ABF4377",
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE="
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"node_id": "30b45459e4881680c0ef1750fde136fefa6c3b98",
|
||||
"ip": "35.184.182.143",
|
||||
"validator": {
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY="
|
||||
},
|
||||
"power": 100,
|
||||
"name": "zaki"
|
||||
},
|
||||
"app_gen_tx": {
|
||||
"name": "zaki",
|
||||
"address": "ECE57661F0CDCF28EED257B72F86240E57F4A612",
|
||||
"pub_key": {
|
||||
"type": "AC26791624DE60",
|
||||
"value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY="
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -6,6 +6,6 @@
|
|||
- [ ] 4. Summarize breaking API changes section under “Breaking Changes” section to the `CHANGELOG.md` to bring attention to any breaking API changes that affect RPC consumers.
|
||||
- [ ] 5. Tag the commit `{{ .Release.Name }}-rcN`
|
||||
- [ ] 6. Kick off 1 day of automated fuzz testing
|
||||
- [ ] 7. Release Lead assigns 2 people to perform buddy testing script
|
||||
- [ ] 7. Release Lead assigns 2 people to perform [buddy testing script](/docs/RELEASE_TEST_SCRIPT.md) and update the relevant documentation
|
||||
- [ ] 8. If errors are found in either #6 or #7 go back to #2 (*NOTE*: be sure to increment the `rcN`)
|
||||
- [ ] 9. After #6 and #7 have successfully completed then merge the release PR and push the final release tag
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
This document should contain plain english instructions for testing functionality on `gaiad`. This “Script” is supposed to be run by 2 people who will each spin up a `gaiad` node and run the series of prompts below.
|
||||
|
||||
- [Create a network of 2 nodes](getting-started/create-testnet.md)
|
||||
- [Generate an account](sdk/clients.md)
|
||||
- [Send funds from one account to the other](sdk/clients.md)
|
||||
- [Create a validator](validators/validator-setup.md)
|
||||
- [Edit a validator](validators/validator-setup.md)
|
||||
- [Delegate to validator](sdk/clients.md)
|
||||
- [Unbond from a validator](sdk/clients.md)
|
||||
- [View validators and verify output](validators/validator-setup.md)
|
||||
- [Query network status](getting-started/full-node.md)
|
||||
- [Create a proposal](validators/validator-setup.md)
|
||||
- [Query a proposal](validators/validator-setup.md)
|
||||
- [Vote on a proposal](validators/validator-setup.md)
|
||||
- [Query status of a proposal](validators/validator-setup.md)
|
||||
- [Query the votes on a proposal](validators/validator-setup.md)
|
||||
- [Export state and reload](getting-started/create-testnet.md)
|
|
@ -0,0 +1,27 @@
|
|||
## Create your Own Testnet
|
||||
|
||||
To create your own testnet, first each validator will need to install gaiad and run gen-tx
|
||||
|
||||
```bash
|
||||
gaiad init gen-tx --name <account_name>
|
||||
```
|
||||
|
||||
This populations `$HOME/.gaiad/gen-tx/` with a json file.
|
||||
|
||||
Now these json files need to be aggregated together via Github, a Google form, pastebin or other methods.
|
||||
|
||||
Place all files on one computer in `$HOME/.gaiad/gen-tx/`
|
||||
|
||||
```bash
|
||||
gaiad init --gen-txs -o --chain=<chain-name>
|
||||
```
|
||||
|
||||
This will generate a `genesis.json` in `$HOME/.gaiad/config/genesis.json` distribute this file to all validators on your testnet.
|
||||
|
||||
### Export state
|
||||
|
||||
To export state and reload (useful for testing purposes):
|
||||
|
||||
```
|
||||
gaiad export > genesis.json; cp genesis.json ~/.gaiad/config/genesis.json; gaiad start
|
||||
```
|
|
@ -159,5 +159,5 @@ gaiacli stake delegation \
|
|||
## Light Client Daemon
|
||||
|
||||
::: tip Note
|
||||
🚧 We are actively working on documentation for the LCD.
|
||||
🚧Documentation coming soon!
|
||||
:::
|
||||
|
|
|
@ -132,3 +132,132 @@ LimitNOFILE=4096
|
|||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
## Delegating to a Validator
|
||||
|
||||
On the upcoming mainnet, you can delegate `Atom` to a validator. These [delegators](https://cosmos.network/resources/delegators) can receive part of the validator's fee revenue. Read more about the [Cosmos Token Model](https://github.com/cosmos/cosmos/raw/master/Cosmos_Token_Model.pdf).
|
||||
|
||||
### Bond Tokens
|
||||
|
||||
On the testnet, we delegate `steak` instead of `Atom`. Here's how you can bond tokens to a testnet validator:
|
||||
|
||||
```bash
|
||||
gaiacli stake delegate \
|
||||
--amount=10steak \
|
||||
--address-delegator=<account_cosmosaccaddr> \
|
||||
--address-validator=<validator_cosmosaccaddr> \
|
||||
--from=<key_name> \
|
||||
--chain-id=gaia-7001
|
||||
```
|
||||
|
||||
While tokens are bonded, they are pooled with all the other bonded tokens in the network. Validators and delegators obtain a percentage of shares that equal their stake in this pool.
|
||||
|
||||
> _*NOTE:*_ Don't use more `steak` thank you have! You can always get more by using the [Faucet](https://gaia.faucetcosmos.network/)!
|
||||
|
||||
### Unbond Tokens
|
||||
|
||||
If for any reason the validator misbehaves, or you want to unbond a certain amount of tokens, use this following command. You can unbond a specific amount of`shares`\(eg:`12.1`\) or all of them \(`MAX`\).
|
||||
|
||||
```bash
|
||||
gaiacli stake unbond \
|
||||
--address-delegator=<account_cosmosaccaddr> \
|
||||
--address-validator=<validator_cosmosaccaddr> \
|
||||
--shares=MAX \
|
||||
--from=<key_name> \
|
||||
--chain-id=gaia-7001
|
||||
```
|
||||
|
||||
You can check your balance and your stake delegation to see that the unbonding went through successfully.
|
||||
|
||||
```bash
|
||||
gaiacli account <account_cosmosaccaddr>
|
||||
|
||||
gaiacli stake delegation \
|
||||
--address-delegator=<account_cosmosaccaddr> \
|
||||
--address-validator=<validator_cosmosaccaddr> \
|
||||
--chain-id=gaia-7001
|
||||
```
|
||||
|
||||
## Governance
|
||||
|
||||
Governance is the process from which users in the Cosmos Hub can come to consensus on software upgrades, parameters of the mainnet or on custom text proposals. This is done through voting on proposals, which will be submitted by `Atom` holders on the mainnet.
|
||||
|
||||
Some considerations about the voting process:
|
||||
|
||||
- Voting is done by bonded `Atom` holders on a 1 bonded `Atom` 1 vote basis
|
||||
- Delegators inherit the vote of their validator if they don't vote
|
||||
- **Validators MUST vote on every proposal**. If a validator does not vote on a proposal, they will be **partially slashed**
|
||||
- Votes are tallied at the end of the voting period (2 weeks on mainnet). Each address can vote multiple times to update its `Option` value (paying the transaction fee each time), only the last casted vote will count as valid
|
||||
- Voters can choose between options `Yes`, `No`, `NoWithVeto` and `Abstain`
|
||||
At the end of the voting period, a proposal is accepted if `(YesVotes/(YesVotes+NoVotes+NoWithVetoVotes))>1/2` and `(NoWithVetoVotes/(YesVotes+NoVotes+NoWithVetoVotes))<1/3`. It is rejected otherwise
|
||||
|
||||
For more information about the governance process and how it works, please check out the Governance module [specification](https://github.com/cosmos/cosmos-sdk/tree/develop/docs/spec/governance).
|
||||
|
||||
### Create a Governance proposal
|
||||
|
||||
In order to create a governance proposal, you must submit an initial deposit along with the proposal details:
|
||||
|
||||
- `title`: Title of the proposal
|
||||
- `description`: Description of the proposal
|
||||
- `type`: Type of proposal. Must be of value _Text_ (types _SoftwareUpgrade_ and _ParameterChange_ not supported yet).
|
||||
|
||||
```bash
|
||||
gaiacli gov submit-proposal \
|
||||
--title=<title> \
|
||||
--description=<description> \
|
||||
--type=<Text/ParameterChange/SoftwareUpgrade> \
|
||||
--proposer=<account_cosmosaccaddr> \
|
||||
--deposit=<40steak> \
|
||||
--from=<name> \
|
||||
--chain-id=gaia-7001
|
||||
```
|
||||
|
||||
|
||||
### Increase deposit
|
||||
|
||||
In order for a proposal to be broadcasted to the network, the amount deposited must be above a `minDeposit` value (default: `10 steak`). If the proposal you previously created didn't meet this requirement, you can still increase the total amount deposited to activate it. Once the minimum deposit is reached, the proposal enters voting period:
|
||||
|
||||
```bash
|
||||
gaiacli gov deposit \
|
||||
--proposalID=<proposal_id> \
|
||||
--depositer=<account_cosmosaccaddr> \
|
||||
--deposit=<200steak> \
|
||||
--from=<name> \
|
||||
--chain-id=gaia-7001
|
||||
```
|
||||
|
||||
> _NOTE_: Proposals that don't meet this requirement will be deleted after `MaxDepositPeriod` is reached.
|
||||
|
||||
#### Query proposal
|
||||
|
||||
Once created, you can now query information of the proposal:
|
||||
|
||||
```bash
|
||||
gaiacli gov query-proposal \
|
||||
--proposalID=<proposal_id> \
|
||||
--chain-id=gaia-7001
|
||||
```
|
||||
|
||||
### Vote on a proposal
|
||||
|
||||
After a proposal's deposit reaches the `MinDeposit` value, the voting period opens. Bonded `Atom` holders can then cast vote on it:
|
||||
|
||||
```bash
|
||||
gaiacli gov vote \
|
||||
--proposalID=<proposal_id> \
|
||||
--voter=<account_cosmosaccaddr> \
|
||||
--option=<Yes/No/NoWithVeto/Abstain> \
|
||||
--from=<name> \
|
||||
--chain-id=gaia-7001
|
||||
```
|
||||
|
||||
#### Query vote
|
||||
|
||||
Check the vote with the option you just submitted:
|
||||
|
||||
```bash
|
||||
gaiacli gov query-vote \
|
||||
--proposalID=<proposal_id> \
|
||||
--voter=<account_cosmosaccaddr> \
|
||||
--chain-id=gaia-7001
|
||||
```
|
||||
|
|
Loading…
Reference in New Issue