2

我希望你能帮助我改进或验证我的存储概念。我很高兴每一个建议。由于这是我的第一个 DApp,我可能不会考虑所有可能的选项来解决我的问题。

了解背景:我计划实现一个 DApp(基于以太坊),它可以比较价格并搜索某个区域的产品最便宜的价格。产品本身是同质的,只有价格很重要。为了简单起见:它是一个复杂的产品,供应商需要几天才能确认订单,需要几个月才能交付产品。产品的价格波动很大,因此供应商可能存在作弊动机,这意味着他们一开始提供低价,几天后确认订单时要求更高的价格。

我想使用区块链的原因是对客户的透明度和可追溯性。所以客户应该能够很容易地验证,DApp 建议的价格确实是他所在地区最便宜的价格。此外,客户需要证明供应商确实在某个时间提供了某个价格,并且不能在稍后的订单确认中要求更高的价格。

所以与区块链的交互需要传递两件事:证明结果确实是他所在地区最便宜的价格 b. 供应商本身此时提供了建议的价格。

到目前为止,这是我的想法和解决方案:

最简单、最透明的方式是一份巨大的智能合约,其中存储了所有数据(价格、地区、供应商)。供应商将通过交易更新智能合约中的价格。

一个。客户可以简单地检查智能合约属性来验证 DApp 的最低价格建议。

湾。客户可以通过合约的交易历史证明价格的来源。

由于区块链上的数据存储非常昂贵,因此与该合约的交互并不是一个真正的选择。由于数据量很大(我已经尝试过),价格更新非常昂贵。相反,每个供应商在区块链上的存储应该更小,但仍然具有相同的透明度。我曾考虑使用 IPFS 作为数据存储并仅存储哈希,但 IPFS 本身并不能真正证明任何事情,因为它是可变的。所以重要的数据需要在区块链上,至少就我的理解而言,也许你有更好的主意?

所以这是我请求你帮助的最后一个想法。我试图在用例类模型组合中绘制它,我希望这样变得更加清晰。不幸的是你必须下载它,因为我没有足够的声誉

https://imgur.com/oE4cQtv

每个供应商都有自己的合同(供应商)。供应商通过交易更新合同中的价格。每个合同供应商都引用相同的 IPFS 数据存储。数据存储仅包含所有供应商智能合约(地址)的列表。

智能合约 HashStore 仅包含此列表的 IPFS 哈希。

为了获得最低价格,我将在 javascript(类价格搜索)中简单地从智能合约 HashStore 中读取 Hash。然后我将访问 IPFS 上的数据存储并获取所有地址。我不使用存储在 IPFS 上的价格。相反,我遍历地址并每次调用每个智能合约供应商的 GetData 方法。在我收集了所有价格后,我只是选择了最便宜的一个。

一个。客户可以检查 IPFS 上的数据存储以获取所有价格的概览。由于我直接从智能合约中读取价格,因此供应商操纵 IPFS 表没有任何好处。

湾。客户可以通过单独的智能合约轻松检查每个供应商及其交易历史。所以他可以很容易地证明价格变化。

我认为这个解决方案可能有效,但我仍然觉得我错过了一部分。也许 Swarm 提供了一些我不知道的选项?或者我不知道 Solidity 中有一些很酷的功能可以解决这个问题?

谢谢你的帮助!!!

4

0 回答 0