请选择 进入手机版 | 继续访问电脑版

Hi,Tokens

 找回密码
 立即注册
查看: 734|回复: 1

井底望天谈以太坊和IBM的超级账本

[复制链接]

724

主题

1091

帖子

4057

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4057
发表于 2018-4-16 10:15:54 | 显示全部楼层 |阅读模式
井底望天聊以太坊~~~艰难的共识和不断的硬分叉
大家知道,以太坊的发明创造在于智能合约,那么以太坊的智能合约是怎么做的呢?
就是有一个虚拟机,叫做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的云端创建及运行区块链网络,是以IBMLinux 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自己的源码还是可以跑起来,但是他们想做的应用,则完全不可能实现,呵呵。
然后他们更开心的,是把底层置换到井通的平台上面来了。
以后底层置换井通平台的公司会多起来的,反正用了他们的底层也跑不起来。

回复

使用道具 举报

724

主题

1091

帖子

4057

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4057
 楼主| 发表于 2018-4-20 11:16:49 | 显示全部楼层
问:能讲讲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和自己定义的共识模块,那么这里就引进了子链的概念,另外一个就是智能合约调用,采取了异步,可以跨区块,这样就可以进行原子跨链。




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Hi,Tokens  |网站地图

GMT+8, 2019-12-14 06:02 , Processed in 0.056708 second(s), 4 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表