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

举个简单的例子:

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

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

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

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

有什么好办法解决吗?

请先 登录 后评论

最佳答案 2021-07-20 10:26

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

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

请先 登录 后评论

其它 0 个回答

  • 1 关注
  • 0 收藏,2076 浏览
  • jimmy 提出于 2021-07-19 22:54