В рамках Convector Suite мы решили развернуть библиотеки Dev Env и превратить их в самостоятельный проект. Основная причина этого решения заключается в том, что мы знаем, что работа со средой при разработке с использованием Hyperledger Fabric и других фреймворков может оказаться непосильной задачей. Мы всегда видим людей в чатах, на каналах и блогах, которым тяжело справляются с этими задачами. Это достаточно большая проблема, чтобы быть собственным продуктом.
Если вы не знакомы с Convector Suite, ознакомьтесь с этим сообщением: Объявление: Convector, платформа JavaScript для систем смарт-контрактов
Пакет Convector Suite расширился с момента запуска 5 месяцев назад. Изначально он состоял только из библиотек Convector Smart Contract и нескольких утилит для установки и обновления смарт-контрактов во время разработки.
Смарт-контракт конвектора выглядит следующим образом:
Несколько месяцев назад у Convector появился собственный CLI, поэтому настройка нового проекта Convector стала делом одной командной строки. Посмотрите этот пример, чтобы сравнить, как выглядит смарт-контракт Convector с обычным Go или Node в Hyperledger Fabric.
Convector CLI - лучший способ начать новый проект. Но он по-прежнему использовал довольно простые и фиксированные среды разработки.
Видите две последние команды (npm run env:restart
и npm run cc:start -— toke 1
)? Их заменяет недавно созданный Hurley.
Все мы знаем, что начать работу с новыми технологиями может быть сложно, поэтому мы работаем над тем, чтобы сделать это проще. Hurley - это проект с открытым исходным кодом, входящий в состав Convector Suite, который позволяет разработчикам развертывать сети разработки и оптимизировать жизненный цикл разработки с помощью всего нескольких команд.
Hurley не зависит от смарт-контрактов конвекторов. Так что он может работать с ним или без него. Вы также можете использовать его для установки и обновления цепного кода Golang и vanilla Node.
Начать с Херли довольно просто. Его единственное требование - наличие и работоспособность Docker CE. Hurley даже загрузит ваши зависимости Hyperledger Fabric.
$ npm i -g @worldsibu/hurley
Благодаря этому теперь вы можете использовать Hurley в любом пути к папке, который захотите. Например, давайте загрузим образцы тканей, чтобы использовать эти примеры здесь.
$ git clone https://github.com/hyperledger/fabric-samples.git $ cd fabric-samples
Создайте сеть блокчейнов с 3 организациями и 2 пользователями в каждой организации, а также добавьте 2 канала.
$ hurl new --organizations 3 --users 2 --channels 2
Подождите несколько секунд (возможно, минут, если Fabric еще не загружен).
Теперь перейдем к проекту Fabric Samples, который мы хотим установить. Обязательно запустите hurl install
внутри папки, в которой находится ваш исходный код.
$ cd chaincode/fabcar/go/ $ hurl install fabcar golang [hurley] - installing smart contract located at /Users/walter/Development/testhackhurley/fabric-samples/chaincode/fabcar/go ... 2019-01-07 09:49:08.483 CST [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc 2019-01-07 09:49:28.928 CST [main] main -> INFO 003 Exiting.....
Вуаля! Вы сами успешно установили смарт-контракт.
Если вы должны были внести изменения в исходный код и хотите перейти на код, просто внесите изменения и запустите.
# change 1.2 for the new version of your smart contract $ hurl upgrade fabcar golang 1.2
Hurley оптимизирует жизненный цикл разработки, так что вы можете сосредоточиться на деловых вопросах, таких как дизайн смарт-контракта.
После версии 1.0.5
Convector CLI будут генерироваться новые проекты с поддержкой Hurley вместо устаревшей Dev Environment. Вы по-прежнему можете запускать те же команды NPM или можете запускать команды Hurley напрямую, если вы установили его глобально.
# Install a blockchain $ npm run env:restart # Install to your blockchain - From the root of your project $ npm run cc:start -- product $ npm run cc:start -- product 1.2 # Install a blockchain $ hurl new # Package your smart contract's code - From the root of your project $ npm run cc:package -- product org1 # Install to your blockchain - From the root of your project cd ./chaincode-product $ hurl install product node $ hurl upgrade product node 1.2
Преимущество использования Hurley напрямую заключается в том, что вы можете выполнять более сложные задачи.
Некоторые примеры:
# Install a chaincode with a different name $ hurl install anothernameforyourcc node # Install a chaincode in a different channel $ hurl install <chaincode> node --channel ch2 # Install a chaincode in a path different than current $ hurl install <chaincode> node -P ./sourcecode/chaincode
Считаете это полезным? Мы были бы рады получить известия от вас. Как вы думаете, какую следующую функцию должны поддерживать Hurley или Convector? Сообщите нам об этом на странице проблем.