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

Falcon Environment

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

Description

Implement the Falcon Environment. It is a third Otter environment for deterministic simulation testing: seeded, replayable, randomized runs at high repetition.

Image

The core idea is to use a stripped-down version of the consensus layer for a node, reducing it to the most critical building blocks: event hasher, `OrphanBuffer`, Hashgraph algorithm, and `EventCreator`. We use the default implementations, which are also used in production, and connect them using a `DeterministicWiringModel` with the default wiring configuration.

The network will be simulated using the same approach we use for the Turtle environment.

The key goals of this environment are deterministic behavior and fast execution. This will allow us to run randomized tests repeatedly, helping us reliably discover rarely occurring issues. Each new feature has to be evaluated against these goals. Some features may be implemented as optional and only on request, so that tests that do not require the new feature are unaffected.

Contributor guide

Open the contributing guide

Research direction

Start by reading the existing Turtle environment and the default consensus components named in the issue: the event hasher, OrphanBuffer, Hashgraph algorithm, EventCreator, and DeterministicWiringModel. The work is complete when a Falcon environment supports deterministic, seeded, replayable randomized simulations with fast execution and preserves the stated optional-feature behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
distributed-systems, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.