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

feat: warning log if primary beacon node is unhealthy #6921

Merged
merged 5 commits into from
Jul 5, 2024

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Jun 29, 2024

Motivation

Closes #6611

Description

Add warning log if primary beacon node is unhealthy

Related to #6415

@nflaig nflaig requested a review from a team as a code owner June 29, 2024 12:45
@@ -42,5 +42,6 @@ export function getClient(opts: HttpClientOptions, modules: ClientModules): ApiC
node: node.getClient(config, httpClient),
proof: proof.getClient(config, httpClient),
validator: validator.getClient(config, httpClient),
httpClient,
Copy link
Member Author

@nflaig nflaig Jun 29, 2024

Choose a reason for hiding this comment

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

Alternative to exposing the http client here would be to emit the warning inside the http client itself but that's not ideal either because a) it does not have any context to what it is connected meaning the log message would have to be more generic and b) it's does not have access to the clock, could emit the warning at an arbitrary interval but emitting on validator makes more sense to me.

@@ -134,6 +134,19 @@ export class Validator {
this.clock.start(this.controller.signal);
this.chainHeaderTracker.start(this.controller.signal);

// Add notifier to warn user if primary node is unhealthy as there might
Copy link
Member Author

Choose a reason for hiding this comment

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

Something to consider is a dedicated notifier as we have it in the beacon node, this would allow to emit further information every epoch / slot, for example the statuses of imported validators / active keys, etc.

Copy link
Member

Choose a reason for hiding this comment

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

That would be nice

Copy link
Contributor

github-actions bot commented Jun 29, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 2c32721 Previous: e6c559f Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 573.07 us/op 680.59 us/op 0.84
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 44.357 us/op 37.482 us/op 1.18
BLS verify - blst-native 1.1862 ms/op 1.0529 ms/op 1.13
BLS verifyMultipleSignatures 3 - blst-native 2.5168 ms/op 2.2441 ms/op 1.12
BLS verifyMultipleSignatures 8 - blst-native 5.5597 ms/op 4.9718 ms/op 1.12
BLS verifyMultipleSignatures 32 - blst-native 20.455 ms/op 18.278 ms/op 1.12
BLS verifyMultipleSignatures 64 - blst-native 40.269 ms/op 36.012 ms/op 1.12
BLS verifyMultipleSignatures 128 - blst-native 79.846 ms/op 71.514 ms/op 1.12
BLS deserializing 10000 signatures 835.51 ms/op 760.79 ms/op 1.10
BLS deserializing 100000 signatures 8.3680 s/op 7.5924 s/op 1.10
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.2065 ms/op 1.0994 ms/op 1.10
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.4441 ms/op 1.2495 ms/op 1.16
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.1842 ms/op 2.0526 ms/op 1.06
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.5702 ms/op 3.2425 ms/op 1.10
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.2988 ms/op 5.3955 ms/op 0.98
BLS aggregatePubkeys 32 - blst-native 24.126 us/op 22.102 us/op 1.09
BLS aggregatePubkeys 128 - blst-native 95.812 us/op 82.664 us/op 1.16
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 50.660 ms/op 57.600 ms/op 0.88
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 47.330 ms/op 41.358 ms/op 1.14
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 31.112 ms/op 28.982 ms/op 1.07
getSlashingsAndExits - default max 91.588 us/op 69.462 us/op 1.32
getSlashingsAndExits - 2k 249.48 us/op 229.50 us/op 1.09
proposeBlockBody type=full, size=empty 5.5686 ms/op 5.0027 ms/op 1.11
isKnown best case - 1 super set check 271.00 ns/op 225.00 ns/op 1.20
isKnown normal case - 2 super set checks 271.00 ns/op 221.00 ns/op 1.23
isKnown worse case - 16 super set checks 267.00 ns/op 223.00 ns/op 1.20
InMemoryCheckpointStateCache - add get delete 4.3830 us/op 3.6990 us/op 1.18
validate api signedAggregateAndProof - struct 2.5726 ms/op 2.2215 ms/op 1.16
validate gossip signedAggregateAndProof - struct 2.5941 ms/op 2.2253 ms/op 1.17
validate gossip attestation - vc 640000 1.2287 ms/op 1.0987 ms/op 1.12
batch validate gossip attestation - vc 640000 - chunk 32 143.27 us/op 126.21 us/op 1.14
batch validate gossip attestation - vc 640000 - chunk 64 126.63 us/op 114.32 us/op 1.11
batch validate gossip attestation - vc 640000 - chunk 128 117.58 us/op 105.64 us/op 1.11
batch validate gossip attestation - vc 640000 - chunk 256 112.78 us/op 104.59 us/op 1.08
pickEth1Vote - no votes 1.0059 ms/op 847.56 us/op 1.19
pickEth1Vote - max votes 7.9115 ms/op 7.2483 ms/op 1.09
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.153 ms/op 13.108 ms/op 1.08
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 19.462 ms/op 17.456 ms/op 1.11
pickEth1Vote - Eth1Data fastSerialize value x2048 453.22 us/op 330.40 us/op 1.37
pickEth1Vote - Eth1Data fastSerialize tree x2048 6.1283 ms/op 4.7988 ms/op 1.28
bytes32 toHexString 405.00 ns/op 353.00 ns/op 1.15
bytes32 Buffer.toString(hex) 230.00 ns/op 190.00 ns/op 1.21
bytes32 Buffer.toString(hex) from Uint8Array 332.00 ns/op 265.00 ns/op 1.25
bytes32 Buffer.toString(hex) + 0x 231.00 ns/op 187.00 ns/op 1.24
Object access 1 prop 0.12700 ns/op 0.11200 ns/op 1.13
Map access 1 prop 0.12100 ns/op 0.10700 ns/op 1.13
Object get x1000 5.7600 ns/op 5.1910 ns/op 1.11
Map get x1000 5.8770 ns/op 5.5090 ns/op 1.07
Object set x1000 30.169 ns/op 24.932 ns/op 1.21
Map set x1000 20.221 ns/op 18.212 ns/op 1.11
Return object 10000 times 0.27270 ns/op 0.27050 ns/op 1.01
Throw Error 10000 times 3.1778 us/op 2.5170 us/op 1.26
fastMsgIdFn sha256 / 200 bytes 2.0380 us/op 1.5780 us/op 1.29
fastMsgIdFn h32 xxhash / 200 bytes 210.00 ns/op 178.00 ns/op 1.18
fastMsgIdFn h64 xxhash / 200 bytes 244.00 ns/op 200.00 ns/op 1.22
fastMsgIdFn sha256 / 1000 bytes 6.8180 us/op 5.3350 us/op 1.28
fastMsgIdFn h32 xxhash / 1000 bytes 336.00 ns/op 295.00 ns/op 1.14
fastMsgIdFn h64 xxhash / 1000 bytes 312.00 ns/op 263.00 ns/op 1.19
fastMsgIdFn sha256 / 10000 bytes 59.925 us/op 46.294 us/op 1.29
fastMsgIdFn h32 xxhash / 10000 bytes 1.7060 us/op 1.5850 us/op 1.08
fastMsgIdFn h64 xxhash / 10000 bytes 1.1190 us/op 1.0220 us/op 1.09
send data - 1000 256B messages 11.349 ms/op 9.4890 ms/op 1.20
send data - 1000 512B messages 15.474 ms/op 12.867 ms/op 1.20
send data - 1000 1024B messages 26.053 ms/op 19.907 ms/op 1.31
send data - 1000 1200B messages 25.294 ms/op 21.536 ms/op 1.17
send data - 1000 2048B messages 30.911 ms/op 26.333 ms/op 1.17
send data - 1000 4096B messages 30.992 ms/op 24.722 ms/op 1.25
send data - 1000 16384B messages 67.575 ms/op 59.399 ms/op 1.14
send data - 1000 65536B messages 197.20 ms/op 184.61 ms/op 1.07
enrSubnets - fastDeserialize 64 bits 1.0190 us/op 808.00 ns/op 1.26
enrSubnets - ssz BitVector 64 bits 325.00 ns/op 266.00 ns/op 1.22
enrSubnets - fastDeserialize 4 bits 143.00 ns/op 121.00 ns/op 1.18
enrSubnets - ssz BitVector 4 bits 330.00 ns/op 263.00 ns/op 1.25
prioritizePeers score -10:0 att 32-0.1 sync 2-0 143.09 us/op 110.38 us/op 1.30
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 159.09 us/op 129.77 us/op 1.23
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 262.84 us/op 189.31 us/op 1.39
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 397.11 us/op 336.56 us/op 1.18
prioritizePeers score 0:0 att 64-1 sync 4-1 587.00 us/op 405.49 us/op 1.45
array of 16000 items push then shift 1.5838 us/op 1.1859 us/op 1.34
LinkedList of 16000 items push then shift 6.8950 ns/op 7.0350 ns/op 0.98
array of 16000 items push then pop 107.18 ns/op 77.215 ns/op 1.39
LinkedList of 16000 items push then pop 6.7900 ns/op 6.0860 ns/op 1.12
array of 24000 items push then shift 2.3195 us/op 1.7278 us/op 1.34
LinkedList of 24000 items push then shift 6.9190 ns/op 6.3580 ns/op 1.09
array of 24000 items push then pop 134.84 ns/op 98.779 ns/op 1.37
LinkedList of 24000 items push then pop 7.0130 ns/op 5.6940 ns/op 1.23
intersect bitArray bitLen 8 6.2040 ns/op 4.8560 ns/op 1.28
intersect array and set length 8 45.513 ns/op 34.627 ns/op 1.31
intersect bitArray bitLen 128 28.980 ns/op 24.696 ns/op 1.17
intersect array and set length 128 658.46 ns/op 528.50 ns/op 1.25
bitArray.getTrueBitIndexes() bitLen 128 1.7830 us/op 1.0660 us/op 1.67
bitArray.getTrueBitIndexes() bitLen 248 3.1620 us/op 1.8360 us/op 1.72
bitArray.getTrueBitIndexes() bitLen 512 5.9870 us/op 3.4220 us/op 1.75
Buffer.concat 32 items 915.00 ns/op 759.00 ns/op 1.21
Uint8Array.set 32 items 1.8150 us/op 1.5850 us/op 1.15
Buffer.copy 1.8630 us/op 2.0840 us/op 0.89
Uint8Array.set - with subarray 2.7220 us/op 2.8890 us/op 0.94
Uint8Array.set - without subarray 1.5170 us/op 1.8590 us/op 0.82
Set add up to 64 items then delete first 2.1743 us/op 1.7721 us/op 1.23
OrderedSet add up to 64 items then delete first 3.1575 us/op 2.7261 us/op 1.16
Set add up to 64 items then delete last 2.3786 us/op 2.0798 us/op 1.14
OrderedSet add up to 64 items then delete last 3.4630 us/op 2.9007 us/op 1.19
Set add up to 64 items then delete middle 2.3911 us/op 1.8476 us/op 1.29
OrderedSet add up to 64 items then delete middle 4.9408 us/op 4.1120 us/op 1.20
Set add up to 128 items then delete first 4.9383 us/op 3.9800 us/op 1.24
OrderedSet add up to 128 items then delete first 7.5761 us/op 6.1807 us/op 1.23
Set add up to 128 items then delete last 4.6949 us/op 3.8154 us/op 1.23
OrderedSet add up to 128 items then delete last 6.9940 us/op 5.7575 us/op 1.21
Set add up to 128 items then delete middle 4.6264 us/op 3.8230 us/op 1.21
OrderedSet add up to 128 items then delete middle 13.030 us/op 11.233 us/op 1.16
Set add up to 256 items then delete first 10.113 us/op 7.7339 us/op 1.31
OrderedSet add up to 256 items then delete first 15.415 us/op 12.154 us/op 1.27
Set add up to 256 items then delete last 9.3272 us/op 7.4695 us/op 1.25
OrderedSet add up to 256 items then delete last 14.089 us/op 11.429 us/op 1.23
Set add up to 256 items then delete middle 9.2394 us/op 7.4371 us/op 1.24
OrderedSet add up to 256 items then delete middle 39.141 us/op 33.522 us/op 1.17
transfer serialized Status (84 B) 1.3770 us/op 1.2560 us/op 1.10
copy serialized Status (84 B) 1.1040 us/op 974.00 ns/op 1.13
transfer serialized SignedVoluntaryExit (112 B) 1.5650 us/op 1.3000 us/op 1.20
copy serialized SignedVoluntaryExit (112 B) 1.2040 us/op 1.0520 us/op 1.14
transfer serialized ProposerSlashing (416 B) 2.3510 us/op 2.0170 us/op 1.17
copy serialized ProposerSlashing (416 B) 1.7040 us/op 2.1440 us/op 0.79
transfer serialized Attestation (485 B) 1.9570 us/op 1.9400 us/op 1.01
copy serialized Attestation (485 B) 1.7810 us/op 2.0850 us/op 0.85
transfer serialized AttesterSlashing (33232 B) 2.5930 us/op 1.9820 us/op 1.31
copy serialized AttesterSlashing (33232 B) 5.0880 us/op 5.6550 us/op 0.90
transfer serialized Small SignedBeaconBlock (128000 B) 2.9380 us/op 2.4230 us/op 1.21
copy serialized Small SignedBeaconBlock (128000 B) 14.927 us/op 12.111 us/op 1.23
transfer serialized Avg SignedBeaconBlock (200000 B) 3.2850 us/op 2.6970 us/op 1.22
copy serialized Avg SignedBeaconBlock (200000 B) 21.569 us/op 17.000 us/op 1.27
transfer serialized BlobsSidecar (524380 B) 2.6480 us/op 2.5320 us/op 1.05
copy serialized BlobsSidecar (524380 B) 85.005 us/op 109.53 us/op 0.78
transfer serialized Big SignedBeaconBlock (1000000 B) 2.8550 us/op 2.9630 us/op 0.96
copy serialized Big SignedBeaconBlock (1000000 B) 136.31 us/op 130.50 us/op 1.04
pass gossip attestations to forkchoice per slot 2.9196 ms/op 2.3925 ms/op 1.22
forkChoice updateHead vc 100000 bc 64 eq 0 521.09 us/op 374.43 us/op 1.39
forkChoice updateHead vc 600000 bc 64 eq 0 3.0808 ms/op 2.5107 ms/op 1.23
forkChoice updateHead vc 1000000 bc 64 eq 0 5.0625 ms/op 4.5978 ms/op 1.10
forkChoice updateHead vc 600000 bc 320 eq 0 2.8680 ms/op 2.5358 ms/op 1.13
forkChoice updateHead vc 600000 bc 1200 eq 0 2.9586 ms/op 2.5371 ms/op 1.17
forkChoice updateHead vc 600000 bc 7200 eq 0 4.1819 ms/op 2.7924 ms/op 1.50
forkChoice updateHead vc 600000 bc 64 eq 1000 10.711 ms/op 9.4519 ms/op 1.13
forkChoice updateHead vc 600000 bc 64 eq 10000 10.682 ms/op 9.3944 ms/op 1.14
forkChoice updateHead vc 600000 bc 64 eq 300000 14.251 ms/op 10.875 ms/op 1.31
computeDeltas 500000 validators 300 proto nodes 3.4335 ms/op 3.0213 ms/op 1.14
computeDeltas 500000 validators 1200 proto nodes 3.4601 ms/op 3.1402 ms/op 1.10
computeDeltas 500000 validators 7200 proto nodes 3.4375 ms/op 3.0369 ms/op 1.13
computeDeltas 750000 validators 300 proto nodes 5.1220 ms/op 4.4145 ms/op 1.16
computeDeltas 750000 validators 1200 proto nodes 5.0223 ms/op 4.4399 ms/op 1.13
computeDeltas 750000 validators 7200 proto nodes 5.0735 ms/op 4.3963 ms/op 1.15
computeDeltas 1400000 validators 300 proto nodes 9.4531 ms/op 8.2329 ms/op 1.15
computeDeltas 1400000 validators 1200 proto nodes 9.3499 ms/op 8.2271 ms/op 1.14
computeDeltas 1400000 validators 7200 proto nodes 9.5022 ms/op 8.2651 ms/op 1.15
computeDeltas 2100000 validators 300 proto nodes 14.181 ms/op 11.962 ms/op 1.19
computeDeltas 2100000 validators 1200 proto nodes 14.168 ms/op 12.354 ms/op 1.15
computeDeltas 2100000 validators 7200 proto nodes 14.279 ms/op 12.111 ms/op 1.18
altair processAttestation - 250000 vs - 7PWei normalcase 1.6714 ms/op 1.3274 ms/op 1.26
altair processAttestation - 250000 vs - 7PWei worstcase 2.3557 ms/op 2.0343 ms/op 1.16
altair processAttestation - setStatus - 1/6 committees join 84.501 us/op 68.473 us/op 1.23
altair processAttestation - setStatus - 1/3 committees join 170.20 us/op 131.70 us/op 1.29
altair processAttestation - setStatus - 1/2 committees join 239.20 us/op 183.78 us/op 1.30
altair processAttestation - setStatus - 2/3 committees join 313.26 us/op 262.07 us/op 1.20
altair processAttestation - setStatus - 4/5 committees join 454.08 us/op 377.46 us/op 1.20
altair processAttestation - setStatus - 100% committees join 538.87 us/op 456.20 us/op 1.18
altair processBlock - 250000 vs - 7PWei normalcase 4.0353 ms/op 3.4702 ms/op 1.16
altair processBlock - 250000 vs - 7PWei normalcase hashState 29.047 ms/op 24.516 ms/op 1.18
altair processBlock - 250000 vs - 7PWei worstcase 39.671 ms/op 39.116 ms/op 1.01
altair processBlock - 250000 vs - 7PWei worstcase hashState 78.637 ms/op 76.947 ms/op 1.02
phase0 processBlock - 250000 vs - 7PWei normalcase 1.5465 ms/op 2.1728 ms/op 0.71
phase0 processBlock - 250000 vs - 7PWei worstcase 25.216 ms/op 22.028 ms/op 1.14
altair processEth1Data - 250000 vs - 7PWei normalcase 294.58 us/op 237.11 us/op 1.24
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 4.7790 us/op 4.1210 us/op 1.16
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 18.087 us/op 17.538 us/op 1.03
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 7.0420 us/op 6.3970 us/op 1.10
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 5.0570 us/op 4.5490 us/op 1.11
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 68.034 us/op 69.570 us/op 0.98
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 643.95 us/op 490.12 us/op 1.31
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 938.58 us/op 1.0416 ms/op 0.90
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 887.15 us/op 1.1104 ms/op 0.80
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.4198 ms/op 1.8457 ms/op 1.31
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.5628 ms/op 1.1820 ms/op 1.32
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.6252 ms/op 2.9122 ms/op 1.24
Tree 40 250000 create 207.38 ms/op 174.28 ms/op 1.19
Tree 40 250000 get(125000) 139.93 ns/op 103.06 ns/op 1.36
Tree 40 250000 set(125000) 630.98 ns/op 482.01 ns/op 1.31
Tree 40 250000 toArray() 15.096 ms/op 11.896 ms/op 1.27
Tree 40 250000 iterate all - toArray() + loop 14.957 ms/op 11.851 ms/op 1.26
Tree 40 250000 iterate all - get(i) 50.017 ms/op 39.135 ms/op 1.28
MutableVector 250000 create 7.1144 ms/op 12.563 ms/op 0.57
MutableVector 250000 get(125000) 10.229 ns/op 5.6030 ns/op 1.83
MutableVector 250000 set(125000) 210.13 ns/op 161.61 ns/op 1.30
MutableVector 250000 toArray() 3.4101 ms/op 2.5575 ms/op 1.33
MutableVector 250000 iterate all - toArray() + loop 3.6157 ms/op 2.6683 ms/op 1.36
MutableVector 250000 iterate all - get(i) 1.5264 ms/op 1.4069 ms/op 1.08
Array 250000 create 3.0012 ms/op 2.2465 ms/op 1.34
Array 250000 clone - spread 1.6184 ms/op 1.1641 ms/op 1.39
Array 250000 get(125000) 0.39900 ns/op 0.35600 ns/op 1.12
Array 250000 set(125000) 0.42600 ns/op 0.36600 ns/op 1.16
Array 250000 iterate all - loop 103.87 us/op 74.972 us/op 1.39
effectiveBalanceIncrements clone Uint8Array 300000 33.513 us/op 12.708 us/op 2.64
effectiveBalanceIncrements clone MutableVector 300000 117.00 ns/op 101.00 ns/op 1.16
effectiveBalanceIncrements rw all Uint8Array 300000 201.44 us/op 162.95 us/op 1.24
effectiveBalanceIncrements rw all MutableVector 300000 66.263 ms/op 52.654 ms/op 1.26
phase0 afterProcessEpoch - 250000 vs - 7PWei 86.121 ms/op 77.154 ms/op 1.12
phase0 beforeProcessEpoch - 250000 vs - 7PWei 41.337 ms/op 36.117 ms/op 1.14
altair processEpoch - mainnet_e81889 371.61 ms/op 347.15 ms/op 1.07
mainnet_e81889 - altair beforeProcessEpoch 60.729 ms/op 43.367 ms/op 1.40
mainnet_e81889 - altair processJustificationAndFinalization 12.208 us/op 9.2700 us/op 1.32
mainnet_e81889 - altair processInactivityUpdates 5.9272 ms/op 5.2472 ms/op 1.13
mainnet_e81889 - altair processRewardsAndPenalties 43.620 ms/op 49.556 ms/op 0.88
mainnet_e81889 - altair processRegistryUpdates 1.7250 us/op 1.5830 us/op 1.09
mainnet_e81889 - altair processSlashings 355.00 ns/op 348.00 ns/op 1.02
mainnet_e81889 - altair processEth1DataReset 285.00 ns/op 267.00 ns/op 1.07
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.0512 ms/op 1.1248 ms/op 0.93
mainnet_e81889 - altair processSlashingsReset 2.9490 us/op 2.3290 us/op 1.27
mainnet_e81889 - altair processRandaoMixesReset 4.4960 us/op 2.9780 us/op 1.51
mainnet_e81889 - altair processHistoricalRootsUpdate 528.00 ns/op 365.00 ns/op 1.45
mainnet_e81889 - altair processParticipationFlagUpdates 1.8290 us/op 1.2480 us/op 1.47
mainnet_e81889 - altair processSyncCommitteeUpdates 496.00 ns/op 297.00 ns/op 1.67
mainnet_e81889 - altair afterProcessEpoch 90.450 ms/op 80.556 ms/op 1.12
capella processEpoch - mainnet_e217614 1.2551 s/op 1.1798 s/op 1.06
mainnet_e217614 - capella beforeProcessEpoch 230.53 ms/op 217.77 ms/op 1.06
mainnet_e217614 - capella processJustificationAndFinalization 12.946 us/op 9.7180 us/op 1.33
mainnet_e217614 - capella processInactivityUpdates 17.085 ms/op 14.896 ms/op 1.15
mainnet_e217614 - capella processRewardsAndPenalties 232.90 ms/op 251.56 ms/op 0.93
mainnet_e217614 - capella processRegistryUpdates 12.557 us/op 10.264 us/op 1.22
mainnet_e217614 - capella processSlashings 403.00 ns/op 313.00 ns/op 1.29
mainnet_e217614 - capella processEth1DataReset 345.00 ns/op 240.00 ns/op 1.44
mainnet_e217614 - capella processEffectiveBalanceUpdates 9.9062 ms/op 3.8012 ms/op 2.61
mainnet_e217614 - capella processSlashingsReset 3.8300 us/op 1.5520 us/op 2.47
mainnet_e217614 - capella processRandaoMixesReset 3.6540 us/op 2.3650 us/op 1.55
mainnet_e217614 - capella processHistoricalRootsUpdate 342.00 ns/op 265.00 ns/op 1.29
mainnet_e217614 - capella processParticipationFlagUpdates 1.6900 us/op 1.1070 us/op 1.53
mainnet_e217614 - capella afterProcessEpoch 255.83 ms/op 228.63 ms/op 1.12
phase0 processEpoch - mainnet_e58758 353.87 ms/op 354.81 ms/op 1.00
mainnet_e58758 - phase0 beforeProcessEpoch 98.988 ms/op 98.406 ms/op 1.01
mainnet_e58758 - phase0 processJustificationAndFinalization 13.958 us/op 9.4680 us/op 1.47
mainnet_e58758 - phase0 processRewardsAndPenalties 25.714 ms/op 32.832 ms/op 0.78
mainnet_e58758 - phase0 processRegistryUpdates 7.2860 us/op 5.6420 us/op 1.29
mainnet_e58758 - phase0 processSlashings 411.00 ns/op 288.00 ns/op 1.43
mainnet_e58758 - phase0 processEth1DataReset 288.00 ns/op 300.00 ns/op 0.96
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 956.21 us/op 723.34 us/op 1.32
mainnet_e58758 - phase0 processSlashingsReset 3.2120 us/op 1.4860 us/op 2.16
mainnet_e58758 - phase0 processRandaoMixesReset 3.7440 us/op 2.2010 us/op 1.70
mainnet_e58758 - phase0 processHistoricalRootsUpdate 496.00 ns/op 274.00 ns/op 1.81
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.5410 us/op 3.4700 us/op 1.02
mainnet_e58758 - phase0 afterProcessEpoch 74.193 ms/op 63.283 ms/op 1.17
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.0916 ms/op 755.84 us/op 1.44
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.9969 ms/op 1.4120 ms/op 1.41
altair processInactivityUpdates - 250000 normalcase 16.728 ms/op 16.188 ms/op 1.03
altair processInactivityUpdates - 250000 worstcase 16.220 ms/op 16.084 ms/op 1.01
phase0 processRegistryUpdates - 250000 normalcase 6.7020 us/op 4.2810 us/op 1.57
phase0 processRegistryUpdates - 250000 badcase_full_deposits 231.17 us/op 302.09 us/op 0.77
phase0 processRegistryUpdates - 250000 worstcase 0.5 112.23 ms/op 107.69 ms/op 1.04
altair processRewardsAndPenalties - 250000 normalcase 42.065 ms/op 39.511 ms/op 1.06
altair processRewardsAndPenalties - 250000 worstcase 40.064 ms/op 39.312 ms/op 1.02
phase0 getAttestationDeltas - 250000 normalcase 6.7683 ms/op 5.6705 ms/op 1.19
phase0 getAttestationDeltas - 250000 worstcase 7.0379 ms/op 5.9105 ms/op 1.19
phase0 processSlashings - 250000 worstcase 73.925 us/op 48.773 us/op 1.52
altair processSyncCommitteeUpdates - 250000 118.98 ms/op 107.30 ms/op 1.11
BeaconState.hashTreeRoot - No change 218.00 ns/op 217.00 ns/op 1.00
BeaconState.hashTreeRoot - 1 full validator 114.08 us/op 115.84 us/op 0.98
BeaconState.hashTreeRoot - 32 full validator 1.1806 ms/op 1.3593 ms/op 0.87
BeaconState.hashTreeRoot - 512 full validator 12.688 ms/op 13.302 ms/op 0.95
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 144.56 us/op 128.00 us/op 1.13
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.7266 ms/op 1.6546 ms/op 1.04
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 25.144 ms/op 20.866 ms/op 1.21
BeaconState.hashTreeRoot - 1 balances 99.323 us/op 122.88 us/op 0.81
BeaconState.hashTreeRoot - 32 balances 1.1647 ms/op 784.34 us/op 1.48
BeaconState.hashTreeRoot - 512 balances 8.8222 ms/op 11.739 ms/op 0.75
BeaconState.hashTreeRoot - 250000 balances 175.74 ms/op 164.03 ms/op 1.07
aggregationBits - 2048 els - zipIndexesInBitList 22.715 us/op 18.713 us/op 1.21
byteArrayEquals 32 52.251 ns/op 46.390 ns/op 1.13
Buffer.compare 32 16.608 ns/op 16.062 ns/op 1.03
byteArrayEquals 1024 1.5444 us/op 1.2397 us/op 1.25
Buffer.compare 1024 23.892 ns/op 22.594 ns/op 1.06
byteArrayEquals 16384 24.583 us/op 19.672 us/op 1.25
Buffer.compare 16384 197.42 ns/op 175.26 ns/op 1.13
byteArrayEquals 123687377 185.74 ms/op 146.38 ms/op 1.27
Buffer.compare 123687377 6.0281 ms/op 3.6191 ms/op 1.67
byteArrayEquals 32 - diff last byte 51.284 ns/op 45.481 ns/op 1.13
Buffer.compare 32 - diff last byte 16.620 ns/op 15.718 ns/op 1.06
byteArrayEquals 1024 - diff last byte 1.5469 us/op 1.2204 us/op 1.27
Buffer.compare 1024 - diff last byte 24.284 ns/op 22.587 ns/op 1.08
byteArrayEquals 16384 - diff last byte 24.628 us/op 19.385 us/op 1.27
Buffer.compare 16384 - diff last byte 215.63 ns/op 168.99 ns/op 1.28
byteArrayEquals 123687377 - diff last byte 186.55 ms/op 145.72 ms/op 1.28
Buffer.compare 123687377 - diff last byte 6.0821 ms/op 5.2654 ms/op 1.16
byteArrayEquals 32 - random bytes 4.8940 ns/op 4.2380 ns/op 1.15
Buffer.compare 32 - random bytes 16.291 ns/op 14.002 ns/op 1.16
byteArrayEquals 1024 - random bytes 4.8830 ns/op 4.2100 ns/op 1.16
Buffer.compare 1024 - random bytes 16.318 ns/op 13.798 ns/op 1.18
byteArrayEquals 16384 - random bytes 5.1840 ns/op 4.2030 ns/op 1.23
Buffer.compare 16384 - random bytes 16.284 ns/op 13.767 ns/op 1.18
byteArrayEquals 123687377 - random bytes 6.0900 ns/op 5.4700 ns/op 1.11
Buffer.compare 123687377 - random bytes 17.500 ns/op 14.670 ns/op 1.19
regular array get 100000 times 31.517 us/op 27.323 us/op 1.15
wrappedArray get 100000 times 31.283 us/op 27.097 us/op 1.15
arrayWithProxy get 100000 times 12.228 ms/op 8.2046 ms/op 1.49
ssz.Root.equals 43.604 ns/op 39.494 ns/op 1.10
byteArrayEquals 42.923 ns/op 39.174 ns/op 1.10
Buffer.compare 9.8210 ns/op 8.0020 ns/op 1.23
shuffle list - 16384 els 6.1230 ms/op 5.0002 ms/op 1.22
shuffle list - 250000 els 89.546 ms/op 72.911 ms/op 1.23
processSlot - 1 slots 12.897 us/op 10.110 us/op 1.28
processSlot - 32 slots 3.4104 ms/op 2.8659 ms/op 1.19
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 36.925 ms/op 42.280 ms/op 0.87
getCommitteeAssignments - req 1 vs - 250000 vc 2.1165 ms/op 1.7798 ms/op 1.19
getCommitteeAssignments - req 100 vs - 250000 vc 4.0561 ms/op 3.4565 ms/op 1.17
getCommitteeAssignments - req 1000 vs - 250000 vc 4.3354 ms/op 3.6917 ms/op 1.17
findModifiedValidators - 10000 modified validators 243.83 ms/op 228.07 ms/op 1.07
findModifiedValidators - 1000 modified validators 180.34 ms/op 161.64 ms/op 1.12
findModifiedValidators - 100 modified validators 177.97 ms/op 157.34 ms/op 1.13
findModifiedValidators - 10 modified validators 204.50 ms/op 140.47 ms/op 1.46
findModifiedValidators - 1 modified validators 160.92 ms/op 136.59 ms/op 1.18
findModifiedValidators - no difference 163.06 ms/op 148.61 ms/op 1.10
compare ViewDUs 2.7631 s/op 2.8320 s/op 0.98
compare each validator Uint8Array 1.2898 s/op 1.5759 s/op 0.82
compare ViewDU to Uint8Array 983.54 ms/op 669.58 ms/op 1.47
migrate state 1000000 validators, 24 modified, 0 new 548.53 ms/op 569.76 ms/op 0.96
migrate state 1000000 validators, 1700 modified, 1000 new 803.36 ms/op 795.04 ms/op 1.01
migrate state 1000000 validators, 3400 modified, 2000 new 1.0036 s/op 990.87 ms/op 1.01
migrate state 1500000 validators, 24 modified, 0 new 551.88 ms/op 563.49 ms/op 0.98
migrate state 1500000 validators, 1700 modified, 1000 new 794.09 ms/op 742.10 ms/op 1.07
migrate state 1500000 validators, 3400 modified, 2000 new 1.0011 s/op 981.87 ms/op 1.02
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.2400 ns/op 3.7200 ns/op 1.14
state getBlockRootAtSlot - 250000 vs - 7PWei 737.83 ns/op 517.87 ns/op 1.42
computeProposers - vc 250000 7.0702 ms/op 6.3329 ms/op 1.12
computeEpochShuffling - vc 250000 88.982 ms/op 80.882 ms/op 1.10
getNextSyncCommittee - vc 250000 119.32 ms/op 94.895 ms/op 1.26
computeSigningRoot for AttestationData 25.721 us/op 17.136 us/op 1.50
hash AttestationData serialized data then Buffer.toString(base64) 1.4707 us/op 1.1619 us/op 1.27
toHexString serialized data 843.52 ns/op 756.74 ns/op 1.11
Buffer.toString(base64) 179.39 ns/op 139.31 ns/op 1.29

by benchmarkbot/action

Copy link

codecov bot commented Jun 29, 2024

Codecov Report

Attention: Patch coverage is 20.00000% with 16 lines in your changes missing coverage. Please review.

Project coverage is 62.50%. Comparing base (f69bc11) to head (b42eb4e).
Report is 2 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #6921      +/-   ##
============================================
- Coverage     62.52%   62.50%   -0.02%     
============================================
  Files           575      575              
  Lines         60985    61002      +17     
  Branches       2118     2127       +9     
============================================
+ Hits          38128    38131       +3     
- Misses        22818    22832      +14     
  Partials         39       39              

@nflaig nflaig marked this pull request as draft June 29, 2024 14:07
@nflaig nflaig marked this pull request as ready for review June 29, 2024 14:19
@nflaig nflaig changed the title feat: add warning log if primary beacon node is unhealthy feat: warning log if primary beacon node is unhealthy Jun 29, 2024
@wemeetagain wemeetagain merged commit 1aba391 into unstable Jul 5, 2024
20 checks passed
@wemeetagain wemeetagain deleted the nflaig/warn-primary-unhealthy branch July 5, 2024 14:38
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.20.0 🎉

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

Successfully merging this pull request may close these issues.

Add warning log to validator client if primary node is unhealthy
2 participants