FAQ для валидаторов Artery Blockchain

Artery Network
12 min readApr 26, 2021

Специалисты технической поддержки Artery собрали наиболее частые вопросы о работе валидаторов, и совместно с разработчиками подготовили данный FAQ.

1. Какая очередность подписания блоков? Почему я долго не получаю блоки?

По поводу очередности подписания. В блокчейн после обновления 1.3 мы задумали следующее — 200 “основных” мест и 20 “дополнительных”.

Почему так и что они значат.

Во-первых, количество валидаторов — ограничение техническое — архитектура Cosmos SDK и Tendermint такова, что в каждый блок 1 валидатор выдвигает содержимое блока, а остальные проверяют его и подтверждают, либо отвергают (это называется раунд голосования). Тот, кто предложил блок, с которым все согласились, получает за это вознаграждение в размере комиссии за блок. Чтобы блок был принят, 2/3 валидаторов (не по количеству, а по силе, чуть ниже поясним) из активных должны с ним согласиться. На это выделяется определенное время. Все валидаторы, которые не уложились в это время, получают предупреждение (не штраф!). Чем больше валидаторов должны подтвердить блок, тем выше вероятность того, что у кого-то из них возникнут проблемы, и они не успеют сделать это в отведенное время. И тогда блок придется обрабатывать повторно и так возможно до бесконечности, каждый раз увеличивая время отведенное на “голосование”. Отсюда и ограничение в количестве тех, кто одновременно должен подтверждать содержимое блока. Ограничения эти получены математически и экспериментально.

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

Задача валидаторов поддерживать стабильность и целостность сети — т.е. чтобы отказ ее части не привел к остановке или потере данных. Поэтому мы выделили 200 мест на наиболее стабильные машины; критерий стабильности на текущий момент — количество пропущенных голосований. Чем больше голосований пропущено, тем хуже считается стабильность работы валидатора. И соответственно тем дальше он выдвигается из основной группы. Дальше, если по количеству пропусков валидаторы равны, учитывается сила валидатора и количество не пропущенных голосований подряд.

Сила — это коэффициент определяемый стейком. В 1.3 те, кто имеет стейк 10–100К монет, получают силу 10, а кто имеет стейк 100К+, получают силу 15 (т.е. соотношение 2 к 3).

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

В дополнительной группе валидатор находится пока не предложит блок или не пропустит раунд голосования.

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

Хочется отметить — блокчейн ранжирует ноды на основании алгоритма описанного в White Paper. Ни поддержка, ни разработчики на текущую очередь повлиять не могут.

Дополнение по Artery Network 2.0:
В обновлении 2.0 активирован обновленный механизм ранжирования валидаторов. Это изменение крупное и достаточное серьезное — оно повышает безопасность блокчейн и его надежность.

Данный механизм работает следующим образом:
В Artery Blockchain 2.0 предполагает одновременный учет количества пропущенных блоков (предупреждений), количества подписанных блоков подряд и командного стейка путем начисления баллов за каждый критерий и их последующего суммирования.

Система баллов следующая:
* стейк учитывается как логарифм от суммы, к примеру:
- 10 000+ 23 балла
- 26 489,122 130+ 24 балла
- 72 004,899 338+ 25 баллов
- 195 729,609 429+ 26 баллов
… и так далее

* за каждый пропущенный блок (предупреждение) минус 1 балл
* за каждые 100 подписанных блоков подряд +1 балл

Поскольку теперь учитывается стейк в приоритете валидаторов (т.е. способ определять, кто попадет в активный сет, а кто нет). А также voting power привязан не к стейку напрямую (как в v1.3), а к позиции валидатора в рейтинге.

Соответственно, сейчас верхние 25% основной группы имеют voting power 15, следующие 25% voting power 12, еще 25% — 11, оставшиеся — 10, дополнительная группа — 8.

Количество ступенек и значения силы валидаторов вынесены на голосование лидерского совета

2. Как попасть в основные места? Как попасть в дополнительные места?

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

В дополнительной группе валидаторы чередуются по очереди. Они находятся в группе пока не подпишут блок либо не пропустят раунд голосования. При этом с точки зрения консенсуса они равны между собой — и тот кто в 20 дополнительных и тот кто в основной группе, получат блок в равной мере среди валидаторов с такой же силой. Т.е. те, у кого стейк 10–100К, равны между собой, независимо от того, в какую группу они попали. Если в дополнительной группе валидатор пропускает раунд голосования, то он попадает фактически в конец очереди.

3. Что такое штрафы?

