Skip to content

chore: pin github actions by commit hash#9017

Merged
nflaig merged 1 commit intounstablefrom
nflaig/pin-actions
Mar 10, 2026
Merged

chore: pin github actions by commit hash#9017
nflaig merged 1 commit intounstablefrom
nflaig/pin-actions

Conversation

@nflaig
Copy link
Member

@nflaig nflaig commented Mar 10, 2026

Closes #7618

@github-actions
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: a63b0a3 Previous: bb27317 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.1404 ms/op 1.0494 ms/op 1.09
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 40.576 us/op 37.590 us/op 1.08
BLS verify - blst 914.83 us/op 886.29 us/op 1.03
BLS verifyMultipleSignatures 3 - blst 1.2573 ms/op 2.2391 ms/op 0.56
BLS verifyMultipleSignatures 8 - blst 2.5382 ms/op 2.2726 ms/op 1.12
BLS verifyMultipleSignatures 32 - blst 7.1197 ms/op 6.8281 ms/op 1.04
BLS verifyMultipleSignatures 64 - blst 10.808 ms/op 11.272 ms/op 0.96
BLS verifyMultipleSignatures 128 - blst 17.644 ms/op 17.019 ms/op 1.04
BLS deserializing 10000 signatures 714.61 ms/op 655.87 ms/op 1.09
BLS deserializing 100000 signatures 6.9978 s/op 6.5495 s/op 1.07
BLS verifyMultipleSignatures - same message - 3 - blst 1.1346 ms/op 1.3390 ms/op 0.85
BLS verifyMultipleSignatures - same message - 8 - blst 1.1039 ms/op 1.6215 ms/op 0.68
BLS verifyMultipleSignatures - same message - 32 - blst 1.7578 ms/op 1.8546 ms/op 0.95
BLS verifyMultipleSignatures - same message - 64 - blst 2.6280 ms/op 2.7301 ms/op 0.96
BLS verifyMultipleSignatures - same message - 128 - blst 4.4784 ms/op 4.4847 ms/op 1.00
BLS aggregatePubkeys 32 - blst 20.407 us/op 19.172 us/op 1.06
BLS aggregatePubkeys 128 - blst 70.243 us/op 68.534 us/op 1.02
getSlashingsAndExits - default max 69.662 us/op 69.291 us/op 1.01
getSlashingsAndExits - 2k 327.81 us/op 323.30 us/op 1.01
isKnown best case - 1 super set check 239.00 ns/op 204.00 ns/op 1.17
isKnown normal case - 2 super set checks 228.00 ns/op 199.00 ns/op 1.15
isKnown worse case - 16 super set checks 209.00 ns/op 202.00 ns/op 1.03
validate api signedAggregateAndProof - struct 2.0818 ms/op 1.5490 ms/op 1.34
validate gossip signedAggregateAndProof - struct 1.4084 ms/op 2.5825 ms/op 0.55
batch validate gossip attestation - vc 640000 - chunk 32 121.79 us/op 154.06 us/op 0.79
batch validate gossip attestation - vc 640000 - chunk 64 106.92 us/op 102.51 us/op 1.04
batch validate gossip attestation - vc 640000 - chunk 128 116.87 us/op 94.695 us/op 1.23
batch validate gossip attestation - vc 640000 - chunk 256 95.520 us/op 88.914 us/op 1.07
bytes32 toHexString 359.00 ns/op 364.00 ns/op 0.99
bytes32 Buffer.toString(hex) 359.00 ns/op 248.00 ns/op 1.45
bytes32 Buffer.toString(hex) from Uint8Array 365.00 ns/op 326.00 ns/op 1.12
bytes32 Buffer.toString(hex) + 0x 360.00 ns/op 245.00 ns/op 1.47
Return object 10000 times 0.23550 ns/op 0.22870 ns/op 1.03
Throw Error 10000 times 4.4369 us/op 4.2105 us/op 1.05
toHex 129.99 ns/op 132.93 ns/op 0.98
Buffer.from 128.54 ns/op 135.42 ns/op 0.95
shared Buffer 77.263 ns/op 84.700 ns/op 0.91
fastMsgIdFn sha256 / 200 bytes 1.8740 us/op 1.8310 us/op 1.02
fastMsgIdFn h32 xxhash / 200 bytes 196.00 ns/op 246.00 ns/op 0.80
fastMsgIdFn h64 xxhash / 200 bytes 273.00 ns/op 254.00 ns/op 1.07
fastMsgIdFn sha256 / 1000 bytes 6.0940 us/op 5.8490 us/op 1.04
fastMsgIdFn h32 xxhash / 1000 bytes 296.00 ns/op 352.00 ns/op 0.84
fastMsgIdFn h64 xxhash / 1000 bytes 316.00 ns/op 290.00 ns/op 1.09
fastMsgIdFn sha256 / 10000 bytes 53.572 us/op 49.235 us/op 1.09
fastMsgIdFn h32 xxhash / 10000 bytes 1.5310 us/op 1.3250 us/op 1.16
fastMsgIdFn h64 xxhash / 10000 bytes 1.0120 us/op 1.3870 us/op 0.73
send data - 1000 256B messages 4.7853 ms/op 4.5429 ms/op 1.05
send data - 1000 512B messages 4.9006 ms/op 4.2621 ms/op 1.15
send data - 1000 1024B messages 5.5210 ms/op 4.5418 ms/op 1.22
send data - 1000 1200B messages 5.5809 ms/op 5.9245 ms/op 0.94
send data - 1000 2048B messages 6.2328 ms/op 5.8836 ms/op 1.06
send data - 1000 4096B messages 7.3308 ms/op 7.5792 ms/op 0.97
send data - 1000 16384B messages 33.972 ms/op 30.810 ms/op 1.10
send data - 1000 65536B messages 162.51 ms/op 88.008 ms/op 1.85
enrSubnets - fastDeserialize 64 bits 992.00 ns/op 900.00 ns/op 1.10
enrSubnets - ssz BitVector 64 bits 390.00 ns/op 328.00 ns/op 1.19
enrSubnets - fastDeserialize 4 bits 177.00 ns/op 130.00 ns/op 1.36
enrSubnets - ssz BitVector 4 bits 381.00 ns/op 322.00 ns/op 1.18
prioritizePeers score -10:0 att 32-0.1 sync 2-0 277.33 us/op 313.47 us/op 0.88
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 345.48 us/op 262.41 us/op 1.32
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 502.98 us/op 574.43 us/op 0.88
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 726.04 us/op 864.68 us/op 0.84
prioritizePeers score 0:0 att 64-1 sync 4-1 877.78 us/op 860.76 us/op 1.02
array of 16000 items push then shift 1.7056 us/op 1.5857 us/op 1.08
LinkedList of 16000 items push then shift 7.9960 ns/op 7.1950 ns/op 1.11
array of 16000 items push then pop 82.942 ns/op 74.283 ns/op 1.12
LinkedList of 16000 items push then pop 7.9220 ns/op 7.0080 ns/op 1.13
array of 24000 items push then shift 2.5638 us/op 2.3714 us/op 1.08
LinkedList of 24000 items push then shift 8.6980 ns/op 7.3110 ns/op 1.19
array of 24000 items push then pop 119.07 ns/op 105.13 ns/op 1.13
LinkedList of 24000 items push then pop 8.0750 ns/op 7.0390 ns/op 1.15
intersect bitArray bitLen 8 6.1170 ns/op 5.5980 ns/op 1.09
intersect array and set length 8 35.676 ns/op 32.787 ns/op 1.09
intersect bitArray bitLen 128 30.425 ns/op 28.047 ns/op 1.08
intersect array and set length 128 587.43 ns/op 538.47 ns/op 1.09
bitArray.getTrueBitIndexes() bitLen 128 1.2550 us/op 1.2910 us/op 0.97
bitArray.getTrueBitIndexes() bitLen 248 2.0950 us/op 1.8630 us/op 1.12
bitArray.getTrueBitIndexes() bitLen 512 4.2660 us/op 3.5960 us/op 1.19
Full columns - reconstruct all 6 blobs 198.99 us/op 225.70 us/op 0.88
Full columns - reconstruct half of the blobs out of 6 107.50 us/op 93.201 us/op 1.15
Full columns - reconstruct single blob out of 6 40.947 us/op 30.721 us/op 1.33
Half columns - reconstruct all 6 blobs 295.83 ms/op 258.21 ms/op 1.15
Half columns - reconstruct half of the blobs out of 6 145.53 ms/op 130.34 ms/op 1.12
Half columns - reconstruct single blob out of 6 55.171 ms/op 47.935 ms/op 1.15
Full columns - reconstruct all 10 blobs 661.61 us/op 291.15 us/op 2.27
Full columns - reconstruct half of the blobs out of 10 211.20 us/op 153.49 us/op 1.38
Full columns - reconstruct single blob out of 10 36.278 us/op 30.648 us/op 1.18
Half columns - reconstruct all 10 blobs 482.58 ms/op 429.18 ms/op 1.12
Half columns - reconstruct half of the blobs out of 10 243.00 ms/op 217.91 ms/op 1.12
Half columns - reconstruct single blob out of 10 53.397 ms/op 48.375 ms/op 1.10
Full columns - reconstruct all 20 blobs 755.21 us/op 469.93 us/op 1.61
Full columns - reconstruct half of the blobs out of 20 307.39 us/op 262.37 us/op 1.17
Full columns - reconstruct single blob out of 20 33.121 us/op 31.091 us/op 1.07
Half columns - reconstruct all 20 blobs 927.82 ms/op 856.12 ms/op 1.08
Half columns - reconstruct half of the blobs out of 20 459.77 ms/op 431.11 ms/op 1.07
Half columns - reconstruct single blob out of 20 51.253 ms/op 48.879 ms/op 1.05
Set add up to 64 items then delete first 2.1153 us/op 1.9732 us/op 1.07
OrderedSet add up to 64 items then delete first 3.1184 us/op 2.9162 us/op 1.07
Set add up to 64 items then delete last 2.3744 us/op 2.2797 us/op 1.04
OrderedSet add up to 64 items then delete last 3.5792 us/op 3.4608 us/op 1.03
Set add up to 64 items then delete middle 2.3962 us/op 2.3071 us/op 1.04
OrderedSet add up to 64 items then delete middle 5.1505 us/op 5.0338 us/op 1.02
Set add up to 128 items then delete first 5.0192 us/op 4.6639 us/op 1.08
OrderedSet add up to 128 items then delete first 7.2395 us/op 6.8959 us/op 1.05
Set add up to 128 items then delete last 4.8244 us/op 4.7076 us/op 1.02
OrderedSet add up to 128 items then delete last 7.1975 us/op 7.0704 us/op 1.02
Set add up to 128 items then delete middle 4.7128 us/op 4.5615 us/op 1.03
OrderedSet add up to 128 items then delete middle 14.573 us/op 13.391 us/op 1.09
Set add up to 256 items then delete first 10.654 us/op 9.9849 us/op 1.07
OrderedSet add up to 256 items then delete first 15.674 us/op 14.846 us/op 1.06
Set add up to 256 items then delete last 9.8601 us/op 9.3386 us/op 1.06
OrderedSet add up to 256 items then delete last 15.162 us/op 14.304 us/op 1.06
Set add up to 256 items then delete middle 9.6611 us/op 9.1153 us/op 1.06
OrderedSet add up to 256 items then delete middle 41.982 us/op 41.142 us/op 1.02
pass gossip attestations to forkchoice per slot 516.34 us/op 480.48 us/op 1.07
computeDeltas 1400000 validators 0% inactive 14.439 ms/op 14.068 ms/op 1.03
computeDeltas 1400000 validators 10% inactive 13.524 ms/op 13.148 ms/op 1.03
computeDeltas 1400000 validators 20% inactive 12.557 ms/op 12.232 ms/op 1.03
computeDeltas 1400000 validators 50% inactive 9.8469 ms/op 9.4831 ms/op 1.04
computeDeltas 2100000 validators 0% inactive 21.711 ms/op 21.069 ms/op 1.03
computeDeltas 2100000 validators 10% inactive 20.287 ms/op 19.733 ms/op 1.03
computeDeltas 2100000 validators 20% inactive 18.932 ms/op 18.345 ms/op 1.03
computeDeltas 2100000 validators 50% inactive 14.703 ms/op 14.224 ms/op 1.03
altair processAttestation - 250000 vs - 7PWei normalcase 2.0226 ms/op 1.9004 ms/op 1.06
altair processAttestation - 250000 vs - 7PWei worstcase 2.7716 ms/op 2.6799 ms/op 1.03
altair processAttestation - setStatus - 1/6 committees join 119.24 us/op 114.56 us/op 1.04
altair processAttestation - setStatus - 1/3 committees join 233.85 us/op 223.75 us/op 1.05
altair processAttestation - setStatus - 1/2 committees join 331.65 us/op 312.45 us/op 1.06
altair processAttestation - setStatus - 2/3 committees join 424.10 us/op 403.15 us/op 1.05
altair processAttestation - setStatus - 4/5 committees join 622.20 us/op 557.26 us/op 1.12
altair processAttestation - setStatus - 100% committees join 691.47 us/op 658.38 us/op 1.05
altair processBlock - 250000 vs - 7PWei normalcase 3.6499 ms/op 3.3717 ms/op 1.08
altair processBlock - 250000 vs - 7PWei normalcase hashState 17.350 ms/op 16.964 ms/op 1.02
altair processBlock - 250000 vs - 7PWei worstcase 24.077 ms/op 24.031 ms/op 1.00
altair processBlock - 250000 vs - 7PWei worstcase hashState 61.050 ms/op 65.117 ms/op 0.94
phase0 processBlock - 250000 vs - 7PWei normalcase 1.7627 ms/op 1.7994 ms/op 0.98
phase0 processBlock - 250000 vs - 7PWei worstcase 20.525 ms/op 21.344 ms/op 0.96
altair processEth1Data - 250000 vs - 7PWei normalcase 391.62 us/op 367.94 us/op 1.06
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:16 9.2900 us/op 5.7320 us/op 1.62
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:220 50.976 us/op 54.294 us/op 0.94
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:43 9.6110 us/op 16.065 us/op 0.60
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:19 6.2140 us/op 11.197 us/op 0.55
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1021 243.17 us/op 238.55 us/op 1.02
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11778 1.8626 ms/op 2.5312 ms/op 0.74
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.3512 ms/op 2.1198 ms/op 1.11
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.3532 ms/op 2.1207 ms/op 1.11
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.5985 ms/op 4.4411 ms/op 1.04
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.7829 ms/op 2.4907 ms/op 1.12
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.9726 ms/op 4.7161 ms/op 1.05
Tree 40 250000 create 388.12 ms/op 385.04 ms/op 1.01
Tree 40 250000 get(125000) 131.22 ns/op 127.44 ns/op 1.03
Tree 40 250000 set(125000) 1.2427 us/op 1.2068 us/op 1.03
Tree 40 250000 toArray() 13.143 ms/op 12.138 ms/op 1.08
Tree 40 250000 iterate all - toArray() + loop 14.138 ms/op 12.230 ms/op 1.16
Tree 40 250000 iterate all - get(i) 46.850 ms/op 41.835 ms/op 1.12
Array 250000 create 2.5058 ms/op 2.4017 ms/op 1.04
Array 250000 clone - spread 818.66 us/op 786.84 us/op 1.04
Array 250000 get(125000) 0.43700 ns/op 0.33300 ns/op 1.31
Array 250000 set(125000) 0.44300 ns/op 0.47100 ns/op 0.94
Array 250000 iterate all - loop 63.556 us/op 57.852 us/op 1.10
phase0 afterProcessEpoch - 250000 vs - 7PWei 42.902 ms/op 39.000 ms/op 1.10
Array.fill - length 1000000 2.9583 ms/op 3.1375 ms/op 0.94
Array push - length 1000000 11.858 ms/op 9.5786 ms/op 1.24
Array.get 0.22908 ns/op 0.21772 ns/op 1.05
Uint8Array.get 0.24014 ns/op 0.27366 ns/op 0.88
phase0 beforeProcessEpoch - 250000 vs - 7PWei 14.435 ms/op 14.429 ms/op 1.00
altair processEpoch - mainnet_e81889 274.12 ms/op 268.57 ms/op 1.02
mainnet_e81889 - altair beforeProcessEpoch 22.168 ms/op 19.756 ms/op 1.12
mainnet_e81889 - altair processJustificationAndFinalization 7.3890 us/op 6.9500 us/op 1.06
mainnet_e81889 - altair processInactivityUpdates 3.8671 ms/op 3.7240 ms/op 1.04
mainnet_e81889 - altair processRewardsAndPenalties 18.178 ms/op 17.884 ms/op 1.02
mainnet_e81889 - altair processRegistryUpdates 655.00 ns/op 751.00 ns/op 0.87
mainnet_e81889 - altair processSlashings 200.00 ns/op 258.00 ns/op 0.78
mainnet_e81889 - altair processEth1DataReset 210.00 ns/op 159.00 ns/op 1.32
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.3069 ms/op 2.1738 ms/op 1.06
mainnet_e81889 - altair processSlashingsReset 824.00 ns/op 798.00 ns/op 1.03
mainnet_e81889 - altair processRandaoMixesReset 1.2900 us/op 1.2790 us/op 1.01
mainnet_e81889 - altair processHistoricalRootsUpdate 179.00 ns/op 162.00 ns/op 1.10
mainnet_e81889 - altair processParticipationFlagUpdates 508.00 ns/op 509.00 ns/op 1.00
mainnet_e81889 - altair processSyncCommitteeUpdates 143.00 ns/op 126.00 ns/op 1.13
mainnet_e81889 - altair afterProcessEpoch 44.659 ms/op 40.959 ms/op 1.09
capella processEpoch - mainnet_e217614 844.45 ms/op 839.13 ms/op 1.01
mainnet_e217614 - capella beforeProcessEpoch 67.609 ms/op 58.774 ms/op 1.15
mainnet_e217614 - capella processJustificationAndFinalization 5.2780 us/op 5.5230 us/op 0.96
mainnet_e217614 - capella processInactivityUpdates 18.809 ms/op 18.177 ms/op 1.03
mainnet_e217614 - capella processRewardsAndPenalties 121.90 ms/op 108.77 ms/op 1.12
mainnet_e217614 - capella processRegistryUpdates 5.9310 us/op 5.7900 us/op 1.02
mainnet_e217614 - capella processSlashings 206.00 ns/op 154.00 ns/op 1.34
mainnet_e217614 - capella processEth1DataReset 186.00 ns/op 178.00 ns/op 1.04
mainnet_e217614 - capella processEffectiveBalanceUpdates 17.617 ms/op 11.399 ms/op 1.55
mainnet_e217614 - capella processSlashingsReset 883.00 ns/op 983.00 ns/op 0.90
mainnet_e217614 - capella processRandaoMixesReset 1.1200 us/op 1.2940 us/op 0.87
mainnet_e217614 - capella processHistoricalRootsUpdate 203.00 ns/op 167.00 ns/op 1.22
mainnet_e217614 - capella processParticipationFlagUpdates 655.00 ns/op 509.00 ns/op 1.29
mainnet_e217614 - capella afterProcessEpoch 117.67 ms/op 113.81 ms/op 1.03
phase0 processEpoch - mainnet_e58758 223.01 ms/op 278.12 ms/op 0.80
mainnet_e58758 - phase0 beforeProcessEpoch 44.743 ms/op 59.170 ms/op 0.76
mainnet_e58758 - phase0 processJustificationAndFinalization 5.3570 us/op 5.5190 us/op 0.97
mainnet_e58758 - phase0 processRewardsAndPenalties 18.096 ms/op 25.187 ms/op 0.72
mainnet_e58758 - phase0 processRegistryUpdates 3.2150 us/op 3.4760 us/op 0.92
mainnet_e58758 - phase0 processSlashings 227.00 ns/op 164.00 ns/op 1.38
mainnet_e58758 - phase0 processEth1DataReset 231.00 ns/op 183.00 ns/op 1.26
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 946.10 us/op 930.19 us/op 1.02
mainnet_e58758 - phase0 processSlashingsReset 945.00 ns/op 887.00 ns/op 1.07
mainnet_e58758 - phase0 processRandaoMixesReset 1.2580 us/op 1.3310 us/op 0.95
mainnet_e58758 - phase0 processHistoricalRootsUpdate 221.00 ns/op 203.00 ns/op 1.09
mainnet_e58758 - phase0 processParticipationRecordUpdates 851.00 ns/op 1.2860 us/op 0.66
mainnet_e58758 - phase0 afterProcessEpoch 36.300 ms/op 34.571 ms/op 1.05
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.9377 ms/op 1.8071 ms/op 1.07
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.9669 ms/op 1.6442 ms/op 1.20
altair processInactivityUpdates - 250000 normalcase 14.949 ms/op 12.696 ms/op 1.18
altair processInactivityUpdates - 250000 worstcase 15.754 ms/op 12.201 ms/op 1.29
phase0 processRegistryUpdates - 250000 normalcase 7.1690 us/op 4.4480 us/op 1.61
phase0 processRegistryUpdates - 250000 badcase_full_deposits 371.33 us/op 371.28 us/op 1.00
phase0 processRegistryUpdates - 250000 worstcase 0.5 75.337 ms/op 75.733 ms/op 0.99
altair processRewardsAndPenalties - 250000 normalcase 16.909 ms/op 16.023 ms/op 1.06
altair processRewardsAndPenalties - 250000 worstcase 16.889 ms/op 15.476 ms/op 1.09
phase0 getAttestationDeltas - 250000 normalcase 6.7571 ms/op 6.7041 ms/op 1.01
phase0 getAttestationDeltas - 250000 worstcase 6.8998 ms/op 6.7065 ms/op 1.03
phase0 processSlashings - 250000 worstcase 127.72 us/op 119.92 us/op 1.07
altair processSyncCommitteeUpdates - 250000 11.008 ms/op 10.334 ms/op 1.07
BeaconState.hashTreeRoot - No change 243.00 ns/op 228.00 ns/op 1.07
BeaconState.hashTreeRoot - 1 full validator 82.611 us/op 86.230 us/op 0.96
BeaconState.hashTreeRoot - 32 full validator 849.72 us/op 1.0438 ms/op 0.81
BeaconState.hashTreeRoot - 512 full validator 9.3650 ms/op 7.2997 ms/op 1.28
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 88.272 us/op 111.66 us/op 0.79
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.7538 ms/op 2.3996 ms/op 0.73
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 18.466 ms/op 17.652 ms/op 1.05
BeaconState.hashTreeRoot - 1 balances 100.82 us/op 106.64 us/op 0.95
BeaconState.hashTreeRoot - 32 balances 758.07 us/op 1.3363 ms/op 0.57
BeaconState.hashTreeRoot - 512 balances 6.6091 ms/op 5.6906 ms/op 1.16
BeaconState.hashTreeRoot - 250000 balances 124.68 ms/op 161.99 ms/op 0.77
aggregationBits - 2048 els - zipIndexesInBitList 21.421 us/op 20.874 us/op 1.03
regular array get 100000 times 24.547 us/op 24.605 us/op 1.00
wrappedArray get 100000 times 25.155 us/op 24.548 us/op 1.02
arrayWithProxy get 100000 times 14.363 ms/op 17.620 ms/op 0.82
ssz.Root.equals 23.975 ns/op 23.873 ns/op 1.00
byteArrayEquals 24.029 ns/op 23.421 ns/op 1.03
Buffer.compare 10.146 ns/op 10.169 ns/op 1.00
processSlot - 1 slots 12.003 us/op 9.7410 us/op 1.23
processSlot - 32 slots 2.4148 ms/op 2.5681 ms/op 0.94
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 5.0891 ms/op 4.6417 ms/op 1.10
getCommitteeAssignments - req 1 vs - 250000 vc 1.9201 ms/op 1.8681 ms/op 1.03
getCommitteeAssignments - req 100 vs - 250000 vc 3.7588 ms/op 3.6479 ms/op 1.03
getCommitteeAssignments - req 1000 vs - 250000 vc 4.0070 ms/op 3.9317 ms/op 1.02
findModifiedValidators - 10000 modified validators 781.92 ms/op 645.23 ms/op 1.21
findModifiedValidators - 1000 modified validators 444.81 ms/op 501.08 ms/op 0.89
findModifiedValidators - 100 modified validators 275.11 ms/op 301.86 ms/op 0.91
findModifiedValidators - 10 modified validators 190.12 ms/op 153.22 ms/op 1.24
findModifiedValidators - 1 modified validators 152.70 ms/op 158.66 ms/op 0.96
findModifiedValidators - no difference 166.90 ms/op 157.07 ms/op 1.06
migrate state 1500000 validators, 3400 modified, 2000 new 1.0427 s/op 910.89 ms/op 1.14
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.2900 ns/op 4.2700 ns/op 1.00
state getBlockRootAtSlot - 250000 vs - 7PWei 572.06 ns/op 533.27 ns/op 1.07
computeProposerIndex 100000 validators 1.5977 ms/op 1.6570 ms/op 0.96
getNextSyncCommitteeIndices 1000 validators 126.41 ms/op 121.89 ms/op 1.04
getNextSyncCommitteeIndices 10000 validators 123.65 ms/op 123.33 ms/op 1.00
getNextSyncCommitteeIndices 100000 validators 124.33 ms/op 122.46 ms/op 1.02
computeProposers - vc 250000 627.29 us/op 632.49 us/op 0.99
computeEpochShuffling - vc 250000 43.259 ms/op 42.403 ms/op 1.02
getNextSyncCommittee - vc 250000 10.857 ms/op 10.838 ms/op 1.00
nodejs block root to RootHex using toHex 144.16 ns/op 146.73 ns/op 0.98
nodejs block root to RootHex using toRootHex 90.300 ns/op 85.770 ns/op 1.05
nodejs fromHex(blob) 488.25 us/op 447.29 us/op 1.09
nodejs fromHexInto(blob) 722.41 us/op 703.64 us/op 1.03
nodejs block root to RootHex using the deprecated toHexString 577.57 ns/op 401.67 ns/op 1.44
nodejs byteArrayEquals 32 bytes (block root) 29.521 ns/op 28.330 ns/op 1.04
nodejs byteArrayEquals 48 bytes (pubkey) 42.267 ns/op 40.563 ns/op 1.04
nodejs byteArrayEquals 96 bytes (signature) 42.664 ns/op 39.669 ns/op 1.08
nodejs byteArrayEquals 1024 bytes 48.443 ns/op 45.404 ns/op 1.07
nodejs byteArrayEquals 131072 bytes (blob) 1.9507 us/op 1.8589 us/op 1.05
browser block root to RootHex using toHex 172.34 ns/op 161.48 ns/op 1.07
browser block root to RootHex using toRootHex 169.21 ns/op 153.49 ns/op 1.10
browser fromHex(blob) 1.3395 ms/op 1.1672 ms/op 1.15
browser fromHexInto(blob) 736.70 us/op 691.14 us/op 1.07
browser block root to RootHex using the deprecated toHexString 386.89 ns/op 361.55 ns/op 1.07
browser byteArrayEquals 32 bytes (block root) 32.247 ns/op 30.677 ns/op 1.05
browser byteArrayEquals 48 bytes (pubkey) 44.931 ns/op 42.741 ns/op 1.05
browser byteArrayEquals 96 bytes (signature) 88.100 ns/op 83.749 ns/op 1.05
browser byteArrayEquals 1024 bytes 826.83 ns/op 789.89 ns/op 1.05
browser byteArrayEquals 131072 bytes (blob) 105.04 us/op 99.564 us/op 1.05

