Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: release v1.23.0 #7207

Merged
merged 97 commits into from
Nov 11, 2024
Merged

chore: release v1.23.0 #7207

merged 97 commits into from
Nov 11, 2024

Conversation

wemeetagain
Copy link
Member

twoeths and others added 30 commits September 12, 2024 08:34
* fix: avoid toHexString()

* fix: use toRootHex and toPubkeyHex where applicable
* fix: fromHexString() to fromHex()

* fix: throw error for NodeJS fromHex() if malformed string

* fix: correct hex value in sim test
…7085)

* fix: use bigint gwei type for amount in requests instead of num 64

* revert deposit amount to uintnum64 as unlikely to get a high amount

* fix
Bumps [path-to-regexp](https://github.com/pillarjs/path-to-regexp) from 6.2.2 to 6.3.0.
- [Release notes](https://github.com/pillarjs/path-to-regexp/releases)
- [Changelog](https://github.com/pillarjs/path-to-regexp/blob/master/History.md)
- [Commits](pillarjs/path-to-regexp@v6.2.2...v6.3.0)

---
updated-dependencies:
- dependency-name: path-to-regexp
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [express](https://github.com/expressjs/express) from 4.19.2 to 4.21.0.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md)
- [Commits](expressjs/express@4.19.2...4.21.0)

---
updated-dependencies:
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.5 to 4.0.8.
- [Release notes](https://github.com/micromatch/micromatch/releases)
- [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md)
- [Commits](micromatch/micromatch@4.0.5...4.0.8)

---
updated-dependencies:
- dependency-name: micromatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [webpack](https://github.com/webpack/webpack) from 5.90.3 to 5.94.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](webpack/webpack@v5.90.3...v5.94.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.0.9 to 3.1.6.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](cure53/DOMPurify@3.0.9...3.1.6)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.3.4 to 5.3.6.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.3.6/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.3.6/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [find-my-way](https://github.com/delvedor/find-my-way) from 8.1.0 to 8.2.2.
- [Release notes](https://github.com/delvedor/find-my-way/releases)
- [Commits](delvedor/find-my-way@v8.1.0...v8.2.2)

---
updated-dependencies:
- dependency-name: find-my-way
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Add constant

* Use constants

* Remove ZERO_NEXT_SYNC_COMMITTEE_BRANCH

* Add normalizeMerkleBranch

* add getId to CheckpointHeaderRepository

* fix: light-client unit tests

* chore: lint

* Fix normalizeMerkleBranch

* Enable LC spec test

* fix spec test

---------

Co-authored-by: NC <17676176+ensi321@users.noreply.github.com>
* feat: add ShufflingCache to EpochCache

* fix: implementation in state-transition for EpochCache with ShufflingCache

* feat: remove shufflingCache.processState

* feat: implement ShufflingCache changes in beacon-node

* feat: pass shufflingCache when loading cached state from db

* test: fix state-transition tests for EpochCache changes

* feat: Pass shufflingCache to EpochCache at startup

* test: fix slot off by one for decision root in perf test

* chore: use ?. syntax

* chore: refactoring

* feat: add comments and clean up afterProcessEpoch

* fix: perf test slot incrementing

* fix: remove MockShufflingCache

* Revert "chore: refactoring"

This reverts commit 104aa56.

* refactor: shufflingCache getters

* refactor: shufflingCache setters

* refactor: build and getOrBuild

* docs: add comments to ShufflingCache methods

* chore: lint issues

* test: update tests in beacon-node

* chore: lint

* feat: get shufflings from cache for API

* feat: minTimeDelayToBuildShuffling cli flag

* test: fix shufflingCache promise insertion test

* fix: rebase conflicts

* fix: changes from debugging sim tests

* refactor: minimize changes in afterProcessEpoch

* chore: fix lint

* chore: fix check-types

* chore: fix check-types

* feat: add diff utility

* fix: bug in spec tests from invalid nextActiveIndices

* refactor: add/remove comments

* refactor: remove this.activeIndicesLength from EpochCache

* refactor: simplify shufflingCache.getSync

* refactor: remove unnecessary undefined's

* refactor: clean up ShufflingCache unit test

* feat: add metrics for ShufflingCache

* feat: add shufflingCache metrics to state-transition

* chore: lint

* fix: metric name clash

* refactor: add comment about not having ShufflingCache in EpochCache

* refactor: rename shuffling decision root functions

* refactor: remove unused comment

* feat: async add nextShuffling to EpochCache after its built

* feat: make ShufflingCache.set private

* feat: chance metrics to nextShufflingNotOnEpochCache instead of positive case

* refactor: move diff to separate PR

* chore: fix tests using shufflingCache.set method

* feat: remove minTimeDelayToBuild

* feat: return promise from insertPromise and then through build

* fix: update metrics names and help field

* feat: move build of shuffling to beforeProcessEpoch

* feat: allow calc of pivot slot before slot increment

* fix: calc of pivot slot before slot increment

* Revert "fix: calc of pivot slot before slot increment"

This reverts commit 5e65f7e.

* Revert "feat: allow calc of pivot slot before slot increment"

This reverts commit ed850ee.

* feat: allow getting current block root for shuffling calculation

* fix: get nextShufflingDecisionRoot directly from state.blockRoots

* fix: convert toRootHex

* docs: add comment about pulling decisionRoot directly from state

* feat: add back metrics for regen attestation cache hit/miss

* docs: fix docstring on shufflingCache.build

* refactor: change validatorIndices to Uint32Array

* refactor: remove comment and change variable name

* fix: use toRootHex instead of toHexString

* refactor: deduplicate moved function computeAnchorCheckpoint

* fix: touch up metrics per PR comments

* fix: merge conflict

* chore: lint

* refactor: add scope around activeIndices to GC arrays

* feat: directly use Uint32Array instead of transcribing number array to Uint32Array

* refactor: activeIndices per tuyen comment

* refactor: rename to epochAfterNext

* chore: review PR

* feat: update no shuffling ApiError to 500 status

* fix: add back unnecessary eslint directive. to be remove under separate PR

* feat: update no shuffling ApiError to 500 status

* docs: add comment about upcomingEpoch

---------

Co-authored-by: Cayman <caymannava@gmail.com>
Co-authored-by: Tuyen Nguyen <vutuyen2636@gmail.com>
* chore: upgrade fastify to v5

* Upgrade fastify plugins

* Clean up yarn lock
* Move requests from payload to block body

* Lint

* Add execution requests to engine api

* Remove engine_getPayloadBodies*V2

* Update spec test version

* Lint

* Fix unit test and polish

* Remove todo
* feat: use POST variant to get validators from state

* Fix api handler used during testing

* Update more calls to use POST variant
* fix: release memory to BufferPool

* fix: correct the serializeState metric

* fix: check types

* chore: fix lint
* feat: add validator identities endpoint

* Test against official spec release from beacon-apis repo

* Prepopulate validatorIdentities in else clause

* Log warning if validator index can't be resolved
* Update slashing calculation to be more aligned with spec style

* Update calculation

* Lint

* Fix rounding issue

* Update calculation

* Enable slashing spec test

* lint
* feat: use napi-rs pubkey-index-map

* fix: export toMemoryEfficientHexStr()

* fix: state-transition CachedBeaconState unit test

* chore: remove commented code
* fix: default params of n-historical-states config

* chore: improve log

* feat: enable nHistoricalStates by default

* chore: fix typo in log
nflaig and others added 8 commits October 25, 2024 13:49
* feat: forward blinded block ssz bytes to submitBlindedBlock api

* Add comment

* Add WithOptionalBytes
Revert "chore: upgrade to js-libp2p 2.0 (#7077)"

This reverts commit d37bdb0.
* Add metric to track default validator configuration

* Update validator client dashboard

* Rename column
* chore: update blst to 2.2.0

* feat: make aggregateWithRandomness async

* feat: update metrics and remove stale comment

* fix: metric collection value

* feat: remove duplicate/unused metrics from asyncAggregateWithRandomness
)

* feat: track block production selection source and reason

* Rename reason to builder_censorship

* Fix metric name

* Add metric to track execution payload value

* Update metric descriptions

* Remove ETH suffix from payload values

* Rename metric

* Update import path

* Return block selection result

* Reorder if statements
Copy link
Contributor

github-actions bot commented Oct 29, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 841a52b Previous: - Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.7294 ms/op
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 38.581 us/op
BLS verify - blst 905.02 us/op
BLS verifyMultipleSignatures 3 - blst 1.3269 ms/op
BLS verifyMultipleSignatures 8 - blst 2.0794 ms/op
BLS verifyMultipleSignatures 32 - blst 4.4109 ms/op
BLS verifyMultipleSignatures 64 - blst 8.1646 ms/op
BLS verifyMultipleSignatures 128 - blst 15.764 ms/op
BLS deserializing 10000 signatures 621.54 ms/op
BLS deserializing 100000 signatures 6.0279 s/op
BLS verifyMultipleSignatures - same message - 3 - blst 890.63 us/op
BLS verifyMultipleSignatures - same message - 8 - blst 1.0639 ms/op
BLS verifyMultipleSignatures - same message - 32 - blst 1.6594 ms/op
BLS verifyMultipleSignatures - same message - 64 - blst 2.3893 ms/op
BLS verifyMultipleSignatures - same message - 128 - blst 3.9104 ms/op
BLS aggregatePubkeys 32 - blst 16.861 us/op
BLS aggregatePubkeys 128 - blst 59.466 us/op
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 59.140 ms/op
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 66.767 ms/op
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 39.271 ms/op
getSlashingsAndExits - default max 81.715 us/op
getSlashingsAndExits - 2k 338.78 us/op
proposeBlockBody type=full, size=empty 5.8464 ms/op
isKnown best case - 1 super set check 577.00 ns/op
isKnown normal case - 2 super set checks 581.00 ns/op
isKnown worse case - 16 super set checks 565.00 ns/op
InMemoryCheckpointStateCache - add get delete 3.3910 us/op
updateUnfinalizedPubkeys - updating 10 pubkeys 1.1927 ms/op
updateUnfinalizedPubkeys - updating 100 pubkeys 3.2284 ms/op
updateUnfinalizedPubkeys - updating 1000 pubkeys 40.132 ms/op
validate api signedAggregateAndProof - struct 1.5467 ms/op
validate gossip signedAggregateAndProof - struct 1.5130 ms/op
batch validate gossip attestation - vc 640000 - chunk 32 127.24 us/op
batch validate gossip attestation - vc 640000 - chunk 64 113.56 us/op
batch validate gossip attestation - vc 640000 - chunk 128 107.68 us/op
batch validate gossip attestation - vc 640000 - chunk 256 103.72 us/op
pickEth1Vote - no votes 1.0183 ms/op
pickEth1Vote - max votes 7.6290 ms/op
pickEth1Vote - Eth1Data hashTreeRoot value x2048 23.390 ms/op
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 20.627 ms/op
pickEth1Vote - Eth1Data fastSerialize value x2048 385.74 us/op
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.7240 ms/op
bytes32 toHexString 739.00 ns/op
bytes32 Buffer.toString(hex) 505.00 ns/op
bytes32 Buffer.toString(hex) from Uint8Array 723.00 ns/op
bytes32 Buffer.toString(hex) + 0x 498.00 ns/op
Object access 1 prop 0.36300 ns/op
Map access 1 prop 0.32800 ns/op
Object get x1000 5.1860 ns/op
Map get x1000 6.0490 ns/op
Object set x1000 26.901 ns/op
Map set x1000 20.280 ns/op
Return object 10000 times 0.30620 ns/op
Throw Error 10000 times 2.7297 us/op
toHex 157.94 ns/op
Buffer.from 121.60 ns/op
shared Buffer 77.102 ns/op
fastMsgIdFn sha256 / 200 bytes 2.1530 us/op
fastMsgIdFn h32 xxhash / 200 bytes 476.00 ns/op
fastMsgIdFn h64 xxhash / 200 bytes 442.00 ns/op
fastMsgIdFn sha256 / 1000 bytes 6.0460 us/op
fastMsgIdFn h32 xxhash / 1000 bytes 612.00 ns/op
fastMsgIdFn h64 xxhash / 1000 bytes 541.00 ns/op
fastMsgIdFn sha256 / 10000 bytes 51.562 us/op
fastMsgIdFn h32 xxhash / 10000 bytes 2.2450 us/op
fastMsgIdFn h64 xxhash / 10000 bytes 1.4100 us/op
send data - 1000 256B messages 10.452 ms/op
send data - 1000 512B messages 16.669 ms/op
send data - 1000 1024B messages 30.751 ms/op
send data - 1000 1200B messages 29.005 ms/op
send data - 1000 2048B messages 39.408 ms/op
send data - 1000 4096B messages 29.127 ms/op
send data - 1000 16384B messages 76.943 ms/op
send data - 1000 65536B messages 336.86 ms/op
enrSubnets - fastDeserialize 64 bits 1.8680 us/op
enrSubnets - ssz BitVector 64 bits 697.00 ns/op
enrSubnets - fastDeserialize 4 bits 451.00 ns/op
enrSubnets - ssz BitVector 4 bits 712.00 ns/op
prioritizePeers score -10:0 att 32-0.1 sync 2-0 206.19 us/op
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 209.00 us/op
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 310.95 us/op
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 534.01 us/op
prioritizePeers score 0:0 att 64-1 sync 4-1 861.83 us/op
array of 16000 items push then shift 1.5116 us/op
LinkedList of 16000 items push then shift 7.2330 ns/op
array of 16000 items push then pop 142.06 ns/op
LinkedList of 16000 items push then pop 7.0260 ns/op
array of 24000 items push then shift 2.0648 us/op
LinkedList of 24000 items push then shift 6.8040 ns/op
array of 24000 items push then pop 202.92 ns/op
LinkedList of 24000 items push then pop 7.5070 ns/op
intersect bitArray bitLen 8 5.8630 ns/op
intersect array and set length 8 91.906 ns/op
intersect bitArray bitLen 128 29.555 ns/op
intersect array and set length 128 1.2866 us/op
bitArray.getTrueBitIndexes() bitLen 128 4.0330 us/op
bitArray.getTrueBitIndexes() bitLen 248 4.6690 us/op
bitArray.getTrueBitIndexes() bitLen 512 10.274 us/op
Buffer.concat 32 items 1.2610 us/op
Uint8Array.set 32 items 2.9330 us/op
Buffer.copy 3.2870 us/op
Uint8Array.set - with subarray 4.4990 us/op
Uint8Array.set - without subarray 2.4930 us/op
getUint32 - dataview 564.00 ns/op
getUint32 - manual 610.00 ns/op
Set add up to 64 items then delete first 3.2359 us/op
OrderedSet add up to 64 items then delete first 4.3657 us/op
Set add up to 64 items then delete last 3.6993 us/op
OrderedSet add up to 64 items then delete last 5.6298 us/op
Set add up to 64 items then delete middle 3.6672 us/op
OrderedSet add up to 64 items then delete middle 7.5468 us/op
Set add up to 128 items then delete first 7.1241 us/op
OrderedSet add up to 128 items then delete first 14.775 us/op
Set add up to 128 items then delete last 6.9806 us/op
OrderedSet add up to 128 items then delete last 12.235 us/op
Set add up to 128 items then delete middle 8.7810 us/op
OrderedSet add up to 128 items then delete middle 18.923 us/op
Set add up to 256 items then delete first 14.473 us/op
OrderedSet add up to 256 items then delete first 22.850 us/op
Set add up to 256 items then delete last 13.262 us/op
OrderedSet add up to 256 items then delete last 22.025 us/op
Set add up to 256 items then delete middle 13.224 us/op
OrderedSet add up to 256 items then delete middle 48.056 us/op
transfer serialized Status (84 B) 1.9420 us/op
copy serialized Status (84 B) 2.1790 us/op
transfer serialized SignedVoluntaryExit (112 B) 1.6610 us/op
copy serialized SignedVoluntaryExit (112 B) 1.5490 us/op
transfer serialized ProposerSlashing (416 B) 2.2080 us/op
copy serialized ProposerSlashing (416 B) 2.2370 us/op
transfer serialized Attestation (485 B) 2.4510 us/op
copy serialized Attestation (485 B) 2.3680 us/op
transfer serialized AttesterSlashing (33232 B) 2.9880 us/op
copy serialized AttesterSlashing (33232 B) 10.926 us/op
transfer serialized Small SignedBeaconBlock (128000 B) 3.2530 us/op
copy serialized Small SignedBeaconBlock (128000 B) 33.641 us/op
transfer serialized Avg SignedBeaconBlock (200000 B) 3.7130 us/op
copy serialized Avg SignedBeaconBlock (200000 B) 35.308 us/op
transfer serialized BlobsSidecar (524380 B) 2.6120 us/op
copy serialized BlobsSidecar (524380 B) 84.711 us/op
transfer serialized Big SignedBeaconBlock (1000000 B) 3.5430 us/op
copy serialized Big SignedBeaconBlock (1000000 B) 161.68 us/op
pass gossip attestations to forkchoice per slot 2.6014 ms/op
forkChoice updateHead vc 100000 bc 64 eq 0 387.45 us/op
forkChoice updateHead vc 600000 bc 64 eq 0 2.2952 ms/op
forkChoice updateHead vc 1000000 bc 64 eq 0 3.8365 ms/op
forkChoice updateHead vc 600000 bc 320 eq 0 2.3655 ms/op
forkChoice updateHead vc 600000 bc 1200 eq 0 2.2989 ms/op
forkChoice updateHead vc 600000 bc 7200 eq 0 2.7095 ms/op
forkChoice updateHead vc 600000 bc 64 eq 1000 10.049 ms/op
forkChoice updateHead vc 600000 bc 64 eq 10000 9.5924 ms/op
forkChoice updateHead vc 600000 bc 64 eq 300000 15.655 ms/op
computeDeltas 500000 validators 300 proto nodes 3.3096 ms/op
computeDeltas 500000 validators 1200 proto nodes 3.4967 ms/op
computeDeltas 500000 validators 7200 proto nodes 3.6436 ms/op
computeDeltas 750000 validators 300 proto nodes 5.5440 ms/op
computeDeltas 750000 validators 1200 proto nodes 5.4638 ms/op
computeDeltas 750000 validators 7200 proto nodes 5.6196 ms/op
computeDeltas 1400000 validators 300 proto nodes 9.6612 ms/op
computeDeltas 1400000 validators 1200 proto nodes 10.623 ms/op
computeDeltas 1400000 validators 7200 proto nodes 9.9742 ms/op
computeDeltas 2100000 validators 300 proto nodes 14.802 ms/op
computeDeltas 2100000 validators 1200 proto nodes 14.545 ms/op
computeDeltas 2100000 validators 7200 proto nodes 15.168 ms/op
altair processAttestation - 250000 vs - 7PWei normalcase 1.5087 ms/op
altair processAttestation - 250000 vs - 7PWei worstcase 2.3371 ms/op
altair processAttestation - setStatus - 1/6 committees join 69.864 us/op
altair processAttestation - setStatus - 1/3 committees join 145.46 us/op
altair processAttestation - setStatus - 1/2 committees join 196.99 us/op
altair processAttestation - setStatus - 2/3 committees join 260.25 us/op
altair processAttestation - setStatus - 4/5 committees join 437.20 us/op
altair processAttestation - setStatus - 100% committees join 495.70 us/op
altair processBlock - 250000 vs - 7PWei normalcase 4.5392 ms/op
altair processBlock - 250000 vs - 7PWei normalcase hashState 31.395 ms/op
altair processBlock - 250000 vs - 7PWei worstcase 35.807 ms/op
altair processBlock - 250000 vs - 7PWei worstcase hashState 70.231 ms/op
phase0 processBlock - 250000 vs - 7PWei normalcase 2.1003 ms/op
phase0 processBlock - 250000 vs - 7PWei worstcase 26.333 ms/op
altair processEth1Data - 250000 vs - 7PWei normalcase 295.14 us/op
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.6190 us/op
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 37.336 us/op
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 11.866 us/op
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 8.4470 us/op
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 131.98 us/op
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 873.77 us/op
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.1872 ms/op
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.2240 ms/op
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.8277 ms/op
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.3277 ms/op
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.0534 ms/op
Tree 40 250000 create 217.71 ms/op
Tree 40 250000 get(125000) 117.29 ns/op
Tree 40 250000 set(125000) 537.45 ns/op
Tree 40 250000 toArray() 12.757 ms/op
Tree 40 250000 iterate all - toArray() + loop 12.349 ms/op
Tree 40 250000 iterate all - get(i) 45.458 ms/op
Array 250000 create 2.4571 ms/op
Array 250000 clone - spread 1.2256 ms/op
Array 250000 get(125000) 0.61000 ns/op
Array 250000 set(125000) 0.63700 ns/op
Array 250000 iterate all - loop 75.038 us/op
phase0 afterProcessEpoch - 250000 vs - 7PWei 43.872 ms/op
Array.fill - length 1000000 2.7498 ms/op
Array push - length 1000000 16.775 ms/op
Array.get 0.26510 ns/op
Uint8Array.get 0.34201 ns/op
phase0 beforeProcessEpoch - 250000 vs - 7PWei 18.488 ms/op
altair processEpoch - mainnet_e81889 233.11 ms/op
mainnet_e81889 - altair beforeProcessEpoch 17.550 ms/op
mainnet_e81889 - altair processJustificationAndFinalization 11.858 us/op
mainnet_e81889 - altair processInactivityUpdates 4.0312 ms/op
mainnet_e81889 - altair processRewardsAndPenalties 40.814 ms/op
mainnet_e81889 - altair processRegistryUpdates 1.8530 us/op
mainnet_e81889 - altair processSlashings 748.00 ns/op
mainnet_e81889 - altair processEth1DataReset 709.00 ns/op
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.4885 ms/op
mainnet_e81889 - altair processSlashingsReset 2.5230 us/op
mainnet_e81889 - altair processRandaoMixesReset 2.9540 us/op
mainnet_e81889 - altair processHistoricalRootsUpdate 704.00 ns/op
mainnet_e81889 - altair processParticipationFlagUpdates 1.4200 us/op
mainnet_e81889 - altair processSyncCommitteeUpdates 636.00 ns/op
mainnet_e81889 - altair afterProcessEpoch 43.079 ms/op
capella processEpoch - mainnet_e217614 792.35 ms/op
mainnet_e217614 - capella beforeProcessEpoch 67.287 ms/op
mainnet_e217614 - capella processJustificationAndFinalization 10.320 us/op
mainnet_e217614 - capella processInactivityUpdates 15.175 ms/op
mainnet_e217614 - capella processRewardsAndPenalties 245.24 ms/op
mainnet_e217614 - capella processRegistryUpdates 10.883 us/op
mainnet_e217614 - capella processSlashings 801.00 ns/op
mainnet_e217614 - capella processEth1DataReset 697.00 ns/op
mainnet_e217614 - capella processEffectiveBalanceUpdates 6.0484 ms/op
mainnet_e217614 - capella processSlashingsReset 1.3780 us/op
mainnet_e217614 - capella processRandaoMixesReset 3.1380 us/op
mainnet_e217614 - capella processHistoricalRootsUpdate 728.00 ns/op
mainnet_e217614 - capella processParticipationFlagUpdates 1.2260 us/op
mainnet_e217614 - capella afterProcessEpoch 108.56 ms/op
phase0 processEpoch - mainnet_e58758 299.39 ms/op
mainnet_e58758 - phase0 beforeProcessEpoch 70.247 ms/op
mainnet_e58758 - phase0 processJustificationAndFinalization 15.454 us/op
mainnet_e58758 - phase0 processRewardsAndPenalties 25.205 ms/op
mainnet_e58758 - phase0 processRegistryUpdates 6.2040 us/op
mainnet_e58758 - phase0 processSlashings 906.00 ns/op
mainnet_e58758 - phase0 processEth1DataReset 762.00 ns/op
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 878.73 us/op
mainnet_e58758 - phase0 processSlashingsReset 3.5410 us/op
mainnet_e58758 - phase0 processRandaoMixesReset 5.2010 us/op
mainnet_e58758 - phase0 processHistoricalRootsUpdate 946.00 ns/op
mainnet_e58758 - phase0 processParticipationRecordUpdates 5.1330 us/op
mainnet_e58758 - phase0 afterProcessEpoch 37.630 ms/op
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.3098 ms/op
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.9004 ms/op
altair processInactivityUpdates - 250000 normalcase 17.575 ms/op
altair processInactivityUpdates - 250000 worstcase 16.594 ms/op
phase0 processRegistryUpdates - 250000 normalcase 7.7850 us/op
phase0 processRegistryUpdates - 250000 badcase_full_deposits 322.60 us/op
phase0 processRegistryUpdates - 250000 worstcase 0.5 120.03 ms/op
altair processRewardsAndPenalties - 250000 normalcase 38.377 ms/op
altair processRewardsAndPenalties - 250000 worstcase 37.090 ms/op
phase0 getAttestationDeltas - 250000 normalcase 6.4881 ms/op
phase0 getAttestationDeltas - 250000 worstcase 6.2378 ms/op
phase0 processSlashings - 250000 worstcase 95.403 us/op
altair processSyncCommitteeUpdates - 250000 109.03 ms/op
BeaconState.hashTreeRoot - No change 567.00 ns/op
BeaconState.hashTreeRoot - 1 full validator 102.13 us/op
BeaconState.hashTreeRoot - 32 full validator 1.3275 ms/op
BeaconState.hashTreeRoot - 512 full validator 9.1974 ms/op
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 102.39 us/op
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.8936 ms/op
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 32.069 ms/op
BeaconState.hashTreeRoot - 1 balances 149.68 us/op
BeaconState.hashTreeRoot - 32 balances 1.5462 ms/op
BeaconState.hashTreeRoot - 512 balances 9.8548 ms/op
BeaconState.hashTreeRoot - 250000 balances 193.25 ms/op
aggregationBits - 2048 els - zipIndexesInBitList 32.666 us/op
byteArrayEquals 32 48.882 ns/op
Buffer.compare 32 15.445 ns/op
byteArrayEquals 1024 1.2751 us/op
Buffer.compare 1024 23.949 ns/op
byteArrayEquals 16384 20.564 us/op
Buffer.compare 16384 206.92 ns/op
byteArrayEquals 123687377 148.58 ms/op
Buffer.compare 123687377 4.0301 ms/op
byteArrayEquals 32 - diff last byte 47.556 ns/op
Buffer.compare 32 - diff last byte 15.870 ns/op
byteArrayEquals 1024 - diff last byte 1.2643 us/op
Buffer.compare 1024 - diff last byte 24.028 ns/op
byteArrayEquals 16384 - diff last byte 19.961 us/op
Buffer.compare 16384 - diff last byte 210.23 ns/op
byteArrayEquals 123687377 - diff last byte 148.76 ms/op
Buffer.compare 123687377 - diff last byte 4.5457 ms/op
byteArrayEquals 32 - random bytes 4.7800 ns/op
Buffer.compare 32 - random bytes 15.264 ns/op
byteArrayEquals 1024 - random bytes 4.9450 ns/op
Buffer.compare 1024 - random bytes 15.811 ns/op
byteArrayEquals 16384 - random bytes 4.9240 ns/op
Buffer.compare 16384 - random bytes 15.878 ns/op
byteArrayEquals 123687377 - random bytes 7.8000 ns/op
Buffer.compare 123687377 - random bytes 18.080 ns/op
regular array get 100000 times 30.111 us/op
wrappedArray get 100000 times 30.337 us/op
arrayWithProxy get 100000 times 11.286 ms/op
ssz.Root.equals 43.883 ns/op
byteArrayEquals 41.265 ns/op
Buffer.compare 8.9310 ns/op
processSlot - 1 slots 13.747 us/op
processSlot - 32 slots 3.1902 ms/op
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 38.918 ms/op
getCommitteeAssignments - req 1 vs - 250000 vc 1.7906 ms/op
getCommitteeAssignments - req 100 vs - 250000 vc 3.5102 ms/op
getCommitteeAssignments - req 1000 vs - 250000 vc 3.7883 ms/op
findModifiedValidators - 10000 modified validators 246.73 ms/op
findModifiedValidators - 1000 modified validators 203.86 ms/op
findModifiedValidators - 100 modified validators 160.73 ms/op
findModifiedValidators - 10 modified validators 152.54 ms/op
findModifiedValidators - 1 modified validators 158.69 ms/op
findModifiedValidators - no difference 168.74 ms/op
compare ViewDUs 3.1817 s/op
compare each validator Uint8Array 1.5520 s/op
compare ViewDU to Uint8Array 1.1220 s/op
migrate state 1000000 validators, 24 modified, 0 new 899.13 ms/op
migrate state 1000000 validators, 1700 modified, 1000 new 1.0475 s/op
migrate state 1000000 validators, 3400 modified, 2000 new 1.1525 s/op
migrate state 1500000 validators, 24 modified, 0 new 655.20 ms/op
migrate state 1500000 validators, 1700 modified, 1000 new 990.25 ms/op
migrate state 1500000 validators, 3400 modified, 2000 new 1.0504 s/op
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 6.4300 ns/op
state getBlockRootAtSlot - 250000 vs - 7PWei 430.43 ns/op
computeProposers - vc 250000 5.4713 ms/op
computeEpochShuffling - vc 250000 36.041 ms/op
getNextSyncCommittee - vc 250000 101.07 ms/op
computeSigningRoot for AttestationData 24.072 us/op
hash AttestationData serialized data then Buffer.toString(base64) 1.2347 us/op
toHexString serialized data 783.61 ns/op
Buffer.toString(base64) 149.72 ns/op
nodejs block root to RootHex using toHex 131.14 ns/op
nodejs block root to RootHex using toRootHex 78.597 ns/op
browser block root to RootHex using the deprecated toHexString 235.97 ns/op
browser block root to RootHex using toHex 175.94 ns/op
browser block root to RootHex using toRootHex 154.83 ns/op

by benchmarkbot/action

@twoeths
Copy link
Contributor

twoeths commented Nov 1, 2024

this is on 1k, submitPoolAttestationPool() was reduced thanks to libp2p revert

Screenshot 2024-11-01 at 14 33 14

gc was reduced more with async aggregateWithRandomness(), this is on the test mainnet node

Screenshot 2024-11-01 at 14 35 35

thanks to that the "Prepare Next Epoch" time was reduced, this is on 1k

Screenshot 2024-11-01 at 14 38 48

the stable lg1k node somehow was very bad due to the high gc there

twoeths
twoeths previously approved these changes Nov 1, 2024
nflaig
nflaig previously approved these changes Nov 1, 2024
Copy link
Member

@nflaig nflaig left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All issues I had reported on rc.0 are resolved

Revert "feat: asyncAggregateWithRandomness (#7204)"

This reverts commit e31d535.
@matthewkeil matthewkeil dismissed stale reviews from nflaig and twoeths via a00dbf0 November 7, 2024 12:39
Copy link

codecov bot commented Nov 7, 2024

Codecov Report

Attention: Patch coverage is 48.85177% with 245 lines in your changes missing coverage. Please review.

Project coverage is 49.35%. Comparing base (94288e9) to head (68357ab).
Report is 1 commits behind head on stable.

Additional details and impacted files
@@            Coverage Diff             @@
##           stable    #7207      +/-   ##
==========================================
- Coverage   50.89%   49.35%   -1.54%     
==========================================
  Files         594      599       +5     
  Lines       39607    39958     +351     
  Branches     2247     2101     -146     
==========================================
- Hits        20159    19723     -436     
- Misses      19448    20195     +747     
- Partials        0       40      +40     

@nflaig
Copy link
Member

nflaig commented Nov 7, 2024

Need to cherry-pick #7212 as well

@philknows
Copy link
Member

#7212 will need to be updated with new genesis before release. https://config.mekong.ethpandaops.io/cl/config.yaml

ensi321 and others added 2 commits November 8, 2024 08:26
… branches (#7187)

* initial commit

* Rewrite SyncCommitteeWitnessRepository

* Fix finality branch

* Update unit test

* fix e2e

* Review PR

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>
@nflaig nflaig marked this pull request as ready for review November 11, 2024 08:31
@nflaig nflaig requested a review from a team as a code owner November 11, 2024 08:31
@nflaig nflaig merged commit 72be9fd into stable Nov 11, 2024
31 checks passed
@nflaig nflaig deleted the rc/v1.23.0 branch November 11, 2024 08:33
@wemeetagain
Copy link
Member Author

🎉 This PR is included in v1.23.0 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants