Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: #666 Refactor states and services. #716

Merged
merged 14 commits into from
Jan 27, 2025
Merged

Conversation

Zurcusa
Copy link
Collaborator

@Zurcusa Zurcusa commented Jan 27, 2025

Description

See the following PRs:
#688
#701
#691

Zurcusa and others added 13 commits January 15, 2025 18:04
# Description
This PR aims to improve the overall structure of Fruzhin in 2 ways:
- Add a shared interface for services (sync and network, babe and
grandpa are to follow) `NodeService`. This enables services to share a
class signature and be started/stopped in a similar fashion. It also
helps separate what services are required and started for each type of
node.
- Add a shared interface for states (block, sync, epoch, grandpa and
transaction) `ServiceState`. Reasoning is similar to the service one,
but it also aims to centralize the initialization of the states as they
were not concise. It also prepares Fruzhin to follow the Runtime to
Consensus engine communication. (initializing states at genesis and
using consensus message to update)
…states

# Conflicts:
#	src/main/java/com/limechain/grandpa/state/RoundState.java
# Description

feat: Add ServiceConsensusState interface with populateFromRuntime()
method

- Introduced `ServiceConsensusState` interface to define the
initializeFromRuntime() method for RoundState and EpochState as
requiring runtime data.
- Implemented populateFromRuntime()
- Integrated these state initializations within FullSyncMachine to
ensure proper synchronization during node startup.
Fixes #687

---------

Co-authored-by: Hristiyan Mitov <[email protected]>
**Description**
feat: Introduced the StateManager class to centralize and manage all
state instances.
Additionally, fixed comments from PR.








Fixes #687

---------

Co-authored-by: Hristiyan Mitov <[email protected]>
# Conflicts:
#	src/main/java/com/limechain/grandpa/GrandpaService.java
#	src/main/java/com/limechain/grandpa/state/GrandpaSetState.java
#	src/main/java/com/limechain/network/protocol/message/ProtocolMessageBuilder.java
#	src/main/java/com/limechain/rpc/config/CommonConfig.java
#	src/main/java/com/limechain/storage/block/BlockHandler.java
#	src/main/java/com/limechain/sync/warpsync/WarpSyncMachine.java
#	src/main/java/com/limechain/sync/warpsync/WarpSyncState.java
#	src/main/java/com/limechain/sync/warpsync/action/VerifyJustificationAction.java
#	src/test/java/com/limechain/grandpa/GrandpaServiceTest.java
# Description
Adapt block handling to the latest changes after refactoring.
…states

# Conflicts:
#	src/main/java/com/limechain/babe/BabeService.java
#	src/main/java/com/limechain/grandpa/GrandpaService.java
#	src/main/java/com/limechain/grandpa/state/GrandpaSetState.java
#	src/main/java/com/limechain/rpc/config/CommonConfig.java
#	src/test/java/com/limechain/grandpa/GrandpaServiceTest.java
#	src/test/java/com/limechain/network/protocol/grandpa/GrandpaEngineTest.java
…states

# Conflicts:
#	src/main/java/com/limechain/grandpa/GrandpaService.java
#	src/main/java/com/limechain/rpc/config/CommonConfig.java
#	src/main/java/com/limechain/sync/warpsync/WarpSyncState.java
#	src/test/java/com/limechain/grandpa/GrandpaServiceTest.java
@Zurcusa Zurcusa merged commit a1a422a into dev Jan 27, 2025
3 checks passed
@Zurcusa Zurcusa deleted the 666-refactor-services-states branch January 27, 2025 11:05
@nistanimirov nistanimirov linked an issue Jan 27, 2025 that may be closed by this pull request
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

EPIC: Refactor services and states.
3 participants