Page 109 - 《软件学报》2021年第11期
P. 109

张富利  等:一种智能合约微服务化框架                                                             3435























                                       Fig.8    CPU’s usage of chaincode-marbles-org2 container
                                          图 8  chaincode-marbles-org2 容器 CPU 使用率
                 3.3   结果分析
                    本节旨在从两个方面对所提出来的智能合约微服务化框架及原型平台 Mictract 进行分析,分别是可行性与
                 部署效率.
                    (1)  可行性
                    可行性是本文首要关心的问题,智能合约微服务化框架需保证智能合约运行无误.为此,本文将 Marbles 进
                 行微服务化改造,验证其是否满足预期功能.操作过程见表 7.表 7 为表明智能合约微服务化框架确保智能合约
                 正确运行,并不是为了展示 Marbles 链码本身的功能,故未进行全部功能的调用.结果表明,智能合约微服务化改
                 造满足预期,可以保证智能合约运行的正确.
                                         Table 7    Operation process of Mabrles by Mictract
                                               表 7   Mictract 操作 Marbles 过程
                    步骤                  操作                                结果                  满足预期
                             {“Args”:[“initMarble”,“marbleDop”,    INFO001 Chaincode invoke
                     S1                                                                          √
                                 “blue”,“20”,“Mictract”]}          successful.result:status:200
                                                             {“docType”:“marble”,“name”:“marbleDop”,
                     S2      {“Args”:[“readMarble”,“marbleDop”]}                                 √
                                                             “color”:“blue”,“size”:20,“owner”:“Mictract”}
                                                                   INFO001 Chaincode invoke
                     S3   {“Args”:[“transferMarble”,“marbleDop”,“test”]}                         √
                                                                   successful.result:status:200
                                                             {“docType”:“marble”,“name”:“marbleDop”,
                     S4      {“Args”:[“readMarble”,“marbleDop”]}                                 √
                                                              “color”:“blue”,“size”:20,“owner”:“test”},
                                                           [{“TxId”:“baa15e16e6461a4c0f35371c3d3caf124c
                                                                898155325f0 f923ac736c52890ade4”,
                                                           “Value”:{“docType”:“marble”,“name”:“marbleDop”,
                                                            “color”:“blue”,“size”:20,“owner”:“Mictract”}},
                                                           {“TxId”:“5c2f405889eaee25d71d36eb3d35420af83
                     S5   {“Args”:[“getHistoryForMarble”,“marbleDop”]}                           √
                                                                  3a20755d581eba2f53a3eefd”,
                                                           “Value”:{“docType”:“marble”,“name”:“marbleDop”,
                                                              “color”:“blue”,“size”:20,“owner”:“test”}},
                                                           {“TxId”:“8dde5231945e56a89262555e04f14788e8
                                                            d98e33e28b1032d8132eef366247ff”,“Value”:}]
                    (2)  部署效率
                    目前,缺乏智能合约微服务化的有效评估指标.由于本文的目的是利用已有的工具定制化区块链网络、快
                 速部署、操作、监控智能合约,避免手工及脚本方式,以此来提升智能合约开发运行自动化水平,故本文对选取
                 部署效率作为分析指标.参与案例研究的 5 名志愿者已经熟练掌握并能够修改 HyperledgerFabric 部署网络所用
   104   105   106   107   108   109   110   111   112   113   114