by benchmarkbot/action

@nflaig nflaig marked this pull request as ready for review March 10, 2026 13:53
@nflaig nflaig requested a review from a team as a code owner March 10, 2026 13:53
@nflaig nflaig merged commit 0df1876 into unstable Mar 10, 2026
23 of 25 checks passed
@nflaig nflaig deleted the nflaig/pin-actions branch March 10, 2026 14:03
@codecov
Copy link

codecov bot commented Mar 10, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 52.35%. Comparing base (bb27317) to head (cb8cbb1).
⚠️ Report is 1 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #9017   +/-   ##
=========================================
  Coverage     52.35%   52.35%           
=========================================
  Files           848      848           
  Lines         62579    62579           
  Branches       4610     4610           
=========================================
  Hits          32766    32766           
  Misses        29747    29747           
  Partials         66       66           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly improves the security and stability of the project's CI/CD pipeline by implementing a best practice of pinning GitHub Actions to their immutable commit hashes. This change prevents unexpected behavior or potential security vulnerabilities that could arise from upstream action updates. To maintain up-to-date dependencies while retaining the benefits of pinning, Dependabot has been configured to automate the process of updating these actions.

Highlights

  • GitHub Actions Pinning: All GitHub Actions used in the workflows have been pinned to specific commit hashes instead of version tags (e.g., @v4), enhancing security and ensuring immutability of the actions used.
  • Dependabot Configuration: A new Dependabot configuration file has been added to automatically manage updates for GitHub Actions, ensuring that pinned actions can be easily updated to their latest secure versions.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • .github/actions/core-dump/action.yml
    • Updated the actions/upload-artifact action to use a specific commit hash.
  • .github/actions/setup-and-build/action.yml
    • Updated pnpm/action-setup to use a specific commit hash.
    • Updated actions/setup-node to use a specific commit hash.
    • Updated actions/cache/restore to use a specific commit hash.
    • Updated actions/cache to use a specific commit hash.
  • .github/dependabot.yml
    • Added a new Dependabot configuration file to enable weekly updates for GitHub Actions.
