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

Blockchain 是否可以在以太坊区块链上存储图像?,blockchain,ethereum,solidity,smartcontracts,Blockchain,Ethereum,Solidity,Smartcontracts,我正在努力学习稳固性,并且有了一些想法。目前我很好奇文件/图像是否可以放在区块链上。我认为另一种方法是混合方法,其中一些东西在区块链上,一些东西在更传统的文件存储中,并使用地址引用来获取它。我预见到的一个问题是文件上传的价格 在链上存储图像是一个重点否 在数据库中存储图像也不是一个好的做法,我假设您指的是像S3/firebase这样的文件存储解决方案。在中央服务器上存储图像是可以的,但这取决于您想要实现的目标,有一些分散的存储解决方案,如IPFS和Swarm,您可以研究。从技术上讲,是的,您可以

我正在努力学习稳固性,并且有了一些想法。目前我很好奇文件/图像是否可以放在区块链上。我认为另一种方法是混合方法,其中一些东西在区块链上,一些东西在更传统的文件存储中,并使用地址引用来获取它。我预见到的一个问题是文件上传的价格

在链上存储图像是一个重点


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

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

首选方案 将图像存储在分布式文件存储(例如,Swarm或IPFS)中,并在链上存储图像的散列,如果确实需要证明图像不受干扰。如果这不重要,也许就不要把任何东西放在链条上

有什么技术限制? 主要是区块的天然气限制。目前,以太坊mainnet有8Mgas的阻塞限制。每新增32字节的存储空间使用20k气体。因此,不能存储总和超过12.8kb的数据,因为它不适合块

为什么我不应该在小文件中使用它? 区块链不是为这种用途而设计的(这就是为什么其他项目,如Swarm和IPFS存在的原因)。它会膨胀并降低速度,而不会给您带来比其他文件存储系统更大的好处。类似地,您通常也不会将文件存储在SQL数据库中

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

这是绝对可能的

你应该这样做吗?几乎肯定不是

我预见到的一个问题是文件上传的价格

  • 数据存储的成本是每千字节数据640k gas
  • 目前的天然气价格约为15 Gwei(或0.000000015 ETH)
  • 以今天的价格计算,1 ETH约为200美元
计算结果是每千字节略低于2美元


这不是我告诉你的,这对你的应用来说太贵了,但是你也应该考虑到气体和乙醚的价格随时间变化很大。您应该会经历这样一个时期,这个数字会显著增加。

我完全同意@Peter Hall的观点,即在以太坊上存储图像成本太高


那么,你能做什么来代替这个呢?

  • 您可以将映像存储在IPFS上。IPFS为您提供固定长度的散列。现在,您可以将此散列存储在以太坊上,而且成本比其他方式低
另一篇文章也讨论了同样的话题。在那里,他们建议使用分布式技术IPFS+Swarm。