Существуют также: Serpent. Похож на Python. Морально устарел. Mutan. Для любителей языка C. Репозиторий не обновлялся уже 2 года. LLL (Low-Level-Lisp). Низкоуровневый на уровне ассемблера, документации почти нет. Viper.

Языки программирования Смарт Контрактов

Существуют также:

Serpent. Похож на Python. Морально устарел.
Mutan. Для любителей языка C. Репозиторий не обновлялся уже 2 года.
LLL (Low-Level-Lisp). Низкоуровневый на уровне ассемблера, документации почти нет.
Viper. Новый и пока экспериментальный язык программирования, снова Python.

Есть мнение, что выбор такого легкомысленного язык программирования, как Javascript в качестве прототипа для языка Solidity был надо сказать не слишком удачен. Главное, на что пеняют противники Ethereum это то, что к Solidity невозможно применить аппарат автоматической проверки теорем, а значит ошибки в умных контрактах будут всегда стоить очень дорого.

Выбираем фреймворк

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

Embark

Вебсайт: https://github.com/iurimatias/embark-framework
Язык: Javascript
Тесты: Javascript/Mocha

Embark поддерживает не только Ethereum, но и IPFS, Swarm, Whisper и Orbit. В комплекте удобная консоль. Пока нет поддержки пакетов ERC190.

Dapp (ранее dapple)

Вебсайт: https://github.com/iurimatias/embark-framework
Язык: Bash
Тесты: Solidity

Это даже не фреймворк, а набор утилит для работы с проектом. С помощью менеджера пакетов nix инсталлируются все необходимые зависимости. Неудобно, что утилиту ethrun нужно ставить вручную и прописывать в PATH.

Populous

Вебсайт: http://populus.readthedocs.io/en/latest/quickstart.html
Язык: Python
Тесты: py.tests

Написан на Питоне и тесты контрактов приходится писать также на нем. Находится в Alpha.

Truffle

Вебсайт: https://github.com/trufflesuite/truffle
Язык: Javascript
Тесты: Javascript/Mocha/Chai либо Solidity

Трюфель разработан и поддерживается компанией ConsenSys, стоящей за Виталиком Бутериным. Имеется поддержка миграций. Есть консоль.

OpenZeppelin

Вебсайт: https://github.com/OpenZeppelin/zeppelin-solidity
Язык: Solidity

OpenZeppelin не фреймворк, а библиотека часто используемых классов и интерфейсов, проверенных аудиторами безопасности. Интегрируется с Truffle.

Обзор утилит

Создатели фреймворков стараются не изобретать велосипеды. Коротко познакомимся с общеупотребимыми инструментами:

  • ethereumjs: набор утилит и Javascript-библиотек для работы с Ethereum. Утилита ethereumjs-vm, входящая в набор является эмулятором EVM (Ethereum Virtual Machine).
  • geth: официальный клиент Ethereum для командной строки. Также является нодой и может майнить в основном блокчейне, тестовом или приватном. С ним можно коммуницировать через интерфейс RPC.
  • testrpc: также из набора ethereumjs. Запускает эмуляцию EVM с помощью ethereumjs-vm и предоставляет RPC-интерфейс аналогичный geth.
  • solc: компиллятор скриптов на Solidity.

    Подробнее: https://www.coinside.ru/2017/11/06/pishem-svoj-token-erc20-na-solidity-s-pomoshhyu-truffle/

Нравится
Не нравится
07:40