Терминология Голоса: типы нод
На данный момент на Голосе толком нет общепризнанной терминологии, раздел Терминология на wiki пустой.
Из-за этого возникают казусы типа такого. Делегат @yudina-cat считает, что seed-нода - это публично доступная нода со включенным API, которая предназначена для использования разработчиками. Я же считаю, что данная трактовка термина seed node является ошибочной, и вот почему:
В конфиге golosd есть параметр seed-node. Обрабатывается он в libraries/app/application.cpp. Изучив исходный код, становится понятно, что в этом параметре указываются имена/адреса узлов, к которым golosd осуществляет подключения для осуществления операций с блокчейном, а вовсе не для взаимодействия с API. Подключение к seed-нодам необходимо при первом запуске golosd, чтобы начать синхронизацию блокчейна и узнать адреса других доступных нод.
Определение seed-node
Таким образом, определение seed node должно быть примерно таким:
seed-нода - это нода, обеспечивающая хранение блокчейна и его "сидирование", т.е. отдачу всей истории блоков клиенту, а так же приём и распространение транзакций в сети. seed-нода должна иметь возможность приёма соединений, т.е. быть доступной по белому IP-адресу.
Прочие типы нод
Помимо seed, считаю нужным зафиксировать на wiki и другие типы ноды:
API-нода
Нода со включенными public-api, основной задачей которой является обслуживание клиентских приложений через API.
public-api = database_api login_api market_history_api tags_api follow_api
enable-plugin = witness account_history follow market_history private_message tags
witness-нода
Нода, обеспечивающая работу делегата сети Голос. Характеризуется включенным плагином witness, указанным именем делегата и его приватного ключа:
enable-plugin = witness
witness = "foo"
private-key = WIF PRIVATE KEY
miner-нода
Нода, обеспечивающая работу pow-майнера и одноимённого делегата.
enable-plugin = witness
witness = "foo"
miner = ["foo", "WIF PRIVATE KEY"]
Что дальше
Если нет возражений, разработчики аппрувят, я подготовлю Pull Request в wiki.
Update
- Pull request запилен: https://github.com/GolosChain/wiki/pull/22
- Статья Роли нод в моём форке wiki
P.S.
Вы можете проголосовать за делегата vvk сами знаете где.