Skip to content
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ build_tags: netgo ledger

### Init
```bash:
gaiad init "<moniker-name>" --chain-id <current course chain id>
gaiad init "<moniker-name>" --chain-id school-testnet-2
```

### Generate keys
Expand Down Expand Up @@ -57,7 +57,7 @@ gaiad add-genesis-account <key-name> 1000000000uatom --keyring-backend <os | fil
# Create the gentx.
# Note, your gentx will be rejected if you use any amount greater than 1000000000uatom.
gaiad gentx <key-name> 1000000000uatom --output-document=gentx.json \
--chain-id=dvs-protocol-v1 \
--chain-id=school-testnet-2 \
--moniker="<moniker-name>" \
--website=<your-node-website> \
--details=<your-node-details> \
Expand Down
61 changes: 61 additions & 0 deletions gentx/example.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
{
"body": {
"messages": [
{
"@type": "/cosmos.staking.v1beta1.MsgCreateValidator",
"description": {
"moniker": "Validator School",
"identity": "",
"website": "",
"security_contact": "",
"details": ""
},
"commission": {
"rate": "0.100000000000000000",
"max_rate": "0.200000000000000000",
"max_change_rate": "0.010000000000000000"
},
"min_self_delegation": "1",
"delegator_address": "cosmos1ndmxkmwh9cnzcj6qpcs0r20pvw04q0umyl4twv",
"validator_address": "cosmosvaloper1ndmxkmwh9cnzcj6qpcs0r20pvw04q0umptp7zl",
"pubkey": {
"@type": "/cosmos.crypto.ed25519.PubKey",
"key": "Z/69S3hoUEMH4FQRN9Vx0k50oXnhWKL6gPHDaBWyvf8="
},
"value": {
"denom": "uatom",
"amount": "12500000000000"
}
}
],
"memo": "a8e50dd0e26820d8de0bdb71de793e36fa85652d@192.168.3.18:26656",
"timeout_height": "0",
"extension_options": [],
"non_critical_extension_options": []
},
"auth_info": {
"signer_infos": [
{
"public_key": {
"@type": "/cosmos.crypto.secp256k1.PubKey",
"key": "Ak+5kJ/rRN8IZNwAWvoh7gCZCPPOF3RTJM7IMLuE8GSu"
},
"mode_info": {
"single": {
"mode": "SIGN_MODE_DIRECT"
}
},
"sequence": "0"
}
],
"fee": {
"amount": [],
"gas_limit": "200000",
"payer": "",
"granter": ""
}
},
"signatures": [
"A6X4Ifo1JS+evz1dmtVBObhZGqHaCbZLdeR3KcWHXaJWVrURPpiO/k2YzB3+HQ8hYBEs2sOPpUSOYHhp/eGp+g=="
]
}
1 change: 1 addition & 0 deletions gentx/gentx.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgCreateValidator","description":{"moniker":"Stakeme","identity":"","website":"https://stakeme.io","security_contact":"","details":"Team of Web3.0 enthusiasts, we validate networks, write educational content, and much more 👾☄️ http://github.com/ProNodes11 | http://youtube.com/@pronodes | https://teletype.in/@pronodes"},"commission":{"rate":"0.050000000000000000","max_rate":"0.200000000000000000","max_change_rate":"0.010000000000000000"},"min_self_delegation":"1","delegator_address":"cosmos1lv06j60j2qdev3d4k3a9uf4dwsnh3awrpdgded","validator_address":"cosmosvaloper1lv06j60j2qdev3d4k3a9uf4dwsnh3awryeuc47","pubkey":{"@type":"/cosmos.crypto.ed25519.PubKey","key":"B9ZPvVqBhvLK7tVX06dzjc70/hh0C98laxwDMeWdnsA="},"value":{"denom":"uatom","amount":"1000000000"}}],"memo":"edcbba91cb23a0c866cf2f44be711c8a16410339@65.108.216.133:26656","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"Az1SRR0eacIvJ/snA51I03IkrRzAP00N2OVAk8+idkq+"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"0"}],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""}},"signatures":["5xKAlPybbayNB+KYHX5n26vb1WRvVF+bRGWYSUkZ9e0rFBGaALCto4Tkt0OQBassNyJbvdw88Ww8RId4XcnPBw=="]}
2 changes: 2 additions & 0 deletions peers/example.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
89d911a44f40993dabf7d468c21588a1604fe4d7@192.168.3.11:26656 # Validators School. NB! Should contain real IP. Not internal like in this example.
edcbba91cb23a0c866cf2f44be711c8a16410339@65.108.216.133:26656
39 changes: 21 additions & 18 deletions testnet_instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Block explorer: `TBA`

