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

Draft
wants to merge 92 commits into
base: stable
Choose a base branch
from
Draft

chore: release v1.23.0 #7207

wants to merge 92 commits into from

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] <[email protected]>
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] <[email protected]>
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] <[email protected]>
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] <[email protected]>
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] <[email protected]>
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] <[email protected]>
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] <[email protected]>
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 <[email protected]>
* 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 <[email protected]>
Co-authored-by: Tuyen Nguyen <[email protected]>
* 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 26 commits October 16, 2024 11:24
* Add strategy support for state-archives

* Comment new strategy temporaily

* Fix types

* Fix unit tests

* Fix unit tests

* Hide new option

* Rename ArchiveMode.Full to ArchiveMode.Frequency

* Rename ArchiveMode to StateArchiveMode

* Update the code as per feedback

* Fix cli package import
* feat: add ssz support to builder api

* Rephrase comment
* Add vscode workspace settings

* Update the settings file

* Add settings for open-in-github

* Update the settings

* Add comment in the settings

* Update the settings

* Use tabaqa extension to override settings

* Revert "Use tabaqa extension to override settings"

This reverts commit fd02f98.

* Update the settings file

* Update settings

* Update .vscode/settings.json

Co-authored-by: Nico Flaig <[email protected]>

---------

Co-authored-by: Nico Flaig <[email protected]>
* chore: add temp-deps blst

* chore: update packages to point to temp-deps

* chore: remove temp-deps

* chore: use 2.1.0 portable version of blst-ts

