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

Команда валидатора BTC.Secure взяла на себя ответственность разобраться в этом вопросе и готова поделиться результатами исследования.

Здесь вы узнаете о том:

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

Перед тем, как погрузиться в наш материал, имеет смысл дать определения следующих терминов, которые редко используются в сообществе Minter.

Высокодоступная инфраструктура валидатора – под этим мы будем понимать непрерывный режим работы валидатора без пропусков блоков с возможными запланированными простоями при критических обновлениях системы на срок до 10 минут.

Доступность показывает, что пользователи из любой точки мира могут использовать сеть Minter в своих целях.

Инфраструктура – взаимосвязанная структура из различных объектов (центры обработки данных, оборудование и связи между ними), которые все вместе обеспечивают выполнение основных функций системы.

Избыточность – использование дополнительных компонентов в оборудовании, дополнительных каналов связи или частей инфраструктуры, благодаря которым нарушение работы основных частей не приводит к остановке работы всей системы.

«Нужно ли мне это знать, если я не собираюсь запускать своего валидатора?»

Ответственность делегаторов должна выходить за рамки схемы «купил монеты – делегировал – получил дивиденды». Дело в том, что монеты не смогут набрать необходимую популярность у других людей, если ко всей сети нет доверия, или она просто плохо работает.

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

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

Причины, которые сделали необходимым разработку новой архитектуры

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

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

Результаты последней тестовой сети, а также предыдущих – оставляют желать лучшего. Обратите внимание на колонку Uptime, где есть показатель пропущенных блоков и количество 1% штрафов за пропущенные 12 из 24 блоков за один период времени.

testnet-results-2018-11-12-at-18-42

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

До одного из последних стресс-тестов было 29 активных валидаторов.

before-stress-testing-2018-11-07-at-11-34

После – осталось всего 13.

after-stress-testing-2018-11-07-at-14-30

Реализовать инфраструктуру можно на разных уровнях. Делегаторы должны уже сейчас понимать, чем они рискуют, делегируя свои монеты в некачественного валидатора. Никакая скидка и никакие бонусы не покроют ущерб от возможных штрафов в 1% при нестабильной работе валидатора и 5% с банкротством валидатора и 30 дневное ожидание своих монет, которые не будут приносить вам доход в это время.

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

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

Почему каждый валидатор просто обязан сделать «как надо»

В сети Minter предусмотрены штрафы для валидаторов за некачественную работу в поддержании работоспособности блокчейна:

  • Штраф 1% от суммы всех делегированных средств за пропуск 12 из последних 24 блоков. Иными словами, всего за всего 1 минуту простоя – валидатор и его делегаторы потеряют 1% своих монет. Как мы писали ранее, в тестовой сети многие валидаторы до сих пор пропускают блоки и в результате терпят убытки.
  • Штраф 5% и разделегирование всех монет за попытку двойной подписи, при этом делегаторы будут ждать 30 дней свои оставшиеся монеты, а валидатор прекратит свое существование. Это может произойти из-за взлома оборудования валидатора с целью уничтожения его бизнеса и снижения доверия ко всей сети. О грамотной безопасности своего оборудования нужно думать заранее, а не когда будет запущена основная сеть.

Запуск основной сети Minter может привлечь внимание со стороны лиц, желающих проверить на прочность блокчейн или просто нарушить его работу с целью получить финансовую выгоду. Алгоритм консенсуса DPoS (Delegated Proof of Stake), на котором основан Minter, кроме очевидных преимуществ по своей производительности, имеет уязвимость к DDoS-атакам (Distributed Denial of Service). В результате такой атаки валидаторы, которые не внедрили необходимые защитные механизмы, начнут пропускать блоки и затем выйдут из статуса активных. К слову, «классическая» реализация защиты валидатора с помощью SNA (Sentry Node Architecture) – на практике не спасет валидатор от DDoS-атаки, но, как мы можем убедиться по тестовой сети, увеличивает количество пропусков блоков по время обычной его работы.

Кроме штрафов за некачественную работу валидатора – сеть начинает замедлять свою работу. Вместо 5 секунд на транзакцию, может пройти целая минута. Что-то уже не похоже на «бип-бип» на кассе, да? Никому не понравится ждать так долго, если было обещано совсем иное. Страдают конечные пользователи системы.

Всем нам выгодно, чтобы все работало быстро и стабильно.

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

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

Проблемы из-за децентрализации сети и их решение

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

