BTC $ 4075.8999328 (0.21 %)
ETH $ 139.900045488 (-0.21 %)
XRP $ 0.3188504571 (-0.2 %)
LTC $ 60.7232185747 (0.7 %)
EOS $ 3.7416890089 (-0.79 %)
BCH $ 159.809921526 (-1.23 %)
BNB $ 15.2707217272 (-1.86 %)
XLM $ 0.1110314828 (-2.39 %)
USDT $ 1.0106963833 (-0.44 %)
TRX $ 0.023003723 (-0.41 %)

Особенности Vyper — языка программирования для смарт-контрактов Эфириума

19:45 29/10/2018
Vyper — язык программирования для смарт-контрактов Эфириума

Введение

 

В предыдущих статьях мы обсудили возможности создания смарт-контрактов в сети Биткоин, выяснили, что собой представляет Виртуальная машина Эфириума (EVM), и рассмотрели несколько известных языков программирования на блокчейне Эфириум. Пришло время поговорить об активном языке Vyper, созданном на базе Python. Vyper активно развивается и поддерживается командой разработчиков. На данный момент он подходит для создания смарт-контрактов для блокчейна Эфириума. (Данные в статье представлены по состоянию на 18 октября 2018г.).

 

Общая информация о Vyper

 

Согласно данным официального портала, Vyper — это язык программирования, ориентирующийся на Python в разработке и нацеленный на использование Виртуальной машины Эфириума (Ethereum Virtual Machine, EVM). Как средство написания смарт-контрактов на блокчейне Эфириума, Vyper нацелен на достижение нескольких целей:

 

  — Безопасность. Безопасность смарт-контрактов на Vyper — это очевидно важная особенность.

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

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

 

Vyper — это язык программирования, ориентирующийся на Python

В связи с перечисленными целями разработчики Vyper представили целый набор неприемлемых в языке механизмов. Эти механизмы запрещены ко внедрению во избежание отклонений от центральной идеи:

 

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

  — Наследование классов. Вовлекает множество классов в иерархию файлов с последующим трудоемким поиском.

  — Вписанный ассемблер. Влияет на поиск и требует понимания команд ассемблера.

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

  — Перегрузка операторов. Вносит путающий код.

  — Функции, которые обращаются к себе и создают бесконечные петли. Эти два типа циклов вредят управлению газом и пониманию логики приложения.

  — Дробная точка, применяемая к бинарным значениям. Упразднена в пользу более понятной десятичной дробной точке.

 

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

 

Программирование на языке Vyper

Технические детали

 

Погружаясь в технические вопросы, мы видим, что Vyper строго типизирован. Все типы данных должны быть заранее определены. Тем не менее, некоторые базовые типы, предложенные компилятором, можно объединять и комбинировать в комплексные пользовательские структуры. Так поддерживается взаимодействие между типами.

 

К базовым типам относятся булевые, целые, десятичные, адреса, members, типы модулей, массивы, строки, ссылки, списки, структуры, константы. Операторы языка включают обычные наборы сравнений, арифметических и логических операций.

 

Vyper также поддерживает mapping (отображения), логирование событий для отчётности перед пользователем об окончании важных процессов и встроенные низкоуровневые функции. Они относятся не к assembly-языку, а к операционным командам, включенным в Vyper для непосредственного вызова.

 

Технические детали Vyper

Послесловие

 

Как уже говорилось выше, в данный момент язык Vyper находится на стадии активного развития. В будущем он может стать хорошей альтернативой для Solidity. Тем не менее команда разработчиков Эфириума решила придерживаться Solidity как основного языка для написания смарт-контрактов. Именно Solidity станет темой нашей следующей статьи.

 
Нашли ошибку? Выделите её и нажмите Ctrl + Enter чтобы сообщить администратору.

Самые актуальные новости о криптовалютах и блокчейне. Прочтите первым!

Зачем мне это?

Загрузка...