mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-05-24 15:56:42 +00:00

* [NOD-1501] Add logAndMeasureExecutionTime to SyncManager methods. * [NOD-1501] Implement antiPastHashesBetween. * [NOD-1501] Implement createBlockLocator. * [NOD-1501] Implement findNextBlockLocatorBoundaries. * [NOD-1501] Rename IsBlockHeaderInPruningPointFutureAndVirtualPast to IsBlockInHeaderPruningPointFutureAndVirtualPast. * [NOD-1501] Add GetSyncInfo. * [NOD-1501] Make go vet happy. * [NOD-1501] Rename sync states. * [NOD-1501] Move maxHashesInGetHashesBetween to antipast.go. * [NOD-1501] Rename maxHashesInAntiPastHashesBetween. * [NOD-1501] Implement LowestChainBlockAboveOrEqualToBlueScore. * [NOD-1501] Fix bad variable name. * [NOD-1501] Fix LowestChainBlockAboveOrEqualToBlueScore. * [NOD-1501] Clarify LowestChainBlockAboveOrEqualToBlueScore.
18 lines
801 B
Go
18 lines
801 B
Go
package externalapi
|
|
|
|
// BlockLocator is used to help locate a specific block. The algorithm for
|
|
// building the block locator is to add block hashes in reverse order on the
|
|
// block's selected parent chain until the desired stop block is reached.
|
|
// In order to keep the list of locator hashes to a reasonable number of entries,
|
|
// the step between each entry is doubled each loop iteration to exponentially
|
|
// decrease the number of hashes as a function of the distance from the block
|
|
// being located.
|
|
//
|
|
// For example, assume a selected parent chain with IDs as depicted below, and the
|
|
// stop block is genesis:
|
|
// genesis -> 1 -> 2 -> ... -> 15 -> 16 -> 17 -> 18
|
|
//
|
|
// The block locator for block 17 would be the hashes of blocks:
|
|
// [17 16 14 11 7 2 genesis]
|
|
type BlockLocator []*DomainHash
|