@lodestar/beacon-node 1.39.0-dev.c151a164f2 → 1.39.0-dev.f4236afdba

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  2. package/lib/chain/blocks/verifyBlock.js +1 -1
  3. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  4. package/lib/chain/blocks/verifyBlocksSignatures.d.ts +1 -2
  5. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  6. package/lib/chain/blocks/verifyBlocksSignatures.js +2 -2
  7. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  8. package/lib/chain/chain.d.ts.map +1 -1
  9. package/lib/chain/chain.js +4 -6
  10. package/lib/chain/chain.js.map +1 -1
  11. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +4 -4
  12. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  13. package/lib/chain/opPools/aggregatedAttestationPool.js +4 -4
  14. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  15. package/lib/chain/opPools/opPool.d.ts +0 -3
  16. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  17. package/lib/chain/opPools/opPool.js +8 -9
  18. package/lib/chain/opPools/opPool.js.map +1 -1
  19. package/lib/chain/produceBlock/produceBlockBody.js +2 -2
  20. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  21. package/lib/chain/rewards/attestationsRewards.d.ts +1 -2
  22. package/lib/chain/rewards/attestationsRewards.d.ts.map +1 -1
  23. package/lib/chain/rewards/attestationsRewards.js +8 -8
  24. package/lib/chain/rewards/attestationsRewards.js.map +1 -1
  25. package/lib/chain/rewards/blockRewards.d.ts +1 -2
  26. package/lib/chain/rewards/blockRewards.d.ts.map +1 -1
  27. package/lib/chain/rewards/blockRewards.js +5 -5
  28. package/lib/chain/rewards/blockRewards.js.map +1 -1
  29. package/lib/chain/rewards/syncCommitteeRewards.d.ts +1 -2
  30. package/lib/chain/rewards/syncCommitteeRewards.d.ts.map +1 -1
  31. package/lib/chain/rewards/syncCommitteeRewards.js +2 -2
  32. package/lib/chain/rewards/syncCommitteeRewards.js.map +1 -1
  33. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +1 -4
  34. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  35. package/lib/chain/stateCache/persistentCheckpointsCache.js +2 -4
  36. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  37. package/lib/chain/validation/attesterSlashing.js +1 -1
  38. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  39. package/lib/chain/validation/block.js +1 -1
  40. package/lib/chain/validation/block.js.map +1 -1
  41. package/lib/chain/validation/blsToExecutionChange.js +1 -1
  42. package/lib/chain/validation/proposerSlashing.js +1 -1
  43. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  44. package/lib/chain/validation/signatureSets/aggregateAndProof.js +1 -1
  45. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  46. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts +1 -2
  47. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts.map +1 -1
  48. package/lib/chain/validation/signatureSets/contributionAndProof.js +2 -2
  49. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  50. package/lib/chain/validation/signatureSets/syncCommittee.d.ts +1 -2
  51. package/lib/chain/validation/signatureSets/syncCommittee.d.ts.map +1 -1
  52. package/lib/chain/validation/signatureSets/syncCommittee.js +2 -2
  53. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  54. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts +1 -2
  55. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts.map +1 -1
  56. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js +2 -2
  57. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  58. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts +1 -2
  59. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts.map +1 -1
  60. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js +2 -1
  61. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  62. package/lib/chain/validation/syncCommittee.js +1 -1
  63. package/lib/chain/validation/syncCommittee.js.map +1 -1
  64. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +1 -1
  65. package/lib/chain/validation/syncCommitteeContributionAndProof.js +3 -3
  66. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  67. package/lib/chain/validation/voluntaryExit.js +1 -1
  68. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  69. package/lib/sync/backfill/backfill.d.ts.map +1 -1
  70. package/lib/sync/backfill/backfill.js +4 -2
  71. package/lib/sync/backfill/backfill.js.map +1 -1
  72. package/lib/sync/backfill/verify.d.ts +1 -1
  73. package/lib/sync/backfill/verify.d.ts.map +1 -1
  74. package/lib/sync/backfill/verify.js +2 -2
  75. package/lib/sync/backfill/verify.js.map +1 -1
  76. package/package.json +14 -14
  77. package/src/chain/blocks/verifyBlock.ts +0 -1
  78. package/src/chain/blocks/verifyBlocksSignatures.ts +1 -3
  79. package/src/chain/chain.ts +4 -6
  80. package/src/chain/opPools/aggregatedAttestationPool.ts +7 -7
  81. package/src/chain/opPools/opPool.ts +8 -8
  82. package/src/chain/produceBlock/produceBlockBody.ts +2 -2
  83. package/src/chain/rewards/attestationsRewards.ts +4 -13
  84. package/src/chain/rewards/blockRewards.ts +3 -6
  85. package/src/chain/rewards/syncCommitteeRewards.ts +1 -3
  86. package/src/chain/stateCache/persistentCheckpointsCache.ts +2 -15
  87. package/src/chain/validation/attesterSlashing.ts +1 -1
  88. package/src/chain/validation/block.ts +1 -1
  89. package/src/chain/validation/blsToExecutionChange.ts +1 -1
  90. package/src/chain/validation/proposerSlashing.ts +1 -1
  91. package/src/chain/validation/signatureSets/aggregateAndProof.ts +1 -1
  92. package/src/chain/validation/signatureSets/contributionAndProof.ts +1 -3
  93. package/src/chain/validation/signatureSets/syncCommittee.ts +1 -3
  94. package/src/chain/validation/signatureSets/syncCommitteeContribution.ts +1 -3
  95. package/src/chain/validation/signatureSets/syncCommitteeSelectionProof.ts +1 -2
  96. package/src/chain/validation/syncCommittee.ts +1 -1
  97. package/src/chain/validation/syncCommitteeContributionAndProof.ts +3 -8
  98. package/src/chain/validation/voluntaryExit.ts +1 -1
  99. package/src/sync/backfill/backfill.ts +3 -8
  100. package/src/sync/backfill/verify.ts +1 -3
