Zilliqa обновление #16 — смарт-контракты в шардинговой сети и целевые DApps
На прошлой неделе мы опубликовали наше решение одной из самых сложных и захватывающих проблем исследований в блокчейн сегодня - как запускать смарт-контракты в шардинговой сети. Мы до сих пор обращались к sharding (в модели оплаты типа биткойн) и смарт-контрактам отдельно в нашей технической документации и других материалах. В нашем недавно опубликованном решении запускается модель оплаты и умных контрактов и объясняется, как это делается эффективно.
Раньше кодовая база тестовой системы Zilliqa обрабатывала только транзакции, и у нас была отдельная тестовая сеть, которая поддерживала смарт-контракты в неосвоенной архитектуре. За последние несколько недель мы завершили реализацию всех основных функций для работы с интеллектуальными контрактами на нашей архитектуре и начнем внедрять их в нашу основную архитектуру после всестороннего тестирования.
По данной ссылке вы можете ознакомиться с объяснением нашего технического решения подробнее.
Как всегда, чтобы узнать больше о Zilliqa или обсудить технические аспекты проекта, вы можете связаться с нами через любой из наших официальных каналов ниже:
Telegram: https://t.me/zilliqachat
Slack: https://invite.zilliqa.com/
Twitter: https://twitter.com/zilliqa
Reddit: https://www.reddit.com/r/zilliqa/
Github: https://github.com/Zilliqa/zilliqa
Gitter: https://gitter.im/Zilliqa/
Обновления сообщества
Целевые Dapps для Zilliqa Ecosystem
Мы начали lдемонстрацию некоторых из получателей грантов #BuildonZIL Ecosystem Grant в нашем Twitter.
Зайдите в KZen Networks, которые работают над кошельком на основе применения Secure Multi-Party Computation для распространения генерации ключей и подписания транзакций на несколько сторон без изменений в Zilliqa протокол.
Также проверьте Appbery, которые работают над расширением Chrome для Zilliqa. Они - команда энтузиастов блокчейн разработчиков, базирующихся в Австралии, их интересы - программирование (игры Dapp, плагины и разработка SDK) и игры (World of Warcraft и FIFA).
Мы всегда ищем талантливых разработчиков и команды для подачи заявки на нашу Программу экосистемы #BuildonZIL и специально искали команды, разрабатывающие Игры, а также Финансовые приложения, такие как DEXes. Если у вас есть интересная идея или вы планируете развивать DApps в этих областях, обратитесь к нам на Gitter[https://gitter.im/Zilliqa/]
Предстоящие события
Сентябрь будет месяцем, богатым событиями, и мы посетим много мероприятий по всему миру.
1. Клуж, Румыния
Дата: 4 сентября 2018 года с 10:00 до 18:00
Мероприятие: Семинар по полной школе Scilla - обучение программированию в Scilla
2. Берлин, Германия
Дата: 6 сентября 2018 г.
Событие: децентрализованное
3. Пекин, Китай
Дата: 5 сентября 2018
Событие: PublicChain Odaily Developer Conference
https://www.odaily.com/post/5133227
4. Пекин, Китай
Дата: 7-9 сентября 2018 года
Событие: Конференция по делам конференций BlockChain
5. Ханой, Вьетнам
Дата: 15-16 сентября 2018 г.
Событие: Диалог криптоконкурсов и цифровых активов
https://www.vietnamcryptodialogue.com/
6. Сингапур
Дата: 19-20 сентября 2018 года
Событие: Консенсус: Сингапур 2018
https://www.coindesk.com/events/consensus-singapore-2018/
7. Сингапур
Дата: 19 сентября 2018 года 7-9 вечера
Событие: Zilliqa x DMM.com x LayerX: инструменты, примеры использования и новые методы по внедрению блокчейн
https://www.meetup.com/Ethereum-Singapore/events/253942745/
Новые участники команды Zilliqa
Han Wen Chua присоединился как Developer Relations Lead.
Han Wen идеалистический либертариан, стремящийся помочь создать сообщество активных разработчиков на Zilliqa. Он был активным членом майнинг сообщества в первые дни. Ранее он работал в аэрокосмической промышленности, разрабатывая беспилотные летательные аппараты и решения для пассажирских перевозок. Его другие интересы включают трехмерную печать, геополитику и про-игры.
Технические обновления
В течение последних двух недель наша техническая команда работала над реализацией журнала событий / транзакций, генератором транзакций и настройкой сложности PoW и добавлением нескольких функций в Scilla.
Ядро Blockchain
_ Событие / Получение транзакции в журнале._ Клиент (или конечный пользователь) может вызвать переход в интеллектуальном контракте, выпустив транзакцию с соответствующими параметрами. Когда транзакция достигает сети, узлы, выполняющие контракт, фиксируют обновленное измененное состояние в своей локальной базе данных и блокчейн. Однако, поскольку клиенты являются внешними по отношению к сети и не запускают сами контракты, они не могут напрямую получать значения, возвращаемые переходом. Цель events - решить эту проблему. Интеллектуальный контракт может генерировать события, которые записываются в локальное хранилище каждого узла в виде logs. При чтении журналов клиенты могут прослушивать события и получать значения, возвращаемые контрактом.
Мы разработали события и квитанции транзакций для нашей системы, а также внедрили логику поддержки этих двух новых функций на бэкэнд blockchain. Теперь он может взаимодействовать с выходом интерпретатора Scilla и генерировать сообщения JSON на сервер RPC.
Валидный генератор транзакций. На стороне создания транзакций мы изменили способ создания и отправки тестовых транзакций на узел поиска. Узел поиска теперь может загружать предварительно сгенерированные тестовые транзакции и отправлять их различным sharding с контролируемой скоростью. Чтобы поддержать вышеупомянутое изменение, мы используем постоянный том в Kubernetes, который позволяет читать и писать из нескольких контейнеров и делится объемом между поисковым узлом и генератором транзакций.
В сценарии стресс-тестирования интерфейс между генератором транзакций и поисковыми узлами представляет собой файлы транзакций, содержащие сгенерированные серийные действительные транзакции. Узлы поиска будут отслеживать каталог файлов транзакций и извлекать транзакции из любых непрочитанных файлов. транзакции отправляются с учетных записей генезиса на случайные, но действительные адреса кошельков. Чтобы максимизировать преимущества использования генератора транзакций, транзакция - если из одной и той же учетной записи генезиса - упорядочена в соответствии с их nonce, так что сгенерированные транзакции с меньшей вероятностью будут проигнорированы механизмом упорядочения транзакций после отправки на неуправляемые узлы , Узлы поиска используют счетчики учетных записей для каждого поколения, чтобы отслеживать значение nonce последней отправленной транзакции из каждой учетной записи генезиса. Эти значения могут быть установлены при запуске узлов поиска. Он также имеет набор параметров для управления скоростью отправки в каждую tx-эпоху.
Сложность Настройки PoW. Мы также внедрили первую версию регулировки сложности для PoW. Когда мы загружаем систему, каждый узел считывает параметр сложности из файла констант. После этого каждый узел обновит уровень сложности в начале первой эпохи транзакций каждой эпохи DS. В начале каждой эпохи службы каталогов (DS) каждый узел DS будет получать заявки от PoW и записывать их. Когда лидер DS предлагает блок DS, он будет вызывать «CalcNewDifficulty», чтобы создать сложность, которая заменит поле в блоке DS и объявит его каждому узлу резервного копирования DS в протоколе конечного консенсусного блока. Как только DS генерирует блок DS с новой сложность, DS будет транслировать его на shards. Каждый sharding узел примет новую сложность и использует его для расчета PoW для следующей эпохи DS.
Ниже приводится сводка других улучшений на стороне основного протокола:
- Техническое обслуживание механизма восстановления хранилища.
- Реализованная сериализация / десериализация дельты состояния для учетных записей контрактов для уменьшения размера сообщения и экономии трафика.
- Переработал верификатор порядка транзакций на узлах резервного копирования, чтобы гарантировать правильность заказа, составленного из shard лидера.
Scilla интерпретатор
Мы продолжаем нашу работу по рефакторингу по многоэтапной обработке «scilla-checker», которая анализирует и контролирует контракты Scilla. Общая структура в настоящее время существует, а оставшаяся работа заключается в разделении разбора и проверки типов рекурсивных принципов для встроенных типов данных и обработки кэширования для библиотек. Обратите внимание, что целью этого рефакторинга является обеспечение того, чтобы каждая промежуточная фаза scilla-checker
работала независимо друг от друга, что позволит реализовать пользовательские проверки в виде отдельных фаз и подключаться туда, где пользователю нужно.
Помимо рефакторинга кода, мы также работали над добавлением нескольких функций в язык. Для начала мы добавили поддержку Events на уровне языка . События в Scilla работают подобно сообщениям и могут быть созданы с использованием конструкции event
. События, созданные во время выполнения перехода, передаются вызывающему интерпретатору через output.json
.
Еще одна очень важная и полезная функция, добавленная к языку, - это возможность подписывать и проверять сообщения в рамках контракта. Схема подписи, поддерживаемая Scilla, - это Schnorr - родная схема для подписания транзакций и консенсусных сообщений в основном протоколе Zilliqa. Реализация связывает нашу реализацию C ++ Schnorr с нашим интерпретатором OCaml Scilla.
С этим мы теперь предоставляем встроенные модули Scilla для генерации пар ключей, подписывания сообщения и проверки подписи. Поддержка Schnorr теперь включает в себя несколько интересных контрактов, таких как контракт с несколькими кошельками, контракт с другими государственными каналами.
Чтобы поддерживать подписывание сообщений произвольного размера, мы теперь добавили поддержку нового типа данных ByStrX
, который представляет шестнадцатеричную строку из X байтов. ByStrX
теперь обобщает существующие типы данных« Адрес »и« Хэш ». Например, Hash
теперьByStr32
, а Address
-ByStr20
. Поддержка типов данных «Адрес» и «Хэш» была удалена с языка.
Мы также выпустили контракт Scilla, который реализует несовместимый токен на ERC-721. Гибкие жетоны уникальны по своей природе и могут отличаться друг от друга. Таким образом, они могут использоваться для представления уникального цифрового ресурса в блокчейн. Например, предметы коллекционирования, такие как у CryptoKitties. Контракт несовместимого токена имеет переходы для облегчения функций, передачи и утверждения токенов. Попробуйте выполнить несвязанный контракт в своем приложении и напишите нам свои отзывы.
Последнее, но не менее важное, мы также добавили поддержку операций с целыми делениями и модулями в Scilla.
Инструменты разработки Scilla
Параллельно с основными усовершенствованиями кодовой базы Scilla мы также работали над инструментами разработки вокруг Scilla. Далее на сервере Kaya RPC и улучшенной среде разработки Scilla представлена ниже:
Сервер Kaya RPC
У нас есть модулированные компоненты на сервере Kaya RPC. Модуляция необходима, так как позволяет нам изолировать отдельные компоненты и поддерживать будущие улучшения. Благодаря модуляции мы также представили более автоматизированные тестовые примеры для Kaya RPC. Согласно тестовому охвату Jest, 53,65% линий в Kaya RPC теперь охвачены автоматическими испытаниями. Мы стремимся увеличить охват до 80%, прежде чем включать покрытие тестирования в качестве критерия объединения филиалов.
Scilla IDE
Мы работаем над обновлением среды Scilla. Обновленная среда разработки разрабатывается с нуля, чтобы улучшить опыт разработчиков и повысить интерес.
Эта новая среда IDE нужна, чтобы заинтересованные разработчики могли окунуться в Scilla с минимальным порогом вхождения. Например, новая среда IDE будет иметь несколько важных улучшений качества разработки:
- псевдо-файловая система, поддерживаемая IndexedDB, которая позволяет разработчикам начинать с места, где они остановились от предыдущего посещения приложения.
- автоматизированное управление состоянием, позволяющее разработчикам переходить к переходу, как если бы они делали это на самом блокчейне, но с мгновенной обратной связью.
- Теперь проверяется проверка типов, а сообщения об ошибках более наглядны.
- средство просмотра дерева состояний, которое позволяет просматривать состояние контракта в родных типах JS, с возможностью просмотра необработанных типов Scilla.
Мы близки к выпуску, возможно это произойдет через неделю. Будьте на связи!
Присоединяйтесь к Zilliqa!
Мы активно проводим собеседование и стремимся привлечь высококвалифицированных специалистов, чтобы помочь Zilliqa достичь максимального потенциала. Мы ищем программистов с глубоким опытом на C ++, инженеров-компиляторов, а также партнеров и руководителей в области развития бизнеса. Пожалуйста, протяните руку, если вы чувствуете, что можете принести пользу растущей экосистеме Zilliqa!
Новости Zilliqa
Предприниматель рассказывает о том, как блокчейн энтузиасты сталкиваются с проблемой масштабируемости и упоминают Zilliqa как одно из возможных решений: [https: //www.entrepreneur.com/article/319014]https://www.entrepreneur.com/article/319014)
Xinshu говорит о масштабировании блокчейн и Zilliqa в подкасте CCN: https: //www.ccn. com / interview-zillaqa-ceo-xinshu-dong-talk-blockchain-scaling /
более давнее интервью с Arthur Falls было опубликовано только на прошлой неделе: [https://soundcloud.com/arthurfalls/the-third-web-5-zilliqa](https://soundcloud.com/arthurfalls/the-third-web- 5-zilliqa)
@crypto.red.team, I gave you a vote!
If you follow me, I will also follow you in return!
Congratulations @crypto.red.team! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!