-
Notifications
You must be signed in to change notification settings - Fork 180
Open
Description
Problem
Currently, many shims in the Forest codebase are using older versions of data types (like Address
) which require conversions when interfacing with the latest actor versions. Since the latest actors are called most frequently in production, this creates unnecessary performance overhead.
Examples
- In
src/shim/actors/builtin/account/mod.rs
, thepubkey_address()
method returnsfvm_shared2::address::Address
but has to convert fromfvm_shared4::address::Address
for newer actor versions (V10-V17) - Some types like
FilterEstimate
don't have shims for the latest version at all
Proposed Solution
Refactor shims to:
- Return the latest versions of data types by default
- Make older actor versions handle the conversions instead of newer ones
- Ensure all relevant types have shims for the latest versions
This would improve performance for the most common use cases (latest actor versions) while maintaining compatibility.
Context
This issue was identified during the discussion in PR #6087 where we're refactoring actor state handling for version upgrades.
References:
- PR: refactor(actor_state): allow easy version upgrades #6087
- Discussion: refactor(actor_state): allow easy version upgrades #6087 (comment)
Reported by: @LesnyRumcajs
Context provided by: @akaladarshi
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Ready