SIMD-0267: rent epoch in vm is a constant

simd: '0267'
title: Sets rent_epoch to a constant in the VM
authors:
  - Brooks Prumo
category: Standard
type: Core
status: Review
created: 2025-03-25
feature: RENtePQcDLrAbxAsP3k8dwVcnNYQ466hi2uKvALjnXx

Summary

Set the value of rent_epoch—as serialized into the VM for transaction processing—to a constant.

Motivation

The rent_epoch field on an account is no longer meaningful. This is because all accounts must be rent exempt, and rent fees collection has been disabled (see SIMD-84). With this in mind, it would be beneficial to remove rent_epoch from the computation of a single account's hash.

However, before we can remove the rent_epoch from the account hash computation, we must set the value of rent_epoch—as serialized into the VM for transaction processing—to a constant. If we did not do this, different validators could have different values for rent_epoch passed into the VM, which could result in different transaction results and thus cluster divergence.

New Terminology

None.

Detailed Design

The value of the rent_epoch field serialized into the VM per account shall be set to the constant used to denote a rent-exempt account. This value is u64::MAX, aka 0xFFFF_FFFF_FFFF_FFFF.

Alternatives Considered

None.

Impact

The rent_epoch field in an account can be deprecated. This allows reclaiming and reusing these bytes for other purposes in the future.

In certain rare cases the serialized rent_epoch of an account may previously have been 0 and will now be u64::MAX.

Security Considerations

None.