Here is a simple smart contract, with a bytes32
array called items
in storage.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SmartContract {
bytes32[] public items;
function addItem(bytes32 item) external {
items.push(item);
}
function getAllItems() external view returns(bytes32[] memory) {
return items;
}
}
I wonder what's the actual maximum amount of data that an Ethereum node is willing to send back to a web client. Another way to ask this is, how large can the items
array be before the getAllItems()
function starts to fail.
1GB, 10GB, 100GB ?
Is that up to the node ? If so, what's the average configuration?
I believe knowing what the theoretical limit is would allow me to create a function that would retrieve only the right maximum amount of data.
I wasn't able to find a correct answer for previous questions on this topic.