hiero-ledger / hiero-ledger/hiero-consensus-node

TransactionComponent.contextTransactionProcessor() is expensive

Open
#21,884 0 comments 0 reactions 0 assignees View on GitHub
Hedera Smart Contract Service Performance
Dominant language
Java
Stars
406
Forks
226
Avg merge
3d 4h
Merged PRs (30d)
210

Description

In `AbstractContractTransactionHandler.getTransactionComponent()`, a new `TransactionComponent` is created on every contract call, which, along with `TransactionComponent.contextTransactionProcessor()`, is a rather expensive operation, thanks to `dagger` (5% of transaction handling in the `SmartContract` benchmark).
Can passing down dynamic parameters (`HandleContext`, etc.) be done more efficiently?

Contributor guide

Open the contributing guide

Research direction

Start with AbstractContractTransactionHandler.getTransactionComponent() and TransactionComponent.contextTransactionProcessor(), then inspect the SmartContract benchmark mentioned in the issue. Determine whether dynamic parameters such as HandleContext can avoid repeated Dagger component creation while preserving transaction behavior; done means a validated design and measurable reduction in the reported overhead.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, performance
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.