- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在使用 Hyperledger Fabric Node.js sdk 时遇到性能问题。
当我向 sdk 发出调用请求并使用以下代码消耗链代码给出的响应时
var proposalResponse = results[0];
var proposal = results[1];
let isProposalGood = false;
if(proposalResponse
&& proposalResponse[0].response
&& proposalResponse[0].response.status === 200){
isProposalGood = true;
var res = JSON.parse(proposalResponse[0].response.payload.toString());
res.event_status = 'VALID'
resolve(res);
}else{
reject(createErrorResponse(proposalResponse[0].message,500))
return
}
但是,当我使用以下代码等待订购者确认交易时:
if (code === 'VALID'){
//get payload from proposal response
var res = JSON.parse(proposalResponse[0].response.payload.toString());
res.event_status = 'VALID'
resolve(res);
}else{
var return_status = createErrorResponse("Transaction was not valid", 500);
return_status.tx_id = transaction_id_string
reject(return_status)
return
}
大约需要 2500 毫秒才能响应,您可以在下面看到 postman 的屏幕截图:
如果我错了请纠正
我知道这需要时间,因为排序者
确认交易并提交到分类帐
。但您不认为只有在排序者
同意交易并提交到账本
时我们才应该继续。如果是,则需要 2.5 秒才能响应(网络在本地机器的 docker 上运行,sdk 在同一台机器上运行),这是一个性能问题。
如果数据写入链码,但排序者拒绝将交易写入账本,会发生什么?
如有任何帮助,我们将不胜感激
最佳答案
the orderer confirms the transaction and commits into the ledger.
排序服务的任务(顾名思义)只是将接收到的背书交易按时间顺序排序,然后将它们传递给 channel 中的所有 Node 。订购者实际上并不将交易提交到分类账中。
提交者同行会这样做。提交是一个耗时的过程,因为所有 Node 都会验证 block 内的所有交易,以确保背书策略得到满足,并确保自交易执行生成读取集以来,读取集变量的账本状态没有发生变化。区 block 中的交易被标记为有效或无效。然后每个对等点将 block 附加到 channel 的链中,并且对于每个有效事务,写入集都将提交到当前状态数据库。 发出事件,以通知客户端应用程序交易(调用)已不可更改地附加到链中,并通知交易是否已验证或无效。
了解 Transaction Flow 中的所有这些详细信息后,需要注意的是,客户端应用程序不应等待排序者收到的响应。相反,它应该只请求排序者传递已背书的交易,并且应用程序应该订阅对等方发出的事件,以便它应该知道或被通知交易实际上在 channel 的链中不可变地提交。
您可以在Fabric Node SDK docs中获得有关事件订阅的进一步帮助。 。
What happen if data is written into the chaincode and after that orderers deny to write the transaction into the ledger?
这是根本不可能的,因为只有当交易通过背书 Node (由背书策略指定)的适当背书进行验证时,数据才会附加到链上,然后最终传递给提交 Node 以在链中附加新值并更新世界状态。数据只有在通过所有验证后才会写入链中,因此排序者永远无法否认数据中所做的更改。
关于node.js - Hyperledger Fabric nodejs sdk性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50161129/
我刚刚偶然发现Fabric并且文档并没有真正说明它是如何工作的。 我有根据的猜测是您需要在客户端和服务器端都安装它。 Python 代码存储在客户端,并在命令运行时通过 Fabric 的有线协议(pr
以下是我对 Hyperledger Fabric 系统的理解。如果有任何不正确的地方,请告诉我。 1) 所以我们有同行(背书人、 anchor 人、将军(拥有分类帐的人)、排序人)。此外,当我们设置结
我部署了一个持久性级别为 Silver 的全新 Service Fabric 集群,fabric:/System/InfrastructureService/FE 服务运行状况不佳,并出现以下错误:
我对使用 Fabric 很感兴趣,api 在未连接到互联网时如何工作? 我发现 firebase(与此工具类似的工具)会将数据存储在本地,然后对服务器进行批量更新。但是,超过 72 小时的任何内容都不
Fabric CA Server 和 Fabric CA Client 的功能是什么? Fabric CA 服务器和 Fabric CA 客户端的角色是什么? 谢谢 最佳答案 Fabric CA 提供
我想在不同的环境中使用相同的应用程序,我在 documentation 中找到了它, Apps with Multiple Environments Let’s say you have an app
我目前正在尝试学习 Hyperledger Fabric,我设法了解了如何设置网络(Orderer、Peers 等),但现在是链代码的一部分。 但是,我发现两个不同的 git 存储库(据我所知)可用于
我在 following this tutorial 时遇到错误 cannot convert from 'System.Fabric.StatelessServiceContext' to 'Sys
在我没有改变任何东西之前它可以工作,但今天我收到了这个错误,这里是我的 gradle buildscript { repositories { mavenCentral() maven
Fabric beta 手动分发有时不会发送邀请电子邮件,即使在它向该人显示“已邀请”的网页中也是如此。如果我点击重新发送邀请,那个人就会收到。我的 QA 团队人员必须一直来找我重新发送邀请。我知道
默认情况下,Hyperledger Fabric 在将许多证书保存到区 block 链之前将其存储在交易中。无论如何或任何想法/技术来最小化区 block 链中的交易大小? 任何想法都非常有用! 最佳
我是 Hyperledger Fabric 的新手。我正在阅读 Fabric 的文档最新版本,但我不清楚 Fabric 的共识。 Fabric 使用的共识是什么?它是如何工作的?请解释。 最佳答案 我
我是 Hyperledger Fabric 的新手,我正在尝试在本地向服务器注册 Fabric 客户端。这是我到目前为止所做的。 go get -u github.com/hyperledger/fa
Hyperledger Fabric 中链和状态数据库的主要区别是什么。我很困惑它们是否相同。 最佳答案 Hyperledger Fabric 中有两个“存储”数据的地方: 账本 状态数据库 账本是真
我尝试将图像上传到分类帐中(将图像转换为 base64 字符串并将其作为交易中的 arg 传递)。 当我发送大小为 30 kb 的图像时,它工作正常,但是对于 100 kb 的图像,我的交易失败了,指
我正在尝试在初始化 Fabric CA 服务器后注册管理员: fabric-ca-server init -b “admin:adminpw” 并启动 CA 服务器: fabric-ca-serve
我正在使用来自 super 账本fabric firstsample的cryptogen工具,它未在 crypto-config/peerorganisation/org1.example.com/m
我离开了一家公司,用于访问 Fabric 的电子邮件已被删除。 现在我在同一家公司工作,他们用相同的句柄重新创建了电子邮件。我不知道这是否是问题所在,但我没有收到任何包含报告的电子邮件,也没有收到 B
如果我有 1 个组织 orgA ,在这个组织下我有 2 个用户:user1和 user2 , 在 orgA 中也有 1 个对等点,让我们称之为 peer0 . 现在想象一下,user1的证书在orgA
全部, 据我所知,在 Hyperledger Fabric 环境中,orderer 将消息传递给 peer。如果有离线对等。恢复到 ON-LINE 时,消息如何传递给对端? orderer如何知道pe
我是一名优秀的程序员,十分优秀!