What is the process that BPs follow to update the RAM size at regular intervals? From what I can tell, the update is made in the eosio_global_state singleton to update the max_ram_size parameter in the global table of eosio by pushing an action to N(setram) or something along these lines, but it's unclear to me who does this, when it's done, and how can this be changed.

I found this answer but I was wondering if anyone has more details about the process. Aspects such as whether it is only the active BPs in one schedule that sign this multisig action, when is this action performed, how is this whole thing organised, and can someone link an example of such transactions on the chain or provide a trx_id?


After some digging and some help from EOS New York, I think I understand the process of making changes better, and I can answer my question:

The setramrate update was proposed on 23rd July 2018 by Argentinaeos under the name of 1dot1dotzero, and it determined that EOS RAM should increase at 1kb per block.

The transaction that incorporated this change has an ID of c08f40f6b66cccb78d117cd4041308653922915cee6d29fffe310dc0264a7cee, it was made from the eosio account and signed by a supermajority of BPs, and it included only a setcode action that updated eosio.system. There was no functionality to add RAM every block, so the proposal used a code update from Dan who added a void setramrate( uint16_t bytes_per_block ) method, and it was decided offline that 1kb should be the value for now.

This is unlikely to be the case for much longer, as the RAM may increase a lot faster soon, but proposals can be tracked here.

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.