我读了协议规范https://github.com/hyperledger/fabric/blob/master/docs/protocol-spec.md#5-byzantine-consensus-1
我想知道:
例如,A、B、C、D是四个缔约方,它们运行在四个验证对等点上。在链码A中有一个授权的编码块,只有甲方有权运行该编码块。在链码A中有一个事件编码块,只有甲方才能得到事件的结果。
所以只有甲方才能进入代码块。乙方、丙、丁不能撞上代码块。
在这种情况下,PBFT如何达成A,B,C,D的共识?
发布于 2016-07-14 12:30:50
考虑到上述意见,这个问题可以改为如下:
“示例management.go有”isCaller“方法,该方法只能由”调用者“执行。在这种情况下,如何达成PBFT共识?“
但是这个定义是不正确的,因为所有的A、B、C和D验证对等点都可以在“传输”、“分配”和“isCaller”中执行代码,如果事务使用原始的“管理”证书签名的话。
让我们看一下这个例子,一步一步地学习。
Init方法中,这个用户的证书将保存在分类帐中,作为“admin”:
adminCert,:= stub.GetCallerMetadata() .stub.PutState("admin",adminCert)assign或transfer交易提交到分类账中时,他必须用自己的证书签署这项请求。如果证书不是相同的-此请求将不会被VP在PBFT共识阶段接受。
如果证书是相同的-所有VP都会知道这个请求是由原始的“调用者”签名的,并且将继续执行链码,因为它们有这样做所需的所有信息。
https://stackoverflow.com/questions/38215761
复制相似问题