Включение смарт-контракта в Vite TestNet


  • Reward

    Мы рады сообщить, что в 04:02:15 (UTC + 8), 18 января 2019 года, запланированный хард-форк под названием «Smart Fork» был успешно завершен в Vite TestNet. Это важная веха в развитии проекта. На этом этапе Vite TestNet позволяет развертывать и вызывать смарт контракты. Пожалуйста, не забудьте обновить версию gvite до версии 1.2.2 или выше.

    Смарт контракт - это основная технология публичной цепочки блоков, которая настолько важна, что большинство проектов публичных сетей предпочитают дождаться запуска основной сети, чтобы включить смарт контракты. Миссия Vite всегда заключалась в том, чтобы создать публичный блокчейн, который можно использовать в реальных случаях. Чтобы сделать TestNet более продуктивным и подготовиться к запуску более надежной MainNet, мы считаем, что включение смарт контракта в Vite TestNet соответствует как первоначальному замыслу Vite, так и преимуществам для пользователей. Будучи первой публичной цепочкой на основе DAG, которая успешно внедряет смарт контракты в мире, разработчики dApp смогут испытать более быструю, безопасную и простую в использовании децентрализованную платформу приложений с Vite, чем когда-либо прежде.

    Что такое смарт-контракт ?

    Термин «смарт контракт» (по русски умный контакт) восходит по крайней мере к 1995 году и был предложен американским ученым-программистом и междисциплинарным юристом Ником Сабо. Он описал умный контракт как «набор обещаний, указанных в цифровой форме, включая протоколы, в рамках которых стороны выполняют эти обещания». Еще одно полезное рабочее определение, данное Investopedia: «Интеллектуальные контракты - это контракты с самостоятельным исполнением, причем условия соглашения между покупателем и продавцом записываются непосредственно в строках кода». С точки зрения Vite, умные контракты являются более надежным ограничением в экосистеме публичных цепей, чем реальные контракты.

    Что такое асинхронный смарт-контракт ?

    Кросс-контрактные вызовы в Ethereum представлены как вызовы функций или внутренние транзакции. Этот набор вызовов либо завершен в то же время, либо происходит полный сбой. Очевидно, что подобная атомарная семантика ACID может стать узким местом производительности в системе. Например, скорость выполнения контракта существенно влияет на время генерации блока и параллелизм выполнения контракта, который блокчейн может поддерживать с ограниченной отказоустойчивостью. Для решения этой проблемы Vite использует асинхронную архитектуру, управляемую сообщениями, на основе известного решения централизованной интернет-технологии. Умные контракты в Vite не будут делиться состояниями, а будут общаться друг с другом посредством обмена сообщениями. Это уникальный асинхронный интеллектуальный контракт Vite, в котором асинхронная модель является наиболее важной.

    Асинхронная Схема

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

    Асинхронная модель Биткойн и Эфириум относительно проста. Они помещают все инициированные пользователем транзакции в неподтвержденный пул транзакций. Всякий раз, когда майнер упаковывает их в блок, транзакции одновременно записываются и подтверждаются. Поскольку блокчейн продолжает расти, транзакции в конечном итоге достигают заданного уровня подтверждения подтверждения. Очевидно, что есть две проблемы с этой асинхронной моделью.

    • Неподтвержденные транзакции не сохраняются в книге. Они не участвовали в процессе консенсуса и поэтому нестабильны. Нет способа предотвратить повторную отправку транзакций.
    • Не существует асинхронной схемы между записью и подтверждением транзакций. Транзакция записывается в книгу только после подтверждения. Скорость записи зависит от скорости подтверждения.

    Vite устанавливает более полную асинхронную модель в протоколе. Сначала транзакция разделяется на пару транзакций на основе модели «запрос-ответ». Будь то перевод или вызов по контракту, как только транзакция запроса записывается в бухгалтерскую книгу, транзакция считается успешно инициированной. Кроме того, запись транзакции и подтверждение транзакции также являются асинхронными. Транзакция может быть записана в регистр DAG Vite и не будет заблокирована процессом подтверждения, который выполняется по цепочке снимков асинхронно. Это типичная модель «производитель-потребитель» - независимо от производительности транзакций, потребитель всегда может переварить с постоянной скоростью, полностью используя ресурсы платформы и улучшая пропускную способность системы.

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

    Стоимость Смарт Контракта

    • Стоимость
      В Vite TestNet на создание умного контракта расходуется 10 VITE, которые будут уничтожены.
    • Квота
      Квота для транзакции запроса на создание контракта предоставляется создателем контракта, в то время как квота для транзакции ответа на создание контракта исходит от уничтожения VITE. В TestNet, уничтожив 10 VITE для создания умного контракта, вы получите квоту до 1000000, специально для целей создания контракта. Аналогично созданию контракта, выполнение контракта также потребляет квоту. Транзакция запроса контракта и транзакция ответа контракта используют квоту инициатора транзакции и адресс контракта соответственно.
    • Квота Приобретение
      В TestNet адресс контракта может получать квоту только путем размещения стейкинга. Если для адресса недостаточно квоты, делегированная консенсусная группа не будет упаковывать какие-либо транзакции для этого контракта, поэтому поставщик контракта должен всегда застейкать адекватное кол-во токенов Vite.

    Язык Смарт Контракта

    Ethereum предоставляет Solidity, язык программирования для разработки умных контрактов. Чтобы поддерживать асинхронную семантику, Vite расширяет Solidity и определяет набор синтаксиса для обмена сообщениями. Расширенная Solidity in Vite называется Solidity ++.

    Solidity ++ поддерживает большую часть синтаксиса Solidity, но больше не будет поддерживать синхронные вызовы функций между контрактами. Разработчики могут определять сообщения с помощью ключевого слова «message» и определять обработчики сообщений с помощью ключевого слова «onMessage» для обеспечения связи между контрактами. Сообщения в Solidity ++ компилируются в инструкции CALL. В результате транзакция запроса генерируется и добавляется в книгу Vite, которая играет ключевую роль в качестве промежуточного программного обеспечения для асинхронной связи между контрактами, обеспечивая надежное хранение сообщений и предотвращая дублирование.

    См. Https://vite.wiki/tutorial/contract/contract.html для получения подробной технической документации для изучения умного контракта Vite.

    Мы искренне приглашаем разработчиков / программистов dApp по всему миру создавать умные контракты на Vite, чтобы создать обширную библиотеку контрактов и создать полную экосистему Vite.


Log in to reply
 

Suggested Topics