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

Trigger scheduled transactions based on empty event reception

Open
#19,463 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
406
Forks
226
Avg merge
3d 4h
Merged PRs (30d)
210

Description

### **Task**
The code that executes scheduled transactions needs to be modified to respond to a new trigger. Regardless of their contents (i.e. non-empty or empty), events from the platform should now initiate execution of any scheduled transactions set to run at or prior to the event's consensus timestamp. Execution of these transactions should continue to function as currently implemented–only the trigger mechanism needs to change.

### **Context**
At a future date, idle hiero networks will have the capability to transition into a quiescent state in exchange for various benefits. By design, network quiescence will halt each node's production of its record/block stream for an undetermined amount of time, during which transactions will not be gossiped. As a result, scheduled transactions–typically triggered by the reception of a non-empty round –will need a separate mechanism to initiate their execution. Due to the way scheduled transactions are stored internally, a separate 'heartbeat' process will be required in order to transition the network out of its quiesced state prior to such executions. Without said process, scheduled transactions would not execute until the network wakes, potentially long after their scheduled timestamps.

Transactions will not circulate while a network is quiesced, but rounds containing empty events will continue to transition the network from state _N_ to state _N_+1. Since scheduled transactions can now essentially execute independently of a transaction that triggers it, we can therefore use these empty events to trigger scheduled transactions according to some configured cadence.

Contributor guide

Open the contributing guide

Research direction

No files or tests are named. Start by locating the scheduled-transaction trigger path and the event-reception handling, then compare behavior for empty and non-empty events. Done means events of either kind trigger scheduled transactions at or before their consensus timestamp without changing transaction execution.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
distributed-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.