Gonka GitHub Mirror · Discussion #1116

Практическое руководство: Создайте и подайте предложение по управлению на Gonka

Отдельная страница дискуссии с русским переводом и параллельным режимом RU / Original с точным сопоставлением предложений.

Как пользоваться: включите RU / Original и кликните по предложению — соответствующее предложение в другой колонке доскроллится и подсветится.
Discussion #1116

Практическое руководство: Создайте и подайте предложение по управлению на Gonka

Оригинал: HOW-TO: Create and Submit a Governance Proposal on Gonka

paranjko avatar
paranjkoАвтор
2026-04-24

За последние несколько недель я потратил немало времени, помогая людям с предложениями по управлению, поэтому составил руководство, которое может оказаться полезным, если вы готовите его самостоятельно.

Он уже использовался для нескольких успешных предложений, поэтому процесс проверен на практике.

Примечание. В этом руководстве рассматривается техническая часть создания и подачи предложения. Чтобы предложение было принято, вам также необходимо четко сообщить о нем и заручиться поддержкой.

Рассмотрите возможность публикации полного описания предложения на GitHub, поделитесь им с сообществом и обсудите его с участниками в Discord и других соответствующих каналах до и во время периода голосования.

Как создать и подать предложение по управлению на Gonka

Пошаговое руководство по отправке и голосованию с использованием выведенных файлов . Соответствует Gonka — Транзакции и управление (https://gonka.ai/transactions-and-governance/). Перед запуском команд замените каждый заполнитель собственными значениями.

1. Заполнители и экспорт оболочки

Запустите один раз за сеанс терминала (отредактируйте правые части):

экспорт GONKA_RPC= " <PUBLIC_RPC> " экспорт GONKA_API = " <PUBLIC_HTTP_API> " экспорт CHAIN_ID = " <CHAIN_ID> " экспорт ACCOUNT_NAME = " <KEY_NAME> "

Все последующие команды предполагают, что эти переменные установлены. Если команда завершается неудачей с «соединением» или «анализом», убедитесь, что GONKA_RPC заканчивается ровно одним /chain-rpc/ .

2. Два URL-адреса (не смешивайте их)

Использование $GONKA_RPC для --node-address в create-client неверно и приведет к сбою или обращению не к той службе.

3. Предварительные условия

3.1 Установите интерфейс командной строки

Загрузите сборку для своей ОС с релизов Gonka (https://github.com/gonka-ai/gonka/releases), распакуйте, затем:

chmod +x выведено ./inferenced --help

В macOS, если Gatekeeper блокирует двоичный файл: «Настройки системы» → «Конфиденциальность и безопасность» → «Все равно открыть».

3.2 Чтение min_deposit и voice_ period из цепочки

Не полагайтесь на фиксированную сумму ngonka из старых документов — запросите текущие значения:

./выведенные параметры запроса gov \ --node " $GONKA_RPC " \ --chain-id " $CHAIN_ID " \ -o json | jq ' {min_deposit: .params.min_deposit, voice_ period: .params.voting_ period} '

Депозит вашего предложения в формате JSON должен соответствовать min_deposit (тот же номинал, сумма ≥ минимума).

3.3 Предложение JSON

Подготовьте JSON gov v1 (сообщения, метаданные, депозит, заголовок, резюме).

Подготовка состоит из двух основных частей:

  • Поля описания предложения. Текст в цепочке должен быть кратким и понятным. Убедитесь, что предложение включает в себя: краткое изложение сути предложения; ссылка на полное описание предложения со всеми подробностями; адрес кошелька, на который следует отправить средства, если предложение требует финансирования; запрошенную сумму и номинал, если предложение требует финансирования.

Поля описания предложения

Текст в цепочке должен быть коротким и понятным.

Убедитесь, что предложение включает в себя:

  • краткое изложение сути предложения;
  • ссылка на полное описание предложения со всеми подробностями;
  • адрес кошелька, на который следует отправить средства, если предложение требует финансирования;
  • запрошенную сумму и номинал, если предложение требует финансирования.
  • Структура JSON предложения. Для структуры JSON лучше всего просмотреть предыдущие предложения и использовать их в качестве ссылок. Вы можете просмотреть JSON предыдущих предложений здесь (http://node1.gonka.ai:8000/dashboard/gonka/gov), чтобы увидеть, как структурированы различные типы предложений. Во многих случаях проще начать с аналогичного предыдущего предложения и адаптировать его к своему собственному предложению.

JSON-структура предложения

Для структуры JSON лучший подход — просмотреть предыдущие предложения и использовать их в качестве ссылок.

Вы можете просмотреть JSON предыдущих предложений здесь (http://node1.gonka.ai:8000/dashboard/gonka/gov), чтобы увидеть, как структурированы различные типы предложений.

Во многих случаях проще начать с аналогичного предыдущего предложения и адаптировать его к своему собственному предложению.

Для таких сообщений, как MsgUpdateParams, цепочка ожидает полный объект параметров и правильные полномочия (адрес модуля gov). Получите адрес модуля gov:

./выведенный запрос модуля-аккаунта аутентификации \ --node " $GONKA_RPC " \ --chain-id " $CHAIN_ID " \ -o json | jq -r '.accounts[] | select(.value.name=="gov") | .value.адрес '

Используйте этот адрес в качестве полномочий, если этого требует тип сообщения.

Если строка jq ничего не выводит, запустите тот же запрос без jq один раз и найдите запись модуля gov вручную. Форма вывода может незначительно отличаться в зависимости от версии SDK.

3.4 Необязательно: новый ключ + регистрация участника (create-client)

При этом создается ключ и вызывается исходный HTTP API (регистрация участника). Используйте только $GONKA_API:

./inferenced create-client " $ACCOUNT_NAME " \ --node-address " $GONKA_API "

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

Используйте везде один и тот же --keyring-backend (например, file) для показа ключей, предложения tx gov submit-proposal и голосования tx gov.

4. Опубликуйте предложение в сети

4.1 Проверить баланс

./выведенные банковские балансы запроса \ " $( ./выведенные ключи показывают " $ACCOUNT_NAME " -a --keyring-backend file ) " \ --node " $GONKA_RPC " \ --chain-id " $CHAIN_ID "

Убедитесь, что у вас достаточно ngonka (или номинала комиссии, ожидаемого вашим узлом) для min_deposit и комиссий.

4.2 Отправить

Рекомендуемый шаблон из официального документа Gonka:

./inferenced tx gov submit-proposal " <PATH_TO_PROPOSAL_JSON>" \ --from " $ACCOUNT_NAME " \ --keyring-backend file \ --chain-id " $CHAIN_ID " \ --node " $GONKA_RPC " \ --unordered --timeout-duration=60s \ --gas 2000000 --gas-adjustment 5.0 \ --yes

После подачи запишите номер предложения из выходных данных или найдите его здесь (http://node1.gonka.ai:8000/dashboard/gonka/gov).

Поделитесь номером предложения, чтобы можно было опубликовать объявление сообщества.

5. Голосование (после начала голосования)

5.1 Прочитайте предложение в сети

./выведенный запрос правительственное предложение " $PROPOSAL_ID " \ --node " $GONKA_RPC " \ --chain-id " $CHAIN_ID " \ -o json

Перед голосованием подтвердите статус, заголовок, сводку, сообщения и время голосования.

5.2 Необязательно: подсчитайте на данный момент

./выведенный запрос gov tally " $PROPOSAL_ID" \ --node " $GONKA_RPC " \ --chain-id " $CHAIN_ID " \ -o json

Используйте $GONKA_RPC как есть — не добавляйте /chain-rpc/ снова.

5.3 Проголосовать

Замените yes на no, abstain или no_with_veto, если вы намерены голосовать таким образом:

./inferenced tx gov voice " $PROPOSAL_ID " да \ --from " $ACCOUNT_NAME " \ --keyring-backend file \ --chain-id " $CHAIN_ID " \ --node " $GONKA_RPC " \ --unordered --timeout-duration=60s \ --gas 2000000 --gas-adjustment 5.0 \ --yes

Вы можете изменить свой голос, отправив еще один голос до окончания периода голосования.

Вот и все! Удачи в вашем предложении!

Если у вас есть комментарии, предложения или что-то добавить из собственного опыта, не стесняйтесь поделиться ими. Мы можем продолжать улучшать руководство вместе. И если какая-то часть покажется вам неясной, дайте мне знать.

Русский перевод
paranjko avatar
paranjkoАвтор
2026-04-24

За последние несколько недель я потратил немало времени, помогая людям с предложениями по управлению, поэтому составил руководство, которое может оказаться полезным, если вы готовите его самостоятельно.

Он уже использовался для нескольких успешных предложений, поэтому процесс проверен на практике.

Примечание. В этом руководстве рассматривается техническая часть создания и подачи предложения. Чтобы предложение было принято, вам также необходимо четко сообщить о нем и заручиться поддержкой.

Рассмотрите возможность публикации полного описания предложения на GitHub, поделитесь им с сообществом и обсудите его с участниками в Discord и других соответствующих каналах до и во время периода голосования.

Как создать и подать предложение по управлению на Gonka

Пошаговое руководство по отправке и голосованию с использованием выведенных файлов . Соответствует Gonka — Транзакции и управление (https://gonka.ai/transactions-and-governance/). Перед запуском команд замените каждый заполнитель собственными значениями.

1. Заполнители и экспорт оболочки

Запустите один раз за сеанс терминала (отредактируйте правые части):

экспорт GONKA_RPC= " <PUBLIC_RPC> " экспорт GONKA_API = " <PUBLIC_HTTP_API> " экспорт CHAIN_ID = " <CHAIN_ID> " экспорт ACCOUNT_NAME = " <KEY_NAME> "

Все последующие команды предполагают, что эти переменные установлены. Если команда завершается неудачей с «соединением» или «анализом», убедитесь, что GONKA_RPC заканчивается ровно одним /chain-rpc/ .

2. Два URL-адреса (не смешивайте их)

Использование $GONKA_RPC для --node-address в create-client неверно и приведет к сбою или обращению не к той службе.

3. Предварительные условия

3.1 Установите интерфейс командной строки

Загрузите сборку для своей ОС с релизов Gonka (https://github.com/gonka-ai/gonka/releases), распакуйте, затем:

chmod +x выведено ./inferenced --help

В macOS, если Gatekeeper блокирует двоичный файл: «Настройки системы» → «Конфиденциальность и безопасность» → «Все равно открыть».

3.2 Чтение min_deposit и voice_ period из цепочки

Не полагайтесь на фиксированную сумму ngonka из старых документов — запросите текущие значения:

./выведенные параметры запроса gov \ --node " $GONKA_RPC " \ --chain-id " $CHAIN_ID " \ -o json | jq ' {min_deposit: .params.min_deposit, voice_ period: .params.voting_ period} '

Депозит вашего предложения в формате JSON должен соответствовать min_deposit (тот же номинал, сумма ≥ минимума).

3.3 Предложение JSON

Подготовьте JSON gov v1 (сообщения, метаданные, депозит, заголовок, резюме).

Подготовка состоит из двух основных частей:

  • Поля описания предложения. Текст в цепочке должен быть кратким и понятным. Убедитесь, что предложение включает в себя: краткое изложение сути предложения; ссылка на полное описание предложения со всеми подробностями; адрес кошелька, на который следует отправить средства, если предложение требует финансирования; запрошенную сумму и номинал, если предложение требует финансирования.

Поля описания предложения

Текст в цепочке должен быть коротким и понятным.

Убедитесь, что предложение включает в себя:

  • краткое изложение сути предложения;
  • ссылка на полное описание предложения со всеми подробностями;
  • адрес кошелька, на который следует отправить средства, если предложение требует финансирования;
  • запрошенную сумму и номинал, если предложение требует финансирования.
  • Структура JSON предложения. Для структуры JSON лучше всего просмотреть предыдущие предложения и использовать их в качестве ссылок. Вы можете просмотреть JSON предыдущих предложений здесь (http://node1.gonka.ai:8000/dashboard/gonka/gov), чтобы увидеть, как структурированы различные типы предложений. Во многих случаях проще начать с аналогичного предыдущего предложения и адаптировать его к своему собственному предложению.

JSON-структура предложения

Для структуры JSON лучший подход — просмотреть предыдущие предложения и использовать их в качестве ссылок.

Вы можете просмотреть JSON предыдущих предложений здесь (http://node1.gonka.ai:8000/dashboard/gonka/gov), чтобы увидеть, как структурированы различные типы предложений.

Во многих случаях проще начать с аналогичного предыдущего предложения и адаптировать его к своему собственному предложению.

Для таких сообщений, как MsgUpdateParams, цепочка ожидает полный объект параметров и правильные полномочия (адрес модуля gov). Получите адрес модуля gov:

./выведенный запрос модуля-аккаунта аутентификации \ --node " $GONKA_RPC " \ --chain-id " $CHAIN_ID " \ -o json | jq -r '.accounts[] | select(.value.name=="gov") | .value.адрес '

Используйте этот адрес в качестве полномочий, если этого требует тип сообщения.

Если строка jq ничего не выводит, запустите тот же запрос без jq один раз и найдите запись модуля gov вручную. Форма вывода может незначительно отличаться в зависимости от версии SDK.

3.4 Необязательно: новый ключ + регистрация участника (create-client)

При этом создается ключ и вызывается исходный HTTP API (регистрация участника). Используйте только $GONKA_API:

./inferenced create-client " $ACCOUNT_NAME " \ --node-address " $GONKA_API "

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

Используйте везде один и тот же --keyring-backend (например, file) для показа ключей, предложения tx gov submit-proposal и голосования tx gov.

4. Опубликуйте предложение в сети

4.1 Проверить баланс

./выведенные банковские балансы запроса \ " $( ./выведенные ключи показывают " $ACCOUNT_NAME " -a --keyring-backend file ) " \ --node " $GONKA_RPC " \ --chain-id " $CHAIN_ID "

Убедитесь, что у вас достаточно ngonka (или номинала комиссии, ожидаемого вашим узлом) для min_deposit и комиссий.

4.2 Отправить

Рекомендуемый шаблон из официального документа Gonka:

./inferenced tx gov submit-proposal " <PATH_TO_PROPOSAL_JSON>" \ --from " $ACCOUNT_NAME " \ --keyring-backend file \ --chain-id " $CHAIN_ID " \ --node " $GONKA_RPC " \ --unordered --timeout-duration=60s \ --gas 2000000 --gas-adjustment 5.0 \ --yes

После подачи запишите номер предложения из выходных данных или найдите его здесь (http://node1.gonka.ai:8000/dashboard/gonka/gov).

Поделитесь номером предложения, чтобы можно было опубликовать объявление сообщества.

5. Голосование (после начала голосования)

5.1 Прочитайте предложение в сети

./выведенный запрос правительственное предложение " $PROPOSAL_ID " \ --node " $GONKA_RPC " \ --chain-id " $CHAIN_ID " \ -o json

Перед голосованием подтвердите статус, заголовок, сводку, сообщения и время голосования.

5.2 Необязательно: подсчитайте на данный момент

./выведенный запрос gov tally " $PROPOSAL_ID" \ --node " $GONKA_RPC " \ --chain-id " $CHAIN_ID " \ -o json

Используйте $GONKA_RPC как есть — не добавляйте /chain-rpc/ снова.

5.3 Проголосовать

Замените yes на no, abstain или no_with_veto, если вы намерены голосовать таким образом:

./inferenced tx gov voice " $PROPOSAL_ID " да \ --from " $ACCOUNT_NAME " \ --keyring-backend file \ --chain-id " $CHAIN_ID " \ --node " $GONKA_RPC " \ --unordered --timeout-duration=60s \ --gas 2000000 --gas-adjustment 5.0 \ --yes

Вы можете изменить свой голос, отправив еще один голос до окончания периода голосования.

Вот и все! Удачи в вашем предложении!

Если у вас есть комментарии, предложения или что-то добавить из собственного опыта, не стесняйтесь поделиться ими. Мы можем продолжать улучшать руководство вместе. И если какая-то часть покажется вам неясной, дайте мне знать.

Оригинал
paranjko avatar
paranjkoАвтор
2026-04-24

Over the past few weeks, I’ve spent quite a bit of time helping people with governance proposals, so I put together a guide that may be useful if you’re preparing one yourself.

It has already been used for several successful proposals, so the process is tested in practice.

Note: this guide covers the technical part of creating and submitting a proposal. For a proposal to pass, you also need to communicate it clearly and build support around it.

Consider publishing the full proposal description on GitHub, sharing it with the community, and discussing it with participants on Discord and other relevant channels before and during the voting period.

How to Create and Submit a Governance Proposal on Gonka

Step-by-step for submitting and voting with inferenced . Aligned with Gonka — Transactions & Governance (https://gonka.ai/transactions-and-governance/) . Replace every placeholder with your own values before running commands.

1. Placeholders and shell exports

Run once per terminal session (edit the right-hand sides):

export GONKA_RPC= " <PUBLIC_RPC> " export GONKA_API= " <PUBLIC_HTTP_API> " export CHAIN_ID= " <CHAIN_ID> " export ACCOUNT_NAME= " <KEY_NAME> "

All later commands assume these variables are set. If a command fails with “connection” or “parse”, check that GONKA_RPC ends with exactly one /chain-rpc/ .

2. Two URLs (do not mix them)

Using $GONKA_RPC for --node-address in create-client is incorrect and will fail or hit the wrong service.

3. Prerequisites

3.1 Install CLI

Download a build for your OS from Gonka releases (https://github.com/gonka-ai/gonka/releases) , unpack, then:

chmod +x inferenced ./inferenced --help

On macOS, if Gatekeeper blocks the binary: System Settings → Privacy & Security → Open Anyway .

3.2 Read min_deposit and voting_period from the chain

Do not rely on a fixed ngonka amount from old docs—query the live values:

./inferenced query gov params \ --node " $GONKA_RPC " \ --chain-id " $CHAIN_ID " \ -o json | jq ' {min_deposit: .params.min_deposit, voting_period: .params.voting_period} '

Your proposal JSON’s deposit must satisfy min_deposit (same denom, amount ≥ minimum).

3.3 Proposal JSON

Prepare a gov v1 JSON ( messages , metadata , deposit , title , summary ).

There are two main parts to prepare:

  • Proposal description fields Keep the on-chain text short and clear. Make sure the proposal includes: a short summary of what the proposal is about; a link to the full proposal description with all details; the wallet address where the funds should be sent, if the proposal requests funding; the requested amount and denom, if the proposal requests funding.

Proposal description fields

Keep the on-chain text short and clear.

Make sure the proposal includes:

  • a short summary of what the proposal is about;
  • a link to the full proposal description with all details;
  • the wallet address where the funds should be sent, if the proposal requests funding;
  • the requested amount and denom, if the proposal requests funding.
  • Proposal JSON structure For the JSON structure, the best approach is to look at previous proposals and use them as references. You can inspect previous proposal JSONs here (http://node1.gonka.ai:8000/dashboard/gonka/gov) to see how different proposal types are structured. In many cases, it is easier to start from a similar previous proposal and adapt it to your own proposal.

Proposal JSON structure

For the JSON structure, the best approach is to look at previous proposals and use them as references.

You can inspect previous proposal JSONs here (http://node1.gonka.ai:8000/dashboard/gonka/gov) to see how different proposal types are structured.

In many cases, it is easier to start from a similar previous proposal and adapt it to your own proposal.

For messages such as MsgUpdateParams , the chain expects the full params object and correct authority (gov module address). Fetch the gov module address:

./inferenced query auth module-accounts \ --node " $GONKA_RPC " \ --chain-id " $CHAIN_ID " \ -o json | jq -r ' .accounts[] | select(.value.name=="gov") | .value.address '

Use that address as authority where the message type requires it.

If the jq line prints nothing, run the same query without jq once and locate the gov module entry manually. The output shape can differ slightly by SDK version.

3.4 Optional: new key + register participant ( create-client )

This creates a key and calls the seed HTTP API (participant registration). Use $GONKA_API only :

./inferenced create-client " $ACCOUNT_NAME " \ --node-address " $GONKA_API "

Store the mnemonic safely. If you already have a funded key for governance, skip this and avoid double registration.

Use the same --keyring-backend everywhere (e.g. file ) for keys show , tx gov submit-proposal , and tx gov vote .

4. Publish the proposal on-chain

4.1 Check balance

./inferenced query bank balances \ " $( ./inferenced keys show " $ACCOUNT_NAME " -a --keyring-backend file ) " \ --node " $GONKA_RPC " \ --chain-id " $CHAIN_ID "

Ensure you have enough ngonka (or the fee denom your node expects) for min_deposit and fees.

4.2 Submit

Recommended pattern from the official Gonka doc:

./inferenced tx gov submit-proposal " <PATH_TO_PROPOSAL_JSON> " \ --from " $ACCOUNT_NAME " \ --keyring-backend file \ --chain-id " $CHAIN_ID " \ --node " $GONKA_RPC " \ --unordered --timeout-duration=60s \ --gas 2000000 --gas-adjustment 5.0 \ --yes

After submission, note the proposal number from the output or find it here (http://node1.gonka.ai:8000/dashboard/gonka/gov) .

Share the proposal number so the community announcement can go out.

5. Vote (after voting has started)

5.1 Read the proposal on-chain

./inferenced query gov proposal " $PROPOSAL_ID " \ --node " $GONKA_RPC " \ --chain-id " $CHAIN_ID " \ -o json

Confirm status , title , summary , messages , and voting times before voting.

5.2 Optional: tally so far

./inferenced query gov tally " $PROPOSAL_ID " \ --node " $GONKA_RPC " \ --chain-id " $CHAIN_ID " \ -o json

Use $GONKA_RPC as-is—do not append /chain-rpc/ again.

5.3 Cast a vote

Replace yes with no , abstain , or no_with_veto if you intend to vote that way:

./inferenced tx gov vote " $PROPOSAL_ID " yes \ --from " $ACCOUNT_NAME " \ --keyring-backend file \ --chain-id " $CHAIN_ID " \ --node " $GONKA_RPC " \ --unordered --timeout-duration=60s \ --gas 2000000 --gas-adjustment 5.0 \ --yes

You may change your vote by sending another vote before the voting period ends.

That’s it! Good luck with your proposal!

If you have comments, suggestions, or anything to add from your own experience, feel free to share them. We can keep improving the guide together. And if any part feels unclear, let me know as well.