【问题标题】:How is state data stored on Ethereum blockchain?状态数据如何存储在以太坊区块链上?
【发布时间】:2018-01-29 08:50:15
【问题描述】:

当时正在考虑以太坊上的存储成本,并试图理解在链上存储全球标准化信用评分(如 Bloom)的含义。

在最简单的情况下,每个用户存储三个 256 位字的数据,按用户地址索引,这意味着 4 个字的存储空间。

在您达到 1 亿用户的场景中,您正在查看总共 4 亿字的存储空间。以太坊区块链上的每个存储字都需要 20K 的 gas 费,因此即使以当前 1147 美元/ETH 的价格计算 1 gwei,您也需要约 940 万美元来存储用户群的所有信用评分。

所以,我的问题是:

如果您通过更新一个用户的分数来更改上述合约的状态,它是否需要再次存储整个 4 亿字的数据(并产生 940 万美元的费用),还是只是存储在某些元数据中的状态的增量层?

【问题讨论】:

    标签: blockchain ethereum


    【解决方案1】:

    除非您更改记录的顺序(例如,通过删除其中一个),否则您不必覆盖整个数组。您只需为添加或更新的数据付费。

    【讨论】:

    • 是否有文档说明如何处理?
    • 没有文件可以描述这个具体案例。有一个臭名昭著的yellow paper 描述了SSTORE 操作的成本。此外,还有一个description 说明变量是如何存储的,特别是mapping 是如何实现的。
    【解决方案2】:

    简而言之,您不会将这些信息直接存储在以太坊区块链上。你会使用 IPFS。

    基本上,您将任何文件存储到 IPFS 中,然后存储 IPFS 以太坊合约中的哈希。任何拥有 IPFS 节点的用户都会去 能够使用该哈希访问文件。 您可以随心所欲地存储数据、图像、前端等。

    这里有一个例子:https://github.com/AdrianClv/ethereum-ipfs

    【讨论】:

    • 我知道有一个IPFS选项,但是存储在IPFS上的数据不保证存在,所以关键位必须存储在更永久的介质中。
    【解决方案3】:

    最后,我应该将数据存储在哪里?

    嗯,也许不在以太坊区块链上。存储在那里的数据, 使用智能合约,安全且易于访问。但是成本和 商店的结构使其与元数据相关的用途相关。

    以引言中的例子为例:用户帖子、文件和 消息框可能会在另一个平台上,比如 IPFS。在里面 以太坊区块链,我们将存储关键数据。数据如 加密密钥、存储树的根和授权。

    来源:https://www.lsenta.io/posts/storage-and-dapps-on-ethereum-blockchain/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-25
      • 2018-12-25
      • 2018-06-14
      • 2018-09-10
      • 1970-01-01
      • 2021-07-27
      • 1970-01-01
      • 2017-08-07
      相关资源
      最近更新 更多