@@ -44,7 +44,7 @@ async function validateProposerSlashing(
44
44
  });
45
45
  }
46
46
 
47
- const signatureSets = getProposerSlashingSignatureSets(chain.config, chain.index2pubkey, state, proposerSlashing);
47
+ const signatureSets = getProposerSlashingSignatureSets(chain.index2pubkey, state, proposerSlashing);
48
48
  if (!(await chain.bls.verifySignatureSets(signatureSets, {batchable: true, priority: prioritizeBls}))) {
49
49
  throw new ProposerSlashingError(GossipAction.REJECT, {
50
50
  code: ProposerSlashingErrorCode.INVALID,
@@ -14,7 +14,7 @@ export function getAggregateAndProofSigningRoot(
14
14
  epoch: Epoch,
15
15
  aggregateAndProof: SignedAggregateAndProof
16
16
  ): Uint8Array {
17
- // previously, we call `const aggregatorDomain = config.getDomain(state.slot, DOMAIN_AGGREGATE_AND_PROOF, slot);`
17
+ // previously, we call `const aggregatorDomain = state.config.getDomain(state.slot, DOMAIN_AGGREGATE_AND_PROOF, slot);`
18
18
  // at fork boundary, it's required to dial to target epoch https://github.com/ChainSafe/lodestar/blob/v1.11.3/packages/beacon-node/src/chain/validation/attestation.ts#L573
19
19
  // instead of that, just use the fork of slot in the attestation data
20
20
  const slot = computeStartSlotAtEpoch(epoch);
@@ -1,4 +1,3 @@
1
- import {BeaconConfig} from "@lodestar/config";
2
1
  import {DOMAIN_CONTRIBUTION_AND_PROOF} from "@lodestar/params";
3
2
  import {
4
3
  CachedBeaconStateAllForks,
@@ -10,12 +9,11 @@ import {
10
9
  import {altair, ssz} from "@lodestar/types";
11
10
 
12
11
  export function getContributionAndProofSignatureSet(
13
- config: BeaconConfig,
14
12
  index2pubkey: Index2PubkeyCache,
15
13
  state: CachedBeaconStateAllForks,
16
14
  signedContributionAndProof: altair.SignedContributionAndProof
17
15
  ): ISignatureSet {
18
- const domain = config.getDomain(
16
+ const domain = state.config.getDomain(
19
17
  state.slot,
20
18
  DOMAIN_CONTRIBUTION_AND_PROOF,
21
19
  signedContributionAndProof.message.contribution.slot
@@ -1,4 +1,3 @@
1
- import {BeaconConfig} from "@lodestar/config";
2
1
  import {DOMAIN_SYNC_COMMITTEE} from "@lodestar/params";
3
2
  import {
4
3
  CachedBeaconStateAllForks,
@@ -10,12 +9,11 @@ import {
10
9
  import {altair, ssz} from "@lodestar/types";
11
10
 
12
11
  export function getSyncCommitteeSignatureSet(
13
- config: BeaconConfig,
14
12
  index2pubkey: Index2PubkeyCache,
15
13
  state: CachedBeaconStateAllForks,
16
14
  syncCommittee: altair.SyncCommitteeMessage
17
15
  ): ISignatureSet {
18
- const domain = config.getDomain(state.slot, DOMAIN_SYNC_COMMITTEE, syncCommittee.slot);
16
+ const domain = state.config.getDomain(state.slot, DOMAIN_SYNC_COMMITTEE, syncCommittee.slot);
19
17
 
20
18
  return {
21
19
  type: SignatureSetType.single,
@@ -1,16 +1,14 @@
1
1
  import {PublicKey} from "@chainsafe/blst";
2
- import {BeaconConfig} from "@lodestar/config";
3
2
  import {DOMAIN_SYNC_COMMITTEE} from "@lodestar/params";
4
3
  import {CachedBeaconStateAltair, ISignatureSet, SignatureSetType, computeSigningRoot} from "@lodestar/state-transition";
5
4
  import {altair, ssz} from "@lodestar/types";
6
5
 
7
6
  export function getSyncCommitteeContributionSignatureSet(
8
- config: BeaconConfig,
9
7
  state: CachedBeaconStateAltair,
10
8
  contribution: altair.SyncCommitteeContribution,
11
9
  pubkeys: PublicKey[]
12
10
  ): ISignatureSet {
13
- const domain = config.getDomain(state.slot, DOMAIN_SYNC_COMMITTEE, contribution.slot);
11
+ const domain = state.config.getDomain(state.slot, DOMAIN_SYNC_COMMITTEE, contribution.slot);
14
12
  return {
15
13
  type: SignatureSetType.aggregate,
16
14
  pubkeys,
@@ -1,4 +1,3 @@
1
- import {BeaconConfig} from "@lodestar/config";
2
1
  import {DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF} from "@lodestar/params";
3
2
  import {
4
3
  CachedBeaconStateAllForks,
@@ -10,11 +9,11 @@ import {
10
9
  import {altair, ssz} from "@lodestar/types";
11
10
 
12
11
  export function getSyncCommitteeSelectionProofSignatureSet(
13
- config: BeaconConfig,
14
12
  index2pubkey: Index2PubkeyCache,
15
13
  state: CachedBeaconStateAllForks,
16
14
  contributionAndProof: altair.ContributionAndProof
17
15
  ): ISignatureSet {
16
+ const {config} = state;
18
17
  const slot = contributionAndProof.contribution.slot;
19
18
  const domain = config.getDomain(state.slot, DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF, slot);
20
19
  const signingData: altair.SyncAggregatorSelectionData = {
@@ -89,7 +89,7 @@ async function validateSyncCommitteeSigOnly(
89
89
  syncCommittee: altair.SyncCommitteeMessage,
90
90
  prioritizeBls = false
91
91
  ): Promise<void> {
92
- const signatureSet = getSyncCommitteeSignatureSet(chain.config, chain.index2pubkey, headState, syncCommittee);
92
+ const signatureSet = getSyncCommitteeSignatureSet(chain.index2pubkey, headState, syncCommittee);
93
93
  if (!(await chain.bls.verifySignatureSets([signatureSet], {batchable: true, priority: prioritizeBls}))) {
94
94
  throw new SyncCommitteeError(GossipAction.REJECT, {
95
95
  code: SyncCommitteeErrorCode.INVALID_SIGNATURE,
@@ -78,19 +78,14 @@ export async function validateSyncCommitteeGossipContributionAndProof(
78
78
  const signatureSets = [
79
79
  // [REJECT] The contribution_and_proof.selection_proof is a valid signature of the SyncAggregatorSelectionData
80
80
  // derived from the contribution by the validator with index contribution_and_proof.aggregator_index.
81
- getSyncCommitteeSelectionProofSignatureSet(chain.config, index2pubkey, headState, contributionAndProof),
81
+ getSyncCommitteeSelectionProofSignatureSet(index2pubkey, headState, contributionAndProof),
82
82
 
83
83
  // [REJECT] The aggregator signature, signed_contribution_and_proof.signature, is valid.
84
- getContributionAndProofSignatureSet(chain.config, index2pubkey, headState, signedContributionAndProof),
84
+ getContributionAndProofSignatureSet(index2pubkey, headState, signedContributionAndProof),
85
85
 
86
86
  // [REJECT] The aggregate signature is valid for the message beacon_block_root and aggregate pubkey derived from
87
87
  // the participation info in aggregation_bits for the subcommittee specified by the contribution.subcommittee_index.
88
- getSyncCommitteeContributionSignatureSet(
89
- chain.config,
90
- headState as CachedBeaconStateAltair,
91
- contribution,
92
- participantPubkeys
93
- ),
88
+ getSyncCommitteeContributionSignatureSet(headState as CachedBeaconStateAltair, contribution, participantPubkeys),
94
89
  ];
95
90
 
96
91
  if (!(await chain.bls.verifySignatureSets(signatureSets, {batchable: true}))) {
@@ -59,7 +59,7 @@ async function validateVoluntaryExit(
59
59
  });
60
60
  }
61
61
 
62
- const signatureSet = getVoluntaryExitSignatureSet(chain.config, chain.index2pubkey, state, voluntaryExit);
62
+ const signatureSet = getVoluntaryExitSignatureSet(chain.index2pubkey, state, voluntaryExit);
63
63
  if (!(await chain.bls.verifySignatureSets([signatureSet], {batchable: true, priority: prioritizeBls}))) {
64
64
  throw new VoluntaryExitError(GossipAction.REJECT, {
65
65
  code: VoluntaryExitErrorCode.INVALID_SIGNATURE,
@@ -750,13 +750,9 @@ export class BackfillSync extends (EventEmitter as {new (): BackfillSyncEmitter}
750
750
 
751
751
  // GENESIS_SLOT doesn't has valid signature
752
752
  if (anchorBlock.message.slot === GENESIS_SLOT) return;
753
- await verifyBlockProposerSignature(
754
- this.chain.config,
755
- this.chain.index2pubkey,
756
- this.chain.bls,
757
- this.chain.getHeadState(),
758
- [anchorBlock]
759
- );
753
+ await verifyBlockProposerSignature(this.chain.index2pubkey, this.chain.bls, this.chain.getHeadState(), [
754
+ anchorBlock,
755
+ ]);
760
756
 
761
757
  // We can write to the disk if this is ahead of prevFinalizedCheckpointBlock otherwise
762
758
  // we will need to go make checks on the top of sync loop before writing as it might
@@ -822,7 +818,6 @@ export class BackfillSync extends (EventEmitter as {new (): BackfillSyncEmitter}
822
818
  // If any of the block's proposer signature fail, we can't trust this peer at all
823
819
  if (verifiedBlocks.length > 0) {
824
820
  await verifyBlockProposerSignature(
825
- this.chain.config,
826
821
  this.chain.index2pubkey,
827
822
  this.chain.bls,
828
823
  this.chain.getHeadState(),
@@ -46,7 +46,6 @@ export function verifyBlockSequence(
46
46
  }
47
47
 
48
48
  export async function verifyBlockProposerSignature(
49
- config: BeaconConfig,
50
49
  index2pubkey: Index2PubkeyCache,
51
50
  bls: IBlsVerifier,
52
51
  state: CachedBeaconStateAllForks,
@@ -55,8 +54,7 @@ export async function verifyBlockProposerSignature(
55
54
  if (blocks.length === 1 && blocks[0].message.slot === GENESIS_SLOT) return;
56
55
  const signatures = blocks.reduce((sigs: ISignatureSet[], block) => {
57
56
  // genesis block doesn't have valid signature
58
- if (block.message.slot !== GENESIS_SLOT)
59
- sigs.push(getBlockProposerSignatureSet(config, index2pubkey, state, block));
57
+ if (block.message.slot !== GENESIS_SLOT) sigs.push(getBlockProposerSignatureSet(index2pubkey, state, block));
60
58
  return sigs;
61
59
  }, []);
62
60