From 28da830049908f366beb7e3b68ab8330bb26a7cb Mon Sep 17 00:00:00 2001 From: Sam Calder-Mason Date: Fri, 10 Jan 2025 18:40:54 +1000 Subject: [PATCH] add beacon --- config.yaml | 45 +- .../block_timings/holesky/last_30_days.json | 1 + .../block_timings/holesky/last_90_days.json | 1 + .../block_timings/mainnet/last_30_days.json | 1 + .../block_timings/mainnet/last_90_days.json | 1 + .../block_timings/sepolia/last_30_days.json | 1 + .../block_timings/sepolia/last_90_days.json | 1 + .../size_cdf/holesky/last_30_days.json | 1 + .../size_cdf/holesky/last_90_days.json | 1 + .../size_cdf/mainnet/last_30_days.json | 1 + .../size_cdf/mainnet/last_90_days.json | 1 + .../size_cdf/sepolia/last_30_days.json | 1 + .../size_cdf/sepolia/last_90_days.json | 1 + frontend/.eslintrc.json | 12 +- frontend/public/ethereum.png | Bin 0 -> 272815 bytes frontend/src/App.tsx | 5 + .../src/components/layout/Breadcrumbs.tsx | 7 + frontend/src/components/layout/Layout.tsx | 35 +- frontend/src/components/layout/Navigation.tsx | 7 + frontend/src/index.css | 40 + frontend/src/pages/Home.tsx | 18 + .../beacon-chain-timings/blocks/index.tsx | 659 ++++++++ .../src/pages/beacon-chain-timings/index.tsx | 48 + frontend/src/types.ts | 12 + notebooks/beacon-chain-timings.ipynb | 416 +++++ notebooks/lib/config.py | 35 +- notebooks/mev-relays.disabled-ipynb | 1503 +++++++++++++++++ 27 files changed, 2796 insertions(+), 58 deletions(-) create mode 100644 data/beacon-chain-timings/block_timings/holesky/last_30_days.json create mode 100644 data/beacon-chain-timings/block_timings/holesky/last_90_days.json create mode 100644 data/beacon-chain-timings/block_timings/mainnet/last_30_days.json create mode 100644 data/beacon-chain-timings/block_timings/mainnet/last_90_days.json create mode 100644 data/beacon-chain-timings/block_timings/sepolia/last_30_days.json create mode 100644 data/beacon-chain-timings/block_timings/sepolia/last_90_days.json create mode 100644 data/beacon-chain-timings/size_cdf/holesky/last_30_days.json create mode 100644 data/beacon-chain-timings/size_cdf/holesky/last_90_days.json create mode 100644 data/beacon-chain-timings/size_cdf/mainnet/last_30_days.json create mode 100644 data/beacon-chain-timings/size_cdf/mainnet/last_90_days.json create mode 100644 data/beacon-chain-timings/size_cdf/sepolia/last_30_days.json create mode 100644 data/beacon-chain-timings/size_cdf/sepolia/last_90_days.json create mode 100644 frontend/public/ethereum.png create mode 100644 frontend/src/pages/beacon-chain-timings/blocks/index.tsx create mode 100644 frontend/src/pages/beacon-chain-timings/index.tsx create mode 100644 notebooks/beacon-chain-timings.ipynb create mode 100644 notebooks/mev-relays.disabled-ipynb diff --git a/config.yaml b/config.yaml index 2e63ea8d..a3407a85 100644 --- a/config.yaml +++ b/config.yaml @@ -4,7 +4,7 @@ data: notebooks: xatu-public-contributors: enabled: true - schedule_hours: 3 + schedule_hours: 1 description: "Analyzes public Xatu contributor data and client versions" networks: - mainnet @@ -27,15 +27,34 @@ notebooks: step: "5m" label: "Last 6h" range: "-6h" - # - file: "next_week" - # step: "1d" - # label: "+7d" - # range: "+7d" - # - file: "2024_q1" - # step: "1d" - # label: "Q1 2024" - # range: "2024-01-01/2024-03-31" - # - file: "last_2_weeks" - # step: "6h" - # label: "2w" - # range: "-2w" \ No newline at end of file + # mev-relays: + # enabled: false + # schedule_hours: 1 + # description: "Analyzes MEV relays" + # networks: + # - mainnet + beacon-chain-timings: + enabled: true + schedule_hours: 1 + description: "Analyzes beacon chain timings" + networks: + - mainnet + - sepolia + - holesky + time_windows: + - file: "last_30_days" + step: "6h" + label: "Last 30d" + range: "-30d" + - file: "last_90_days" + step: "1d" + label: "Last 90d" + range: "-90d" + # - file: "last_1_day" + # step: "5m" + # label: "Last 1d" + # range: "-1d" + # - file: "last_year" + # step: "1d" + # label: "Last 1y" + # range: "-365d" \ No newline at end of file diff --git a/data/beacon-chain-timings/block_timings/holesky/last_30_days.json b/data/beacon-chain-timings/block_timings/holesky/last_30_days.json new file mode 100644 index 00000000..5dfb4d24 --- /dev/null +++ b/data/beacon-chain-timings/block_timings/holesky/last_30_days.json @@ -0,0 +1 @@ +{"updated_at": 1736496265, "timestamps": [1733860800, 1733882400, 1733904000, 1733925600, 1733947200, 1733968800, 1733990400, 1734012000, 1734033600, 1734055200, 1734076800, 1734098400, 1734120000, 1734141600, 1734163200, 1734184800, 1734206400, 1734228000, 1734249600, 1734271200, 1734292800, 1734314400, 1734336000, 1734357600, 1734379200, 1734400800, 1734422400, 1734444000, 1734465600, 1734487200, 1734508800, 1734530400, 1734552000, 1734573600, 1734595200, 1734616800, 1734638400, 1734660000, 1734681600, 1734703200, 1734724800, 1734746400, 1734768000, 1734789600, 1734811200, 1734832800, 1734854400, 1734876000, 1734897600, 1734919200, 1734940800, 1734962400, 1734984000, 1735005600, 1735027200, 1735048800, 1735070400, 1735092000, 1735113600, 1735135200, 1735156800, 1735178400, 1735200000, 1735221600, 1735243200, 1735264800, 1735286400, 1735308000, 1735329600, 1735351200, 1735372800, 1735394400, 1735416000, 1735437600, 1735459200, 1735480800, 1735502400, 1735524000, 1735545600, 1735567200, 1735588800, 1735610400, 1735632000, 1735653600, 1735675200, 1735696800, 1735718400, 1735740000, 1735761600, 1735783200, 1735804800, 1735826400, 1735848000, 1735869600, 1735891200, 1735912800, 1735934400, 1735956000, 1735977600, 1735999200, 1736020800, 1736042400, 1736064000, 1736085600, 1736107200, 1736128800, 1736150400, 1736172000, 1736193600, 1736215200, 1736236800, 1736258400, 1736280000, 1736301600, 1736323200, 1736344800, 1736366400, 1736388000, 1736409600, 1736431200, 1736452800], "mins": [643, 659, 606, 613, 515, 665, 682, 493, 559, 490, 598, 621, 569, 573, 569, 540, 580, 619, 625, 580, 528, 551, 573, 555, 631, 629, 609, 627, 654, 567, 598, 541, 591, 598, 467, 513, 571, 655, 565, 646, 631, 574, 617, 646, 636, 535, 567, 531, 627, 458, 635, 577, 574, 607, 655, 572, 581, 620, 579, 563, 574, 613, 610, 584, 563, 646, 606, 556, 596, 595, 565, 497, 707, 661, 548, 563, 549, 606, 579, 635, 603, 576, 544, 606, 667, 699, 590, 613, 548, 662, 603, 562, 602, 547, 571, 642, 562, 582, 576, 536, 646, 614, 639, 583, 628, 640, 744, 691, 626, 448, 469, 466, 461, 456, 427, 508, 435, 478, 385, 422, 468], "maxs": [5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5998, 5999, 5999, 5999, 5999, 5998, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5998, 5999, 5999, 5999, 5999, 5998, 5999, 5999, 5999, 5999, 5998, 5999, 5999, 5999, 5999, 5998, 5999, 5999, 5999, 5998, 5999, 5999, 5999, 5998, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5998, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5998, 5999, 5998, 5999, 5998, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5998, 5999, 5998, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5998, 5998], "avgs": [2846.358, 2879.334, 2895.473, 2886.213, 2922.478, 2928.624, 2936.806, 2898.432, 2920.124, 2944.655, 2932.698, 2925.555, 2957.1, 2938.549, 2915.175, 2909.733, 2942.961, 2905.812, 2883.948, 2944.094, 3009.957, 3014.057, 2998.64, 2991.308, 2996.971, 2918.771, 2916.701, 2916.339, 2937.557, 2966.487, 2951.835, 2948.247, 2955.824, 3005.729, 2981.845, 2969.66, 3006.529, 2974.055, 2991.976, 3007.792, 2975.825, 3005.524, 2999.086, 2991.741, 2962.101, 2978.193, 2998.092, 2997.366, 3003.744, 3015.719, 2967.106, 2980.847, 2993.181, 2931.51, 2973.798, 2966.547, 3003.675, 2995.381, 3001.65, 2995.937, 3032.019, 3003.206, 3011.253, 3025.018, 2999.977, 2989.3, 3026.468, 3024.144, 3014.174, 3007.673, 2998.595, 2967.84, 2985.006, 2976.874, 2950.744, 3000.655, 3013.129, 2992.217, 3041.96, 3011.031, 2927.234, 2903.833, 2910.795, 2912.061, 2965.656, 2941.021, 2918.565, 2957.214, 2929.64, 2963.808, 2939.067, 2946.42, 2924.55, 2909.555, 2950.504, 2955.472, 2953.984, 2934.61, 2936.086, 2959.118, 2900.388, 2937.339, 2894.241, 2927.115, 2924.773, 2961.272, 2974.325, 2992.223, 2957.944, 2827.972, 2915.588, 2887.504, 2878.017, 2897.041, 2882.146, 2887.454, 2898.065, 2933.341, 2900.274, 2901.187, 2940.722], "p05s": [1041.55, 1067.0, 1063.55, 1040.0, 1053.0, 1063.0, 1057.0, 1029.55, 1042.55, 1074.55, 1070.0, 1064.0, 1095.55, 1073.0, 1059.0, 1049.0, 1069.0, 1063.55, 1069.0, 1082.0, 1110.55, 1091.0, 1107.55, 1070.0, 1076.0, 1081.55, 1076.0, 1070.55, 1076.0, 1078.0, 1067.0, 1057.0, 1086.0, 1113.0, 1137.0, 1072.0, 1107.0, 1097.55, 1098.0, 1095.0, 1055.0, 1090.0, 1071.0, 1066.55, 1080.0, 1091.0, 1086.55, 1087.55, 1076.0, 1104.0, 1044.0, 1064.55, 1080.0, 1044.55, 1057.55, 1072.0, 1083.0, 1083.0, 1076.55, 1081.55, 1092.55, 1089.0, 1094.0, 1092.55, 1069.0, 1074.55, 1071.0, 1083.55, 1114.0, 1070.0, 1056.0, 1061.0, 1081.0, 1085.0, 1055.55, 1129.0, 1076.55, 1109.1, 1111.55, 1135.0, 1086.0, 1069.55, 1085.1, 1073.0, 1146.55, 1108.55, 1062.55, 1104.55, 1090.0, 1133.0, 1123.0, 1128.0, 1099.0, 1106.0, 1114.55, 1103.0, 1105.0, 1119.55, 1093.0, 1120.0, 1097.0, 1096.0, 1066.0, 1083.0, 1096.55, 1137.0, 1108.0, 1113.0, 1105.55, 1063.0, 1058.55, 1051.55, 1057.55, 1058.0, 1053.0, 1041.55, 1092.0, 1080.0, 1032.0, 1020.0, 1083.55], "p50s": [2545.0, 2531.5, 2609.5, 2553.0, 2613.0, 2711.0, 2675.0, 2622.0, 2761.0, 2667.0, 2629.5, 2621.0, 2653.5, 2705.5, 2654.5, 2607.0, 2640.0, 2612.0, 2599.5, 2681.5, 2787.5, 2799.5, 2818.5, 2776.0, 2732.0, 2662.0, 2694.0, 2626.5, 2691.0, 2764.0, 2809.0, 2679.0, 2782.5, 2822.0, 2699.5, 2719.0, 2806.0, 2748.5, 2807.0, 2830.0, 2826.0, 2854.0, 2819.0, 2790.0, 2785.0, 2800.0, 2809.0, 2784.5, 2779.5, 2797.0, 2755.5, 2744.5, 2738.5, 2694.0, 2760.0, 2803.0, 2779.5, 2833.0, 2837.5, 2833.0, 2853.0, 2813.0, 2889.0, 2879.0, 2884.5, 2867.5, 2855.0, 2809.0, 2820.0, 2846.5, 2836.5, 2787.0, 2783.5, 2818.5, 2720.5, 2809.0, 2832.5, 2798.0, 2867.0, 2836.0, 2735.0, 2613.0, 2674.0, 2713.0, 2785.5, 2750.0, 2741.0, 2788.0, 2746.5, 2771.0, 2762.5, 2764.0, 2772.0, 2695.0, 2742.5, 2738.0, 2802.5, 2773.0, 2772.5, 2740.0, 2585.0, 2740.0, 2717.0, 2701.0, 2694.5, 2773.5, 2837.0, 2908.5, 2827.5, 2570.0, 2792.5, 2748.0, 2653.0, 2788.5, 2756.5, 2705.0, 2812.5, 2840.0, 2790.0, 2833.0, 2826.5], "p95s": [5405.0, 5406.45, 5395.0, 5395.0, 5456.45, 5422.45, 5437.45, 5459.45, 5478.0, 5453.0, 5425.45, 5466.0, 5471.45, 5513.0, 5397.45, 5497.35, 5484.25, 5441.0, 5419.0, 5483.0, 5515.45, 5494.0, 5464.0, 5516.0, 5509.45, 5456.8, 5464.0, 5475.9, 5533.45, 5559.8, 5447.0, 5482.45, 5531.45, 5518.0, 5445.45, 5537.45, 5499.9, 5496.45, 5497.45, 5456.45, 5507.0, 5507.0, 5480.0, 5501.0, 5565.9, 5490.45, 5509.0, 5510.0, 5526.9, 5544.0, 5478.45, 5492.45, 5495.8, 5428.9, 5466.0, 5491.9, 5477.0, 5506.45, 5494.0, 5504.9, 5522.0, 5492.0, 5481.45, 5491.45, 5521.45, 5460.9, 5515.0, 5483.35, 5476.0, 5520.0, 5508.45, 5461.9, 5462.9, 5490.45, 5480.0, 5507.9, 5508.45, 5526.45, 5540.45, 5556.9, 5523.45, 5447.35, 5431.0, 5462.0, 5448.45, 5435.45, 5470.9, 5436.45, 5380.35, 5349.45, 5327.0, 5389.0, 5369.0, 5365.0, 5436.0, 5432.45, 5451.35, 5408.05, 5440.0, 5351.0, 5293.0, 5391.0, 5364.15, 5419.0, 5439.9, 5469.45, 5442.0, 5442.0, 5445.45, 5236.45, 5345.0, 5365.0, 5285.45, 5273.35, 5291.0, 5317.8, 5300.0, 5311.0, 5352.35, 5327.0, 5316.25], "blocks": [17260, 26047, 25631, 26107, 26002, 25876, 25241, 25702, 26216, 26188, 26279, 25802, 26051, 26523, 26645, 26662, 27174, 28271, 28973, 28124, 26880, 26236, 26615, 26397, 25876, 26917, 27320, 27412, 26491, 26038, 26129, 26801, 27397, 26733, 27018, 27194, 26937, 27062, 27062, 27189, 27134, 26984, 26780, 26980, 26975, 26810, 26592, 27051, 27054, 26606, 26997, 26500, 26522, 26963, 27206, 26906, 26738, 26917, 26987, 26684, 26349, 27108, 26772, 26919, 27265, 26913, 26832, 26687, 26937, 26767, 26402, 26878, 27173, 26645, 26844, 26209, 26473, 26354, 26267, 25824, 26855, 26406, 26933, 26768, 26126, 26417, 25915, 25910, 25888, 26028, 26214, 26320, 25826, 26489, 26305, 26113, 26222, 26124, 26669, 26397, 26106, 26279, 26435, 26500, 26529, 25635, 26263, 26211, 26064, 24588, 25921, 25974, 26064, 25842, 26009, 25433, 26104, 24782, 25096, 24824, 8433]} \ No newline at end of file diff --git a/data/beacon-chain-timings/block_timings/holesky/last_90_days.json b/data/beacon-chain-timings/block_timings/holesky/last_90_days.json new file mode 100644 index 00000000..80ba9ca0 --- /dev/null +++ b/data/beacon-chain-timings/block_timings/holesky/last_90_days.json @@ -0,0 +1 @@ +{"updated_at": 1736496266, "timestamps": [1728655200, 1728741600, 1728828000, 1728914400, 1729000800, 1729087200, 1729173600, 1729260000, 1729346400, 1729432800, 1729519200, 1729605600, 1729692000, 1729778400, 1729864800, 1729951200, 1730037600, 1730124000, 1730210400, 1730296800, 1730383200, 1730469600, 1730556000, 1730642400, 1730728800, 1730815200, 1730901600, 1730988000, 1731074400, 1731160800, 1731247200, 1731333600, 1731420000, 1731506400, 1731592800, 1731679200, 1731765600, 1731852000, 1731938400, 1732024800, 1732111200, 1732197600, 1732284000, 1732370400, 1732456800, 1732543200, 1732629600, 1732716000, 1732802400, 1732888800, 1732975200, 1733061600, 1733148000, 1733234400, 1733320800, 1733407200, 1733493600, 1733580000, 1733666400, 1733752800, 1733839200, 1733925600, 1734012000, 1734098400, 1734184800, 1734271200, 1734357600, 1734444000, 1734530400, 1734616800, 1734703200, 1734789600, 1734876000, 1734962400, 1735048800, 1735135200, 1735221600, 1735308000, 1735394400, 1735480800, 1735567200, 1735653600, 1735740000, 1735826400, 1735912800, 1735999200, 1736085600, 1736172000, 1736258400, 1736344800, 1736431200], "mins": [518, 520, 541, 535, 543, 390, 581, 537, 503, 501, 526, 604, 484, 556, 493, 471, 541, 476, 533, 533, 595, 544, 548, 534, 430, 490, 537, 517, 499, 492, 546, 487, 547, 534, 518, 505, 540, 449, 564, 518, 524, 523, 520, 516, 458, 177, 572, 423, 527, 512, 484, 572, 591, 591, 501, 467, 554, 46, 459, 505, 544, 515, 490, 569, 540, 528, 555, 567, 467, 513, 574, 535, 458, 574, 572, 563, 563, 556, 497, 549, 544, 590, 548, 547, 562, 536, 583, 448, 427, 385, 422], "maxs": [5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5998], "avgs": [3046.802, 3064.796, 3083.353, 3126.329, 3083.416, 3102.33, 3143.225, 3086.131, 3054.003, 3086.12, 3097.524, 3114.253, 3088.212, 3139.467, 3121.988, 3146.649, 3138.586, 3087.244, 3124.526, 3102.057, 3179.309, 3295.03, 3199.592, 3103.737, 3104.474, 3102.891, 3087.016, 3114.323, 3115.265, 3122.08, 3104.316, 3065.816, 3073.721, 3097.671, 3087.195, 3072.706, 3092.486, 3177.959, 3182.957, 3186.442, 3130.643, 3172.206, 3175.599, 3144.471, 3086.02, 3071.904, 3025.167, 3313.388, 3316.705, 3327.556, 3277.07, 3107.391, 2955.419, 2975.473, 3006.593, 2915.271, 2942.978, 2906.013, 2902.394, 2906.353, 2880.17, 2918.351, 2924.103, 2934.028, 2910.138, 2990.987, 2955.215, 2942.692, 2972.814, 2985.512, 2997.044, 2982.483, 2995.917, 2969.699, 2991.803, 3010.508, 3010.146, 3011.185, 2970.148, 3011.982, 2937.641, 2934.24, 2947.43, 2932.756, 2944.999, 2922.807, 2946.684, 2924.912, 2886.155, 2904.571, 2911.212], "p05s": [1250.55, 1257.55, 1263.0, 1292.55, 1255.0, 1202.0, 1181.0, 1191.55, 1156.55, 1181.0, 1160.0, 1126.55, 1160.55, 1150.0, 1181.0, 1181.1, 1197.55, 1169.0, 1205.0, 1167.0, 1202.55, 1296.55, 1199.55, 1150.55, 1158.0, 1173.0, 1157.0, 1183.0, 1142.55, 1151.55, 1129.0, 1146.0, 1141.55, 1157.0, 1154.0, 1158.1, 1147.0, 1204.0, 1149.55, 1144.0, 1159.55, 1134.55, 1154.0, 1118.55, 1107.55, 1097.0, 1123.0, 1146.55, 1110.55, 1115.0, 1071.1, 1094.0, 1103.55, 1074.0, 1076.0, 1069.55, 1055.0, 1051.0, 1054.0, 1067.0, 1056.0, 1054.0, 1044.0, 1064.0, 1058.55, 1108.0, 1068.55, 1053.0, 1090.55, 1082.0, 1078.0, 1077.55, 1075.0, 1076.0, 1085.0, 1090.0, 1085.55, 1090.0, 1072.0, 1113.0, 1091.0, 1096.0, 1109.0, 1115.0, 1104.0, 1088.0, 1104.55, 1089.0, 1053.0, 1049.0, 1030.0], "p50s": [2796.5, 2757.5, 2827.5, 2904.5, 2889.0, 2836.5, 3017.0, 2967.5, 2860.5, 2953.0, 2927.5, 2951.5, 2965.5, 3116.0, 3072.0, 3093.0, 3037.0, 2958.5, 2927.5, 2908.0, 3022.5, 3178.0, 3092.5, 2977.5, 3015.5, 3063.0, 3032.0, 3023.0, 2986.0, 3025.0, 3022.0, 3009.0, 3004.5, 2986.5, 2990.5, 2972.0, 3058.5, 3103.0, 3146.5, 3073.5, 3068.0, 3086.5, 3103.5, 3088.0, 2920.0, 2921.5, 2883.0, 3469.0, 3494.5, 3480.0, 3435.5, 3109.5, 2806.0, 2748.5, 2958.0, 2723.0, 2799.5, 2762.5, 2665.0, 2705.0, 2531.5, 2584.0, 2648.0, 2654.5, 2591.5, 2711.0, 2703.0, 2723.0, 2762.5, 2750.0, 2817.0, 2836.0, 2746.0, 2811.0, 2804.5, 2800.5, 2880.5, 2792.0, 2795.0, 2831.0, 2747.5, 2725.5, 2750.5, 2758.5, 2740.0, 2739.5, 2787.5, 2721.5, 2666.0, 2743.5, 2805.5], "p95s": [5488.45, 5466.45, 5541.45, 5546.9, 5514.45, 5559.45, 5582.45, 5570.45, 5494.45, 5538.45, 5519.45, 5577.45, 5519.45, 5560.0, 5529.9, 5504.0, 5504.45, 5461.0, 5454.0, 5452.0, 5473.9, 5528.0, 5478.45, 5522.45, 5536.9, 5511.45, 5497.45, 5552.0, 5554.0, 5575.45, 5521.9, 5472.0, 5523.9, 5463.0, 5483.45, 5473.45, 5483.45, 5493.45, 5581.35, 5582.0, 5533.0, 5605.45, 5588.0, 5570.0, 5558.0, 5463.9, 5435.45, 5637.0, 5588.45, 5582.9, 5566.9, 5485.0, 5428.45, 5502.45, 5536.45, 5502.45, 5461.35, 5481.45, 5504.0, 5456.0, 5353.45, 5425.0, 5425.45, 5441.45, 5409.0, 5444.45, 5453.45, 5502.8, 5518.45, 5498.0, 5519.0, 5489.45, 5497.9, 5498.9, 5485.45, 5519.0, 5492.8, 5471.35, 5461.8, 5547.45, 5475.8, 5446.0, 5365.0, 5379.9, 5442.45, 5432.0, 5434.9, 5346.45, 5267.0, 5303.9, 5303.35], "blocks": [69084, 103911, 108018, 109171, 110962, 106951, 99322, 100678, 100240, 97846, 97851, 95855, 96372, 91312, 98695, 99614, 97079, 98538, 100800, 100786, 95074, 91768, 91482, 90135, 92358, 91538, 90631, 91328, 92083, 91647, 90417, 89045, 92366, 95251, 94456, 92064, 86132, 83043, 81820, 82657, 83490, 83229, 84156, 84677, 87694, 87100, 90365, 73000, 74281, 70036, 69976, 84402, 97355, 99360, 97930, 103372, 92225, 93861, 100995, 105418, 104515, 103226, 104385, 105021, 111080, 107855, 106510, 106070, 107949, 108255, 108087, 107357, 107708, 107191, 107548, 106913, 107929, 106793, 107540, 105303, 106018, 105226, 104040, 104940, 105128, 105217, 104927, 102784, 103889, 101415, 33257]} \ No newline at end of file diff --git a/data/beacon-chain-timings/block_timings/mainnet/last_30_days.json b/data/beacon-chain-timings/block_timings/mainnet/last_30_days.json new file mode 100644 index 00000000..ab5cd94a --- /dev/null +++ b/data/beacon-chain-timings/block_timings/mainnet/last_30_days.json @@ -0,0 +1 @@ +{"updated_at": 1736496265, "timestamps": [1733860800, 1733882400, 1733904000, 1733925600, 1733947200, 1733968800, 1733990400, 1734012000, 1734033600, 1734055200, 1734076800, 1734098400, 1734120000, 1734141600, 1734163200, 1734184800, 1734206400, 1734228000, 1734249600, 1734271200, 1734292800, 1734314400, 1734336000, 1734357600, 1734379200, 1734400800, 1734422400, 1734444000, 1734465600, 1734487200, 1734508800, 1734530400, 1734552000, 1734573600, 1734595200, 1734616800, 1734638400, 1734660000, 1734681600, 1734703200, 1734724800, 1734746400, 1734768000, 1734789600, 1734811200, 1734832800, 1734854400, 1734876000, 1734897600, 1734919200, 1734940800, 1734962400, 1734984000, 1735005600, 1735027200, 1735048800, 1735070400, 1735092000, 1735113600, 1735135200, 1735156800, 1735178400, 1735200000, 1735221600, 1735243200, 1735264800, 1735286400, 1735308000, 1735329600, 1735351200, 1735372800, 1735394400, 1735416000, 1735437600, 1735459200, 1735480800, 1735502400, 1735524000, 1735545600, 1735567200, 1735588800, 1735610400, 1735632000, 1735653600, 1735675200, 1735696800, 1735718400, 1735740000, 1735761600, 1735783200, 1735804800, 1735826400, 1735848000, 1735869600, 1735891200, 1735912800, 1735934400, 1735956000, 1735977600, 1735999200, 1736020800, 1736042400, 1736064000, 1736085600, 1736107200, 1736128800, 1736150400, 1736172000, 1736193600, 1736215200, 1736236800, 1736258400, 1736280000, 1736301600, 1736323200, 1736344800, 1736366400, 1736388000, 1736409600, 1736431200, 1736452800], "mins": [387, 441, 327, 489, 460, 607, 608, 443, 454, 440, 423, 504, 516, 428, 421, 437, 294, 517, 399, 152, 497, 422, 507, 457, 460, 392, 441, 553, 460, 485, 478, 451, 434, 386, 426, 403, 484, 484, 0, 579, 452, 440, 446, 402, 498, 441, 437, 383, 108, 438, 501, 458, 364, 451, 435, 489, 518, 477, 354, 427, 387, 483, 419, 443, 324, 400, 346, 447, 444, 469, 292, 374, 473, 264, 461, 323, 417, 423, 454, 244, 201, 448, 426, 319, 436, 365, 505, 340, 148, 378, 238, 296, 463, 350, 488, 304, 379, 503, 446, 423, 484, 443, 160, 466, 433, 386, 419, 391, 396, 413, 397, 397, 440, 296, 359, 518, 340, 431, 437, 399, 565], "maxs": [5999, 5986, 5999, 5998, 5996, 5997, 5990, 5999, 5998, 5991, 5995, 5999, 5997, 5996, 5993, 5998, 5992, 5995, 5995, 5994, 5993, 5999, 5998, 5997, 5996, 5998, 5999, 5999, 5998, 5999, 5997, 5999, 5997, 5996, 5998, 5995, 5996, 5999, 5999, 5999, 5996, 5995, 5999, 5994, 5999, 5999, 5998, 5996, 5998, 5997, 5996, 5996, 5999, 5999, 5997, 5999, 5999, 5995, 5991, 5999, 5996, 5993, 5999, 5998, 5997, 5998, 5999, 5999, 5991, 5992, 5998, 5998, 5998, 5998, 5995, 5997, 5999, 5991, 5999, 5995, 5999, 5998, 5995, 5992, 5999, 5998, 5999, 5991, 5998, 5997, 5999, 5991, 5999, 5995, 5999, 5998, 5998, 5998, 5998, 5995, 5999, 5999, 5999, 5999, 5994, 5999, 5999, 5999, 5995, 5998, 5999, 5998, 5999, 5999, 5998, 5990, 5999, 5995, 5998, 5999, 5995], "avgs": [2532.582, 2563.943, 2514.783, 2567.409, 2560.628, 2587.628, 2565.917, 2563.45, 2577.895, 2597.293, 2571.744, 2581.862, 2582.127, 2557.756, 2559.54, 2597.892, 2577.542, 2559.518, 2562.895, 2555.514, 2588.784, 2579.809, 2582.865, 2605.521, 2609.431, 2610.546, 2591.435, 2589.619, 2580.894, 2586.56, 2619.99, 2591.195, 2609.42, 2642.15, 2587.702, 2645.71, 2609.368, 2620.574, 2590.432, 2715.294, 2615.39, 2610.126, 2585.121, 2634.283, 2580.129, 2619.292, 2597.262, 2614.593, 2623.369, 2633.811, 2576.901, 2646.025, 2667.292, 2631.712, 2622.096, 2621.827, 2600.227, 2572.856, 2571.835, 2640.796, 2578.168, 2616.995, 2591.016, 2615.26, 2618.584, 2602.034, 2590.401, 2577.222, 2554.198, 2552.375, 2550.361, 2562.756, 2571.255, 2604.433, 2521.159, 2540.131, 2558.245, 2570.41, 2610.732, 2597.805, 2528.593, 2606.535, 2556.308, 2558.763, 2503.442, 2494.705, 2468.863, 2418.265, 2555.278, 2600.313, 2542.416, 2562.166, 2581.866, 2570.145, 2561.376, 2577.657, 2542.198, 2524.918, 2528.784, 2556.918, 2540.002, 2512.157, 2522.255, 2560.574, 2542.122, 2573.239, 2506.36, 2533.887, 2558.316, 2612.286, 2600.015, 2549.325, 2524.205, 2523.231, 2572.83, 2566.316, 2567.227, 2538.645, 2545.692, 2571.086, 2560.469], "p05s": [1681.0, 1701.0, 1678.55, 1693.0, 1688.0, 1747.0, 1748.55, 1727.55, 1712.55, 1745.0, 1737.0, 1721.0, 1697.0, 1729.55, 1688.55, 1717.55, 1701.0, 1692.0, 1719.0, 1714.0, 1711.55, 1740.0, 1706.55, 1728.0, 1675.55, 1669.0, 1691.0, 1699.0, 1687.0, 1716.0, 1704.55, 1673.0, 1694.0, 1730.55, 1708.0, 1725.1, 1701.0, 1695.0, 1691.55, 1789.0, 1688.55, 1724.55, 1685.0, 1703.55, 1721.0, 1708.1, 1709.0, 1707.0, 1724.55, 1708.0, 1648.55, 1724.55, 1705.0, 1700.55, 1713.0, 1680.1, 1706.55, 1668.55, 1709.0, 1710.0, 1672.55, 1716.0, 1659.55, 1673.55, 1716.55, 1689.55, 1675.55, 1681.0, 1649.55, 1690.55, 1670.0, 1640.0, 1656.0, 1648.55, 1639.55, 1652.0, 1649.55, 1685.55, 1717.55, 1717.0, 1710.0, 1698.0, 1681.0, 1706.0, 1664.0, 1649.0, 1616.0, 1617.1, 1690.0, 1714.0, 1659.0, 1658.0, 1696.0, 1689.55, 1679.55, 1689.0, 1643.55, 1691.55, 1655.0, 1670.0, 1646.0, 1655.55, 1645.55, 1665.0, 1677.0, 1696.0, 1681.55, 1683.55, 1670.55, 1676.55, 1689.0, 1665.55, 1676.55, 1674.0, 1656.55, 1679.0, 1681.55, 1661.0, 1669.0, 1685.55, 1679.0], "p50s": [2354.0, 2360.0, 2336.0, 2382.0, 2376.0, 2393.5, 2363.0, 2384.0, 2399.0, 2426.0, 2377.0, 2406.0, 2398.0, 2379.5, 2375.0, 2414.0, 2374.0, 2386.0, 2367.0, 2371.0, 2390.0, 2401.0, 2388.0, 2423.0, 2411.0, 2397.5, 2411.0, 2371.0, 2378.0, 2379.0, 2411.0, 2389.0, 2412.5, 2452.0, 2380.0, 2452.0, 2404.0, 2405.0, 2397.5, 2539.0, 2418.0, 2434.0, 2388.0, 2453.5, 2372.0, 2428.0, 2410.0, 2436.5, 2435.0, 2454.0, 2399.5, 2447.0, 2487.0, 2444.0, 2398.0, 2444.0, 2394.0, 2396.0, 2376.0, 2425.0, 2411.0, 2403.5, 2405.0, 2406.0, 2426.0, 2408.0, 2409.0, 2378.0, 2357.0, 2355.0, 2342.0, 2373.0, 2355.0, 2426.0, 2344.0, 2375.0, 2382.0, 2396.0, 2440.0, 2402.0, 2346.0, 2403.0, 2382.0, 2375.0, 2316.0, 2307.0, 2285.0, 2264.0, 2387.5, 2434.0, 2367.0, 2387.0, 2383.5, 2376.0, 2375.0, 2372.0, 2361.0, 2344.5, 2334.0, 2372.0, 2356.0, 2332.5, 2342.0, 2383.0, 2372.5, 2408.0, 2338.5, 2364.0, 2387.0, 2460.0, 2444.0, 2382.5, 2359.5, 2363.0, 2404.0, 2383.0, 2402.0, 2361.0, 2367.0, 2388.5, 2376.0], "p95s": [3890.45, 3992.45, 3892.0, 4012.0, 3933.45, 3952.45, 3947.0, 3963.0, 3946.45, 4003.0, 4000.0, 3964.0, 3994.9, 3984.45, 3978.0, 3985.0, 4018.45, 3949.45, 3981.0, 4036.45, 4019.0, 3925.0, 4063.9, 4039.0, 4140.9, 4172.45, 4038.9, 4082.8, 4104.45, 4076.25, 4134.35, 4128.9, 4131.0, 4119.45, 4013.9, 4179.8, 4119.0, 4112.0, 4121.45, 4256.45, 4047.25, 4109.9, 4142.45, 4188.35, 3989.45, 4056.45, 4062.45, 3967.45, 4117.45, 4023.45, 4047.9, 4225.45, 4154.45, 4162.9, 4212.45, 4171.8, 4099.45, 4066.9, 4023.25, 4267.9, 4133.45, 4105.9, 4094.9, 4211.5, 4148.45, 4079.35, 4111.9, 4079.35, 4090.45, 4012.9, 4050.45, 4095.9, 4073.0, 4144.15, 3897.45, 3933.35, 3984.45, 3994.9, 3994.0, 4029.0, 3926.45, 4172.45, 4014.9, 3992.9, 3949.9, 3854.45, 3809.9, 3766.45, 4004.45, 4039.0, 3983.45, 4012.9, 4024.35, 4034.45, 4013.6, 4016.0, 4094.0, 3932.45, 3955.35, 4023.9, 4028.45, 3899.35, 3940.0, 3996.45, 3941.0, 3968.45, 3834.0, 3966.35, 4006.0, 3975.35, 4019.45, 3976.35, 3867.8, 3920.9, 3986.25, 4051.0, 4036.45, 3955.7, 3999.9, 4030.35, 4043.45], "blocks": [33320, 51344, 51230, 51193, 51321, 49813, 49709, 49807, 49005, 49192, 49220, 48938, 49476, 49458, 49649, 51069, 50689, 51145, 51242, 50820, 48861, 50626, 50826, 53291, 56094, 56320, 56029, 56335, 56145, 54276, 54452, 54495, 55721, 55946, 57031, 58141, 58349, 58269, 58502, 57173, 57766, 57744, 57671, 58128, 58460, 58517, 58351, 58374, 58386, 58363, 58470, 58276, 59131, 60249, 60259, 60143, 58452, 58502, 58534, 58029, 58247, 58307, 58167, 60108, 59850, 60317, 60124, 60359, 60242, 60489, 60179, 60574, 61682, 61948, 62310, 63012, 63810, 63678, 63832, 63117, 62199, 61481, 62039, 62165, 61847, 62245, 61908, 60584, 60878, 62365, 62254, 62100, 61581, 61485, 62027, 61993, 62002, 62170, 62078, 62856, 63649, 63823, 63624, 63522, 63271, 63501, 64015, 64034, 63721, 62220, 63946, 63764, 64104, 64130, 64022, 63958, 63556, 63777, 63501, 63373, 21898]} \ No newline at end of file diff --git a/data/beacon-chain-timings/block_timings/mainnet/last_90_days.json b/data/beacon-chain-timings/block_timings/mainnet/last_90_days.json new file mode 100644 index 00000000..56e3d8af --- /dev/null +++ b/data/beacon-chain-timings/block_timings/mainnet/last_90_days.json @@ -0,0 +1 @@ +{"updated_at": 1736496266, "timestamps": [1728655200, 1728741600, 1728828000, 1728914400, 1729000800, 1729087200, 1729173600, 1729260000, 1729346400, 1729432800, 1729519200, 1729605600, 1729692000, 1729778400, 1729864800, 1729951200, 1730037600, 1730124000, 1730210400, 1730296800, 1730383200, 1730469600, 1730556000, 1730642400, 1730728800, 1730815200, 1730901600, 1730988000, 1731074400, 1731160800, 1731247200, 1731333600, 1731420000, 1731506400, 1731592800, 1731679200, 1731765600, 1731852000, 1731938400, 1732024800, 1732111200, 1732197600, 1732284000, 1732370400, 1732456800, 1732543200, 1732629600, 1732716000, 1732802400, 1732888800, 1732975200, 1733061600, 1733148000, 1733234400, 1733320800, 1733407200, 1733493600, 1733580000, 1733666400, 1733752800, 1733839200, 1733925600, 1734012000, 1734098400, 1734184800, 1734271200, 1734357600, 1734444000, 1734530400, 1734616800, 1734703200, 1734789600, 1734876000, 1734962400, 1735048800, 1735135200, 1735221600, 1735308000, 1735394400, 1735480800, 1735567200, 1735653600, 1735740000, 1735826400, 1735912800, 1735999200, 1736085600, 1736172000, 1736258400, 1736344800, 1736431200], "mins": [364, 408, 49, 259, 473, 267, 318, 346, 347, 366, 132, 289, 368, 184, 377, 193, 150, 145, 175, 7, 311, 5, 83, 158, 88, 138, 366, 58, 373, 8, 435, 445, 379, 136, 425, 474, 212, 416, 322, 129, 402, 386, 399, 391, 408, 144, 144, 431, 378, 444, 382, 363, 421, 361, 379, 450, 367, 456, 350, 352, 327, 460, 423, 421, 294, 152, 392, 460, 386, 0, 440, 402, 108, 364, 354, 387, 324, 292, 264, 323, 201, 319, 148, 296, 304, 160, 386, 391, 296, 340, 399], "maxs": [5999, 5999, 5999, 5999, 5997, 5999, 5999, 5998, 5999, 5999, 5999, 5998, 5999, 5999, 5999, 5998, 5999, 5997, 5999, 5999, 5999, 5999, 5998, 5998, 5998, 5998, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5997, 5996, 5999, 5999, 5998, 5998, 5999, 5999, 5997, 5999, 5996, 5999, 5997, 5999, 5999, 5996, 5998, 5999, 5999, 5998, 5999, 5999, 5998, 5999, 5998, 5999, 5999, 5999, 5998, 5999, 5999, 5998, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5998, 5999, 5999, 5999, 5999, 5999, 5998, 5999, 5999, 5999, 5999, 5999, 5998, 5999, 5999, 5999, 5999, 5999, 5999], "avgs": [2394.961, 2395.309, 2410.251, 2451.207, 2454.531, 2459.369, 2448.431, 2456.826, 2434.467, 2467.207, 2480.528, 2464.693, 2472.006, 2479.813, 2473.162, 2451.894, 2509.705, 2539.306, 2530.9, 2473.557, 2479.246, 2465.093, 2480.82, 2473.405, 2438.847, 2458.535, 2485.958, 2470.197, 2461.857, 2473.451, 2540.638, 2538.935, 2506.108, 2498.242, 2525.527, 2554.497, 2570.188, 2492.292, 2487.144, 2493.1, 2536.752, 2528.173, 2539.293, 2517.387, 2515.718, 2489.657, 2527.757, 2516.098, 2425.006, 2438.081, 2475.951, 2494.928, 2509.455, 2561.068, 2552.808, 2640.808, 2561.052, 2568.411, 2558.197, 2621.503, 2546.258, 2570.304, 2577.55, 2570.282, 2574.441, 2576.623, 2604.227, 2594.13, 2607.625, 2616.476, 2631.288, 2607.712, 2612.153, 2641.625, 2591.892, 2606.72, 2606.552, 2558.544, 2564.842, 2569.976, 2572.316, 2506.482, 2529.706, 2568.86, 2543.371, 2532.745, 2545.499, 2575.881, 2542.377, 2554.477, 2568.361], "p05s": [1607.55, 1600.0, 1627.55, 1636.55, 1650.55, 1659.55, 1627.55, 1634.55, 1606.55, 1640.0, 1644.0, 1656.55, 1650.0, 1637.0, 1643.55, 1618.55, 1670.0, 1664.65, 1657.55, 1643.55, 1655.55, 1626.1, 1631.0, 1631.0, 1649.0, 1666.0, 1676.0, 1659.55, 1662.0, 1658.55, 1685.55, 1701.55, 1695.55, 1691.55, 1685.55, 1679.0, 1675.0, 1669.55, 1685.55, 1686.0, 1695.55, 1708.0, 1712.0, 1685.0, 1679.55, 1654.0, 1658.0, 1700.0, 1660.0, 1669.55, 1674.0, 1675.55, 1693.0, 1717.55, 1704.55, 1770.0, 1695.0, 1713.55, 1716.0, 1744.55, 1709.0, 1733.0, 1716.0, 1716.0, 1719.55, 1707.0, 1692.55, 1703.0, 1704.0, 1697.0, 1723.55, 1708.55, 1684.0, 1700.0, 1680.55, 1677.55, 1696.0, 1683.1, 1636.0, 1682.0, 1680.55, 1655.55, 1657.0, 1680.55, 1673.0, 1657.0, 1694.0, 1678.0, 1680.0, 1669.55, 1669.55], "p50s": [2220.0, 2231.0, 2251.0, 2285.5, 2314.0, 2304.5, 2306.0, 2304.0, 2269.5, 2319.0, 2333.0, 2301.5, 2334.0, 2330.0, 2326.0, 2311.5, 2366.0, 2376.5, 2376.0, 2324.0, 2330.0, 2311.0, 2322.0, 2309.5, 2300.0, 2309.0, 2348.0, 2312.0, 2311.0, 2324.0, 2349.0, 2372.0, 2355.5, 2344.0, 2364.0, 2378.0, 2368.5, 2342.0, 2330.0, 2333.0, 2363.5, 2389.0, 2406.0, 2364.0, 2353.5, 2331.5, 2321.0, 2345.0, 2272.0, 2275.0, 2318.0, 2334.0, 2349.0, 2379.0, 2373.0, 2481.0, 2400.0, 2396.5, 2400.0, 2462.0, 2365.0, 2386.0, 2397.0, 2370.5, 2380.0, 2373.0, 2396.5, 2392.0, 2407.5, 2411.5, 2419.5, 2409.0, 2417.5, 2455.0, 2393.0, 2406.0, 2426.0, 2367.0, 2384.5, 2394.0, 2388.0, 2313.5, 2370.0, 2384.0, 2365.0, 2351.0, 2371.0, 2406.0, 2369.0, 2391.0, 2382.0], "p95s": [3747.9, 3719.45, 3796.9, 3795.25, 3810.45, 3864.9, 3784.35, 3884.9, 3788.0, 3819.0, 3833.45, 3820.0, 3793.35, 3839.45, 3823.0, 3794.45, 3793.0, 3874.9, 3884.45, 3785.45, 3789.9, 3818.0, 3842.35, 3849.9, 3749.9, 3745.0, 3837.9, 3827.35, 3810.9, 3898.45, 4049.45, 3929.0, 3858.45, 3837.6, 3883.35, 4052.45, 4150.45, 3909.45, 3889.35, 3832.8, 3911.45, 3876.45, 3911.0, 3940.9, 3913.35, 3905.45, 4083.0, 3938.45, 3719.45, 3771.45, 3850.0, 3857.9, 3862.35, 4006.45, 3952.0, 4050.9, 3989.45, 4001.45, 3934.45, 4073.9, 3967.9, 3981.8, 3983.9, 4031.0, 3960.0, 4069.45, 4087.45, 4096.45, 4076.35, 4125.45, 4142.45, 4055.0, 4044.0, 4241.8, 4105.25, 4141.45, 4100.9, 4077.45, 4047.45, 3990.0, 4026.9, 3884.0, 3923.45, 4091.9, 4031.45, 3960.0, 3968.9, 3981.0, 3938.45, 4070.25, 4037.35], "blocks": [112367, 168657, 168923, 169020, 168258, 167744, 162288, 163098, 162983, 167994, 169835, 163420, 167755, 167896, 173099, 177159, 174986, 175304, 176756, 180741, 170709, 171458, 171372, 171072, 174337, 181862, 178402, 175407, 175858, 178077, 177839, 177832, 183980, 184515, 183050, 183343, 179973, 181477, 175718, 175855, 171050, 166616, 169060, 169637, 167382, 169856, 163593, 148249, 184625, 201534, 202297, 204789, 209376, 211791, 211791, 212208, 211394, 211717, 205425, 204776, 204609, 202036, 197224, 197521, 204145, 201133, 221734, 221208, 223193, 233261, 230354, 233456, 233593, 237915, 235631, 232750, 240399, 241269, 246514, 254332, 248836, 248165, 246081, 247193, 248243, 253952, 254309, 253921, 256020, 254792, 85273]} \ No newline at end of file diff --git a/data/beacon-chain-timings/block_timings/sepolia/last_30_days.json b/data/beacon-chain-timings/block_timings/sepolia/last_30_days.json new file mode 100644 index 00000000..68f86e4f --- /dev/null +++ b/data/beacon-chain-timings/block_timings/sepolia/last_30_days.json @@ -0,0 +1 @@ +{"updated_at": 1736496265, "timestamps": [1733860800, 1733882400, 1733904000, 1733925600, 1733947200, 1733968800, 1733990400, 1734012000, 1734033600, 1734055200, 1734076800, 1734098400, 1734120000, 1734141600, 1734163200, 1734184800, 1734206400, 1734228000, 1734249600, 1734271200, 1734292800, 1734314400, 1734336000, 1734357600, 1734379200, 1734400800, 1734422400, 1734444000, 1734465600, 1734487200, 1734508800, 1734530400, 1734552000, 1734573600, 1734595200, 1734616800, 1734638400, 1734660000, 1734681600, 1734703200, 1734724800, 1734746400, 1734768000, 1734789600, 1734811200, 1734832800, 1734854400, 1734876000, 1734897600, 1734919200, 1734940800, 1734962400, 1734984000, 1735005600, 1735027200, 1735048800, 1735070400, 1735092000, 1735113600, 1735135200, 1735156800, 1735178400, 1735200000, 1735221600, 1735243200, 1735264800, 1735286400, 1735308000, 1735329600, 1735351200, 1735372800, 1735394400, 1735416000, 1735437600, 1735459200, 1735480800, 1735502400, 1735524000, 1735545600, 1735567200, 1735588800, 1735610400, 1735632000, 1735653600, 1735675200, 1735696800, 1735718400, 1735740000, 1735761600, 1735783200, 1735804800, 1735826400, 1735848000, 1735869600, 1735891200, 1735912800, 1735934400, 1735956000, 1735977600, 1735999200, 1736020800, 1736042400, 1736064000, 1736085600, 1736107200, 1736128800, 1736150400, 1736172000, 1736193600, 1736215200, 1736236800, 1736258400, 1736280000, 1736301600, 1736323200, 1736344800, 1736366400, 1736388000, 1736409600, 1736431200, 1736452800], "mins": [143, 180, 161, 137, 149, 145, 122, 148, 148, 155, 135, 146, 147, 147, 153, 118, 125, 151, 119, 142, 81, 146, 150, 138, 129, 123, 121, 111, 143, 137, 137, 136, 151, 164, 158, 138, 144, 140, 129, 147, 141, 141, 146, 155, 139, 137, 155, 175, 123, 200, 171, 164, 135, 150, 116, 147, 129, 136, 154, 143, 163, 151, 170, 150, 156, 146, 126, 123, 143, 127, 129, 120, 123, 160, 113, 128, 157, 138, 124, 122, 146, 146, 152, 143, 137, 136, 127, 143, 160, 171, 144, 149, 135, 148, 133, 138, 142, 150, 143, 154, 104, 169, 144, 95, 158, 154, 151, 131, 133, 97, 142, 157, 103, 70, 87, 86, 86, 78, 73, 91, 83], "maxs": [5941, 5964, 5950, 5964, 5990, 5980, 5990, 5969, 5985, 5990, 5977, 5988, 5999, 5997, 5964, 5999, 5981, 5997, 5974, 5998, 5979, 5955, 5993, 5971, 5947, 5954, 5989, 5982, 5999, 5997, 5998, 5992, 5998, 5999, 5955, 5991, 5999, 5995, 5991, 5965, 5987, 5992, 5993, 5982, 5968, 5986, 5992, 5995, 5993, 5971, 5990, 5958, 5995, 5976, 5999, 5976, 5997, 5977, 5992, 5995, 5986, 5996, 5992, 5998, 5985, 5991, 5993, 5996, 5983, 5998, 5987, 5986, 5998, 5943, 5990, 5977, 5996, 5980, 5999, 5997, 5998, 5995, 5936, 5996, 5996, 5975, 5999, 5995, 5980, 5981, 5999, 5974, 5988, 5998, 5991, 5993, 5984, 5968, 5997, 5994, 5973, 5976, 5989, 5994, 5997, 5989, 5983, 5994, 5989, 5984, 5968, 5953, 5997, 5992, 5998, 5996, 5989, 5991, 5995, 5998, 5970], "avgs": [2128.257, 2158.364, 2137.217, 2156.615, 2194.515, 2159.03, 2107.543, 2138.972, 2147.549, 2152.856, 2098.089, 2061.575, 2014.655, 2014.81, 2037.313, 2036.214, 2011.582, 2012.853, 2002.26, 2004.033, 2047.885, 2069.698, 2022.379, 1996.978, 2040.145, 2037.147, 2041.021, 2062.618, 2138.319, 2224.155, 2203.857, 2210.653, 2199.081, 2197.266, 2173.746, 2087.595, 2109.138, 2112.927, 2084.39, 2043.415, 2054.907, 2128.405, 2109.972, 2022.108, 2057.842, 2084.199, 2111.915, 2080.922, 2111.964, 2120.522, 2105.719, 2094.387, 2084.625, 2075.705, 2054.577, 2066.179, 2090.793, 2128.91, 2145.347, 2095.367, 2118.653, 2138.058, 2112.537, 2047.354, 2084.027, 2065.376, 2079.014, 2041.081, 2086.846, 2088.963, 2111.17, 2131.958, 2108.782, 2180.755, 2023.375, 2039.642, 2084.201, 2144.616, 2101.971, 2095.461, 2070.523, 2086.234, 2026.936, 2097.318, 2054.604, 2031.019, 2008.003, 2061.092, 2052.181, 2138.6, 2128.324, 2106.81, 2124.336, 2114.499, 2093.556, 2082.278, 2106.718, 2115.181, 2081.965, 2117.298, 2115.283, 2109.819, 2071.9, 2081.623, 2160.411, 2098.501, 2106.443, 2072.8, 2109.984, 2072.637, 2141.744, 2144.352, 2157.691, 2083.418, 2108.831, 2136.46, 2128.937, 2148.233, 2140.262, 2119.044, 2098.58], "p05s": [360.0, 373.55, 378.0, 385.0, 383.55, 368.0, 344.0, 349.0, 360.0, 365.0, 364.0, 374.55, 354.55, 348.0, 340.0, 353.55, 326.55, 327.55, 330.0, 321.55, 328.0, 349.0, 334.55, 325.55, 335.55, 333.0, 342.0, 346.0, 355.0, 357.0, 368.0, 362.0, 347.55, 369.0, 358.55, 354.55, 365.55, 351.0, 350.0, 349.0, 346.0, 356.55, 351.0, 346.55, 375.0, 376.0, 396.55, 389.0, 385.0, 392.0, 392.0, 378.0, 372.0, 373.0, 359.55, 377.55, 363.0, 384.55, 401.0, 361.0, 378.0, 382.0, 363.0, 353.0, 370.0, 360.55, 344.0, 349.0, 355.0, 344.0, 334.55, 349.0, 353.0, 372.0, 344.0, 353.55, 364.0, 352.55, 327.55, 334.0, 349.0, 348.0, 313.0, 330.0, 367.0, 357.0, 337.0, 356.0, 353.0, 361.0, 355.0, 378.0, 363.55, 368.0, 353.0, 371.0, 362.0, 370.0, 345.55, 357.55, 348.0, 364.0, 330.0, 354.0, 373.0, 371.0, 360.0, 356.0, 370.0, 359.0, 357.0, 352.55, 365.55, 360.0, 368.0, 365.0, 371.0, 362.0, 366.0, 346.0, 358.0], "p50s": [2449.0, 2471.0, 2476.0, 2469.0, 2499.5, 2477.0, 2439.0, 2460.0, 2451.0, 2461.0, 2429.0, 2381.5, 2371.0, 2373.5, 2381.0, 2361.5, 2365.0, 2347.0, 2365.0, 2351.0, 2371.0, 2391.0, 2379.5, 2358.0, 2375.0, 2372.0, 2369.5, 2384.0, 2419.0, 2459.0, 2474.5, 2482.0, 2447.0, 2454.0, 2429.5, 2394.0, 2395.0, 2400.5, 2390.0, 2361.0, 2381.0, 2414.0, 2405.5, 2353.0, 2365.5, 2380.0, 2415.0, 2405.0, 2448.5, 2416.5, 2438.0, 2386.0, 2382.0, 2382.0, 2369.5, 2390.0, 2379.0, 2406.0, 2430.5, 2387.0, 2403.0, 2440.0, 2405.0, 2364.0, 2401.5, 2385.5, 2372.0, 2354.0, 2385.0, 2374.0, 2384.0, 2405.0, 2409.5, 2458.0, 2373.0, 2368.0, 2400.5, 2428.0, 2394.5, 2380.5, 2390.0, 2390.0, 2349.5, 2403.0, 2366.0, 2370.5, 2354.0, 2352.0, 2380.0, 2450.0, 2451.0, 2418.0, 2436.5, 2419.0, 2387.5, 2386.5, 2404.5, 2417.0, 2397.0, 2434.0, 2423.0, 2413.0, 2387.5, 2393.0, 2451.0, 2410.0, 2398.0, 2403.0, 2420.0, 2392.0, 2433.0, 2470.0, 2445.0, 2387.0, 2423.0, 2438.0, 2432.0, 2444.0, 2430.0, 2431.0, 2415.0], "p95s": [4071.45, 4106.45, 4088.0, 4086.45, 4138.0, 4156.9, 4059.0, 4125.0, 4144.45, 4148.45, 4037.45, 4040.25, 3993.0, 4000.9, 4022.45, 3996.35, 4020.45, 4000.45, 3974.45, 3986.45, 4061.0, 4094.9, 4007.9, 4025.45, 4067.0, 4036.0, 3964.9, 4005.45, 4080.8, 4269.45, 4217.45, 4278.0, 4244.9, 4275.9, 4138.9, 4004.85, 4043.25, 4013.0, 4009.9, 3946.45, 3972.9, 4049.0, 4054.8, 3986.45, 3995.9, 4112.9, 4087.0, 4052.45, 4085.9, 4062.9, 4039.9, 4067.0, 4012.45, 4000.35, 3941.0, 4007.0, 4054.35, 4137.8, 4123.35, 4025.45, 4079.35, 4056.35, 3982.9, 4000.45, 4010.45, 4012.9, 4025.0, 4005.45, 4028.15, 3992.9, 4070.35, 4095.45, 4066.9, 4181.0, 3984.45, 3957.45, 3962.9, 4095.35, 4069.0, 4040.45, 3992.35, 3987.45, 3978.45, 4019.45, 3989.45, 3939.0, 3941.0, 4018.0, 4015.0, 4119.9, 4079.45, 4036.45, 4036.7, 4024.0, 4022.45, 3991.9, 4031.0, 4056.0, 4030.0, 4054.45, 4027.0, 4068.35, 4002.25, 4004.45, 4209.45, 3999.0, 4088.45, 4006.45, 4006.6, 3988.9, 4067.45, 4027.45, 4189.8, 3978.0, 3984.9, 4070.9, 4032.0, 4029.9, 4080.0, 4103.0, 4030.45], "blocks": [15585, 23553, 23620, 23792, 23562, 23322, 23028, 22944, 22877, 23654, 24411, 25278, 25438, 25409, 25290, 25588, 25740, 25501, 25113, 25386, 25341, 25571, 25632, 25498, 25455, 25523, 25566, 25390, 25417, 25237, 25417, 25017, 25383, 24942, 25506, 25408, 25409, 25620, 25352, 25601, 25338, 25192, 25245, 25355, 25535, 25417, 25060, 25483, 25410, 25475, 25338, 25580, 25399, 25702, 25315, 25465, 25280, 25255, 24649, 23401, 25255, 25298, 25285, 25582, 25281, 25604, 25677, 25431, 25230, 25664, 25635, 25294, 25461, 25209, 25375, 25500, 25495, 25405, 25609, 25623, 25277, 25261, 25606, 25006, 25573, 25196, 25359, 25197, 25422, 25249, 25201, 25510, 25445, 25501, 25169, 25281, 25303, 25321, 25377, 25459, 25070, 25413, 25078, 25273, 25241, 25295, 25583, 25402, 25562, 23757, 24373, 25405, 25266, 26550, 26873, 26889, 26906, 26794, 26738, 26614, 9307]} \ No newline at end of file diff --git a/data/beacon-chain-timings/block_timings/sepolia/last_90_days.json b/data/beacon-chain-timings/block_timings/sepolia/last_90_days.json new file mode 100644 index 00000000..a5db52cf --- /dev/null +++ b/data/beacon-chain-timings/block_timings/sepolia/last_90_days.json @@ -0,0 +1 @@ +{"updated_at": 1736496266, "timestamps": [1728655200, 1728741600, 1728828000, 1728914400, 1729000800, 1729087200, 1729173600, 1729260000, 1729346400, 1729432800, 1729519200, 1729605600, 1729692000, 1729778400, 1729864800, 1729951200, 1730037600, 1730124000, 1730210400, 1730296800, 1730383200, 1730469600, 1730556000, 1730642400, 1730728800, 1730815200, 1730901600, 1730988000, 1731074400, 1731160800, 1731247200, 1731333600, 1731420000, 1731506400, 1731592800, 1731679200, 1731765600, 1731852000, 1731938400, 1732024800, 1732111200, 1732197600, 1732284000, 1732370400, 1732456800, 1732543200, 1732629600, 1732716000, 1732802400, 1732888800, 1732975200, 1733061600, 1733148000, 1733234400, 1733320800, 1733407200, 1733493600, 1733580000, 1733666400, 1733752800, 1733839200, 1733925600, 1734012000, 1734098400, 1734184800, 1734271200, 1734357600, 1734444000, 1734530400, 1734616800, 1734703200, 1734789600, 1734876000, 1734962400, 1735048800, 1735135200, 1735221600, 1735308000, 1735394400, 1735480800, 1735567200, 1735653600, 1735740000, 1735826400, 1735912800, 1735999200, 1736085600, 1736172000, 1736258400, 1736344800, 1736431200], "mins": [72, 51, 93, 89, 111, 98, 62, 88, 57, 58, 84, 29, 69, 70, 35, 65, 66, 74, 57, 70, 58, 87, 86, 90, 87, 70, 47, 50, 84, 105, 110, 49, 117, 59, 64, 115, 95, 120, 147, 144, 172, 132, 135, 124, 152, 93, 108, 94, 147, 175, 188, 241, 132, 143, 146, 148, 120, 123, 70, 73, 143, 122, 135, 146, 118, 81, 121, 111, 136, 129, 141, 137, 123, 116, 129, 143, 126, 123, 113, 124, 122, 127, 143, 133, 138, 104, 95, 97, 70, 73, 83], "maxs": [5998, 5999, 5999, 5997, 5996, 5992, 5998, 5997, 5988, 5991, 5997, 5999, 5991, 5997, 5995, 5998, 5999, 5993, 5996, 5996, 5995, 5993, 5995, 5995, 5996, 5985, 5995, 5999, 5990, 5989, 5999, 5995, 5998, 5998, 5998, 5999, 5997, 5994, 5986, 5995, 5997, 5998, 5997, 5995, 5982, 5999, 5998, 5999, 5983, 5999, 5987, 5994, 5994, 5998, 5998, 5999, 5992, 5998, 5988, 5989, 5998, 5990, 5990, 5999, 5999, 5998, 5989, 5999, 5999, 5999, 5993, 5992, 5995, 5999, 5997, 5996, 5998, 5998, 5998, 5999, 5998, 5999, 5999, 5998, 5997, 5994, 5997, 5994, 5998, 5996, 5998], "avgs": [1956.144, 1962.982, 2068.176, 2072.97, 2081.595, 2072.223, 2053.986, 2049.999, 2047.066, 2068.913, 2098.673, 2103.27, 2087.403, 2090.154, 2079.632, 2053.322, 2073.282, 2104.926, 2081.437, 2102.364, 2091.095, 2110.791, 2121.224, 2106.327, 2054.846, 2041.518, 2038.711, 2046.459, 2042.228, 2036.401, 2031.192, 2040.479, 2075.02, 2124.021, 2134.228, 2087.413, 2085.231, 2111.836, 2174.639, 2250.384, 2209.033, 2188.082, 2188.778, 2310.102, 2304.084, 2320.88, 2304.404, 2601.053, 2698.734, 2605.465, 2589.647, 2846.733, 2281.014, 2179.129, 2135.625, 2127.515, 2079.313, 2084.193, 2105.013, 2141.992, 2138.559, 2154.686, 2133.93, 2032.039, 2015.786, 2036.022, 2028.828, 2157.144, 2195.095, 2098.551, 2083.982, 2068.881, 2104.774, 2077.368, 2107.49, 2116.551, 2068.907, 2082.08, 2111.085, 2092.57, 2069.735, 2047.605, 2094.977, 2109.845, 2096.531, 2103.646, 2111.71, 2099.311, 2122.878, 2138.46, 2113.742], "p05s": [294.0, 281.0, 307.0, 302.0, 313.0, 317.0, 311.0, 298.55, 306.0, 311.55, 333.55, 355.0, 328.0, 318.0, 304.0, 298.55, 316.0, 345.0, 324.0, 328.0, 340.55, 348.55, 347.55, 348.55, 340.0, 331.0, 321.0, 320.0, 328.0, 317.0, 309.55, 322.0, 331.55, 375.0, 379.0, 334.0, 338.0, 361.0, 406.55, 457.55, 445.0, 423.55, 394.0, 482.55, 469.0, 473.55, 436.0, 502.0, 574.0, 550.0, 530.55, 907.55, 411.55, 392.0, 372.0, 359.0, 340.0, 341.55, 343.0, 352.0, 372.0, 363.0, 352.0, 348.0, 339.0, 337.0, 330.0, 357.0, 366.55, 366.0, 354.0, 373.0, 391.55, 369.0, 378.0, 378.0, 361.55, 343.55, 352.0, 354.55, 339.0, 339.0, 353.0, 367.0, 368.55, 350.0, 369.0, 363.55, 356.0, 370.0, 350.0], "p50s": [2329.0, 2321.0, 2402.0, 2381.0, 2387.0, 2388.5, 2373.0, 2371.0, 2379.0, 2384.0, 2404.0, 2438.0, 2416.0, 2384.0, 2373.0, 2378.5, 2380.0, 2406.0, 2396.0, 2418.5, 2417.5, 2428.0, 2425.0, 2398.0, 2403.0, 2402.0, 2376.0, 2391.5, 2402.0, 2384.0, 2378.0, 2399.0, 2416.5, 2453.5, 2453.5, 2406.0, 2428.5, 2415.0, 2497.0, 2564.0, 2547.0, 2520.0, 2502.0, 2599.0, 2586.0, 2598.0, 2590.0, 2688.0, 2729.0, 2685.0, 2680.0, 2764.0, 2550.5, 2482.0, 2482.0, 2449.0, 2402.0, 2407.0, 2420.5, 2436.0, 2451.0, 2454.0, 2447.0, 2396.0, 2383.0, 2372.0, 2370.0, 2426.0, 2465.0, 2417.5, 2387.5, 2365.0, 2430.0, 2388.5, 2393.5, 2417.0, 2385.0, 2394.5, 2392.0, 2402.0, 2396.0, 2372.0, 2395.0, 2422.5, 2410.0, 2424.0, 2426.0, 2425.5, 2429.0, 2452.0, 2419.0], "p95s": [3968.9, 4000.9, 4064.0, 3994.35, 4048.25, 4101.45, 4054.9, 4104.45, 4060.45, 4135.9, 4177.35, 4088.9, 4142.45, 4133.0, 4152.9, 4054.45, 4022.9, 4091.8, 4053.0, 4164.45, 4078.9, 4075.45, 4130.0, 4083.0, 4014.35, 4047.9, 3992.0, 4056.45, 4026.0, 4037.0, 3991.35, 4029.9, 4166.45, 4177.45, 4110.45, 4084.25, 4124.35, 4094.45, 4205.0, 4238.9, 4164.0, 4161.45, 4090.9, 4159.45, 4218.0, 4180.8, 4190.0, 4233.9, 4239.45, 3876.45, 3895.9, 4262.0, 4153.0, 4118.45, 4060.45, 4123.0, 4074.45, 4139.0, 4066.7, 4140.45, 4035.45, 4115.45, 4111.45, 4032.9, 3989.45, 4020.45, 3995.35, 4135.0, 4250.9, 4052.9, 4006.45, 4028.8, 4069.45, 4016.0, 4076.0, 4043.7, 3981.0, 4026.45, 4049.45, 4024.35, 4002.0, 3960.45, 4053.45, 4038.0, 4021.45, 4048.0, 4059.0, 4047.45, 4041.45, 4072.45, 4069.25], "blocks": [59231, 88602, 82945, 82378, 82661, 82044, 82635, 83681, 83605, 86772, 89150, 91832, 93382, 93492, 94596, 94805, 94030, 95057, 93900, 93401, 93903, 91413, 88353, 89259, 92555, 91320, 89810, 83567, 86786, 88657, 87685, 88189, 94982, 94809, 94085, 94215, 93487, 93297, 93577, 92888, 93543, 92445, 89521, 87574, 85895, 85854, 79803, 67576, 66437, 63740, 63042, 59406, 84176, 91731, 95028, 94587, 95181, 94768, 94384, 94706, 94720, 93704, 93886, 101415, 101942, 101930, 102042, 101461, 100848, 101789, 101376, 101367, 101706, 101996, 100649, 99239, 102144, 101960, 101339, 102009, 101767, 101134, 101069, 101625, 101282, 101020, 101392, 99094, 104094, 107327, 35921]} \ No newline at end of file diff --git a/data/beacon-chain-timings/size_cdf/holesky/last_30_days.json b/data/beacon-chain-timings/size_cdf/holesky/last_30_days.json new file mode 100644 index 00000000..9362ebed --- /dev/null +++ b/data/beacon-chain-timings/size_cdf/holesky/last_30_days.json @@ -0,0 +1 @@ +{"updated_at": 1736496295, "sizes_kb": [32.0, 64.0, 96.0, 128.0, 160.0, 192.0, 224.0, 256.0, 288.0, 320.0, 352.0, 384.0, 416.0, 448.0, 480.0, 512.0, 544.0, 576.0, 608.0, 640.0, 672.0, 704.0, 736.0, 768.0, 800.0, 832.0, 864.0, 896.0, 928.0, 960.0], "arrival_times_ms": {"all": [1869.0, 1949.0, 1876.0, 2099.0, 1757.0, 1841.0, 1924.0, 1962.0, 1831.0, 1891.0, 2030.0, 2067.0, 1862.0, 1946.0, 1973.0, 2039.0, 1882.0, 1977.0, 1884.0, 1836.0, 1838.0, 1793.0, 2028.0, 1763.0, 2352.0, 2231.0, 2165.0, 2074.0, 2254.0, 2539.0], "mev": [2246.0, 2360.0, 2291.0, 2374.0, 2253.0, 2361.0, 2423.0, 2532.0, 2309.0, 2399.0, 2546.0, 2855.0, 2372.0, 2499.0, 2569.0, 2868.0, 2442.0, 2593.0, 1860.0, 2418.0, 2416.0, 1814.0, 2488.0, 2453.0, 2497.0, 2581.0, 2409.0, 2420.0, 2539.0], "non_mev": [1733.0, 1694.0, 1649.0, 1439.0, 1649.0, 1754.0, 1857.0, 1724.0, 1717.0, 1819.0, 1963.0, 1985.0, 1743.0, 1866.0, 1894.0, 1873.0, 1765.0, 1904.0, 1885.0, 1836.0, 1737.0, 1740.0, 2041.0, 1522.0, 1596.0, 1816.0, 1623.0, 1570.0, 1466.0], "solo_mev": [2209.0, 2308.0, 2251.0, 2201.0, 2226.0, 2650.0, 2231.0, 2278.0, 2370.0, 2276.0, 2296.0, 2432.0, 1827.0, 2375.0, 2320.0, 2365.0, 2328.0, 2458.0, 2412.0, 2586.0, 2817.0], "solo_non_mev": [1814.0, 1530.0, 1890.0, 1627.0, 1767.0, 2114.0, 1592.0, 1691.0, 1843.0, 4699.0, 1221.0, 1702.0, 1950.0, 1637.0, 1689.0, 1984.0, 2100.0, 1726.0, 1558.0, 1873.0, 1577.0, 1610.0, 1237.0]}} \ No newline at end of file diff --git a/data/beacon-chain-timings/size_cdf/holesky/last_90_days.json b/data/beacon-chain-timings/size_cdf/holesky/last_90_days.json new file mode 100644 index 00000000..97fd992d --- /dev/null +++ b/data/beacon-chain-timings/size_cdf/holesky/last_90_days.json @@ -0,0 +1 @@ +{"updated_at": 1736496355, "sizes_kb": [32.0, 64.0, 96.0, 128.0, 160.0, 192.0, 224.0, 256.0, 288.0, 320.0, 352.0, 384.0, 416.0, 448.0, 480.0, 512.0, 544.0, 576.0, 608.0, 640.0, 672.0, 704.0, 736.0, 768.0, 800.0, 832.0, 864.0, 896.0, 928.0, 960.0], "arrival_times_ms": {"all": [1853.0, 2076.0, 1996.0, 2081.0, 1801.0, 1930.0, 1983.0, 1988.0, 1852.0, 1958.0, 2027.0, 2018.0, 1889.0, 1989.0, 2027.0, 2037.0, 1899.0, 2004.0, 2112.0, 1980.0, 1869.0, 2015.0, 2137.0, 1938.0, 2345.0, 2121.0, 2257.0, 2590.0, 2208.0, 2306.0], "mev": [2256.0, 2397.0, 2344.0, 2444.0, 2291.0, 2383.0, 2430.0, 2624.0, 2323.0, 2428.0, 2573.0, 2747.0, 2369.0, 2491.0, 2689.0, 2762.0, 2420.0, 2499.0, 2393.0, 2604.0, 2427.0, 2533.0, 2562.0, 2488.0, 2457.0, 2503.0, 2628.0, 2568.0, 2420.0, 2539.0], "non_mev": [1673.0, 1844.0, 1830.0, 1754.0, 1720.0, 1885.0, 1946.0, 1862.0, 1775.0, 1917.0, 1990.0, 1973.0, 1825.0, 1950.0, 1974.0, 1974.0, 1827.0, 1954.0, 2106.0, 1902.0, 1790.0, 1944.0, 2066.0, 1828.0, 1752.0, 1926.0, 1770.0, 2606.0, 1854.0, 2190.0], "solo_mev": [2261.0, 2411.0, 2393.0, 2317.0, 2309.0, 2412.0, 2591.0, 2523.0, 2330.0, 2418.0, 2204.0, 2377.0, 2416.0, 2277.0, 2408.0, 2324.0, 2436.0, 2879.0, 2313.0, 2581.0, 2141.0, 2448.0, 2451.0, 2586.0, 3284.0, 2412.0], "solo_non_mev": [1655.0, 1766.0, 1634.0, 1689.0, 1840.0, 2056.0, 1556.0, 1770.0, 1913.0, 2607.0, 1584.0, 1831.0, 1894.0, 1769.0, 2335.0, 1791.0, 1896.0, 1956.0, 2478.0, 1827.0, 1730.0, 1873.0, 1729.0, 2089.0, 2744.0, 2355.0, 1614.0]}} \ No newline at end of file diff --git a/data/beacon-chain-timings/size_cdf/mainnet/last_30_days.json b/data/beacon-chain-timings/size_cdf/mainnet/last_30_days.json new file mode 100644 index 00000000..f4f46916 --- /dev/null +++ b/data/beacon-chain-timings/size_cdf/mainnet/last_30_days.json @@ -0,0 +1 @@ +{"updated_at": 1736496291, "sizes_kb": [32.0, 64.0, 96.0, 128.0, 160.0, 192.0, 224.0, 256.0, 288.0, 320.0, 352.0, 384.0, 416.0, 448.0, 480.0, 512.0, 544.0, 576.0, 608.0, 640.0, 672.0, 704.0, 736.0, 768.0, 800.0, 832.0, 864.0, 896.0, 928.0, 960.0, 992.0, 1024.0, 1056.0, 1088.0, 1152.0, 1184.0, 1216.0, 1248.0, 1312.0, 1408.0, 1792.0], "arrival_times_ms": {"all": [1899.0, 2085.0, 2194.0, 2139.0, 1907.0, 2114.0, 2195.0, 2235.0, 1923.0, 2147.0, 2255.0, 2191.0, 1941.0, 2175.0, 2277.0, 2105.0, 1994.0, 2190.0, 2265.0, 2115.0, 1975.0, 2213.0, 2313.0, 2245.0, 2010.0, 2241.0, 2341.0, 2371.0, 2338.0, 2248.0, 2499.0, 2679.0, 2545.0, 2044.0, 3444.0, 2601.0, 3478.0, 3987.0, 2510.0, 2644.0, 1860.0], "mev": [1956.0, 2088.0, 2198.0, 2168.0, 1993.0, 2116.0, 2207.0, 2301.0, 2010.0, 2150.0, 2259.0, 2331.0, 2041.0, 2177.0, 2284.0, 2217.0, 2059.0, 2192.0, 2268.0, 2214.0, 2075.0, 2217.0, 2313.0, 2339.0, 2101.0, 2244.0, 2343.0, 2387.0, 2344.0, 2274.0, 2514.0, 2679.0, 2545.0, 2044.0, 3444.0, 2777.0, 3478.0, 3987.0, 2510.0, 2644.0], "non_mev": [1566.0, 1826.0, 1780.0, 1612.0, 1659.0, 1986.0, 1612.0, 1595.0, 1663.0, 1975.0, 2042.0, 1705.0, 1684.0, 2056.0, 1952.0, 1530.0, 1744.0, 1975.0, 2014.0, 1554.0, 1755.0, 2027.0, 2318.0, 1559.0, 1774.0, 2056.0, 2239.0, 2118.0, 1158.0, 2047.0, 2384.0, 2074.0, 1860.0], "solo_mev": [1780.0, 1896.0, 1982.0, 1923.0, 1870.0, 1976.0, 1980.0, 2052.0, 1830.0, 2002.0, 2011.0, 1708.0, 1902.0, 2000.0, 2090.0, 1936.0, 1940.0, 2014.0, 2159.0, 1857.0, 1975.0, 2061.0, 2165.0, 1874.0, 1963.0, 2078.0, 2156.0, 2388.0, 2236.0, 1701.0, 2095.0, 2489.0, 2733.0], "solo_non_mev": [1111.0, 1217.0, 866.0, 1250.0, 1172.0, 1165.0, 1124.0, 754.0, 1183.0, 1911.0, 1271.0, 1334.0, 1143.0, 1465.0, 1387.0, 1099.0, 1259.0, 1195.0, 1542.0, 1373.0, 1283.0, 1423.0, 1124.0, 1785.0, 1234.0, 1361.0, 1224.0, 1359.0]}} \ No newline at end of file diff --git a/data/beacon-chain-timings/size_cdf/mainnet/last_90_days.json b/data/beacon-chain-timings/size_cdf/mainnet/last_90_days.json new file mode 100644 index 00000000..a3547a89 --- /dev/null +++ b/data/beacon-chain-timings/size_cdf/mainnet/last_90_days.json @@ -0,0 +1 @@ +{"updated_at": 1736496344, "sizes_kb": [32.0, 64.0, 96.0, 128.0, 160.0, 192.0, 224.0, 256.0, 288.0, 320.0, 352.0, 384.0, 416.0, 448.0, 480.0, 512.0, 544.0, 576.0, 608.0, 640.0, 672.0, 704.0, 736.0, 768.0, 800.0, 832.0, 864.0, 896.0, 928.0, 960.0, 992.0, 1024.0, 1056.0, 1088.0, 1152.0, 1184.0, 1216.0, 1248.0, 1312.0, 1344.0, 1408.0, 1792.0], "arrival_times_ms": {"all": [1897.0, 2061.0, 2149.0, 2123.0, 1889.0, 2070.0, 2177.0, 2220.0, 1916.0, 2098.0, 2190.0, 2190.0, 1941.0, 2129.0, 2239.0, 2132.0, 1973.0, 2148.0, 2235.0, 2124.0, 1967.0, 2164.0, 2266.0, 2255.0, 2003.0, 2187.0, 2286.0, 2324.0, 2309.0, 2274.0, 2435.0, 2553.0, 2433.0, 2044.0, 3223.0, 2601.0, 2814.0, 3987.0, 2719.0, 2487.0, 2644.0, 1860.0], "mev": [1939.0, 2063.0, 2150.0, 2144.0, 1963.0, 2072.0, 2187.0, 2270.0, 1981.0, 2099.0, 2200.0, 2223.0, 2011.0, 2132.0, 2245.0, 2203.0, 2027.0, 2150.0, 2240.0, 2232.0, 2044.0, 2167.0, 2265.0, 2339.0, 2066.0, 2189.0, 2290.0, 2328.0, 2311.0, 2287.0, 2409.0, 2553.0, 2433.0, 2044.0, 3223.0, 2777.0, 3478.0, 3987.0, 2719.0, 2487.0, 2644.0], "non_mev": [1543.0, 1799.0, 2010.0, 1653.0, 1645.0, 1942.0, 1796.0, 1772.0, 1663.0, 2044.0, 1849.0, 1999.0, 1730.0, 1985.0, 1999.0, 1584.0, 1763.0, 1980.0, 1988.0, 1548.0, 1775.0, 2018.0, 2286.0, 1651.0, 1828.0, 2003.0, 2148.0, 2257.0, 2242.0, 2116.0, 2603.0, 2074.0, 2151.0, 1860.0], "solo_mev": [1771.0, 1864.0, 1941.0, 1904.0, 1837.0, 1920.0, 1986.0, 2049.0, 1834.0, 1930.0, 2034.0, 1950.0, 1872.0, 1966.0, 2128.0, 1977.0, 1925.0, 2006.0, 2041.0, 2011.0, 1940.0, 2020.0, 2090.0, 1972.0, 1940.0, 2045.0, 2131.0, 2279.0, 2234.0, 1724.0, 2095.0, 2489.0, 2733.0], "solo_non_mev": [1078.0, 1145.0, 1427.0, 1293.0, 1110.0, 1341.0, 1424.0, 1638.0, 1140.0, 1879.0, 1622.0, 1308.0, 1242.0, 1349.0, 1052.0, 1399.0, 1269.0, 1297.0, 1368.0, 1375.0, 1276.0, 1476.0, 1239.0, 1735.0, 1307.0, 1401.0, 1468.0, 2154.0, 1382.0, 2822.0]}} \ No newline at end of file diff --git a/data/beacon-chain-timings/size_cdf/sepolia/last_30_days.json b/data/beacon-chain-timings/size_cdf/sepolia/last_30_days.json new file mode 100644 index 00000000..c13cc0c7 --- /dev/null +++ b/data/beacon-chain-timings/size_cdf/sepolia/last_30_days.json @@ -0,0 +1 @@ +{"updated_at": 1736496293, "sizes_kb": [32.0, 64.0, 96.0, 128.0, 160.0, 192.0, 224.0, 256.0, 288.0, 320.0, 352.0, 384.0, 416.0, 448.0, 480.0, 512.0, 544.0, 576.0, 608.0, 640.0, 672.0, 704.0, 736.0, 768.0, 800.0, 832.0, 864.0, 896.0, 928.0, 960.0, 992.0, 1024.0, 1056.0, 1088.0, 1120.0, 1152.0, 1184.0, 1216.0, 1248.0, 1280.0, 1312.0, 1344.0, 1376.0, 1408.0, 1440.0, 1472.0, 1504.0, 1536.0, 1568.0, 1600.0, 1632.0, 1664.0, 1696.0, 1728.0, 1760.0, 1792.0, 1824.0, 1856.0, 1888.0, 1984.0, 2048.0, 2080.0, 2112.0, 2144.0, 2240.0], "arrival_times_ms": {"all": [556.0, 579.0, 631.0, 660.0, 603.0, 608.0, 660.0, 700.0, 625.0, 637.0, 685.0, 697.0, 648.0, 652.0, 688.0, 721.0, 674.0, 682.0, 729.0, 766.0, 723.0, 720.0, 781.0, 855.0, 734.0, 757.0, 800.0, 821.0, 825.0, 875.0, 883.0, 934.0, 947.0, 1034.0, 936.0, 856.0, 1078.0, 973.0, 1240.0, 1234.0, 969.0, 1292.0, 1168.0, 1426.0, 1071.0, 1321.0, 1007.0, 1476.0, 1022.0, 1152.0, 1157.0, 1127.0, 1322.0, 894.0, 1041.0, 900.0, 1757.0, 1721.0, 1075.0, 1495.0, 1180.0, 1187.0, 2372.0, 1144.0, 1272.0], "mev": [1152.0, 1354.0, 1416.0, 1078.0, 1221.0, 1357.0, 1410.0, 1200.0, 1274.0, 1443.0, 1468.0, 1201.0, 1360.0, 1497.0, 1636.0, 1318.0, 1455.0, 1518.0, 1793.0, 1391.0, 1545.0, 1641.0, 1608.0, 1399.0, 1582.0, 1718.0, 1801.0, 1893.0, 2021.0, 2041.0, 2014.0, 2647.0], "non_mev": [444.0, 536.0, 587.0, 467.0, 484.0, 568.0, 611.0, 544.0, 510.0, 598.0, 649.0, 602.0, 533.0, 616.0, 652.0, 606.0, 564.0, 650.0, 692.0, 652.0, 610.0, 694.0, 764.0, 692.0, 637.0, 731.0, 775.0, 784.0, 781.0, 862.0, 883.0, 909.0, 947.0, 1034.0, 936.0, 856.0, 1078.0, 973.0, 1240.0, 1125.0, 969.0, 1292.0, 1168.0, 1426.0, 1071.0, 1321.0, 1007.0, 1476.0, 1022.0, 1152.0, 1157.0, 1127.0, 1322.0, 894.0, 1041.0, 900.0, 1757.0, 1721.0, 1075.0, 1495.0, 1180.0, 1187.0, 2372.0, 1144.0, 1272.0], "solo_mev": [1230.0, 1465.0, 1433.0, 1147.0, 1310.0, 1498.0, 1425.0, 1338.0, 1377.0, 1558.0, 1669.0, 1319.0, 1487.0, 1616.0, 1669.0, 1408.0, 1567.0, 1647.0, 1956.0, 1541.0, 1647.0, 1698.0, 1796.0, 1513.0, 1726.0, 1800.0, 2009.0, 2013.0, 2218.0, 2024.0, 2788.0, 2647.0], "solo_non_mev": [468.0, 542.0, 581.0, 520.0, 502.0, 581.0, 598.0, 573.0, 525.0, 609.0, 634.0, 614.0, 549.0, 624.0, 660.0, 638.0, 585.0, 664.0, 713.0, 671.0, 627.0, 689.0, 769.0, 704.0, 655.0, 744.0, 792.0, 787.0, 794.0, 840.0, 875.0, 915.0, 1022.0, 1010.0, 806.0, 900.0, 1054.0, 914.0, 1182.0, 1000.0, 1072.0, 1438.0, 1255.0, 1606.0, 1289.0, 1496.0, 1094.0, 1576.0, 817.0, 944.0, 1152.0, 855.0, 1046.0, 894.0, 950.0, 900.0, 1757.0, 1532.0, 1466.0, 1180.0, 1187.0, 2372.0, 1144.0, 1399.0]}} \ No newline at end of file diff --git a/data/beacon-chain-timings/size_cdf/sepolia/last_90_days.json b/data/beacon-chain-timings/size_cdf/sepolia/last_90_days.json new file mode 100644 index 00000000..33e768a9 --- /dev/null +++ b/data/beacon-chain-timings/size_cdf/sepolia/last_90_days.json @@ -0,0 +1 @@ +{"updated_at": 1736496349, "sizes_kb": [32.0, 64.0, 96.0, 128.0, 160.0, 192.0, 224.0, 256.0, 288.0, 320.0, 352.0, 384.0, 416.0, 448.0, 480.0, 512.0, 544.0, 576.0, 608.0, 640.0, 672.0, 704.0, 736.0, 768.0, 800.0, 832.0, 864.0, 896.0, 928.0, 960.0, 992.0, 1024.0, 1056.0, 1088.0, 1120.0, 1152.0, 1184.0, 1216.0, 1248.0, 1280.0, 1312.0, 1344.0, 1376.0, 1408.0, 1440.0, 1472.0, 1504.0, 1536.0, 1568.0, 1600.0, 1632.0, 1664.0, 1696.0, 1728.0, 1760.0, 1792.0, 1824.0, 1856.0, 1888.0, 1984.0, 2048.0, 2080.0, 2112.0, 2144.0, 2240.0], "arrival_times_ms": {"all": [546.0, 603.0, 653.0, 686.0, 599.0, 634.0, 699.0, 735.0, 632.0, 663.0, 727.0, 762.0, 663.0, 687.0, 752.0, 783.0, 693.0, 719.0, 792.0, 804.0, 743.0, 749.0, 852.0, 893.0, 768.0, 794.0, 859.0, 863.0, 852.0, 915.0, 939.0, 932.0, 934.0, 1031.0, 933.0, 934.0, 1105.0, 962.0, 1300.0, 1191.0, 944.0, 1292.0, 1326.0, 1355.0, 1071.0, 1321.0, 1007.0, 1476.0, 1053.0, 1152.0, 1157.0, 1127.0, 1322.0, 894.0, 1041.0, 1084.0, 1757.0, 1676.0, 1075.0, 1495.0, 1180.0, 1187.0, 2372.0, 1144.0, 1272.0], "mev": [1247.0, 1457.0, 1526.0, 1168.0, 1325.0, 1512.0, 1491.0, 1235.0, 1386.0, 1597.0, 1644.0, 1326.0, 1461.0, 1661.0, 1758.0, 1410.0, 1539.0, 1685.0, 1800.0, 1457.0, 1635.0, 1770.0, 1835.0, 1546.0, 1700.0, 1865.0, 1971.0, 1984.0, 2067.0, 2248.0, 2746.0, 1796.0, 1629.0, 3058.0, 2647.0], "non_mev": [432.0, 563.0, 611.0, 467.0, 481.0, 594.0, 661.0, 553.0, 513.0, 627.0, 692.0, 611.0, 545.0, 655.0, 715.0, 648.0, 581.0, 689.0, 759.0, 684.0, 629.0, 720.0, 829.0, 698.0, 667.0, 766.0, 828.0, 803.0, 802.0, 898.0, 909.0, 895.0, 919.0, 1031.0, 933.0, 832.0, 1105.0, 962.0, 1300.0, 1094.0, 944.0, 1292.0, 1326.0, 1355.0, 1071.0, 1321.0, 1007.0, 1476.0, 1053.0, 1152.0, 1157.0, 1127.0, 1322.0, 894.0, 1041.0, 1084.0, 1757.0, 1676.0, 1075.0, 1495.0, 1180.0, 1187.0, 2372.0, 1144.0, 1272.0], "solo_mev": [1360.0, 1575.0, 1681.0, 1261.0, 1439.0, 1629.0, 1616.0, 1344.0, 1501.0, 1761.0, 1793.0, 1453.0, 1594.0, 1787.0, 1840.0, 1537.0, 1664.0, 1835.0, 1923.0, 1626.0, 1766.0, 1905.0, 1969.0, 1658.0, 1839.0, 1982.0, 2085.0, 2164.0, 2229.0, 2148.0, 2746.0, 2246.0, 1560.0, 3058.0, 2647.0], "solo_non_mev": [438.0, 547.0, 591.0, 487.0, 477.0, 586.0, 629.0, 552.0, 511.0, 622.0, 679.0, 608.0, 548.0, 653.0, 721.0, 665.0, 589.0, 693.0, 768.0, 711.0, 629.0, 710.0, 823.0, 696.0, 670.0, 767.0, 825.0, 807.0, 803.0, 870.0, 881.0, 874.0, 955.0, 1002.0, 865.0, 900.0, 1087.0, 892.0, 1182.0, 992.0, 1072.0, 1438.0, 1466.0, 1606.0, 1289.0, 1496.0, 1094.0, 1576.0, 1044.0, 944.0, 1152.0, 855.0, 1046.0, 894.0, 950.0, 900.0, 1757.0, 1532.0, 1466.0, 1180.0, 1187.0, 2372.0, 1144.0, 1399.0]}} \ No newline at end of file diff --git a/frontend/.eslintrc.json b/frontend/.eslintrc.json index b5cdc146..126e03ba 100644 --- a/frontend/.eslintrc.json +++ b/frontend/.eslintrc.json @@ -8,17 +8,7 @@ "parser": "@typescript-eslint/parser", "plugins": ["react-prefer-function-component"], "extends": [ - "eslint:all", - "plugin:@typescript-eslint/all", - "plugin:import/recommended", - "plugin:import/typescript", - "plugin:react/all", - "plugin:jsx-a11y/recommended", - "airbnb", - "airbnb-typescript", - "airbnb/hooks", - "plugin:react/jsx-runtime", - "plugin:unicorn/all" + ], "rules": { "no-dupe-else-if": "error", diff --git a/frontend/public/ethereum.png b/frontend/public/ethereum.png new file mode 100644 index 0000000000000000000000000000000000000000..a77b0aa937c09f0db5ae99b12bc210ed2d5ceb90 GIT binary patch literal 272815 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/rJrsuJ32m>puoan4AeIQ&-5{C_pJ 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�)e+z>*o4 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 bM&v*X{ib1aUik=vjfcplAM1e90cVSk`Ce? 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 DL9Uro literal 0 HcmV?d00001 diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 48bac756..d1f6cd92 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -7,6 +7,8 @@ import Networks from './pages/xatu/networks'; import ContributorsList from './pages/xatu/ContributorsList'; import ContributorDetail from './pages/xatu/ContributorDetail'; import Layout from './components/layout/Layout'; +import { BeaconChainTimings } from './pages/beacon-chain-timings'; +import { BlockTimings } from './pages/beacon-chain-timings/blocks'; function App(): JSX.Element { return ( @@ -20,6 +22,9 @@ function App(): JSX.Element { } /> } /> + }> + } /> + } /> diff --git a/frontend/src/components/layout/Breadcrumbs.tsx b/frontend/src/components/layout/Breadcrumbs.tsx index fd8ad10e..cf1b4f72 100644 --- a/frontend/src/components/layout/Breadcrumbs.tsx +++ b/frontend/src/components/layout/Breadcrumbs.tsx @@ -23,6 +23,13 @@ export const breadcrumbs = [ } ], }, + { + name: 'Beacon Chain', + path: '/beacon-chain-timings', + children: [ + { name: 'Blocks', path: '/beacon-chain-timings/blocks' }, + ], + }, ]; function findActivePath(pathname: string, items: NavItem[]): NavItem[] { diff --git a/frontend/src/components/layout/Layout.tsx b/frontend/src/components/layout/Layout.tsx index 69f87053..84d32dfd 100644 --- a/frontend/src/components/layout/Layout.tsx +++ b/frontend/src/components/layout/Layout.tsx @@ -4,32 +4,7 @@ import { Breadcrumbs } from './Breadcrumbs' function Layout(): JSX.Element { return ( -

