通过记录日志将数据存储在以太坊中以降低天然气成本

您如何实施?

我们定义以下事件。

已记录的事件(以bytes4索引的eventSig,以uint256索引的createdAt,以bytes32 ipfsHash索引);

“ eventSig”就像事件名称一样。指定任意长度的字符串都没有关系。尽管最好指定固定长度的短字母以节省燃气费用。我们将“ evetSig”定义为事件名称的Keccak256哈希值的前4个字节。该规则类似于“功能选择器”

“ createdAt”是自我解释。发出此事件的数据时间。

“ ipfsHash”用于指定IPFS哈希。请注意,参数类型不是“字符串”。请参见以下示例,IPFS哈希的长度固定为46。

QmXbTtSAPJ545YRnLt7n7ngMa4ZTmizmznshZZjXDRhYih

根据特定的可靠性,字符串数据编码为utf8,因此IPFS哈希为46字节大小。

根据具体的可靠性,此字符串数据会占用64个字节的存储空间,因为18个字节用结尾的零字节填充为32个字节的长度。然后我们通过base58解码IPFS哈希。 (最初,IPFS哈希字符串是base58编码的)base58解码的IPFS哈希为32字节大小,因此我们实现了减少32字节的目的。这有助于节省气体成本。

你可能还喜欢