Актуально
December 17, 2022

Q blockchain

Q - это новый блокчейн, который сочетает в себе преимущества публичной, открытой и децентрализованной бухгалтерской книги с прозрачностью и предсказуемостью частных контрактов, подлежащих исполнению, что позволяет использовать его в самых разных вариантах использования, которые стремятся к децентрализации, но требуют масштабируемости и надежности.

Steps

Comments

Installing dependencies and utilities

Working with the repository and generating block signing keys

Change the default settings to your own

lauch docker

actual version

1. Server preparation - Подготовка сервера

#update
sudo apt-get update && sudo apt-get upgrade -y

# install 'key'
sudo apt-get install curl wget git jq libpq-dev libssl-dev \
build-essential pkg-config openssl ocl-icd-opencl-dev \
libopencl-clang-dev libgomp1 -y

#install docker and docker-compose
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/installers/docker.sh)

#install rust
curl https://sh.rustup.rs -sSf | sh -s -- -y

#check version
source "$HOME/.cargo/env" && \
echo -e "\n$(cargo --version).\n"

2. Setup Validator node - Установка узла валидатора

2.1 Working with repository and keys - Работа с репозиторием, бинарными файлами и ключами

git clone https://gitlab.com/q-dev/testnet-public-tools
cd testnet-public-tools/testnet-validator

This directory contains the docker-compose.yaml file for quick launching of the validator node with preconfigurations on rpc, blockchain explorer using .env (which can be created from .env.example).

Этот каталог содержит файл docker-compose.yaml для быстрого запуска узла валидатора с предварительными настройками на rpc, blockchain explorer с использованием .env (который может быть создан из .env.example).

2.2 Creating a catalog with keys and generating keys - Создание каталога с ключами и генерация ключей

Создаем папку и файл где будет хранится пароль, который будет защищать наш файл с ключами

Create a folder and a file that will store the password, which will protect our file with the keys

mkdir keystore 
cd keystore
touch pwd
nano pwd.txt
# Save changes ctrl X , Y , enter

Generation file

docker-compose run --rm --entrypoint "geth account new --datadir=/data --password=/data/keystore/pwd.txt" testnet-validator-node

The generated file stores your address for Metamask - В сгенерированном файле хранится ваш адрес для Metamask

Таким образом, генерируется новый закрытый ключ, который хранится в каталоге /keystore, зашифрованном паролем из pwd.txt файл. В нашем примере 0xb3FF24F818b0ff6Cc50de951bcB8f86b52287DAc (у вас будет другое значение) - это адрес, соответствующий недавно сгенерированному закрытому ключу.

This generates a new private key, which is stored in the /keystore directory, encrypted with the password from the pwd.txt file. In our example 0xb3FF24F818b0ff6Cc50de951bcB8f86b52287DAc (you will have a different value) is the address corresponding to the newly generated private key.

Your new key was generated

Public address of the key:   0xb3FF24F818b0ff6Cc50de951bcB8f86b52287dac
Path of the secret key file: /data/keystore/UTC--2021-01-18T11-36-28.705754426Z--b3ff24f818b0ff6cc50de951bcb8f86b52287dac

- You can share your public address with anyone. Others need it to interact with you.
- You must NEVER share the secret key with anyone! The key controls access to your funds!
- You must BACKUP your key file! Without the key, it's impossible to access account funds!
- You must REMEMBER your password! Without the password, it's impossible to decrypt the key!

2.3 Faucet

3. Configuration files setup - Настройка конфигурационного файла

cp .env.example .env
nano .env

3.1 Edit .env

**Replace ADDRESS(without 0x) obtained in step 2 and your IP - Замените ADDRESS(без 0х) полученный в шаге 2 и ваш IP **

# docker image for q client
QCLIENT_IMAGE=qblockchain/q-client:1.2.2

# your q address here (without leading 0x)
ADDRESS=<your address>

# your public IP address here
IP=<your IP>

# the port you want to use for p2p communication (default is 30313)
EXT_PORT=30313

# extra bootnode you want to use
BOOTNODE1_ADDR=enode://c610793186e4f719c1ace0983459c6ec7984d676e4a323681a1cbc8a67f506d1eccc4e164e53c2929019ed0e5cfc1bc800662d6fb47c36e978ab94c417031ac8@79.125.97.227:30304
BOOTNODE2_ADDR=enode://8eff01a7e5a66c5630cbd22149e069bbf8a8a22370cef61b232179e21ba8c7b74d40e8ee5aa62c54d145f7fc671b851e5ccbfe124fce75944cf1b06e29c55c80@79.125.97.227:30305
BOOTNODE3_ADDR=enode://7a8ade64b79961a7752daedc4104ca4b79f1a67a10ea5c9721e7115d820dbe7599fe9e03c9c315081ccf6a2afb0b6652ee4965e38f066fe5bf129abd6d26df58@79.125.97.227:30306

