Board logo

标题: Hyperledger Composer 基础,第 1 部分 建模和测试您的区块链网络-4 [打印本页]

作者: look_w    时间: 2018-3-17 12:26     标题: Hyperledger Composer 基础,第 1 部分 建模和测试您的区块链网络-4

测试业务网络模型非常适合用作您将要构建的应用程序的一种蓝图,但除非(在某个时刻)得到某个实际结果,否则事物的模型没什么用。例如,如果您将要建设一栋建筑,那么一栋摩天大楼的一组蓝图就至关重要,但是,除非在某个时刻将它们实际用于建造(实例化)一栋实际建筑,否则它们没多大用处!
返回到业务模型,如果想让该模型变得有用,就需要将其实例化。但这对区块链应用程序意味着什么?
Asset 和 Participant 注册表之前已经看到了针对 Grower 参与者、Shipment                资产等的模型。现在是时候将这些资源实例化了,它们的实例将位于各自的注册表中。所以资产实例位于 Asset 注册表中,参与者实例位于                Participant 注册表中。
Perishable-network 模型包含一个交易,该交易在 lib/logic.js                模块中实现为一个名为 setupDemo() 的 JavaScript 函数,您可以使用该函数实例化模型,并在 Asset                和 Participant 注册表中创建条目。与手动输入模型相比,这提供了让业务网络更快地利用模板正常运行的一种方法。
我不会在这里介绍 setupDemo() 函数,但我想指出它执行的 3 件事:
鼓励您在编辑器中打开 lib/logic.js 文件并自行查看它。
实例化模型要执行 SetupDemo 交易,请单击 Submit Transaction 按钮,一个类似图 4                的模态对话框将会出现。
图 4. SubmitTransaction - SetupDemo确保 SetupDemo 显示在 Transaction Type 下拉列表中,然后单击                    Submit 按钮。成功执行交易后,您会看到一条告知您结果的简短通知消息。
在左侧 ASSETS 窗格中选择                Grower,它的所有实例都将出现在右侧(图                5)。其他资源也是如此(请自行试验!)。
图 5. 一个 Grower 资产实例
既然已经定义了一个业务网络,以及各自注册表中的资产和参与者,现在可以测试您的网络了。
交易是什么?在本节中,目前我已经介绍了资产和参与者,但业务模型中的交易是什么?它们显示在何处?
首先回答第一个问题:交易表示应用程序的业务逻辑(智能合约或链代码)。setupDemo()                生成的智能合约所执行的业务逻辑规定了以下条件:
那么这些交易显示在何处呢?交易不会自行实例化,而在 lib/logic.js 中显示为                JavaScript 代码。
图 6 显示了执行合约中的第二条规定(货物延迟则不付款)的智能合约代码(来自 lib/logic.js)。
图 6. 智能合约:货物延迟处罚




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0