IPFS如何解决区块链存储效率低效?

把以太坊智能合约存储代码存储到IPFS系统中,而把代码存储后生成的哈希值存在以太坊上。

关于IPFS对互联网以及传统的中心化存储解决方案意味着什么?

除了对互联网及传统的中心化存储方案有着颠覆意义之外,IPFS对于区块链应用本身其实也有着巨大的意义,今天就和大家分享这方面的知识。

每当我们说起大型的公链比如比特币和以太坊的特点,几乎马上就能脱口而出地说出:去中心化,点对点,数据无法篡改等独有的特点。

那么这些特点的取得是通过什么方式呢?实际上是通过区块链公链系统中一个非常特殊的做法:每个全节点都具备同等的权限及地位。而要取得同等的权限及地位最根本的是要通过每个全节点都存储有一份一模一样的账本来实现的。

因为每个全节点都存储有一份一模一样的账本,所以每个全节点都可以进行区块的验证。

无疑这种实现方式是分布式系统中的一次创举,然而它带来的问题也是显而易见的:那就是存储效率非常低下。

就拿比特币来说,如果比特币全网的全节点有1万个,比特币每一个区块的大小是1M,那么每当一个区块被记录到比特币系统中时,这1万个节点每一个都要存储这个区块,所以全网一共要耗费10G(= 1M x 10000)的存储空间。而这10G的存储空间是把一份数据重复存储了1万份。

比特币是如此,其它的公链系统比如莱特币,以太坊等都是如此。由此可见区块链公链系统中的存储效率有多么低下。

那么有没有办法保证公链中每个全节点在存储相同数据的同时,也尽量减小空间的无谓耗费呢?有,IPFS就为这个问题提供了一种解决方案。

在公链的每一个区块中,存储空间大部分都被交易数据所占据,所以完全可以把交易数据提取出来存储到IPFS这个去中心化存储系统中,这些交易数据被存储到IPFS系统中后会生成一个哈希值,而这个哈希值所占的空间就比交易数据小得多了。这个哈希值就可以被存储到区块中。

每当节点进行交易验证或非区块链应用需要查询交易数据时,只需要在区块中找到相应交易对应的哈希值,然后再拿这个哈希值到IPFS系统中查询其所对应的交易数据就行了。

用这样的方式,区块链链上数据的存储效率就可以大大提高。

不只是交易数据,在以太坊中,大量的智能合约代码也被存储在区块链上。由于智能合约代码一旦被部署到区块链上将永远无法删除,因此一旦某个智能合约不再适用,就会被舍弃,永远存在以太坊上但再也没有什么用处了。这对以太坊的链上存储而言是个极大的浪费。

对此,同样也可以仿照存储数据的方法,把以太坊智能合约存储代码存储到IPFS系统中,而把代码存储后生成的哈希值存在以太坊上。

这样当需要调用智能合约的源代码时,只需要在以太坊上找到该合约的哈希值,然后用该哈希值在IPFS找到相应的合约代码就行了。

因此IPFS对解决区块链存储效率的低下也是极有前景的一种方案。

本文来自,仅作分享,存在异议请联系平台删除。本文观点不代表刺猬财经 - 刺猬区块链资讯站立场。

(0)
上一篇 2019年12月11日 上午9:39
下一篇 2019年12月11日 上午9:50

相关推荐

本站(刺猬财经)出售,6年老站,有需要的老板请联系TG:tuhaov
This website (ciweicaijing) is for sale. It is a 6-year-old website. If you need it, please contact TG: tuhaov