Больше доверия – больше пользователей.

Больше пользователей – больше спрос на товары и услуги, которые можно получить за монеты.

Больше спрос – больше стоимость монет.

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

tendermint

Ядро Tendermint, на котором основан Minter, позволяет совершать тысячи транзакций в каждом блоке, каждый из которых формируется всего за 5 с небольшим секунд. Причем больше не нужно ждать дополнительных подтверждений. Все транзакции имеют финальное подтверждение за один блок. Безусловно, Tendermint – это один из самых надежных и быстрых алгоритмов консенсуса, который подразумевает под собой децентрализацию и имеет рабочие тестовые сети Cosmos и Minter.

Но многократное стресс-тестирование в Minter показало следующие проблемы:

  • многие валидаторы пропускают блоки;
  • даже самые стабильные валидаторы пропускают блоки;
  • тестирование под максимальной нагрузкой – способ «положить» значительную часть валидаторов, что приводит к задержке выпуска нового блока вплоть до минуты и более.

Кроме некоторых ошибок в работе API-сервисов, которые приводили к падению серверов валидаторов (у тех, кто держал API включенным), есть другие причины.

Причины проблем стабильности сети:

  • использование виртуальных серверов в качестве валидаторов, которые имеют ограниченные ресурсы и могут быть нестабильными в скорости работы;
  • неправильное использование архитектуры сторожевых узлов (SNA), которое только добавляет проблем, а не решает их;
  • медленная связь между валидаторами через интернет из-за слабых каналов связи и географической распределенности серверов;
  • ошибки в базовой настройке валидаторов, одна из которых – держать включенным API-сервис.

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

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

Нововведения, которые позволят сети быть стабильной:

  1. Добавление в сеть валидаторов нового слоя на базе облачных провайдеров Google, Amazon и Microsoft. Закрытая сеть для доверенных узлов с большой пропускной способностью и минимальным откликом.
  2. Внедрение автоматического масштабирования сторожевых узлов (SNA).
  3. Использование выделенных серверов для валидаторов с оптимальной конфигурацией и необходимой избыточностью.
  4. Расположение серверов валидаторов в центрах обработки данных с прямым доступом к облачным провайдерам (Google – Partner Interconnect, Amazon – Direct Connect, Microsoft – Express Route).
  5. Поднятие публичных мастернод с включенным API-сервисом на базе инфраструктуры валидатора для лучшей доступности сети конечным пользователям.

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

Как должна выглядеть высокодоступная инфраструктура для валидатора

Проблему с плохой связью между валидаторами через интернет мы предлагаем решить с помощью объединения доверенных узлов разных валидаторов в дополнительную сеть на базе облачных провайдеров Google, Amazon и Microsoft.

cloud

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

Есть оптимальное решение. В дополнение к публичным узлам валидаторов, которыми являются так называемые сторожевые узлы (Sentry Node), мы предлагаем создать виртуальную сеть в облаке и соединить с помощью неё инфраструктуры валидаторов между собой.

p2p-network

В результате внедрения этого решения мы получим следующие преимущества:

  • высокая скорость передачи блоков между валидаторами и отклик сети максимально приближенный к локальным сетям, как будто сервера находятся в одном помещении;
  • стабильность связи, так как виртуальная сеть в облаке работает на уровне провайдера, в отличии от частных VPN-соединений;
  • защита от внешних угроз, ведь связь осуществляется без интернета, и в сети доверенных узлов не может быть «лишних» участников;
  • географическая распределенность узлов теперь не грозит такими большими потерями в скорости, потому что разные регионы одного поставщика облачных услуг соединены между собой выделенным каналом;
  • сохраняются все обычные связи с внешним миром, т.е. сеть как была публичной, так и остается, но появляется внутренний стабильный способ связи между валидаторами;
  • если все публичные связи у одного валидатора будут нарушены, то он продолжит свою работу без пропуска блоков за счет внутренней сети обмена с другими валидаторами.

Вопрос в том, какое количество валидаторов должны объединиться такой сетью, чтобы был необходимый эффект?

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

Одной из особенностей консенсуса Tendermint и его реализации в Minter, является то, что валидаторы с наибольшим объемом делегированных средств чаще других становятся создателями новых блоков (блокпропоузер), а это – дополнительная ответственность перед другими валидаторами. Валидатор-блокпропоузер обязан максимально быстро разослать новый блок по другим валидаторам. Именно на этом этапе часто возникают пропуски блоков даже у надежных валидаторов, а виноваты в этом владельцы «слабых» валидаторов, которые иногда и выступают в роли блокпропоузеров.

