然后,最好让本身认识新情形。假如我们完全凭证上一个链接的声名操纵,则fabric-tools此刻位于我们的主目次中。通过描写的剧本,我们可以在Docker-Compose中启动一个简朴的Fabric收集,得到对等打点员会见权限并遏制并再次删除它。起首,我们下载1.1版的Docker镜像并启动收集:
- export FABRIC_VERSION=hlfv11 && ./downloadFabric.sh && ./startFabric.sh
在收集运行时,composer-playground web-UI可以通过composer-playground 启动。它行使composer-cli的全部托管设置并会见正在运行的Fabric收集。以后刻开始,我们将Fabric视为可设置的平台/基本架构,其状态通过吻合的器材举办变动。我们不直接行使Fabric观念开拓链代码,权限或任何模子,由于Composer提供了更多上风。
实验成果
此刻我们在我们选择的目次中建设我们的BND项目。对付Yeoman(行使模板配置项目标代码天生器,如Maven Archtypes),有一个模板(hyperledger-composer:businessnetwork。可是,我已经筹备了一个存储库,我们此刻也可以行使JavaScript ES6和一些很好的器材。我们应该从开始分支“初始”开始。master 分支具有最终版本和事变版本。我们起首克隆存储库的初始分支。
git clone -b initial git@github.com:jverhoelen/fabric-composer-engine-supplychain.git
此刻我们在我们选择的编辑器中打开文件夹。Visual Studio Code很是得当Composer,由于它具有可安装的语法高亮扩展。稍作修改后你会发明它是一个NPM项目,以是我们从npm install 开始安装全部依靠项。行使npm test 我们可以运行单位测试,行使npm run lint 我们可以测试代码样式,而且行使npm run createArchive 我们可以建设the.bna 文件,我们以打包名目完成营业收集界说。让我们顿时试试看是否统统正常。
然后我们认识项目布局。lib 文件夹包括实现买卖营业处理赏罚器成果的JS文件。虽然,我们想测试这个营业逻辑并将我们的单位测试存储在test/ 文件夹中。模子界说(参加者,资产,买卖营业等)在models/ 中。
我们想起首为所需的区块链收集建模。为此,我们删除模子文件的内容,并在第一举动其指定一个新的定名空间:
- namespace org.acme.enginesupplychain
我们为参加者制造商和经销商建模,并行使Composer建模说话的担任。我们还但愿每个参加者除了姓名外尚有一个可选地点。我们将这些属性放入一个观念中:
- participant Member identified by memberId {
- o String memberId
- o String name
- o Address address optional
- }
-
- participant Manufacturer extends Member {
- }
-
- participant Merchant extends Member {
- }
-
- concept Address {
- o String country
- o String city
- o String street
- o String streetNo
- }
然后我们先容我们收集的资产:引擎块和稍后安装引擎的汽车。在这里,我们相识资产和参加者可以相互参考。引用始终指向任何范例的现有资源。我们以小“o”开头的属性老是存在于资源自己中。
- asset Engine identified by engineId {
- o String engineId
- o EngineProperties data
-
- --> Manufacturer manufacturer
- --> Car currentCar optional
- --> Merchant merchant optional
- }
-
- asset Car identified by carId {
- o String carId
- o String legalDocumentId
- }
-
- concept EngineProperties {
- o String brand
- o String model
- o Double horsePower
- o Double cubicCapacity
- o Integer cylindersAmount
- }
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|