# CI/CD для блокчейна: как это устроено в Parity Technologies

Денис Писарев, CI/CD Team Lead в Parity Technologies, рассказывает, как тестируют и выпускают релизы Polkadot, как устроена сеть и почему девопсам в блокчейне платят больше.

- Автор: Денис Писарев, Parity Technologies
- Опубликовано: 2023-03-02
- Обновлено: 2026-10-22
- Теги: Инфраструктура, Карьера в web3
- Страница: https://www.guidedao.xyz/blog/discussed-the-uniqueness-of-polkadot-cicd-and-devops-specialists

Интервью вышло в марте 2023 года. Цифры и планы проектов указаны на тот момент.

## Путь в Parity

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

Живу в Германии и работаю в Parity Technologies уже больше четырёх лет. Я пришёл сорок вторым сотрудником, а сейчас нас уже 350. Официально моя должность называется «Do not release manager», а на деле я CI/CD Team Lead.

Сначала я тестировал клиент Parity Ethereum. Примерно через год мы начали сворачивать работу над ним, и я перешёл в DevOps. Ещё через полгода мы создали для клиента DAO из восьми активных в сообществе команд разработчиков, чтобы они его поддерживали. Клиент переименовали в OpenEthereum, и я переводил его в отдельно созданную организацию на GitHub. Жаль, но не взлетело: сейчас Geth снова по праву самый популярный клиент Ethereum.

Моя команда целиком отвечает за CI/CD: на нас хосты, кластеры, провижининг, деплоймент, безопасность, алертинг и мониторинг. Есть и более крупная DevOps-команда, которая занимается всем остальным.

Я собираюсь сменить направление: у меня много идей для новых проектов. Придумал себе роль «DevOps relations», это как DevRel. Буду заниматься воркшопами, документацией и продуктами для девопсов.

У нас есть интересный проект: универсальный конфиг для запуска валидатора. В него войдут наши Substrate и Sidecar, то есть валидатор для наших чейнов в комплекте с API. Мы хотим улучшить UX, чтобы запустить валидатор мог любой, в идеале в один клик. Пользоваться конфигом сможет каждый, кому нужен свой валидатор. Сейчас одна из главных задач — снизить порог входа в сообщество.

## История Parity Technologies

Компанию основали в 2015 году под названием Ethcore. Её фаундер Гэвин Вуд — один из основателей Ethereum Foundation. Основным продуктом был клиент Parity Ethereum, который стал в комьюнити Ethereum де-факто клиентом по умолчанию. Имя приклеилось, и в итоге компанию переименовали. Потом написали ещё несколько клиентов на Rust: для Zcash, Bitcoin и пары других блокчейнов. Позже появились собственные блокчейны, Polkadot и Kusama.

