# Генезис транзакция валидатора
Перед тем, как приступить к генерации транзакции по декларированию валидатора вам понадобиться аккаунт, который будет подписывать транзакцию в консольном клиенте. Для этого требуется либо создать новый аккаунт со случайно сгенерированным мнемоником и с именем ACCOUNT_NAME, командой
deccli keys add ACCOUNT_NAME
, например
deccli keys add node-owner
, либо восстановить аккаунт с именем ACCOUNT_NAME из уже существующего мнемоника, командой
deccli keys add ACCOUNT_NAME --recover
например,
deccli keys add node-owner --recover
Теперь для формирования транзакции по декларированию валидатора в генезис файле в консольном клиенте требуется выполнить следующую команду:
decd gen-declare-candidate-tx
, в результате исполнения которой сформируется подписанная транзакция в виде JSON объекта, который далее будет включен в файл genesis.json.*
В команде требуется указать несколько флагов:
decd gen-declare-candidate-tx \
--sequence 0 \
--chain-id "decimal-mainnet-07-23-20-55" \
--amount "1500000000000000000000000del" \
--pubkey "dxvalconspub1zcjduepqny2jlxtkpy5cuudu79lkjfqrmaseqdkd7njdt0a4n8zflg57jflsg60x9h" \
--commission-rate "0.1275" \
--reward-addr "dx1mtlnpmwf8zr6pek6gq25nv45x2890sne2ap0cc" \
--moniker "My local test validator" \
--website "myvalidator.com" \
--identity "6A0D65E29A4CBC8E" \
--security-contact "email: [email protected]" \
--details "The best validator ever" \
--node-id "$(decd tendermint show-node-id)" \
--name node-owner \
2
3
4
5
6
7
8
9
10
11
12
13
14
, где :
- sequence - всегда равен 0
- chain-id - актуальный идентификатор chain-id тестовой или рабочей сети
- amount - стейк валидатора в соответствующем формате, в данном случае стейк равен 1 500 000 DEL
- pubkey - здесь указывается публичный ключ вашей развёрнутой ноды. Воспользуйтесь коммандой 'decd tendermint show-validator' чтобы получить этот ключ.
- commission-rate - размер комиссии, которую берёт валидатор с вознаграждений делегированных ему монет, в данном случае комиссия составляет 12,75%
- reward-addr - адрес, на который будет начисляться вознаграждение за работу валидатора. Если данная строка отсутствует либо адрес не указан, то вознаграждение будет начисляться на адрес, с которого производится декларирование кандидата
- moniker - название валидатора, которое будет отображаться в сервисах Decimal
- website - веб сайт валидатора, параметр необязательный
- identity - идентификатор валидатора в системах Keybase или UPort для отображения аватара, например, для Keybase это строка из 16 символов
- security-contact - контактные данные валидатора по вопросам безопасности
- details - дополнительное текстовое описание валидатора, опционально
- node-id - идентификатор развёрнутой ноды. Если декларирование делается непосредственно с декларируемой ноды, то можно найти его непосредственно в файле node_info.json либо воспользоваться командой decd tendermint show-node-id. Если же декларирование происходит с другой ноды, то нужно найти идентификатор ноды в файле декларируемой ноды
- name - имя аккаунта, который подписывает транзакцию. Мы его создавали/восстанавливали выше, командой
deccli keys add
Результат исполнения вышеописанной команды будет выглядеть вот так (с поправкой на актуальные данные):
{
"type": "cosmos-sdk/StdTx",
"value": {
"msg": [
{
"type": "validator/declare_candidate",
"value": {
"commission": "0.127500000000000000",
"validator_addr": "dxvaloper1tvqxh4x7pedyqpzqp9tdf068k4q9j2hmddu9z5",
"reward_addr": "dx1mtlnpmwf8zr6pek6gq25nv45x2890sne2ap0cc",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "mRUvmXYJKY5xvPF/aSQD32GQNs305NW/tZnEn6Kekn8="
},
"stake": {
"denom": "del",
"amount": "1500000000000000000000000"
},
"description": {
"moniker": "My local test validator",
"identity": "6A0D65E29A4CBC8E",
"website": "myvalidator.com",
"security_contact": "email: [email protected]",
"details": "The best validator ever"
}
}
}
],
"fee": {
"amount": [],
"gas": "200000"
},
"signatures": [
{
"pub_key": {
"type": "tendermint/PubKeySecp256k1",
"value": "At2s2CHimonx45uDImfnbTI6Xo2qZJ/Tye0+AioQ38uO"
},
"signature": "xRROS9sw3IaDdfcrOQtXzEh17thcGoZkZ6DsSZecgekexNXiVOJvPpbnzVAuMP6De3WxJxoKrW+pbBRbz3LFFg=="
}
],
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43