好吧,我需要在IBM Blockchain(入门计划)中开发一个简单的应用程序。但经过近一个月的试错和成千上万的教程后,我无法完成它。所以,我的情况非常简单(我猜):我有一个models.cto文件:
namespace com.test.models
/**
* A company asset.
*/
asset Company identified by company_id {
o String company_id
o String document_key
o String document_value
o String name
o String telephone
o String email
}
/**
* A person_in_charge asset.
*/
asset PersonInCharge identified by person_in_charge_id {
o String person_in_charge_id
o String company_id
o String name
o String document_key
o String document_value
o String email
o String language
o String created_date_time
}
我试着让它成为参与者。我试图进行交易然后用.js文件做一些事情,但是只有使用资产,参与者等的复杂例子的用例和教程。我只想分别插入“PersonInCharge”和“Company”并查询(每个公司或by id whatever)也分开。
我能够使用Swagger api生成器做一个例子,但它没有按预期工作,甚至认为它创建了我想要的所有方法,如下所示:
总而言之,我想将我的链代码部署在IBM Blockchain的通道内的对等体中。我确实部署了一个大理石的例子,它确实很有效。
真的自我描述错误,而不是一般的消息:
我正在遵循本地开发和部署到IBM的“如何”指南。因此,我正在创建一个bna文件composer archive create -t dir -n .
然后使用下载的连接设置创建一张卡(来自IBM),否则使用本教程Deploying a business network on Starter Plan
,我在这一步失败:composer network start -c adminCard -n bna-blockchain -V 0.0.1 -A admin -C ./credentials/admin-pub.pem -f delete_me.card
。也许因为我无法在IBM Blockchain上实例化我的链码。
对不起,如果它看起来很混乱,请问我是否对我的问题有任何疑问。
在此先感谢,任何帮助都会很棒!
在启动网络之前,您需要安装它:
composer network install -c adminCard -a vehicle-manufacture-network.bna
我在开发过程中休息了一个月后又回来了。在那段时间里,我得到了IBM内部人员的帮助,他可以帮我完成任务。
而我在这里也是如此指出,也有些失败。
IBM人(我当然不会说他的名字)本身说上传链码(频道/链码/安装链码)的服务被打破了,但效果不好。此外,我在IBM Blockchain付费论坛中提出了一个容易回答的问题,但是根本没有任何帮助(他们甚至没有回答这个问题),即使在将近3个月之后。你找不到一个从头到尾工作的教程(除了大理石样本)。
对不起,如果我在这里看起来像什么都没有,但我真的很难把它全部放在一起工作100%。
我不会展示如何创建模型文件或事务脚本(因为在示例中有很多),但是为了在IBM上运行链代码并生成环回API,您需要执行这些命令。照这样说...
让我们来看看重要的事情:代码
首先,环境设置:
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.6 LTS
Release: 16.04
Codename: xenial
重要信息:由于有几个npm依赖项,IBM Blockchain(直到现在2019-03-23)将无法在虚拟机或hyperv等虚拟机上运行。但像亚马逊那样的硬件虚拟机(HVM)就可以了。
脚步
安装节点和npm(严格按照列出的版本)
node -v
v8.15.1
npm -v
6.4.1
curl -O https://hyperledger.github.io/composer/unstable/prereqs-ubuntu.sh
chmod u+x prereqs-ubuntu.sh
./prereqs-ubuntu.sh
npm install -g --unsafe-perm [email protected]
npm install -g --unsafe-perm [email protected]
composer-rest-server -v
v0.20.5
composer -v
v0.20.5
使用hyperledger composer-playground创建项目。导出它并浏览刚刚下载的项目的根目录(该项目也可以在本地开发)。
从IBM Blockchain下载连接设置文件(概述/连接配置文件/下载)并将其命名为connection-profile.json
。找到节点registrar
,你将用它来创建卡片。
运行npm install
。如果在安装依赖项时出现任何问题,请检查您是否使用了与我正在使用的完全相同的版本。如果不是,请将其全部卸载并从头开始。
棘手的区域
composer card create -f ca.card -p connection-profile.json -u admin -s *your-password*
composer card import -f ca.card -c ca
composer identity request --card ca --path ./credentials -u admin -s *your-password*
您将看到已生成凭证文件夹。在此文件夹中,找到文件admin-pub.pem
(credentials / admin-pub.pem)复制它的全部内容,然后将其上载到IBM Blockchain(成员/证书/添加证书)。系统将提示您重启对等体,单击“是”
在对等体重新联机后,在相同的“证书”选项卡中,找到刚刚添加的证书,在“操作”列中单击菜单,然后选择“同步证书”选项。
composer archive create -t dir -n .
composer card create -f adminCard.card -p connection-profile.json -u admin -c ./credentials/admin-pub.pem -k ./credentials/admin-priv.pem --role PeerAdmin --role ChannelAdmin
composer card import -f ./adminCard.card -c adminCard
composer network install -c adminCard -a [email protected]
composer network start -c adminCard -n *bna-name* -V *bna-version* -A admin -C ./credentials/admin-pub.pem -f delete_me.card (Output: Successfully created business network card: Filename: delete_me.card)
composer card create -n *bna-name* -p connection-profile.json -u admin -c ./credentials/admin-pub.pem -k ./credentials/admin-priv.pem (Output file: admin@*bna-name*.card)
composer card import -f ./admin@*bna-name*.card (Card file: ./admin@*bna-name*.card Card name: admin@*bna-name*)
现在你将使用(使用swagger自动生成)生成其余的api
composer-rest-server -c admin@*bna-name* -n never -w true -p 8080
请享用!