Zilliqa: двухнедельный отчет #24 — поздравление от Zilliqa с новогодними праздниками

Это будет наш последний двухнедельный отчет проекта в 2018 году, и хочется сказать, что прошедший год был очень продуктивным для нашего проекта, начиная с запуска Testnet v3 — первой в мире полноценной тестсети для реализации сети и транзакций, интеллектуальное разделение контрактов — для реализации майнинга на Zilliqa, заканчивая запуском нашего нового, более безопасного языка формальной верификации, Scilla. В в январе 2019 года, когда мы впервые развернем нашу сеть, и продолжим фокусироваться на инновациях блокчейна, а также на «реальной экономике».

Наш обзор за 2018 год.

Мы гордимся тем, что являемся одним из первых участников инициативы Мессари, которая продвигает «глобальную» прозрачность в мире криптовалюты. Посмотрите наш профиль Zilliqa  на Мессари.

Мы также недавно запустили специальный технический форум  Zilliqa. По любым техническим вопросам о Zilliqa, майнинге, Scilla и др. Обращайтесь на форум.

И, наконец, хотим поздравить всех от команды Zilliqa с праздниками! Мы очень гордимся тем, что такое огромное сообщество поддерживает наш проект. Это был невероятный год для Zilliqa, поскольку мы заложили основу для децентрализованной, масштабируемой и более безопасной инфраструктуры блокчейна. Но мы знаем, что это только начало.

События

В течение последних двух недель мы были сосредоточены на развертывании нашей основной сети и стратегиях бизнеса и маркетинга на 2019 год. Что касается предстоящих событий, у нас уже есть хедлайнерские обязательства в отношении некоторых из крупнейших крипто-мероприятий в 2019 году. Также будет проводиться еще много локализованных мероприятий и семинаров, и будут организованы сообщества вокруг Zilliqa и Scilla, так что следите за новостями.

Технические обновления

С момента запуска Testnet v3 мы продолжали улучшать кодовую базу. С тех пор мы запустили новую версию Testnet v3 и выпустили страницу статуса testnet на нашем форуме. Вот некоторые из заметных улучшений, которые мы сделали за последние 2 недели.

Механизм восстановления сети

Чтобы подготовиться к непредвиденным обстаятельствам, таким как сбой сети, мы внедрили механизм восстановления для повторной загрузки и восстановления сети. Чтобы облегчить задачу, поисковые узлы будут регулярно выполнять процедуру резервного копирования в качестве опережающей меры для сбоя сети. При сбое будет запущена новая сеть из резервной копии последнего состояния.

Обновление для поиска и введения начальных узлов

Мы ввели новый сетевой уровень, который называется сетью начальных узлов. Новые начальные узлы смогут регистрироваться с помощью умножителя поиска, специального узла, который отражает трафик поиска на начальные узлы, чтобы быть частью начальной сети. Роль начального узла состоит в том, чтобы получать транзакции от таких сервисов, как кошельки, и пересылать транзакции поиску. Затем поиск выполнит пакетную обработку транзакций и назначит их соответствующему фрагменту для обработки.

Узел сегмента для запуска процесса присоединения, если он пропускает последний блок (и)

Узел шарда может пропустить последний блок из-за различных проблем, таких как периодический сбой сети. Мы ввели механизм для узла шарда, чтобы надежно проверить, не пропущен ли последний блок (и). В случае пропуска последнего блока (блоков), узел сегмента затем повторно синхронизируется и снова присоединяется к сегменту.

Добавление допуска для проверки IP-адресов в структуре шардинга

В некоторых случаях лидер службы каталогов и резервные копии могут получать представления PoW от одного и того же узла, но с разными IP-адресами (или портами), в результате чего резервная копия не может проверить структуру сегментирования, предложенную лидером. Такая ситуация может возникнуть, когда, например, узел был перезапущен его пользователем с другим IP-адресом или портом, или, возможно, когда изменение IP-адреса связано с истечением срока аренды IP-адреса. Чтобы учесть эти возможности, мы добавили значение допуска при проверке структуры разделения, позволяя резервным копиям DS принимать структуру разделения от лидера DS, если число узлов с различными IP-адресами находится в пределах указанного значения.

Изменения в определениях полей Protobuf для обеспечения обратной совместимости в постоянном хранилище

