• 注册
    • 查看作者
    • 井底望天谈以太坊和IBM的超级账本

      大家知道,以太坊的发明创造在于智能合约,那么以太坊的智能合约是怎么做的呢?

      就是有一个虚拟机,叫做evm,直接把合约交给虚拟机跑。跑出来结果返回之后,系统开始做共识——这种好处,就是直接;不好处,就是共识必须等智能合约跑完。

      可是智能合约都是别人在写,有无意的、有有意的、有恶意的——可能就跑出来问题了,那么共识就被拖住了。

      那么以太坊的解决方式,就是给代码计算出来一个gas的数目,然后限制总的gas数量,这样保证在17秒的区块间隔时间,可以把智能合约跑完。

      所以你可以看到,以太坊在支持智能合约上面,其实是有一个限制的,就是在17秒这个时间里面,所有跑的智能合约必须全部跑完。

      结果去年9月,就被人家攻击了2次,导致共识时间超过了1分钟,Geth的很多节点直接崩溃。靠限制gas总量到470万,那么以太坊不得不再搞一个硬分叉,来修复这个问题,就是让你矿工加硬限制;或者就是很多合同要上来,只好排队。

      另外一个,就是以太坊也搞全民共识,那么所有节点都跑同一个合同,这个效率也不好。解决办法,就是要用分片技术,把全网分成很多小片,把智能合约分配给不同的片去做。

      但是这种分片技术,中心化解决方案是有,这个就是IBM fabric在干了——伪去中心化。

      而去中心化的解决方案很不容易,要解决不同片之间的通信问题,要解决其中某些片被人攻破,要解决如何检测错误,要解决状态丢失,等等。

      以太坊自己也在想办法,但是目前还没有找到好的方案。而且就算是有方案,大概需要7-8个硬分叉,才可以落实。

      而井通从开始的设计都已经考虑到了这些问题,进行了完美技术优化处理。

      井底望天解读 IBM的超级账本Hyperledger Fabric1.0[url=https://pai.skyfromwell.com/module/index.html?t=1][/url]

      IBM互联部门发布的区块链网络软件Hyperledger Fabric1.0,是一款基于Linux架构开发具有企业应用价值软件。这款软件能够帮助开发者在IBM的云端创建及运行区块链网络,是以IBM的Linux ONE作为支撑。

      Fabric之前的版本是0.6版,按照惯例,是实验室产品,不该放出来给大家用的。

      那么经过了近1年的学习,他们开始出1.0版本了——其中架构确实优化了,方向也对了,可是在具体落实上面,却偏离去中心化了。

      Fabric1.0相对于当初的Fabric 0.6,主要就是两个方面的变化:

      第一个是角色分配。Fabric 0.6就是不分角色,所有的事情都一个人干,所以跑一下就崩溃。那么在Fabric 1.0开始分配角色,有社会分工了,效率也提高了。

      另一个就是分组。

      比如在Fabric 0.6版,你有15个节点(他们大概最多只能支持16个,呵呵)。你一下上来了45个智能合约,那么就是15个节点都跑一遍,做拜占庭共识。

      现在Fabric1.0采取分组,比如分成3组,每组5个节点,然后45个合约,15个分给1个组,这样同样时间,就3个组一起跑——那么效率就提高很快了,是吧?这个就是他们自己称为channel的东西。

      但是照理讲,你小组里面的5个节点,应该做一个拜占庭容错共识吧?他们不是,现在是你一组建小组的时候,就要认定一个节点做小组长。然后其他节点就说:“大哥,你是组长,你说啥就是啥,不用咨询我们了!

      哈哈哈哈哈!!!!!

      那么等三个小组各自把自己要跑的15个合约跑完,三个结果需要合并在一起,然后记录进入区块,肯定就需要一群排序员,把结果按照时间戳来排序,然后他们之间做一个拜占庭容错共识,是吧?

      但是不是,呵呵!

      这个排序员,叫着orderer,目前是用一个中心化的Kafka cluster来做的,所以这里也没有拜占庭容错共识了!

      所以fabric 1.0,是伪去中心化,但是……IBM说,我们在这两个地方,是留给你自己建立拜占庭容错机制的接口的,”你能你上”!

      出现这种情况,有两种可能:

      1. 他们自己没本事,做不出来;

      2. 他们也许有一天,可以做出来,然后。。。show me da money!

      反正免费用他们的fabric 1.0,除非“你能你上”,不然就是假区块链!其实里面还有几个大炕,我不想指明,呵呵!

      最近井通科技与一家大公司交流,发现对方对区块链的应用非常给力,而且自己还建立了一个技术团队,将hyperledger的Fabric拿来用的。据他们的技术团队反映,Fabric自己的源码还是可以跑起来,但是他们想做的应用,则完全不可能实现,呵呵。

      然后他们更开心的,是把底层置换到井通的平台上面来了。

      以后底层置换井通平台的公司会多起来的,反正用了他们的底层也跑不起来。

      fabric 1.0不是用PBFT,而是用了中心化的Kafka cluster,之前的0.6版本理论上是不应该出实验室的,都没有拜占庭容错,fabric的竞争对手已经大步前进了,而且Kafka cluster贵死了,还有一个问题,就是以太坊的智能合约已经是事实上的行业标准,fabric推的chaincode需要很大功夫,建立自己的生态,当年IBM就是推Token Ring输给了Ethernet。前一阵看了美国一个卡车运输项目,之前想用fabric,结果卡车司机不愿意参与,后来改为以太坊,发币,司机们全部自动愿意参加了。

      我的墨客链,3月底上线,强于eos,我现在看技术发展方向,基本上只看Vitalik的,呵呵,墨客基本上就是优化的以太坊,实现了分片和跨链,所以墨客的tps是5000,强于eos的1000,但是是类似于以太坊的过万节点,不是eos的21个,v神没有落实的分片,我们已经实现了,呵呵。去年初,我的判断,未来区块链流量主要来源于智能合约,后来以太坊两次堵死,一次是eos的ico,一次是加密猫,都是智能合约流量增加,所以我先做了一个分层,将交易和智能合约分开,底层保持Ghost POW,不分片,做到全局一致性,上面分层出智能合约服务器,在这里进行分片,所以底层好像vmware,上面好像各种os,那么在分片这里,可以支持pbft,pos,tendermint和自己定义的共识模块,那么这里就引进了子链的概念,另外一个就是智能合约调用,采取了异步,可以跨区块,这样就可以进行原子跨链。

    • 4
    • 0
    • 0
    • 188
    • 彬哥咫尺天涯随心颜瘾

      请登录之后再进行评论

      登录
    • 做任务
    • 实时动态
    • 偏好设置
    • 返回顶部
    • 单栏布局 侧栏位置: