Skip to content

Commit

Permalink
Use node 18 (#4779)
Browse files Browse the repository at this point in the history
* Use node 18

* Add bigger timeouts

* Add uint8array concat benchmark

* increase timeouts

* Debug e2e tests

* Fix e2e tests, remove debug logs

* "fix" types

* "fix" types
  • Loading branch information
wemeetagain committed Dec 12, 2022
1 parent 0a5bf0e commit 7d662d7
Show file tree
Hide file tree
Showing 20 changed files with 39 additions and 24 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/benchmark.yml
Expand Up @@ -29,7 +29,7 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "lts/gallium"
node-version: 18
- name: Node.js version
id: node
run: echo "::set-output name=v8CppApiVersion::$(node --print "process.versions.modules")"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Expand Up @@ -13,7 +13,7 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "lts/gallium"
node-version: 18
- name: Node.js version
id: node
run: echo "::set-output name=v8CppApiVersion::$(node --print "process.versions.modules")"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish-dev.yml
Expand Up @@ -20,7 +20,7 @@ jobs:
fetch-depth: 0
- uses: actions/setup-node@v2
with:
node-version: "lts/gallium"
node-version: 18
registry-url: "https://registry.npmjs.org"
- name: Node.js version
id: node
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish-rc.yml
Expand Up @@ -54,7 +54,7 @@ jobs:
fetch-depth: 0 # Needs full depth for changelog generation
- uses: actions/setup-node@v2
with:
node-version: "lts/gallium"
node-version: 18
- name: Node.js version
id: node
run: echo "::set-output name=v8CppApiVersion::$(node --print "process.versions.modules")"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish-stable.yml
Expand Up @@ -60,7 +60,7 @@ jobs:
fetch-depth: 0 # Needs full depth for changelog generation
- uses: actions/setup-node@v2
with:
node-version: "lts/gallium"
node-version: 18
- name: Node.js version
id: node
run: echo "::set-output name=v8CppApiVersion::$(node --print "process.versions.modules")"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-browser.yml
Expand Up @@ -14,7 +14,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node: [16]
node: [18]
steps:
# <common-build> - Uses YAML anchors in the future
- uses: actions/checkout@v2
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-e2e.yml
Expand Up @@ -17,7 +17,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node: [16]
node: [18]
steps:
# <common-build> - Uses YAML anchors in the future
- uses: actions/checkout@v2
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-sim-merge.yml
Expand Up @@ -24,7 +24,7 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "lts/gallium"
node-version: 18
- name: Node.js version
id: node
run: echo "::set-output name=v8CppApiVersion::$(node --print "process.versions.modules")"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-sim.yml
Expand Up @@ -20,7 +20,7 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "lts/gallium"
node-version: 18
- name: Node.js version
id: node
run: echo "::set-output name=v8CppApiVersion::$(node --print "process.versions.modules")"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-spec.yml
Expand Up @@ -19,7 +19,7 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "lts/gallium"
node-version: 18
- name: Node.js version
id: node
run: echo "::set-output name=v8CppApiVersion::$(node --print "process.versions.modules")"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Expand Up @@ -14,7 +14,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node: [16]
node: [18]
steps:
# <common-build> - Uses YAML anchors in the future
- uses: actions/checkout@v2
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Expand Up @@ -4,7 +4,7 @@ Thanks for your contribution to Lodestar. It's people like you that push the Eth

## Prerequisites

- :gear: [NodeJS](https://nodejs.org/) (LTS/Gallium)
- :gear: [NodeJS](https://nodejs.org/) (LTS)
- :toolbox: [Yarn](https://yarnpkg.com/)/[Lerna](https://lerna.js.org/)

## Getting Started
Expand Down
6 changes: 3 additions & 3 deletions Dockerfile
@@ -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:16-alpine as build_src
FROM --platform=${BUILDPLATFORM:-amd64} node:18-alpine as build_src
ARG COMMIT
WORKDIR /usr/app
RUN apk update && apk add --no-cache g++ make python3 && 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:16-alpine as build_deps
FROM node:18-alpine as build_deps
WORKDIR /usr/app
RUN apk update && apk add --no-cache g++ make python3 && rm -rf /var/cache/apk/*

Expand All @@ -34,7 +34,7 @@ RUN yarn install --non-interactive --frozen-lockfile --production --force

# 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:16-alpine
FROM node:18-alpine
WORKDIR /usr/app
COPY --from=build_deps /usr/app .

Expand Down
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -8,7 +8,7 @@
[![Eth Consensus Spec v1.1.10](https://img.shields.io/badge/ETH%20consensus--spec-1.1.10-blue)](https://github.com/ethereum/consensus-specs/releases/tag/v1.1.10)
[![codecov](https://codecov.io/gh/ChainSafe/lodestar/branch/unstable/graph/badge.svg)](https://codecov.io/gh/ChainSafe/lodestar)
![ES Version](https://img.shields.io/badge/ES-2020-yellow)
![Node Version](https://img.shields.io/badge/node-16.x-green)
![Node Version](https://img.shields.io/badge/node-18.x-green)
[![gitpoap badge](https://public-api.gitpoap.io/v1/repo/ChainSafe/lodestar/badge)](https://www.gitpoap.io/gh/ChainSafe/lodestar)

[Lodestar](https://lodestar.chainsafe.io) is a TypeScript implementation of the [Ethereum Consensus specification](https://github.com/ethereum/consensus-specs) developed by [ChainSafe Systems](https://chainsafe.io).
Expand All @@ -29,7 +29,7 @@

## Prerequisites

- :gear: [NodeJS](https://nodejs.org/) (LTS/Gallium)
- :gear: [NodeJS](https://nodejs.org/) (LTS)
- :toolbox: [Yarn](https://yarnpkg.com/)/[Lerna](https://lerna.js.org/)

###### Developer Quickstart:
Expand Down
4 changes: 2 additions & 2 deletions docs/install/source.md
@@ -1,10 +1,10 @@
# Install from source

Make sure to have [Yarn installed](https://classic.yarnpkg.com/en/docs/install). It is also recommended to [install NVM (Node Version Manager)](https://github.com/nvm-sh/nvm) and use v16 of [NodeJS](https://nodejs.org/en/).
Make sure to have [Yarn installed](https://classic.yarnpkg.com/en/docs/install). It is also recommended to [install NVM (Node Version Manager)](https://github.com/nvm-sh/nvm) and use v18 of [NodeJS](https://nodejs.org/en/).

<!-- prettier-ignore-start -->
!!! info
NodeJS versions < 16.x are not supported by Lodestar. We currently recommend running NodeJS 16.x.
NodeJS versions < 16.x are not supported by Lodestar. We currently recommend running NodeJS 18.x.
<!-- prettier-ignore-end -->

Clone the repo locally.
Expand Down
2 changes: 1 addition & 1 deletion packages/beacon-node/src/network/network.ts
Expand Up @@ -142,7 +142,7 @@ export class Network implements INetwork {
await this.libp2p.start();
// Stop latency monitor since we handle disconnects here and don't want additional load on the event loop
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
(this.libp2p.connectionManager as DefaultConnectionManager)["latencyMonitor"].stop();
((this.libp2p.connectionManager as unknown) as DefaultConnectionManager)["latencyMonitor"].stop();

// Network spec decides version changes based on clock fork, not head fork
const forkCurrentSlot = this.config.getForkName(this.clock.currentSlot);
Expand Down
2 changes: 1 addition & 1 deletion packages/beacon-node/src/network/util.ts
Expand Up @@ -70,7 +70,7 @@ export function prettyPrintPeerId(peerId: PeerId): string {
*/
// Compat function for type mismatch reasons
export function getConnectionsMap(connectionManager: ConnectionManager): Map<string, Connection[]> {
return (connectionManager as DefaultConnectionManager)["connections"] as Map<string, Connection[]>;
return ((connectionManager as unknown) as DefaultConnectionManager)["connections"] as Map<string, Connection[]>;
}

export function getConnection(connectionManager: ConnectionManager, peerIdStr: string): Connection | undefined {
Expand Down
17 changes: 16 additions & 1 deletion packages/beacon-node/test/perf/util/bytes.test.ts
Expand Up @@ -17,6 +17,21 @@ describe("bytes utils", function () {
fn: () => {
Buffer.concat(buffers);
},
runsFactor: 1000,
});

itBench({
id: `Uint8Array.set ${count} items`,
fn: () => {
let size = 0;
for (const b of buffers) {
size += b.length;
}
const arr = new Uint8Array(size);
let offset = 0;
for (const b of buffers) {
arr.set(b, offset);
offset += b.length;
}
},
});
});
2 changes: 1 addition & 1 deletion packages/cli/test/e2e/runDevCmd.test.ts
Expand Up @@ -23,7 +23,7 @@ describeCliTest("Run dev command", function ({spawnCli}) {
}
});

const beaconUrl = `http://localhost:${beaconPort}`;
const beaconUrl = `http://127.0.0.1:${beaconPort}`;
const client = getClient({baseUrl: beaconUrl}, {config});

// Wrap in retry since the API may not be listening yet
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/test/e2e/voluntaryExit.test.ts
Expand Up @@ -33,7 +33,7 @@ describeCliTest("voluntaryExit cmd", function ({spawnCli}) {
}
});

const baseUrl = `http://localhost:${restPort}`;
const baseUrl = `http://127.0.0.1:${restPort}`;
const client = getClient({baseUrl}, {config});

// Wait for beacon node API to be available + genesis
Expand Down

1 comment on commit 7d662d7

@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: 7d662d7 Previous: 0a5bf0e Ratio
Buffer.concat 32 items 5.1780 us/op 1.8330 ns/op 2824.88
computeProposerBoostScoreFromBalances 2.8454 ms/op 805.92 us/op 3.53
Full benchmark results
Benchmark suite Current: 7d662d7 Previous: 0a5bf0e Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.1903 ms/op 1.9178 ms/op 0.62
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 74.022 us/op 62.233 us/op 1.19
BLS verify - blst-native 1.8588 ms/op 2.1708 ms/op 0.86
BLS verifyMultipleSignatures 3 - blst-native 3.8064 ms/op 4.4951 ms/op 0.85
BLS verifyMultipleSignatures 8 - blst-native 8.2004 ms/op 9.7049 ms/op 0.84
BLS verifyMultipleSignatures 32 - blst-native 29.710 ms/op 35.281 ms/op 0.84
BLS aggregatePubkeys 32 - blst-native 39.313 us/op 46.535 us/op 0.84
BLS aggregatePubkeys 128 - blst-native 154.09 us/op 181.64 us/op 0.85
getAttestationsForBlock 91.217 ms/op 81.581 ms/op 1.12
isKnown best case - 1 super set check 491.00 ns/op 483.00 ns/op 1.02
isKnown normal case - 2 super set checks 488.00 ns/op 486.00 ns/op 1.00
isKnown worse case - 16 super set checks 477.00 ns/op 474.00 ns/op 1.01
CheckpointStateCache - add get delete 8.4500 us/op 8.9240 us/op 0.95
validate gossip signedAggregateAndProof - struct 4.2700 ms/op 5.0230 ms/op 0.85
validate gossip attestation - struct 2.0276 ms/op 2.3697 ms/op 0.86
pickEth1Vote - no votes 2.1684 ms/op 2.1924 ms/op 0.99
pickEth1Vote - max votes 17.640 ms/op 18.531 ms/op 0.95
pickEth1Vote - Eth1Data hashTreeRoot value x2048 12.006 ms/op 12.740 ms/op 0.94
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 22.383 ms/op 20.469 ms/op 1.09
pickEth1Vote - Eth1Data fastSerialize value x2048 1.2730 ms/op 1.5159 ms/op 0.84
pickEth1Vote - Eth1Data fastSerialize tree x2048 10.186 ms/op 12.336 ms/op 0.83
bytes32 toHexString 1.1010 us/op 971.00 ns/op 1.13
bytes32 Buffer.toString(hex) 599.00 ns/op 751.00 ns/op 0.80
bytes32 Buffer.toString(hex) from Uint8Array 983.00 ns/op 1.0330 us/op 0.95
bytes32 Buffer.toString(hex) + 0x 608.00 ns/op 734.00 ns/op 0.83
Object access 1 prop 0.28600 ns/op 0.35600 ns/op 0.80
Map access 1 prop 0.25500 ns/op 0.30900 ns/op 0.83
Object get x1000 16.895 ns/op 11.591 ns/op 1.46
Map get x1000 0.99600 ns/op 0.94400 ns/op 1.06
Object set x1000 115.52 ns/op 74.667 ns/op 1.55
Map set x1000 72.805 ns/op 48.837 ns/op 1.49
Return object 10000 times 0.36510 ns/op 0.44250 ns/op 0.83
Throw Error 10000 times 6.7531 us/op 5.9919 us/op 1.13
fastMsgIdFn sha256 / 200 bytes 4.2840 us/op 4.9630 us/op 0.86
fastMsgIdFn h32 xxhash / 200 bytes 461.00 ns/op 548.00 ns/op 0.84
fastMsgIdFn h64 xxhash / 200 bytes 682.00 ns/op 852.00 ns/op 0.80
fastMsgIdFn sha256 / 1000 bytes 13.417 us/op 15.482 us/op 0.87
fastMsgIdFn h32 xxhash / 1000 bytes 612.00 ns/op 716.00 ns/op 0.85
fastMsgIdFn h64 xxhash / 1000 bytes 744.00 ns/op 877.00 ns/op 0.85
fastMsgIdFn sha256 / 10000 bytes 116.98 us/op 134.08 us/op 0.87
fastMsgIdFn h32 xxhash / 10000 bytes 2.3010 us/op 2.5610 us/op 0.90
fastMsgIdFn h64 xxhash / 10000 bytes 1.6490 us/op 1.9210 us/op 0.86
enrSubnets - fastDeserialize 64 bits 2.4750 us/op 2.7190 us/op 0.91
enrSubnets - ssz BitVector 64 bits 828.00 ns/op 845.00 ns/op 0.98
enrSubnets - fastDeserialize 4 bits 292.00 ns/op 395.00 ns/op 0.74
enrSubnets - ssz BitVector 4 bits 853.00 ns/op 798.00 ns/op 1.07
prioritizePeers score -10:0 att 32-0.1 sync 2-0 99.681 us/op 84.620 us/op 1.18
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 136.82 us/op 136.46 us/op 1.00
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 270.92 us/op 219.28 us/op 1.24
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 412.56 us/op 361.93 us/op 1.14
prioritizePeers score 0:0 att 64-1 sync 4-1 533.30 us/op 438.61 us/op 1.22
RateTracker 1000000 limit, 1 obj count per request 181.38 ns/op 186.56 ns/op 0.97
RateTracker 1000000 limit, 2 obj count per request 136.32 ns/op 134.85 ns/op 1.01
RateTracker 1000000 limit, 4 obj count per request 112.67 ns/op 110.15 ns/op 1.02
RateTracker 1000000 limit, 8 obj count per request 101.04 ns/op 98.734 ns/op 1.02
RateTracker with prune 4.0460 us/op 4.0810 us/op 0.99
array of 16000 items push then shift 2.7417 us/op 51.605 us/op 0.05
LinkedList of 16000 items push then shift 18.858 ns/op 12.493 ns/op 1.51
array of 16000 items push then pop 220.34 ns/op 209.58 ns/op 1.05
LinkedList of 16000 items push then pop 17.686 ns/op 12.232 ns/op 1.45
array of 24000 items push then shift 3.9743 us/op 77.379 us/op 0.05
LinkedList of 24000 items push then shift 22.889 ns/op 12.883 ns/op 1.78
array of 24000 items push then pop 210.68 ns/op 194.55 ns/op 1.08
LinkedList of 24000 items push then pop 19.843 ns/op 12.328 ns/op 1.61
intersect bitArray bitLen 8 29.064 ns/op 10.636 ns/op 2.73
intersect array and set length 8 165.21 ns/op 139.58 ns/op 1.18
intersect bitArray bitLen 128 108.33 ns/op 57.722 ns/op 1.88
intersect array and set length 128 2.3098 us/op 1.8812 us/op 1.23
Buffer.concat 32 items 5.1780 us/op 1.8330 ns/op 2824.88
Uint8Array.set 32 items 4.2180 us/op
pass gossip attestations to forkchoice per slot 4.2862 ms/op 5.5393 ms/op 0.77
computeDeltas 6.1586 ms/op 4.5531 ms/op 1.35
computeProposerBoostScoreFromBalances 2.8454 ms/op 805.92 us/op 3.53
altair processAttestation - 250000 vs - 7PWei normalcase 4.7057 ms/op 3.2840 ms/op 1.43
altair processAttestation - 250000 vs - 7PWei worstcase 7.5672 ms/op 5.1667 ms/op 1.46
altair processAttestation - setStatus - 1/6 committees join 214.32 us/op 179.06 us/op 1.20
altair processAttestation - setStatus - 1/3 committees join 407.19 us/op 350.23 us/op 1.16
altair processAttestation - setStatus - 1/2 committees join 567.21 us/op 505.40 us/op 1.12
altair processAttestation - setStatus - 2/3 committees join 724.05 us/op 671.03 us/op 1.08
altair processAttestation - setStatus - 4/5 committees join 1.0096 ms/op 926.69 us/op 1.09
altair processAttestation - setStatus - 100% committees join 1.2052 ms/op 1.1190 ms/op 1.08
altair processBlock - 250000 vs - 7PWei normalcase 27.486 ms/op 25.079 ms/op 1.10
altair processBlock - 250000 vs - 7PWei normalcase hashState 43.202 ms/op 40.534 ms/op 1.07
altair processBlock - 250000 vs - 7PWei worstcase 82.451 ms/op 79.237 ms/op 1.04
altair processBlock - 250000 vs - 7PWei worstcase hashState 112.42 ms/op 101.20 ms/op 1.11
phase0 processBlock - 250000 vs - 7PWei normalcase 3.6044 ms/op 3.2868 ms/op 1.10
phase0 processBlock - 250000 vs - 7PWei worstcase 46.907 ms/op 51.581 ms/op 0.91
altair processEth1Data - 250000 vs - 7PWei normalcase 833.16 us/op 714.85 us/op 1.17
vc - 250000 eb 1 eth1 1 we 0 wn 0 - smpl 15 9.2230 us/op 6.8010 us/op 1.36
vc - 250000 eb 0.95 eth1 0.1 we 0.05 wn 0 - smpl 219 28.091 us/op 21.059 us/op 1.33
vc - 250000 eb 0.95 eth1 0.3 we 0.05 wn 0 - smpl 42 12.482 us/op 9.2910 us/op 1.34
vc - 250000 eb 0.95 eth1 0.7 we 0.05 wn 0 - smpl 18 10.133 us/op 7.0220 us/op 1.44
vc - 250000 eb 0.1 eth1 0.1 we 0 wn 0 - smpl 1020 100.99 us/op 95.140 us/op 1.06
vc - 250000 eb 0.03 eth1 0.03 we 0 wn 0 - smpl 11777 1.0059 ms/op 930.80 us/op 1.08
vc - 250000 eb 0.01 eth1 0.01 we 0 wn 0 - smpl 141069 13.837 ms/op 12.656 ms/op 1.09
vc - 250000 eb 0 eth1 0 we 0 wn 0 - smpl 250000 24.736 ms/op 22.177 ms/op 1.12
vc - 250000 eb 0 eth1 0 we 0 wn 0 nocache - smpl 250000 77.355 ms/op 71.776 ms/op 1.08
vc - 250000 eb 0 eth1 1 we 0 wn 0 - smpl 250000 47.845 ms/op 38.562 ms/op 1.24
vc - 250000 eb 0 eth1 1 we 0 wn 0 nocache - smpl 250000 123.12 ms/op 119.50 ms/op 1.03
Tree 40 250000 create 723.84 ms/op 725.66 ms/op 1.00
Tree 40 250000 get(125000) 294.10 ns/op 237.73 ns/op 1.24
Tree 40 250000 set(125000) 2.3968 us/op 2.2304 us/op 1.07
Tree 40 250000 toArray() 32.877 ms/op 27.580 ms/op 1.19
Tree 40 250000 iterate all - toArray() + loop 33.414 ms/op 27.140 ms/op 1.23
Tree 40 250000 iterate all - get(i) 112.16 ms/op 112.86 ms/op 0.99
MutableVector 250000 create 18.443 ms/op 13.472 ms/op 1.37
MutableVector 250000 get(125000) 13.108 ns/op 11.216 ns/op 1.17
MutableVector 250000 set(125000) 647.63 ns/op 568.98 ns/op 1.14
MutableVector 250000 toArray() 6.6613 ms/op 6.2055 ms/op 1.07
MutableVector 250000 iterate all - toArray() + loop 6.9496 ms/op 6.2866 ms/op 1.11
MutableVector 250000 iterate all - get(i) 3.4600 ms/op 2.6744 ms/op 1.29
Array 250000 create 6.3063 ms/op 6.3303 ms/op 1.00
Array 250000 clone - spread 2.6907 ms/op 3.2892 ms/op 0.82
Array 250000 get(125000) 1.1710 ns/op 1.5130 ns/op 0.77
Array 250000 set(125000) 1.1290 ns/op 1.5120 ns/op 0.75
Array 250000 iterate all - loop 167.74 us/op 153.41 us/op 1.09
effectiveBalanceIncrements clone Uint8Array 300000 88.169 us/op 230.02 us/op 0.38
effectiveBalanceIncrements clone MutableVector 300000 818.00 ns/op 716.00 ns/op 1.14
effectiveBalanceIncrements rw all Uint8Array 300000 252.72 us/op 247.54 us/op 1.02
effectiveBalanceIncrements rw all MutableVector 300000 208.22 ms/op 164.43 ms/op 1.27
phase0 afterProcessEpoch - 250000 vs - 7PWei 188.30 ms/op 190.77 ms/op 0.99
phase0 beforeProcessEpoch - 250000 vs - 7PWei 96.926 ms/op 61.743 ms/op 1.57
altair processEpoch - mainnet_e81889 515.00 ms/op 554.10 ms/op 0.93
mainnet_e81889 - altair beforeProcessEpoch 145.51 ms/op 117.62 ms/op 1.24
mainnet_e81889 - altair processJustificationAndFinalization 26.214 us/op 16.484 us/op 1.59
mainnet_e81889 - altair processInactivityUpdates 11.546 ms/op 9.0010 ms/op 1.28
mainnet_e81889 - altair processRewardsAndPenalties 93.374 ms/op 82.122 ms/op 1.14
mainnet_e81889 - altair processRegistryUpdates 3.5190 us/op 2.7320 us/op 1.29
mainnet_e81889 - altair processSlashings 1.0020 us/op 648.00 ns/op 1.55
mainnet_e81889 - altair processEth1DataReset 1.0070 us/op 648.00 ns/op 1.55
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.3688 ms/op 1.9243 ms/op 1.23
mainnet_e81889 - altair processSlashingsReset 7.4720 us/op 4.2860 us/op 1.74
mainnet_e81889 - altair processRandaoMixesReset 7.4240 us/op 4.2040 us/op 1.77
mainnet_e81889 - altair processHistoricalRootsUpdate 972.00 ns/op 662.00 ns/op 1.47
mainnet_e81889 - altair processParticipationFlagUpdates 4.0600 us/op 2.2060 us/op 1.84
mainnet_e81889 - altair processSyncCommitteeUpdates 902.00 ns/op 543.00 ns/op 1.66
mainnet_e81889 - altair afterProcessEpoch 195.81 ms/op 201.94 ms/op 0.97
phase0 processEpoch - mainnet_e58758 549.11 ms/op 491.00 ms/op 1.12
mainnet_e58758 - phase0 beforeProcessEpoch 256.81 ms/op 201.44 ms/op 1.27
mainnet_e58758 - phase0 processJustificationAndFinalization 28.712 us/op 16.137 us/op 1.78
mainnet_e58758 - phase0 processRewardsAndPenalties 141.66 ms/op 101.33 ms/op 1.40
mainnet_e58758 - phase0 processRegistryUpdates 11.663 us/op 7.9450 us/op 1.47
mainnet_e58758 - phase0 processSlashings 950.00 ns/op 608.00 ns/op 1.56
mainnet_e58758 - phase0 processEth1DataReset 972.00 ns/op 625.00 ns/op 1.56
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.1920 ms/op 1.7845 ms/op 1.23
mainnet_e58758 - phase0 processSlashingsReset 6.2420 us/op 3.6070 us/op 1.73
mainnet_e58758 - phase0 processRandaoMixesReset 7.9730 us/op 4.6780 us/op 1.70
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.2200 us/op 647.00 ns/op 1.89
mainnet_e58758 - phase0 processParticipationRecordUpdates 5.8610 us/op 3.7340 us/op 1.57
mainnet_e58758 - phase0 afterProcessEpoch 165.16 ms/op 165.38 ms/op 1.00
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.7915 ms/op 1.9594 ms/op 1.42
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 3.2537 ms/op 2.1813 ms/op 1.49
altair processInactivityUpdates - 250000 normalcase 42.530 ms/op 41.470 ms/op 1.03
altair processInactivityUpdates - 250000 worstcase 54.187 ms/op 34.320 ms/op 1.58
phase0 processRegistryUpdates - 250000 normalcase 9.7250 us/op 6.3810 us/op 1.52
phase0 processRegistryUpdates - 250000 badcase_full_deposits 494.43 us/op 367.95 us/op 1.34
phase0 processRegistryUpdates - 250000 worstcase 0.5 225.12 ms/op 179.16 ms/op 1.26
altair processRewardsAndPenalties - 250000 normalcase 131.08 ms/op 76.412 ms/op 1.72
altair processRewardsAndPenalties - 250000 worstcase 87.703 ms/op 109.06 ms/op 0.80
phase0 getAttestationDeltas - 250000 normalcase 12.956 ms/op 11.656 ms/op 1.11
phase0 getAttestationDeltas - 250000 worstcase 13.823 ms/op 12.019 ms/op 1.15
phase0 processSlashings - 250000 worstcase 5.7295 ms/op 5.5131 ms/op 1.04
altair processSyncCommitteeUpdates - 250000 277.73 ms/op 293.73 ms/op 0.95
BeaconState.hashTreeRoot - No change 453.00 ns/op 578.00 ns/op 0.78
BeaconState.hashTreeRoot - 1 full validator 65.501 us/op 71.384 us/op 0.92
BeaconState.hashTreeRoot - 32 full validator 597.11 us/op 717.09 us/op 0.83
BeaconState.hashTreeRoot - 512 full validator 7.6816 ms/op 6.9046 ms/op 1.11
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 75.816 us/op 91.245 us/op 0.83
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.1938 ms/op 1.2940 ms/op 0.92
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 15.552 ms/op 17.579 ms/op 0.88
BeaconState.hashTreeRoot - 1 balances 61.337 us/op 68.013 us/op 0.90
BeaconState.hashTreeRoot - 32 balances 571.63 us/op 636.52 us/op 0.90
BeaconState.hashTreeRoot - 512 balances 5.8633 ms/op 6.6181 ms/op 0.89
BeaconState.hashTreeRoot - 250000 balances 96.845 ms/op 98.986 ms/op 0.98
aggregationBits - 2048 els - zipIndexesInBitList 30.222 us/op 25.517 us/op 1.18
regular array get 100000 times 67.414 us/op 60.571 us/op 1.11
wrappedArray get 100000 times 67.354 us/op 61.058 us/op 1.10
arrayWithProxy get 100000 times 28.314 ms/op 27.841 ms/op 1.02
ssz.Root.equals 1.0740 us/op 499.00 ns/op 2.15
byteArrayEquals 1.0760 us/op 485.00 ns/op 2.22
shuffle list - 16384 els 11.282 ms/op 11.742 ms/op 0.96
shuffle list - 250000 els 166.05 ms/op 170.68 ms/op 0.97
processSlot - 1 slots 12.212 us/op 13.555 us/op 0.90
processSlot - 32 slots 1.7688 ms/op 2.0274 ms/op 0.87
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 345.13 us/op 513.98 us/op 0.67
getCommitteeAssignments - req 1 vs - 250000 vc 5.5829 ms/op 5.4290 ms/op 1.03
getCommitteeAssignments - req 100 vs - 250000 vc 7.5302 ms/op 8.0045 ms/op 0.94
getCommitteeAssignments - req 1000 vs - 250000 vc 8.1182 ms/op 8.6090 ms/op 0.94
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 9.5900 ns/op 7.7800 ns/op 1.23
state getBlockRootAtSlot - 250000 vs - 7PWei 1.2209 us/op 1.0150 us/op 1.20
computeProposers - vc 250000 16.518 ms/op 17.674 ms/op 0.93
computeEpochShuffling - vc 250000 172.24 ms/op 173.40 ms/op 0.99
getNextSyncCommittee - vc 250000 274.44 ms/op 293.15 ms/op 0.94

Please sign in to comment.