我正在Hyperledger Composer上开发 Node.JS 应用程序。我每秒发送疯狂的交易量(11,500),但速度相当慢。我正在使用Hyperledger Composer教程中的代码和网络上的一些示例,但似乎我无法让它更快。
我的模型非常简单,如下:
awk -F"[][]" '/Oscar/{gsub(/, /,",",$2);print $2}' Input_file
我的script.js是以下
participant Client identified by id {
o String id
}
asset Wallet identified by id {
o String id
o Double balance
--> Client owner
}
而且我应该在它们之间转移资金,所以我的Node.js代码进行交互具有以下逻辑:
我觉得我的代码做得不好,它相当慢,而且它通常会压倒我的Hyperledger Fabric实例。这是NodeJS代码:
function transferFunds(transfer){
//Transfer the funds
transfer.from.balance -= transfer.amount;
transfer.to.balance += transfer.amount;
return getAssetRegistry('org.acme.Wallet')
.then(function(assetRegistry){
//persist the state of the Wallet
assetRegistry.update(transfer.from);
assetRegistry.update(transfer.to);
});
}
基本上,我想知道:
非常感谢你!
答案 0 :(得分:0)
我没有看到为transfer
交易建模的内容。
assetRegistry.update()完成两次,也许可以使用updateAll API调用? - > https://hyperledger.github.io/composer/jsdoc/module-composer-client.AssetRegistry.html可能有所帮助。
我可以理解为什么你的Node.js应用程序会连接到业务网络并进行交互;但是你为什么不独立创建你的JSON事务并只使用REST来提交你的交易?例如,使用Node-Red https://hyperledger.github.io/composer/integrating/node-red.html从事务文件中集成/加载您的JSON(如果这是您想要做的事情,从钱包转移到钱包)。因此,要安装Node Red,请使用npm install node-red -g
然后启动它node-red
并从安装选项卡下选择(从调色板中)Node红色节点'node-red-contrib-fs'(从目录中读取文件)文件系统)。在'文件模式'中使用模式字符串*.json
。
回答q2。是的,您的模型可以更好地建模。这可能是有用的 - > When to call getAssetRegistry to update assets (and the participants equivalent)