Ignored Files
  • Ignored by pattern: .github/workflows/** (19)
    • .github/workflows/benchmark.yml
    • .github/workflows/binaries.yml
    • .github/workflows/build-debug-node.yml
    • .github/workflows/check-specrefs.yml
    • .github/workflows/codeql-analysis.yml
    • .github/workflows/docker.yml
    • .github/workflows/docs-backfill.yml
    • .github/workflows/docs-check.yml
    • .github/workflows/docs-version.yml
    • .github/workflows/docs.yml
    • .github/workflows/kurtosis.yml
    • .github/workflows/lint-pr-title.yml
    • .github/workflows/publish-dev.yml
    • .github/workflows/publish-manual.yml
    • .github/workflows/publish-nextfork.yml
    • .github/workflows/publish-rc.yml
    • .github/workflows/publish-stable.yml
    • .github/workflows/test-sim.yml
    • .github/workflows/test.yml
Activity
  • No human activity has been recorded on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request enhances security by pinning GitHub Actions to specific commit hashes and adds Dependabot configuration for automated updates, which are great improvements. However, most of the version comments accompanying the pinned commits are incorrect. These discrepancies can lead to confusion and maintenance issues down the line. I've left specific suggestions to correct these version comments.

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.

Pin github actions by commit hash

2 participants