Aergo SHIP

AERGO SHIP

Представляем SHIP: менеджер пакетов для разработки умных контрактов Клиентская среда и среда разработки для создания, тестирования и развертывания распределенных приложений.

 

aergoship

Создание крупномасштабных распределенных приложений — сложная задача. Тестирование их, обеспечение их непрерывной работы и развертывание — трудоемкий процесс. На AERGO мы планируем изменить ситуацию.

AERGO — это платформа, которая решает многочисленные уникальные задачи, с которыми сталкиваются предприятия при реализации систем и приложений на основе блокчейна. Чтобы повысить эффективность и простоту разработки, тестирования и развертывания интеллектуальных контрактов, мы создали SHIP. SHIP — менеджер пакетов умных контрактов Lua. Он связывает локальные среды разработки с Git и распределенным реестром, что значительно сокращает время, затрачиваемое на создание и управление умными контрактами. Он предлагает следующие функции:

-Настройка проекта: завершить подготовку к разработке можно простым заданием.

-Установка пакетов из удаленных репозиториев: пакеты в GitHub могут быть установлены в локальных репозиториях.

-Сборка: объединение (предварительная обработка) источников в проекте для разработки продукта, готового к распространению.

-Модульное тестирование: перед загрузкой в ​​сеть вы можете убедиться, что функциональность нового выпуска работает так, как вам нужно.

-Развертывание в локальном хранилище. Установите свои разработанные проекты в локальное хранилище, чтобы на них могли ссылаться другие проекты.

Основная философия SHIP — лаконичность; он легкий, но эффективный. Сегодня SHIP сознательно не включает в себя широкий выбор функций разработки; однако, что важно, SHIP — это постоянный проект, который будет часто обновляться. Мы примем предложения от нашего технического сообщества и продолжим добавлять функции, считающиеся ценными.

Почему мы создали менеджер пакетов?

Мы часто обращаемся к истории, чтобы выдвинуть наши гипотезы. Ранее в этом месяце Фил сделал сообщение, объясняющее наш подход к решениям с открытым исходным кодом, основанный на историческом успехе Linux и Red Hat. Когда дело дошло до разработки распределенных приложений, мы подошли к созданию менеджера пакетов таким же образом.

 

stages

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

Следует отметить, что после создания JavaScript в период с 1995 по 2010 год не было представлено никаких инструментов для сборки или управления пакетами. За 15 лет, прошедших с момента создания JavaScript, не наблюдалось значительного прогресса в улучшении состояния Интернета. Однако после выпуска Node.js в 2009 году менеджеры пакетов и упаковщики стали более распространенными, что позволило создавать динамические веб-страницы нового поколения. Создание npm, стандартного менеджера пакетов Node.js, позволило быстро развить Интернет.

В 2012 году Trello опубликовал пост, описывающий технический стек Trello

https://blog.trello.com/the-trello-tech-stack

В этой публикации был представлен ряд технологий, которые позволили бы сети работать как приложение, а не просто как страница. Сегодня он дает нам общее представление о развитии Интернета к 2012 году и о его быстром развитии в последние несколько лет. Эта быстрая эволюция действительно была вызвана созданием npm, которое сократило время, затрачиваемое на разработку веб-страниц.

Как и npm для Web, SHIP стремится обозначить ключевой момент в разработке приложений на основе блокчейна и умных контрактов. SHIP сделает разработку, тестирование и внедрение умных контрактов беспроблемной и эффективной. В конце концов, SHIP предоставит AERGO удобство использования, необходимое для привлечения следующего поколения разработчиков dApp и корпоративных блокчейнов для создания процветающей экосистемы разработчиков с открытым исходным кодом.

Как использовать SHIP

Чтобы использовать SHIP, вы должны сначала загрузить и установить следующие программы:

-Git

-JDK 8+

-Node.js

-npm

Строительство SHIP

SHIP в настоящее время официально не выпущен. Если вы хотите использовать SHIP, вам придется его построить. SHIP использует адрес GitHub, указанный ниже, в качестве исходного хранилища.

aergoio / SHIP