Seeds: TBA

Chain Id: TBA
Chain Id: school-testnet-2

## **Hardware Requirements**

Expand Down Expand Up @@ -40,11 +40,11 @@ build_tags: netgo ledger
### Network init

`cd ~`
`gaiad init "<moniker-name>" --chain-id <current course chain id>`
`gaiad init "<moniker-name>" --chain-id school-testnet-2`

example:

`gaiad init course-participant-1 --chain-id dvs-course-testnet-1`
`gaiad init course-participant-1 --chain-id school-testnet-2`

### **Create Validator Key**

Expand Down Expand Up @@ -75,8 +75,8 @@ This command will help you to create account in your local genesis file. It will
Create the gentx file. Note, your gentx will be rejected if you use any amount greater than 1000000000uatom.

```
gaiad gentx <key-name> 1000000000uatom --output-document=gentx.json \
--chain-id=dvs-course-testnet-1 \
gaiad gentx <key-name> 1000000000uatom --output-document=$HOME/.gaia/config/gentx.json \
--chain-id=school-testnet-2 \
--moniker="<moniker-name>" \
--website=<your-node-website> \
--details=<your-node-details> \
Expand All @@ -86,7 +86,7 @@ gaiad gentx <key-name> 1000000000uatom --output-document=gentx.json \
--min-self-delegation="1"
```

After gentx will be ready you can find it in the `~/.gaiad/config/gentx` directory. After that you will be required to upload it into `gentxs` directory of this repository. Please name it using following template `gentx-<validator name>.json`.
After gentx will be ready you can find it in the `~/.gaia/config/gentx.json` directory. After that you will be required to upload it into `gentxs` directory of this repository. Please name it using following template `gentx-<validator name>.json`.

In order to upload this file you will need to create fork of this repository. Please click on “Fork” button in the top right corner of this page, and name it somehow or leave repository name unchanged.

Expand All @@ -110,7 +110,7 @@ Please “Open pull request”, check data, put some description into text box f
gaiad tx staking create-validator \
--amount=1000000000uatom \
--pubkey=$(gaiad tendermint show-validator) \
--chain-id=dvs-course-testnet-1 \
--chain-id=school-testnet-2 \
--moniker="<moniker-name>" \
--website=<your-node-website> \
--commission-rate="0.10" \
Expand All @@ -133,23 +133,24 @@ Set up cosmovisor to ensure any future upgrades happen flawlessly. To install Co
Create the required directories:

```
mkdir -p ~/.gaiad/cosmovisor/genesis/bin
mkdir -p ~/.gaiad/cosmovisor/upgrades
mkdir -p ~/.gaia/cosmovisor/genesis/bin
mkdir -p ~/.gaia/cosmovisor/upgrades
```

After directories will be ready please copy `gaiad` binaries created in the “Cosmos Hub binaries installation (gaiad)” section into `~/.gaiad/cosmovisor/genesis/bin` directory. You can do it using `cp ~/go/bin/gaiad ~/.gaiad/cosmovisor/genesis/bin/gaiad` command.
After directories will be ready please copy `gaiad` binaries created in the “Cosmos Hub binaries installation (gaiad)” section into `~/.gaia/cosmovisor/genesis/bin` directory. You can do it using `cp ~/go/bin/gaiad ~/.gaia/cosmovisor/genesis/bin/gaiad` command.

### ****Set Up Gaiad Service****

Set up a service to allow cosmovisor to run in the background as well as restart automatically if it runs into any problems:

```
echo "[Unit]
sudo tee <<EOF >/dev/null /etc/systemd/system/gaiad.service
[Unit]
Description=Cosmos Hub daemon
After=network-online.target
[Service]
Environment="DAEMON_NAME=gaiad"
Environment="DAEMON_HOME=${HOME}/.gaiad"
Environment="DAEMON_HOME=${HOME}/.gaia"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_LOG_BUFFER_SIZE=512"
Expand All @@ -162,16 +163,18 @@ LimitNOFILE=infinity
LimitNPROC=infinity
[Install]
WantedBy=multi-user.target
" >cosmovisor.service
EOF
```
and start service:
```
sudo systemctl enable gaiad
sudo systemctl daemon-reload
sudo systemctl restart gaiad
```

Move this new file to the systemd directory:

`sudo mv cosmovisor.service /lib/systemd/system/gaiad.service`

## **More about validators**

Please refer to the Cosmos Hub documentation on validators for a general overview of running a validator. We are using the exact same validator model and software, but with slightly different parameters and other functionality specific to the Cosmic Horizon Network.
Please refer to the Cosmos Hub documentation on validators for a general overview of running a validator. We are using the exact same validator model and software, but with slightly different parameters and other functionality specific to the Validator School Network.

