Разработка Chainflip – отчёт от 21 октября 2022 года
Здравствуйте, дорогие друзья. С приближением Хэллоуина пришло время для очередного обновления из жутких глубин подземелья разработки Chainflip. Те из вас, кто внимательно следит за развитием событий, знают, что запуск тестовой сети Perseverance, что переводится как настойчивость, был отложен из-за некоторых неприятных сюрпризов, скрывающихся внутри коварного черного ящика, которым является ZeroMQ. Но об этом подробнее позже.
Несмотря на эти махинации, связанные с релизом, с момента последнего обновления было объединено не менее 80 PR. Chainflip развивается с пугающей скоростью! Вот вам и настойчивость.
Прогресс с момента последнего обновления
- CI был перенесен с Circle CI на Github Actions.
- Мы провели первое успешное сквозное тестирование функций Menorca, то есть мы смогли вносить и выводить Ethereum на счет поставщика ликвидности.
- Базовое кодирование транзакций Polkadot теперь работает на State Chain.
- Мы провели много сетевой отладки и достигли более глубокого понимания нашей тестовой сети, инструментов и инфраструктуры протоколирования.
- Мы воспользовались отложенным запуском сети, чтобы пересмотреть нашу процедуру выпуска с нуля.
Перспективы
В ближайшие пару недель мы сосредоточимся на том, чтобы подготовить Perseverance к выходу в свет и продвинуться дальше чем Menorca в направлении ее более крупного балеарского родственника, Ibiza.
Здесь драконы
Мы были полны надежд на выпуск тестовой сети Perseverance, и мы знаем, что вы тоже. Однако во время финального тестирования мы обнаружили некоторые проблемы, которые могли оказать довольно серьезное влияние на наши церемонии подписания порога. Не желая вдаваться в технические подробности, наш новый одноранговый сетевой слой, который мы используем для церемоний MPC, опирается на сетевой фреймворк под названием zeromq. Zeromq делает многие вещи очень простыми, но некоторые его внутренние механизмы немного неясны. Мы обнаружили, что иногда, когда узлы перезапускаются, они не могут связаться с остальной частью сети. Они продолжали отправлять сообщения, но ни одно из них не доходило до адресата. Мы добавили несколько диагностических логов, и проблема исчезла. Жуть! Может быть, это какой-то квантовый эффект? Предсказуемо, причина оказалась гораздо более мирской. Мы обнаружили, что для " разблокировки" соединения достаточно убрать из него лишнюю информацию мониторинга. Решение оказалось простым, но отладка потребовала много времени, усилий и экспериментов.
Итак, на данный момент мы успешно изгнали демонов, которые вызывали эту конкретную проблему, но ZeroMQ полон крошечных уголков и щелей, где пока еще не обнаруженные опасности могут лежать в тени, ожидая своего часа.
Мы достаточно уверены, что защитные знаки, которые мы установили, пока сдерживают демонов ZeroMQ, но предстоит еще много работы. Параллельно мы будем экспериментировать и с другими подходами. Есть несколько rust-native реализаций протокола QUIC, которые демонстрируют определенные перспективы. Окажется ли QUIC нашим рыцарем в сияющих доспехах? Или лучше дьявол, которого вы знаете?
Настройтесь на следующий раз, чтобы узнать это.
MC Method Machine