首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在块链上存储散列(存储在ipfs上的图像哈希)

在块链上存储散列(存储在ipfs上的图像哈希)
EN

Ethereum用户
提问于 2020-12-15 16:38:13
回答 1查看 690关注 0票数 0

我正在创建一个dapp,使用react在ipfs上存储图像,并在块链上存储相应的散列。在区块链上存储散列的目的是时间戳、所有权证明、wtc和我也希望在稍后阶段检索哈希。我需要知道如何在区块链上存储和检索散列。

EN

回答 1

Ethereum用户

发布于 2020-12-15 19:16:09

我相信有很多方法来实现您的请求,但下面是我在以前的项目中所做的:

  1. 从前端生成哈希。

我想你已经有这个了。以防万一,我这样做了(在我的例子中,来自Node.js的后端):

代码语言:javascript
复制
const crypto = require('crypto');

const generateHashOrderValues = (params: OrderInput) => {
    return (
        '0x' + crypto
            .createHash('sha256')
            .update(
                params.field1 +
                params.field2 +
                //...
                )
            .digest('hex')
    );
};
  1. 将散列存储在智能契约务实^0.7.0;契约跟踪{事件SaveHash(bytes32索引_orderID);地址应付公共所有者;构造函数()公共应付{ owner = msg.sender;}修饰符isOwner() { require(msg.sender == owner,"Caller不是所有者“);_;} function saveHash(bytes32 _orderID)外部isOwner返回(bool) { emit SaveHash(_orderID);返回true;}}
  2. 检索您的散列contract.getPastEvents('SaveHash',{ filter:{ _orderID: params.hash,},fromBlock: params.block_number,transactionHash: params.tx_hash,}) .then((事件) => { // do your })

你可能注意到我在使用事件。最初,我与一种保存存储中哈希的结构签订了合同,但就气体消耗而言,仅使用事件来存储和检索数据比较便宜,特别是在考虑存储大量散列的情况下。

我亦很高兴收到有关这类方法的意见,以免有更好的方法;)

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/91149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档