Штраф за валидацию — это приостановка участия в основной и дополнительной группе на 120 блоков. Фактически защищает валидатора от сильного падения рейтинга, т.к. штраф дается за два пропуска голосования подряд (два предупреждения, см. п.6), что говорит о том, что у валидатора проблемы. И таким образом он исключается из активных, чтобы мог устранить ошибку и не получить большого количества предупреждений за пропущенные голосования т.к. это привело бы к сильному падению рейтинга. Также штраф повышает стабильность сети — т.к. исключает проблемного валидатора из голосования (много нерабочих валидаторов приведут к краху консенсуса и остановке блокчейн).

4. Как узнать в какой я группе — основной, дополнительно или в очереди?

По текущему интерфейсу валидации вы этого посмотреть не можете. Сейчас мы усиленно дорабатываем интерфейс вкладки Artery Node в десктопном приложении Artery Network — там будет показываться, в какую группу вы вошли, как вы соединяетесь с сетью, текущая версия блокчейн и еще некоторая информация. Данная информация поможет в определении причин сбоев и ошибок при обращении в поддержку.

5. Что такое консенсус и почему он важен?

Консенсус в блокчейн — это процесс достижения соглашения всеми участниками о том, какие изменения данных признать правомерными и принять, а какие считать ошибочными и отклонить. Он необходим для того, чтобы много нод, распределенных в сети, могли провести идентичные изменения данных. Чтобы все балансы, статусы и прочая информация в системе была одинакова. В нашем блокчейн для достижения консенсуса необходимо, чтобы с изменениями согласилось более 2/3 валидаторов по силе (см. п.1). Если консенсуса достичь не удастся — дальнейшая работа системы станет невозможна, т.к. не будет понимания какие данные правильные. Поэтому быстрые и надежные валидаторы очень важны — если они не будут успевать обрабатывать данные, то не смогут договорится за адекватное время. А если треть валидаторов неожиданно отключится от сети, консенсуса достичь не удастся, потому что голосов оставшихся будет недостаточно для принятия решения. Изменение состава валидаторов — это такое же изменение данных, которое также требует согласования и достижения консенсуса, поэтому если консенсус не достигнут из-за неявки большого количества валидаторов, заменить их другими не получится. Поэтому так важны стабильные валидаторы и такие жесткие меры по их отбору.

6. Что такое пропуски голосования (предупреждения) и за что они начисляются?

Процесс достижение консенсуса валидаторами предполагает, что каждый блок 1 валидатор предлагает содержимое (какие транзакции войдут в блок), а остальные проверяют его и либо подтверждают, либо отвергают (это называется раунд голосования). Чтобы блок был принят, 2/3 валидаторов по силе (см. п.1) из активных должны с ним согласиться. На это выделяется определенное время. Все валидаторы, которые не уложились в это время, получают предупреждение за пропуск голосования. Два таких предупреждения подряд (т.е. отсутствие подписи валидатора два блока подряд) приводят к отключению валидатора на 120 блоков (“штрафу”).

7. Какие требования к оборудованию?

Минимальные требования, которые предъявляет к своим узлам Cosmos SDK, нам не подходят, т.к. у нас сложная реферальная система встроена в блокчейн. Именно в сам блокчейн — и это почти уникальный опыт. Она очень требовательна к ресурсам, поэтому валидаторы требуются достаточно мощные.

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

Желательно процессор с хорошей производительностью отдельных ядер, т.к. основной объем вычислений выполняется одним ядром, без параллелизации. Количество ядер также важно, но во вторую очередь: дополнительные ядра принимают на себя работу по обмену данными между нодами, а обмен этот сейчас идет очень активно.

Оперативная память — зависит от ОС. Для Windows — не менее 8ГБ. Для unix / mac — не менее 4ГБ

Диск — только SSD (производительности HDD недостаточно)

Решения с HDD + кэширующий SSD показали себя не очень хорошо, т.к. запись на диск при обработке транзакций в блокчейн идет очень интенсивно, и кэша оказывается недостаточно.

8. Публичный (внешний, статичный, “белый”) IP, зачем?

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

Публичный IP — обязательное техническое требования для сервера (в нашем случае ноды-валидатора), так как без публичного IP невозможно установить входящего соединение с сервером и выполнить обмен данными через интернет.

Можно также почитать в статье что это и зачем нужно:

https://club.dns-shop.ru/blog/t-280-marshrutizatoryi/22654-probros-portov-i-nastroika-routera-dlya-vneshnego-dostupa/ (это статья на стороннем ресурсе об публичном IP и пробросе портов)

