【发布时间】:2019-08-02 05:57:10
【问题描述】:
我们能否像使用数据库一样使用以太坊网络来存储数据。如果将其用作数据库,可能会出现什么问题。
【问题讨论】:
我们能否像使用数据库一样使用以太坊网络来存储数据。如果将其用作数据库,可能会出现什么问题。
【问题讨论】:
是的,这是可能的。只需编写一个智能合约来存储和检索您的数据。
Google 术语“Solidity CRUD”用于在以太坊上存储数据的文章和教程。
缺点是:
速度 - 区块链写入速度慢,读取速度不快。以太坊永远无法与 SQLite 这样的低性能数据库竞争,更不用说与 Postgres、Oracle 或 MongoDB 竞争了。
成本 - 从 Ethereum 读取是免费的,但写入需要 Ether。确切的成本取决于您要存储的数据的大小。对于少量数据,这无关紧要。对于服务,您甚至可以编写用户支付的 API 的这一部分(例如从您那里购买门票),这样就不会花费您任何费用。但是,如果您有千兆字节的遗留数据,将其迁移到区块链可能会非常昂贵。
最重要的是,将大量数据传输到区块链会导致交易需求激增,这将增加每笔交易的成本。这不仅仅是理论上的,以前也发生过——当加密猫智能合约推出时,游戏突然变得如此流行,以至于交易从每笔交易不到 1 美分变成了每笔交易数十美元 (USD)。
一般来说,您只想在以太坊上存储您需要确保安全的核心数据并将其链接到其他数据源(例如,存储对象的 URL 链接和哈希值,但将对象本身存储在 Amazon S3 上或 Azure 存储)
【讨论】: