已部署的智能契约具有公共视图功能,可以搜索到使用for循环映射结构。
问题是,在数据的500圈内(有10,000个索引,而且还在增长.)区块链返回:
{
"code": -32000,
"message": "out of gas"
}
那么,合同现在是无用的。知道如何控制气体排放和出气前的回路出口吗?
谢谢!
发布于 2022-09-04 08:35:27
让我补充一点现有的伟大答案。
是的,你可以在你的合同中实施这种技巧。但我强烈建议不要。主要是因为:
发布于 2022-09-04 08:13:17
当然,只要做这样的事情:
do{
// Your stuff
}while(gasleft() > whateverYouNeed)
(其中whateverYouNeed将是运行循环一次迭代所需的气体量+后面的气体量(可能*1.5,以防万一)
发布于 2022-09-04 09:01:25
我同意劳里的看法。
此外,检查您正在保存的数据是否“过期”,并在一段时间后删除。
如果您知道某些数据可以在一段时间后被删除,那么您可以添加逻辑来处理数据删除,这样您的智能契约数据就不会增长到浪费资源和无法使用的地步。
https://ethereum.stackexchange.com/questions/134968
复制相似问题