#Save changes ctrl X , Y , enter

3.2 Edit config.json

nano config.json

Replace ADDRESS(without 0x) obtained in step 2.2 and password

{
 "address": "<your address>",
 "password": "supersecurepassword",
 "keystoreDirectory": "/data",
 "rpc": "https://rpc.qtestnet.org"
}

#Save changes ctrl X , Y , enter

3.3 Put Stake in Validators Contract - Заложить долю в контракт валидаторов

Чтобы получать вознаграждения нужно сделать ставку на валидатора, перейдите `https://hq.qtestnet.org`. Включите режим `advanced mode` и сделайти ставку `Consensus Services` -> `Validator Staking`

As was mentioned previously, you need to put stake to validators contract in order to become a validator.

You can use the dApp "Your HQ" that can be found at `https://hq.qtestnet.org`. Ultimately, you need to Join Validator Ranking to receive rewards. The according functionality is located at `Consensus Services` -> `Validator Staking` in box "Manage Balance". If you can't see the menu item Consensus Services, you are not running the dApp UI in `advanced mode`. Go to Settings and activate it.

3.4 Add your Validator to https://stats.qtestnet.org - Добавление вашего валидатора в общий список

nano /testnet-validator/docker-compose.yaml

Take a look at the example below.Copy and paste into docker-compose.yaml. Replace with <your_name_validator>. Save with ctrl X , Y , enter

Взгляните на пример ниже.Скопируйте и вставьте в docker-compose.yaml. Замените <your_name_validator>. Сохраните ctrl X , Y , enter

version: "3"

services:
  testnet-validator-node:
    image: $QCLIENT_IMAGE
    entrypoint: ["geth", "--ethstats=<your_name_validator>:[email protected]", "--bootnodes=$BOOTNODE1_ADDR,$BOOTNODE2_ADDR,$BOOTNODE3_ADDR", "--datadir=/data", "--nat=extip:$IP", "--port=$EXT_PORT", "--unlock=$ADDRESS",  "--password=/data/keystore/pwd.txt", "--mine", "--miner.threads=1", "--syncmode=full", "--rpc.allow-unprotected-txs", "--testnet", "--verbosity=3", "--miner.gasprice=1"]
    volumes:
      - ./keystore:/data/keystore
      - ./additional:/data/additional
      - testnet-validator-node-data:/data
    ports:
      - $EXT_PORT:8545/tcp
      - $EXT_PORT:8545/udp
    restart: unless-stopped

volumes:
  testnet-validator-node-data:

4. Lauch

docker-compose up -d
docker-compose logs -f --tail "100"

Следите за обновлениями в канале - Watch the channel for updates

5. Appendix - Приложение (This is what your work files should look like - примерно так должны выглядеть ваши рабочие файлы)

.env

docker-compose.yaml

config.json

6. Oracle

/omnibridge-oracle The core Q OmniBridge client 
/omnibridge-ui A graphical user interface to use the bridge on your local server 
/omnibridge-alm The monitor component to track the status of bridge transactions on the blockchain
/omnibridge-oracle Основной клиент Q OmniBridge 
/omnibridge-ui Графический пользовательский интерфейс для использования моста на вашем локальном сервере
/omnibridge-alm Компонент монитора для отслеживания статуса транзакций моста на блокчейне

6.1 Omnibridge

cd /root/testnet-public-tools/omnibridge-oracle/
cp .env.testnet .env
nano .env

Восстановите кошелек в метамаск с помощью файла который был сгенерирован в шаге : generation UTC

Restore the wallet to the metamask using the file that was generated in step : generation UTC

  1. Скопируйте приватный ключ и вставьте в ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY
  2. Замените ORACLE_VALIDATOR_ADDRESS на ваш адрес кошелька
  3. COMMON_FOREIGN_RPC_URL заменить на https://rpc.ankr.com/eth_rinkeby
  4. Copy the private key and paste it into ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY.
  5. Replace ORACLE_VALIDATOR_ADDRESS with your wallet address
  6. COMMON_FOREIGN_RPC_URL here we write https://rpc.ankr.com/eth_rinkeby

Save changes ctrl X , Y , enter

docker-compose up -d
screen -S oracle
docker-compose logs -f --tail "100"

6.2 Omnibridge-ui

cd ../omnibridge-ui
cp .env.testnet .env
nano .env

REACT_APP_FOREIGN_RPC_URL replace https://rpc.ankr.com/eth_rinkeby

#Save changes ctrl X , Y , enter
docker-compose up -d

6.3 Omnibridge-alm

cd
cd testnet-public-tools/omnibridge-alm/
cp .env.testnet .env

COMMON_FOREIGN_RPC_URL replace https://rpc.ankr.com/eth_rinkeby

#Save changes ctrl X , Y , enter
docker-compose up -d