我不认为在区块链上存储“整个图像”是有意义的。我认为最好是存储对该映像的引用,但这意味着实际的映像文件仍将位于“集中存储”中,如s3。
在区块链中存储图像的不同方法是什么?目前有效储存它们的“已知方式”是什么?
我见过Filecoin、Storj、Tiesdb等项目,但仍不确定什么是理想的解决方案。我想建立一个基于区块链的图像相册。
发布于 2018-02-11 17:10:04
是的,你是对的。在eth中保存整个图像是非常昂贵的。我建议您检查链式数据存储,如IPFS或Swarm ( ethereum社区通常建议这样做)。
还有可供选择的API。提到的是两个流行的服务,大多数开发人员都在使用。这两种产品都是从连锁仓库外分发的。
我建议你检查一下下面的链接。
来问你的问题。这是一个示例,说明如何在ethereum智能契约中存储存储在IPFS中的对图像的引用。
contract ImageInfo{
mapping(address=>Image[]) private images;
struct Image{
string imageHash;
string ipfsInfo;
}
function uploadImage(string hash, string ipfs) public{
images[msg.sender].push(Image(hash,ipfs)); //
}
}上面的代码只是为了说明。根据您的需求修改数据结构。我没有加任何安全检查。
其思想是首先将图像上传到ipfs/ store /任何其他离链数据存储,得到图像的值计算散列来收缩。从离链下载数据(图像),并计算哈希和检查哈希保存在合同中。
我觉得上述解决方案是处理图像的最佳方法之一,因为所有数据都是使用无服务器架构分布的。
https://ethereum.stackexchange.com/questions/39279
复制相似问题