Rust Contracts & WebAssembly. Спикер: Николай Вольф

Ведущий разработчик Parity Technologies Николай Вольф расскажет о преимуществах использования WebAssembly и Rust, а также о синергии данных решений в сочетании с Блокчейн.

WebAssembly

WebAssembly часто воспринимают как Game changer для Web

Снимок экрана 2018-02-19 в 21.08.30.png

Game changer позволяет решать задачи, которые не решались или решались неэффективно на других платформах, в данном случае для Web.

Стоит также отметить, что в Web разработке всегда существовала потребность в детерминированных вычислениях, которые одинаково выполняются во всех браузерах. Требования, предъявляемые к WebAssembly (подобным вычислениям) аналогичны и в Блокчейн - программы, содержащие такие вычисления должны выполняться быстро и занимать мало места. По данной причине, можно утверждать что, WebAssembly это Game changer не только для Web, но и для Блокчейн.

WebAssembly уже используется в Parity Technologies в следующих проектах:

Снимок экрана 2018-02-19 в 21.45.21.png

  • Polkadot

Polkadot позволит обеспечить консенсус между различными Блокчейн в рамках единого, большого консенсуса, что упростит взаимодействие. Данный «над консенсус» будет реализован как программа на WebAssembly и спецификация консенсуса будет полагаться на спецификацию WebAssembly.

  • Частные сети

На сегодняшний день уже можно активировать виртуальную машину WebAssembly, запустить приватную сеть и стать первопроходцем в применении данной технологии

Kovan

Kovan - публичная тестовая сеть, которая поддерживается только нодами Parity

  • eWasm

eWasm - WebAssembly на Ethereum

  • Ключевые преимущества WebAssembly
  • Компактный байткод - использование бинарного формата
  • Детерминизм - если не считать операции с дробными числами, то существует определенность на всех этапах проведения операций и это значит, что следуя спецификации результат детерминирован
  • Перспективный таргет, поддерживаемый крупными игроками - WebAssembly это не инициатива одного игрока, это коллаборация таких крупных игроков как Microsoft, Google, Apple, Adobe, Mozilla и т.п., что обеспечит WebAssembly поддержкой экспертизы высокого уровня
  • Harvard architecture - архитектура при которой код и данные не пересекаются
  • Формально WebAssembly - это стековая машина (Стековая машина - минимальная машина, которую можно трансформировать в другие машины на target платформе)
  • Поддержка бэкендом с большими наработками по оптимизации (llvm) - llvm - это бекэнд компилятор, который используется во многих современных языках для производства кода. llvm позволяет производить высокооптимизированный код для WebAssembly

Теперь ответим на важный вопрос

Снимок экрана 2018-02-19 в 23.03.53.png

Рассмотрим варианты:

  • С

Снимок экрана 2018-02-19 в 23.01.27.png

С довольно простой язык, на нем сложно выразить абстракции высокого уровня. Также язык небезопасен при использовании памяти

  • С++

    Снимок экрана 2018-02-19 в 23.08.06.png

    С++ улучшенная версия С, но также язык небезопасен при использовании памяти, допускает неопределенное поведение

  • Haskell
  • Функциональный язык, но большинство современных Блокчейн систем работают с глобальным изменяемым состоянием, что плохо сочетается с функциональным подходом Haskell.

    Улучшая Haskell - получаем Rust

    Rust

    Снимок экрана 2018-02-19 в 23.23.45.png

    Rust это уникальное сочетание высокоуровневых абстракций, которые можно найти в таких языках как Haskell, Scala, C#, Swift. Rust взял лучшее из данных языков, и именно то, что ложиться на основы Rust.

    Преимущества Rust

    Снимок экрана 2018-02-19 в 23.30.33.png

    Учитывая вышеописанное, приходим к выводу

    Снимок экрана 2018-02-19 в 23.32.42.png

    WebAssembly и Rust базируются на одних и тех же принципах, что говорит о том, что их целесообразно использовать в связке.

блокчейнrustwebassemblyparitycyberevents
15
5.165 GOLOS
0
В избранное
cyberevents
На Golos с 2017 M08
15
0
Комментарии (0)
Сортировать по:
Сначала старые
Зарегистрируйтесь, чтобы проголосовать за пост или написать комментарий
Авторы получают вознаграждение, когда пользователи голосуют за их посты. Голосующие читатели также получают вознаграждение за свои голоса.