代码之家  ›  专栏  ›  技术社区  ›  Dallas

状态数据如何存储在以太坊区块链上?

  •  0
  • Dallas  · 技术社区  · 6 年前

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

    在最简单的情况下,您将为每个用户存储三个256bit的数据字,按用户地址索引,这意味着要存储4个字。

    在用户数达到1亿的情况下,总存储量将达到4亿字。以太坊区块链上的每一个字的存储都需要2万英镑的天然气费用,因此,即使以目前1147美元/以太的价格计算,也只有1 gwei,您需要大约940万美元才能存储用户群的所有信用分数。

    因此,我的问题是:

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

    3 回复  |  直到 6 年前
        1
  •  2
  •   YinYang16    6 年前

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

        2
  •  1
  •   lock1b    6 年前

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

    基本上,将任何文件存储到IPF中,然后存储IPF 以太坊合同中的哈希。任何具有IPFS节点的用户都将 能够使用该哈希访问文件。 您可以根据需要存储数据、图像、前端等。

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

        3
  •  0
  •   DaWe    5 年前

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

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

    以简介中的示例为例:用户帖子、文件和 消息框可能位于另一个平台上,如IPFS。在 以太坊区块链,我们将存储关键数据。数据类型 加密密钥、根到存储树;授权。

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