- {/* Animated Background */} -
-
- {/* Main gradient */} -
- - {/* Noise texture */} -
- - {/* Grid */} -
-
-
-
- - {/* Glow effects */} -
-
-
-
- - {/* Neon Lines */} -
-
- +
{/* Content */}
@@ -41,16 +16,10 @@ function Layout(): JSX.Element { {/* Content Area */}
- {/* Subtle top highlight */} -
- {/* Main content */} -
+
- - {/* Subtle bottom highlight */} -
diff --git a/frontend/src/components/layout/Navigation.tsx b/frontend/src/components/layout/Navigation.tsx index b6dfdaff..b5596b7b 100644 --- a/frontend/src/components/layout/Navigation.tsx +++ b/frontend/src/components/layout/Navigation.tsx @@ -18,6 +18,13 @@ export const navigation = [ { name: 'Contributors', path: '/xatu/contributors' }, ], }, + { + name: 'Beacon Chain', + path: '/beacon-chain-timings', + children: [ + { name: 'Block Timings', path: '/beacon-chain-timings/blocks' }, + ], + }, ] export function Navigation(): JSX.Element { diff --git a/frontend/src/index.css b/frontend/src/index.css index aae20442..8e350521 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -26,4 +26,44 @@ font-display: swap; src: url('/fonts/Inter-Bold.woff2') format('woff2'); } + + body { + background: linear-gradient(135deg, #080810 0%, #0f0f23 40%, #151530 100%); + background-attachment: fixed; + min-height: 100vh; + position: relative; + } + + body::before { + content: ''; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: + linear-gradient(rgba(15, 15, 35, 0.3) 1px, transparent 1px), + linear-gradient(90deg, rgba(15, 15, 35, 0.3) 1px, transparent 1px), + radial-gradient(circle at 20% 30%, rgba(45, 212, 191, 0.05) 0%, transparent 50%), + radial-gradient(circle at 80% 70%, rgba(124, 58, 237, 0.05) 0%, transparent 50%); + background-size: 30px 30px, 30px 30px, 100% 100%, 100% 100%; + mask-image: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.2) 100%); + pointer-events: none; + z-index: -1; + opacity: 0.3; + } + + /* Add a subtle noise texture */ + body::after { + content: ''; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url(%23noise)'/%3E%3C/svg%3E"); + opacity: 0.015; + pointer-events: none; + z-index: -1; + } } diff --git a/frontend/src/pages/Home.tsx b/frontend/src/pages/Home.tsx index ad2210ae..1722431d 100644 --- a/frontend/src/pages/Home.tsx +++ b/frontend/src/pages/Home.tsx @@ -45,6 +45,24 @@ const experimentGroups: ExperimentGroup[] = [ }, ], }, + { + id: 'beacon-chain', + title: 'Beacon Chain', + subtitle: 'Analyze Ethereum beacon chain metrics and performance', + logo: '/ethereum.png', + overview: { + title: 'Overview', + description: 'Explore beacon chain metrics and performance data', + href: '/beacon-chain-timings', + }, + links: [ + { + title: 'Blocks', + description: 'Analyze block arrival times and network performance', + href: '/beacon-chain-timings/blocks', + }, + ], + }, ]; function Home(): JSX.Element { diff --git a/frontend/src/pages/beacon-chain-timings/blocks/index.tsx b/frontend/src/pages/beacon-chain-timings/blocks/index.tsx new file mode 100644 index 00000000..79311998 --- /dev/null +++ b/frontend/src/pages/beacon-chain-timings/blocks/index.tsx @@ -0,0 +1,659 @@ +import { useDataFetch } from '../../../utils/data' +import { LoadingState } from '../../../components/common/LoadingState' +import { ErrorState } from '../../../components/common/ErrorState' +import { NetworkSelector } from '../../../components/common/NetworkSelector' +import { useState, useEffect, useMemo } from 'react' +import { LineChart, Line, XAxis, YAxis, Tooltip, ResponsiveContainer, Legend, ReferenceLine, ScatterChart, Scatter, ZAxis } from 'recharts' +import { getConfig } from '../../../utils/config' +import type { Config } from '../../../types' +import { useSearchParams } from 'react-router-dom' +import { formatDistanceToNow } from 'date-fns' + +interface TimingData { + timestamps: number[] + mins: number[] + maxs: number[] + p05s: number[] + p50s: number[] + p95s: number[] + blocks: number[] + updated_at: number +} + +interface CDFData { + sizes_kb: number[] + arrival_times_ms: { + all: number[] + mev: number[] + non_mev: number[] + solo_mev: number[] + solo_non_mev: number[] + } + updated_at: number +} + +interface TimeWindowConfig { + file: string + step: string + label: string + range: string +} + +const DEFAULT_TIME_WINDOWS: TimeWindowConfig[] = [ + { file: 'last_30_days', step: '1d', label: '30d', range: '-30d' }, + { file: 'last_1_day', step: '15m', label: '1d', range: '-1d' } +] + +const TIMESTAMP_MULTIPLIER = 1000 +const DECIMAL_PLACES = 3 + +export const BlockTimings: React.FC = () => { + const [searchParams, setSearchParams] = useSearchParams() + const [config, setConfig] = useState() + const [configLoading, setConfigLoading] = useState(true) + const [configError, setConfigError] = useState() + const [isTimeWindowOpen, setIsTimeWindowOpen] = useState(false) + const [hiddenLines, setHiddenLines] = useState>(new Set()) + + const timeWindows = useMemo(() => { + const notebookConfig = config?.notebooks?.['beacon-chain-timings'] + return notebookConfig?.time_windows || DEFAULT_TIME_WINDOWS + }, [config]) + + const defaultTimeWindow = useMemo(() => timeWindows[0]?.file || 'last_30_days', [timeWindows]) + const defaultNetwork = useMemo(() => { + const notebookConfig = config?.notebooks?.['beacon-chain-timings'] + return notebookConfig?.networks?.[0] || 'mainnet' + }, [config]) + + const [timeWindow, setTimeWindow] = useState(() => + searchParams.get('timeWindow') || defaultTimeWindow + ) + const [network, setNetwork] = useState(() => + searchParams.get('network') || defaultNetwork + ) + + useEffect(() => { + setConfigLoading(true) + getConfig() + .then(setConfig) + .catch(setConfigError) + .finally(() => setConfigLoading(false)) + }, []) + + // Update URL when network/timeWindow changes + useEffect(() => { + const params = new URLSearchParams(searchParams) + params.set('network', network) + params.set('timeWindow', timeWindow) + setSearchParams(params) + }, [network, timeWindow, setSearchParams, searchParams]) + + const { data: timingData, loading, error } = useDataFetch( + `beacon-chain-timings/block_timings/${network}/${timeWindow}.json` + ) + + const { data: cdfData, loading: cdfLoading, error: cdfError } = useDataFetch( + `beacon-chain-timings/size_cdf/${network}/${timeWindow}.json` + ) + + const currentWindow = useMemo(() => + timeWindows.find((w: TimeWindowConfig) => w.file === timeWindow), + [timeWindows, timeWindow] + ) + + const formatTime = useMemo(() => (time: number) => { + const date = new Date(time * TIMESTAMP_MULTIPLIER) + return currentWindow?.step === '15m' + ? date.toLocaleTimeString() + : date.toLocaleDateString() + }, [currentWindow]) + + const chartData = useMemo(() => { + if (!timingData?.timestamps) return [] + + return timingData.timestamps.map((time, index) => ({ + time: time, + min: timingData.mins[index] / 1000, // Convert to seconds + p05: timingData.p05s[index] / 1000, + p50: timingData.p50s[index] / 1000, + p95: timingData.p95s[index] / 1000, + blocks: timingData.blocks[index] + })) + }, [timingData]) + + const xAxisTicks = useMemo(() => { + if (!timingData?.timestamps.length) return [] + const timestamps = timingData.timestamps + const count = 6 // Show 6 ticks + const step = Math.floor(timestamps.length / (count - 1)) + return Array.from({ length: count }, (_, i) => + i === count - 1 ? timestamps[timestamps.length - 1] : timestamps[i * step] + ) + }, [timingData]) + + const scatterData = useMemo(() => { + if (!cdfData?.arrival_times_ms || !cdfData?.sizes_kb) return [] + + // Create separate datasets for each type + const allData = cdfData.arrival_times_ms.all.map((time, index) => ({ + arrival_time: time / 1000, + size: cdfData.sizes_kb[index], + type: 'all' + })).filter(d => d.size <= 1536) + + const mevData = cdfData.arrival_times_ms.mev.map((time, index) => ({ + arrival_time: time / 1000, + size: cdfData.sizes_kb[index], + type: 'mev' + })).filter(d => d.size <= 1536) + + const nonMevData = cdfData.arrival_times_ms.non_mev.map((time, index) => ({ + arrival_time: time / 1000, + size: cdfData.sizes_kb[index], + type: 'non_mev' + })).filter(d => d.size <= 1536) + + const soloMevData = cdfData.arrival_times_ms.solo_mev.map((time, index) => ({ + arrival_time: time / 1000, + size: cdfData.sizes_kb[index], + type: 'solo_mev' + })).filter(d => d.size <= 1536) + + const soloNonMevData = cdfData.arrival_times_ms.solo_non_mev.map((time, index) => ({ + arrival_time: time / 1000, + size: cdfData.sizes_kb[index], + type: 'solo_non_mev' + })).filter(d => d.size <= 1536) + + return [...allData, ...mevData, ...nonMevData, ...soloMevData, ...soloNonMevData].sort((a, b) => a.size - b.size) + }, [cdfData]) + + if (configLoading || loading) { + return + } + + if (configError) { + return + } + + if (error) { + return + } + + if (!timingData) { + return + } + + return ( +
+
+

About This Data

+

+ This data shows timing data for blocks on the beacon chain. The data is updated hourly and aggregated in {timeWindows.map((w, i) => ( + + {w.step} intervals for the {w.label} view{i < timeWindows.length - 1 ? ', and ' : ''} + + ))}. +

+
+ +
+ +
+ + + {isTimeWindowOpen && ( +
+ {timeWindows.map((window) => ( + + ))} +
+ )} +
+
+ +
+ {/* Block Arrival Timing Chart */} +
+
+
+

Block Arrival Time

+
+ Last updated: {timingData?.updated_at ? formatDistanceToNow(new Date(timingData.updated_at * TIMESTAMP_MULTIPLIER), { addSuffix: true }) : 'No data available'} +
+
+
+ + + + + new Date(time * TIMESTAMP_MULTIPLIER).toLocaleString()} + formatter={(value: number) => [`${value.toFixed(DECIMAL_PLACES)}s`, '']} + /> + ( +
+ {/* Attestation Deadline */} +
+
+ Attestation Deadline (4s) +
+ {/* Regular legend items */} + {payload?.map((entry) => ( + + ))} +
+ )} + /> + {/* Attestation Deadline Reference Line */} + + {!hiddenLines.has('95th Percentile') && ( + + )} + {!hiddenLines.has('Median') && ( + + )} + {!hiddenLines.has('5th Percentile') && ( + + )} + {!hiddenLines.has('Minimum') && ( + + )} + + +
+
+
+ + {/* Block Size vs Arrival Time */} +
+
+
+