- [Run a Validator](https://hub.cosmos.network/main/validators/validator-setup.html)
- [Validators Overview](https://hub.cosmos.network/main/validators/overview.html)
Expand Down
56 changes: 9 additions & 47 deletions testnet_planning.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,16 @@ Everything is subject to change and as close as possible to the realities of tes
- Governance proposals
- Enable Transfers
- Rewards: `To keep the competitive process going, we see the validators with the most points and they will be rewarded`
- Schedule: `date this`
- Schedule: `16.01.2023 - 03.02.2023`
- For the Genesis and Celebrate sections please sign a transaction for each of the tasks and provide the txHash in a PR.

## **Phase - 1: Start chain (max 30 points)**

- GenTx Validator Address Submission : `date and time wiil be refined for a specific course`. Up to `70% of the flow` will be accepted.
- GenTx Validator Address Submission : `16.01.2023 - 17.01.2023`. Up to `70% of the flow` will be accepted.

`25 Points = 25 000 atom for successful wallet submissions.`

- Network start time: `time start chain wiil be refined for a specific course`
- Network start time: `18.01.2023 15:00 UTC`

`20 Points = 20 000 atom for set up post genesis validators.`

Expand All @@ -31,16 +31,16 @@ Everything is subject to change and as close as possible to the realities of tes

## **Phase - 2: Governance (max 30 points)**

Lead validator team will create a governance proposal on `date wiil be refined for a specific course`, to update the transfer parameter. You will need to study the proposals, find the correct one and vote.
Lead validator team will create a governance proposal on `25.01.2023 15:00 UTC`, to update the transfer parameter. You will need to study the proposals, find the correct one and vote.

In order to find correct proposal you will need to run query command using your network client binary (`gaiad` in our case). Please issue following command `gaiad query gov proposals`, and find proposal with `title:` ”Vote for me friend”.

**New to upgrades?** Read [this](https://docs.cosmos.network/master/modules/gov)

**Update Schedule:**

- Proposal: `date and time wiil be refined for a specific course`
- Voting Period: `date and time proposal wiil be refined for a specific course`
- Proposal: `Vote for me friend`
- Voting Period: `25.01.2023 15:00 UTC - 27.01.2023 15:00 UTC`
- Upgrade Height: `TBD`

**What should validators do?**
Expand All @@ -55,24 +55,9 @@ In order to find correct proposal you will need to run query command using your

`5 points = 5000 atom for everyone who provides a peer.`

<aside>
📌 Instructions to submit the PR:

- Clone dvs/testnets1 repo,
```
git clone url/testnets/flow1
cd testnets1
git pull origin main
cd testnets1/tasks/Phase-1/genesis
cp sample.json <your_moniker>.json
```
- Add/Update the details - provide txhash of peerID in a transaction memo
- Push to the repo and create a PR
</aside>

---

## P**hase-3: Transactions (max 30 points)**
## **Phase-3: Transactions (max 30 points)**

- Send 1atom to DVS validator

Expand All @@ -95,38 +80,15 @@ cp sample.json <your_moniker>.json
`5 points = 5000 atom for everyone who do this task.`

<aside>
📌 Participants need to raise a PR with the details onto dvs/testnets/flow repo
📌 Participants need to raise a PR with the details onto this repo

- Time: `date and time wiil be refined for a specific course`
- Time: `01.02.2023 - 03.02.2023 `
(Only the txs in this time period are considered to be valid)
- Instructions to submit the PR:
- Clone testnets repo,

```
$ git clone *link
$ cd testnets
$ git pull origin main
$ cd darkmatter-1/tasks/Phase-1/celebrate
$ cp sample.json <your_moniker>.json
```

- Add/Update the details
- Push to the repo and create a PR
</aside>

---

## **Bonus Challenges**

- Uptime :
- uptime >= 90%
- 80% <= uptime >= 90%
- 70% ≤ uptime ≥ 80%

`20 points = 20000 atom for everyone who have 90+% uptime`
`10 points = 10000 atom for everyone who have 80-90% uptime`
`5 points = 5000 atom for everyone who have 70-80% uptime`

- Never jailed validator :

`20 points = 20000 atom.`
Expand Down
1 change: 1 addition & 0 deletions transaction/example.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
E99436F3F229B6BDCAB1EC5858918345978F5FB8B4230E91896ECE89279CDB0F # Validators School. NB! Should contain hashes of your transactions
1 change: 1 addition & 0 deletions tweet/example.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
https://twitter.com/kuraassh # Validators School. NB! Should contain url link to your tweet