Статический IP — это адрес, который провайдер закрепляет за вашим устройством, в отличие от динамического, который назначается случайно на ограниченное время и может произвольно меняться при каждом подключении к интернет или время от времени. Блокчейн учитывает вероятность того, что IP-адрес ноды может измениться, и имеет алгоритм восстановления соединений в этом случае, но процесс восстановления занимает какое-то время, поэтому статический IP более предпочтителен.

9. У меня публичный IP, но приложение его не видит, что делать?

Возможные причины:

1. Если ПК подключается к интернету через роутер, необходимо удостовериться что роутер поддерживает UPnP и он включен. В случае если UPnP не поддерживается или его включение не решает проблему, необходимо вручную настроить проброс портов 26656 и 26657 на ПК. На некоторых роутерах может быть включена блокировка всех входящих соединений ее необходимо отключить.

2. Антивирус или фаервол на ПК блокирует входящие соединения. Необходимо разрешить входящие соединения для приложений Artery Network.

3. Интернет провайдер блокирует входящие соединения. Необходимо отключить блокировку через личный кабинет провайдера.

Если у вас все исправно и проблема остается, напишите нам в техническую поддержку.

10. У меня зависает синхронизация, что делать?

Синхронизация может зависать по различным причинам. И от этого зависит какие действия необходимо предпринять. Чаще всего встречаются следующие ситуации::
- нода теряет связь с сетью (например, она была подключена к другой ноде, и та вышла из сети) (можно попробовать просто перезапустить приложение)
- произошла ошибка интернет соединения и продолжить обмен данными не удается (случае обрыва соединения нода пытается соединиться с другими узлами через увеличивающиеся промежутки времени, если интернета нет долго — промежутки могут стать в несколько часов) (можно попробовать просто перезапустить приложение)
- произошла ошибка записи на диск, и база данных повреждена — в момент записи блока случилась ошибка, и данные не были записаны, либо были записаны некорректно. Причина может быть в аппаратных или программных проблемах на компьютере (например, в работе защитных программ или “глюк” операционной системы) (необходимо перезагрузить базу из сети — верхняя галочка при запуске)
- база данных некорректно загрузилась из сети (необходимо перезагрузить базу из сети — верхняя галочка при запуске)

Мы перерабатываем интерфейс синхронизации, и скоро он будет выводить более подробную информацию об ошибке.

11. У меня периодически пропадает кнопка включения и написано что “условия для валидации не выполнены”, что делать?

Обычно в этот момент также написано что “Связь с блокчейн НЕ установлена”. Причины в том что либо ваша нода потеряла связь с сетью и отстала от основного блокчейн, либо произошел какой-то сбой и она перестала функционировать. Основные причины аналогичны п.10.

12. Как часто выходят блоки?

2 880 блоков в сутки — т.к. блок выходит примерно 1 раз в 30 секунд

120 блоков в час

86 400 блоков в месяц — Artery Network считает что в месяце 30 дней

13. Блоки выходят не равномерно, сроки выплат тоже немного меняются. Почему?

Ранее мы писали что если сеть уходит на второй раунд обработки блока — то время подписания увеличивается. С другой стороны, если раунд проходит быстрее, то время блока может быть менее 30 секунд. Поэтому точное время суток немного плавает. В вайтпейпер все временные интервалы указываются именно в блоках. На текущий момент для Artery Network блок основное измерение происходящих событий.

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

14. У меня написано “валидация запущена на другом устройстве”. Почему? Что делать?

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

15. Почему сразу мы не можем сделать 1000 одновременно работающих валидаторов?

Т.к. они не смогут из-за технических ограничений оставить свои голоса по блоку за приемлемое время (30 секунд).

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

16. Что такое амнистия? Когда она была и что она дает?

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

17. Если у всех будет огромный стейк, значит те у кого маленький стейк никогда не получат блоки?

У стейка 2 градации. 10 и 100К — т.е. от 10 до 100К все равны, и после 100К все равны

18. У меня уменьшается время онлайн, почему так?

Счетчик времени сбрасывается каждый раз, когда нода теряет связь или отстает от блокчейн

19. Какие вы можете дать советы по настройке ПК для валидации?

  • лучше отключить спящий режим, режим экономии энергии, остановку дисков и т.п., т.к., несмотря на то, что приложение пытается сделать это самостоятельно, операционная система компьютера не всегда позволяет это сделать, и это может приводить к отключению ноды от сети
  • рекомендуем не использовать параллельно приложения, требующие много ресурсов диска: это может приводить замедлению записи и пропускам блоков
  • рекомендуем проверить настройки брандмауэра и добавить каталог с данными блокчейн ноды в исключения антивирусов, т.к. они проверяют записанные данные и могут сильно замедлять работу
  • если вы клонируете диск с установленной нодой — обязательно удалите файлы ключей. Если один и тот же ключ используется одновременно на нескольких устройствах, это может приводить к непредсказуемым последствиям, вплоть до полной пожизненной блокировки валидатора (она накладывается алгоритмами блокчейна автоматически, если они фиксируют поведение, характерное для хакерской атаки, и не может быть снята никаким способом).
  • когда на одном ПК меняют аккаунт к которому привязывается валидатор — перед этим надо обязательно отключать предыдущий. Иначе вы получаете либо штраф, либо ошибку “валидация используется на другом ПК”

