├── q-testnet ├── assets │ ├── init │ ├── 1.png │ ├── 2.png │ └── Q.png └── Readme.md └── README.md /q-testnet/assets/init: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # manuals by systemd 2 | [Q Testnet](https://github.com/systemd-run/manuals/tree/main/q-testnet) 3 | -------------------------------------------------------------------------------- /q-testnet/assets/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artemsharkUfa/Q-blockchain-manuals/HEAD/q-testnet/assets/1.png -------------------------------------------------------------------------------- /q-testnet/assets/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artemsharkUfa/Q-blockchain-manuals/HEAD/q-testnet/assets/2.png -------------------------------------------------------------------------------- /q-testnet/assets/Q.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artemsharkUfa/Q-blockchain-manuals/HEAD/q-testnet/assets/Q.png -------------------------------------------------------------------------------- /q-testnet/Readme.md: -------------------------------------------------------------------------------- 1 | # Q Testnet node installation guide 2 | 3 | 4 |
Official links 5 | 6 | Website - [https://q.org/](https://q.org/) 7 | 8 | Mainnet - [https://hq.q.org/](https://hq.q.org/) 9 | 10 | Testnet - [https://hq.qtestnet.org/](https://hq.qtestnet.org/) 11 | 12 | ChainList - [https://chainlist.org/chain/35441](https://chainlist.org/chain/35441) 13 | 14 | Medium - [https://medium.com/q-blockchain](https://medium.com/q-blockchain) 15 | 16 | Reddit - [https://www.reddit.com/r/QBlockchain/](https://www.reddit.com/r/QBlockchain/) 17 | 18 | Twitter - [https://twitter.com/QBlockchain](https://twitter.com/QBlockchain) 19 | 20 |
21 | 22 |
Constitution & Whitepaper 23 | 24 | Constitution - [https://q.org/assets/files/Q_Constitution.pdf](https://q.org/assets/files/Q_Constitution.pdf) 25 | 26 | Whitepaper - [https://q.org/assets/files/Q Whitepaper_v1.0.pdf](https://q.org/assets/files/Q%20Whitepaper_v1.0.pdf) 27 | 28 |
29 | 30 |
Faucet 31 | [https://faucet.qtestnet.org/](https://faucet.qtestnet.org/) 32 |
33 | 34 |
Documentation 35 | 36 | Documentation - [https://docs.q.org/](https://docs.q.org/) 37 | 38 | Source Code - [https://gitlab.com/q-dev](https://gitlab.com/q-dev) 39 | 40 | Security Audit - [https://medium.com/q-blockchain/q-system-contracts-security-audit-e101ea356586](https://medium.com/q-blockchain/q-system-contracts-security-audit-e101ea356586) 41 | 42 |
43 | 44 |
Explorer 45 | 46 | [https://explorer.qtestnet.org/](https://explorer.qtestnet.org/) 47 | 48 | [https://stats.qtestnet.org/](https://stats.qtestnet.org/) 49 | 50 | [https://explorer.qtestnet.org/graphiql](https://explorer.qtestnet.org/graphiql) 51 | 52 |
53 | 54 |
Official guide 55 | 56 | [https://docs.qtestnet.org/how-to-setup-validator/](https://docs.qtestnet.org/how-to-setup-validator/) 57 | 58 |
59 |
60 | 61 | ## Подготовка сервера при необходимости 62 |
63 | 64 | ```bash 65 | # обновление 66 | apt update && apt upgrade -y 67 | 68 | # установка необходимых утилит 69 | apt install curl iptables build-essential git wget jq make gcc nano tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y 70 | 71 | # установка docker одной строкой 72 | . <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/installers/docker.sh) 73 | 74 | # обновление docker-copmose до v2.5.0 75 | apt purge docker-compose -y 76 | curl -L https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose 77 | chmod +x /usr/local/bin/docker-compose 78 | ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose 79 | ``` 80 | 81 | 82 | ## Начало 83 | 84 | Клонируем репозиторий и переходим в каталог /testnet-validator 85 | 86 | ```bash 87 | git clone https://gitlab.com/q-dev/testnet-public-tools 88 | cd testnet-public-tools/testnet-validator 89 | ``` 90 | 91 | Далее, создаем текстовый файл pwd.txt с паролем который находится в каталоге `testnet-public-tools/testnet-validator/keystore/` 92 | 93 | ```bash 94 | cd $HOME/testnet-public-tools/testnet-validator/ 95 | mkdir keystore 96 | cd keystore 97 | nano pwd.txt 98 | # придумываем пароль и вписываем, не забудьте его сохранить (без кавычек) 99 | # далее закрываем nano 100 | Ctrl+o enter Ctrl+x 101 | ``` 102 | 103 | ## Generate a Keypair for Validator 104 | Создается `.json` файл кошелька который находится в каталоге `/root/testnet-public-tools/testnet-validator/keystore/` - даный ключ экспортируем в `Metamask` , так же данный кошелек нужно указать в форме. Пароль от этого кошелька записан в `pwd.txt`. 105 | 106 |
107 | 108 | ```bash 109 | cd $HOME/testnet-public-tools/testnet-validator/ 110 | docker-compose run --rm --entrypoint "geth account new --datadir=/data --password=/data/keystore/pwd.txt" testnet-validator-node 111 | 112 | # вывод: 113 | 114 | # Your new key was generated 115 | 116 | # Public address of the key: 0xb3FF24F818b0ff6Cc50de951bcB8f86b52287dac 117 | # Path of the secret key file: /data/keystore/UTC--2021-01-18T11-36-28.705754426Z--b3ff24f818b0ff6cc50de951bcb8f86b52287dac 118 | 119 | # - You can share your public address with anyone. Others need it to interact with you. 120 | # - You must NEVER share the secret key with anyone! The key controls access to your funds! 121 | # - You must BACKUP your key file! Without the key, it's impossible to access account funds! 122 | # - You must REMEMBER your password! Without the password, it's impossible to decrypt the key! 123 | ``` 124 | 125 | 126 | > 💡 Не забываем сохранять пароли и Ключи (UTC--…) 127 | 128 | 129 | Нужно 2 кошелька эфириум - для ревардов и тестовый, для удобства добавляем в основной кошелек Метамаск наш тестовый сгененрированный кошелек. 130 | 131 | Для этого: 132 | - в `Metamask` `Импортировать счет` Выбрать тип `Файл JSON` 133 | 134 | - Выбираем ключ из каталога `../keystore` (пример: `UTC--2021-01-18T11-36-28.705754426Z--b3ff24f818b0ff6cc50de951bcb8f86b52287dac`) 135 | 136 | - Вводим пароль (`pwd.txt`) 137 | 138 | - Ждем минут 10 139 | 140 | ## Создаем валидатора 141 | Переходим на сайт [`https://hq.qtestnet.org/`](https://hq.qtestnet.org/), коннектим тестовый кошелек`Connect to Q Testnet` 142 | 143 | Включаем `Advanced mode`, переходим в `Validator Staiking`, вводим количество `Amount` и стейкаем `Stake to Ranking`, после чего присоединяемся `Join Validator Ranking` 144 | 145 | Монеты получаем из крана - [Faucet](https://faucet.qtestnet.org/) 146 | 147 | ![Q.png](assets/Q.png) 148 | 149 | ## Configure Setup 150 | 151 | Редактируем файл `.env` 152 | 153 | ```bash 154 | cd $HOME/testnet-public-tools/testnet-validator/ 155 | nano .env 156 | 157 | # сохранить и закрыть nano Ctrl+o enter Ctrl+x 158 | ``` 159 | 160 | в строчку `ADDRESS=`вставляем ваш адрес без 0x 161 | 162 | в строчку `IP=` вставляем ваш ip 163 | 164 | ![1.png](assets/1.png) 165 | 166 | Редактируем файл `config.json` 167 | 168 | ```bash 169 | cd $HOME/testnet-public-tools/testnet-validator/ 170 | nano config.json 171 | 172 | # сохранить и закрыть nano Ctrl+o enter Ctrl+x 173 | ``` 174 | 175 | в строчку `"address":` в кавычки вставляем ваш адрес без 0x 176 | в строчку `"password":` в кавычки вставляем ваш пароль который вписывали в `pwd.txt` 177 | 178 | ## Регистрируем валидатора 179 | 180 | Заполняем форму - [https://itn.qdev.li/](https://itn.qdev.li/) 181 | 182 | Записываем Имя валидатора - его нужно будет вставить в `docker-compose.yaml` 183 | 184 | ![2.png](assets/2.png) 185 | 186 | Редактируем файл `docker-compose.yaml` 187 | 188 | ```bash 189 | cd $HOME/testnet-public-tools/testnet-validator/ 190 | nano docker-compose.yaml 191 | ``` 192 | 193 | Удаляем всё (удалить строчку целиком `Ctrl+k` ). Вставляем как ниже и изменяем Имя валидатора на свое в строке `"--ethstats=` 194 | 195 | ```bash 196 | version: "3" 197 | 198 | services: 199 | testnet-validator-node: 200 | image: $QCLIENT_IMAGE 201 | entrypoint: [ 202 | "geth", 203 | "--testnet", 204 | "--datadir=/data", 205 | "--syncmode=full", 206 | "--ethstats=<ИМЯ_ВАЛИДАТОРА>:qstats-testnet@stats.qtestnet.org", 207 | "--whitelist=3699041=0xabbe19ba455511260381aaa7aa606b2fec2de762b9591433bbb379894aba55c1", 208 | "--bootnodes=$BOOTNODE1_ADDR,$BOOTNODE2_ADDR,$BOOTNODE3_ADDR", 209 | "--verbosity=3", 210 | "--nat=extip:$IP", 211 | "--port=$EXT_PORT", 212 | "--unlock=$ADDRESS", 213 | "--password=/data/keystore/pwd.txt", 214 | "--mine", 215 | "--miner.threads=1", 216 | "--miner.gasprice=1", 217 | "--rpc.allow-unprotected-txs" 218 | ] 219 | volumes: 220 | - ./keystore:/data/keystore 221 | - ./additional:/data/additional 222 | - testnet-validator-node-data:/data 223 | ports: 224 | - $EXT_PORT:$EXT_PORT 225 | - $EXT_PORT:$EXT_PORT/udp 226 | restart: unless-stopped 227 | 228 | volumes: 229 | testnet-validator-node-data: 230 | 231 | # сохранить и закрыть nano Ctrl+o enter Ctrl+x 232 | ``` 233 | 234 | ## Запускаем ноду 235 | 236 | ```bash 237 | cd $HOME/testnet-public-tools/testnet-validator/ 238 | docker-compose up -d 239 | ``` 240 | 241 | Посмотреть логи 242 | 243 | ```bash 244 | docker-compose logs -f --tail "100" 245 | ``` 246 | 247 | ## Обязательное обновление - выполнить сразу после запуска ноды 248 | 249 | На блоке **3,699,041** сеть перестает синхронизироваться, поэтому чтобы его “проскочить” в консоли необходимо ввести команду ниже и перезагрузить ноду со сбросом базы 250 | 251 | ```bash 252 | cd $HOME/testnet-public-tools/testnet-validator/ 253 | 254 | # переходим в консоль 255 | docker-compose exec testnet-validator-node geth attach /data/geth.ipc 256 | 257 | # вводим команду 258 | debug.setHead(web3.toHex(3699040)) 259 | 260 | # закрыть консоль: ctrl+d или exit 261 | 262 | # перезагружаем ноду 263 | docker-compose down -v && docker-compose up -d 264 | ``` 265 | 266 | ## Special thanks 267 | 268 | [@nil1oki](https://github.com/nil1oki) - creating, 269 | [@roadd](https://github.com/ryssroad) -formatting 270 | --------------------------------------------------------------------------------