是否可以在以太坊区块链上存储图像?

时间:2018-10-25 16:54:13

标签: blockchain ethereum solidity smartcontracts

我正在逐步学习Solidity,并且有一些想法。目前,我很好奇文件/图像是否可以放在区块链上。我在想一种替代方法是某种混合方法,其中一些东西在区块链上,而有些东西在更传统的文件存储中,并使用地址引用来抓取它。我预见的一个问题是文件上传的汽油价格。

4 个答案:

答案 0 :(得分:4)

  

是否可以在以太坊区块链上存储图像?

绝对有可能!

您应该这样做吗?几乎可以肯定!

  

我预见的一个问题是文件上传的汽油价格。

  • 数据存储成本为每千字节数据640k gas。
  • 当前的天然气价格约为15 Gwei(或0.000000015 ETH)。
  • 按今天的价格,1 ETH约为200美元。

每千字节不到2美元。

我不是要告诉您这对于您的应用程序而言是否太昂贵,但是您还应该考虑到Gas和Ether的价格会随着时间的推移而显着变化,因此您应该经历这个数字< 。

答案 1 :(得分:1)

从技术上讲,是的,您可以存储非常小的图像。但是你不应该。

首选替代方案

将图像存储在分布式文件存储中(例如Swarm或IPFS),并在链上存储图像的哈希(如果对图像而言,证明其不可篡改确实很重要)。如果那不重要,那么也许不要在链上放任何东西。

有什么技术限制?

主要是街区的煤气限制。目前,以太坊主网限制为8Mgas。每增加32个字节的存储空间,就会消耗2万个气体。因此,您不能存储总计超过12.8kb的数据,因为它不适合该块。

为什么我不应该将它用于小文件?

区块链不是为这种用途而设计的(这就是为什么存在诸如Swarm和IPFS之类的其他项目的原因)。它会膨胀并减慢所有速度,而不会给您带来任何其他文件存储系统带来的好处。以此类推,您通常也不会将文件存储在SQL数据库中。

答案 2 :(得分:1)

我完全同意@Peter Hall的观点,认为将图像存储在以太坊上太昂贵了。


那么,您能做些什么呢?

  • 您可以将映像存储在IPFS上。 IPFS为您提供固定长度的哈希。现在,您可以将此哈希存储在以太坊上,并且花费比其他方法少。

答案 3 :(得分:0)

重点放在链上存储图像

将图像存储在数据库中也不是一个好习惯,我假设您只是指文件存储解决方案,例如S3 / firebase。可以在中央服务器上存储映像,但这取决于您要实现的目标,您可以研究IPFS和Swarm等分散式存储解决方案。