Журнал разработки №24 Укреплен... Заметка
DEV Community на русском

Журнал разработки №24 Укрепление p2p-стека: от нестабильных тестов до исправлений WebSocket

Яш, разработчик с открытым исходным кодом, специализирующийся на p2p-сетях и инструментах ИИ, подробно рассказал о своем еженедельном вкладе. Он потратил значительное время на устранение нестабильных тестов в проекте minip2p на Rust, заменив ожидание на основе часов логикой, управляемой прогрессом. Эти тесты не проходили в CI из-за загруженных исполнителей, что снижало скорость разработки. Яш переработал тесты, чтобы они ожидали фактической активности сокетов, а не произвольных временных интервалов. Он также консолидировал обработку обменных пакетов в протоколах AutoNAT и Identify для повышения безопасности в minip2p.В py-libp2p Яш исправил ошибку, из-за которой транспорт WebSocket обобщенно сообщал обо всех сбоях как о тайм-аутах рукопожатия, что также приводило к утечкам сокетов. Он обеспечил более точное сообщение об ошибках и правильное закрытие сокетов для предотвращения утечек ресурсов. Кроме того, он реализовал проверку серверных сертификатов для безопасных WebSocket-соединений. Яш также внес вклад в проект Trak, улучшив логику индексатора для исключения тестовых фикстур. Он успешно объединил все пять pull-запросов, которые открыл на этой неделе.Значительная часть его недели была посвящена проведению 15 ревью кода для репозитория dotnet-libp2p. Эти ревью были сосредоточены на синхронизации реализации на C# с более широкой спецификацией libp2p, охватывая такие области, как транспорт QUIC на Windows, усиление Gossipsub, улучшения безопасности и повышение надежности. Эта работа по ревью подчеркнула наставничество и обеспечение согласованности экосистемы в различных языках программирования. Работа на этой неделе включала Rust, Python и C#, что привело к чистому увеличению строк кода за счет новой инфраструктуры и переработанных обработчиков. На следующей неделе Яш планирует сосредоточиться на тестировании производительности транспортного уровня minip2p и мониторинге текущих разработок в стеках p2p на Python и .NET.