🌐 #BuiltOnEOSIO: Lamington – инструмент, упрощающий разработку смарт-контрактов EOSIO

in #blockchain5 years ago

Кевин Браун, основатель Coinage, рассказывает нам о своей работе над проектом Lamington и о том, почему именно этот инструмент лучше всего подходит для составления, развертывания и тестирования смарт-контрактов EOSIO.

Как именно Lamington помогает в процессе разработки смарт-контрактов?

Lamington – это наиболее простой способ компилировать, тестировать, развертывать и вызывать действия для ваших смарт-контрактов EOSIO из Javascript и Typescript. Он генерирует полные типы Typescript из ваших ABI (осуществляя автозаполнение в VSCode, даже если вы не используете Typescript) и создает объекты контракта, так чтобы вы могли просто написать await contract.action(parameter1, parameter2) вместо необходимости погружаться на уровень EOSIO с каждым вызовом. Он также обладает набором помощников, позволяющих убедиться, что данные в таблицах выглядят так, как нужно после вызова действий, или отметить, что в действии контракта отсутствует право доступа и т.д.

Почему вы решили создать Lamington?

Мы в Coinage каждый день работаем с компаниями, нацеленными на создание масштабируемых децентрализованных платформ. В процессе разработки решений уровня 2 и приложений на базе EOSIO мы поняли, что продолжаем создавать одни и те же сценарии оболочки снова и снова, и что у нас до сих пор нет простого способа компиляции, развертывания и тестирования наших смарт-контрактов. При рассмотрении уже существующих инструментов мы осознали, что всё опробованное либо накладывало ограничения на наш проект (например, использование только одного смарт-контракта), не работало с выбранным нами языком, либо поддерживало Javascript, но не Typescript.

Нам был нужен единственный инструмент, который бы не мешал остальной работе и позволял нам писать тестовые файлы параллельно с нашими контрактами. Также невероятно полезным оказался интерфейс более высокого уровня, чтобы при вызове действий или получении строк таблицы не нужно было помнить, как работают вызовы EOSIO, а вместо этого можно было просто вызывать contract.table() или contract.action() и assertRowsEqual() или assertMissingAuthority().

Как Lamington помогает разработчикам на EOSIO?

Lamington управляет компиляцией, развертыванием, тестированием и вызовом действий/getTableRows, поэтому вам не нужно заниматься этим самому. При тестировании это позволяет вам легко развертывать чистые копии вашего контракта, так чтобы тесты не зависели от контекста друг друга. В продакшене он предоставляет вам простой интерфейс для контрактов распознающий типы, как при вызове их действий, так и при получении их данных с помощью getTableRows.

Какие у Lamington планы на будущее? Вы уже работаете над новыми функциями?

Пока ещё довольно рано расширять функционал, поэтому наша основная цель на текущем этапе – привлечь больше пользователей, чтобы мы могли исправить оставшиеся баги и выпустить v1. Coinage уже использует Lamington в производственной среде, поэтому мы знаем, что для нашего варианта использования он работает как надо, однако хотелось бы убедиться, что любые неприятные крайние случаи найдены и устранены, прежде чем мы присвоим ему номер версии. После этого мы планируем внести некоторые улучшения и облегчить пользователям управление такими вещами, как разрешения eosio.code и другими более сложными случаями. Мы намерены продолжать использовать раздел руководств на нашем веб-сайте для охвата более продвинутых концепций EOSIO с добавлением полноценных примеров, чтобы помочь людям прокачаться как разработчики на EOSIO и дать им больше, чем официальная документация.

Каким был отклик пользователей и сообщества?

