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

Initial Version of Fast Sync #4465

Merged
merged 56 commits into from
Dec 12, 2023
Merged

Initial Version of Fast Sync #4465

merged 56 commits into from
Dec 12, 2023

Conversation

GheisMohammadi
Copy link
Contributor

Issue

Fast sync is a synchronization method. When a new node joins the network, it needs to download and verify the entire blockchain history to ensure it has a complete and accurate copy of the network's state. However, in traditional full synchronization, this process can be time-consuming and resource-intensive, as it requires downloading and processing every block from the genesis block to the latest block.

Fast sync is designed to expedite this synchronization process by allowing new nodes to download only the most recent state of the blockchain, rather than the entire history. Instead of starting from the genesis block, fast sync enables nodes to download a snapshot of the current blockchain state and verifies it. Then, it retrieves recent block headers and validates them against the snapshot. By doing so, the new node can quickly catch up to the current state of the network without downloading the entire history.

During fast sync, the node relies on other nodes in the network to provide the necessary block headers and state information. This method significantly reduces the time and resources required for synchronization, making it a more efficient way for new nodes to join the network.

It's important to note that fast sync is a one-time process performed when a new node initially joins the network. Once the node is synchronized, it transitions to normal operation, where it receives and validates new blocks in the blockchain as they are produced.

@ONECasey ONECasey self-requested a review July 14, 2023 13:59
@GheisMohammadi GheisMohammadi self-assigned this Jul 15, 2023
@sophoah sophoah added the WIP Work in progress don't merge yet! label Aug 7, 2023
@GheisMohammadi GheisMohammadi force-pushed the feature/fastsync branch 2 times, most recently from 8d85364 to e0a742c Compare October 5, 2023 07:22
@GheisMohammadi GheisMohammadi marked this pull request as ready for review December 12, 2023 14:34
Copy link
Contributor

@adsorptionenthalpy adsorptionenthalpy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the proposed changes and agree they should be merged into dev.

@adsorptionenthalpy adsorptionenthalpy merged commit c82599b into dev Dec 12, 2023
4 checks passed
@diego1q2w diego1q2w deleted the feature/fastsync branch December 21, 2023 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
WIP Work in progress don't merge yet!
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants