На прошлой неделе мы выпустили бета-версию Trinity Mobile 0.6.0. Это был существенный шаг вперед для мобильной версии, включая ряд значительных изменений и улучшений. Добавление кворума узлов значительно повышает безопасность кошелька при взаимодействии с Tangle, поскольку требует консенсуса между несколькими узлами, прежде чем ответ будет считаться действительным. Мобильный пользовательский интерфейс также претерпел полную переработку пользовательского интерфейса с обновленными модальными окнами, причудливой анимацией и доработками. Присоединяйтесь к бета-версии и попробуйте сами здесь.
В последнем обновлении мы объявили о наших планах представить Trinity Mobile и Desktop для второго аудита. Приложения будут проверены ведущей фирмой по безопасности, чтобы гарантировать, что они будут максимально безопасными после выпуска в полном объеме. Соответственно, работа была сосредоточена в первую очередь на подготовке к аудиту. Это означает пересмотр наших функций безопасности, базовой логики и методологий хранения. Конечно, косметические изменения могут подождать, но основные функции должны быть готовы к работе.
Одна важная функция, над которой мы работаем некоторое время, - это перенос хранилища в базу данных Realm. Это имеет некоторые преимущества по сравнению с ранее использовавшимся AsyncStorage. А именно, Realm позволяет повысить производительность, стабильность и масштабируемость. С появлением локальных моментальных снимков пользователи все больше полагаются на свое местное государство. Если вы запрашиваете у узла информацию о прошлых транзакциях, есть разумная вероятность, что он больше не будет хранить эту информацию. Realm позволит нам реализовать удобный способ импорта и экспорта состояния в дальнейшем, чтобы пользователи могли сохранять полную историю транзакций исходного кода при переходе между устройствами. Realm также имеет преимущества для конфиденциальности - за счет государственного шифрования. Собственная структура Tangle крайне затрудняет объединение адресов, принадлежащих одному пользователю. Однако, если состояние вашего кошелька остается незашифрованным, вы становитесь потенциальной целью для злоумышленников. Используя Realm, мы можем зашифровать историю транзакций пользователей - как на устройстве, так и позже, в резервных копиях состояния, когда добавлен импорт / экспорт состояния.
В последние недели производительность приложений была в центре внимания. В React Native чистый JavaScript полагается на однопоточную среду; где любая тяжелая работа будет выполняться в том же потоке, что и компоненты пользовательского интерфейса. Нам известны некоторые узкие места, которые могут особенно повлиять на более слабые устройства Android. Следовательно, имеет смысл переместить любой тяжелый нативный поток и, таким образом, выполнить его в отдельном потоке. Соответственно, мы работаем над перемещением собственных запросов генерации подписи и пакетных запросов Proof of Work (где в настоящее время PoW выполняется последовательно - с каждым набором попыток транзакции, передаваемых один за другим назад и вперед через мост JS). Для удобства мы можем воспользоваться монорепозиторием Entangled на основе языка C от IOTA Foundation. В более долгосрочных планах - постепенно перенести всю логику транзакций на нативную, освободить как можно больше основного потока js и обеспечить более плавное взаимодействие с пользователем. По мере того, как мы смотрим на Trinity V2 и с будущим выпуском обновленных клиентских библиотек, это станет областью повышенного внимания.
Помимо соображений безопасности и производительности, мы также работаем над увеличением тестового покрытия. В основном мы добавляли модульные тесты для компонентов пользовательского интерфейса рабочего стола и оболочек собственных библиотек. Мы также добавим интеграционные тесты, касающиеся основных функций протокола IOTA, прежде чем отправлять сборки на аудит. Эти тесты не только гарантируют меньшее количество ошибок, но также улучшат общий рабочий процесс проекта Trinity, когда мы приступим к разработке V2.
Как всегда, если вам интересно следить за прогрессом Trinity, вы можете сделать это, отслеживая репо или присоединившись к нашему серверу Discord.
Мы также хотели бы выразить нашу благодарность участникам сообщества delki8, Thoralf, Marco Geier, W1ndChaser и carlosfromnewyork-heyheyhey за их недавний вклад в проект.
Вот некоторые из PR, которые были недавно завершены или над которыми в настоящее время работают:
Desktop - [WIP] Add unit test coverage (#994) - [WIP] Create Realm migration component (#857) Mobile: - Mobile 0.6.0 release (#983) - Fix iOS zoom calculation (#995) - Fix issues with dimensions related to Status Bar (#980) - Android build fixes (#969) - Fix modal rerendering bug (#959) Shared: - [WIP] Implement Realm database and encrypt state (#375) - Remove unresponsive nodes from default nodes list (#970) - Increase timeout for attachToTangle network requests (#980, #982)