* chore: fix formatting
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 10.9.0 to 10.9.3.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Changelog](https://github.com/mermaid-js/mermaid/blob/develop/CHANGELOG.md)
- [Commits](mermaid-js/mermaid@v10.9.0...v10.9.3)

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

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* 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

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 914f959 Previous: - Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.9655 ms/op
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 48.172 us/op
BLS verify - blst 844.93 us/op
BLS verifyMultipleSignatures 3 - blst 1.2248 ms/op
BLS verifyMultipleSignatures 8 - blst 1.6883 ms/op
BLS verifyMultipleSignatures 32 - blst 4.9299 ms/op
BLS verifyMultipleSignatures 64 - blst 9.1355 ms/op
BLS verifyMultipleSignatures 128 - blst 17.197 ms/op
BLS deserializing 10000 signatures 689.98 ms/op
BLS deserializing 100000 signatures 6.8802 s/op
BLS verifyMultipleSignatures - same message - 3 - blst 868.18 us/op
BLS verifyMultipleSignatures - same message - 8 - blst 1.0110 ms/op
BLS verifyMultipleSignatures - same message - 32 - blst 1.7326 ms/op
BLS verifyMultipleSignatures - same message - 64 - blst 2.6167 ms/op
BLS verifyMultipleSignatures - same message - 128 - blst 4.4959 ms/op
BLS aggregatePubkeys 32 - blst 19.784 us/op
BLS aggregatePubkeys 128 - blst 70.263 us/op
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 53.358 ms/op
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 46.870 ms/op
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 42.972 ms/op
getSlashingsAndExits - default max 107.70 us/op
getSlashingsAndExits - 2k 319.03 us/op
proposeBlockBody type=full, size=empty 6.9922 ms/op
isKnown best case - 1 super set check 303.00 ns/op
isKnown normal case - 2 super set checks 288.00 ns/op
isKnown worse case - 16 super set checks 314.00 ns/op
InMemoryCheckpointStateCache - add get delete 2.7270 us/op
updateUnfinalizedPubkeys - updating 10 pubkeys 1.0752 ms/op
updateUnfinalizedPubkeys - updating 100 pubkeys 3.6974 ms/op
updateUnfinalizedPubkeys - updating 1000 pubkeys 54.924 ms/op
validate api signedAggregateAndProof - struct 1.4629 ms/op
validate gossip signedAggregateAndProof - struct 1.4067 ms/op
batch validate gossip attestation - vc 640000 - chunk 32 134.28 us/op
batch validate gossip attestation - vc 640000 - chunk 64 116.11 us/op
batch validate gossip attestation - vc 640000 - chunk 128 111.36 us/op
batch validate gossip attestation - vc 640000 - chunk 256 109.47 us/op
pickEth1Vote - no votes 1.1414 ms/op
pickEth1Vote - max votes 5.8750 ms/op
pickEth1Vote - Eth1Data hashTreeRoot value x2048 13.076 ms/op
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 17.260 ms/op
pickEth1Vote - Eth1Data fastSerialize value x2048 542.02 us/op
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.7826 ms/op
bytes32 toHexString 459.00 ns/op
bytes32 Buffer.toString(hex) 251.00 ns/op
bytes32 Buffer.toString(hex) from Uint8Array 392.00 ns/op
bytes32 Buffer.toString(hex) + 0x 256.00 ns/op
Object access 1 prop 0.14600 ns/op
Map access 1 prop 0.13200 ns/op
Object get x1000 6.0930 ns/op
Map get x1000 6.8140 ns/op
Object set x1000 33.769 ns/op
Map set x1000 23.131 ns/op
Return object 10000 times 0.29940 ns/op
Throw Error 10000 times 3.4714 us/op
toHex 155.51 ns/op
Buffer.from 135.36 ns/op
shared Buffer 96.183 ns/op
fastMsgIdFn sha256 / 200 bytes 2.3340 us/op
fastMsgIdFn h32 xxhash / 200 bytes 242.00 ns/op
fastMsgIdFn h64 xxhash / 200 bytes 273.00 ns/op
fastMsgIdFn sha256 / 1000 bytes 7.5860 us/op
fastMsgIdFn h32 xxhash / 1000 bytes 387.00 ns/op
fastMsgIdFn h64 xxhash / 1000 bytes 370.00 ns/op
fastMsgIdFn sha256 / 10000 bytes 66.839 us/op
fastMsgIdFn h32 xxhash / 10000 bytes 1.8760 us/op
fastMsgIdFn h64 xxhash / 10000 bytes 1.2200 us/op
send data - 1000 256B messages 12.756 ms/op
send data - 1000 512B messages 18.524 ms/op
send data - 1000 1024B messages 27.096 ms/op
send data - 1000 1200B messages 27.519 ms/op
send data - 1000 2048B messages 35.622 ms/op
send data - 1000 4096B messages 31.863 ms/op
send data - 1000 16384B messages 74.896 ms/op
send data - 1000 65536B messages 231.89 ms/op
enrSubnets - fastDeserialize 64 bits 1.2800 us/op
enrSubnets - ssz BitVector 64 bits 406.00 ns/op
enrSubnets - fastDeserialize 4 bits 178.00 ns/op
enrSubnets - ssz BitVector 4 bits 441.00 ns/op
prioritizePeers score -10:0 att 32-0.1 sync 2-0 196.22 us/op
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 217.92 us/op
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 306.90 us/op
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 516.45 us/op
prioritizePeers score 0:0 att 64-1 sync 4-1 655.93 us/op
array of 16000 items push then shift 1.7402 us/op
LinkedList of 16000 items push then shift 8.1770 ns/op
array of 16000 items push then pop 140.45 ns/op
LinkedList of 16000 items push then pop 7.8800 ns/op
array of 24000 items push then shift 2.5095 us/op
LinkedList of 24000 items push then shift 7.7620 ns/op
array of 24000 items push then pop 177.02 ns/op
LinkedList of 24000 items push then pop 7.6000 ns/op
intersect bitArray bitLen 8 6.6990 ns/op
intersect array and set length 8 49.597 ns/op
intersect bitArray bitLen 128 32.134 ns/op
intersect array and set length 128 839.74 ns/op
bitArray.getTrueBitIndexes() bitLen 128 1.6620 us/op
bitArray.getTrueBitIndexes() bitLen 248 2.7630 us/op
bitArray.getTrueBitIndexes() bitLen 512 5.7970 us/op
Buffer.concat 32 items 1.0580 us/op
Uint8Array.set 32 items 1.7550 us/op
Buffer.copy 1.9310 us/op
Uint8Array.set - with subarray 2.8070 us/op
Uint8Array.set - without subarray 1.5570 us/op
getUint32 - dataview 286.00 ns/op
getUint32 - manual 201.00 ns/op
Set add up to 64 items then delete first 2.4601 us/op
OrderedSet add up to 64 items then delete first 3.9720 us/op
Set add up to 64 items then delete last 3.2208 us/op
OrderedSet add up to 64 items then delete last 5.0217 us/op
Set add up to 64 items then delete middle 3.1904 us/op
OrderedSet add up to 64 items then delete middle 6.5265 us/op
Set add up to 128 items then delete first 6.3779 us/op
OrderedSet add up to 128 items then delete first 8.7562 us/op
Set add up to 128 items then delete last 5.9941 us/op
OrderedSet add up to 128 items then delete last 9.6393 us/op
Set add up to 128 items then delete middle 6.0302 us/op
OrderedSet add up to 128 items then delete middle 16.516 us/op
Set add up to 256 items then delete first 12.787 us/op
OrderedSet add up to 256 items then delete first 21.688 us/op
Set add up to 256 items then delete last 12.881 us/op
OrderedSet add up to 256 items then delete last 19.459 us/op
Set add up to 256 items then delete middle 12.392 us/op
OrderedSet add up to 256 items then delete middle 48.442 us/op
transfer serialized Status (84 B) 1.5440 us/op
copy serialized Status (84 B) 1.3810 us/op
transfer serialized SignedVoluntaryExit (112 B) 1.7980 us/op
copy serialized SignedVoluntaryExit (112 B) 1.5800 us/op
transfer serialized ProposerSlashing (416 B) 2.8080 us/op
copy serialized ProposerSlashing (416 B) 2.8550 us/op
transfer serialized Attestation (485 B) 1.9760 us/op
copy serialized Attestation (485 B) 1.9660 us/op
transfer serialized AttesterSlashing (33232 B) 1.9560 us/op
copy serialized AttesterSlashing (33232 B) 6.9630 us/op
transfer serialized Small SignedBeaconBlock (128000 B) 2.6710 us/op
copy serialized Small SignedBeaconBlock (128000 B) 21.315 us/op
transfer serialized Avg SignedBeaconBlock (200000 B) 3.2700 us/op
copy serialized Avg SignedBeaconBlock (200000 B) 27.059 us/op
transfer serialized BlobsSidecar (524380 B) 3.3860 us/op
copy serialized BlobsSidecar (524380 B) 142.87 us/op
transfer serialized Big SignedBeaconBlock (1000000 B) 4.9280 us/op
copy serialized Big SignedBeaconBlock (1000000 B) 233.19 us/op
pass gossip attestations to forkchoice per slot 3.0523 ms/op
forkChoice updateHead vc 100000 bc 64 eq 0 515.97 us/op
forkChoice updateHead vc 600000 bc 64 eq 0 4.4894 ms/op
forkChoice updateHead vc 1000000 bc 64 eq 0 6.1601 ms/op
forkChoice updateHead vc 600000 bc 320 eq 0 3.3282 ms/op
forkChoice updateHead vc 600000 bc 1200 eq 0 3.4343 ms/op
forkChoice updateHead vc 600000 bc 7200 eq 0 3.9426 ms/op
forkChoice updateHead vc 600000 bc 64 eq 1000 10.911 ms/op
forkChoice updateHead vc 600000 bc 64 eq 10000 10.968 ms/op
forkChoice updateHead vc 600000 bc 64 eq 300000 16.328 ms/op
computeDeltas 500000 validators 300 proto nodes 4.4228 ms/op
computeDeltas 500000 validators 1200 proto nodes 4.1826 ms/op
computeDeltas 500000 validators 7200 proto nodes 4.2647 ms/op
computeDeltas 750000 validators 300 proto nodes 6.1472 ms/op
computeDeltas 750000 validators 1200 proto nodes 6.2110 ms/op
computeDeltas 750000 validators 7200 proto nodes 6.2120 ms/op
computeDeltas 1400000 validators 300 proto nodes 11.081 ms/op
computeDeltas 1400000 validators 1200 proto nodes 11.230 ms/op
computeDeltas 1400000 validators 7200 proto nodes 11.182 ms/op
computeDeltas 2100000 validators 300 proto nodes 16.518 ms/op
computeDeltas 2100000 validators 1200 proto nodes 16.514 ms/op
computeDeltas 2100000 validators 7200 proto nodes 16.702 ms/op
altair processAttestation - 250000 vs - 7PWei normalcase 1.8294 ms/op
altair processAttestation - 250000 vs - 7PWei worstcase 2.7081 ms/op
altair processAttestation - setStatus - 1/6 committees join 93.126 us/op
altair processAttestation - setStatus - 1/3 committees join 179.96 us/op
altair processAttestation - setStatus - 1/2 committees join 254.32 us/op
altair processAttestation - setStatus - 2/3 committees join 336.41 us/op
altair processAttestation - setStatus - 4/5 committees join 481.08 us/op
altair processAttestation - setStatus - 100% committees join 579.69 us/op
altair processBlock - 250000 vs - 7PWei normalcase 3.8147 ms/op
altair processBlock - 250000 vs - 7PWei normalcase hashState 26.604 ms/op
altair processBlock - 250000 vs - 7PWei worstcase 35.911 ms/op
altair processBlock - 250000 vs - 7PWei worstcase hashState 73.695 ms/op
phase0 processBlock - 250000 vs - 7PWei normalcase 1.8516 ms/op
phase0 processBlock - 250000 vs - 7PWei worstcase 19.523 ms/op
altair processEth1Data - 250000 vs - 7PWei normalcase 310.73 us/op
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 5.2520 us/op
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 36.325 us/op
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 10.677 us/op
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 5.7660 us/op
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 133.06 us/op
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.1741 ms/op
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.4872 ms/op
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.4847 ms/op
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.7207 ms/op
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.5628 ms/op
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.6848 ms/op
Tree 40 250000 create 224.22 ms/op
Tree 40 250000 get(125000) 144.59 ns/op
Tree 40 250000 set(125000) 663.27 ns/op
Tree 40 250000 toArray() 17.339 ms/op
Tree 40 250000 iterate all - toArray() + loop 17.852 ms/op
Tree 40 250000 iterate all - get(i) 51.650 ms/op
Array 250000 create 2.8265 ms/op
Array 250000 clone - spread 1.3214 ms/op
Array 250000 get(125000) 0.42000 ns/op
Array 250000 set(125000) 0.43400 ns/op
Array 250000 iterate all - loop 107.72 us/op
phase0 afterProcessEpoch - 250000 vs - 7PWei 49.106 ms/op
Array.fill - length 1000000 3.3824 ms/op
Array push - length 1000000 17.233 ms/op
Array.get 0.29128 ns/op
Uint8Array.get 0.46749 ns/op
phase0 beforeProcessEpoch - 250000 vs - 7PWei 23.656 ms/op
altair processEpoch - mainnet_e81889 284.00 ms/op
mainnet_e81889 - altair beforeProcessEpoch 19.707 ms/op
mainnet_e81889 - altair processJustificationAndFinalization 12.484 us/op
mainnet_e81889 - altair processInactivityUpdates 6.7828 ms/op
mainnet_e81889 - altair processRewardsAndPenalties 45.447 ms/op
mainnet_e81889 - altair processRegistryUpdates 2.3060 us/op
mainnet_e81889 - altair processSlashings 407.00 ns/op
mainnet_e81889 - altair processEth1DataReset 307.00 ns/op
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.5027 ms/op
mainnet_e81889 - altair processSlashingsReset 3.5120 us/op
mainnet_e81889 - altair processRandaoMixesReset 5.1210 us/op
mainnet_e81889 - altair processHistoricalRootsUpdate 580.00 ns/op
mainnet_e81889 - altair processParticipationFlagUpdates 2.1280 us/op
mainnet_e81889 - altair processSyncCommitteeUpdates 505.00 ns/op
mainnet_e81889 - altair afterProcessEpoch 51.870 ms/op
capella processEpoch - mainnet_e217614 1.3313 s/op
mainnet_e217614 - capella beforeProcessEpoch 92.771 ms/op
mainnet_e217614 - capella processJustificationAndFinalization 34.114 us/op
mainnet_e217614 - capella processInactivityUpdates 19.669 ms/op
mainnet_e217614 - capella processRewardsAndPenalties 222.43 ms/op
mainnet_e217614 - capella processRegistryUpdates 20.332 us/op
mainnet_e217614 - capella processSlashings 688.00 ns/op
mainnet_e217614 - capella processEth1DataReset 546.00 ns/op
mainnet_e217614 - capella processEffectiveBalanceUpdates 18.586 ms/op
mainnet_e217614 - capella processSlashingsReset 6.0910 us/op
mainnet_e217614 - capella processRandaoMixesReset 8.8100 us/op
mainnet_e217614 - capella processHistoricalRootsUpdate 1.1870 us/op
mainnet_e217614 - capella processParticipationFlagUpdates 4.6980 us/op
mainnet_e217614 - capella afterProcessEpoch 135.48 ms/op
phase0 processEpoch - mainnet_e58758 396.05 ms/op
mainnet_e58758 - phase0 beforeProcessEpoch 110.25 ms/op
mainnet_e58758 - phase0 processJustificationAndFinalization 21.909 us/op
mainnet_e58758 - phase0 processRewardsAndPenalties 26.428 ms/op
mainnet_e58758 - phase0 processRegistryUpdates 13.461 us/op
mainnet_e58758 - phase0 processSlashings 684.00 ns/op
mainnet_e58758 - phase0 processEth1DataReset 1.0260 us/op
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.3897 ms/op
mainnet_e58758 - phase0 processSlashingsReset 5.2190 us/op
mainnet_e58758 - phase0 processRandaoMixesReset 8.3460 us/op
mainnet_e58758 - phase0 processHistoricalRootsUpdate 916.00 ns/op
mainnet_e58758 - phase0 processParticipationRecordUpdates 6.3420 us/op
mainnet_e58758 - phase0 afterProcessEpoch 47.746 ms/op
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.6179 ms/op
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 3.7745 ms/op
altair processInactivityUpdates - 250000 normalcase 22.779 ms/op
altair processInactivityUpdates - 250000 worstcase 22.041 ms/op
phase0 processRegistryUpdates - 250000 normalcase 11.254 us/op
phase0 processRegistryUpdates - 250000 badcase_full_deposits 334.67 us/op
phase0 processRegistryUpdates - 250000 worstcase 0.5 134.62 ms/op
altair processRewardsAndPenalties - 250000 normalcase 47.460 ms/op
altair processRewardsAndPenalties - 250000 worstcase 36.267 ms/op
phase0 getAttestationDeltas - 250000 normalcase 12.699 ms/op
phase0 getAttestationDeltas - 250000 worstcase 10.795 ms/op
phase0 processSlashings - 250000 worstcase 112.68 us/op
altair processSyncCommitteeUpdates - 250000 152.11 ms/op
BeaconState.hashTreeRoot - No change 398.00 ns/op
BeaconState.hashTreeRoot - 1 full validator 144.53 us/op
BeaconState.hashTreeRoot - 32 full validator 1.3058 ms/op
BeaconState.hashTreeRoot - 512 full validator 11.453 ms/op
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 141.40 us/op
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.1700 ms/op
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 28.039 ms/op
BeaconState.hashTreeRoot - 1 balances 126.86 us/op
BeaconState.hashTreeRoot - 32 balances 1.2052 ms/op
BeaconState.hashTreeRoot - 512 balances 10.008 ms/op
BeaconState.hashTreeRoot - 250000 balances 214.25 ms/op
aggregationBits - 2048 els - zipIndexesInBitList 34.570 us/op
byteArrayEquals 32 57.740 ns/op
Buffer.compare 32 20.362 ns/op
byteArrayEquals 1024 1.7338 us/op
Buffer.compare 1024 28.328 ns/op
byteArrayEquals 16384 26.829 us/op
Buffer.compare 16384 227.36 ns/op
byteArrayEquals 123687377 205.19 ms/op
Buffer.compare 123687377 11.277 ms/op
byteArrayEquals 32 - diff last byte 58.182 ns/op
Buffer.compare 32 - diff last byte 19.800 ns/op
byteArrayEquals 1024 - diff last byte 1.7362 us/op
Buffer.compare 1024 - diff last byte 29.583 ns/op
byteArrayEquals 16384 - diff last byte 28.052 us/op
Buffer.compare 16384 - diff last byte 227.91 ns/op
byteArrayEquals 123687377 - diff last byte 202.22 ms/op
Buffer.compare 123687377 - diff last byte 6.8073 ms/op
byteArrayEquals 32 - random bytes 5.3730 ns/op
Buffer.compare 32 - random bytes 18.055 ns/op
byteArrayEquals 1024 - random bytes 5.3270 ns/op
Buffer.compare 1024 - random bytes 17.998 ns/op
byteArrayEquals 16384 - random bytes 5.3300 ns/op
Buffer.compare 16384 - random bytes 18.055 ns/op
byteArrayEquals 123687377 - random bytes 6.7100 ns/op
Buffer.compare 123687377 - random bytes 19.200 ns/op
regular array get 100000 times 35.766 us/op
wrappedArray get 100000 times 34.148 us/op
arrayWithProxy get 100000 times 14.562 ms/op
ssz.Root.equals 47.878 ns/op
byteArrayEquals 47.333 ns/op
Buffer.compare 10.933 ns/op
processSlot - 1 slots 15.835 us/op
processSlot - 32 slots 2.9659 ms/op
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 37.191 ms/op
getCommitteeAssignments - req 1 vs - 250000 vc 2.0887 ms/op
getCommitteeAssignments - req 100 vs - 250000 vc 4.0887 ms/op
getCommitteeAssignments - req 1000 vs - 250000 vc 4.4992 ms/op
findModifiedValidators - 10000 modified validators 259.29 ms/op
findModifiedValidators - 1000 modified validators 183.40 ms/op
findModifiedValidators - 100 modified validators 174.72 ms/op
findModifiedValidators - 10 modified validators 182.82 ms/op
findModifiedValidators - 1 modified validators 171.25 ms/op
findModifiedValidators - no difference 185.93 ms/op
compare ViewDUs 3.0088 s/op
compare each validator Uint8Array 1.4479 s/op
compare ViewDU to Uint8Array 1.1665 s/op
migrate state 1000000 validators, 24 modified, 0 new 712.34 ms/op
migrate state 1000000 validators, 1700 modified, 1000 new 922.33 ms/op
migrate state 1000000 validators, 3400 modified, 2000 new 1.1374 s/op
migrate state 1500000 validators, 24 modified, 0 new 770.92 ms/op
migrate state 1500000 validators, 1700 modified, 1000 new 1.4100 s/op
migrate state 1500000 validators, 3400 modified, 2000 new 1.2433 s/op
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.4000 ns/op
state getBlockRootAtSlot - 250000 vs - 7PWei 494.79 ns/op
computeProposers - vc 250000 7.1639 ms/op
computeEpochShuffling - vc 250000 43.750 ms/op
getNextSyncCommittee - vc 250000 126.91 ms/op
computeSigningRoot for AttestationData 23.760 us/op
hash AttestationData serialized data then Buffer.toString(base64) 1.6369 us/op
toHexString serialized data 924.71 ns/op
Buffer.toString(base64) 182.62 ns/op
nodejs block root to RootHex using toHex 153.12 ns/op
nodejs block root to RootHex using toRootHex 104.47 ns/op
browser block root to RootHex using the deprecated toHexString 237.63 ns/op
browser block root to RootHex using toHex 188.21 ns/op
browser block root to RootHex using toRootHex 166.11 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

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

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