Хотите быть топовыми валидаторами? Берите на себя ответственность за стабильность сети.

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

Облачная инфраструктура и возможность масштабирования

Теперь нам нужно уточнить строение инфраструктуры каждого валидатора.

high-availability-validator-infrastructure

Высокодоступную инфраструктуру валидатора можно разделить на две основные части:

  • Облако, состоящее из нескольких зон доступности, каждая из которых состоит из множества узлов;
  • Центр обработки данных, в котором располагается оборудование валидатора.

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

Сторожевые узлы (Sentry Node)

Являются публичными узлами, которые обмениваются данными с другими публичными узлами (сторожевыми узлами, API узлами, валидаторами) через интернет.

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

Другие узлы валидатора, которые не имеют выхода в интернет – полагаются на работоспособность сторожевых узлов, ведь если DDoS атака «положит» все сторожевые узлы валидатора, то это приведет к остановке его работы и исключению из списка активных валидаторов.

Решение этой задачи лежит в следующих действиях:

  • создания большего количества сторожевых узлов вместо обычного количества 3-5 серверов ещё до возможных атак извне;
  • внедрение механизма автоматического масштабирования сторожевых узлов в моменты, когда на уже созданные узлы начинается атака, и они начинают отказывать в обслуживании (зависают);
  • связь с другими надежными валидаторами по внутренней облачной сети.

Ретрансляционные узлы (Relay Node)

Являются внутренними узлами, которые обмениваются данными только с другими доверенными узлами через внутреннюю облачную сеть.

Доверенными узлами могут выступать другие ретрансляционные узлы (Trust Nodes), сторожевые узлы и API узлы инфраструктуры валидатора, а также ретрансляционные узлы других валидаторов сети Minter, которые доверяют друг другу и настроили обмен данными через соединение виртуальных сетей в облаке (VPC Peering).

Валидатор имеет прямые соединения только со «своими» ретрансляционными узлами.

Ретрансляционные узлы защищены от DDoS атак и взлома и являются вторым барьером безопасности для валидатора после сторожевых узлов.

API узлы (API Node)

Являются публичными узлами, которые обмениваются данными с другими публичными узлами (сторожевыми узлами, API узлами, валидаторами) через интернет.

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

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

Поднять качественные API узлы для сообщества – это означает внести свой вклад в развитие сети и сделать еще один шаг для всеобщей доступности Minter, что несомненно принесет валидаторам дополнительные дивиденды.

Географическая распределенность

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

Расчет стоимости облачной инфраструктуры

Для узлов в облаке выбираем следующую конфигурацию:

gcp

  • Количество ЦП – 2
  • Объем памяти – 4 GB
  • Постоянный SSD-диск – 200 GB (в будущем потребуется увеличить)
  • Операционная система – CentOS или Debian

Стоимость от $101 до $116 в месяц за 1 экземпляр виртуальной машины, которая еще зависит от региона.

Нам нужно будет около 12 узлов, примерно в таком распределении по своим функциям:

Sentry Node – 6

Relay Node – 4

API Node – 2

В итоге, ежемесячная плата за облачную инфраструктуру будет составлять от $1212 до $1392 и более, но со временем потребуется увеличить как количество узлов, так и объем постоянного SSD-диска, поэтому расходы будут возрастать.

Расчеты на примере Google Cloud с расположением в Европе.

Выбор надежного центра обработки данных для размещения оборудования валидатора

Так как маршрут передачи данных из точки А в точку Б через интернет постоянно меняется, сетевые задержки при работе через интернет тоже могут изменяться. Сетевые задержки для валидатора – это пропуск блоков, риск получить 1% штраф и нарушение стабильности работы всей сети Minter.

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

Соответственно, выбирать ЦОД, с которыми можно установить прямые соединения, нужно исходя из перечня партнеров Google Cloud, Amazon Web Services и Microsoft Azure.

data-center

Список партнеров с прямым подключениям к облаку и их местоположения:

Google Cloud – Dedicated Interconnect и Partner Interconnect.

Amazon Web Services – Direct Connect.

Microsoft Azure – Express Route.

Наиболее подходящие варианты ЦОД располагаются в Европе, в странах, где больше всего следят за защитой персональных данных.

