import { ApiClient } from "@lodestar/api"; import { ChainForkConfig } from "@lodestar/config"; import { IClock } from "@lodestar/state-transition"; import { Metrics } from "../metrics.js"; import { PubkeyHex } from "../types.js"; import { LoggerVc } from "../util/index.js"; import { ChainHeaderTracker } from "./chainHeaderTracker.js"; import { ValidatorEventEmitter } from "./emitter.js"; import { SyncingStatusTracker } from "./syncingStatusTracker.js"; import { ValidatorStore } from "./validatorStore.js"; export type SyncCommitteeServiceOpts = { scAfterBlockDelaySlotFraction?: number; distributedAggregationSelection?: boolean; }; /** * Service that sets up and handles validator sync duties. */ export declare class SyncCommitteeService { private readonly config; private readonly logger; private readonly api; private readonly clock; private readonly validatorStore; private readonly emitter; private readonly chainHeaderTracker; readonly syncingStatusTracker: SyncingStatusTracker; private readonly metrics; private readonly opts?; private readonly dutiesService; constructor(config: ChainForkConfig, logger: LoggerVc, api: ApiClient, clock: IClock, validatorStore: ValidatorStore, emitter: ValidatorEventEmitter, chainHeaderTracker: ChainHeaderTracker, syncingStatusTracker: SyncingStatusTracker, metrics: Metrics | null, opts?: SyncCommitteeServiceOpts | undefined); removeDutiesForKey(pubkey: PubkeyHex): void; private runSyncCommitteeTasks; /** * Performs the first step of the attesting process: downloading `SyncCommittee` objects, * signing them and returning them to the validator. * * https://github.com/ethereum/consensus-specs/blob/v1.1.10/specs/altair/validator.md#sync-committee-messages * * Only one `SyncCommittee` is downloaded from the BN. It is then signed by each * validator and the list of individually-signed `SyncCommittee` objects is returned to the BN. */ private produceAndPublishSyncCommittees; private getHeadForSyncCommitteeMessage; /** * Performs the second step of the attesting process: downloading an aggregated `SyncCommittee`, * converting it into a `SignedAggregateAndProof` and returning it to the BN. * * https://github.com/ethereum/consensus-specs/blob/v1.1.10/specs/altair/validator.md#sync-committee-contributions * * Only one aggregated `SyncCommittee` is downloaded from the BN. It is then signed * by each validator and the list of individually-signed `SignedAggregateAndProof` objects is * returned to the BN. */ private produceAndPublishAggregates; } //# sourceMappingURL=syncCommittee.d.ts.map