智能合约中大量数据处理导致速度极慢的问题

jimmy jimmy 提出于 2021-07-19 22:54 3727 浏览

举个简单的例子:

假设有一个链游,有1000万个属性不同的角色,每个角色的属性都上链。

其中一个属性,叫“攻击力”。

现在,我们要从这1000万个角色里面,挑出所有“攻击力大于10”的,并且把他们的攻击力求和。并希望通过一个合约内的view方法实现它。

显然,如果机械地把这1000万个角色列成一个数组,然后for循环一一判定再加和,会让这个运算变得极大,甚至导致内存溢出。

有什么好办法解决吗?

0 条评论 5 学分

最佳答案

2021-07-20 10:26

可以把链上数据,在链下进行缓存再计算。

链上的资源是非常有限也昂贵的, 比较适合存储精炼、高价值的数据。

Tiny熊

擅长:智能合约,以太坊 · 采纳率 33% · 回答于 2021-07-20 08:58

其它 0 个回答

写回答

你需要登录后才可以回答问题,登录