Лучше всего начинать строить надежную инфраструктуру валидаторов в сети Minter именно с Европы, так как это дает следующие преимущества:

  • наиболее строгие законы, которые охраняют частную собственность;
  • близкое расположение к России, ведь в первое время значительное количество конечных пользователей будет именно с РФ и стран, которые находятся рядом, а это положительно скажется на скорости работы клиентских приложений, таких как кошельки и прочих сервисов для людей;
  • хороший выбор из ЦОД, которые имеют прямые подключения к облачным провайдерам;
  • многие валидаторы и держатели полных нод будут располагать свою инфраструктуру в Европе, что делает связь более быстрой и стабильной;
  • в целом высокий уровень сервиса, который предоставляют центры обработки данных в Европе, а это как раз нам и нужно, чтобы валидатор был всегда доступен.

Во сколько может обойтись надежная связь между центром обработки данных, где находится сам валидатор, и облачной инфраструктурой

Плата за услуги ЦОД и поставщика оборудования:

  • $115 в месяц за порт
  • $222 в месяц за канал (1 Gbps)
  • $547 плата за установку

Плата за сервис Partner Interconnect от Google:

  • $200 в месяц за канал (1 Gbps)
  • $1 (в пределах) за переданный объем исходя из фактически отправленных данных по цене $0,02 за 1 GB

Всего $538 в месяц и $547 за установку в самом начале дополнительно.

Кстати, про уровень доступности. Для достижения стабильного показателя 99,99% и выше, придется использовать схему подключения центра обработки данных к облаку с избыточностью. А это, как минимум, 4 независимых прямых подключения к различным зонам доступности в облаке.

Для получения необходимого уровня надежности, умножаем расходы на 4:

$2152 в месяц и $2188 за установку.

На примере Google Cloud (Partner Interconnect) и центра обработки данных Equinix во Франкфурте.

Оборудование для валидатора: аренда или покупка?

Для начала, нужно раз и навсегда понять следующее – валидатор должен располагаться на выделенном сервере (Dedicated Server), а не на виртуальном (Virtual Private Server, Cloud Server). Только отдельный физический сервер может отвечать особым требованиям по безопасности валидатора. Кроме этого, только на отдельном сервере, можно гарантировать 100% наличие необходимых ресурсов сети, памяти и процессора и добиться максимальной доступности 99,99%+. Такая скорость работы особенно актуальна в периоды критической нагрузки сети, и справиться с этим смогут только правильно сконфигурированные валидаторы на отдельных серверах, которые соединены с облачной инфраструктурой прямыми каналами связи с избыточностью.

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

Избыточность в конфигурации сервера

Хотя оборудование для серверов имеет повышенную устойчивость к нагрузкам, а в надежном центре обработки данных создаются максимально комфортные условия для работы сервера, нельзя рассчитывать, что ничего не сломается. Как говорится, пользователей можно разделить на две категории: кто уже делает резервные копии важных данных и те, кто еще не делает, но будут делать. Но к валидатору требования значительно выходят за рамки резервных копий важных данных. Мы должны обеспечить постоянную работу валидатора каждый блок (5 сек), каждую минуту, каждого дня, многие годы. Для этого нужно сделать избыточными все компоненты сервера, какие только можно, чтобы при поломках работа не приостанавливалась ни на один блок.

Основные компоненты сервера, по которым должна быть избыточность:

  • Постоянная память. Так как жесткие диски относится к одним из наиболее часто ломающихся компонентов, поэтому нужны два SSD-диска в режиме зеркалирования, а в случае покупки сервера, то целый массив из жестких дисков большой емкости в режиме избыточности плюс SSD-диски для кэширования записи.
  • Сеть (NIC, Network Interface Controller, сетевая плата). Потребуются две сетевых платы, каждая из которых подключается к отдельному роутеру, а каждый роутер имеет по 2 прямых канала связи с облачной инфраструктурой, ведь чувствительность к скорости передачи и получения новых блоков у Minter очень велика.
  • Питание. Два блока питания, каждый из которых подключен к отдельным независимым линиям в центре обработки данных, чтобы в случае поломки одного из них, сервер не отключился.

Вполне хороший вопрос, который можно задать: «А что, если выйдет из строя компонент сервера, который не имеет избыточности?»

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

