BTC $ 5530.2150487 (-9.82 %)
XRP $ 0.4562813256 (-3.84 %)
ETH $ 176.296475363 (-8.59 %)
BCH $ 418.117705339 (-10.36 %)
XLM $ 0.2246961778 (-6.78 %)
EOS $ 4.4284490703 (-8.95 %)
LTC $ 42.3429042957 (-9.73 %)
USDT $ 0.9787512545 (-1.01 %)
ADA $ 0.0606981461 (-11.26 %)
XMR $ 84.2061645565 (-13.5 %)

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

19:45 29/10/2018

Введение

 

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

 

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

 

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

 

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

 

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

 

  • Модификаторы. Потенциально приводят к неправильной интерпретации кода. Применение условий и изменений состояний вредит внятности. Кроме того, люди вынуждены искать соответствующие ключевые слова в коде.
  • Наследование классов. Вовлекает множество классов в иерархию файлов с последующим трудоемким поиском.
  • Вписанный ассемблер. Влияет на поиск и требует понимания команд ассемблера.
  • Перегрузка функций. Несколько функций с одинаковыми именами путают пользователей. В результате необходимо проверять, какая функция будет вызвана на каждой итерации выполнения программы.
  • Перегрузка операторов. Вносит путающий код.
  • Функции, которые обращаются к себе и создают бесконечные петли. Эти два типа циклов вредят управлению газом и пониманию логики приложения.
  • Дробная точка, применяемая к бинарным значениям. Упразднена в пользу более понятной десятичной дробной точке.

 

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

 

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

 

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

 

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

 

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

 

Послесловие

 

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

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

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

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

Загрузка...