在Filecoin团队的各类宣传中,项目团队经常提到一个词叫:“互操作网络”。
什么是“互操作网络”呢?这要从Filecoin今年年初的一件大事说起。
在1月底2月初,Filecoin官方团队曾宣布了这样一件大事---Filecoin协议的实现又有了另外两个客户端:由ChainSafe团队用Rust开发的Forest和由Soramitsu团队用C++开发的Fuhon。
在这两个团队加入Filecoin客户端的开发后,Filecoin一共有了四个客户端:
用Go语言开发的Go-filecoin;
用Go语言开发的Lotus;
用Rust语言开发的Forest;
用C++语言开发的Fuhon;
这对基于区块链的去中心化项目而言是非常重要的。越多客户端加入Filecoin就越能让项目去中心化,就越能消除项目的系统风险----当有多个客户端在网络中运行时,如果其中某个客户端发生障碍,其它的客户端仍然能运行,这就比起只有单一客户端运行时面临的风险就小很多。
但是众多客户端的加入同时也带来了一定的问题,其中最典型的问题就是这些客户端之间的通信问题。
在任何一个公有区块链系统中是不存在类似传统互联网架构中那种专门提供服务的服务器的。
那么区块链系统中当有一个节点需要服务时,它应该向谁发出请求呢?它可以向任何全节点发出请求。实际上在这样的区块链系统中,任何一个全节点既是服务器也是客户端。
当一个节点向其它任何一个节点发出请求时,只要它的请求是相同的,不管它向其它哪个全节点发出请求,收到的响应应该都是一样的。
具体到Filecoin系统中,如果一个节点向四个客户端中的Lotus发出请求,也向Forest发出请求,它收到的两个回应按照规则应该是一样的。
其实不同的客户端不仅要对节点的回应一样,而且对外表现出的行为也都必须一样。
也就是说不管是Go-filecoin,Lotus,Forest还是Fuhon,在外人看起来,它们都应该“长”得一模一样,行为方式也都应该一模一样。尽管它们是使用不同语言开发的,甚至可能实现的方式都不同。
那么为了保证它们“长”得一样,行为方式也一样,不仅在开发时它们需要遵循一套统一的标准,而且还需要进行大量的测试,以观察它们在实际运行中是否表现也都一模一样。
如果这四个客户端在同一条件下都能表现出一致的行为就叫做可“互操作”。
为了实现互操作系统就需要大量的测试和验证。
只有保证了这四个客户端的互操作才能保证用户下载任何一个客户端都可以无差别的参与Filecoin挖矿,才能做到Filecoin客户端的去中心化。
这就好比不管是吉利,奇瑞,还是丰田,宝马,所有的轿车都有四个轮子,都有方向盘和驾驶室。任何一个有驾照的司机进到任何一部车,启动油门都能开车。
在以太坊现在的实现中就有现成的案例:广泛使用的go-ethereum和Parity这两个客户端就可以互操作。用户可以下载两者中的任何一个参与以太坊挖矿。
我是IPFS/Filecoin社区发起人晓熙(加入社区,联系v号: liandaoxixi),IPFS/Filecoin是全球共识最大的去中心化存储项目,我会定期在社区分享专业的资讯,为IPFS/Filecoin爱好者建设一个共赢的学习社区。
本文来源:Filecoin社区原文标题:什么是互操作?
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。