谈谈自己关于hyperledger fabric和ethereum区别的理解

节点组成的不同

ethereum只有peer节点组成,hyperledger fabric有order节点和service节点。

打包交易的节点不同,即保持一致性的方式不同。

ethereum是挖矿记账,即计算出困难问题的peer拥有记账权。具体的步骤:peer1打包交易成区块,然后计算困难问题,如果计算出困难问题,那么就可以把这个区块发布出去了;其他 peer收到区块后,立即停止自己的计算(因为每个peer都想发布区块,只是peer1先计算出来),开始同步这个区块的交易。这样来完成全网账本的一致性。
:这里存在多个peer同时计算出困难问题,然后都发布区块的问题,即分叉问题。

hyperledger fabric是把打包交易成区块的任务放到order节点来完成了,即order节点规定了区块中交易的顺序。然后把这个打包好的交易散步到全网中,其他service节点同步这些交易,保持全网账本的一致性。

所以不同是:打包交易的节点不同,ethereum是每个peer都打包交易成区块,但是只有计算出困难问题的节点才有资格发布这个区块。hyperledger fabric是order节点打包交易成区块,service节点只管同步就行了。
:因为 ehereum每个peer都在打包交易成区块,然后用pow争取记账权,即希望全网同步自己的打包交易的区块,如果一个节点挂掉了,不用担心。hyperledger fabric只有 order 节点去打包交易,如果这个order节点挂掉,岂不是没人发布区块了?所以hyperledger fabric采用了crash fault tolerant (CFT) 来保证安全性,如raft。这样有多个oder节点存在了,不用怕一个挂掉了。
:ethereum发布区块的peer会得到奖励,即以太币,但是hyperledger fabric发布区块的 order节点却没有奖励,会有什么影响吗?答:各自服务的对象不同,ethereum服务的对象是平等的任何peer,为了保证整个ethereum项目的稳定性,我们必须要奖励那些能诚实记账来将整个项目维持下去的节点。而hyperledger fabric服务于特定的组织,service节点的加入需要组织的同意和CA证书,即需要对加入的service存在一定程度的信任。因为建立在一定程度的信任上,order节点一般由hyperledger fabric的创建者或者其他具有权威的组织来运营。因此,hyperledger fabric中order节点发布区块是没有奖励的。

验证方式的不同

hyperledger fabric中有背书的概念,智能合约可以规定交易需要经过哪些service节点的同意。而以太坊中中需要超过一半的peer节点同意。

Reference
[1] https://hyperledger-fabric.readthedocs.io/en/release-2.2/index.html
[2] https://www.bilibili.com/video/BV1Vt411X7JF?spm_id_from=333.999.0.0

猜你喜欢

转载自blog.csdn.net/southamptonzeng/article/details/122152192