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: implement consensus broadcastValidation and set it to default #6149

Merged
merged 9 commits into from
Dec 1, 2023

Conversation

g11tech
Copy link
Contributor

@g11tech g11tech commented Dec 1, 2023

as a safety precaution for not broadcasting a invalid block ( see #6131), broadcastValidation consensus is imlemented and applied by default now.

In happy case of block produced by engine/builder via the beacon node, no extra work would be done while publishing as the root lookup is used to fast verify consensus validations. In case where the local root loookup fails validations are applied and will not let the invalid block to be broadcasted for e.g. because of the bug #6131 is trying to resolve.

Tested it locally as well for happy path on local by making consensus validations to always run

@g11tech g11tech requested a review from a team as a code owner December 1, 2023 15:35
Copy link
Contributor

github-actions bot commented Dec 1, 2023

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: ed8f6d0 Previous: 99a0caf Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 638.60 us/op 1.0625 ms/op 0.60
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 86.206 us/op 126.22 us/op 0.68
BLS verify - blst-native 1.2727 ms/op 1.3553 ms/op 0.94
BLS verifyMultipleSignatures 3 - blst-native 2.6672 ms/op 2.9348 ms/op 0.91
BLS verifyMultipleSignatures 8 - blst-native 5.8690 ms/op 6.3253 ms/op 0.93
BLS verifyMultipleSignatures 32 - blst-native 21.441 ms/op 23.908 ms/op 0.90
BLS verifyMultipleSignatures 64 - blst-native 42.236 ms/op 45.348 ms/op 0.93
BLS verifyMultipleSignatures 128 - blst-native 84.277 ms/op 92.458 ms/op 0.91
BLS deserializing 10000 signatures 885.42 ms/op 927.81 ms/op 0.95
BLS deserializing 100000 signatures 8.9539 s/op 9.1340 s/op 0.98
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.3396 ms/op 1.3604 ms/op 0.98
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.5570 ms/op 1.5869 ms/op 0.98
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.3224 ms/op 2.4464 ms/op 0.95
BLS verifyMultipleSignatures - same message - 64 - blst-native 4.3522 ms/op 3.6688 ms/op 1.19
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.5840 ms/op 5.9951 ms/op 0.93
BLS aggregatePubkeys 32 - blst-native 25.550 us/op 27.795 us/op 0.92
BLS aggregatePubkeys 128 - blst-native 101.05 us/op 108.12 us/op 0.93
getAttestationsForBlock 43.272 ms/op 42.945 ms/op 1.01
isKnown best case - 1 super set check 316.00 ns/op 564.00 ns/op 0.56
isKnown normal case - 2 super set checks 298.00 ns/op 660.00 ns/op 0.45
isKnown worse case - 16 super set checks 300.00 ns/op 716.00 ns/op 0.42
CheckpointStateCache - add get delete 5.4110 us/op 7.5350 us/op 0.72
validate api signedAggregateAndProof - struct 2.8258 ms/op 3.0819 ms/op 0.92
validate gossip signedAggregateAndProof - struct 2.8242 ms/op 3.0606 ms/op 0.92
validate gossip attestation - vc 640000 1.3878 ms/op 1.4738 ms/op 0.94
batch validate gossip attestation - vc 640000 - chunk 32 172.06 us/op 177.78 us/op 0.97
batch validate gossip attestation - vc 640000 - chunk 64 148.14 us/op 155.50 us/op 0.95
batch validate gossip attestation - vc 640000 - chunk 128 147.97 us/op 139.65 us/op 1.06
batch validate gossip attestation - vc 640000 - chunk 256 137.98 us/op 139.30 us/op 0.99
pickEth1Vote - no votes 1.2862 ms/op 1.3385 ms/op 0.96
pickEth1Vote - max votes 9.6865 ms/op 8.5676 ms/op 1.13
pickEth1Vote - Eth1Data hashTreeRoot value x2048 16.857 ms/op 15.516 ms/op 1.09
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 31.742 ms/op 21.909 ms/op 1.45
pickEth1Vote - Eth1Data fastSerialize value x2048 616.43 us/op 654.77 us/op 0.94
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.0711 ms/op 7.3007 ms/op 0.69
bytes32 toHexString 500.00 ns/op 682.00 ns/op 0.73
bytes32 Buffer.toString(hex) 291.00 ns/op 311.00 ns/op 0.94
bytes32 Buffer.toString(hex) from Uint8Array 431.00 ns/op 512.00 ns/op 0.84
bytes32 Buffer.toString(hex) + 0x 291.00 ns/op 323.00 ns/op 0.90
Object access 1 prop 0.16500 ns/op 0.20000 ns/op 0.82
Map access 1 prop 0.14900 ns/op 0.15900 ns/op 0.94
Object get x1000 7.1400 ns/op 7.5070 ns/op 0.95
Map get x1000 0.74700 ns/op 0.83200 ns/op 0.90
Object set x1000 51.533 ns/op 57.879 ns/op 0.89
Map set x1000 39.230 ns/op 45.135 ns/op 0.87
Return object 10000 times 0.23410 ns/op 0.24980 ns/op 0.94
Throw Error 10000 times 3.8222 us/op 3.9663 us/op 0.96
fastMsgIdFn sha256 / 200 bytes 3.2680 us/op 3.3920 us/op 0.96
fastMsgIdFn h32 xxhash / 200 bytes 285.00 ns/op 314.00 ns/op 0.91
fastMsgIdFn h64 xxhash / 200 bytes 341.00 ns/op 342.00 ns/op 1.00
fastMsgIdFn sha256 / 1000 bytes 11.288 us/op 11.512 us/op 0.98
fastMsgIdFn h32 xxhash / 1000 bytes 410.00 ns/op 462.00 ns/op 0.89
fastMsgIdFn h64 xxhash / 1000 bytes 414.00 ns/op 431.00 ns/op 0.96
fastMsgIdFn sha256 / 10000 bytes 102.29 us/op 105.45 us/op 0.97
fastMsgIdFn h32 xxhash / 10000 bytes 1.9360 us/op 1.9740 us/op 0.98
fastMsgIdFn h64 xxhash / 10000 bytes 1.3380 us/op 1.3400 us/op 1.00
send data - 1000 256B messages 18.157 ms/op 21.049 ms/op 0.86
send data - 1000 512B messages 24.530 ms/op 29.814 ms/op 0.82
send data - 1000 1024B messages 40.497 ms/op 44.670 ms/op 0.91
send data - 1000 1200B messages 36.146 ms/op 38.853 ms/op 0.93
send data - 1000 2048B messages 39.945 ms/op 41.647 ms/op 0.96
send data - 1000 4096B messages 38.777 ms/op 41.846 ms/op 0.93
send data - 1000 16384B messages 106.00 ms/op 113.85 ms/op 0.93
send data - 1000 65536B messages 395.97 ms/op 415.67 ms/op 0.95
enrSubnets - fastDeserialize 64 bits 1.1760 us/op 1.2030 us/op 0.98
enrSubnets - ssz BitVector 64 bits 406.00 ns/op 405.00 ns/op 1.00
enrSubnets - fastDeserialize 4 bits 161.00 ns/op 159.00 ns/op 1.01
enrSubnets - ssz BitVector 4 bits 403.00 ns/op 416.00 ns/op 0.97
prioritizePeers score -10:0 att 32-0.1 sync 2-0 102.14 us/op 106.15 us/op 0.96
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 129.96 us/op 129.38 us/op 1.00
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 166.62 us/op 159.56 us/op 1.04
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 293.41 us/op 284.27 us/op 1.03
prioritizePeers score 0:0 att 64-1 sync 4-1 343.99 us/op 340.29 us/op 1.01
array of 16000 items push then shift 1.6452 us/op 1.5472 us/op 1.06
LinkedList of 16000 items push then shift 9.0390 ns/op 8.9340 ns/op 1.01
array of 16000 items push then pop 94.259 ns/op 102.75 ns/op 0.92
LinkedList of 16000 items push then pop 8.5600 ns/op 8.8750 ns/op 0.96
array of 24000 items push then shift 2.3756 us/op 2.4315 us/op 0.98
LinkedList of 24000 items push then shift 8.6070 ns/op 8.9770 ns/op 0.96
array of 24000 items push then pop 90.131 ns/op 111.53 ns/op 0.81
LinkedList of 24000 items push then pop 8.3530 ns/op 8.7180 ns/op 0.96
intersect bitArray bitLen 8 6.1820 ns/op 6.4390 ns/op 0.96
intersect array and set length 8 64.998 ns/op 62.191 ns/op 1.05
intersect bitArray bitLen 128 32.775 ns/op 33.985 ns/op 0.96
intersect array and set length 128 842.17 ns/op 851.24 ns/op 0.99
bitArray.getTrueBitIndexes() bitLen 128 1.4910 us/op 1.4380 us/op 1.04
bitArray.getTrueBitIndexes() bitLen 248 2.5240 us/op 2.3660 us/op 1.07
bitArray.getTrueBitIndexes() bitLen 512 4.7850 us/op 4.6510 us/op 1.03
Buffer.concat 32 items 977.00 ns/op 919.00 ns/op 1.06
Uint8Array.set 32 items 1.7940 us/op 1.9080 us/op 0.94
Set add up to 64 items then delete first 4.2683 us/op 4.2773 us/op 1.00
OrderedSet add up to 64 items then delete first 5.3410 us/op 5.3572 us/op 1.00
Set add up to 64 items then delete last 4.5691 us/op 4.6684 us/op 0.98
OrderedSet add up to 64 items then delete last 5.7465 us/op 5.9957 us/op 0.96
Set add up to 64 items then delete middle 4.6078 us/op 4.7084 us/op 0.98
OrderedSet add up to 64 items then delete middle 7.0251 us/op 7.2308 us/op 0.97
Set add up to 128 items then delete first 8.9183 us/op 9.1826 us/op 0.97
OrderedSet add up to 128 items then delete first 12.039 us/op 11.687 us/op 1.03
Set add up to 128 items then delete last 8.9858 us/op 9.6229 us/op 0.93
OrderedSet add up to 128 items then delete last 11.412 us/op 12.165 us/op 0.94
Set add up to 128 items then delete middle 9.0223 us/op 9.1097 us/op 0.99
OrderedSet add up to 128 items then delete middle 16.716 us/op 17.380 us/op 0.96
Set add up to 256 items then delete first 18.472 us/op 18.374 us/op 1.01
OrderedSet add up to 256 items then delete first 24.603 us/op 24.014 us/op 1.02
Set add up to 256 items then delete last 17.950 us/op 18.217 us/op 0.99
OrderedSet add up to 256 items then delete last 22.971 us/op 25.958 us/op 0.88
Set add up to 256 items then delete middle 18.120 us/op 18.540 us/op 0.98
OrderedSet add up to 256 items then delete middle 44.323 us/op 45.616 us/op 0.97
transfer serialized Status (84 B) 1.8440 us/op 1.7370 us/op 1.06
copy serialized Status (84 B) 1.5750 us/op 1.4560 us/op 1.08
transfer serialized SignedVoluntaryExit (112 B) 2.0420 us/op 1.8840 us/op 1.08
copy serialized SignedVoluntaryExit (112 B) 1.7080 us/op 1.5080 us/op 1.13
transfer serialized ProposerSlashing (416 B) 3.0750 us/op 2.1970 us/op 1.40
copy serialized ProposerSlashing (416 B) 2.9580 us/op 2.0130 us/op 1.47
transfer serialized Attestation (485 B) 3.1920 us/op 2.1630 us/op 1.48
copy serialized Attestation (485 B) 2.9840 us/op 2.0310 us/op 1.47
transfer serialized AttesterSlashing (33232 B) 2.9270 us/op 2.3010 us/op 1.27
copy serialized AttesterSlashing (33232 B) 6.5450 us/op 5.0240 us/op 1.30
transfer serialized Small SignedBeaconBlock (128000 B) 3.0210 us/op 2.6200 us/op 1.15
copy serialized Small SignedBeaconBlock (128000 B) 14.558 us/op 12.929 us/op 1.13
transfer serialized Avg SignedBeaconBlock (200000 B) 3.3850 us/op 3.3000 us/op 1.03
copy serialized Avg SignedBeaconBlock (200000 B) 21.503 us/op 21.527 us/op 1.00
transfer serialized BlobsSidecar (524380 B) 3.2640 us/op 3.4740 us/op 0.94
copy serialized BlobsSidecar (524380 B) 81.997 us/op 74.960 us/op 1.09
transfer serialized Big SignedBeaconBlock (1000000 B) 3.3010 us/op 3.9790 us/op 0.83
copy serialized Big SignedBeaconBlock (1000000 B) 193.20 us/op 166.81 us/op 1.16
pass gossip attestations to forkchoice per slot 3.7065 ms/op 4.1679 ms/op 0.89
forkChoice updateHead vc 100000 bc 64 eq 0 663.27 us/op 754.27 us/op 0.88
forkChoice updateHead vc 600000 bc 64 eq 0 4.7814 ms/op 4.7230 ms/op 1.01
forkChoice updateHead vc 1000000 bc 64 eq 0 6.9619 ms/op 7.0383 ms/op 0.99
forkChoice updateHead vc 600000 bc 320 eq 0 4.1484 ms/op 4.2515 ms/op 0.98
forkChoice updateHead vc 600000 bc 1200 eq 0 4.2524 ms/op 4.3290 ms/op 0.98
forkChoice updateHead vc 600000 bc 7200 eq 0 5.1164 ms/op 5.3296 ms/op 0.96
forkChoice updateHead vc 600000 bc 64 eq 1000 10.921 ms/op 11.267 ms/op 0.97
forkChoice updateHead vc 600000 bc 64 eq 10000 11.738 ms/op 11.807 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 300000 15.519 ms/op 16.138 ms/op 0.96
computeDeltas 500000 validators 300 proto nodes 6.5411 ms/op 6.7172 ms/op 0.97
computeDeltas 500000 validators 1200 proto nodes 6.3547 ms/op 6.5229 ms/op 0.97
computeDeltas 500000 validators 7200 proto nodes 6.2329 ms/op 6.5014 ms/op 0.96
computeDeltas 750000 validators 300 proto nodes 9.5258 ms/op 9.8187 ms/op 0.97
computeDeltas 750000 validators 1200 proto nodes 9.5639 ms/op 9.8809 ms/op 0.97
computeDeltas 750000 validators 7200 proto nodes 9.5820 ms/op 9.9122 ms/op 0.97
computeDeltas 1400000 validators 300 proto nodes 18.157 ms/op 18.385 ms/op 0.99
computeDeltas 1400000 validators 1200 proto nodes 18.154 ms/op 18.760 ms/op 0.97
computeDeltas 1400000 validators 7200 proto nodes 18.875 ms/op 18.541 ms/op 1.02
computeDeltas 2100000 validators 300 proto nodes 27.714 ms/op 29.142 ms/op 0.95
computeDeltas 2100000 validators 1200 proto nodes 27.685 ms/op 30.526 ms/op 0.91
computeDeltas 2100000 validators 7200 proto nodes 26.834 ms/op 29.889 ms/op 0.90
computeProposerBoostScoreFromBalances 500000 validators 3.7851 ms/op 4.3973 ms/op 0.86
computeProposerBoostScoreFromBalances 750000 validators 3.8064 ms/op 4.2570 ms/op 0.89
computeProposerBoostScoreFromBalances 1400000 validators 3.7892 ms/op 4.0903 ms/op 0.93
computeProposerBoostScoreFromBalances 2100000 validators 3.6803 ms/op 3.9538 ms/op 0.93
altair processAttestation - 250000 vs - 7PWei normalcase 2.0561 ms/op 3.3729 ms/op 0.61
altair processAttestation - 250000 vs - 7PWei worstcase 3.0841 ms/op 4.3938 ms/op 0.70
altair processAttestation - setStatus - 1/6 committees join 131.21 us/op 164.91 us/op 0.80
altair processAttestation - setStatus - 1/3 committees join 254.46 us/op 319.88 us/op 0.80
altair processAttestation - setStatus - 1/2 committees join 343.18 us/op 428.58 us/op 0.80
altair processAttestation - setStatus - 2/3 committees join 431.87 us/op 523.55 us/op 0.82
altair processAttestation - setStatus - 4/5 committees join 605.67 us/op 788.39 us/op 0.77
altair processAttestation - setStatus - 100% committees join 703.95 us/op 903.42 us/op 0.78
altair processBlock - 250000 vs - 7PWei normalcase 10.361 ms/op 11.737 ms/op 0.88
altair processBlock - 250000 vs - 7PWei normalcase hashState 36.985 ms/op 43.182 ms/op 0.86
altair processBlock - 250000 vs - 7PWei worstcase 37.495 ms/op 41.494 ms/op 0.90
altair processBlock - 250000 vs - 7PWei worstcase hashState 88.676 ms/op 108.38 ms/op 0.82
phase0 processBlock - 250000 vs - 7PWei normalcase 2.9163 ms/op 2.9587 ms/op 0.99
phase0 processBlock - 250000 vs - 7PWei worstcase 29.603 ms/op 34.880 ms/op 0.85
altair processEth1Data - 250000 vs - 7PWei normalcase 583.37 us/op 704.41 us/op 0.83
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 9.9790 us/op 23.200 us/op 0.43
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 62.443 us/op 84.848 us/op 0.74
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 11.967 us/op 33.070 us/op 0.36
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 9.8890 us/op 22.893 us/op 0.43
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 163.15 us/op 228.36 us/op 0.71
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.5403 ms/op 1.6204 ms/op 0.95
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.7356 ms/op 2.3551 ms/op 0.74
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.6032 ms/op 2.1568 ms/op 0.74
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.9354 ms/op 4.4818 ms/op 0.88
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.3698 ms/op 3.3504 ms/op 0.71
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.4634 ms/op 7.3158 ms/op 0.75
Tree 40 250000 create 373.24 ms/op 584.94 ms/op 0.64
Tree 40 250000 get(125000) 202.06 ns/op 232.82 ns/op 0.87
Tree 40 250000 set(125000) 1.0557 us/op 1.3735 us/op 0.77
Tree 40 250000 toArray() 18.869 ms/op 24.439 ms/op 0.77
Tree 40 250000 iterate all - toArray() + loop 21.280 ms/op 24.154 ms/op 0.88
Tree 40 250000 iterate all - get(i) 75.037 ms/op 79.309 ms/op 0.95
MutableVector 250000 create 16.155 ms/op 17.345 ms/op 0.93
MutableVector 250000 get(125000) 6.7870 ns/op 6.9850 ns/op 0.97
MutableVector 250000 set(125000) 297.13 ns/op 403.93 ns/op 0.74
MutableVector 250000 toArray() 6.2679 ms/op 4.4478 ms/op 1.41
MutableVector 250000 iterate all - toArray() + loop 3.8666 ms/op 4.6247 ms/op 0.84
MutableVector 250000 iterate all - get(i) 1.5055 ms/op 1.6822 ms/op 0.89
Array 250000 create 2.4715 ms/op 4.0943 ms/op 0.60
Array 250000 clone - spread 1.2038 ms/op 1.4921 ms/op 0.81
Array 250000 get(125000) 1.0070 ns/op 1.3140 ns/op 0.77
Array 250000 set(125000) 4.1180 ns/op 4.8040 ns/op 0.86
Array 250000 iterate all - loop 165.76 us/op 180.06 us/op 0.92
effectiveBalanceIncrements clone Uint8Array 300000 27.627 us/op 56.878 us/op 0.49
effectiveBalanceIncrements clone MutableVector 300000 343.00 ns/op 482.00 ns/op 0.71
effectiveBalanceIncrements rw all Uint8Array 300000 204.18 us/op 218.29 us/op 0.94
effectiveBalanceIncrements rw all MutableVector 300000 83.974 ms/op 113.77 ms/op 0.74
phase0 afterProcessEpoch - 250000 vs - 7PWei 116.06 ms/op 121.82 ms/op 0.95
phase0 beforeProcessEpoch - 250000 vs - 7PWei 48.467 ms/op 52.803 ms/op 0.92
altair processEpoch - mainnet_e81889 476.91 ms/op 524.68 ms/op 0.91
mainnet_e81889 - altair beforeProcessEpoch 81.923 ms/op 81.909 ms/op 1.00
mainnet_e81889 - altair processJustificationAndFinalization 12.872 us/op 17.496 us/op 0.74
mainnet_e81889 - altair processInactivityUpdates 5.9374 ms/op 5.8998 ms/op 1.01
mainnet_e81889 - altair processRewardsAndPenalties 59.273 ms/op 61.999 ms/op 0.96
mainnet_e81889 - altair processRegistryUpdates 2.5080 us/op 2.4340 us/op 1.03
mainnet_e81889 - altair processSlashings 586.00 ns/op 432.00 ns/op 1.36
mainnet_e81889 - altair processEth1DataReset 623.00 ns/op 764.00 ns/op 0.82
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.4128 ms/op 1.5879 ms/op 0.89
mainnet_e81889 - altair processSlashingsReset 3.6740 us/op 5.0390 us/op 0.73
mainnet_e81889 - altair processRandaoMixesReset 5.4440 us/op 6.2230 us/op 0.87
mainnet_e81889 - altair processHistoricalRootsUpdate 897.00 ns/op 837.00 ns/op 1.07
mainnet_e81889 - altair processParticipationFlagUpdates 2.0560 us/op 2.0990 us/op 0.98
mainnet_e81889 - altair processSyncCommitteeUpdates 457.00 ns/op 836.00 ns/op 0.55
mainnet_e81889 - altair afterProcessEpoch 122.98 ms/op 119.49 ms/op 1.03
capella processEpoch - mainnet_e217614 2.0474 s/op 2.0957 s/op 0.98
mainnet_e217614 - capella beforeProcessEpoch 452.47 ms/op 438.42 ms/op 1.03
mainnet_e217614 - capella processJustificationAndFinalization 13.842 us/op 15.182 us/op 0.91
mainnet_e217614 - capella processInactivityUpdates 15.984 ms/op 20.160 ms/op 0.79
mainnet_e217614 - capella processRewardsAndPenalties 393.32 ms/op 438.23 ms/op 0.90
mainnet_e217614 - capella processRegistryUpdates 21.099 us/op 20.832 us/op 1.01
mainnet_e217614 - capella processSlashings 561.00 ns/op 472.00 ns/op 1.19
mainnet_e217614 - capella processEth1DataReset 409.00 ns/op 385.00 ns/op 1.06
mainnet_e217614 - capella processEffectiveBalanceUpdates 7.2961 ms/op 5.3989 ms/op 1.35
mainnet_e217614 - capella processSlashingsReset 3.3020 us/op 3.9330 us/op 0.84
mainnet_e217614 - capella processRandaoMixesReset 4.6720 us/op 5.2530 us/op 0.89
mainnet_e217614 - capella processHistoricalRootsUpdate 562.00 ns/op 878.00 ns/op 0.64
mainnet_e217614 - capella processParticipationFlagUpdates 2.0120 us/op 2.3060 us/op 0.87
mainnet_e217614 - capella afterProcessEpoch 295.77 ms/op 307.58 ms/op 0.96
phase0 processEpoch - mainnet_e58758 420.76 ms/op 496.42 ms/op 0.85
mainnet_e58758 - phase0 beforeProcessEpoch 128.93 ms/op 137.15 ms/op 0.94
mainnet_e58758 - phase0 processJustificationAndFinalization 13.752 us/op 18.766 us/op 0.73
mainnet_e58758 - phase0 processRewardsAndPenalties 49.001 ms/op 57.540 ms/op 0.85
mainnet_e58758 - phase0 processRegistryUpdates 9.0520 us/op 13.886 us/op 0.65
mainnet_e58758 - phase0 processSlashings 530.00 ns/op 610.00 ns/op 0.87
mainnet_e58758 - phase0 processEth1DataReset 397.00 ns/op 425.00 ns/op 0.93
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.1321 ms/op 1.1984 ms/op 0.94
mainnet_e58758 - phase0 processSlashingsReset 3.2220 us/op 6.5760 us/op 0.49
mainnet_e58758 - phase0 processRandaoMixesReset 3.9060 us/op 7.1100 us/op 0.55
mainnet_e58758 - phase0 processHistoricalRootsUpdate 407.00 ns/op 937.00 ns/op 0.43
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.3750 us/op 4.9620 us/op 0.68
mainnet_e58758 - phase0 afterProcessEpoch 95.192 ms/op 105.65 ms/op 0.90
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3966 ms/op 1.5832 ms/op 0.88
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.4617 ms/op 1.5795 ms/op 0.93
altair processInactivityUpdates - 250000 normalcase 20.876 ms/op 23.048 ms/op 0.91
altair processInactivityUpdates - 250000 worstcase 22.363 ms/op 27.396 ms/op 0.82
phase0 processRegistryUpdates - 250000 normalcase 7.6130 us/op 11.110 us/op 0.69
phase0 processRegistryUpdates - 250000 badcase_full_deposits 327.15 us/op 404.70 us/op 0.81
phase0 processRegistryUpdates - 250000 worstcase 0.5 125.11 ms/op 134.14 ms/op 0.93
altair processRewardsAndPenalties - 250000 normalcase 54.478 ms/op 59.034 ms/op 0.92
altair processRewardsAndPenalties - 250000 worstcase 53.280 ms/op 57.469 ms/op 0.93
phase0 getAttestationDeltas - 250000 normalcase 8.8431 ms/op 11.258 ms/op 0.79
phase0 getAttestationDeltas - 250000 worstcase 8.8812 ms/op 12.950 ms/op 0.69
phase0 processSlashings - 250000 worstcase 80.074 us/op 109.39 us/op 0.73
altair processSyncCommitteeUpdates - 250000 151.33 ms/op 167.06 ms/op 0.91
BeaconState.hashTreeRoot - No change 234.00 ns/op 270.00 ns/op 0.87
BeaconState.hashTreeRoot - 1 full validator 157.94 us/op 141.66 us/op 1.11
BeaconState.hashTreeRoot - 32 full validator 1.4650 ms/op 1.4594 ms/op 1.00
BeaconState.hashTreeRoot - 512 full validator 17.585 ms/op 14.884 ms/op 1.18
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 174.44 us/op 171.10 us/op 1.02
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.1333 ms/op 2.2771 ms/op 0.94
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 26.546 ms/op 28.585 ms/op 0.93
BeaconState.hashTreeRoot - 1 balances 140.21 us/op 133.07 us/op 1.05
BeaconState.hashTreeRoot - 32 balances 1.2462 ms/op 1.1361 ms/op 1.10
BeaconState.hashTreeRoot - 512 balances 11.685 ms/op 10.619 ms/op 1.10
BeaconState.hashTreeRoot - 250000 balances 202.53 ms/op 205.73 ms/op 0.98
aggregationBits - 2048 els - zipIndexesInBitList 17.342 us/op 17.857 us/op 0.97
byteArrayEquals 32 74.613 ns/op 76.640 ns/op 0.97
Buffer.compare 32 54.427 ns/op 57.498 ns/op 0.95
byteArrayEquals 1024 1.9800 us/op 2.0877 us/op 0.95
Buffer.compare 1024 68.401 ns/op 71.888 ns/op 0.95
byteArrayEquals 16384 31.518 us/op 33.309 us/op 0.95
Buffer.compare 16384 268.98 ns/op 276.45 ns/op 0.97
byteArrayEquals 123687377 240.07 ms/op 257.49 ms/op 0.93
Buffer.compare 123687377 6.0106 ms/op 8.6262 ms/op 0.70
byteArrayEquals 32 - diff last byte 69.240 ns/op 79.656 ns/op 0.87
Buffer.compare 32 - diff last byte 59.665 ns/op 58.842 ns/op 1.01
byteArrayEquals 1024 - diff last byte 1.9991 us/op 2.1434 us/op 0.93
Buffer.compare 1024 - diff last byte 69.582 ns/op 75.093 ns/op 0.93
byteArrayEquals 16384 - diff last byte 31.889 us/op 34.431 us/op 0.93
Buffer.compare 16384 - diff last byte 277.94 ns/op 267.77 ns/op 1.04
byteArrayEquals 123687377 - diff last byte 242.58 ms/op 260.04 ms/op 0.93
Buffer.compare 123687377 - diff last byte 7.1168 ms/op 8.1277 ms/op 0.88
byteArrayEquals 32 - random bytes 6.1970 ns/op 6.0410 ns/op 1.03
Buffer.compare 32 - random bytes 62.374 ns/op 63.123 ns/op 0.99
byteArrayEquals 1024 - random bytes 5.8580 ns/op 5.6190 ns/op 1.04
Buffer.compare 1024 - random bytes 61.755 ns/op 61.777 ns/op 1.00
byteArrayEquals 16384 - random bytes 5.4680 ns/op 5.8100 ns/op 0.94
Buffer.compare 16384 - random bytes 62.283 ns/op 61.145 ns/op 1.02
byteArrayEquals 123687377 - random bytes 8.4100 ns/op 8.7000 ns/op 0.97
Buffer.compare 123687377 - random bytes 69.190 ns/op 65.570 ns/op 1.06
regular array get 100000 times 44.475 us/op 46.074 us/op 0.97
wrappedArray get 100000 times 45.876 us/op 46.306 us/op 0.99
arrayWithProxy get 100000 times 14.915 ms/op 15.450 ms/op 0.97
ssz.Root.equals 56.105 ns/op 56.487 ns/op 0.99
byteArrayEquals 56.326 ns/op 54.704 ns/op 1.03
Buffer.compare 11.549 ns/op 12.867 ns/op 0.90
shuffle list - 16384 els 7.4241 ms/op 7.4706 ms/op 0.99
shuffle list - 250000 els 106.50 ms/op 110.29 ms/op 0.97
processSlot - 1 slots 16.881 us/op 19.939 us/op 0.85
processSlot - 32 slots 3.6236 ms/op 3.4169 ms/op 1.06
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 56.964 ms/op 64.963 ms/op 0.88
getCommitteeAssignments - req 1 vs - 250000 vc 2.5661 ms/op 2.6280 ms/op 0.98
getCommitteeAssignments - req 100 vs - 250000 vc 3.7598 ms/op 3.8492 ms/op 0.98
getCommitteeAssignments - req 1000 vs - 250000 vc 4.1735 ms/op 4.1725 ms/op 1.00
findModifiedValidators - 10000 modified validators 554.96 ms/op 551.61 ms/op 1.01
findModifiedValidators - 1000 modified validators 444.81 ms/op 464.77 ms/op 0.96
findModifiedValidators - 100 modified validators 431.80 ms/op 426.43 ms/op 1.01
findModifiedValidators - 10 modified validators 432.91 ms/op 452.69 ms/op 0.96
findModifiedValidators - 1 modified validators 408.82 ms/op 441.63 ms/op 0.93
findModifiedValidators - no difference 421.48 ms/op 433.75 ms/op 0.97
compare ViewDUs 4.6399 s/op 4.5222 s/op 1.03
compare each validator Uint8Array 1.9476 s/op 1.5285 s/op 1.27
compare ViewDU to Uint8Array 1.4392 s/op 1.2077 s/op 1.19
migrate state 1000000 validators, 24 modified, 0 new 870.68 ms/op 824.73 ms/op 1.06
migrate state 1000000 validators, 1700 modified, 1000 new 1.2405 s/op 1.0342 s/op 1.20
migrate state 1000000 validators, 3400 modified, 2000 new 1.4992 s/op 1.3456 s/op 1.11
migrate state 1500000 validators, 24 modified, 0 new 954.84 ms/op 858.93 ms/op 1.11
migrate state 1500000 validators, 1700 modified, 1000 new 1.1984 s/op 1.2958 s/op 0.92
migrate state 1500000 validators, 3400 modified, 2000 new 1.5658 s/op 1.5225 s/op 1.03
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.1500 ns/op 5.4600 ns/op 0.94
state getBlockRootAtSlot - 250000 vs - 7PWei 758.27 ns/op 751.46 ns/op 1.01
computeProposers - vc 250000 10.249 ms/op 10.996 ms/op 0.93
computeEpochShuffling - vc 250000 110.90 ms/op 118.48 ms/op 0.94
getNextSyncCommittee - vc 250000 179.25 ms/op 173.85 ms/op 1.03
computeSigningRoot for AttestationData 31.883 us/op 35.755 us/op 0.89
hash AttestationData serialized data then Buffer.toString(base64) 2.4658 us/op 2.4807 us/op 0.99
toHexString serialized data 1.4057 us/op 1.3263 us/op 1.06
Buffer.toString(base64) 257.26 ns/op 275.56 ns/op 0.93

by benchmarkbot/action

@g11tech g11tech merged commit 6208e2d into unstable Dec 1, 2023
15 checks passed
@g11tech g11tech deleted the g11tech/conensus-broadcastval branch December 1, 2023 20:13
philknows pushed a commit that referenced this pull request Dec 2, 2023
…6149)

* feat: implement consensus broadcastValidation and set it to default

* throw on eerror

* add comment

* fix build error

* handle unknown parent

* add meta for log

* shift default to gossip and add jsdoc

* fix case scope

* remove todo
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.12.1 🎉

@wemeetagain
Copy link
Member

🎉 This PR is included in v1.13.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.

2 participants