Форум о заработке в интернете - Показать сообщение отдельно - parity.io - простой децентрализованный кошелёк Parity Fether
Показать сообщение отдельно
Старый 30.03.2022, 14:13   #3
$dollar$
Супермодератор
 
Аватар для $dollar$
 
Регистрация: 30.07.2010
Сообщений: 2,732
12 | 1
24 | 0
По умолчанию Re: parity.io - простой децентрализованный кошелёк Parity Fether

ink! 3.0: Основанный на Rust Язык Parity для смарт-контрактов WASM получил серьезное обновление



ink!, основанный на Rust язык программирования Parity для написания смарт-контрактов Web Assembly (Wasm), только что запустил свое самое крупное обновление на сегодняшний день. чернила! используется разработчиками в экосистеме Polkadot и Substrate для создания эффективных, высокопроизводительных смарт-контрактов и децентрализованных приложений для виртуальных машин Wasm, которые представляют собой альтернативу системам смарт-контрактов на основе Ethereum (EVM / Solidity).

Substrate, платформа для создания пользовательских, совместимых с Polkadot, а также "автономных" блокчейнов, содержит модульные строительные блоки для типичных компонентов блокчейна, которые упрощают и ускоряют создание блокчейна разработчиками. Эти строительные блоки известны как поддоны. Библиотека поддонов Substrate включает поддон `Контракты`, который позволяет разработчикам встроить функциональность смарт-контрактов на основе Wasm в свой блокчейн. ink!, расширение языка программирования Rust, - это то, что позволяет разработчикам писать смарт-контракты для блокчейнов, которые используют поддон контрактов.

Эта последняя версия чернил! включал переписывание всех основных компонентов, из которых состоял его предшественник, ink! 2.0. За это время многие команды создали смарт-контракты Wasm с использованием ink!, и отчасти благодаря их вкладу и отзывам проект значительно эволюционировал по сравнению с предыдущими выпусками.

Помимо выпуска чернил! 3.0, мы также улучшили панель контрактов для повышения производительности parachain и добавили некоторые новые функции для улучшения вызовов и производительности между контрактами, что значительно упрощает разработчикам написание более сложной логики. Наконец, есть также некоторые изменения в инструментах разработчика с выпуском `cargo-contract` 1.0.

Почему Rust и Wasm?
В Parity мы большие поклонники Rust и использовали его для написания начальной реализации Polkadot. Rust - это продвинутый и высокоэффективный язык программирования, который уделяет приоритетное внимание правильности и помогает предотвращать ошибки в программном обеспечении, благодаря активному сообществу вокруг него и поддержке со стороны крупных компаний, таких как Mozilla, Google, Microsoft и Amazon.

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

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

Wasm расширяет число языков, на которых могут быть написаны смарт-контракты, включая Go, C / C++ и, конечно же, Rust. Несмотря на все преимущества, которые он предоставляет, мы считаем, что Wasm представляет будущее инфраструктуры и приложений для смарт-контрактов и представляет собой улучшение по сравнению с системами предыдущего поколения.

ink! 3.0
Основная идея, лежащая в основе чернил! 3.0 заключается в том, что он выглядит и ощущается так же, как Rust. ink! синтаксис немного изменился, чтобы улучшить отображение из ink! к сгенерированному коду Rust. То, что видят пользователи, - это в основном то, что будет сгенерировано ink!. Теперь синтаксис в значительной степени идентичен языку программирования Rust. Это имеет то преимущество, что все инструменты, которые разработчики Rust знают и любят, такие как rust‒analyzer и Clippy, работают просто из коробки.

Помимо ощущения ржавчины, давайте взглянем на наиболее значительные изменения, произошедшие в ink! с версией 3.0.

Поддержка характеристик — одна из самых ожидаемых функций ink! 3.0 - это его поддержка Rust, которую лучше всего описать как обеспечивающую более простой опыт разработки. С помощью нового процедурного макроса `#[ink::trait_definition]` теперь можно определять ваши собственные определения признаков, которые затем могут быть реализованы с помощью ink! смарт-контракты. Это позволяет определять общие интерфейсы смарт-контрактов для различных конкретных реализаций. Это может быть полезно для определения стандартов контрактов, определенных сообществом. Обратите внимание, что это чернила! определение признака может быть определено где угодно, даже в другом ящике!

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

Делегировать вызов — добавление `delegate_call` позволяет контрактам переадресовывать полученный вызов другому контракту. Одним из вариантов использования для этого является реализация шаблона обновления прокси-сервера для смарт-контрактов.

Расширения цепочки - Эта функция позволяет разработчикам напрямую обращаться к поддонам субстрата из своих контрактов, позволяя им подключаться к богатой экосистеме разработки субстратов.

cargo-contract 1.0
Наряду с выпуском чернил! 3.0 мы также выпускаем "cargo-contract" 1.0. "cargo-contract" - это удобный инструмент разработчика для создания, тестирования и развертывания ink! контракты. Некоторые заметные обновления в этом выпуске включают:

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

Правила нанесения ворса для чернил! смарт—контракты - Благодаря автоматической проверке исходного кода на наличие программных и стилистических ошибок, ink! разработчики получают предупреждения о распространенных ошибках. В дальнейшем мы хотим последовательно создавать коллекцию правил нанесения линта для чернил! контракты истекают. То, что мы имеем в виду, - это правила, которые помогут вам снизить затраты на газ, сократить количество контрактов, исправить шаблоны использования API и указать на недостатки безопасности.

Поддон для контрактов подложки
Поддон контрактов - это среда выполнения Substrate для смарт-контрактов Wasm. Он может выполнять смарт-контракты на любом языке программирования, который компилируется вплоть до Wasm, при условии реализации API-интерфейса Contracts pallet. чернила! Это один из языков, который делает это для Rust.

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

В соответствии с режимом, который мы называем “автоматическое взимание депозита”, эта стоимость автоматически оплачивается стороной, подписавшей контракт, а не самим контрактом. Абонент контракта платит депозит за каждый контракт, в котором в результате выполненного вызова было создано новое хранилище. Аналогичным образом, вызывающий абонент получает возмещение по всем контрактам, из которых при вызове было удалено хранилище.

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

Спасибо ink! сообщество
На протяжении многих лет и нескольких выпусков, ink! эволюционировал, чтобы поразить цель выглядеть и чувствовать себя как Ржавчина. На данном этапе он обладает всеми функциями, которые программисты Rust признают и которые необходимы для дальнейшего расширения их возможностей по написанию, обновлению и обоснованию сложных смарт-контрактов. Пока чернила! в настоящее время это всеобъемлющий язык, он все еще находится в стадии разработки и, прежде всего, является проектом, ориентированным на сообщество.

Благодаря вводу чернил! сообщество, чернила! развился, чтобы стать языком, который удовлетворяет потребности нашего общего будущего.

Следите за тем, что происходит
Итак, чего же ты ждешь? Посмотрите, что происходит, и посмотрите, что вам нравится в ink!.

Для разработчиков, заинтересованных в том, чтобы узнать больше о создании смарт-контрактов Wasm, ознакомьтесь с первой в истории конференцией по смарт-контрактам Wasm, которая состоится 31 мая 2022 года и будет организована сообществом.
$dollar$ вне форума   Ответить с цитированием