Совершенно фантастическим! Одним из ярких примеров неравнодушия сообщества к Lamington стал Митч Пиериас. Он создал для EOSIO репозиторий примеров более продвинутого уровня, которые он не смог должным образом продемонстрировать или протестировать до того, как появился Lamington. Теперь же он провёл тесты Lamington для всех примеров, что помогло нам разобрать некоторые крайние случаи, с которыми мы не сталкивались в наших собственных проектах. Теперь в репозитории рядом с каждым контрактом есть набор тестов, который показывает пользователям не только то, как выглядит C++, но и то, как использовать действия для фактического достижения функциональности, продемонстрированной в примере. Сейчас он является основным разработчиком Lamington из сообщества и усиленно продвигает инструмент вперёд.
Мы всеми силами стремимся к усилению взаимодействия с сообществом, чтобы сделать Lamington ещё более ценным для широкой группы разработчиков.

Кто работает над проектом Lamington?

Lamington финансируется Coinage, однако это проект сообщества с открытым исходным кодом, так что ответ на этот вопрос – кто хочет! Мы надеемся сделать Lamington достаточно полезным для довольно широкой группы людей, чтобы разработка на EOSIO стала более доступной для инженеров любого уровня и более продуктивной для тех, кто уже знаком с ней.

Как вы оцениваете обратную связь от участником сообщества?

Прямо сейчас всё весьма анекдотично и основано скорее на представлениях, чем на фактах, как это бывает на раннем этапе развития, и наш подход сейчас сводится к тому, чтобы сосредоточиться на создании инструмента, где простые вещи легки, а сложные вещи достижимы после некоторого погружения в тему. Наш ключевой показатель успеха проекта – принятие пользователями и релиз v1.

Как проще всего начать пользоваться Lamington?

Lamington по большей части вписывается в любую структуру папок, которой вы уже пользуетесь. Вы можете начать с установки Lamington, а уже затем следовать руководству по началу работы на нашем сайте. У нас также есть полная документация по API, и если вы хотите напрямую пообщаться с основной командой, у нас есть Slack, который открыт для всех желающих.

Есть ли у вас планы по созданию других инструментов разработки?

Мы планируем расширить Lamington, чтобы он был настолько полезен в нише разработки dApp, насколько это возможно. Это включает упрощение процесса получения данных в рамках чейна и их отображения в приложениях на React или Vue, а также более надежный подход к управлению ключами и вызов действий смарт-контракта из NodeJS. Мы постоянно задаёмся вопросом, какие функции больше всего нужны остальному сообществу разработчиков EOSIO.

Что касается других инструментов – мы создаем их по мере необходимости, поэтому сейчас основное внимание уделяется тому, чтобы сделать Lamington надёжным и цельным, а в будущем мы наверняка создадим другие инструменты, которые помогут нам с выполнением нашей главной задачи – созданием децентрализованных платформ.

Где разработчики могут обсудить Lamington и внести свой вклад в проект?

Лучшее место, чтобы пообщаться с основной командой, задать вопрос или в целом поделиться впечатлениями – это Lamington Slack. Лучшее место для решения проблем или пул реквестов – это, конечно, GitHub.

Создаете на EOSIO?

Серия #BuiltOnEOSIO демонстрирует некоторые из уникальных проектов, использующих технологию EOSIO для создания более безопасного и взаимосвязанного мира. Если вы хотите предложить нам свой проект, отправьте письмо на адрес spotlight@block.one, чтобы наша команда по связям с разработчиками смогла с ним ознакомиться.

  • Команда по взаимодействию с разработчиками

Переведено @blockchained

Оригинал поста: ЗДЕСЬ


Если вам нравится то, что мы делаем - поддержите блокпродюсера blockchained в сети EOS

Развивайте сеть EOS вместе с нами - делегируйте свой голос proxy: dposproxyeos


Телеграм чат: https://t.me/EOS_RU


Загрузите десктопное приложение с открытым исходным кодом RuDex


Вы можете торговать токенами EOS на RuDEX

Coin Marketplace

STEEM 0.27
TRX 0.12
JST 0.032
BTC 68055.12
ETH 3813.21
USDT 1.00
SBD 3.72