IBM 区块链 - 简单应用
IBM Blockchain - Simple Application
好的,我需要在 IBM 区块链(入门计划)中开发一个简单的应用程序。但经过将近 1 个月的反复试验和数以千计的教程,我无法完成它。
所以,我的情况很简单(我猜):
我有一个 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" 并查询(每个公司或按任何 ID)也分别。
我能够使用 Swagger api 生成器制作示例,但它没有按预期工作,甚至认为它创建了我想要的所有方法,如下所示:
总而言之,我想将我的链代码部署在 IBM Blockchain 的通道内的对等节点中。我确实部署了一个大理石示例,它确实运行良好。
真正的自我描述错误,而不是一般消息:
我正在按照 "how to" 本地开发和部署到 IBM 的指南进行操作。因此,我正在创建一个 bna 文件 composer archive create -t dir -n .
,然后使用下载的连接设置(来自 IBM)创建一张卡,然后使用本教程 在入门计划上部署业务网络
而我在这一步失败了:composer network start -c adminCard -n bna-blockchain -V 0.0.1 -A admin -C ./credentials/admin-pub.pem -f delete_me.card
。可能是因为我无法在 IBM 区块链上实例化我的链代码。
抱歉,如果它看起来令人困惑,请问我是否对我的问题有任何疑问。
在此先致谢,任何帮助都将非常棒!
在启动网络之前,您需要安装它:
composer network install -c adminCard -a vehicle-manufacture-network.bna
开发中休息了一个月回来了。当时,我得到了 IBM 内部人员的帮助,他可以帮助我完成它。
我在这里所以指出,也有一些失败。
那个 IBM 人(当然我不会说他的名字)自己说上传链码(channels/chaincode/Install 链码)的服务坏了,不能正常工作。
另外,我在 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
重要提示: IBM Blockchain(直到现在 2019-03-23)不会 运行 在 virtual box 或 hyperv 等虚拟机下 npm 依赖项。但是像亚马逊那样的硬件虚拟机(HVM)就可以了。
步骤
安装node和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 composer-cli@0.20.5
npm install -g --unsafe-perm composer-rest-server@0.20.5
composer-rest-server -v
v0.20.5
composer -v
v0.20.5
使用 hyperledger 创建项目 composer-playground。导出后在刚才下载的项目根目录下导航(项目也可以在本地开发)
在 IBM Blockchain(Overview/Connection Profile/Download) 下载连接设置文件并将其命名为 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(Members/Certificates/Add 证书)。系统会提示您重新启动对等点,单击 "yes"
等点重新上线后,在同一个Certificates选项卡中,找到刚刚添加的证书,在ACTION栏中点击菜单,然后选择选项"Sync Certificate"。
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 bna-name@version.bna
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
尽情享受吧!
好的,我需要在 IBM 区块链(入门计划)中开发一个简单的应用程序。但经过将近 1 个月的反复试验和数以千计的教程,我无法完成它。 所以,我的情况很简单(我猜): 我有一个 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" 并查询(每个公司或按任何 ID)也分别。
我能够使用 Swagger api 生成器制作示例,但它没有按预期工作,甚至认为它创建了我想要的所有方法,如下所示:
总而言之,我想将我的链代码部署在 IBM Blockchain 的通道内的对等节点中。我确实部署了一个大理石示例,它确实运行良好。
真正的自我描述错误,而不是一般消息:
我正在按照 "how to" 本地开发和部署到 IBM 的指南进行操作。因此,我正在创建一个 bna 文件 composer archive create -t dir -n .
,然后使用下载的连接设置(来自 IBM)创建一张卡,然后使用本教程 在入门计划上部署业务网络
而我在这一步失败了:composer network start -c adminCard -n bna-blockchain -V 0.0.1 -A admin -C ./credentials/admin-pub.pem -f delete_me.card
。可能是因为我无法在 IBM 区块链上实例化我的链代码。
抱歉,如果它看起来令人困惑,请问我是否对我的问题有任何疑问。
在此先致谢,任何帮助都将非常棒!
在启动网络之前,您需要安装它:
composer network install -c adminCard -a vehicle-manufacture-network.bna
开发中休息了一个月回来了。当时,我得到了 IBM 内部人员的帮助,他可以帮助我完成它。
我在这里所以指出,也有一些失败。
那个 IBM 人(当然我不会说他的名字)自己说上传链码(channels/chaincode/Install 链码)的服务坏了,不能正常工作。 另外,我在 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
重要提示: IBM Blockchain(直到现在 2019-03-23)不会 运行 在 virtual box 或 hyperv 等虚拟机下 npm 依赖项。但是像亚马逊那样的硬件虚拟机(HVM)就可以了。
步骤
安装node和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 composer-cli@0.20.5
npm install -g --unsafe-perm composer-rest-server@0.20.5
composer-rest-server -v
v0.20.5
composer -v
v0.20.5
使用 hyperledger 创建项目 composer-playground。导出后在刚才下载的项目根目录下导航(项目也可以在本地开发)
在 IBM Blockchain(Overview/Connection Profile/Download) 下载连接设置文件并将其命名为 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(Members/Certificates/Add 证书)。系统会提示您重新启动对等点,单击 "yes"
等点重新上线后,在同一个Certificates选项卡中,找到刚刚添加的证书,在ACTION栏中点击菜单,然后选择选项"Sync Certificate"。
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 bna-name@version.bna
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
尽情享受吧!