Block Size vs Arrival Time

+
+ Last updated: {cdfData?.updated_at ? formatDistanceToNow(new Date(cdfData.updated_at * TIMESTAMP_MULTIPLIER), { addSuffix: true }) : 'No data available'} +
+
+
+ + + ( +
+ {/* Attestation Deadline */} +
+
+ Attestation Deadline (4s) +
+ {/* Block Types */} +
+ + + + + +
+
+ )} + /> + value.toFixed(0)} + /> + + [ + key === 'arrival_time' ? `${value.toFixed(DECIMAL_PLACES)}s` : `${value.toFixed(1)} KB (Block+Blob)`, + key === 'arrival_time' ? 'Arrival Time' : 'Combined Size' + ]} + /> + {/* Attestation Deadline Reference Line */} + + {!hiddenLines.has('all') && ( + d.type === 'all')} + dataKey="arrival_time" + name="All Blocks" + stroke="#22d3ee" + strokeWidth={2} + dot={false} + /> + )} + {!hiddenLines.has('mev') && ( + d.type === 'mev')} + dataKey="arrival_time" + name="MEV Blocks" + stroke="#ef4444" + strokeWidth={2} + dot={false} + /> + )} + {!hiddenLines.has('non_mev') && ( + d.type === 'non_mev')} + dataKey="arrival_time" + name="Non-MEV Blocks" + stroke="#22c55e" + strokeWidth={2} + dot={false} + /> + )} + {!hiddenLines.has('solo_mev') && ( + d.type === 'solo_mev')} + dataKey="arrival_time" + name="Solo MEV Blocks" + stroke="#f472b6" + strokeWidth={2} + dot={false} + /> + )} + {!hiddenLines.has('solo_non_mev') && ( + d.type === 'solo_non_mev')} + dataKey="arrival_time" + name="Solo Non-MEV Blocks" + stroke="#fbbf24" + strokeWidth={2} + dot={false} + /> + )} + + +
+
+

