Module ethsync::light_sync [] [src]

Light client synchronization.

This will synchronize the header chain using LES messages. Dataflow is largely one-directional as headers are pushed into the light client queue for import. Where possible, they are batched in groups.

This is written assuming that the client and sync service are running in the same binary; unlike a full node which might communicate via IPC.

Sync strategy: - Find a common ancestor with peers. - Split the chain up into subchains, which are downloaded in parallel from various peers in rounds. - When within a certain distance of the head of the chain, aggressively download all announced blocks. - On bad block/response, punish peer and reset.

Structs

LightSync

Light client synchronization manager. See module docs for more details.