Это машинный перевод. Оригинал на английском здесь: Update 12 October, 2023
Поскольку тестовая сеть HeapNet2 только что покинула панель запуска, пришло время просмотреть предыдущую, MemDebugNet.
MemDebugNet сослужил нам очень хорошую службу, прежде чем неизбежно распространился на территорию Веймарской Республики из-за самой высокой стоимости StoreCost в тесной группе, которой платят. Мы меняем принцип работы, отказываясь от более высоких комиссий и платя только большую часть, что должно предотвратить резкий рост цен. И хотя он еще не доступен для HeapNet2, он должен появиться достаточно скоро.
Мы также узнали, что загрузка файлов пакетами, размер которых меньше общего количества фрагментов, может завершиться неудачно.
У нас возникла проблема с самошифрованием/дешифрованием потоковой передачи, из-за которой при загрузке извлекались фрагменты предыдущих попыток и получались файлы большего размера, чем ожидалось (и поврежденные). Спасибо @19eddyjohn75 за то, что предупредил нас об этом. Теперь это исправлено.
Каталог «cash_notes» может стать очень большим. Сохранение CashNotes — это всего лишь временная мера в целях отладки, поэтому в долгосрочной перспективе это не будет проблемой. Его размер также зависит от batch_size
. См. объяснение @anselme , чтобы узнать, почему это так.
Продолжается работа над пониманием и решением проблем использования памяти и очистки во время передачи и расшифровки файлов. Мы тестируем некоторые из них в новой тестовой сети.
Как всегда тысяча благодарностей всем, кто помогает. Каждая устраненная ошибка — на шаг ближе к запуску. :мускул:
Общий прогресс
@Chriso работал над двоичным файлом менеджера узлов, включая команду установки, и рассматривал возможность расширения ящика service-manager-rs в соответствии с нашими потребностями. . Это позволит узлам обновляться на лету, как сейчас это делают клиенты. Это работает в Linux, но требуется дополнительная работа для поддержки macOS и Windows.
Тем временем @bochaco продолжает работать над тем, чтобы узлы публиковали и подписывались на заранее определенные темы, такие как уведомления об оплате хранилища через GossipSub. Уведомительное сообщение содержит ключ получателя платежа и детали перевода, и владелец соответствующего открытого ключа может прослушивать и получать эти сообщения. Первоначально он будет использоваться для выплаты вознаграждений и для оплаты узлов Фонда. Мы будем опробовать это в ближайшее время.
@joshuef обратил свое внимание на проблемы, обнаруженные в последней тестовой сети MemDebugNet, включая PR 811 и 812 направлен на сокращение выделения памяти и упрощение обработки соединений за счет удаления клонирования/сбора идентификации и немаршрутизируемых одноранговых узлов. Он также руководил тестированием загрузки/выгрузки больших файлов (несколько ГБ), где мы наблюдали некоторые неполадки, изучал зависания, которые, по-видимому, связаны с StoreCost, и реализовывал некоторую очистку кошелька в случае, если сетевая передача не регистрируется на диске. Он также исправил невероятно большую проблему с тайм-аутом, которая, вероятно, была причиной зависаний, обнаруженной @happybeing.
@Роланд изучал тонкости Terraform и Ansible, чтобы помочь Крису с инструментом sn-testnet-deploy. Он также усовершенствует процесс ведения журнала, чтобы записывать журналы тестовых клиентов в отдельные файлы вместо стандартного вывода, и работает над тестами местоположения данных во время оттока, чтобы выяснить, где находятся фрагменты. действительно в конечном итоге.
Основываясь на анализе использования ресурсов, @Bzee изучает распределение памяти для многоадресного преобразования. Может ли это быть одной из причин медленной утечки памяти?
@Qi_ma открыла два PR (814, 815) для очистки создайте временные фрагменты после загрузки и дважды сравните загруженные файлы, чтобы обеспечить целостность. Он также исправил проблемы с обработкой ошибок в функции GetClosestPeers, которая в случае возникновения ошибки возвращала неправильный узел, а также сбой CI memcheck, который, как выяснилось, был связан с StoreCost не оплачивается должным образом.
А @Anselme копался в кошельках. Он обнаружил, что в кошельках хранятся потраченные CashNotes, что позволяет использовать их повторно, и поэтому работает над блокировкой их во время передачи и удалением потраченных после. Протестировано локально в Linux, это значительно ускоряет одновременную загрузку, поскольку предыдущее одновременное использование CashNote приводило к ошибкам и, следовательно, к повторным попыткам. Это также должно позволить людям без происшествий одновременно запускать различные клиентские команды на разных терминалах.
Полезные ссылки
Не стесняйтесь отвечать ниже со ссылками на переводы этого обновления для разработчиков, и модераторы добавят их сюда.
Как проект с открытым исходным кодом, мы всегда ждем отзывов, комментариев и предложений сообщества - так что не стесняйтесь, присоединяйтесь и давайте вместе создадим безопасную сеть!