Определения полей Protobuf для сериализации и десериализации сообщений в постоянное хранилище и из него обычно устанавливаются как «обязательные». Это означает, что эти поля должны быть установлены для инициализации объекта сообщения. Однако существует вероятность того, что эти поля не будут использоваться вовсе или не будут использоваться в будущих обновлениях. Десериализация из постоянного хранилища может стать проблемой. В рамках наших усилий по поддержке обратной совместимости мы установили эти поля как «необязательные». Базовый исходный код C ++ теперь будет реализовывать проверки для тех полей, которые считаются обязательными. Это перемещает принудительное применение обязательных полей из содержимого сообщения (то есть определений Protobuf) в исходный код, который легче менять между обновлениями программного обеспечения, чем формат уже сохраненных данных.

Переводчик Scilla

Со стороны Scilla мы добавили несколько полезных встроенных модулей, таких как встроенные для преобразования  целых чисел и строк, а также функции для вычисления возведения в степень. Пожалуйста, посмотрите документы Scilla на наличие обновленной документации. Документация по анализу денежных потоков теперь также доступна здесь.

Мы также настроили инструменты покрытия для базы кода Scilla. Текущий уровень покрытия составляет 77%. Мы планируем увеличить тестовое покрытие в ближайшие недели.

Чтобы улучшить тестирование интеллектуальных контрактов со слоем блокчейна, мы добавили инфраструктуру для тестирования контрактов в блокчейне с использованием тестовых данных в Scilla Testsuite. Примеры контрактов, таких как Crowdfunding и PingPongfrom от Scilla, теперь полностью протестированы в основном коде блокчейна.

Очень важная функция, над которой мы работаем, — это добавление поддержки пользовательских типов данных в Scilla. Это значительно упростит структурирование данных, используемых в контракте, вместо того, чтобы полагаться на пары и списки. На первом этапе разработки мы будем поддерживать только плоские типы данных, аналогично объединениям структур в C. Поддержка для индуктивных типов данных (т. е. деревьев) и полиморфных типов данных (т. е. деревьев с произвольным содержимым) планируется для post-mainnet.

Инструменты разработки и библиотеки

Как и в случае с последними обновлениями, последние две недели мы потратили на то, чтобы усовершенствовать нашу библиотеку JavaScript. На этот раз мы опубликовали новую минорную версию 0.3.0, которая содержит некоторые критические изменения в обмен на улучшение работы разработчиков и исправление ошибок. Этот выпуск имеет следующие обновления:

  • Добавлены DeployParams и CallParamsto Contract.prototype.deploy and Contract.prototype.call соответственно, чтобы обеспечить детальный контроль над параметрами Transaction.
  • Возвращен набор [Транзакция, Контракт] из развертываний для лучшего контроля и самоанализа.
  • Поддержка _scilla_versionin init.json, так как теперь это требует scilla-checker.
  • Настроен сетевой код для работы с новыми ответами JSON-RPC в Core.
  • Исправлена ​​ошибка, из-за которой декоратор знаков не мог передать некоторые аргументы в основную Транзакцию.

Протокол теперь поддерживает три базовых токена: ZIL, LI (10 ^ -6 ZIL) и QA (10 ^ -12 ZIL). При этом мы также добавили из Qa и Qato zilliqa-js / util с помощью знакомого API web3.js-esque для удобной работы с преобразованиями ZIL / LI / QA. Kaya RPC также был исправлен для работы с новыми подразделениями. Баланс в Kaya RPC фиксируется в QA unit, как и ядро ​​Zilliqa. Мы также внесли изменения в Kaya RPC для соответствия спецификациям JSON RPC. А также сделали несколько исправлений для Explorer и Wallet, в том числе:

Explorer:

  • Правильно отображение всх заголовков блоков DS.
  • Исправлены инвертированные поля Gas Price и Gas Limit в окне блока TX.

Кошелек:

  • Исправлены учетные записи с балансом и одноразовым номером 0, которые невозможно инициализировать в кошельке.
  • Обработаны новое изменение цены на газ, удалив предельное значение газа и заменив его значением по умолчанию 10 ** 9 QA.
  • Отображение суммы в ZIL, округленные до шести (из двенадцати возможных) десятичных знаков.

 

Еще раз, спасибо сообществу за отличную обратную связь и поддержку проекта. Спасибо!