Дополнительный сервер находится в режиме ожидания и готов в экстренных случаях заменить основной сервер. Но здесь возникает риск 5% штрафа и разделегирования всех средств, так как при неправильной настройке замены одного сервера на другой в автоматическом режиме, основной сервер может «проснуться» после того, как дополнительный уже начал свою работу в качестве валидатора.

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

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

А теперь, перейдем к выбору оборудования.

Особые требования к оборудованию валидатора, которые нужно учитывать при составлении конфигурации сервера

Процессор

intel-xeon-e3-1200-v6

Он должен быть максимально быстрый в производительности на одно ядро, так как Tendermint работает в один поток. В итоге, достаточно двухъядерного процессора, а все что больше – избыток, который, скорее всего, не найдет своего применения. Одно ядро – для Minter, а другое – для параллельного выполнения других служебных задач сервера. Больше не нужно. Современные серверные процессоры начинаются от 4-х ядер, вот они нам скорее всего и подойдут. К тому же, чем более дорогой процессор мы берем, тем больше у него ядер, но производительность каждого ядра может уступать младшим моделям. Можно ориентироваться по тактовой частоте, хорошо, если будет 3,5 GHz без ускорения.

Объем памяти

2x8gb

Хотя для валидатора и достаточно 4 GB памяти, но такую конфигурацию мы собрать скорее всего не сможем, поэтому берем 16 GB, в этом случае память будет работать в двухканальном режиме, так как будет собрана из двух планок по 8 GB, что будет плюсом по скорости. Еще память должна быть с ECC (коррекцией ошибок), так будет надежнее.

Постоянная память

ssd-intel-545s

Для начала, на первый год работы сети, должно хватить 256 GB. Нам нужно взять SSD-диски, которые при этом максимально быстрые, так как Minter постоянно записывает информацию о новых блоках в базу данных, причем пока данные не записались, то не происходит дальнейшего процесса подтверждения блоков. При этом их должно быть две штуки, в зеркальном режиме, для достижения необходимого уровня надежности. Обычные жесткие диски нам не подходят из-за своей скорости, но можно организовать кэширование записи с помощью SSD, тогда мы увеличим скорость записи и объем пространства, которого хватит на годы вперед.

Сеть

hp-ethernet

Две сетевых платы, каждая из которых обеспечивает 1 Gbps скорость на порту. Подключаем их к двум разным сетевым роутерам, к каждому из которых центр обработки данных предоставляет по два выделенных канала связи с облаком.

Питание

hp-power

Главное, чтобы было два блока питания, каждый из которых подключается к независимым каналам в центре обработки данных.

Пример конфигурации сервера для валидатора и его стоимость

Если арендуем, то можно взять такую:

hpe-proliant-dl20-gen9

  • Сервер – HPE ProLiant DL20 Gen9
  • Процессор – Intel Xeon E3-1240 v6 (3,7 GHz, ускорение до 4,1 GHz)
  • Объем памяти – 16 GB с ECC (DDR4, 2400 MHz)
  • Постоянная память – 2 x 256 GB SATA3 SSD Intel 545s, 2 x 4 TB SATA3 6Gb/s Seagate, 7200 rpm, 4.16 ms, Enterprise
  • Сеть – 2 x HP Gigabit 361T Ethernet Server
  • Питание – 1 х блок питания (но можно найти с двумя)
  • Центр обработки данных – Equinix FR5 во Франкфурте

Всего $239 в месяц.

Добавляем еще дополнительный сервер с такой же конфигурацией и сервер для мониторинга, где можно убрать лишние жесткие диски, и получится:

  • 2 x $239 + 1 x $197 = $675

Итого, вариант с арендой будет стоить: $675 в месяц.

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

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

Размещение серверов в центре обработки данных Equinix FR5 во Франкфурте:

  • $725 в месяц и $395 за установку.

Стоимость одного сервера для валидатора с конфигурацией, как в варианте аренды, составляет от $3800 до $4600, а сервера для мониторинга в районе $2800:

  • от 2 х $3800 + 1 x 2800 = $10400 до 2 x 4600 + 1 x 2800 = $12000.

Еще нам нужны будут два роутера, каждый из который стоит около $650:

  • 2 х $650 = $1300.

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

Итого, вариант с покупкой будет стоить: от $11700 до $13300 на покупку оборудования, $395 за установку и $725 в месяц за услуги по размещению.

