Это машинный перевод. Оригинал на английском здесь: Update 06 July, 2023
Одно из изменений, над которым мы работаем на этой неделе, касается обновленной версии libp2p
, которая привносит некоторые долгожданные улучшения в AutoNAT — обнаружение и включение узлов, находящихся за брандмауэром или маршрутизатором, для присоединения. Вскоре мы сможем различать глобальные и частные IP-адреса, что раньше было проблемой.
Однако неизбежно появляются новые ошибки, которые держат нас в напряжении. Так что большая часть нашей работы на этой неделе была под капотом, возиться с толкателями, а не полировать переднюю часть.
Тем не менее, @ChrisO теперь обновил интерфейс ведения журнала, предоставив возможности хранения и форматирования людям, управляющим узлом. Пользователи могут указать каталог вывода журнала или стандартный вывод, если они хотят, но по умолчанию сейчас это:
Linux: $HOME/.local/share/safe/node/<peer-id>/logs
macOS: $HOME/Library/Application Support/safe/node/<peer-id>/logs
Windows: C:\Users\<имя пользователя>\AppData\Roaming\safe\node\<peer-id>\logs
Журналы клиентов по умолчанию хранятся в эквивалентных каталогах ...client/logs
.
Выбор форматов тоже есть. При желании JSON можно указать через интерфейс командной строки.
Как вы знаете, мы следуем трем принципам, когда интегрируем нашу работу с libp2p
. Во-первых, оставить это Каду, где это возможно, потому что на код libp2p
смотрят гораздо больше, и мы хотим стандартизировать его везде, где это возможно. Во-вторых, оставить это на усмотрение клиента — чем меньше приходится делать узлам, тем лучше. Третье — максимальная безопасность — все должно быть подписано, а данные зашифрованы. Мы находим, что в настоящее время они противоречивы. @Anselme просматривал регистры, которые по умолчанию не защищены при создании «Kademlia Records», что делает их уязвимыми для плохих узлов. Новые рекорды тоже не CRDT на Каде, так что возможны условия гонки. Последующие записи - это CRDT, так что проблем нет. Ансельм думает, что нашел решение обеих этих проблем.
@Qi_ma и @joshuef работают над другой проблемой, связанной с тем, что когда клиент сохраняет фрагменты, он находит ближайшие узлы и направляет свои данные. Мы считаем, что клиент должен делать больше работы. Мы хотим, чтобы они неоднократно запрашивали в сети ближайшие узлы и, когда они получали патч, помещали фрагмент, а не полный процесс обнаружения.
Наш текущий предпочтительный подход — это feat: Using put record for upload by maqi · Pull Request #482 · maidsafe/safe_network · GitHub, который возвращает нас к использованию реализации Kademlia put
, хотя теперь мы проверили ее во время размещения. Это лишает плохие узлы возможностей для скрытных действий, а также значительно упрощает код, связанный с PUT.
Пока загрузки идут немного медленнее, но мы уверены, что их можно будет оптимизировать в будущем, если потребуется.
Обработка платежей — это еще одна проблема, которую мы рассматриваем, в том числе через принадлежащие сети DBC, что означает, что нам не нужно проверять, что платежи были отправлены действительным узлам. в то время (поскольку у нас больше нет дерева разделов + истории) это сильно упрощает дело. И в дальнейшем мы сможем распределять вознаграждения из самой сети.
И мы рассматривали вопрос о перезапусках и обновлениях. Неисправный узел не должен хранить тот же ключ, но действительный узел, который выходит из строя во время обновления, например, должен иметь возможность воссоздать действительный идентификатор и ключи из предыдущего ключа.
Общий прогресс
@Bochaco работает с логикой DBC и платежей в сети.
@aed900 работает над настраиваемой опцией bin для инструмента тестовой сети GitHub Actions (CI), а @roland работал над реализацией фиктивной сети, которая позволяет нам более тщательно тестировать функции узла.
С обновлением Libp2p @Benno занимается поиском ошибок и тестированием возможностей AutoNat.
Помимо исправления безопасности реестра, @anselme обновил функциональность крана.
Полезные ссылки
Не стесняйтесь отвечать ниже со ссылками на переводы этого обновления для разработчиков, и модераторы добавят их сюда.
Как проект с открытым исходным кодом, мы всегда ждем отзывов, комментариев и предложений сообщества - так что не стесняйтесь, присоединяйтесь и давайте вместе создадим безопасную сеть!