Skip to content

Commit

Permalink
chore: pin nodejs version to 22.4 (#6964)
Browse files Browse the repository at this point in the history
* chore: pin nodejs version to 22.4

* More pinning
  • Loading branch information
nflaig authored Jul 18, 2024
1 parent c78b6ce commit 5f37580
Show file tree
Hide file tree
Showing 12 changed files with 30 additions and 30 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
node-version: 22.4
check-latest: true
cache: yarn
- name: Node.js version
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
sudo apt-get install -y build-essential python3
- uses: "./.github/actions/setup-and-build"
with:
node: 22
node: 22.4
- run: |
mkdir -p dist
yarn global add caxa@3.0.1
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docs-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: yarn
node-version: 22.4
cache: yarn
- name: Node.js version
id: node
run: echo "v8CppApiVersion=$(node --print "process.versions.modules")" >> $GITHUB_OUTPUT
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ on:
workflow_dispatch:
inputs:
ref:
description: 'Ref to deploy, defaults to `unstable`'
description: "Ref to deploy, defaults to `unstable`"
required: false
default: 'unstable'
default: "unstable"
type: string

jobs:
Expand All @@ -31,9 +31,9 @@ jobs:

- uses: actions/setup-node@v4
with:
node-version: 22
node-version: 22.4
check-latest: true
cache: yarn
cache: yarn

- name: Node.js version
id: node
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/publish-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ jobs:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 22
node-version: 22.4
registry-url: "https://registry.npmjs.org"
check-latest: true
cache: yarn
cache: yarn
- name: Node.js version
id: node
run: echo "v8CppApiVersion=$(node --print "process.versions.modules")" >> $GITHUB_OUTPUT
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish-rc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ jobs:

- uses: "./.github/actions/setup-and-build"
with:
node: 22
node: 22.4

- name: Generate changelog
run: node scripts/generate_changelog.mjs ${{ needs.tag.outputs.prev_tag }} ${{ needs.tag.outputs.tag }} CHANGELOG.md
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish-stable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ jobs:

- uses: "./.github/actions/setup-and-build"
with:
node: 22
node: 22.4

- name: Generate changelog
run: node scripts/generate_changelog.mjs ${{ needs.tag.outputs.prev_tag }} ${{ needs.tag.outputs.tag }} CHANGELOG.md
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-sim-merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
node-version: 22.4
check-latest: true
cache: yarn
- name: Node.js version
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/test-sim.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
- uses: actions/checkout@v4
- uses: "./.github/actions/setup-and-build"
with:
node: 22
node: 22.4

sim-test-multifork:
name: Multifork sim test
Expand All @@ -42,7 +42,7 @@ jobs:
- uses: actions/checkout@v4
- uses: "./.github/actions/setup-and-build"
with:
node: 22
node: 22.4
- name: Load env variables
uses: ./.github/actions/dotenv
- name: Download required docker images before running tests
Expand Down Expand Up @@ -71,7 +71,7 @@ jobs:
- uses: actions/checkout@v4
- uses: "./.github/actions/setup-and-build"
with:
node: 22
node: 22.4
- name: Load env variables
uses: ./.github/actions/dotenv
- name: Download required docker images before running tests
Expand Down Expand Up @@ -100,7 +100,7 @@ jobs:
- uses: actions/checkout@v4
- uses: "./.github/actions/setup-and-build"
with:
node: 22
node: 22.4
- name: Load env variables
uses: ./.github/actions/dotenv
- name: Download required docker images before running tests
Expand Down Expand Up @@ -129,7 +129,7 @@ jobs:
- uses: actions/checkout@v4
- uses: "./.github/actions/setup-and-build"
with:
node: 22
node: 22.4
- name: Load env variables
uses: ./.github/actions/dotenv
- name: Download required docker images before running tests
Expand Down Expand Up @@ -158,7 +158,7 @@ jobs:
- uses: actions/checkout@v4
- uses: "./.github/actions/setup-and-build"
with:
node: 22
node: 22.4
- name: Load env variables
uses: ./.github/actions/dotenv
- name: Download required docker images before running tests
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node: [22]
node: [22.4]
steps:
# <common-build> - Uses YAML anchors in the future
- uses: actions/checkout@v4
Expand All @@ -42,7 +42,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node: [22]
node: [22.4]
steps:
- uses: actions/checkout@v4
- uses: "./.github/actions/setup-and-build"
Expand Down Expand Up @@ -74,7 +74,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node: [22]
node: [22.4]
steps:
- uses: actions/checkout@v4

Expand All @@ -95,7 +95,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node: [22]
node: [22.4]
steps:
- uses: actions/checkout@v4
- uses: "./.github/actions/setup-and-build"
Expand Down Expand Up @@ -134,7 +134,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node: [22]
node: [22.4]
steps:
# <common-build> - Uses YAML anchors in the future
- uses: actions/checkout@v4
Expand Down Expand Up @@ -171,7 +171,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node: [22]
node: [22.4]
steps:
# <common-build> - Uses YAML anchors in the future
- uses: actions/checkout@v4
Expand All @@ -195,7 +195,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node: [22]
node: [22.4]
steps:
- uses: actions/checkout@v4
- uses: "./.github/actions/setup-and-build"
Expand Down
6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

# --platform=$BUILDPLATFORM is used build javascript source with host arch
# Otherwise TS builds on emulated archs and can be extremely slow (+1h)
FROM --platform=${BUILDPLATFORM:-amd64} node:22-alpine as build_src
FROM --platform=${BUILDPLATFORM:-amd64} node:22.4-alpine as build_src
ARG COMMIT
WORKDIR /usr/app
RUN apk update && apk add --no-cache g++ make python3 py3-setuptools && rm -rf /var/cache/apk/*
Expand All @@ -21,7 +21,7 @@ RUN cd packages/cli && GIT_COMMIT=${COMMIT} yarn write-git-data

# Copy built src + node_modules to build native packages for archs different than host.
# Note: This step is redundant for the host arch
FROM node:22-alpine as build_deps
FROM node:22.4-alpine as build_deps
WORKDIR /usr/app
RUN apk update && apk add --no-cache g++ make python3 py3-setuptools && rm -rf /var/cache/apk/*

Expand All @@ -35,7 +35,7 @@ RUN cd node_modules/classic-level && yarn rebuild

# Copy built src + node_modules to a new layer to prune unnecessary fs
# Previous layer weights 7.25GB, while this final 488MB (as of Oct 2020)
FROM node:22-alpine
FROM node:22.4-alpine
WORKDIR /usr/app
COPY --from=build_deps /usr/app .

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "root",
"private": true,
"engines": {
"node": ">=20.1.0 <21 || >=22 <23"
"node": ">=20.1.0 <21 || >=22 <22.5"
},
"packageManager": "yarn@1.22.22+sha256.c17d3797fb9a9115bf375e31bfd30058cac6bc9c3b8807a3d8cb2094794b51ca",
"workspaces": [
Expand Down

1 comment on commit 5f37580

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Performance Alert ⚠️

Possible performance regression was detected for some benchmarks.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold.

Benchmark suite Current: 5f37580 Previous: c78b6ce Ratio
isKnown worse case - 16 super set checks 875.00 ns/op 274.00 ns/op 3.19
validate api signedAggregateAndProof - struct 9.5580 ms/op 2.5854 ms/op 3.70
pickEth1Vote - max votes 20.354 ms/op 6.1356 ms/op 3.32
bytes32 toHexString 1.3100 us/op 417.00 ns/op 3.14
bytes32 Buffer.toString(hex) 834.00 ns/op 252.00 ns/op 3.31
bytes32 Buffer.toString(hex) from Uint8Array 1.1210 us/op 363.00 ns/op 3.09
bytes32 Buffer.toString(hex) + 0x 854.00 ns/op 249.00 ns/op 3.43
Object access 1 prop 0.45300 ns/op 0.13900 ns/op 3.26
Object get x1000 20.946 ns/op 5.8620 ns/op 3.57
Map get x1000 23.293 ns/op 6.5020 ns/op 3.58
Object set x1000 132.27 ns/op 31.484 ns/op 4.20
Map set x1000 82.550 ns/op 21.865 ns/op 3.78
fastMsgIdFn sha256 / 200 bytes 7.8290 us/op 2.1420 us/op 3.65
fastMsgIdFn sha256 / 1000 bytes 21.660 us/op 7.0900 us/op 3.06
fastMsgIdFn h32 xxhash / 1000 bytes 1.0680 us/op 344.00 ns/op 3.10
fastMsgIdFn h64 xxhash / 1000 bytes 1.1520 us/op 332.00 ns/op 3.47
fastMsgIdFn sha256 / 10000 bytes 196.09 us/op 63.699 us/op 3.08
fastMsgIdFn h64 xxhash / 10000 bytes 4.6730 us/op 1.1990 us/op 3.90
send data - 1000 1024B messages 96.073 ms/op 25.157 ms/op 3.82
send data - 1000 1200B messages 59.135 ms/op 18.493 ms/op 3.20
send data - 1000 2048B messages 102.48 ms/op 31.124 ms/op 3.29
send data - 1000 65536B messages 975.71 ms/op 216.58 ms/op 4.51
enrSubnets - ssz BitVector 64 bits 1.1760 us/op 350.00 ns/op 3.36
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 547.82 us/op 142.09 us/op 3.86
bitArray.getTrueBitIndexes() bitLen 128 5.9430 us/op 1.7790 us/op 3.34
bitArray.getTrueBitIndexes() bitLen 512 23.925 us/op 5.9730 us/op 4.01
Buffer.concat 32 items 3.2660 us/op 906.00 ns/op 3.60
Buffer.copy 5.2050 us/op 1.7320 us/op 3.01
Uint8Array.set - with subarray 7.9930 us/op 2.5370 us/op 3.15
Uint8Array.set - without subarray 4.9000 us/op 1.3830 us/op 3.54
getUint32 - dataview 731.00 ns/op 230.00 ns/op 3.18
getUint32 - manual 489.00 ns/op 153.00 ns/op 3.20
Set add up to 64 items then delete first 8.8147 us/op 2.2483 us/op 3.92
OrderedSet add up to 64 items then delete first 12.663 us/op 3.3048 us/op 3.83
Set add up to 64 items then delete last 8.6066 us/op 2.5828 us/op 3.33
OrderedSet add up to 64 items then delete last 13.731 us/op 3.9376 us/op 3.49
Set add up to 64 items then delete middle 9.1298 us/op 2.5547 us/op 3.57
OrderedSet add up to 64 items then delete middle 19.147 us/op 5.3783 us/op 3.56
OrderedSet add up to 128 items then delete middle 41.498 us/op 13.747 us/op 3.02
OrderedSet add up to 256 items then delete first 53.443 us/op 15.650 us/op 3.41
forkChoice updateHead vc 600000 bc 1200 eq 0 13.471 ms/op 3.0986 ms/op 4.35
forkChoice updateHead vc 600000 bc 7200 eq 0 13.133 ms/op 4.0095 ms/op 3.28
getCommitteeAssignments - req 1000 vs - 250000 vc 14.568 ms/op 4.6256 ms/op 3.15
findModifiedValidators - 1000 modified validators 833.05 ms/op 201.75 ms/op 4.13
computeProposers - vc 250000 24.587 ms/op 7.4343 ms/op 3.31
computeEpochShuffling - vc 250000 283.27 ms/op 93.564 ms/op 3.03
getNextSyncCommittee - vc 250000 395.44 ms/op 128.66 ms/op 3.07
toHexString serialized data 3.6848 us/op 1.0919 us/op 3.37
Full benchmark results
Benchmark suite Current: 5f37580 Previous: c78b6ce Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 625.81 us/op 424.93 us/op 1.47
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 72.545 us/op 45.310 us/op 1.60
BLS verify - blst-native 1.5876 ms/op 1.2121 ms/op 1.31
BLS verifyMultipleSignatures 3 - blst-native 3.4028 ms/op 2.5738 ms/op 1.32
BLS verifyMultipleSignatures 8 - blst-native 7.4954 ms/op 5.6723 ms/op 1.32
BLS verifyMultipleSignatures 32 - blst-native 27.485 ms/op 20.910 ms/op 1.31
BLS verifyMultipleSignatures 64 - blst-native 54.333 ms/op 41.140 ms/op 1.32
BLS verifyMultipleSignatures 128 - blst-native 111.73 ms/op 81.603 ms/op 1.37
BLS deserializing 10000 signatures 1.1400 s/op 844.87 ms/op 1.35
BLS deserializing 100000 signatures 12.597 s/op 8.6245 s/op 1.46
BLS verifyMultipleSignatures - same message - 3 - blst-native 2.0713 ms/op 1.2286 ms/op 1.69
BLS verifyMultipleSignatures - same message - 8 - blst-native 2.6211 ms/op 1.4601 ms/op 1.80
BLS verifyMultipleSignatures - same message - 32 - blst-native 4.5744 ms/op 2.1924 ms/op 2.09
BLS verifyMultipleSignatures - same message - 64 - blst-native 5.8947 ms/op 3.3856 ms/op 1.74
BLS verifyMultipleSignatures - same message - 128 - blst-native 12.906 ms/op 5.4524 ms/op 2.37
BLS aggregatePubkeys 32 - blst-native 55.293 us/op 24.986 us/op 2.21
BLS aggregatePubkeys 128 - blst-native 210.68 us/op 97.038 us/op 2.17
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 132.67 ms/op 57.533 ms/op 2.31
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 115.18 ms/op 49.092 ms/op 2.35
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 80.600 ms/op 31.379 ms/op 2.57
getSlashingsAndExits - default max 194.59 us/op 98.159 us/op 1.98
getSlashingsAndExits - 2k 481.97 us/op 254.54 us/op 1.89
proposeBlockBody type=full, size=empty 13.215 ms/op 5.7126 ms/op 2.31
isKnown best case - 1 super set check 632.00 ns/op 281.00 ns/op 2.25
isKnown normal case - 2 super set checks 718.00 ns/op 273.00 ns/op 2.63
isKnown worse case - 16 super set checks 875.00 ns/op 274.00 ns/op 3.19
InMemoryCheckpointStateCache - add get delete 13.170 us/op 4.8890 us/op 2.69
validate api signedAggregateAndProof - struct 9.5580 ms/op 2.5854 ms/op 3.70
validate gossip signedAggregateAndProof - struct 5.1979 ms/op 2.5590 ms/op 2.03
validate gossip attestation - vc 640000 2.8033 ms/op 1.2374 ms/op 2.27
batch validate gossip attestation - vc 640000 - chunk 32 392.11 us/op 148.03 us/op 2.65
batch validate gossip attestation - vc 640000 - chunk 64 325.88 us/op 130.12 us/op 2.50
batch validate gossip attestation - vc 640000 - chunk 128 247.06 us/op 118.56 us/op 2.08
batch validate gossip attestation - vc 640000 - chunk 256 262.31 us/op 115.51 us/op 2.27
pickEth1Vote - no votes 2.5829 ms/op 984.16 us/op 2.62
pickEth1Vote - max votes 20.354 ms/op 6.1356 ms/op 3.32
pickEth1Vote - Eth1Data hashTreeRoot value x2048 32.503 ms/op 11.279 ms/op 2.88
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 41.256 ms/op 18.241 ms/op 2.26
pickEth1Vote - Eth1Data fastSerialize value x2048 1.3151 ms/op 472.77 us/op 2.78
pickEth1Vote - Eth1Data fastSerialize tree x2048 14.562 ms/op 6.4417 ms/op 2.26
bytes32 toHexString 1.3100 us/op 417.00 ns/op 3.14
bytes32 Buffer.toString(hex) 834.00 ns/op 252.00 ns/op 3.31
bytes32 Buffer.toString(hex) from Uint8Array 1.1210 us/op 363.00 ns/op 3.09
bytes32 Buffer.toString(hex) + 0x 854.00 ns/op 249.00 ns/op 3.43
Object access 1 prop 0.45300 ns/op 0.13900 ns/op 3.26
Map access 1 prop 0.36300 ns/op 0.13800 ns/op 2.63
Object get x1000 20.946 ns/op 5.8620 ns/op 3.57
Map get x1000 23.293 ns/op 6.5020 ns/op 3.58
Object set x1000 132.27 ns/op 31.484 ns/op 4.20
Map set x1000 82.550 ns/op 21.865 ns/op 3.78
Return object 10000 times 1.0481 ns/op 0.28620 ns/op 3.66
Throw Error 10000 times 11.434 us/op 3.3336 us/op 3.43
fastMsgIdFn sha256 / 200 bytes 7.8290 us/op 2.1420 us/op 3.65
fastMsgIdFn h32 xxhash / 200 bytes 633.00 ns/op 218.00 ns/op 2.90
fastMsgIdFn h64 xxhash / 200 bytes 721.00 ns/op 260.00 ns/op 2.77
fastMsgIdFn sha256 / 1000 bytes 21.660 us/op 7.0900 us/op 3.06
fastMsgIdFn h32 xxhash / 1000 bytes 1.0680 us/op 344.00 ns/op 3.10
fastMsgIdFn h64 xxhash / 1000 bytes 1.1520 us/op 332.00 ns/op 3.47
fastMsgIdFn sha256 / 10000 bytes 196.09 us/op 63.699 us/op 3.08
fastMsgIdFn h32 xxhash / 10000 bytes 5.2010 us/op 1.8440 us/op 2.82
fastMsgIdFn h64 xxhash / 10000 bytes 4.6730 us/op 1.1990 us/op 3.90
send data - 1000 256B messages 33.436 ms/op 11.791 ms/op 2.84
send data - 1000 512B messages 47.550 ms/op 16.238 ms/op 2.93
send data - 1000 1024B messages 96.073 ms/op 25.157 ms/op 3.82
send data - 1000 1200B messages 59.135 ms/op 18.493 ms/op 3.20
send data - 1000 2048B messages 102.48 ms/op 31.124 ms/op 3.29
send data - 1000 4096B messages 92.260 ms/op 32.260 ms/op 2.86
send data - 1000 16384B messages 156.55 ms/op 69.567 ms/op 2.25
send data - 1000 65536B messages 975.71 ms/op 216.58 ms/op 4.51
enrSubnets - fastDeserialize 64 bits 2.5530 us/op 1.0990 us/op 2.32
enrSubnets - ssz BitVector 64 bits 1.1760 us/op 350.00 ns/op 3.36
enrSubnets - fastDeserialize 4 bits 406.00 ns/op 142.00 ns/op 2.86
enrSubnets - ssz BitVector 4 bits 1.0140 us/op 365.00 ns/op 2.78
prioritizePeers score -10:0 att 32-0.1 sync 2-0 314.76 us/op 160.77 us/op 1.96
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 547.82 us/op 142.09 us/op 3.86
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 747.48 us/op 257.33 us/op 2.90
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 1.0281 ms/op 382.24 us/op 2.69
prioritizePeers score 0:0 att 64-1 sync 4-1 1.7547 ms/op 603.37 us/op 2.91
array of 16000 items push then shift 3.0608 us/op 1.6306 us/op 1.88
LinkedList of 16000 items push then shift 19.388 ns/op 7.2440 ns/op 2.68
array of 16000 items push then pop 362.49 ns/op 132.43 ns/op 2.74
LinkedList of 16000 items push then pop 20.413 ns/op 7.1690 ns/op 2.85
array of 24000 items push then shift 7.6893 us/op 2.4005 us/op 3.20
LinkedList of 24000 items push then shift 24.955 ns/op 7.2810 ns/op 3.43
array of 24000 items push then pop 241.22 ns/op 146.01 ns/op 1.65
LinkedList of 24000 items push then pop 19.626 ns/op 7.3070 ns/op 2.69
intersect bitArray bitLen 8 15.883 ns/op 6.3390 ns/op 2.51
intersect array and set length 8 147.63 ns/op 46.753 ns/op 3.16
intersect bitArray bitLen 128 82.405 ns/op 29.296 ns/op 2.81
intersect array and set length 128 2.3868 us/op 662.87 ns/op 3.60
bitArray.getTrueBitIndexes() bitLen 128 5.9430 us/op 1.7790 us/op 3.34
bitArray.getTrueBitIndexes() bitLen 248 9.7080 us/op 3.3340 us/op 2.91
bitArray.getTrueBitIndexes() bitLen 512 23.925 us/op 5.9730 us/op 4.01
Buffer.concat 32 items 3.2660 us/op 906.00 ns/op 3.60
Uint8Array.set 32 items 4.7610 us/op 1.6360 us/op 2.91
Buffer.copy 5.2050 us/op 1.7320 us/op 3.01
Uint8Array.set - with subarray 7.9930 us/op 2.5370 us/op 3.15
Uint8Array.set - without subarray 4.9000 us/op 1.3830 us/op 3.54
getUint32 - dataview 731.00 ns/op 230.00 ns/op 3.18
getUint32 - manual 489.00 ns/op 153.00 ns/op 3.20
Set add up to 64 items then delete first 8.8147 us/op 2.2483 us/op 3.92
OrderedSet add up to 64 items then delete first 12.663 us/op 3.3048 us/op 3.83
Set add up to 64 items then delete last 8.6066 us/op 2.5828 us/op 3.33
OrderedSet add up to 64 items then delete last 13.731 us/op 3.9376 us/op 3.49
Set add up to 64 items then delete middle 9.1298 us/op 2.5547 us/op 3.57
OrderedSet add up to 64 items then delete middle 19.147 us/op 5.3783 us/op 3.56
Set add up to 128 items then delete first 14.924 us/op 5.1481 us/op 2.90
OrderedSet add up to 128 items then delete first 20.492 us/op 7.5047 us/op 2.73
Set add up to 128 items then delete last 11.908 us/op 5.3854 us/op 2.21
OrderedSet add up to 128 items then delete last 14.844 us/op 7.8546 us/op 1.89
Set add up to 128 items then delete middle 11.148 us/op 5.0432 us/op 2.21
OrderedSet add up to 128 items then delete middle 41.498 us/op 13.747 us/op 3.02
Set add up to 256 items then delete first 23.343 us/op 10.608 us/op 2.20
OrderedSet add up to 256 items then delete first 53.443 us/op 15.650 us/op 3.41
Set add up to 256 items then delete last 26.992 us/op 10.243 us/op 2.64
OrderedSet add up to 256 items then delete last 33.057 us/op 16.182 us/op 2.04
Set add up to 256 items then delete middle 16.925 us/op 10.056 us/op 1.68
OrderedSet add up to 256 items then delete middle 102.25 us/op 40.182 us/op 2.54
transfer serialized Status (84 B) 3.3280 us/op 1.4430 us/op 2.31
copy serialized Status (84 B) 2.4050 us/op 1.1850 us/op 2.03
transfer serialized SignedVoluntaryExit (112 B) 3.6730 us/op 1.6060 us/op 2.29
copy serialized SignedVoluntaryExit (112 B) 2.1100 us/op 1.2810 us/op 1.65
transfer serialized ProposerSlashing (416 B) 4.6080 us/op 2.5650 us/op 1.80
copy serialized ProposerSlashing (416 B) 4.3830 us/op 1.7820 us/op 2.46
transfer serialized Attestation (485 B) 5.7160 us/op 2.0160 us/op 2.84
copy serialized Attestation (485 B) 3.6980 us/op 1.7920 us/op 2.06
transfer serialized AttesterSlashing (33232 B) 3.2320 us/op 2.3280 us/op 1.39
copy serialized AttesterSlashing (33232 B) 9.1940 us/op 5.4780 us/op 1.68
transfer serialized Small SignedBeaconBlock (128000 B) 4.2860 us/op 2.9090 us/op 1.47
copy serialized Small SignedBeaconBlock (128000 B) 26.886 us/op 16.427 us/op 1.64
transfer serialized Avg SignedBeaconBlock (200000 B) 4.5170 us/op 3.4940 us/op 1.29
copy serialized Avg SignedBeaconBlock (200000 B) 44.805 us/op 21.356 us/op 2.10
transfer serialized BlobsSidecar (524380 B) 7.2540 us/op 2.9660 us/op 2.45
copy serialized BlobsSidecar (524380 B) 110.35 us/op 90.393 us/op 1.22
transfer serialized Big SignedBeaconBlock (1000000 B) 6.4190 us/op 2.9690 us/op 2.16
copy serialized Big SignedBeaconBlock (1000000 B) 215.22 us/op 152.52 us/op 1.41
pass gossip attestations to forkchoice per slot 9.3897 ms/op 3.3089 ms/op 2.84
forkChoice updateHead vc 100000 bc 64 eq 0 1.1909 ms/op 489.39 us/op 2.43
forkChoice updateHead vc 600000 bc 64 eq 0 7.6273 ms/op 3.0268 ms/op 2.52
forkChoice updateHead vc 1000000 bc 64 eq 0 9.1469 ms/op 5.2419 ms/op 1.74
forkChoice updateHead vc 600000 bc 320 eq 0 6.7629 ms/op 3.0206 ms/op 2.24
forkChoice updateHead vc 600000 bc 1200 eq 0 13.471 ms/op 3.0986 ms/op 4.35
forkChoice updateHead vc 600000 bc 7200 eq 0 13.133 ms/op 4.0095 ms/op 3.28
forkChoice updateHead vc 600000 bc 64 eq 1000 30.969 ms/op 10.635 ms/op 2.91
forkChoice updateHead vc 600000 bc 64 eq 10000 25.412 ms/op 10.499 ms/op 2.42
forkChoice updateHead vc 600000 bc 64 eq 300000 32.580 ms/op 14.670 ms/op 2.22
computeDeltas 500000 validators 300 proto nodes 7.3486 ms/op 3.5686 ms/op 2.06
computeDeltas 500000 validators 1200 proto nodes 7.8663 ms/op 3.5413 ms/op 2.22
computeDeltas 500000 validators 7200 proto nodes 8.7600 ms/op 3.6541 ms/op 2.40
computeDeltas 750000 validators 300 proto nodes 11.954 ms/op 5.2773 ms/op 2.27
computeDeltas 750000 validators 1200 proto nodes 14.421 ms/op 5.1986 ms/op 2.77
computeDeltas 750000 validators 7200 proto nodes 13.356 ms/op 5.2705 ms/op 2.53
computeDeltas 1400000 validators 300 proto nodes 21.363 ms/op 9.8809 ms/op 2.16
computeDeltas 1400000 validators 1200 proto nodes 18.222 ms/op 9.8313 ms/op 1.85
computeDeltas 1400000 validators 7200 proto nodes 21.193 ms/op 9.9885 ms/op 2.12
computeDeltas 2100000 validators 300 proto nodes 28.472 ms/op 15.055 ms/op 1.89
computeDeltas 2100000 validators 1200 proto nodes 28.608 ms/op 15.056 ms/op 1.90
computeDeltas 2100000 validators 7200 proto nodes 37.211 ms/op 16.291 ms/op 2.28
altair processAttestation - 250000 vs - 7PWei normalcase 2.6540 ms/op 2.2251 ms/op 1.19
altair processAttestation - 250000 vs - 7PWei worstcase 5.1787 ms/op 3.0197 ms/op 1.71
altair processAttestation - setStatus - 1/6 committees join 149.85 us/op 136.25 us/op 1.10
altair processAttestation - setStatus - 1/3 committees join 266.95 us/op 255.22 us/op 1.05
altair processAttestation - setStatus - 1/2 committees join 318.45 us/op 357.30 us/op 0.89
altair processAttestation - setStatus - 2/3 committees join 570.63 us/op 438.75 us/op 1.30
altair processAttestation - setStatus - 4/5 committees join 769.98 us/op 622.13 us/op 1.24
altair processAttestation - setStatus - 100% committees join 1.1122 ms/op 705.34 us/op 1.58
altair processBlock - 250000 vs - 7PWei normalcase 8.8099 ms/op 5.0800 ms/op 1.73
altair processBlock - 250000 vs - 7PWei normalcase hashState 32.384 ms/op 25.977 ms/op 1.25
altair processBlock - 250000 vs - 7PWei worstcase 75.080 ms/op 40.581 ms/op 1.85
altair processBlock - 250000 vs - 7PWei worstcase hashState 93.607 ms/op 81.842 ms/op 1.14
phase0 processBlock - 250000 vs - 7PWei normalcase 1.7774 ms/op 2.3709 ms/op 0.75
phase0 processBlock - 250000 vs - 7PWei worstcase 30.753 ms/op 27.589 ms/op 1.11
altair processEth1Data - 250000 vs - 7PWei normalcase 380.15 us/op 330.02 us/op 1.15
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 5.8880 us/op 6.2400 us/op 0.94
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 22.847 us/op 29.274 us/op 0.78
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 8.1570 us/op 9.5680 us/op 0.85
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 5.3970 us/op 6.4330 us/op 0.84
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 89.565 us/op 116.03 us/op 0.77
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 729.41 us/op 669.13 us/op 1.09
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.1614 ms/op 907.10 us/op 1.28
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.3195 ms/op 900.64 us/op 1.47
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.6490 ms/op 2.6501 ms/op 1.00
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.7292 ms/op 1.5756 ms/op 1.10
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.4172 ms/op 3.9513 ms/op 1.12
Tree 40 250000 create 266.39 ms/op 244.79 ms/op 1.09
Tree 40 250000 get(125000) 170.05 ns/op 147.79 ns/op 1.15
Tree 40 250000 set(125000) 770.79 ns/op 648.72 ns/op 1.19
Tree 40 250000 toArray() 18.188 ms/op 19.490 ms/op 0.93
Tree 40 250000 iterate all - toArray() + loop 17.614 ms/op 20.113 ms/op 0.88
Tree 40 250000 iterate all - get(i) 58.764 ms/op 54.607 ms/op 1.08
MutableVector 250000 create 9.2628 ms/op 10.496 ms/op 0.88
MutableVector 250000 get(125000) 7.5140 ns/op 7.6470 ns/op 0.98
MutableVector 250000 set(125000) 204.98 ns/op 228.03 ns/op 0.90
MutableVector 250000 toArray() 3.3991 ms/op 4.4183 ms/op 0.77
MutableVector 250000 iterate all - toArray() + loop 3.5408 ms/op 4.0432 ms/op 0.88
MutableVector 250000 iterate all - get(i) 1.9835 ms/op 1.8191 ms/op 1.09
Array 250000 create 2.9988 ms/op 3.1904 ms/op 0.94
Array 250000 clone - spread 1.3837 ms/op 1.5408 ms/op 0.90
Array 250000 get(125000) 0.43500 ns/op 0.40700 ns/op 1.07
Array 250000 set(125000) 0.47500 ns/op 0.43400 ns/op 1.09
Array 250000 iterate all - loop 121.08 us/op 104.71 us/op 1.16
effectiveBalanceIncrements clone Uint8Array 300000 26.813 us/op 44.884 us/op 0.60
effectiveBalanceIncrements clone MutableVector 300000 132.00 ns/op 127.00 ns/op 1.04
effectiveBalanceIncrements rw all Uint8Array 300000 223.61 us/op 200.06 us/op 1.12
effectiveBalanceIncrements rw all MutableVector 300000 70.995 ms/op 73.792 ms/op 0.96
phase0 afterProcessEpoch - 250000 vs - 7PWei 104.77 ms/op 89.244 ms/op 1.17
Array.fill - length 1000000 3.6913 ms/op 4.0005 ms/op 0.92
Array push - length 1000000 23.665 ms/op 18.336 ms/op 1.29
Array.get 0.28310 ns/op 0.28317 ns/op 1.00
Uint8Array.get 0.45010 ns/op 0.44751 ns/op 1.01
phase0 beforeProcessEpoch - 250000 vs - 7PWei 23.991 ms/op 25.506 ms/op 0.94
altair processEpoch - mainnet_e81889 396.30 ms/op 335.55 ms/op 1.18
mainnet_e81889 - altair beforeProcessEpoch 36.152 ms/op 32.985 ms/op 1.10
mainnet_e81889 - altair processJustificationAndFinalization 11.602 us/op 11.598 us/op 1.00
mainnet_e81889 - altair processInactivityUpdates 5.5768 ms/op 6.2564 ms/op 0.89
mainnet_e81889 - altair processRewardsAndPenalties 54.792 ms/op 38.008 ms/op 1.44
mainnet_e81889 - altair processRegistryUpdates 2.2000 us/op 1.7590 us/op 1.25
mainnet_e81889 - altair processSlashings 400.00 ns/op 455.00 ns/op 0.88
mainnet_e81889 - altair processEth1DataReset 324.00 ns/op 352.00 ns/op 0.92
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2784 ms/op 1.7776 ms/op 0.72
mainnet_e81889 - altair processSlashingsReset 4.2270 us/op 2.6320 us/op 1.61
mainnet_e81889 - altair processRandaoMixesReset 7.6020 us/op 4.2590 us/op 1.78
mainnet_e81889 - altair processHistoricalRootsUpdate 430.00 ns/op 552.00 ns/op 0.78
mainnet_e81889 - altair processParticipationFlagUpdates 1.6500 us/op 2.0040 us/op 0.82
mainnet_e81889 - altair processSyncCommitteeUpdates 309.00 ns/op 452.00 ns/op 0.68
mainnet_e81889 - altair afterProcessEpoch 129.39 ms/op 93.223 ms/op 1.39
capella processEpoch - mainnet_e217614 1.8270 s/op 1.1217 s/op 1.63
mainnet_e217614 - capella beforeProcessEpoch 149.84 ms/op 111.59 ms/op 1.34
mainnet_e217614 - capella processJustificationAndFinalization 12.434 us/op 13.061 us/op 0.95
mainnet_e217614 - capella processInactivityUpdates 25.719 ms/op 16.795 ms/op 1.53
mainnet_e217614 - capella processRewardsAndPenalties 255.56 ms/op 218.26 ms/op 1.17
mainnet_e217614 - capella processRegistryUpdates 11.925 us/op 12.270 us/op 0.97
mainnet_e217614 - capella processSlashings 391.00 ns/op 364.00 ns/op 1.07
mainnet_e217614 - capella processEth1DataReset 291.00 ns/op 288.00 ns/op 1.01
mainnet_e217614 - capella processEffectiveBalanceUpdates 10.048 ms/op 10.077 ms/op 1.00
mainnet_e217614 - capella processSlashingsReset 2.3670 us/op 3.4360 us/op 0.69
mainnet_e217614 - capella processRandaoMixesReset 3.4540 us/op 3.3220 us/op 1.04
mainnet_e217614 - capella processHistoricalRootsUpdate 354.00 ns/op 877.00 ns/op 0.40
mainnet_e217614 - capella processParticipationFlagUpdates 1.5630 us/op 1.6810 us/op 0.93
mainnet_e217614 - capella afterProcessEpoch 291.90 ms/op 255.91 ms/op 1.14
phase0 processEpoch - mainnet_e58758 335.30 ms/op 334.18 ms/op 1.00
mainnet_e58758 - phase0 beforeProcessEpoch 73.569 ms/op 76.460 ms/op 0.96
mainnet_e58758 - phase0 processJustificationAndFinalization 11.667 us/op 12.923 us/op 0.90
mainnet_e58758 - phase0 processRewardsAndPenalties 24.785 ms/op 31.046 ms/op 0.80
mainnet_e58758 - phase0 processRegistryUpdates 6.7510 us/op 7.3610 us/op 0.92
mainnet_e58758 - phase0 processSlashings 403.00 ns/op 305.00 ns/op 1.32
mainnet_e58758 - phase0 processEth1DataReset 290.00 ns/op 305.00 ns/op 0.95
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 949.50 us/op 942.90 us/op 1.01
mainnet_e58758 - phase0 processSlashingsReset 2.0100 us/op 3.4530 us/op 0.58
mainnet_e58758 - phase0 processRandaoMixesReset 3.3080 us/op 3.5650 us/op 0.93
mainnet_e58758 - phase0 processHistoricalRootsUpdate 316.00 ns/op 302.00 ns/op 1.05
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.2480 us/op 2.2730 us/op 1.43
mainnet_e58758 - phase0 afterProcessEpoch 86.972 ms/op 79.269 ms/op 1.10
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.7216 ms/op 1.1943 ms/op 1.44
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.9813 ms/op 1.9392 ms/op 1.02
altair processInactivityUpdates - 250000 normalcase 14.948 ms/op 15.148 ms/op 0.99
altair processInactivityUpdates - 250000 worstcase 15.812 ms/op 14.165 ms/op 1.12
phase0 processRegistryUpdates - 250000 normalcase 6.3650 us/op 7.0470 us/op 0.90
phase0 processRegistryUpdates - 250000 badcase_full_deposits 237.58 us/op 268.54 us/op 0.88
phase0 processRegistryUpdates - 250000 worstcase 0.5 123.42 ms/op 100.33 ms/op 1.23
altair processRewardsAndPenalties - 250000 normalcase 45.932 ms/op 35.771 ms/op 1.28
altair processRewardsAndPenalties - 250000 worstcase 42.295 ms/op 39.777 ms/op 1.06
phase0 getAttestationDeltas - 250000 normalcase 7.7131 ms/op 7.6626 ms/op 1.01
phase0 getAttestationDeltas - 250000 worstcase 8.0606 ms/op 8.1922 ms/op 0.98
phase0 processSlashings - 250000 worstcase 82.289 us/op 97.890 us/op 0.84
altair processSyncCommitteeUpdates - 250000 135.26 ms/op 135.34 ms/op 1.00
BeaconState.hashTreeRoot - No change 342.00 ns/op 278.00 ns/op 1.23
BeaconState.hashTreeRoot - 1 full validator 136.88 us/op 120.10 us/op 1.14
BeaconState.hashTreeRoot - 32 full validator 1.4973 ms/op 1.4433 ms/op 1.04
BeaconState.hashTreeRoot - 512 full validator 17.509 ms/op 8.9866 ms/op 1.95
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 148.00 us/op 119.68 us/op 1.24
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.7300 ms/op 1.5775 ms/op 1.10
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 24.366 ms/op 19.449 ms/op 1.25
BeaconState.hashTreeRoot - 1 balances 126.34 us/op 100.09 us/op 1.26
BeaconState.hashTreeRoot - 32 balances 1.1761 ms/op 895.70 us/op 1.31
BeaconState.hashTreeRoot - 512 balances 10.835 ms/op 12.482 ms/op 0.87
BeaconState.hashTreeRoot - 250000 balances 233.31 ms/op 169.05 ms/op 1.38
aggregationBits - 2048 els - zipIndexesInBitList 32.010 us/op 22.192 us/op 1.44
byteArrayEquals 32 71.341 ns/op 51.374 ns/op 1.39
Buffer.compare 32 27.547 ns/op 16.502 ns/op 1.67
byteArrayEquals 1024 2.1352 us/op 1.5184 us/op 1.41
Buffer.compare 1024 39.502 ns/op 23.538 ns/op 1.68
byteArrayEquals 16384 43.061 us/op 24.169 us/op 1.78
Buffer.compare 16384 441.33 ns/op 196.66 ns/op 2.24
byteArrayEquals 123687377 370.31 ms/op 189.28 ms/op 1.96
Buffer.compare 123687377 8.5843 ms/op 6.7854 ms/op 1.27
byteArrayEquals 32 - diff last byte 92.417 ns/op 52.426 ns/op 1.76
Buffer.compare 32 - diff last byte 31.526 ns/op 17.032 ns/op 1.85
byteArrayEquals 1024 - diff last byte 2.7295 us/op 1.5823 us/op 1.73
Buffer.compare 1024 - diff last byte 42.134 ns/op 25.520 ns/op 1.65
byteArrayEquals 16384 - diff last byte 40.772 us/op 25.109 us/op 1.62
Buffer.compare 16384 - diff last byte 275.76 ns/op 183.63 ns/op 1.50
byteArrayEquals 123687377 - diff last byte 414.54 ms/op 191.88 ms/op 2.16
Buffer.compare 123687377 - diff last byte 7.8312 ms/op 7.6787 ms/op 1.02
byteArrayEquals 32 - random bytes 7.6790 ns/op 5.3140 ns/op 1.45
Buffer.compare 32 - random bytes 38.995 ns/op 17.598 ns/op 2.22
byteArrayEquals 1024 - random bytes 13.396 ns/op 5.2430 ns/op 2.56
Buffer.compare 1024 - random bytes 36.458 ns/op 17.274 ns/op 2.11
byteArrayEquals 16384 - random bytes 10.930 ns/op 5.1790 ns/op 2.11
Buffer.compare 16384 - random bytes 25.357 ns/op 17.342 ns/op 1.46
byteArrayEquals 123687377 - random bytes 12.800 ns/op 6.4900 ns/op 1.97
Buffer.compare 123687377 - random bytes 31.300 ns/op 18.910 ns/op 1.66
regular array get 100000 times 80.163 us/op 40.806 us/op 1.96
wrappedArray get 100000 times 73.196 us/op 33.831 us/op 2.16
arrayWithProxy get 100000 times 35.258 ms/op 13.098 ms/op 2.69
ssz.Root.equals 89.039 ns/op 46.916 ns/op 1.90
byteArrayEquals 101.08 ns/op 46.513 ns/op 2.17
Buffer.compare 23.144 ns/op 10.725 ns/op 2.16
shuffle list - 16384 els 14.506 ms/op 6.4002 ms/op 2.27
shuffle list - 250000 els 155.15 ms/op 93.423 ms/op 1.66
processSlot - 1 slots 18.894 us/op 12.576 us/op 1.50
processSlot - 32 slots 3.1930 ms/op 2.2084 ms/op 1.45
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 56.745 ms/op 37.064 ms/op 1.53
getCommitteeAssignments - req 1 vs - 250000 vc 7.8894 ms/op 2.1829 ms/op 3.61
getCommitteeAssignments - req 100 vs - 250000 vc 10.703 ms/op 4.1990 ms/op 2.55
getCommitteeAssignments - req 1000 vs - 250000 vc 14.568 ms/op 4.6256 ms/op 3.15
findModifiedValidators - 10000 modified validators 678.51 ms/op 294.42 ms/op 2.30
findModifiedValidators - 1000 modified validators 833.05 ms/op 201.75 ms/op 4.13
findModifiedValidators - 100 modified validators 526.04 ms/op 189.92 ms/op 2.77
findModifiedValidators - 10 modified validators 367.49 ms/op 178.71 ms/op 2.06
findModifiedValidators - 1 modified validators 391.01 ms/op 183.58 ms/op 2.13
findModifiedValidators - no difference 298.39 ms/op 153.91 ms/op 1.94
compare ViewDUs 4.3381 s/op 3.2741 s/op 1.32
compare each validator Uint8Array 2.4593 s/op 1.8873 s/op 1.30
compare ViewDU to Uint8Array 2.7755 s/op 1.2589 s/op 2.20
migrate state 1000000 validators, 24 modified, 0 new 1.3823 s/op 696.75 ms/op 1.98
migrate state 1000000 validators, 1700 modified, 1000 new 2.1967 s/op 1.2122 s/op 1.81
migrate state 1000000 validators, 3400 modified, 2000 new 3.0363 s/op 1.2095 s/op 2.51
migrate state 1500000 validators, 24 modified, 0 new 1.7198 s/op 650.00 ms/op 2.65
migrate state 1500000 validators, 1700 modified, 1000 new 2.3684 s/op 850.98 ms/op 2.78
migrate state 1500000 validators, 3400 modified, 2000 new 2.6340 s/op 1.0843 s/op 2.43
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 14.100 ns/op 4.9400 ns/op 2.85
state getBlockRootAtSlot - 250000 vs - 7PWei 1.3823 us/op 929.41 ns/op 1.49
computeProposers - vc 250000 24.587 ms/op 7.4343 ms/op 3.31
computeEpochShuffling - vc 250000 283.27 ms/op 93.564 ms/op 3.03
getNextSyncCommittee - vc 250000 395.44 ms/op 128.66 ms/op 3.07
computeSigningRoot for AttestationData 63.826 us/op 21.596 us/op 2.96
hash AttestationData serialized data then Buffer.toString(base64) 4.3580 us/op 1.6208 us/op 2.69
toHexString serialized data 3.6848 us/op 1.0919 us/op 3.37
Buffer.toString(base64) 544.66 ns/op 213.51 ns/op 2.55

Please sign in to comment.