-
-
Notifications
You must be signed in to change notification settings - Fork 311
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: add ERC-55 support to ExecutionAddress #6355
Conversation
48d50e4
to
0e78950
Compare
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## unstable #6355 +/- ##
=========================================
Coverage 60.15% 60.15%
=========================================
Files 407 407
Lines 46512 46512
Branches 1551 1551
=========================================
Hits 27978 27978
Misses 18502 18502
Partials 32 32 |
673d430
to
304cd45
Compare
|
Benchmark suite | Current: 25f9ce0 | Previous: 00dfa63 | Ratio |
---|---|---|---|
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 14.871 us/op | 3.8680 us/op | 3.84 |
Full benchmark results
Benchmark suite | Current: 25f9ce0 | Previous: 00dfa63 | Ratio |
---|---|---|---|
getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 633.43 us/op | 684.00 us/op | 0.93 |
getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 88.020 us/op | 59.111 us/op | 1.49 |
BLS verify - blst-native | 1.3193 ms/op | 1.1248 ms/op | 1.17 |
BLS verifyMultipleSignatures 3 - blst-native | 2.7537 ms/op | 2.4066 ms/op | 1.14 |
BLS verifyMultipleSignatures 8 - blst-native | 6.0690 ms/op | 5.3349 ms/op | 1.14 |
BLS verifyMultipleSignatures 32 - blst-native | 22.132 ms/op | 19.397 ms/op | 1.14 |
BLS verifyMultipleSignatures 64 - blst-native | 43.661 ms/op | 37.987 ms/op | 1.15 |
BLS verifyMultipleSignatures 128 - blst-native | 86.640 ms/op | 75.634 ms/op | 1.15 |
BLS deserializing 10000 signatures | 924.00 ms/op | 815.67 ms/op | 1.13 |
BLS deserializing 100000 signatures | 9.4246 s/op | 8.3433 s/op | 1.13 |
BLS verifyMultipleSignatures - same message - 3 - blst-native | 1.3341 ms/op | 1.2159 ms/op | 1.10 |
BLS verifyMultipleSignatures - same message - 8 - blst-native | 1.6402 ms/op | 1.2978 ms/op | 1.26 |
BLS verifyMultipleSignatures - same message - 32 - blst-native | 2.7954 ms/op | 2.0581 ms/op | 1.36 |
BLS verifyMultipleSignatures - same message - 64 - blst-native | 4.2449 ms/op | 4.0723 ms/op | 1.04 |
BLS verifyMultipleSignatures - same message - 128 - blst-native | 7.1332 ms/op | 5.0152 ms/op | 1.42 |
BLS aggregatePubkeys 32 - blst-native | 31.984 us/op | 22.698 us/op | 1.41 |
BLS aggregatePubkeys 128 - blst-native | 100.11 us/op | 89.114 us/op | 1.12 |
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 | 54.559 ms/op | 42.295 ms/op | 1.29 |
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 | 46.652 ms/op | 39.405 ms/op | 1.18 |
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 | 34.743 ms/op | 25.263 ms/op | 1.38 |
getSlashingsAndExits - default max | 152.49 us/op | 142.00 us/op | 1.07 |
getSlashingsAndExits - 2k | 396.06 us/op | 342.30 us/op | 1.16 |
proposeBlockBody type=full, size=empty | 5.1775 ms/op | 4.0434 ms/op | 1.28 |
isKnown best case - 1 super set check | 341.00 ns/op | 335.00 ns/op | 1.02 |
isKnown normal case - 2 super set checks | 352.00 ns/op | 316.00 ns/op | 1.11 |
isKnown worse case - 16 super set checks | 349.00 ns/op | 304.00 ns/op | 1.15 |
CheckpointStateCache - add get delete | 5.7690 us/op | 5.1420 us/op | 1.12 |
validate api signedAggregateAndProof - struct | 2.8091 ms/op | 2.5634 ms/op | 1.10 |
validate gossip signedAggregateAndProof - struct | 2.8037 ms/op | 2.4344 ms/op | 1.15 |
validate gossip attestation - vc 640000 | 1.3732 ms/op | 1.1748 ms/op | 1.17 |
batch validate gossip attestation - vc 640000 - chunk 32 | 165.68 us/op | 145.33 us/op | 1.14 |
batch validate gossip attestation - vc 640000 - chunk 64 | 150.60 us/op | 131.03 us/op | 1.15 |
batch validate gossip attestation - vc 640000 - chunk 128 | 142.90 us/op | 120.12 us/op | 1.19 |
batch validate gossip attestation - vc 640000 - chunk 256 | 143.33 us/op | 118.93 us/op | 1.21 |
pickEth1Vote - no votes | 1.5382 ms/op | 1.2650 ms/op | 1.22 |
pickEth1Vote - max votes | 10.726 ms/op | 11.827 ms/op | 0.91 |
pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 20.066 ms/op | 15.426 ms/op | 1.30 |
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 33.083 ms/op | 20.482 ms/op | 1.62 |
pickEth1Vote - Eth1Data fastSerialize value x2048 | 769.89 us/op | 443.67 us/op | 1.74 |
pickEth1Vote - Eth1Data fastSerialize tree x2048 | 5.9169 ms/op | 3.7958 ms/op | 1.56 |
bytes32 toHexString | 540.00 ns/op | 548.00 ns/op | 0.99 |
bytes32 Buffer.toString(hex) | 292.00 ns/op | 336.00 ns/op | 0.87 |
bytes32 Buffer.toString(hex) from Uint8Array | 511.00 ns/op | 485.00 ns/op | 1.05 |
bytes32 Buffer.toString(hex) + 0x | 298.00 ns/op | 349.00 ns/op | 0.85 |
Object access 1 prop | 0.17100 ns/op | 0.21200 ns/op | 0.81 |
Map access 1 prop | 0.15500 ns/op | 0.20100 ns/op | 0.77 |
Object get x1000 | 7.9630 ns/op | 5.1980 ns/op | 1.53 |
Map get x1000 | 1.1260 ns/op | 0.79900 ns/op | 1.41 |
Object set x1000 | 59.033 ns/op | 30.928 ns/op | 1.91 |
Map set x1000 | 49.169 ns/op | 17.989 ns/op | 2.73 |
Return object 10000 times | 0.25780 ns/op | 0.22660 ns/op | 1.14 |
Throw Error 10000 times | 4.0302 us/op | 2.6858 us/op | 1.50 |
fastMsgIdFn sha256 / 200 bytes | 3.4140 us/op | 2.0700 us/op | 1.65 |
fastMsgIdFn h32 xxhash / 200 bytes | 293.00 ns/op | 316.00 ns/op | 0.93 |
fastMsgIdFn h64 xxhash / 200 bytes | 341.00 ns/op | 379.00 ns/op | 0.90 |
fastMsgIdFn sha256 / 1000 bytes | 11.642 us/op | 6.2020 us/op | 1.88 |
fastMsgIdFn h32 xxhash / 1000 bytes | 499.00 ns/op | 448.00 ns/op | 1.11 |
fastMsgIdFn h64 xxhash / 1000 bytes | 480.00 ns/op | 427.00 ns/op | 1.12 |
fastMsgIdFn sha256 / 10000 bytes | 108.28 us/op | 52.374 us/op | 2.07 |
fastMsgIdFn h32 xxhash / 10000 bytes | 2.1220 us/op | 1.8590 us/op | 1.14 |
fastMsgIdFn h64 xxhash / 10000 bytes | 1.4490 us/op | 1.2830 us/op | 1.13 |
send data - 1000 256B messages | 20.711 ms/op | 11.844 ms/op | 1.75 |
send data - 1000 512B messages | 27.385 ms/op | 16.252 ms/op | 1.69 |
send data - 1000 1024B messages | 43.937 ms/op | 28.161 ms/op | 1.56 |
send data - 1000 1200B messages | 41.319 ms/op | 35.088 ms/op | 1.18 |
send data - 1000 2048B messages | 55.590 ms/op | 39.988 ms/op | 1.39 |
send data - 1000 4096B messages | 49.239 ms/op | 35.559 ms/op | 1.38 |
send data - 1000 16384B messages | 124.72 ms/op | 85.979 ms/op | 1.45 |
send data - 1000 65536B messages | 479.36 ms/op | 440.28 ms/op | 1.09 |
enrSubnets - fastDeserialize 64 bits | 1.2820 us/op | 1.0640 us/op | 1.20 |
enrSubnets - ssz BitVector 64 bits | 399.00 ns/op | 450.00 ns/op | 0.89 |
enrSubnets - fastDeserialize 4 bits | 166.00 ns/op | 199.00 ns/op | 0.83 |
enrSubnets - ssz BitVector 4 bits | 411.00 ns/op | 445.00 ns/op | 0.92 |
prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 103.70 us/op | 71.654 us/op | 1.45 |
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 122.81 us/op | 78.569 us/op | 1.56 |
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 162.61 us/op | 108.91 us/op | 1.49 |
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 287.19 us/op | 188.90 us/op | 1.52 |
prioritizePeers score 0:0 att 64-1 sync 4-1 | 349.81 us/op | 204.31 us/op | 1.71 |
array of 16000 items push then shift | 1.6264 us/op | 1.3314 us/op | 1.22 |
LinkedList of 16000 items push then shift | 8.8190 ns/op | 6.0160 ns/op | 1.47 |
array of 16000 items push then pop | 76.787 ns/op | 98.365 ns/op | 0.78 |
LinkedList of 16000 items push then pop | 8.6170 ns/op | 5.9400 ns/op | 1.45 |
array of 24000 items push then shift | 2.3733 us/op | 1.8558 us/op | 1.28 |
LinkedList of 24000 items push then shift | 8.7120 ns/op | 7.0260 ns/op | 1.24 |
array of 24000 items push then pop | 101.31 ns/op | 85.882 ns/op | 1.18 |
LinkedList of 24000 items push then pop | 8.5370 ns/op | 5.7900 ns/op | 1.47 |
intersect bitArray bitLen 8 | 6.8310 ns/op | 4.8080 ns/op | 1.42 |
intersect array and set length 8 | 62.303 ns/op | 48.355 ns/op | 1.29 |
intersect bitArray bitLen 128 | 34.961 ns/op | 28.780 ns/op | 1.21 |
intersect array and set length 128 | 842.40 ns/op | 692.62 ns/op | 1.22 |
bitArray.getTrueBitIndexes() bitLen 128 | 1.4280 us/op | 1.2670 us/op | 1.13 |
bitArray.getTrueBitIndexes() bitLen 248 | 2.4800 us/op | 2.1560 us/op | 1.15 |
bitArray.getTrueBitIndexes() bitLen 512 | 4.8890 us/op | 3.9630 us/op | 1.23 |
Buffer.concat 32 items | 988.00 ns/op | 832.00 ns/op | 1.19 |
Uint8Array.set 32 items | 2.2240 us/op | 1.5910 us/op | 1.40 |
Set add up to 64 items then delete first | 4.2814 us/op | 1.7765 us/op | 2.41 |
OrderedSet add up to 64 items then delete first | 5.4750 us/op | 2.6874 us/op | 2.04 |
Set add up to 64 items then delete last | 4.6294 us/op | 2.0403 us/op | 2.27 |
OrderedSet add up to 64 items then delete last | 6.0784 us/op | 2.9808 us/op | 2.04 |
Set add up to 64 items then delete middle | 4.5445 us/op | 1.9923 us/op | 2.28 |
OrderedSet add up to 64 items then delete middle | 7.1683 us/op | 4.2265 us/op | 1.70 |
Set add up to 128 items then delete first | 9.1229 us/op | 3.9514 us/op | 2.31 |
OrderedSet add up to 128 items then delete first | 11.508 us/op | 6.2040 us/op | 1.85 |
Set add up to 128 items then delete last | 8.9987 us/op | 3.8158 us/op | 2.36 |
OrderedSet add up to 128 items then delete last | 11.840 us/op | 5.7147 us/op | 2.07 |
Set add up to 128 items then delete middle | 8.9826 us/op | 3.8492 us/op | 2.33 |
OrderedSet add up to 128 items then delete middle | 17.284 us/op | 10.877 us/op | 1.59 |
Set add up to 256 items then delete first | 18.289 us/op | 7.6834 us/op | 2.38 |
OrderedSet add up to 256 items then delete first | 23.336 us/op | 12.158 us/op | 1.92 |
Set add up to 256 items then delete last | 17.799 us/op | 7.4444 us/op | 2.39 |
OrderedSet add up to 256 items then delete last | 25.988 us/op | 11.365 us/op | 2.29 |
Set add up to 256 items then delete middle | 18.315 us/op | 7.4250 us/op | 2.47 |
OrderedSet add up to 256 items then delete middle | 46.108 us/op | 30.334 us/op | 1.52 |
transfer serialized Status (84 B) | 1.6400 us/op | 1.3300 us/op | 1.23 |
copy serialized Status (84 B) | 1.3590 us/op | 1.0580 us/op | 1.28 |
transfer serialized SignedVoluntaryExit (112 B) | 1.8250 us/op | 1.3120 us/op | 1.39 |
copy serialized SignedVoluntaryExit (112 B) | 1.3940 us/op | 1.1020 us/op | 1.26 |
transfer serialized ProposerSlashing (416 B) | 3.2140 us/op | 1.9610 us/op | 1.64 |
copy serialized ProposerSlashing (416 B) | 2.9560 us/op | 2.0300 us/op | 1.46 |
transfer serialized Attestation (485 B) | 3.3640 us/op | 2.0770 us/op | 1.62 |
copy serialized Attestation (485 B) | 2.9270 us/op | 1.7380 us/op | 1.68 |
transfer serialized AttesterSlashing (33232 B) | 2.9210 us/op | 2.0930 us/op | 1.40 |
copy serialized AttesterSlashing (33232 B) | 6.7850 us/op | 5.1030 us/op | 1.33 |
transfer serialized Small SignedBeaconBlock (128000 B) | 3.1580 us/op | 2.2360 us/op | 1.41 |
copy serialized Small SignedBeaconBlock (128000 B) | 23.326 us/op | 12.057 us/op | 1.93 |
transfer serialized Avg SignedBeaconBlock (200000 B) | 3.4480 us/op | 2.0560 us/op | 1.68 |
copy serialized Avg SignedBeaconBlock (200000 B) | 28.107 us/op | 17.843 us/op | 1.58 |
transfer serialized BlobsSidecar (524380 B) | 3.1490 us/op | 1.8660 us/op | 1.69 |
copy serialized BlobsSidecar (524380 B) | 85.100 us/op | 73.719 us/op | 1.15 |
transfer serialized Big SignedBeaconBlock (1000000 B) | 3.4190 us/op | 2.0990 us/op | 1.63 |
copy serialized Big SignedBeaconBlock (1000000 B) | 165.55 us/op | 132.92 us/op | 1.25 |
pass gossip attestations to forkchoice per slot | 4.3031 ms/op | 2.6458 ms/op | 1.63 |
forkChoice updateHead vc 100000 bc 64 eq 0 | 731.31 us/op | 496.91 us/op | 1.47 |
forkChoice updateHead vc 600000 bc 64 eq 0 | 4.6208 ms/op | 2.5642 ms/op | 1.80 |
forkChoice updateHead vc 1000000 bc 64 eq 0 | 7.1121 ms/op | 4.3253 ms/op | 1.64 |
forkChoice updateHead vc 600000 bc 320 eq 0 | 4.0960 ms/op | 2.6313 ms/op | 1.56 |
forkChoice updateHead vc 600000 bc 1200 eq 0 | 4.3468 ms/op | 2.6818 ms/op | 1.62 |
forkChoice updateHead vc 600000 bc 7200 eq 0 | 5.4085 ms/op | 3.2177 ms/op | 1.68 |
forkChoice updateHead vc 600000 bc 64 eq 1000 | 11.036 ms/op | 9.8004 ms/op | 1.13 |
forkChoice updateHead vc 600000 bc 64 eq 10000 | 11.884 ms/op | 9.8880 ms/op | 1.20 |
forkChoice updateHead vc 600000 bc 64 eq 300000 | 15.316 ms/op | 11.872 ms/op | 1.29 |
computeDeltas 500000 validators 300 proto nodes | 6.5591 ms/op | 3.1550 ms/op | 2.08 |
computeDeltas 500000 validators 1200 proto nodes | 6.4455 ms/op | 3.0425 ms/op | 2.12 |
computeDeltas 500000 validators 7200 proto nodes | 6.2936 ms/op | 2.9930 ms/op | 2.10 |
computeDeltas 750000 validators 300 proto nodes | 9.5273 ms/op | 4.6445 ms/op | 2.05 |
computeDeltas 750000 validators 1200 proto nodes | 9.3919 ms/op | 4.4902 ms/op | 2.09 |
computeDeltas 750000 validators 7200 proto nodes | 9.5487 ms/op | 4.7106 ms/op | 2.03 |
computeDeltas 1400000 validators 300 proto nodes | 19.000 ms/op | 8.8414 ms/op | 2.15 |
computeDeltas 1400000 validators 1200 proto nodes | 19.036 ms/op | 9.1566 ms/op | 2.08 |
computeDeltas 1400000 validators 7200 proto nodes | 18.774 ms/op | 8.7482 ms/op | 2.15 |
computeDeltas 2100000 validators 300 proto nodes | 29.624 ms/op | 12.896 ms/op | 2.30 |
computeDeltas 2100000 validators 1200 proto nodes | 29.271 ms/op | 12.919 ms/op | 2.27 |
computeDeltas 2100000 validators 7200 proto nodes | 28.853 ms/op | 13.389 ms/op | 2.16 |
altair processAttestation - 250000 vs - 7PWei normalcase | 2.2779 ms/op | 1.5855 ms/op | 1.44 |
altair processAttestation - 250000 vs - 7PWei worstcase | 3.3162 ms/op | 2.2388 ms/op | 1.48 |
altair processAttestation - setStatus - 1/6 committees join | 182.39 us/op | 74.941 us/op | 2.43 |
altair processAttestation - setStatus - 1/3 committees join | 347.81 us/op | 153.62 us/op | 2.26 |
altair processAttestation - setStatus - 1/2 committees join | 477.72 us/op | 213.83 us/op | 2.23 |
altair processAttestation - setStatus - 2/3 committees join | 585.09 us/op | 285.88 us/op | 2.05 |
altair processAttestation - setStatus - 4/5 committees join | 792.09 us/op | 390.93 us/op | 2.03 |
altair processAttestation - setStatus - 100% committees join | 924.08 us/op | 462.04 us/op | 2.00 |
altair processBlock - 250000 vs - 7PWei normalcase | 10.195 ms/op | 7.7470 ms/op | 1.32 |
altair processBlock - 250000 vs - 7PWei normalcase hashState | 33.624 ms/op | 29.179 ms/op | 1.15 |
altair processBlock - 250000 vs - 7PWei worstcase | 44.607 ms/op | 32.207 ms/op | 1.39 |
altair processBlock - 250000 vs - 7PWei worstcase hashState | 99.033 ms/op | 79.405 ms/op | 1.25 |
phase0 processBlock - 250000 vs - 7PWei normalcase | 2.8002 ms/op | 1.8229 ms/op | 1.54 |
phase0 processBlock - 250000 vs - 7PWei worstcase | 31.577 ms/op | 23.480 ms/op | 1.34 |
altair processEth1Data - 250000 vs - 7PWei normalcase | 514.92 us/op | 357.56 us/op | 1.44 |
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 11.650 us/op | 9.1400 us/op | 1.27 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 73.976 us/op | 41.346 us/op | 1.79 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 14.115 us/op | 5.0180 us/op | 2.81 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 14.871 us/op | 3.8680 us/op | 3.84 |
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 192.11 us/op | 153.50 us/op | 1.25 |
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 1.3642 ms/op | 1.1420 ms/op | 1.19 |
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 2.0558 ms/op | 1.1865 ms/op | 1.73 |
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 1.8797 ms/op | 1.0431 ms/op | 1.80 |
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 4.3405 ms/op | 2.7924 ms/op | 1.55 |
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 2.7132 ms/op | 2.0044 ms/op | 1.35 |
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 5.7432 ms/op | 3.8856 ms/op | 1.48 |
Tree 40 250000 create | 528.76 ms/op | 259.83 ms/op | 2.04 |
Tree 40 250000 get(125000) | 223.65 ns/op | 115.53 ns/op | 1.94 |
Tree 40 250000 set(125000) | 1.2999 us/op | 751.98 ns/op | 1.73 |
Tree 40 250000 toArray() | 27.466 ms/op | 9.7883 ms/op | 2.81 |
Tree 40 250000 iterate all - toArray() + loop | 25.593 ms/op | 10.064 ms/op | 2.54 |
Tree 40 250000 iterate all - get(i) | 78.974 ms/op | 42.097 ms/op | 1.88 |
MutableVector 250000 create | 15.527 ms/op | 11.900 ms/op | 1.30 |
MutableVector 250000 get(125000) | 6.8600 ns/op | 5.6580 ns/op | 1.21 |
MutableVector 250000 set(125000) | 393.87 ns/op | 218.40 ns/op | 1.80 |
MutableVector 250000 toArray() | 4.2614 ms/op | 3.0036 ms/op | 1.42 |
MutableVector 250000 iterate all - toArray() + loop | 5.3355 ms/op | 3.3155 ms/op | 1.61 |
MutableVector 250000 iterate all - get(i) | 1.6348 ms/op | 1.2950 ms/op | 1.26 |
Array 250000 create | 3.8175 ms/op | 2.9946 ms/op | 1.27 |
Array 250000 clone - spread | 1.5255 ms/op | 1.1861 ms/op | 1.29 |
Array 250000 get(125000) | 1.2970 ns/op | 1.0190 ns/op | 1.27 |
Array 250000 set(125000) | 5.4120 ns/op | 1.2100 ns/op | 4.47 |
Array 250000 iterate all - loop | 172.16 us/op | 146.47 us/op | 1.18 |
effectiveBalanceIncrements clone Uint8Array 300000 | 59.457 us/op | 26.247 us/op | 2.27 |
effectiveBalanceIncrements clone MutableVector 300000 | 454.00 ns/op | 426.00 ns/op | 1.07 |
effectiveBalanceIncrements rw all Uint8Array 300000 | 210.63 us/op | 177.63 us/op | 1.19 |
effectiveBalanceIncrements rw all MutableVector 300000 | 109.61 ms/op | 69.854 ms/op | 1.57 |
phase0 afterProcessEpoch - 250000 vs - 7PWei | 123.16 ms/op | 73.517 ms/op | 1.68 |
phase0 beforeProcessEpoch - 250000 vs - 7PWei | 62.313 ms/op | 33.745 ms/op | 1.85 |
altair processEpoch - mainnet_e81889 | 586.85 ms/op | 413.34 ms/op | 1.42 |
mainnet_e81889 - altair beforeProcessEpoch | 92.895 ms/op | 71.573 ms/op | 1.30 |
mainnet_e81889 - altair processJustificationAndFinalization | 17.519 us/op | 10.185 us/op | 1.72 |
mainnet_e81889 - altair processInactivityUpdates | 7.1671 ms/op | 4.5232 ms/op | 1.58 |
mainnet_e81889 - altair processRewardsAndPenalties | 84.792 ms/op | 58.621 ms/op | 1.45 |
mainnet_e81889 - altair processRegistryUpdates | 3.0000 us/op | 1.8210 us/op | 1.65 |
mainnet_e81889 - altair processSlashings | 555.00 ns/op | 567.00 ns/op | 0.98 |
mainnet_e81889 - altair processEth1DataReset | 630.00 ns/op | 539.00 ns/op | 1.17 |
mainnet_e81889 - altair processEffectiveBalanceUpdates | 1.4516 ms/op | 1.7812 ms/op | 0.81 |
mainnet_e81889 - altair processSlashingsReset | 4.5670 us/op | 2.2560 us/op | 2.02 |
mainnet_e81889 - altair processRandaoMixesReset | 7.2470 us/op | 2.5850 us/op | 2.80 |
mainnet_e81889 - altair processHistoricalRootsUpdate | 663.00 ns/op | 688.00 ns/op | 0.96 |
mainnet_e81889 - altair processParticipationFlagUpdates | 1.8780 us/op | 1.2500 us/op | 1.50 |
mainnet_e81889 - altair processSyncCommitteeUpdates | 734.00 ns/op | 609.00 ns/op | 1.21 |
mainnet_e81889 - altair afterProcessEpoch | 121.41 ms/op | 80.041 ms/op | 1.52 |
capella processEpoch - mainnet_e217614 | 2.2839 s/op | 1.8286 s/op | 1.25 |
mainnet_e217614 - capella beforeProcessEpoch | 527.23 ms/op | 447.56 ms/op | 1.18 |
mainnet_e217614 - capella processJustificationAndFinalization | 19.696 us/op | 10.369 us/op | 1.90 |
mainnet_e217614 - capella processInactivityUpdates | 20.297 ms/op | 15.954 ms/op | 1.27 |
mainnet_e217614 - capella processRewardsAndPenalties | 437.09 ms/op | 387.58 ms/op | 1.13 |
mainnet_e217614 - capella processRegistryUpdates | 39.826 us/op | 18.172 us/op | 2.19 |
mainnet_e217614 - capella processSlashings | 654.00 ns/op | 558.00 ns/op | 1.17 |
mainnet_e217614 - capella processEth1DataReset | 872.00 ns/op | 543.00 ns/op | 1.61 |
mainnet_e217614 - capella processEffectiveBalanceUpdates | 12.993 ms/op | 5.0723 ms/op | 2.56 |
mainnet_e217614 - capella processSlashingsReset | 3.3610 us/op | 1.5690 us/op | 2.14 |
mainnet_e217614 - capella processRandaoMixesReset | 6.5850 us/op | 2.7470 us/op | 2.40 |
mainnet_e217614 - capella processHistoricalRootsUpdate | 777.00 ns/op | 653.00 ns/op | 1.19 |
mainnet_e217614 - capella processParticipationFlagUpdates | 1.9640 us/op | 1.4640 us/op | 1.34 |
mainnet_e217614 - capella afterProcessEpoch | 345.25 ms/op | 237.46 ms/op | 1.45 |
phase0 processEpoch - mainnet_e58758 | 481.65 ms/op | 390.78 ms/op | 1.23 |
mainnet_e58758 - phase0 beforeProcessEpoch | 154.24 ms/op | 97.940 ms/op | 1.57 |
mainnet_e58758 - phase0 processJustificationAndFinalization | 19.370 us/op | 10.740 us/op | 1.80 |
mainnet_e58758 - phase0 processRewardsAndPenalties | 57.300 ms/op | 50.526 ms/op | 1.13 |
mainnet_e58758 - phase0 processRegistryUpdates | 15.920 us/op | 7.0920 us/op | 2.24 |
mainnet_e58758 - phase0 processSlashings | 758.00 ns/op | 554.00 ns/op | 1.37 |
mainnet_e58758 - phase0 processEth1DataReset | 628.00 ns/op | 551.00 ns/op | 1.14 |
mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 1.1944 ms/op | 1.3900 ms/op | 0.86 |
mainnet_e58758 - phase0 processSlashingsReset | 4.9980 us/op | 2.8910 us/op | 1.73 |
mainnet_e58758 - phase0 processRandaoMixesReset | 8.4690 us/op | 3.0920 us/op | 2.74 |
mainnet_e58758 - phase0 processHistoricalRootsUpdate | 1.0360 us/op | 484.00 ns/op | 2.14 |
mainnet_e58758 - phase0 processParticipationRecordUpdates | 7.2580 us/op | 2.8260 us/op | 2.57 |
mainnet_e58758 - phase0 afterProcessEpoch | 102.37 ms/op | 63.653 ms/op | 1.61 |
phase0 processEffectiveBalanceUpdates - 250000 normalcase | 1.4408 ms/op | 990.34 us/op | 1.45 |
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 1.5699 ms/op | 1.1561 ms/op | 1.36 |
altair processInactivityUpdates - 250000 normalcase | 36.852 ms/op | 20.741 ms/op | 1.78 |
altair processInactivityUpdates - 250000 worstcase | 30.226 ms/op | 21.378 ms/op | 1.41 |
phase0 processRegistryUpdates - 250000 normalcase | 14.908 us/op | 9.6110 us/op | 1.55 |
phase0 processRegistryUpdates - 250000 badcase_full_deposits | 606.05 us/op | 393.86 us/op | 1.54 |
phase0 processRegistryUpdates - 250000 worstcase 0.5 | 181.05 ms/op | 116.59 ms/op | 1.55 |
altair processRewardsAndPenalties - 250000 normalcase | 75.478 ms/op | 58.817 ms/op | 1.28 |
altair processRewardsAndPenalties - 250000 worstcase | 80.667 ms/op | 56.796 ms/op | 1.42 |
phase0 getAttestationDeltas - 250000 normalcase | 14.499 ms/op | 5.6794 ms/op | 2.55 |
phase0 getAttestationDeltas - 250000 worstcase | 14.541 ms/op | 5.2664 ms/op | 2.76 |
phase0 processSlashings - 250000 worstcase | 143.46 us/op | 87.839 us/op | 1.63 |
altair processSyncCommitteeUpdates - 250000 | 189.55 ms/op | 122.68 ms/op | 1.55 |
BeaconState.hashTreeRoot - No change | 1.0270 us/op | 610.00 ns/op | 1.68 |
BeaconState.hashTreeRoot - 1 full validator | 188.23 us/op | 102.31 us/op | 1.84 |
BeaconState.hashTreeRoot - 32 full validator | 2.0151 ms/op | 1.5302 ms/op | 1.32 |
BeaconState.hashTreeRoot - 512 full validator | 21.005 ms/op | 12.889 ms/op | 1.63 |
BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 247.99 us/op | 139.77 us/op | 1.77 |
BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 3.2679 ms/op | 1.5345 ms/op | 2.13 |
BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 46.787 ms/op | 20.360 ms/op | 2.30 |
BeaconState.hashTreeRoot - 1 balances | 185.72 us/op | 82.813 us/op | 2.24 |
BeaconState.hashTreeRoot - 32 balances | 1.8069 ms/op | 748.16 us/op | 2.42 |
BeaconState.hashTreeRoot - 512 balances | 17.781 ms/op | 7.4957 ms/op | 2.37 |
BeaconState.hashTreeRoot - 250000 balances | 260.81 ms/op | 136.30 ms/op | 1.91 |
aggregationBits - 2048 els - zipIndexesInBitList | 36.029 us/op | 10.637 us/op | 3.39 |
byteArrayEquals 32 | 94.695 ns/op | 64.710 ns/op | 1.46 |
Buffer.compare 32 | 62.399 ns/op | 37.350 ns/op | 1.67 |
byteArrayEquals 1024 | 2.4212 us/op | 1.7620 us/op | 1.37 |
Buffer.compare 1024 | 76.877 ns/op | 44.286 ns/op | 1.74 |
byteArrayEquals 16384 | 47.122 us/op | 28.056 us/op | 1.68 |
Buffer.compare 16384 | 289.77 ns/op | 218.26 ns/op | 1.33 |
byteArrayEquals 123687377 | 297.21 ms/op | 211.18 ms/op | 1.41 |
Buffer.compare 123687377 | 10.816 ms/op | 6.9481 ms/op | 1.56 |
byteArrayEquals 32 - diff last byte | 101.47 ns/op | 62.636 ns/op | 1.62 |
Buffer.compare 32 - diff last byte | 65.064 ns/op | 38.672 ns/op | 1.68 |
byteArrayEquals 1024 - diff last byte | 2.2607 us/op | 1.8365 us/op | 1.23 |
Buffer.compare 1024 - diff last byte | 80.286 ns/op | 47.334 ns/op | 1.70 |
byteArrayEquals 16384 - diff last byte | 36.304 us/op | 28.479 us/op | 1.27 |
Buffer.compare 16384 - diff last byte | 261.38 ns/op | 224.58 ns/op | 1.16 |
byteArrayEquals 123687377 - diff last byte | 256.50 ms/op | 212.08 ms/op | 1.21 |
Buffer.compare 123687377 - diff last byte | 7.4248 ms/op | 6.9068 ms/op | 1.08 |
byteArrayEquals 32 - random bytes | 6.0350 ns/op | 5.0000 ns/op | 1.21 |
Buffer.compare 32 - random bytes | 64.091 ns/op | 40.823 ns/op | 1.57 |
byteArrayEquals 1024 - random bytes | 5.8430 ns/op | 5.3890 ns/op | 1.08 |
Buffer.compare 1024 - random bytes | 62.328 ns/op | 46.172 ns/op | 1.35 |
byteArrayEquals 16384 - random bytes | 5.3590 ns/op | 5.1410 ns/op | 1.04 |
Buffer.compare 16384 - random bytes | 60.741 ns/op | 39.107 ns/op | 1.55 |
byteArrayEquals 123687377 - random bytes | 8.6200 ns/op | 8.2700 ns/op | 1.04 |
Buffer.compare 123687377 - random bytes | 65.320 ns/op | 43.300 ns/op | 1.51 |
regular array get 100000 times | 47.805 us/op | 42.889 us/op | 1.11 |
wrappedArray get 100000 times | 45.527 us/op | 43.103 us/op | 1.06 |
arrayWithProxy get 100000 times | 14.089 ms/op | 10.482 ms/op | 1.34 |
ssz.Root.equals | 54.690 ns/op | 56.707 ns/op | 0.96 |
byteArrayEquals | 54.245 ns/op | 55.991 ns/op | 0.97 |
Buffer.compare | 11.772 ns/op | 10.607 ns/op | 1.11 |
shuffle list - 16384 els | 7.0790 ms/op | 4.7700 ms/op | 1.48 |
shuffle list - 250000 els | 102.56 ms/op | 71.349 ms/op | 1.44 |
processSlot - 1 slots | 16.798 us/op | 13.847 us/op | 1.21 |
processSlot - 32 slots | 3.6536 ms/op | 2.6486 ms/op | 1.38 |
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 59.694 ms/op | 52.061 ms/op | 1.15 |
getCommitteeAssignments - req 1 vs - 250000 vc | 2.5027 ms/op | 2.2770 ms/op | 1.10 |
getCommitteeAssignments - req 100 vs - 250000 vc | 3.6726 ms/op | 3.4490 ms/op | 1.06 |
getCommitteeAssignments - req 1000 vs - 250000 vc | 4.0101 ms/op | 3.8072 ms/op | 1.05 |
findModifiedValidators - 10000 modified validators | 523.52 ms/op | 447.60 ms/op | 1.17 |
findModifiedValidators - 1000 modified validators | 422.38 ms/op | 346.90 ms/op | 1.22 |
findModifiedValidators - 100 modified validators | 413.10 ms/op | 351.60 ms/op | 1.17 |
findModifiedValidators - 10 modified validators | 407.86 ms/op | 331.78 ms/op | 1.23 |
findModifiedValidators - 1 modified validators | 407.73 ms/op | 345.25 ms/op | 1.18 |
findModifiedValidators - no difference | 413.08 ms/op | 350.18 ms/op | 1.18 |
compare ViewDUs | 4.3020 s/op | 4.4888 s/op | 0.96 |
compare each validator Uint8Array | 1.5458 s/op | 1.3689 s/op | 1.13 |
compare ViewDU to Uint8Array | 1.3069 s/op | 1.1868 s/op | 1.10 |
migrate state 1000000 validators, 24 modified, 0 new | 747.59 ms/op | 809.45 ms/op | 0.92 |
migrate state 1000000 validators, 1700 modified, 1000 new | 1.0488 s/op | 991.41 ms/op | 1.06 |
migrate state 1000000 validators, 3400 modified, 2000 new | 1.2888 s/op | 1.1119 s/op | 1.16 |
migrate state 1500000 validators, 24 modified, 0 new | 769.82 ms/op | 591.10 ms/op | 1.30 |
migrate state 1500000 validators, 1700 modified, 1000 new | 1.0167 s/op | 870.61 ms/op | 1.17 |
migrate state 1500000 validators, 3400 modified, 2000 new | 1.2651 s/op | 1.1451 s/op | 1.10 |
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 4.1300 ns/op | 4.2100 ns/op | 0.98 |
state getBlockRootAtSlot - 250000 vs - 7PWei | 548.24 ns/op | 558.00 ns/op | 0.98 |
computeProposers - vc 250000 | 9.2086 ms/op | 5.8573 ms/op | 1.57 |
computeEpochShuffling - vc 250000 | 103.24 ms/op | 66.787 ms/op | 1.55 |
getNextSyncCommittee - vc 250000 | 163.56 ms/op | 102.89 ms/op | 1.59 |
computeSigningRoot for AttestationData | 26.263 us/op | 21.387 us/op | 1.23 |
hash AttestationData serialized data then Buffer.toString(base64) | 2.3467 us/op | 1.2136 us/op | 1.93 |
toHexString serialized data | 1.1114 us/op | 774.44 ns/op | 1.44 |
Buffer.toString(base64) | 217.16 ns/op | 148.12 ns/op | 1.47 |
by benchmarkbot/action
3ea1a0f
to
651723a
Compare
b8de48e
to
f1719af
Compare
/** | ||
* Formats an address according to [ERC55](https://eips.ethereum.org/EIPS/eip-55) | ||
*/ | ||
export function toChecksumAddress(address: string): string { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this used anywhere yet? or is this PR just adding the functionality for later?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you mean specifically because of the export
keyword?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess I missed L64 of primitive/sszTypes.ts
where this is being used.
This is fine to add here for now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It also needs to be exported for unit testing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is fine to add here for now.
yeah, thought so as well, we might need furher custom ssz types (for ssz api refactoring), will likely have to revisit and maybe restructure this at some point
🎉 This PR is included in v1.16.0 🎉 |
Motivation
Format
ExecutionAddress
as ERC55 for API consumption. ERC55 is reimplemented on top ofethereum-cryptography/keccak.js
to reduce external dependencies.Closes #6211