Согласованность в конфигурации публичных “Полных нод” EOS

in #eos6 years ago (edited)

Оригинал: https://steemit.com/eos/@greymass/consistency-in-configuration-of-public-eos-full-nodes

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

Один из способов, через который блок-продюсеры могут осуществлять свою работу - это предоставление того, что обычно называют «конечной точкой API» или «полным нодом». Это общедоступные ресурсы разворачиваются публично, чтобы обеспечить доступ к информации на EOS блокчейне. Эти конечные точки затем используются разработчиками для создания сайтов и приложений, которые взаимодействуют с основными EOS-протоколами.

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

Определение полной ноды

В контексте многих других блокчейнов, «полная нода» имеет простое значение - «все плагины». Вполне вероятно, что такой ответ дадут большинство блок-продюсеров, если вы спросите, как они планируют развертывать свои полные ноды. Это в значительной мере связано с тем, что спрос на доступ к этим ресурсам EOS является очень низким на сегодня, и сама экосистема только начинает разрастаться.

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

Этот стандарт не будет связан с сетью или конфигурацией оборудования, а скорее с тем, как настроить плагин истории аккаунта.

История аккаунта

В системе с конфигурируемыми смарт-контрактами объем плагина истории аккаунта может быть огромным. Block.one предвидел это и дал операторам нодов инструмент для решения этой проблемы, --filter-on, а затем плагин истории аккаунта был отключен по умолчанию.

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

Чтобы предотвратить подобные ситуации, необходима минимальная конфигурация, которая обеспечит согласованность.

Фундаментальные системные обязательства

В основе описанной ниже конфигурации, лежит предположение, что следующие контракты имеют огромный вес для работы сети. Каждый из этих контрактов должен поддерживаться вместе с полной историей для каждого аккаунта. Касательно индексации, здесь может быть место для блокировки неких «плохих актеров», но аккаунты должны быть включены по умолчанию.

Список контрактов:

  • eosio - Системный контракт.
  • eosio.token - EOS токен контракт.
  • eosio.msig - Multisig контракт.
  • ... (здесь могут быть ваши предложения)

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

Соответствующие параметры nodeos

Ниже приведен пример config.ini, который оператор nodeos будет использовать, чтобы соответствовать предлагаемому стандарту.


Редактирование/Изменения


Драфт

plugin = eosio::chain_plugin
plugin = eosio::chain_api_plugin
plugin = eosio::history_plugin
plugin = eosio::history_api_plugin

# History of EOS token transfers
filter-on = eosio.token:transfer: 

# Creation of tokens
filter-on = eosio.token:issue: 
filter-on = eosio.token:create: 

# History of multisig transactions
filter-on = eosio.msig:propose:
filter-on = eosio.msig:approve:
filter-on = eosio.msig:unapprove:
filter-on = eosio.msig:cancel:
filter-on = eosio.msig:exec:

# System Contract Operations
filter-on = eosio:newaccount:
filter-on = eosio:updateauth:
filter-on = eosio:deleteauth:
filter-on = eosio:linkauth:
filter-on = eosio:unlinkauth:
filter-on = eosio:canceldelay:
filter-on = eosio:onerror:
filter-on = eosio:buyrambytes:
filter-on = eosio:buyram:
filter-on = eosio:sellram:
filter-on = eosio:delegatebw:
filter-on = eosio:undelegatebw:
filter-on = eosio:refund:
filter-on = eosio:regproducer:
filter-on = eosio:setram:
filter-on = eosio:bidname:
filter-on = eosio:unregprod:
filter-on = eosio:regproxy:
filter-on = eosio:voteproducer:
filter-on = eosio:claimrewards:
filter-on = eosio:setpriv:
filter-on = eosio:rmvproducer:
filter-on = eosio:setalimits:
filter-on = eosio:setglimits:
filter-on = eosio:setprods:
filter-on = eosio:reqauth:
filter-on = eosio:setparams:

QoL изменения для filter-on

Эта конфигурация довольно большая, но мы запустили issue/4068 на GitHub, чтобы упростить параметры конфигурации, связанные с filter-on.

Попробуйте это

У нас эта конфигурация работает на полном ноде, который доступен здесь:

https://eos.greymass.com

Попробуйте и посмотрите историю своего аккаунта.

./cleos -u https://eos.greymass.com получить действия your_account_name

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

./cleos -u https://eos.greymass.com получить действия teamgreymass

Вложения и помощь в формализации

Эта конфигурация плагина истории аккаунтов является примером того, как стандарт должен выглядеть в конечном итоге. Кто-то может говорить о добавлении большего количества контрактов или удалении других - очень важно не допускать этого. Мы надеемся, что подобные аргументы не будут больше использоваться.

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

Перевод CryptoLions

photo_122x122.jpg

Website

Telegram

Steemit

Twitter

GitHub

Meetup

Sort:  

Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
http://psyfactor.org/lib/tornov3.htm