Получите источник от GitHub. ($ в начале команды отображает подсказку, если подсказка от системного root, подсказка — #).

$ git clone https://github.com/aergoio/ship.git

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

$ cd ship

$ ./build.sh clean deps npm build

После успешного завершения вы увидите, что файл ship- $ VERSION.tar был создан в сборке / сборке / дистрибутивах.

Разархивируйте этот файл, чтобы установить SHIP.

Затем включите каталог bin в путь PATH с помощью команды ship. Вы можете добавить .bash_profile к последней части. Это может измениться, в зависимости от вашей оболочки.

экспорт PATH = $ PATH: $ SHIP_HOME / bin

SHOP_HOME ссылается на каталог распаковки — $ {VERSION}. Установка завершена.

Создаем проект

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

$ mkdir my-first-project

В этой статье я называю это местоположение как $ {PROJECT_HOME}.

Команда ship предполагает, что текущий рабочий каталог является каталогом проекта. Давайте переместим текущий каталог в проект.

$ cd my-first-project

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

$ ship init

Если он работает правильно, файл с именем aergo.json будет создан в каталоге проекта. Файл aergo.json должен выглядеть так:

{

«Name»: «bylee / my-first-project»,

«Источник»: «src / main / lua / main.lua»,

«Target»: «app.lua»

}

Изменить настройки проекта

Информация о проекте хранится в aergo.json. Вы можете редактировать этот файл при необходимости. Давайте посмотрим на свойства этого файла.

— name — Project name: используйте это имя при импорте или размещении пакетов в хранилище в форме $ {github_account} / $ {имя_проекта}. Первоначально созданный как $ {username} / $ {project_name}, вам нужно изменить его, если ваше имя пользователя и учетная запись GitHub различаются.

-source — узнайте путь к источнику, с которого начинается сборка, относительно папки проекта.

-target — путь к файлу, в котором вы сохранили результаты сборки. Созданные файлы компилируются, а двоичные файлы и ABI генерируются и развертываются на сервере AERGO.

— зависимости — имя упомянутого пакета. Пакет относится к типу проекта, установленного в хранилище.

-тесты — путь к источнику теста. Как следует из названия, это тип массива.

-конечная точка — имя хоста и информация о порте для сервера AERGO для развертывания и запуска для интеграционного тестирования. $ {hostname}: установите его как $ {port}. Значением по умолчанию является «localhost: 7845».

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

Написание умного контракта

Теперь давайте напишем простой код. Источник: src / main / lua / main.lua.

function min(a, b)

if (a < b) then

return a

else

return b

end

end

Я написал функцию, которая принимает два числа и возвращает небольшое число. Умные контракты, поддерживаемые в настоящее время AERGO, основаны на языке lua. Давайте создадим текущий источник.

$ ship build

Если проблем нет, создается файл app.lua. Если вы откроете этот файл, он точно такой же, как src / main / lua / main.lua, потому что у вас есть только один файл для сборки. Если вы продолжите изменять исходный код и увидите, как он меняется, вы увидите, как сборка объединяет файлы.

Ранее SHIP заявлял, что может собрать несколько файлов в один. Теперь давайте проведем рефакторинг файла main.lua. Вы можете использовать команду импорта для ссылки на другой источник из источника. Переместите функцию min в src / main / lua / utils.lua, заменив существующий main.lua на:

import «./utils.lua»

Если вы выполните перестройку, вы увидите, что файл app.lua такой же, как и раньше.

Создание юнит-тестов

Давайте напишем модульный тест для функции min в utils.lua, который мы только что создали. Мы напишем тестовый код в src / test / lua / test-utils.lua. API для тестирования будет обсуждаться более подробно при следующей возможности, и на этот раз будет показан только пример.

import “aergoio/athena-343

”local suite = TestSuite(‘test suite for utils.lua’)

suite:add(TestCase(‘test min’, function()

assertEquals(3, min(3, 4))

end))

suite:run()

Добавьте тестовую запись в aergo.json, чтобы сообщить SHIP, что это файл для тестирования.

{

“name” : “bylee/my-first-project”,

“source” : “src/main/lua/main.lua”,

“target” : “app.lua”,

“tests”: [ “src/test/lua/test-utils.lua” ]

}

Для запуска теста выполните следующую команду:

$ ship test

ERROR : «Package aergoio/athena-343 not found: /Users/bylee/.aergo_modules/aergoio/athena-343/aergo.json»

Когда вы запускаете тест, вы получаете сообщение об ошибке, потому что aergoio / athena-343, который вы используете в качестве тестовой среды, не установлен. Теперь давайте установим пакет в github.

$ ship install aergoio/athena-343

Эксперименты

Инкрементная сборка

SHIP имеет прогрессивную строительную способность. Эта функция обнаруживает изменения в файлах в проекте и автоматически создает и тестирует их. Для запуска функции требуются дополнительные параметры команды build.

$ ship build —watch

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

Пример — мой первый проект.

 

 

examp

Если вы измените источник, вы увидите, что сборки и тесты отображаются в реальном времени.

WebUI

Кроме того, мы предоставляем веб-сервис, который позволяет браузеру получать доступ к следующим дополнительным параметрам порта.

$ ship build —watch —port 8080

  7 Помимо предоставления более подробной информации, чем предоставляет терминал, он также предоставляет дополнительные возможности развертывания. Это развертывание предназначено для тестирования, поэтому оно идет к порту 7845 на локальном хосте. Чтобы использовать эту функцию, сервер должен быть запущен, и в PATH должна быть установлена ​​команда aergoluac. 71

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

Когда вы выбираете меню Runner, вы получаете экран, на котором вы можете запустить развернутую функцию.

72

Заключение

SHIP предоставляет функции, которые поддерживают каждый этап вашего проекта разработки, от настройки до развертывания. Это помогает разработчикам получить структурированное программирование из существующих методов программирования, тем самым делая процесс разработки интеллектуальных контрактов более плавным и эффективным. Хотя у SHIP еще недостаточно функций, и некоторые аспекты разработки могут быть неудобны, мы планируем работать с разработчиками dApp, чтобы определить их ценности и поддержать их с помощью улучшенных функций в будущем. Ждем ваших отзывов!

Ссылка на оригинал статьи:

https://medium.com/aergo/introducing-ship-a-package-manager-for-developing-smart-contracts-d60864c8ff25


Опубликовано

в

от

Метки:

Комментарии

5 комментариев на ««Aergo SHIP»»

  1. Аватар пользователя dima927651
    dima927651

    Интерессная статья. думаю Aergo SHIP будет полезен разработчикам. Он очень клиенто ориентирован и меняется под потребности разработчиков

  2. Аватар пользователя Александр
    Александр

    Считаю аэрго одной из самых перспективных криптовалют.

  3. Аватар пользователя Виктор22
    Виктор22

    У проекта большое будущее

  4. Аватар пользователя Виктор22
    Виктор22

    Привет!

    1. Аватар пользователя dima927651
      dima927651

      Привет! А ты участвовал в Rewardrop-е?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *