mirror of
https://github.com/status-im/nimbus-eth2.git
synced 2025-01-11 06:46:10 +00:00
bump light client spec references to v1.3.0-rc.3
(#4719)
This commit is contained in:
parent
17c0eeeede
commit
69013d153c
@ -565,7 +565,7 @@ proc processSignedContributionAndProof*(
|
||||
|
||||
err(v.error())
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.0/specs/altair/light-client/sync-protocol.md#process_light_client_finality_update
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/sync-protocol.md#process_light_client_finality_update
|
||||
proc processLightClientFinalityUpdate*(
|
||||
self: var Eth2Processor, src: MsgSource,
|
||||
finality_update: ForkedLightClientFinalityUpdate
|
||||
@ -576,7 +576,7 @@ proc processLightClientFinalityUpdate*(
|
||||
self.lightClientPool[], self.dag, finality_update, wallTime)
|
||||
v
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.0/specs/altair/light-client/sync-protocol.md#process_light_client_optimistic_update
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/sync-protocol.md#process_light_client_optimistic_update
|
||||
proc processLightClientOptimisticUpdate*(
|
||||
self: var Eth2Processor, src: MsgSource,
|
||||
optimistic_update: ForkedLightClientOptimisticUpdate
|
||||
|
@ -1057,7 +1057,7 @@ proc validateContribution*(
|
||||
|
||||
return ok((sig, participants))
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.0/specs/altair/light-client/p2p-interface.md#light_client_finality_update
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/p2p-interface.md#light_client_finality_update
|
||||
proc validateLightClientFinalityUpdate*(
|
||||
pool: var LightClientPool, dag: ChainDAGRef,
|
||||
finality_update: ForkedLightClientFinalityUpdate,
|
||||
@ -1093,7 +1093,7 @@ proc validateLightClientFinalityUpdate*(
|
||||
pool.latestForwardedFinalitySlot = finalized_slot
|
||||
ok()
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.0/specs/altair/light-client/p2p-interface.md#light_client_optimistic_update
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/p2p-interface.md#light_client_optimistic_update
|
||||
proc validateLightClientOptimisticUpdate*(
|
||||
pool: var LightClientPool, dag: ChainDAGRef,
|
||||
optimistic_update: ForkedLightClientOptimisticUpdate,
|
||||
|
@ -526,7 +526,7 @@ func toValidationError(
|
||||
# previously forwarded `optimistic_update`s
|
||||
errIgnore($r.error)
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.0/specs/altair/light-client/sync-protocol.md#process_light_client_finality_update
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/sync-protocol.md#process_light_client_finality_update
|
||||
proc processLightClientFinalityUpdate*(
|
||||
self: var LightClientProcessor, src: MsgSource,
|
||||
finality_update: ForkedLightClientFinalityUpdate
|
||||
@ -539,7 +539,7 @@ proc processLightClientFinalityUpdate*(
|
||||
self.latestFinalityUpdate = finality_update.toOptimistic
|
||||
v
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.0/specs/altair/light-client/sync-protocol.md#process_light_client_finality_update
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/sync-protocol.md#process_light_client_finality_update
|
||||
proc processLightClientOptimisticUpdate*(
|
||||
self: var LightClientProcessor, src: MsgSource,
|
||||
optimistic_update: ForkedLightClientOptimisticUpdate
|
||||
|
@ -157,7 +157,7 @@ type
|
||||
NextSyncCommitteeBranch* =
|
||||
array[log2trunc(NEXT_SYNC_COMMITTEE_INDEX), Eth2Digest]
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.0/specs/altair/light-client/sync-protocol.md#lightclientheader
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/sync-protocol.md#lightclientheader
|
||||
LightClientHeader* = object
|
||||
beacon*: BeaconBlockHeader
|
||||
## Beacon block header
|
||||
@ -171,13 +171,14 @@ type
|
||||
## Current sync committee corresponding to `header.beacon.state_root`
|
||||
current_sync_committee_branch*: CurrentSyncCommitteeBranch
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.0/specs/altair/light-client/sync-protocol.md#lightclientupdate
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/sync-protocol.md#lightclientupdate
|
||||
LightClientUpdate* = object
|
||||
attested_header*: LightClientHeader
|
||||
## Header attested to by the sync committee
|
||||
|
||||
next_sync_committee*: SyncCommittee
|
||||
## Next sync committee corresponding to `attested_header.beacon.state_root`
|
||||
## Next sync committee corresponding to
|
||||
## `attested_header.beacon.state_root`
|
||||
next_sync_committee_branch*: NextSyncCommitteeBranch
|
||||
|
||||
# Finalized header corresponding to `attested_header.beacon.state_root`
|
||||
@ -229,7 +230,7 @@ type
|
||||
LightClientBootstrap |
|
||||
SomeLightClientUpdate
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.0/specs/altair/light-client/sync-protocol.md#lightclientstore
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/sync-protocol.md#lightclientstore
|
||||
LightClientStore* = object
|
||||
finalized_header*: LightClientHeader
|
||||
## Header that is finalized
|
||||
@ -239,14 +240,15 @@ type
|
||||
next_sync_committee*: SyncCommittee
|
||||
|
||||
best_valid_update*: Opt[LightClientUpdate]
|
||||
## Best available header to switch finalized head to if we see nothing else
|
||||
## Best available header to switch finalized head to
|
||||
## if we see nothing else
|
||||
|
||||
optimistic_header*: LightClientHeader
|
||||
## Most recent available reasonably-safe header
|
||||
|
||||
previous_max_active_participants*: uint64
|
||||
## Max number of active participants in a sync committee (used to compute
|
||||
## safety threshold)
|
||||
## Max number of active participants in a sync committee
|
||||
## (used to compute safety threshold)
|
||||
current_max_active_participants*: uint64
|
||||
|
||||
InactivityScores* = HashList[uint64, Limit VALIDATOR_REGISTRY_LIMIT]
|
||||
|
@ -27,7 +27,7 @@ import
|
||||
export json_serialization, base
|
||||
|
||||
const
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.1/specs/capella/light-client/sync-protocol.md#constants
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/capella/light-client/sync-protocol.md#constants
|
||||
# This index is rooted in `BeaconBlockBody`.
|
||||
# The first member (`randao_reveal`) is 16, subsequent members +1 each.
|
||||
# If there are ever more than 16 members in `BeaconBlockBody`, indices change!
|
||||
@ -113,7 +113,7 @@ type
|
||||
ExecutionBranch* =
|
||||
array[log2trunc(EXECUTION_PAYLOAD_INDEX), Eth2Digest]
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.1/specs/capella/light-client/sync-protocol.md#lightclientheader
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/capella/light-client/sync-protocol.md#modified-lightclientheader
|
||||
LightClientHeader* = object
|
||||
beacon*: BeaconBlockHeader
|
||||
## Beacon block header
|
||||
@ -137,7 +137,8 @@ type
|
||||
## Header attested to by the sync committee
|
||||
|
||||
next_sync_committee*: SyncCommittee
|
||||
## Next sync committee corresponding to `attested_header.beacon.state_root`
|
||||
## Next sync committee corresponding to
|
||||
## `attested_header.beacon.state_root`
|
||||
next_sync_committee_branch*: altair.NextSyncCommitteeBranch
|
||||
|
||||
# Finalized header corresponding to `attested_header.beacon.state_root`
|
||||
@ -199,14 +200,15 @@ type
|
||||
next_sync_committee*: SyncCommittee
|
||||
|
||||
best_valid_update*: Opt[LightClientUpdate]
|
||||
## Best available header to switch finalized head to if we see nothing else
|
||||
## Best available header to switch finalized head to
|
||||
## if we see nothing else
|
||||
|
||||
optimistic_header*: LightClientHeader
|
||||
## Most recent available reasonably-safe header
|
||||
|
||||
previous_max_active_participants*: uint64
|
||||
## Max number of active participants in a sync committee (used to compute
|
||||
## safety threshold)
|
||||
## Max number of active participants in a sync committee
|
||||
## (used to compute safety threshold)
|
||||
current_max_active_participants*: uint64
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.2/specs/capella/beacon-chain.md#beaconstate
|
||||
@ -553,7 +555,7 @@ func shortLog*(v: SignedBLSToExecutionChange): auto =
|
||||
signature: shortLog(v.signature)
|
||||
)
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.1/specs/capella/light-client/sync-protocol.md#get_lc_execution_root
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/capella/light-client/sync-protocol.md#get_lc_execution_root
|
||||
func get_lc_execution_root*(
|
||||
header: LightClientHeader, cfg: RuntimeConfig): Eth2Digest =
|
||||
let epoch = header.beacon.slot.epoch
|
||||
@ -563,7 +565,7 @@ func get_lc_execution_root*(
|
||||
|
||||
ZERO_HASH
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.1/specs/capella/light-client/sync-protocol.md#is_valid_light_client_header
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/capella/light-client/sync-protocol.md#modified-is_valid_light_client_header
|
||||
func is_valid_light_client_header*(
|
||||
header: LightClientHeader, cfg: RuntimeConfig): bool =
|
||||
let epoch = header.beacon.slot.epoch
|
||||
@ -580,13 +582,13 @@ func is_valid_light_client_header*(
|
||||
get_subtree_index(EXECUTION_PAYLOAD_INDEX),
|
||||
header.beacon.body_root)
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.1/specs/capella/light-client/fork.md#upgrade_lc_header_to_capella
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/capella/light-client/fork.md#upgrading-light-client-data
|
||||
func upgrade_lc_header_to_capella*(
|
||||
pre: altair.LightClientHeader): LightClientHeader =
|
||||
LightClientHeader(
|
||||
beacon: pre.beacon)
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.1/specs/capella/light-client/fork.md#upgrade_lc_bootstrap_to_capella
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/capella/light-client/fork.md#upgrading-light-client-data
|
||||
func upgrade_lc_bootstrap_to_capella*(
|
||||
pre: altair.LightClientBootstrap): LightClientBootstrap =
|
||||
LightClientBootstrap(
|
||||
@ -594,7 +596,7 @@ func upgrade_lc_bootstrap_to_capella*(
|
||||
current_sync_committee: pre.current_sync_committee,
|
||||
current_sync_committee_branch: pre.current_sync_committee_branch)
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.1/specs/capella/light-client/fork.md#upgrade_lc_update_to_capella
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/capella/light-client/fork.md#upgrading-light-client-data
|
||||
func upgrade_lc_update_to_capella*(
|
||||
pre: altair.LightClientUpdate): LightClientUpdate =
|
||||
LightClientUpdate(
|
||||
@ -606,7 +608,7 @@ func upgrade_lc_update_to_capella*(
|
||||
sync_aggregate: pre.sync_aggregate,
|
||||
signature_slot: pre.signature_slot)
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.1/specs/capella/light-client/fork.md#upgrade_lc_finality_update_to_capella
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/capella/light-client/fork.md#upgrading-light-client-data
|
||||
func upgrade_lc_finality_update_to_capella*(
|
||||
pre: altair.LightClientFinalityUpdate): LightClientFinalityUpdate =
|
||||
LightClientFinalityUpdate(
|
||||
@ -616,7 +618,7 @@ func upgrade_lc_finality_update_to_capella*(
|
||||
sync_aggregate: pre.sync_aggregate,
|
||||
signature_slot: pre.signature_slot)
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.1/specs/capella/light-client/fork.md#upgrade_lc_optimistic_update_to_capella
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/capella/light-client/fork.md#upgrading-light-client-data
|
||||
func upgrade_lc_optimistic_update_to_capella*(
|
||||
pre: altair.LightClientOptimisticUpdate): LightClientOptimisticUpdate =
|
||||
LightClientOptimisticUpdate(
|
||||
@ -667,7 +669,7 @@ chronicles.formatIt LightClientUpdate: shortLog(it)
|
||||
chronicles.formatIt LightClientFinalityUpdate: shortLog(it)
|
||||
chronicles.formatIt LightClientOptimisticUpdate: shortLog(it)
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.1/specs/capella/light-client/fork.md#upgrade_lc_store_to_capella
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/capella/light-client/fork.md#upgrading-the-store
|
||||
func upgrade_lc_store_to_capella*(
|
||||
pre: altair.LightClientStore): LightClientStore =
|
||||
let best_valid_update =
|
||||
|
@ -135,7 +135,7 @@ type
|
||||
ExecutePayload* = proc(
|
||||
execution_payload: ExecutionPayload): bool {.gcsafe, raises: [Defect].}
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.1/specs/capella/light-client/sync-protocol.md#lightclientheader
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/capella/light-client/sync-protocol.md#modified-lightclientheader
|
||||
LightClientHeader* = object
|
||||
beacon*: BeaconBlockHeader
|
||||
## Beacon block header
|
||||
@ -159,7 +159,8 @@ type
|
||||
## Header attested to by the sync committee
|
||||
|
||||
next_sync_committee*: SyncCommittee
|
||||
## Next sync committee corresponding to `attested_header.beacon.state_root`
|
||||
## Next sync committee corresponding to
|
||||
## `attested_header.beacon.state_root`
|
||||
next_sync_committee_branch*: altair.NextSyncCommitteeBranch
|
||||
|
||||
# Finalized header corresponding to `attested_header.beacon.state_root`
|
||||
@ -221,14 +222,15 @@ type
|
||||
next_sync_committee*: SyncCommittee
|
||||
|
||||
best_valid_update*: Opt[LightClientUpdate]
|
||||
## Best available header to switch finalized head to if we see nothing else
|
||||
## Best available header to switch finalized head to
|
||||
## if we see nothing else
|
||||
|
||||
optimistic_header*: LightClientHeader
|
||||
## Most recent available reasonably-safe header
|
||||
|
||||
previous_max_active_participants*: uint64
|
||||
## Max number of active participants in a sync committee (used to compute
|
||||
## safety threshold)
|
||||
## Max number of active participants in a sync committee
|
||||
## (used to compute safety threshold)
|
||||
current_max_active_participants*: uint64
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.1/specs/capella/beacon-chain.md#beaconstate
|
||||
|
@ -826,7 +826,7 @@ func toAltairLightClientHeader(
|
||||
altair.LightClientHeader(
|
||||
beacon: blck.message.toBeaconBlockHeader())
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.1/specs/capella/light-client/full-node.md#block_to_light_client_header
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/capella/light-client/full-node.md#modified-block_to_light_client_header
|
||||
func toCapellaLightClientHeader(
|
||||
blck: # `SomeSignedBeaconBlock` doesn't work here (Nim 1.6)
|
||||
phase0.SignedBeaconBlock | phase0.TrustedSignedBeaconBlock |
|
||||
|
@ -15,7 +15,7 @@ import
|
||||
from ../consensus_object_pools/block_pools_types import VerifierError
|
||||
export block_pools_types.VerifierError
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.0/specs/altair/light-client/sync-protocol.md#initialize_light_client_store
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/sync-protocol.md#initialize_light_client_store
|
||||
func initialize_light_client_store*(
|
||||
trusted_block_root: Eth2Digest,
|
||||
bootstrap: ForkyLightClientBootstrap,
|
||||
@ -42,7 +42,7 @@ func initialize_light_client_store*(
|
||||
current_sync_committee: bootstrap.current_sync_committee,
|
||||
optimistic_header: bootstrap.header))
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.0/specs/altair/light-client/sync-protocol.md#validate_light_client_update
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/sync-protocol.md#validate_light_client_update
|
||||
proc validate_light_client_update*(
|
||||
store: ForkyLightClientStore,
|
||||
update: SomeForkyLightClientUpdate,
|
||||
@ -90,8 +90,10 @@ proc validate_light_client_update*(
|
||||
else:
|
||||
return err(VerifierError.Duplicate)
|
||||
|
||||
# Verify that the `finalized_header`, if present, actually is the
|
||||
# finalized header saved in the state of the `attested_header`
|
||||
# Verify that the `finality_branch`, if present, confirms `finalized_header`
|
||||
# to match the finalized checkpoint root saved in the state of
|
||||
# `attested_header`. Note that the genesis finalized checkpoint root is
|
||||
# represented as a zero hash.
|
||||
when update is SomeForkyLightClientUpdateWithFinality:
|
||||
if not update.is_finality_update:
|
||||
if update.finalized_header != default(typeof(update.finalized_header)):
|
||||
@ -157,7 +159,7 @@ proc validate_light_client_update*(
|
||||
|
||||
ok()
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.0/specs/altair/light-client/sync-protocol.md#apply_light_client_update
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/sync-protocol.md#apply_light_client_update
|
||||
func apply_light_client_update(
|
||||
store: var ForkyLightClientStore,
|
||||
update: SomeForkyLightClientUpdate): bool =
|
||||
@ -188,7 +190,7 @@ func apply_light_client_update(
|
||||
didProgress = true
|
||||
didProgress
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.0/specs/altair/light-client/sync-protocol.md#process_light_client_store_force_update
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/sync-protocol.md#process_light_client_store_force_update
|
||||
type
|
||||
ForceUpdateResult* = enum
|
||||
NoUpdate,
|
||||
@ -201,7 +203,7 @@ func process_light_client_store_force_update*(
|
||||
var res = NoUpdate
|
||||
if store.best_valid_update.isSome and
|
||||
current_slot > store.finalized_header.beacon.slot + UPDATE_TIMEOUT:
|
||||
# Forced best update when the update timeout has elapsed
|
||||
# Forced best update when the update timeout has elapsed.
|
||||
# Because the apply logic waits for `finalized_header.beacon.slot`
|
||||
# to indicate sync committee finality, the `attested_header` may be
|
||||
# treated as `finalized_header` in extended periods of non-finality
|
||||
|
@ -102,7 +102,7 @@ func getLightClientFinalityUpdateTopic*(forkDigest: ForkDigest): string =
|
||||
## For broadcasting or obtaining the latest `LightClientFinalityUpdate`.
|
||||
eth2Prefix(forkDigest) & "light_client_finality_update/ssz_snappy"
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.1/specs/altair/light-client/p2p-interface.md#light_client_optimistic_update
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/p2p-interface.md#light_client_optimistic_update
|
||||
func getLightClientOptimisticUpdateTopic*(forkDigest: ForkDigest): string =
|
||||
## For broadcasting or obtaining the latest `LightClientOptimisticUpdate`.
|
||||
eth2Prefix(forkDigest) & "light_client_optimistic_update/ssz_snappy"
|
||||
|
@ -121,7 +121,7 @@ proc doRequest(
|
||||
raises: [Defect, IOError].} =
|
||||
peer.lightClientBootstrap(blockRoot)
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.0/specs/altair/light-client/p2p-interface.md#lightclientupdatesbyrange
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/p2p-interface.md#lightclientupdatesbyrange
|
||||
type LightClientUpdatesByRangeResponse =
|
||||
NetRes[List[ForkedLightClientUpdate, MAX_REQUEST_LIGHT_CLIENT_UPDATES]]
|
||||
proc doRequest(
|
||||
@ -403,7 +403,7 @@ func fetchTime(
|
||||
jitterDelay = chronos.seconds(self.rng[].rand(jitterSeconds).int64)
|
||||
return wallTime + minDelay + jitterDelay
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.0/specs/altair/light-client/light-client.md#light-client-sync-process
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/light-client.md#light-client-sync-process
|
||||
proc loop(self: LightClientManager) {.async.} =
|
||||
var nextFetchTime = self.getBeaconTime()
|
||||
while true:
|
||||
|
@ -552,7 +552,7 @@ p2pProtocol BeaconSync(version = 1,
|
||||
debug "BlobSidecar range request done",
|
||||
peer, startSlot, found
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.0/specs/altair/light-client/p2p-interface.md#getlightclientbootstrap
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/p2p-interface.md#getlightclientbootstrap
|
||||
proc lightClientBootstrap(
|
||||
peer: Peer,
|
||||
blockRoot: Eth2Digest,
|
||||
@ -580,7 +580,7 @@ p2pProtocol BeaconSync(version = 1,
|
||||
|
||||
debug "LC bootstrap request done", peer, blockRoot
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.0/specs/altair/light-client/p2p-interface.md#lightclientupdatesbyrange
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/p2p-interface.md#lightclientupdatesbyrange
|
||||
proc lightClientUpdatesByRange(
|
||||
peer: Peer,
|
||||
startPeriod: SyncCommitteePeriod,
|
||||
@ -625,7 +625,7 @@ p2pProtocol BeaconSync(version = 1,
|
||||
|
||||
debug "LC updates by range request done", peer, startPeriod, count, found
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.0/specs/altair/light-client/p2p-interface.md#getlightclientfinalityupdate
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/p2p-interface.md#getlightclientfinalityupdate
|
||||
proc lightClientFinalityUpdate(
|
||||
peer: Peer,
|
||||
response: SingleChunkResponse[ForkedLightClientFinalityUpdate])
|
||||
@ -652,7 +652,7 @@ p2pProtocol BeaconSync(version = 1,
|
||||
|
||||
debug "LC finality update request done", peer
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.0/specs/altair/light-client/p2p-interface.md#getlightclientoptimisticupdate
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/p2p-interface.md#getlightclientoptimisticupdate
|
||||
proc lightClientOptimisticUpdate(
|
||||
peer: Peer,
|
||||
response: SingleChunkResponse[ForkedLightClientOptimisticUpdate])
|
||||
|
@ -172,7 +172,7 @@ NOT 2022-11-21 18:04:03.982+01:00 New LC optimistic block opt
|
||||
```
|
||||
|
||||
!!! note
|
||||
The [light client protocol](https://github.com/ethereum/consensus-specs/blob/dev/specs/altair/light-client/sync-protocol.md) depends on consensus layer (CL) full nodes to serve additional data. As this is a new protocol, not all implementations are supporting it yet. Therefore, it may take several minutes to discover supporting peers, during which no log messages may be produced.
|
||||
The [light client protocol](https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/sync-protocol.md) depends on consensus layer (CL) full nodes to serve additional data. As this is a new protocol, not all implementations are supporting it yet. Therefore, it may take several minutes to discover supporting peers, during which no log messages may be produced.
|
||||
|
||||
=== "Geth"
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Light client data
|
||||
|
||||
Nimbus is configured by default to serve data that allows light clients to stay in sync with the Ethereum network. Light client data is imported incrementally and does not affect validator performance. Information about the light client sync protocol can be found in the [Ethereum consensus specs](https://github.com/ethereum/consensus-specs/blob/dev/specs/altair/light-client/sync-protocol.md).
|
||||
Nimbus is configured by default to serve data that allows light clients to stay in sync with the Ethereum network. Light client data is imported incrementally and does not affect validator performance. Information about the light client sync protocol can be found in the [Ethereum consensus specs](https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/sync-protocol.md).
|
||||
|
||||
!!! note
|
||||
Nimbus also implements a [standalone light client](./el-light-client.md) that may be used to sync an execution layer (EL) client.
|
||||
|
Loading…
x
Reference in New Issue
Block a user