20. Что лучше Mac, Windows, Linux?

Это сложный вопрос, на который ответить однозначно нельзя. Наиболее быстрая и стабильная работа достигается на Linux, но она требует намного больше внимания — здесь вам придётся самостоятельно обновлять исполняемые файлы, запускать, останавливать и возобновлять после штрафов валидацию. На Mac и Windows приложение Artery Node делает это за вас., Mac дороже при более слабом аппаратном обеспечении, а Windows показывает меньшую стабильность работы.

21. Почему вы не можете разделить просто блоки между всеми активными валидаторами? Зачем эти группы, чередования, рейтинги и т.д.?

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

22. У меня запущена нода. Она синхронизируется / просто открыта. Почему идет большая нагрузка на диск и процессор?

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

23. Загрузка и синхронизация, в чем разница?

Для запуска блокчейн ноды ей необходимы данные текущего блокчейн и все блоки, которые он обрабатывал. После того, как она их получит и начнет обрабатывать одновременно со всей сетью, можно запускать валидацию. Т.к. количество событий, происходящих в блокчейн, измеряется тысячами — эти данные занимают много места и постоянно растут.
Есть два способа “догнать сеть” — взять готовый набор данных, или просчитать все данные начиная с блока генезиса. Т.к. расчет всех блоков требует много ресурсов, мы в приложении Artery Network комбинируем два этих метода — раз в неделю создается слепок данных текущего блокчейн, который другие ноды могут скачать и, начиная с блока, на котором он был сделан, посчитать оставшиеся до основной сети блоки. Первый процесс называется “Загрузка”, а последующий расчет блоков “синхронизация”. При этом во время загрузки нода не работает, а запускается только при синхронизации.
Тот, кто хочет проверить корректность данных в блокчейн с самого первого блока, может взять генезис и рассчитать все изменения исходя из него.

24. Подойдет ли VPS для валидации?

Да, подойдет. Но необходимо выбирать сервера с выделенными процессорными ядрами и быстрыми дисками.

25. Почему плохо иметь много валидаторов одному человеку (твинки)?

Блокчейн выпускает фиксированное количество блоков в сутки — 2880, которые распределяются между активными валидаторами. Чем больше валидаторов, тем реже они получают блоки. Если кто-то старается перетянуть на себя больше блоков и делает много валидаторов — он вынуждает остальных участников поступать также. Что приводит к повышению затрат на их содержание и увеличивает общее количество нод в сети (при том, что набор валидаторов фиксирован). Что увеличивает время на обновление данных и синхронизацию. Кроме того, одновременная потеря нескольких валидаторов (например, в случае неожиданного отключения электроэнергии), гораздо сильнее бьёт по надёжности и стабильности блокчейна, чем потеря одного.

26. У меня закрывается (падает) приложение при включенной валидации? Что делать?

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

27. Почему валидация это ответственность?

Мы уже говорили — консенсус это то, на чем строится работа блокчейн. И за его достижение отвечает каждый валидатор в отдельности. И, если он работает медленно, не обеспечивает достаточно входящих подключений, вылетает из-за сбоев на компьютере — он не только “теряет деньги” на что акцентируют внимание некоторые участники, но и дестабилизирует всю систему в целом, что бьет по всем участникам. А потеря сразу большого количество активных валидаторов (например, когда выходит блок с большим количеством транзакций/запланированных операций, более требовательный к ресурсам) может привести к остановке блокчейн и потерям монет и репутации

28. Можно ли использовать в Windows не системный диск для размещения данных блокчейн?

К сожалению, данной настройки пока нет, но мы планируем ее добавить в ближайших релизах. На текущий момент вы можете запустить ноду, закрыть ее и создать soft или hard линк на другой диск из папки AppData\Roaming\desktop-wallet\chain (если вы не понимаете о чем речь, пожалуйста подождите выхода соответствующей функции в приложении)

--

--

Artery Network

A blockchain project based on ordinary mobile devices as network validators. 4 decentralized products. Minimum transaction fee