Покупка оборудования и услуга по его размещению в центре обработки данных имеет преимущества перед арендой:

  • оборудование размещается в отдельной серверной стойке, в которой нет оборудования других клиентов, а значит нет рисков, связанных с ошибками персонала ЦОД при работе с другими серверами, владелец сам контролирует доступ персонала ЦОД к серверу;
  • есть возможность использовать собственные роутеры, что надежнее, чем общие роутеры;
  • выбор возможных конфигураций серверов практически ничем не ограничен;
  • можно установить модуль HSM (Hardware Security Module) для безопасного хранения ключа валидатора и датчики вскрытия корпуса для дополнительного контроля.

Несколько важных вещей, которые нужно знать про безопасность

Для валидатора существует два важных элемента, которые ни при каких обстоятельствах не должны быть скомпрометированы:

  • секретный ключ валидатора;
  • секретный ключ кошелька администратора валидатора.

Защитить секретный ключ валидатора можно за счет ограничений доступа к серверу:

  • удаленное управление сервером через SSH-соединение, ограниченное по IP-адресу безопасного VPN-сервера системного администратора;
  • использование двухфакторной авторизации при SSH-доступе к серверу через USB-ключ поддерживающий стандарт FIDO U2F;
  • отключение root пользователя и введение персональных доступов к управлению сервером валидатора для разных пользователей с необходимыми ограничениями, закрытие доступа системного администратора и других технических специалистов к папке, где хранится секретных ключ валидатора.

Но самое главное, что защитит секретный ключ валидатора – это установка модуля HSM (Hardware Security Module) в сервер. В этом случае, ключ будет храниться в отдельном USB-устройстве (YubiHSM 2) и при каждом действии, где он используется, будет считываться непосредственно с защищенного от взлома устройства. С такой защитой, даже при физическом воздействии на оборудование сервера валидатора, секретный ключ будет защищен от взлома.

yubihsm2

Стоимость YubiHSM 2 составляет $650, но их нужно две штуки из-за избыточности сервера валидатора, поэтому 2 x $650 = $1300. Однако, возможность использования HSM доступна только при покупке собственного сервера, так как компании, через которых можно взять выделенный сервер в надежном центре обработки данных, обычно не предоставляют эти устройства в аренду, а установить свой HSM-модуль в арендованный сервер не разрешается.

В совокупности, эти меры защиты ключа валидатора позволяют гарантировать отсутствие риска получить штраф 5% и полное разделегирование всех средств, в случаях взлома сервера валидатора.

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

В защите секретного ключа от кошелька администратора валидатора поможет:

  • отдельный «чистый» компьютер, который используется для управления кошельком и сервером валидатора и больше ни для чего другого;
  • доступ к интернету только через защищенную WiFi-сеть c WPA2 Enterprise или по проводу через собственный роутер;
  • использование VPN-подключения;
  • запись секретного ключа от кошелька на Ledger Nano S или другое совместимое устройство для аппаратного хранения и использования криптовалют (ожидаем интеграции от Minter, т.к. Cosmos уже тестирует поддержку).

ledger-nano-s

Стоимость Ledger Nano S составляет около $140.

В качестве «чистого» компьютера, если серьезно отнестись к безопасности, можно взять Librem 13 от Purism стоимостью от $1700. Отличный пример устройства, ориентированного на высокую безопасность.

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

Как со всем этим жить дальше?

Стоимость поддержания высокодоступной инфраструктуры для валидатора при аренде оборудования составляет от $4200 в месяц и дополнительно $2200 на установку в самом начале.

Покупка же позволит достичь максимальной безопасности и надежности валидатора, но это будет стоить от $4200 в месяц и дополнительно $2600 на установку, а также от $11700 до $13300 на покупку серверов и другого оборудования для валидатора.

И еще нужно будет приобрести HSM и Ledger для защиты ключей валидатора, что обойдется в $1450.

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

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

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

Материал про высокодоступную инфраструктуру для валидатора подготовлен на основе опыта разработчиков ядра Tendermint, а также валидаторов в сети Cosmos и нашего собственного опыта работы в тестовой сети Minter.

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

Приглашаем всех к нам, в сообщество BTC.Secure в Telegram, для обсуждения данного материала. Мы ответим на все вопросы, которые наверняка появились, а также будем рады обратной связи по нашей работе. Материал будет дополняться и исправляться по мере совместной работы с другими валидаторами и дискуссий внутри нашего сообщества.

В Telegram-канале вы сможете найти информацию про наш верифицированный пул и валидатор в сети Minter.