![Логотипы Polkadot и Kusama и пояснение: общая экосистема называется DotSama, Substrate — фреймворк для её приложений, ink! — язык смарт-контрактов на Rust](https://www.guidedao.xyz/images/content/cbc5052464beea5ca47d13dd21ef5f58bd5246a1-1382x753.webp)

Конечная цель Parity в том, чтобы перестать быть центром комьюнити и отойти на второй план. Добиться честной децентрализации, довести Polkadot до момента, когда другие компании и сообщества смогут регулярно и стабильно контрибьютить в ядро проекта. Как только это произойдёт, можно считать, что компания выполнила свою задачу и может закрываться. И это не совсем шутка: идея сильно откликается в нашей инженерной культуре, и сотрудникам с ней нормально живётся. Советую почитать про Polkadot Fellowship: это классная идея и, так сказать, новая модель найма.

## DevOps в блокчейне

Около трёх лет назад Parity ещё нанимала технарей, в том числе девопсов, с обязательным знанием блокчейнов. Потом мы на это, конечно, забили, потому что такие люди закончились. При этом 90% работы приходится на вполне обычный DevOps, который мало отличается от работы в любой другой компании.

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

Тестирование в блокчейнах остаётся огромной нерешённой проблемой. Для него нужен серьёзный бэкграунд в блокчейнах. Таких инженеров пока в принципе нет, а блокчейн-рисерчеры не особо рвутся тестировать релизы за разрабами. Поэтому в блокчейнах функция QA смещена к разработчикам: тесты пишут они, это их ответственность. Ну и, конечно, есть сторонний аудит.

## Как устроен CI/CD

С CI/CD я был немного знаком ещё до Parity: на прошлой работе занимался тестированием и как минимум умел добавлять новые тесты в конфиг CI.

![Стопка дисков и подпись: CI и CD уже много лет стоят друг за другом, потому что системы должны работать и проектироваться именно так](https://www.guidedao.xyz/images/content/f1a0340d9c8a8fb96a145672b22bfc9c60c84841-729x414.webp)

Бывают и отдельные системы только для CI или только для CD. Но современные GitHub Actions, GitLab, CircleCI, Drone CI и прочие работают как системы полного цикла и поддерживают обе практики.

CI — continuous integration, непрерывная интеграция кода. Грубо говоря, у вас есть smoke-, юнит-, модульные, интеграционные, end-to-end- и UI-тесты, и всё это неплохо бы прогонять перед релизом.

> Когда проект большой, тестов будет куча, и прогоняться они могут часами. Ждать так долго, пока каждый коммит смержится в свою ветку, не хочется. Поэтому существуют пайплайны — как линии сборочного конвейера. Это и есть конфиги CI/CD. В начале пайплайна идут простые проверки. Всё должно проектироваться по принципу fail fast: если что-то сломано, это выясняется быстро. Сначала запускаем линтеры, которые проверяют опечатки и структуру кода, обычно для этого используют встроенные инструменты компилятора. Потом быстрые юнит-тесты. Если ничего не упало, дальше идут end-to-end-тесты, которым нужен собранный продукт.

Чем глубже по пайплайну, тем сложнее и дольше тесты. Собираем бинарник (того самого клиента Polkadot). Если нужно мобильное приложение, собираем приложение, если сайт — собираем и деплоим сайт, а потом прогоняем остальные тесты.

![End-to-end тестирование = от начала и до конца](https://www.guidedao.xyz/images/content/40bd2c89201881fd75148e0308a75e2cd9ded0c7-1382x447.webp)

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

CD — continuous deployment (или delivery), непрерывная доставка. Тут работает тот же принцип конвейерной ленты. Полностью протестированный код можно мержить в ветку master.

> Когда команда считает, что пора, из master выделяют новую релизную ветку с номером версии. Она проходит всевозможные тесты и бенчмарки, а потом останавливается и ждёт ручного аудита. После этого собранные бинарники, веса и сгенерированный changelog публикуются на GitHub. Новая версия заменяет старые в продакшн-блокчейне. Создаётся оповещение: например, в Telegram и Matrix уходит пуш о том, что всем, кто хостит свои валидаторы, нужно обновиться. Почти всё это автоматизировано и требует минимального участия инженеров.

CD может идти отдельно от CI: тесты перед ним совсем не обязательны. Обычно это значит, что что-то нужно задеплоить, куда-то доставить. Скажем, бинарник: мы хотим доставить его туда, откуда он будет работать, и запустить с нужными параметрами. Так он будет задеплоен в блокчейн, сайт — в продакшн, а приложение, например, в Google Play.

## Архитектура Polkadot

Обрисую архитектуру. Сами блокчейны Polkadot и Kusama мы называем Relay Chain. Получается, Polkadot предоставляет услугу blockchain as a service. Для простоты представим Relay Chain как ветку master в Git, а блоки — как коммиты в неё. Нам нужно мейнтейнить и авторить блоки только в Relay Chain, и весь наш Nominated Proof-of-Stake работает на нём. Все валидаторы работают на Relay Chain, и это обеспечивает безопасность всей экосистемы.

> Парачейн похож на ветку в Git: он не закончится, пока ты сам этого не захочешь и пока соблюдаются условия. Метаданные твоих блоков синхронизируются с блоками Relay Chain с помощью коллаторов, и эта информация хранится в самих Polkadot и Kusama.

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

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

Коллаторы похожи на валидаторов обычных блокчейнов. Они собирают транзакции пользователей парачейна в блоки-кандидаты и создают для валидаторов Relay Chain доказательства перехода состояния (Proof-of-Validity, PoV). Но гарантии безопасности коллаторам давать не нужно: их обеспечивает Polkadot.

## Где юзкейсы для web3

![Две проблемы экосистемы: без валидных юзкейсов рынок остаётся hype-driven, и никто не разбирается, чем блокчейны отличаются; высокий порог входа, поэтому нужны документация, онбординг, встречи и воркшопы для новичков](https://www.guidedao.xyz/images/content/2cbc43b4a3f4504b522ca75a8166bc9ad2b7e183-1118x755.webp)

Нашим родителям и бабушкам блокчейны не упёрлись: никто не придумал для них юзкейсов. UI и UX должны снижать входной барьер. Это главные темы, о которых знают все блокчейн-компании. По-моему, единственный валидный юзкейс — уже готовые сервисы и сайты на web3.

Что такое web3? Privacy и you own your data. Это новые модели заработка на контенте, новые модели предприятий и типы занятости. Всё это будет привлекать людей в web3, но не к блокчейнам. Экономика на блокчейнах, финансы, с которыми правительства не могут так просто играть, это общие проблемы всех блокчейн-экосистем. Тот, кто следующим придёт с прорывным юзкейсом, выиграет рывок рынка.

Мне кажется, полезнее продвигать web3, а не блокчейн. Если человек заинтересуется блокчейном с технической стороны, отлично, появился новый разработчик. Но годных юзкейсов для большинства обычных людей ещё никто не придумал. Я думаю, блокчейны должны превратиться в бэкенд-инфраструктуру для web3. А блокчейны с плохими юзкейсами и слабыми сообществами, понятное дело, отомрут.

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

## Чем Polkadot отличается от других блокчейнов

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

А ещё Polkadot — технологически самый продвинутый блокчейн. Чтобы запустить свой парачейн, достаточно прийти с идеей и реализовать только свою бизнес-логику. Если у тебя есть юзкейс для блокчейна, в нашей экосистеме тебе не понадобятся блокчейн-разработчики, аудиторы и безопасники. И девопсы, которые будут содержать валидаторы, тоже не обязательны.

Мы активно снижаем порог входа: проводим много конференций, воркшопов и митапов, записываем ролики для начинающих любого уровня. В прошлом году мы запустили Polkadot Academy и обкатали её на старейшем факультете Кембриджа. Это месячный курс глубокого погружения в разработку блокчейнов на Rust. Большую часть выпускников сразу же наняли мы и другие проекты сообщества.

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

Мы, и в частности сооснователь компании Ютта Штайнер, активно консультируем правительство и институты Германии по блокчейну и криптоэкономике. Нынешняя вменяемая налоговая политика Германии в отношении крипты во многом заслуга Ютты.

![Карта Германии в цветах флага и подпись «крипто — зер гуд»](https://www.guidedao.xyz/images/content/376a15acc98ea7205161a03d7df76eb156f43d98-540x414.webp)

Кстати, DotSama совсем недавно были признаны SEC как Software. Теперь у нас развязаны руки в маркетинге. До этого мы откровенно осторожничали, чтобы не кануть в Лету вслед за TON и, конечно, чтобы нас случайно не сочли очередным скамом. Теперь мы меняем стратегию, и этим плотно занимается новый CEO компании Бьорн Вагнер.

> Прим. ред.: SEC такого решения не принимала. В ноябре 2022 года Web3 Foundation сама заявила, что DOT больше не ценная бумага, а софт, и сослалась на переговоры с сотрудниками SEC. Регулятор это не подтверждал.

Незаслуженно редко вспоминают [World Food Programme](https://innovation.wfp.org/project/building-blocks), совместный проект Parity и ООН. Это приватный блокчейн для поддержки беженцев, им пользуются больше миллиона человек! Сама World Food Programme — лауреат Нобелевской премии мира 2020 года. Дело в том, что государства ООН не вправе выдавать беженцам паспорта, платить им деньги, брать с них налоги. Всё это стало возможным благодаря блокчейну. Беженцам выпустили ID и медицинские карты, они смогли нормально работать, получать зарплату и целевую гуманитарную помощь, совершать покупки ончейн. А логинятся они по радужной оболочке глаза. Киберпанк? Киберпанк. Скоро они перейдут на Substrate.

> Прим. ред.: Building Blocks разработала сама Всемирная продовольственная программа ООН. Система работает на приватной версии Ethereum на клиенте Parity Ethereum и учитывает денежную помощь: в лагере Заатари в Иордании беженцы платят в магазинах, подтверждая личность сканом радужки через биометрическую базу УВКБ ООН ([MIT Technology Review](https://www.technologyreview.com/2018/04/12/143410/inside-the-jordan-refugee-camp-that-runs-on-blockchain/), [ITU](https://www.itu.int/hub/2020/04/how-the-world-food-programme-uses-blockchain-to-better-serve-refugees/)). Документов и медицинских карт Building Blocks не выпускает, а цифру больше миллиона пользователей источники не подтверждают.

## ZK в экосистеме Polkadot

У нас есть несколько проектов с хорошими ZK-идеями. Лично я считаю, что ZK должно быть ещё больше: это очень классное и пока неизведанное поле юзкейсов для блокчейнов.

Наши рисерчеры очень серьёзно подходят к ZK. Джефф Бёрджес, например, недавно рассказывал на ZK8 про роллапы и прорывную оптимизацию. Дело в другом: в Relay Chain Polkadot для новых ZK-юзкейсов by design нет места. А в виде парачейна они прекрасно встраиваются, в этом и суть! В виде системного парачейна (они бесплатные, обслуживаются из трежери и нужны для целостности системы) тоже вполне годится. Такая вещь нужна, но она точно не должна забивать основные блоки.

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

Курс Guide DAO: [AI-аудитор смарт-контрактов](https://www.guidedao.xyz/solidity)
