Узгодженість в конфігурації публічних "Повних нод" EOS

Оригінал: 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 буде використовувати, щоб відповідати запропонованому стандарту.


Редагування / Зміни


Драфт

* Plugins required
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] (https://github.com/EOSIO/eos/issues/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

Sign In or Register to comment.