Notes

+
    +
  • All Blocks: Shows the average arrival time for all blocks, regardless of their source.
  • +
  • MEV Blocks: Blocks that were built by MEV-Boost relays, which may have different arrival characteristics due to their specialized construction.
  • +
  • Non-MEV Blocks: Regular blocks built by validators without using MEV-Boost relays.
  • +
  • Solo MEV: Blocks built by solo stakers using MEV-Boost relays.
  • +
  • Solo Non-MEV: Blocks built by solo stakers without using MEV-Boost relays.
  • +
+
+
+
+
+
+ ) +} \ No newline at end of file diff --git a/frontend/src/pages/beacon-chain-timings/index.tsx b/frontend/src/pages/beacon-chain-timings/index.tsx new file mode 100644 index 00000000..57a095df --- /dev/null +++ b/frontend/src/pages/beacon-chain-timings/index.tsx @@ -0,0 +1,48 @@ +import { Link, Outlet, useLocation } from 'react-router-dom' +import { ArrowRight } from 'lucide-react' + +export function BeaconChainTimings(): JSX.Element { + const location = useLocation() + + // If we're on a nested route, render the child route + if (location.pathname !== '/beacon-chain-timings') { + return ( +
+
+ +
+
+ ) + } + + return ( +
+ {/* Overview Section */} +
+
+

Beacon Chain Timings

+

+ This section provides insights into Ethereum beacon chain block timing metrics, including arrival times and block sizes. +

+
+ + {/* Navigation Cards */} +
+ +
+
+
+

Block Arrival Times

+

Analyze block arrival times and their distribution across the network

+
+
+ + +
+
+
+ ) +} \ No newline at end of file diff --git a/frontend/src/types.ts b/frontend/src/types.ts index 71d90db3..3c25aaef 100644 --- a/frontend/src/types.ts +++ b/frontend/src/types.ts @@ -12,6 +12,18 @@ export interface Config { range: string }[] } + 'beacon-chain-timings': { + enabled: boolean + schedule_hours: number + description: string + networks: string[] + time_windows: { + file: string + step: string + label: string + range: string + }[] + } } data: { type: string diff --git a/notebooks/beacon-chain-timings.ipynb b/notebooks/beacon-chain-timings.ipynb new file mode 100644 index 00000000..44c0d484 --- /dev/null +++ b/notebooks/beacon-chain-timings.ipynb @@ -0,0 +1,416 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-01-10 16:31:53,437 - beacon-chain-timings - INFO - Good to go!\n" + ] + } + ], + "source": [ + "import os\n", + "from datetime import datetime, timedelta\n", + "import pandas as pd\n", + "from pathlib import Path\n", + "from lib import Lab\n", + "\n", + "# Initialize lab\n", + "lab = Lab('beacon-chain-timings', '../config.yaml')\n", + "lab.setup()\n", + "lab.setup_pandaops_clickhouse()\n", + "log = lab.log\n", + "\n", + "# Get notebook specific config\n", + "notebook_config = lab.get_notebook_config()\n", + "\n", + "writer = lab.get_data_writer()\n", + "\n", + "pandaops_clickhouse_client = lab.get_pandaops_clickhouse_client()\n", + "\n", + "## Clear the data directory\n", + "lab.delete_directory('')\n", + "\n", + "log.info(\"Good to go!\")" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "BeaconChainTimings(time_windows=[TimeWindow(file='last_30_days', step='6h', label='Last 30d', range='-30d'), TimeWindow(file='last_90_days', step='1d', label='Last 90d', range='-90d')], networks=['mainnet', 'sepolia', 'holesky'], data_dir='../data/beacon-chain-timings')" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "beacon_chain_timings_config = lab.get_notebook_config().as_beacon_chain_timings()\n", + "beacon_chain_timings_config\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-01-10 16:56:54,199 - beacon-chain-timings - INFO - Fetching data for last_30_days\n", + "2025-01-10 16:56:55,844 - beacon-chain-timings - INFO - Found 363 entries for time window last_30_days\n", + "2025-01-10 16:56:55,848 - beacon-chain-timings - INFO - Fetching data for last_90_days\n", + "2025-01-10 16:56:56,731 - beacon-chain-timings - INFO - Found 273 entries for time window last_90_days\n" + ] + } + ], + "source": [ + "from sqlalchemy import text\n", + "from datetime import datetime, timezone\n", + "query = text(\"\"\"\n", + " WITH time_slots AS (\n", + " SELECT \n", + " toStartOfInterval(slot_start_date_time, INTERVAL :step_seconds second) as time_slot,\n", + " meta_network_name,\n", + " min(propagation_slot_start_diff) as min_arrival,\n", + " max(propagation_slot_start_diff) as max_arrival,\n", + " avg(propagation_slot_start_diff) as avg_arrival,\n", + " quantile(0.05)(propagation_slot_start_diff) as p05_arrival,\n", + " quantile(0.50)(propagation_slot_start_diff) as p50_arrival,\n", + " quantile(0.95)(propagation_slot_start_diff) as p95_arrival,\n", + " count(*) as total_blocks\n", + " FROM beacon_api_eth_v1_events_block FINAL\n", + " WHERE\n", + " slot_start_date_time BETWEEN toDateTime(:start_date) AND toDateTime(:end_date)\n", + " AND meta_network_name IN (:networks)\n", + " AND propagation_slot_start_diff < 6000\n", + " GROUP BY time_slot, meta_network_name\n", + " )\n", + " SELECT\n", + " time_slot as time,\n", + " meta_network_name,\n", + " min_arrival,\n", + " max_arrival,\n", + " avg_arrival,\n", + " p05_arrival,\n", + " p50_arrival,\n", + " p95_arrival,\n", + " total_blocks\n", + " FROM time_slots\n", + " ORDER BY time_slot ASC\n", + "\"\"\")\n", + "\n", + "for window in beacon_chain_timings_config.time_windows:\n", + " start_date, end_date = window.get_time_range(datetime.now(timezone.utc))\n", + " step_seconds = window.get_step_seconds()\n", + " \n", + " start_str = start_date.strftime('%Y-%m-%d %H:%M:%S')\n", + " end_str = end_date.strftime('%Y-%m-%d %H:%M:%S')\n", + "\n", + " log.info(f\"Fetching data for {window.file}\")\n", + " \n", + " result = pandaops_clickhouse_client.execute(\n", + " query,\n", + " {\n", + " \"start_date\": start_str,\n", + " \"end_date\": end_str,\n", + " \"networks\": beacon_chain_timings_config.networks,\n", + " \"step_seconds\": step_seconds\n", + " }\n", + " )\n", + " timings = result.fetchall()\n", + "\n", + " if len(timings) == 0:\n", + " log.warning(f\"No data found for time window {window.file}\")\n", + " continue\n", + "\n", + " log.info(f\"Found {len(timings)} entries for time window {window.file}\")\n", + " \n", + " # Process each network separately\n", + " for network in beacon_chain_timings_config.networks:\n", + " network_timings = [t for t in timings if t[1] == network]\n", + " if not network_timings:\n", + " continue\n", + " \n", + " # Structure data as arrays to save space\n", + " times = []\n", + " mins = []\n", + " maxs = []\n", + " avgs = []\n", + " p05s = []\n", + " p50s = []\n", + " p95s = []\n", + " blocks = []\n", + " \n", + " for t in network_timings:\n", + " times.append(int(t[0].timestamp()))\n", + " mins.append(round(t[2], 3))\n", + " maxs.append(round(t[3], 3))\n", + " avgs.append(round(t[4], 3))\n", + " p05s.append(round(t[5], 3))\n", + " p50s.append(round(t[6], 3))\n", + " p95s.append(round(t[7], 3))\n", + " blocks.append(t[8])\n", + " \n", + " # Write compact array format\n", + " formatted_data = {\n", + " \"timestamps\": times,\n", + " \"mins\": mins,\n", + " \"maxs\": maxs,\n", + " \"avgs\": avgs,\n", + " \"p05s\": p05s,\n", + " \"p50s\": p50s,\n", + " \"p95s\": p95s,\n", + " \"blocks\": blocks\n", + " }\n", + " \n", + " # Write to file per time window and network\n", + " lab.write_json(f\"block_timings/{network}/{window.file}.json\", formatted_data)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-01-10 17:38:04,941 - beacon-chain-timings - INFO - Fetching block and blob data for last_30_days (2024-12-11 07:38:04 to 2025-01-10 07:38:04)\n", + "2025-01-10 17:38:04,942 - beacon-chain-timings - INFO - Querying blob data...\n", + "2025-01-10 17:38:09,475 - beacon-chain-timings - INFO - Found blob data for 503400 slots\n", + "2025-01-10 17:38:09,476 - beacon-chain-timings - INFO - Querying MEV relay data...\n", + "2025-01-10 17:38:11,216 - beacon-chain-timings - INFO - Found 264044 MEV relay slots\n", + "2025-01-10 17:38:11,216 - beacon-chain-timings - INFO - Querying block arrival data...\n", + "2025-01-10 17:38:11,217 - beacon-chain-timings - INFO - Querying block size data...\n", + "2025-01-10 17:38:17,907 - beacon-chain-timings - INFO - Found arrival data for 621757 blocks\n", + "2025-01-10 17:38:22,072 - beacon-chain-timings - INFO - Found size data for 619833 blocks\n", + "2025-01-10 17:38:22,073 - beacon-chain-timings - INFO - Getting proposer entities...\n", + "2025-01-10 17:38:31,121 - beacon-chain-timings - INFO - Merged data contains 619833 blocks\n", + "2025-01-10 17:38:31,121 - beacon-chain-timings - INFO - Processing network mainnet...\n" + ] + }, + { + "ename": "KeyError", + "evalue": "'solo_stakers'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn [19], line 143\u001b[0m\n\u001b[1;32m 141\u001b[0m network_df[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mis_mev\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m network_df\u001b[38;5;241m.\u001b[39mslot\u001b[38;5;241m.\u001b[39misin(mev_slots)\n\u001b[1;32m 142\u001b[0m network_df \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mmerge(network_df, proposer_entities, on\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mproposer_index\u001b[39m\u001b[38;5;124m'\u001b[39m, how\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mleft\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m--> 143\u001b[0m network_df[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mis_solo\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m network_df\u001b[38;5;241m.\u001b[39mentity[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124msolo_stakers\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[1;32m 145\u001b[0m \u001b[38;5;66;03m# Bucket sizes into 32KB chunks and get average arrival time per bucket\u001b[39;00m\n\u001b[1;32m 146\u001b[0m network_df[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124msize_bucket\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m (network_df\u001b[38;5;241m.\u001b[39mtotal_size \u001b[38;5;241m/\u001b[39m (\u001b[38;5;241m32\u001b[39m \u001b[38;5;241m*\u001b[39m \u001b[38;5;241m1024\u001b[39m))\u001b[38;5;241m.\u001b[39mround() \u001b[38;5;241m*\u001b[39m \u001b[38;5;241m32\u001b[39m\n", + "File \u001b[0;32m~/.pyenv/versions/anaconda3-2022.05/envs/ldm/lib/python3.10/site-packages/pandas/core/series.py:1121\u001b[0m, in \u001b[0;36mSeries.__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 1118\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_values[key]\n\u001b[1;32m 1120\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m key_is_scalar:\n\u001b[0;32m-> 1121\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_value\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkey\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1123\u001b[0m \u001b[38;5;66;03m# Convert generator to list before going through hashable part\u001b[39;00m\n\u001b[1;32m 1124\u001b[0m \u001b[38;5;66;03m# (We will iterate through the generator there to check for slices)\u001b[39;00m\n\u001b[1;32m 1125\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m is_iterator(key):\n", + "File \u001b[0;32m~/.pyenv/versions/anaconda3-2022.05/envs/ldm/lib/python3.10/site-packages/pandas/core/series.py:1237\u001b[0m, in \u001b[0;36mSeries._get_value\u001b[0;34m(self, label, takeable)\u001b[0m\n\u001b[1;32m 1234\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_values[label]\n\u001b[1;32m 1236\u001b[0m \u001b[38;5;66;03m# Similar to Index.get_value, but we do not fall back to positional\u001b[39;00m\n\u001b[0;32m-> 1237\u001b[0m loc \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mlabel\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1239\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m is_integer(loc):\n\u001b[1;32m 1240\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_values[loc]\n", + "File \u001b[0;32m~/.pyenv/versions/anaconda3-2022.05/envs/ldm/lib/python3.10/site-packages/pandas/core/indexes/range.py:417\u001b[0m, in \u001b[0;36mRangeIndex.get_loc\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 415\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01merr\u001b[39;00m\n\u001b[1;32m 416\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(key, Hashable):\n\u001b[0;32m--> 417\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key)\n\u001b[1;32m 418\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_indexing_error(key)\n\u001b[1;32m 419\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key)\n", + "\u001b[0;31mKeyError\u001b[0m: 'solo_stakers'" + ] + } + ], + "source": [ + "import numpy as np\n", + "\n", + "# Fetch block sizes, blob data and build CDF for each time window\n", + "for window in beacon_chain_timings_config.time_windows:\n", + " start_date, end_date = window.get_time_range(datetime.now(timezone.utc))\n", + " start_str = start_date.strftime('%Y-%m-%d %H:%M:%S')\n", + " end_str = end_date.strftime('%Y-%m-%d %H:%M:%S')\n", + "\n", + " log.info(f\"Fetching block and blob data for {window.file} ({start_str} to {end_str})\")\n", + "\n", + " # Get blob data\n", + " log.info(\"Querying blob data...\")\n", + " blob_query = text(\"\"\"\n", + " SELECT\n", + " slot,\n", + " COUNT(*) * 131072 as total_blob_bytes -- 128KB per blob\n", + " FROM canonical_beacon_blob_sidecar FINAL\n", + " WHERE\n", + " slot_start_date_time BETWEEN toDateTime(:start_date) AND toDateTime(:end_date)\n", + " AND meta_network_name IN (:networks)\n", + " GROUP BY slot\n", + " \"\"\")\n", + "\n", + " blob_result = pandaops_clickhouse_client.execute(\n", + " blob_query,\n", + " {\n", + " \"start_date\": start_str,\n", + " \"end_date\": end_str,\n", + " \"networks\": beacon_chain_timings_config.networks\n", + " }\n", + " )\n", + " blob_data = {r[0]: r[1] for r in blob_result.fetchall()}\n", + " log.info(f\"Found blob data for {len(blob_data)} slots\")\n", + "\n", + " # Get MEV relay data\n", + " log.info(\"Querying MEV relay data...\")\n", + " mev_query = text(\"\"\"\n", + " SELECT DISTINCT\n", + " slot\n", + " FROM mev_relay_proposer_payload_delivered FINAL\n", + " WHERE\n", + " slot_start_date_time BETWEEN toDateTime(:start_date) AND toDateTime(:end_date)\n", + " AND meta_network_name IN (:networks)\n", + " \"\"\")\n", + " \n", + " mev_result = pandaops_clickhouse_client.execute(\n", + " mev_query,\n", + " {\n", + " \"start_date\": start_str,\n", + " \"end_date\": end_str,\n", + " \"networks\": beacon_chain_timings_config.networks\n", + " }\n", + " )\n", + " mev_slots = set(r[0] for r in mev_result.fetchall())\n", + " log.info(f\"Found {len(mev_slots)} MEV relay slots\")\n", + "\n", + " # Get block arrival data\n", + " log.info(\"Querying block arrival data...\")\n", + " block_arrival_query = text(\"\"\"\n", + " SELECT \n", + " slot,\n", + " meta_network_name,\n", + " min(propagation_slot_start_diff) as arrival_time\n", + " FROM beacon_api_eth_v1_events_block FINAL\n", + " WHERE\n", + " slot_start_date_time BETWEEN toDateTime(:start_date) AND toDateTime(:end_date)\n", + " AND meta_network_name IN (:networks)\n", + " GROUP BY slot, meta_network_name\n", + " \"\"\")\n", + "\n", + " # Get block size data\n", + " log.info(\"Querying block size data...\")\n", + " block_size_query = text(\"\"\"\n", + " SELECT \n", + " slot,\n", + " meta_network_name,\n", + " proposer_index,\n", + " block_total_bytes_compressed\n", + " FROM canonical_beacon_block FINAL\n", + " WHERE\n", + " slot_start_date_time BETWEEN toDateTime(:start_date) AND toDateTime(:end_date)\n", + " AND meta_network_name IN (:networks)\n", + " \"\"\")\n", + "\n", + " params = {\n", + " \"start_date\": start_str,\n", + " \"end_date\": end_str,\n", + " \"networks\": beacon_chain_timings_config.networks\n", + " }\n", + "\n", + " # Execute queries and convert to dataframes\n", + " arrival_df = pd.DataFrame(\n", + " pandaops_clickhouse_client.execute(block_arrival_query, params).fetchall(),\n", + " columns=['slot', 'meta_network_name', 'arrival_time']\n", + " )\n", + " log.info(f\"Found arrival data for {len(arrival_df)} blocks\")\n", + " \n", + " size_df = pd.DataFrame(\n", + " pandaops_clickhouse_client.execute(block_size_query, params).fetchall(),\n", + " columns=['slot', 'meta_network_name', 'proposer_index', 'block_size']\n", + " )\n", + " log.info(f\"Found size data for {len(size_df)} blocks\")\n", + "\n", + " # Get proposer entities\n", + " log.info(\"Getting proposer entities...\")\n", + " proposer_query = text(\"\"\"\n", + " SELECT \n", + " `index` as proposer_index,\n", + " entity\n", + " FROM ethseer_validator_entity\n", + " WHERE \n", + " meta_network_name IN (:networks)\n", + " \"\"\")\n", + " proposer_entities = pd.DataFrame(\n", + " pandaops_clickhouse_client.execute(proposer_query, params).fetchall(),\n", + " columns=['proposer_index', 'entity']\n", + " )\n", + "\n", + " # Merge dataframes and only keep slots that exist in size_df (canonical blocks)\n", + " block_data = pd.merge(\n", + " arrival_df, \n", + " size_df,\n", + " on=['slot', 'meta_network_name'],\n", + " how='right'\n", + " ).dropna()\n", + " log.info(f\"Merged data contains {len(block_data)} blocks\")\n", + "\n", + " # Process each network\n", + " for network in beacon_chain_timings_config.networks:\n", + " log.info(f\"Processing network {network}...\")\n", + " network_df = block_data[block_data.meta_network_name == network].copy()\n", + " if network_df.empty:\n", + " log.warning(f\"No data found for network {network}\")\n", + " continue\n", + " \n", + " # Add blob sizes, MEV flag and entity info\n", + " network_df['total_size'] = network_df.apply(\n", + " lambda row: max(row.block_size + blob_data.get(row.slot, 0), 1), # Ensure minimum size of 1 byte\n", + " axis=1\n", + " )\n", + " network_df['is_mev'] = network_df.slot.isin(mev_slots)\n", + " network_df = pd.merge(network_df, proposer_entities, on='proposer_index', how='left')\n", + " network_df['is_solo'] = network_df.entity == 'solo_stakers'\n", + "\n", + " # Bucket sizes into 32KB chunks and get average arrival time per bucket\n", + " network_df['size_bucket'] = (network_df.total_size / (32 * 1024)).round() * 32\n", + " network_df['size_bucket'] = network_df['size_bucket'].apply(lambda x: max(x, 32)) # Minimum bucket of 32KB\n", + " \n", + " # Calculate averages for all blocks, MEV blocks, non-MEV blocks, and solo staker blocks\n", + " avg_all = network_df.groupby('size_bucket')['arrival_time'].mean().round().reset_index()\n", + " avg_mev = network_df[network_df.is_mev].groupby('size_bucket')['arrival_time'].mean().round().reset_index()\n", + " avg_non_mev = network_df[~network_df.is_mev].groupby('size_bucket')['arrival_time'].mean().round().reset_index()\n", + " avg_solo_mev = network_df[network_df.is_solo & network_df.is_mev].groupby('size_bucket')['arrival_time'].mean().round().reset_index()\n", + " avg_solo_non_mev = network_df[network_df.is_solo & ~network_df.is_mev].groupby('size_bucket')['arrival_time'].mean().round().reset_index()\n", + "\n", + " # Write data\n", + " formatted_data = {\n", + " \"sizes_kb\": avg_all.size_bucket.tolist(),\n", + " \"arrival_times_ms\": {\n", + " \"all\": avg_all.arrival_time.tolist(),\n", + " \"mev\": avg_mev.arrival_time.tolist() if not avg_mev.empty else [],\n", + " \"non_mev\": avg_non_mev.arrival_time.tolist() if not avg_non_mev.empty else [],\n", + " \"solo_mev\": avg_solo_mev.arrival_time.tolist() if not avg_solo_mev.empty else [],\n", + " \"solo_non_mev\": avg_solo_non_mev.arrival_time.tolist() if not avg_solo_non_mev.empty else []\n", + " }\n", + " }\n", + "\n", + " output_path = f\"size_cdf/{network}/{window.file}.json\"\n", + " log.info(f\"Writing data to {output_path}\")\n", + " lab.write_json(output_path, formatted_data)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/lib/config.py b/notebooks/lib/config.py index 928f5505..841dd0ea 100644 --- a/notebooks/lib/config.py +++ b/notebooks/lib/config.py @@ -89,7 +89,26 @@ def from_dict(cls, data: Dict[str, Any], data_config: DataConfig) -> "XatuPublic data_dir=str(Path(data_config.path) / "xatu-public-contributors"), networks=data.get("networks", []) ) - +@dataclass +class MevRelays: + networks: List[str] + @classmethod + def from_dict(cls, data: Dict[str, Any]) -> "MevRelays": + return cls( + networks=data.get("networks", []) + ) +@dataclass +class BeaconChainTimings: + time_windows: List[TimeWindow] + networks: List[str] + data_dir: str + @classmethod + def from_dict(cls, data: Dict[str, Any], data_config: DataConfig) -> "BeaconChainTimings": + return cls( + time_windows=[TimeWindow(**w) for w in data.get("time_windows", [])], + networks=data.get("networks", []), + data_dir=str(Path(data_config.path) / "beacon-chain-timings") + ) @dataclass class NotebookConfig: enabled: bool @@ -106,6 +125,20 @@ def as_xatu_public_contributors(self) -> Optional[XatuPublicContributors]: except Exception as e: print(f"Failed to parse XatuPublicContributors config: {e}") return None + def as_mev_relays(self) -> Optional[MevRelays]: + """Convert config to MevRelays if valid""" + try: + return MevRelays.from_dict(self.config) + except Exception as e: + print(f"Failed to parse MevRelays config: {e}") + return None + def as_beacon_chain_timings(self) -> Optional[BeaconChainTimings]: + """Convert config to BeaconChainTimings if valid""" + try: + return BeaconChainTimings.from_dict(self.config, self.data_config) + except Exception as e: + print(f"Failed to parse BeaconChainTimings config: {e}") + return None @dataclass class Config: diff --git a/notebooks/mev-relays.disabled-ipynb b/notebooks/mev-relays.disabled-ipynb new file mode 100644 index 00000000..c6851e9a --- /dev/null +++ b/notebooks/mev-relays.disabled-ipynb @@ -0,0 +1,1503 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-01-10 15:00:18,874 - mev-relays - INFO - Good to go!\n" + ] + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mThe Kernel crashed while executing code in the current cell or a previous cell. \n", + "\u001b[1;31mPlease review the code in the cell(s) to identify a possible cause of the failure. \n", + "\u001b[1;31mClick here for more info. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], + "source": [ + "import os\n", + "from datetime import datetime, timedelta\n", + "import pandas as pd\n", + "from pathlib import Path\n", + "from lib import Lab\n", + "\n", + "# Initialize lab\n", + "lab = Lab('mev-relays', '../config.yaml')\n", + "lab.setup()\n", + "lab.setup_pandaops_clickhouse()\n", + "log = lab.log\n", + "\n", + "# Get notebook specific config\n", + "notebook_config = lab.get_notebook_config()\n", + "\n", + "writer = lab.get_data_writer()\n", + "\n", + "pandaops_clickhouse_client = lab.get_pandaops_clickhouse_client()\n", + "\n", + "log.info(\"Good to go!\")\n", + "\n", + "# EARLY EXIT. We Don't use this notebook yet.\n", + "return\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "MevRelays(time_windows=[TimeWindow(file='last_30_days', step='1d', label='Last 30d', range='-30d'), TimeWindow(file='last_1_day', step='1h', label='Last 1d', range='-1d'), TimeWindow(file='last_6h', step='5m', label='Last 6h', range='-6h')], networks=['mainnet'])" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mev_relays_config = lab.get_notebook_config().as_mev_relays()\n", + "mev_relays_config" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
validator_indexentity
088035whale_0x3230
1985037whale_0x9f1d
2985038whale_0x9f1d
3985039whale_0x9f1d
4985040whale_0x9f1d
.........
1535620983558rocketpool
1535621983572solo_stakers
1535622983573solo_stakers
1535623983671solo_stakers
1535624983746stakefish
\n", + "

1535625 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " validator_index entity\n", + "0 88035 whale_0x3230\n", + "1 985037 whale_0x9f1d\n", + "2 985038 whale_0x9f1d\n", + "3 985039 whale_0x9f1d\n", + "4 985040 whale_0x9f1d\n", + "... ... ...\n", + "1535620 983558 rocketpool\n", + "1535621 983572 solo_stakers\n", + "1535622 983573 solo_stakers\n", + "1535623 983671 solo_stakers\n", + "1535624 983746 stakefish\n", + "\n", + "[1535625 rows x 2 columns]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "validator_query = text(\"\"\"\n", + " SELECT \n", + " `index` as validator_index,\n", + " entity\n", + " FROM ethseer_validator_entity\n", + " WHERE \n", + " meta_network_name = :network\n", + "\"\"\")\n", + "validator_entities = pd.DataFrame(\n", + " pandaops_clickhouse_client.execute(validator_query, {\"network\": mev_relays_config.networks[0]}).fetchall(),\n", + " columns=['validator_index', 'entity']\n", + ")\n", + "validator_entities" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-01-10 14:09:45,607 - mev-relays - INFO - Fetching relay registrations for last 2.5 weeks\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
validator_indexslotgas_limittimestamprelay_nameentity
04944810300000001606824023Aestussolo_stakers
14944810300000001606824023Agnostic Gnosissolo_stakers
24944810300000001606824023Titan Relaysolo_stakers
34944810300000001606824023Ultra Soundsolo_stakers
45565450300000001606824023Aestussolo_stakers
.....................
1192997078143310804781360000001736481404Titan Relaycoinbase
1192997178162810804781360000001736481404BloXroute Max Profitcoinbase
1192997278162810804781360000001736481404Titan Relaycoinbase
1192997378260210804781360000001736481404BloXroute Max Profitcoinbase
1192997478260210804781360000001736481404Titan Relaycoinbase
\n", + "

11929975 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " validator_index slot gas_limit timestamp \\\n", + "0 494481 0 30000000 1606824023 \n", + "1 494481 0 30000000 1606824023 \n", + "2 494481 0 30000000 1606824023 \n", + "3 494481 0 30000000 1606824023 \n", + "4 556545 0 30000000 1606824023 \n", + "... ... ... ... ... \n", + "11929970 781433 10804781 36000000 1736481404 \n", + "11929971 781628 10804781 36000000 1736481404 \n", + "11929972 781628 10804781 36000000 1736481404 \n", + "11929973 782602 10804781 36000000 1736481404 \n", + "11929974 782602 10804781 36000000 1736481404 \n", + "\n", + " relay_name entity \n", + "0 Aestus solo_stakers \n", + "1 Agnostic Gnosis solo_stakers \n", + "2 Titan Relay solo_stakers \n", + "3 Ultra Sound solo_stakers \n", + "4 Aestus solo_stakers \n", + "... ... ... \n", + "11929970 Titan Relay coinbase \n", + "11929971 BloXroute Max Profit coinbase \n", + "11929972 Titan Relay coinbase \n", + "11929973 BloXroute Max Profit coinbase \n", + "11929974 Titan Relay coinbase \n", + "\n", + "[11929975 rows x 6 columns]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sqlalchemy import text\n", + "from datetime import datetime, timezone\n", + "\n", + "query = text(\"\"\"\n", + " SELECT\n", + " validator_index,\n", + " slot,\n", + " gas_limit,\n", + " timestamp,\n", + " relay_name\n", + " FROM\n", + " mev_relay_validator_registration\n", + " WHERE\n", + " event_date_time >= :start_date\n", + " AND event_date_time < :end_date\n", + " AND meta_network_name = :network\n", + " GROUP BY\n", + " validator_index,\n", + " slot,\n", + " gas_limit,\n", + " timestamp,\n", + " relay_name\n", + " ORDER BY\n", + " slot,\n", + " validator_index,\n", + " relay_name\n", + "\"\"\")\n", + "\n", + "# Get last 2.5 weeks window\n", + "end_date = datetime.now(timezone.utc)\n", + "start_date = end_date - timedelta(days=16)\n", + "\n", + "# Format dates without microseconds for Clickhouse\n", + "start_str = start_date.strftime('%Y-%m-%d %H:%M:%S')\n", + "end_str = end_date.strftime('%Y-%m-%d %H:%M:%S')\n", + "\n", + "log.info(\"Fetching relay registrations for last 16 days\")\n", + "\n", + "registrations = pd.read_sql(\n", + " query, \n", + " pandaops_clickhouse_client, \n", + " params={\n", + " \"start_date\": start_str,\n", + " \"end_date\": end_str,\n", + " \"network\": mev_relays_config.networks[0]\n", + " }\n", + ")\n", + "\n", + "# Add proposer entity to registrations\n", + "registrations = registrations.merge(validator_entities, on='validator_index', how='left')\n", + "registrations\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
indexstatus
02active_ongoing
13active_ongoing
24active_ongoing
38active_ongoing
411active_ongoing
.........
1759949893333active_ongoing
1759950893335active_ongoing
1759951893343active_ongoing
1759952893344active_ongoing
1759953893352active_ongoing
\n", + "

1759954 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " index status\n", + "0 2 active_ongoing\n", + "1 3 active_ongoing\n", + "2 4 active_ongoing\n", + "3 8 active_ongoing\n", + "4 11 active_ongoing\n", + "... ... ...\n", + "1759949 893333 active_ongoing\n", + "1759950 893335 active_ongoing\n", + "1759951 893343 active_ongoing\n", + "1759952 893344 active_ongoing\n", + "1759953 893352 active_ongoing\n", + "\n", + "[1759954 rows x 2 columns]" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Get latest epoch's validators\n", + "query = text(\"\"\"\n", + " SELECT \n", + " index,\n", + " status\n", + " FROM canonical_beacon_validators\n", + " WHERE \n", + " epoch = (\n", + " SELECT MAX(epoch) \n", + " FROM canonical_beacon_validators \n", + " WHERE meta_network_name = :network\n", + " AND epoch_start_date_time >= NOW() - INTERVAL 14 DAY\n", + " )\n", + " AND meta_network_name = :network\n", + " AND epoch_start_date_time >= NOW() - INTERVAL 14 DAY\n", + "\"\"\")\n", + "\n", + "validators = pd.read_sql(\n", + " query,\n", + " pandaops_clickhouse_client,\n", + " params={\"network\": mev_relays_config.networks[0]}\n", + ")\n", + "validators\n" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
indexstatus
02active_ongoing
13active_ongoing
24active_ongoing
38active_ongoing
411active_ongoing
.........
1759949893333active_ongoing
1759950893335active_ongoing
1759951893343active_ongoing
1759952893344active_ongoing
1759953893352active_ongoing
\n", + "

1070507 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " index status\n", + "0 2 active_ongoing\n", + "1 3 active_ongoing\n", + "2 4 active_ongoing\n", + "3 8 active_ongoing\n", + "4 11 active_ongoing\n", + "... ... ...\n", + "1759949 893333 active_ongoing\n", + "1759950 893335 active_ongoing\n", + "1759951 893343 active_ongoing\n", + "1759952 893344 active_ongoing\n", + "1759953 893352 active_ongoing\n", + "\n", + "[1070507 rows x 2 columns]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "non_active_validators = validators[validators['status'] != 'active_ongoing']\n", + "non_active_validators\n", + "\n", + "active_validators = validators[validators['status'] == 'active_ongoing']\n", + "active_validators" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/fq/bp58gxy12nd2b32pw1y8wy040000gn/T/ipykernel_28284/3333959086.py:2: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " active_registrations['date'] = pd.to_datetime(active_registrations['timestamp'], unit='s').dt.date\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
validator_indexslotgas_limittimestamprelay_nameentitydate
04944810300000001606824023Aestussolo_stakers2020-12-01
14944810300000001606824023Agnostic Gnosissolo_stakers2020-12-01
24944810300000001606824023Titan Relaysolo_stakers2020-12-01
34944810300000001606824023Ultra Soundsolo_stakers2020-12-01
45565450300000001606824023Aestussolo_stakers2020-12-01
........................
1192997078143310804781360000001736481404Titan Relaycoinbase2025-01-10
1192997178162810804781360000001736481404BloXroute Max Profitcoinbase2025-01-10
1192997278162810804781360000001736481404Titan Relaycoinbase2025-01-10
1192997378260210804781360000001736481404BloXroute Max Profitcoinbase2025-01-10
1192997478260210804781360000001736481404Titan Relaycoinbase2025-01-10
\n", + "

11748058 rows × 7 columns

\n", + "
" + ], + "text/plain": [ + " validator_index slot gas_limit timestamp \\\n", + "0 494481 0 30000000 1606824023 \n", + "1 494481 0 30000000 1606824023 \n", + "2 494481 0 30000000 1606824023 \n", + "3 494481 0 30000000 1606824023 \n", + "4 556545 0 30000000 1606824023 \n", + "... ... ... ... ... \n", + "11929970 781433 10804781 36000000 1736481404 \n", + "11929971 781628 10804781 36000000 1736481404 \n", + "11929972 781628 10804781 36000000 1736481404 \n", + "11929973 782602 10804781 36000000 1736481404 \n", + "11929974 782602 10804781 36000000 1736481404 \n", + "\n", + " relay_name entity date \n", + "0 Aestus solo_stakers 2020-12-01 \n", + "1 Agnostic Gnosis solo_stakers 2020-12-01 \n", + "2 Titan Relay solo_stakers 2020-12-01 \n", + "3 Ultra Sound solo_stakers 2020-12-01 \n", + "4 Aestus solo_stakers 2020-12-01 \n", + "... ... ... ... \n", + "11929970 Titan Relay coinbase 2025-01-10 \n", + "11929971 BloXroute Max Profit coinbase 2025-01-10 \n", + "11929972 Titan Relay coinbase 2025-01-10 \n", + "11929973 BloXroute Max Profit coinbase 2025-01-10 \n", + "11929974 Titan Relay coinbase 2025-01-10 \n", + "\n", + "[11748058 rows x 7 columns]" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "active_registrations = registrations[~registrations['validator_index'].isin(non_active_validators['index'])]\n", + "active_registrations['date'] = pd.to_datetime(active_registrations['timestamp'], unit='s').dt.date\n", + "active_registrations\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
validator_indexrelay_nameslotgas_limittimestampentity
00Aestus8708041300000001711320515solo_stakers
10Agnostic Gnosis8708041300000001711320515solo_stakers
20BloXroute Max Profit10681573300000001735002899solo_stakers
30Eden Network10681573300000001735002899solo_stakers
40Flashbots8708041300000001711320515solo_stakers
.....................
67089791734312BloXroute Regulated10799168300000001736414039None
67089801734312Flashbots10796057300000001736376707None
67089811734312Manifold10796057300000001736376707None
67089821734312Titan Relay10799168300000001736414039None
67089831734312Ultra Sound10796057300000001736376707None
\n", + "

6708984 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " validator_index relay_name slot gas_limit \\\n", + "0 0 Aestus 8708041 30000000 \n", + "1 0 Agnostic Gnosis 8708041 30000000 \n", + "2 0 BloXroute Max Profit 10681573 30000000 \n", + "3 0 Eden Network 10681573 30000000 \n", + "4 0 Flashbots 8708041 30000000 \n", + "... ... ... ... ... \n", + "6708979 1734312 BloXroute Regulated 10799168 30000000 \n", + "6708980 1734312 Flashbots 10796057 30000000 \n", + "6708981 1734312 Manifold 10796057 30000000 \n", + "6708982 1734312 Titan Relay 10799168 30000000 \n", + "6708983 1734312 Ultra Sound 10796057 30000000 \n", + "\n", + " timestamp entity \n", + "0 1711320515 solo_stakers \n", + "1 1711320515 solo_stakers \n", + "2 1735002899 solo_stakers \n", + "3 1735002899 solo_stakers \n", + "4 1711320515 solo_stakers \n", + "... ... ... \n", + "6708979 1736414039 None \n", + "6708980 1736376707 None \n", + "6708981 1736376707 None \n", + "6708982 1736414039 None \n", + "6708983 1736376707 None \n", + "\n", + "[6708984 rows x 6 columns]" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Ensure we've got the most recent registrations with a unique key of validator index and relay name\n", + "most_recent_registrations_per_relay = active_registrations.groupby(['validator_index', 'relay_name']).last().reset_index()\n", + "most_recent_registrations_per_relay\n" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
validator_indexslotgas_limittimestamprelay_nameentitydate
0010681573300000001735002899Titan Relaysolo_stakers2024-12-24
1110681573300000001735002899Titan Relaysolo_stakers2024-12-24
2210681573300000001735002899Titan Relaysolo_stakers2024-12-24
3310681573300000001735002899Titan Relaysolo_stakers2024-12-24
4410681573300000001735002899Titan Relaysolo_stakers2024-12-24
........................
1036498173430810799168300000001736414039Titan RelayNone2025-01-09
1036499173430910799168300000001736414039Titan RelayNone2025-01-09
1036500173431010799168300000001736414039Titan RelayNone2025-01-09
1036501173431110799168300000001736414039Titan RelayNone2025-01-09
1036502173431210799168300000001736414039Titan RelayNone2025-01-09
\n", + "

1036503 rows × 7 columns

\n", + "
" + ], + "text/plain": [ + " validator_index slot gas_limit timestamp relay_name \\\n", + "0 0 10681573 30000000 1735002899 Titan Relay \n", + "1 1 10681573 30000000 1735002899 Titan Relay \n", + "2 2 10681573 30000000 1735002899 Titan Relay \n", + "3 3 10681573 30000000 1735002899 Titan Relay \n", + "4 4 10681573 30000000 1735002899 Titan Relay \n", + "... ... ... ... ... ... \n", + "1036498 1734308 10799168 30000000 1736414039 Titan Relay \n", + "1036499 1734309 10799168 30000000 1736414039 Titan Relay \n", + "1036500 1734310 10799168 30000000 1736414039 Titan Relay \n", + "1036501 1734311 10799168 30000000 1736414039 Titan Relay \n", + "1036502 1734312 10799168 30000000 1736414039 Titan Relay \n", + "\n", + " entity date \n", + "0 solo_stakers 2024-12-24 \n", + "1 solo_stakers 2024-12-24 \n", + "2 solo_stakers 2024-12-24 \n", + "3 solo_stakers 2024-12-24 \n", + "4 solo_stakers 2024-12-24 \n", + "... ... ... \n", + "1036498 None 2025-01-09 \n", + "1036499 None 2025-01-09 \n", + "1036500 None 2025-01-09 \n", + "1036501 None 2025-01-09 \n", + "1036502 None 2025-01-09 \n", + "\n", + "[1036503 rows x 7 columns]" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Ensure we've got the most recent registrations with a unique key of validator index ordered by timestamp\n", + "# Filter for active validators only\n", + "most_recent_registrations = active_registrations[active_registrations['validator_index'].isin(active_validators['index'])] \\\n", + " .groupby(['validator_index']).last().reset_index()\n", + "most_recent_registrations\n" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
relay_namecount
0Aestus1994
1Agnostic Gnosis12105
2BloXroute Max Profit43775
3BloXroute Regulated43515
4Eden Network16
5Flashbots12401
6Manifold4673
7Titan Relay735983
8Ultra Sound175433
9Wenmerge6608
\n", + "
" + ], + "text/plain": [ + " relay_name count\n", + "0 Aestus 1994\n", + "1 Agnostic Gnosis 12105\n", + "2 BloXroute Max Profit 43775\n", + "3 BloXroute Regulated 43515\n", + "4 Eden Network 16\n", + "5 Flashbots 12401\n", + "6 Manifold 4673\n", + "7 Titan Relay 735983\n", + "8 Ultra Sound 175433\n", + "9 Wenmerge 6608" + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Start building out the data we want to write to file\n", + "\n", + "total_validators_registered = len(most_recent_registrations)\n", + "total_active_validators = len(active_validators)\n", + "\n", + "## Count the number of validators registered to each relay\n", + "relay_totals = most_recent_registrations.groupby('relay_name').size().reset_index(name='count')\n", + "relay_totals\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "entity\n", + "solo_stakers 7756\n", + "whale_0x24d6 1014\n", + "whale_0xe43c 1011\n", + "abyss_finance 616\n", + "whale_0xefa0 507\n", + "whale_0x39fd 329\n", + "whale_0x900c 309\n", + "whale_0x1d5b 308\n", + "whale_0x10d5 304\n", + "whale_0xe3f7 290\n", + "dtype: int64" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Get the number of validators who are not registered to any relay and their entities\n", + "non_registered_validators = active_validators[~active_validators['index'].isin(most_recent_registrations['validator_index'])]\n", + "non_registered_validators = non_registered_validators.merge(validator_entities, left_on='index', right_on='validator_index')\n", + "\n", + "# Count per entity, show the top 10\n", + "non_registered_validators.groupby('entity').size().sort_values(ascending=False).head(10)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'total_active_validators': 1070507,\n", + " 'total_validators_registered': 1036503,\n", + " 'relay_registrations': [{'relay_name': 'Aestus', 'count': 1994},\n", + " {'relay_name': 'Agnostic Gnosis', 'count': 12105},\n", + " {'relay_name': 'BloXroute Max Profit', 'count': 43775},\n", + " {'relay_name': 'BloXroute Regulated', 'count': 43515},\n", + " {'relay_name': 'Eden Network', 'count': 16},\n", + " {'relay_name': 'Flashbots', 'count': 12401},\n", + " {'relay_name': 'Manifold', 'count': 4673},\n", + " {'relay_name': 'Titan Relay', 'count': 735983},\n", + " {'relay_name': 'Ultra Sound', 'count': 175433},\n", + " {'relay_name': 'Wenmerge', 'count': 6608}],\n", + " 'top_unregistered_entities': {'solo_stakers': 7756,\n", + " 'whale_0x24d6': 1014,\n", + " 'whale_0xe43c': 1011,\n", + " 'abyss_finance': 616,\n", + " 'whale_0xefa0': 507,\n", + " 'whale_0x39fd': 329,\n", + " 'whale_0x900c': 309,\n", + " 'whale_0x1d5b': 308,\n", + " 'whale_0x10d5': 304,\n", + " 'whale_0xe3f7': 290}}" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Write summary data to JSON\n", + "summary = {\n", + " \"total_active_validators\": int(total_active_validators),\n", + " \"total_validators_registered\": int(total_validators_registered),\n", + " \"relay_registrations\": relay_totals.to_dict('records'),\n", + " \"top_unregistered_entities\": non_registered_validators.groupby('entity').size().sort_values(ascending=False).head(10).to_dict()\n", + "}\n", + "\n", + "\n", + "lab.write_json('mev-relays-summary.json', summary)\n", + "\n", + "\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}