NEAR 智能合约调用/查看方法可以返回的最大数据长度是多少?
What is the max length of data that can be returned from a NEAR smart contract call / view method?
在主网上,我能够 return 一个 10kb 长度的字符串,而在测试网上,如果我尝试 return 2kb,我会得到 HostError(GasLimitExceeded)
。什么是“官方”限制?
export function get_data(): Uint8Array {
return new Uint8Array(2000);
}
返回 uint8 数组效率低下,因为它将被序列化为 JSON,例如[1, 5, 131, 5]
有 4 个值。
如果您需要传递二进制数据,最好先使用 base64
将其序列化。然后你可以在前端反序列化。通过 base64
和高效的数据读取,您应该能够 return 相当大的数据量。
主网和测试网的限制都应该是200Tgas
。不确定为什么测试网与主网有不同的行为。
在主网上,我能够 return 一个 10kb 长度的字符串,而在测试网上,如果我尝试 return 2kb,我会得到 HostError(GasLimitExceeded)
。什么是“官方”限制?
export function get_data(): Uint8Array {
return new Uint8Array(2000);
}
返回 uint8 数组效率低下,因为它将被序列化为 JSON,例如[1, 5, 131, 5]
有 4 个值。
如果您需要传递二进制数据,最好先使用 base64
将其序列化。然后你可以在前端反序列化。通过 base64
和高效的数据读取,您应该能够 return 相当大的数据量。
主网和测试网的限制都应该是200Tgas
。不确定为什么测试网与主网有不同的行为。