1"use strict";(globalThis.webpackChunkpublic_docs=globalThis.webpackChunkpublic_docs||[]).push([[5820],{28453(e,t,r){r.d(t,{R:()=>a,x:()=>s});var o=r(96540);const i={},n=o.createContext(i);function a(e){const t=o.useContext(n);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),o.createElement(n.Provider,{value:t},e.children)}},61872(e){e.exports=JSON.parse('{"permalink":"/posts/pectra-mainnet-checklist","source":"@site/blog/2025-05-01-pectra-mainnet/index.md","title":"Pectra Mainnet Checklist","description":"Prepare for the Pectra Mainnet launch!","date":"2025-05-01T00:00:00.000Z","tags":[{"inline":true,"label":"mainnet","permalink":"/posts/tags/mainnet"},{"inline":true,"label":"pectra","permalink":"/posts/tags/pectra"},{"inline":true,"label":"upgrade","permalink":"/posts/tags/upgrade"},{"inline":true,"label":"electra","permalink":"/posts/tags/electra"},{"inline":true,"label":"prague","permalink":"/posts/tags/prague"}],"readingTime":17.64,"hasTruncateMarker":false,"authors":[{"name":"ethPandaOps Team","title":"ethPandaOps Team","url":"https://github.com/ethpandaops","imageURL":"https://github.com/ethpandaops.png","key":"team","page":null}],"frontMatter":{"slug":"pectra-mainnet-checklist","title":"Pectra Mainnet Checklist","authors":["team"],"description":"Prepare for the Pectra Mainnet launch!","tags":["mainnet","pectra","upgrade","electra","prague"],"image":"/img/blog/pectra-mainnet.jpg","relatedLinks":[{"name":"Ethereum Foundation Blog Post","url":"https://blog.ethereum.org/2025/04/23/pectra-mainnet"},{"name":"Upgrade Livestream","url":"https://www.youtube.com/watch?v=NbxaCZYtW-I"}]},"unlisted":false,"prevItem":{"title":"60M Gas Limit on Sepolia & Hoodi","permalink":"/posts/60m-gas-sepolia-hoodi"},"nextItem":{"title":"Electra on Hoodi: Attestation Packing","permalink":"/posts/hoodi-attestation-packing"}}')},86213(e,t,r){r.r(t),r.d(t,{MonitoringResources:()=>u,PectraCountdown:()=>h,PectraUpgradeWizard:()=>c,ToolingTable:()=>p,assets:()=>d,contentTitle:()=>l,default:()=>x,frontMatter:()=>s,metadata:()=>o,toc:()=>g});var o=r(61872),i=r(74848),n=r(28453),a=r(96540);const s={slug:"pectra-mainnet-checklist",title:"Pectra Mainnet Checklist",authors:["team"],description:"Prepare for the Pectra Mainnet launch!",tags:["mainnet","pectra","upgrade","electra","prague"],image:"/img/blog/pectra-mainnet.jpg",relatedLinks:[{name:"Ethereum Foundation Blog Post",url:"https://blog.ethereum.org/2025/04/23/pectra-mainnet"},{name:"Upgrade Livestream",url:"https://www.youtube.com/watch?v=NbxaCZYtW-I"}]},l=void 0,d={authorsImageUrls:[void 0]},c=()=>{const e={geth:{name:"Geth",version:"v1.15.9",url:"https://github.com/ethereum/go-ethereum"},nethermind:{name:"Nethermind",version:"v1.31.9",url:"https://github.com/NethermindEth/nethermind"},besu:{name:"Besu",version:"v25.4.1",url:"https://github.com/besu-eth/besu"},erigon:{name:"Erigon",version:"v3.0.2",url:"https://github.com/ledgerwatch/erigon"},reth:{name:"Reth",version:"v1.3.12",url:"https://github.com/paradigmxyz/reth"}},t={lighthouse:{name:"Lighthouse",version:"v7.0.1",url:"https://github.com/sigp/lighthouse"},nimbus:{name:"Nimbus",version:"v25.4.1",url:"https://github.com/status-im/nimbus-eth2"},prysm:{name:"Prysm",version:"v6.0.1",url:"https://github.com/prysmaticlabs/prysm"},teku:{name:"Teku",version:"v25.4.1",url:"https://github.com/ConsenSys/teku"},lodestar:{name:"Lodestar",version:"v1.29.0",url:"https://github.com/ChainSafe/lodestar"},grandine:{name:"Grandine",version:"v1.1.0",url:"https://github.com/grandinetech/grandine"}},r={name:"MEV-Boost",version:"v1.9",url:"https://github.com/flashbots/mev-boost"},[o,n]=(0,a.useState)("start"),[s,l]=(0,a.useState)(!1),[d,c]=(0,a.useState)(!1),[h,p]=(0,a.useState)(!1),[u,g]=(0,a.useState)(""),[m,x]=(0,a.useState)(""),[v,f]=(0,a.useState)(!1),[b,y]=(0,a.useState)(!1),[k,w]=(0,a.useState)(!1),[j,C]=(0,a.useState)(!1),[S,T]=(0,a.useState)(!1);(0,a.useEffect)(()=>{const e=localStorage.getItem("pectraUserSetup");if(e)try{const t=JSON.parse(e);l(t.isNode||!1),c(t.isValidator||!1),p(t.isMevBoost||!1),g(t.elClient||""),x(t.clClient||""),f(t.elUpgraded||!1),y(t.clUpgraded||!1),w(t.validatorUpgraded||!1),C(t.mevUpgraded||!1),T(!0),t.isNode&&(t.elClient?t.elUpgraded?t.clClient?t.clUpgraded?t.isValidator&&!t.validatorUpgraded?n("validator_upgraded"):t.isMevBoost&&!t.mevUpgraded?n("mev_upgraded"):n("complete"):n("cl_upgraded"):n("cl_client"):n("el_upgraded"):n("el_client"))}catch(t){console.error("Error parsing saved setup",t)}},[]),(0,a.useEffect)(()=>{S&&localStorage.setItem("pectraUserSetup",JSON.stringify({isNode:s,isValidator:d,isMevBoost:h,elClient:u,clClient:m,elUpgraded:v,clUpgraded:b,validatorUpgraded:k,mevUpgraded:j}))},[s,d,h,u,m,v,b,k,j,S]);const _=()=>{if(s){if(!v||!b)return!1;if(d&&!k)return!1;if(h&&!j)return!1}return!0},P=(e,t)=>{switch(S||T(!0),o){case"start":l("yes"===e);break;case"el_client":g(e);break;case"el_upgraded":f("yes"===e);break;case"cl_client":x(e);break;case"cl_upgraded":y("yes"===e);break;case"validator":c("yes"===e);break;case"validator_upgraded":w("yes"===e);break;case"mev":p("yes"===e);break;case"mev_upgraded":C("yes"===e)}n(t)},E=(e,t)=>{switch(e){case"start":return"yes"===t?"el_client":"not_running_node";case"el_client":return"el_upgraded";case"el_upgraded":return"cl_client";case"cl_client":return"cl_upgraded";case"cl_upgraded":return"validator";case"validator":return"yes"===t?"validator_upgraded":"complete";case"validator_upgraded":return"mev";case"mev":return"yes"===t?"mev_upgraded":"complete";default:return"complete"}},W=()=>{switch(o){case"start":return"Are you running an Ethereum node?";case"el_client":return"Which execution client are you using?";case"el_upgraded":return`Have you upgraded your ${u?u.charAt(0).toUpperCase()+u.slice(1):"execution client"} to at least ${u&&e[u]?e[u].version:"the latest version"}?`;case"cl_client":return"Which consensus client are you using?";case"cl_upgraded":return`Have you upgraded your ${m?m.charAt(0).toUpperCase()+m.slice(1):"consensus client"} to at least ${m&&t[m]?t[m].version:"the latest version"}?`;case"validator":return"Are you running a validator?";case"validator_upgraded":return`Have you upgraded your ${m?m.charAt(0).toUpperCase()+m.slice(1):"consensus client"} validator client to at least ${m&&t[m]?t[m].version:"the latest version"}?`;case"mev":return"Are you running MEV-Boost?";case"mev_upgraded":return`Have you upgraded MEV-Boost to at least ${r.version}?`;case"not_running_node":case"complete":return _()?"Congratulations! You're all set for the Pectra upgrade! \ud83c\udf89":"Please complete the necessary upgrades before the Pectra fork.";default:return"Let's check your readiness for the Pectra upgrade"}};return(0,i.jsxs)("div",{style:{marginBottom:"32px",padding:"24px",borderRadius:"8px",backgroundColor:"var(--ifm-background-surface-color)",border:"1px solid var(--ifm-color-emphasis-300)"},children:[(()=>{const e=["start","el_client","el_upgraded","cl_client","cl_upgraded","validator","validator_upgraded","mev","mev_upgraded","complete"];let t=e;"start"===o||d||(t=e.filter(e=>!["validator","validator_upgraded"].includes(e)));const r=t.indexOf(o)/(t.length-1)*100;return(0,i.jsxs)("div",{style:{marginBottom:"32px"},children:[(0,i.jsx)("div",{style:{width:"100%",height:"8px",backgroundColor:"var(--ifm-color-emphasis-200)",borderRadius:"4px",overflow:"hidden"},children:(0,i.jsx)("div",{style:{width:`${r}%`,height:"100%",backgroundColor:"var(--ifm-color-primary)",transition:"width 0.5s ease"}})}),(0,i.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginTop:"4px",fontSize:"12px",color:"var(--ifm-color-emphasis-600)"},children:[(0,i.jsx)("span",{children:"Start"}),(0,i.jsx)("span",{children:"Progress"}),(0,i.jsx)("span",{children:"Complete"})]})]})})(),(()=>{if("not_running_node"===o)return(0,i.jsxs)("div",{style:{textAlign:"center",margin:"24px 0"},children:[(0,i.jsx)("div",{style:{fontSize:"64px",marginBottom:"16
1px"},children:"\ud83c\udf89"}),(0,i.jsx)("h3",{style:{color:"var(--ifm-color-success)"},children:W()}),(0,i.jsx)("p",{children:"You don't need to do anything for this upgrade. You can still keep an eye on the Pectra upgrade through the monitoring resources below."}),(0,i.jsx)("button",{onClick:()=>n("start"),style:{marginTop:"16px",padding:"8px 16px",backgroundColor:"var(--ifm-color-emphasis-200)",color:"var(--ifm-color-emphasis-700)",border:"none",borderRadius:"4px",cursor:"pointer"},children:"Start Again"})]});if("complete"===o)return(0,i.jsxs)("div",{style:{textAlign:"center",margin:"24px 0"},children:[_()?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",{style:{fontSize:"64px",marginBottom:"16px"},children:"\ud83c\udf89"}),(0,i.jsx)("h3",{style:{color:"var(--ifm-color-success)"},children:W()}),(0,i.jsx)("p",{children:"Your node is ready for the upcoming Pectra upgrade."}),s&&(0,i.jsxs)("div",{style:{margin:"24px auto",padding:"16px",backgroundColor:"var(--ifm-color-info-contrast-background)",border:"1px solid var(--ifm-color-emphasis-300)",borderRadius:"8px",textAlign:"left"},children:[(0,i.jsxs)("h4",{style:{marginTop:"0"},children:[(0,i.jsx)("span",{style:{marginRight:"8px"},children:"\ud83d\udcca"}),"Contribute to ethPandaOps Research"]}),(0,i.jsx)("p",{children:"Since you're running a node, would you like to contribute your node's data to help the public Xatu dataset? Data is published openly in a privacy-focused manner and used for research and analysis."}),(0,i.jsx)("a",{href:"https://docs.google.com/forms/u/3/d/e/1FAIpQLSfSCHLZv2xdDKceQ3ajzYbkm2jkQnG0lVBhjEX4c1Jxvf8QfA/viewform",target:"_blank",rel:"noopener noreferrer",style:{display:"inline-block",marginTop:"8px",padding:"8px 16px",backgroundColor:"var(--ifm-color-info)",color:"white",borderRadius:"4px",textDecoration:"none",fontWeight:"bold"},children:"Sign Up to Contribute Data"})]})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",{style:{fontSize:"64px",marginBottom:"16px"},children:"\u26a0\ufe0f"}),(0,i.jsx)("h3",{style:{color:"var(--ifm-color-warning)"},children:W()}),(0,i.jsx)("p",{children:"Please make sure to upgrade all components before the fork."}),s&&(0,i.jsxs)("div",{style:{margin:"24px auto",padding:"16px",maxWidth:"600px",backgroundColor:"var(--ifm-color-info-contrast-background)",border:"1px solid var(--ifm-color-emphasis-300)",borderRadius:"8px",textAlign:"left"},children:[(0,i.jsxs)("h4",{style:{color:"var(--ifm-color-info)",marginTop:"0"},children:[(0,i.jsx)("span",{style:{marginRight:"8px"},children:"\ud83d\udcca"}),"Contribute to ethPandaOps Research"]}),(0,i.jsx)("p",{children:"Since you're running a node, would you like to contribute your node data to help the ethPandaOps team analyze network health and performance?"}),(0,i.jsx)("p",{children:"Your contribution helps improve Ethereum for everyone by providing valuable insights into the network's behavior."}),(0,i.jsx)("a",{href:"https://docs.google.com/forms/u/3/d/e/1FAIpQLSfSCHLZv2xdDKceQ3ajzYbkm2jkQnG0lVBhjEX4c1Jxvf8QfA/viewform",target:"_blank",rel:"noopener noreferrer",style:{display:"inline-block",marginTop:"8px",padding:"8px 16px",backgroundColor:"var(--ifm-color-info)",color:"white",borderRadius:"4px",textDecoration:"none",fontWeight:"bold"},children:"Sign Up to Contribute Data"})]})]}),(0,i.jsx)("button",{onClick:()=>n("start"),style:{marginTop:"16px",padding:"8px 16px",backgroundColor:"var(--ifm-color-emphasis-200)",color:"var(--ifm-color-emphasis-700)",border:"none",borderRadius:"4px",cursor:"pointer"},children:"Restart Checklist"})]});if(["start","el_upgraded","cl_upgraded","validator","validator_upgraded","mev","mev_upgraded"].includes(o)){const e=["el_upgraded","cl_upgraded","validator_upgraded","mev_upgraded"].includes(o);return(0,i.jsxs)("div",{style:{margin:"24px 0",textAlign:"center"},children:[(0,i.jsx)("h3",{children:W()}),e&&(0,i.jsx)("div",{style:{marginTop:"12px",padding:"8px 16px",borderRadius:"4px",backgroundColor:"var(--ifm-color-warning-lightest)",border:"1px solid var(--ifm-color-warning-light)",color:"var(--ifm-color-warning-darkest)",fontSize:"0.9rem"},children:"\u26a0\ufe0f You must upgrade your client to continue running on the network after the Pectra fork."}),(0,i.jsxs)("div",{style:{display:"flex",justifyContent:"space-around",marginTop:"24px"},children:[(0,i.jsx)("button",{onClick:()=>P("yes",E(o,"yes")),style:{padding:"12px 40px",backgroundColor:"var(--ifm-color-success)",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontWeight:"bold",fontSize:"16px"},children:"Yes"}),(0,i.jsx)("button",{onClick:()=>e?null:P("no",E(o,"no")),style:{padding:"12px 40px",backgroundColor:e?"var(--ifm-color-gray-400)":"var(--ifm-color-danger)",color:"white",border:"none",borderRadius:"4px",cursor:e?"not-allowed":"pointer",fontWeight:"bold",fontSize:"16px",o
1pacity:e?.7:1},disabled:e,title:e?"You must upgrade before the fork":"",children:"No"})]})]})}if(["el_client","cl_client"].includes(o)){const e="el_client"===o?[{value:"geth",label:"Geth"},{value:"nethermind",label:"Nethermind"},{value:"besu",label:"Besu"},{value:"erigon",label:"Erigon"},{value:"reth",label:"Reth"}]:[{value:"lighthouse",label:"Lighthouse"},{value:"nimbus",label:"Nimbus"},{value:"prysm",label:"Prysm"},{value:"teku",label:"Teku"},{value:"lodestar",label:"Lodestar"},{value:"grandine",label:"Grandine"}];return(0,i.jsxs)("div",{style:{margin:"24px 0",textAlign:"center"},children:[(0,i.jsx)("h3",{children:W()}),(0,i.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"12px",marginTop:"24px"},children:e.map(e=>(0,i.jsx)("button",{onClick:()=>P(e.value,E(o)),style:{padding:"12px 24px",backgroundColor:"var(--ifm-color-primary)",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontWeight:"bold",fontSize:"16px"},children:e.label},e.value))})]})}return(0,i.jsx)("div",{children:"Loading..."})})()]})},h=()=>{const[e,t]=(0,a.useState)({days:0,hours:0,minutes:0,seconds:0}),[r,o]=(0,a.useState)(!1),n=new Date("2025-05-07T10:05:11Z"),s=364032,[l,d]=(0,a.useState)(!1);(0,a.useEffect)(()=>{const e=()=>{const e=new Date,r=n-e;r>0?(t({days:Math.floor(r/864e5),hours:Math.floor(r/36e5%24),minutes:Math.floor(r/1e3/60%60),seconds:Math.floor(r/1e3%60)}),o(!1)):(t({days:0,hours:0,minutes:0,seconds:0}),o(!0))};e();const r=setInterval(e,1e3);return()=>clearInterval(r)},[]),(0,a.useEffect)(()=>{const e=()=>{d(window.innerWidth<550)};return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}},[]);const c=86400*e.days+3600*e.hours+60*e.minutes+e.seconds,h=Math.ceil(c/12);Math.ceil(h/32);return r?(0,i.jsxs)("div",{style:{width:"100%",display:"flex",flexDirection:"column",alignItems:"center",backgroundColor:"var(--ifm-color-success-lightest)",borderRadius:"12px",padding:"12px",marginTop:"12px",marginBottom:"12px",textAlign:"center",boxShadow:"0 4px 8px rgba(0, 0, 0, 0.05)"},children:[(0,i.jsx)("div",{style:{fontSize:"72px",marginBottom:"8px"},children:"\ud83c\udf89"}),(0,i.jsx)("h2",{style:{color:"var(--ifm-color-success-darkest)",marginBottom:"16px"},children:"Pectra is Active!"}),(0,i.jsxs)("p",{style:{fontSize:"18px",maxWidth:"700px"},children:["The Ethereum network upgraded to Pectra at epoch ",s,". Congratulations to all who contributed to this milestone!"]}),(0,i.jsx)("a",{href:"https://beaconcha.in/epoch/364032",target:"_blank",rel:"noopener noreferrer",style:{display:"inline-block",marginTop:"16px",padding:"8px 16px",backgroundColor:"var(--ifm-color-success)",color:"white",borderRadius:"4px",textDecoration:"none",fontWeight:"bold"},children:"View Activation Data"})]}):(0,i.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",marginBottom:"32px",marginTop:"24px",width:"100%",position:"relative",overflow:"hidden"},children:[(0,i.jsx)("div",{style:{position:"absolute",top:"50%",right:"5%",transform:"translateY(-50%)",opacity:.05,zIndex:0,display:"flex",justifyContent:"center",alignItems:"center"},children:(0,i.jsx)("div",{style:{width:"200px",height:"320px",background:"var(--ifm-color-primary)",clipPath:"polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%)"}})}),(0,i.jsx)("div",{style:{display:"flex",flexWrap:l?"nowrap":"wrap",gap:l?"8px":"16px",textAlign:"center",backgroundColor:"var(--ifm-background-surface-color)",padding:l?"12px 8px":"24px 16px",borderRadius:"12px",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.07)",marginBottom:"20px",border:"1px solid var(--ifm-color-emphasis-200)",width:"100%",maxWidth:"600px",justifyContent:"center",position:"relative",zIndex:1},children:[{value:e.days,label:"DAYS",shortLabel:"DAY"},{value:e.hours,label:"HOURS",shortLabel:"HOUR"},{value:e.minutes,label:"MINUTES",shortLabel:"MIN"},{value:e.seconds,label:"SECONDS",shortLabel:"SEC"}].map(({value:e,label:t,shortLabel:r})=>(0,i.jsxs)("div",{style:{width:l?"25%":"auto",minWidth:l?"20%":"75px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",margin:"0",padding:l?"0 2px":"0"},children:[(0,i.jsx)("div",{style:{fontSize:l?"20px":"48px",fontWeight:"700",background:"linear-gradient(90deg, #0969da 0%, #9c44dc 100%)",WebkitBackgroun
1dClip:"text",WebkitTextFillColor:"transparent",backgroundClip:"text",textFillColor:"transparent",lineHeight:"1.1",padding:l?"2px 0":"4px 0"},children:String(e).padStart(2,"0")}),(0,i.jsx)("div",{style:{fontSize:l?"7px":"14px",textTransform:"uppercase",letterSpacing:l?"0":"1px",fontWeight:"600",color:"var(--ifm-color-emphasis-700)"},children:l?r:t})]},t))}),(0,i.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:l?"8px 12px":"10px 16px",borderRadius:"8px",backgroundColor:"var(--ifm-color-emphasis-100)",boxShadow:"0 2px 6px rgba(0, 0, 0, 0.04)",fontSize:l?"0.8rem":"0.95rem",position:"relative",zIndex:1,width:"100%",maxWidth:"600px",textAlign:"center"},children:(0,i.jsxs)("div",{style:{display:"flex",flexDirection:l?"column":"row",alignItems:"center",gap:"4px"},children:[(0,i.jsx)("span",{style:{marginRight:l?"0":"8px",fontSize:"16px"},children:"\u23f0"}),(0,i.jsxs)("div",{children:[!l&&(0,i.jsx)("strong",{children:"Local Activation Time:"})," ",(p=n,l?p.toLocaleString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",timeZoneName:"short"}):p.toLocaleString(void 0,{year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"}))]})]})})]});var p},p=()=>{const[e,t]=(0,a.useState)(!1);(0,a.useEffect)(()=>{const e=()=>{t(window.innerWidth<768)};return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}},[]);const r=[{tool:"Checkpointz",version:"v0.27.0",repo:"checkpointz"},{tool:"Contributoor",version:"v0.0.63",repo:"contributoor"},{tool:"Dora",version:"v1.15.2",repo:"dora"},{tool:"Xatu",version:"v1.0.49",repo:"xatu"},{tool:"Tracoor",version:"v0.0.29",repo:"tracoor"},{tool:"Ethereum Metrics Exporter",version:"v0.27.1",repo:"ethereum-metrics-exporter"},{tool:"Go Beacon Package",version:"v0.51.0",repo:"beacon"}];return(0,i.jsx)("div",{style:{width:"100%",marginBottom:"24px",position:"relative"},children:(0,i.jsx)("div",{style:{width:"100%",overflowX:e?"auto":"visible",WebkitOverflowScrolling:"touch"},children:(0,i.jsxs)("div",{style:{minWidth:"100%",display:"flex",flexDirection:"column",borderRadius:"6px",overflow:"hidden",border:"1px solid var(--ifm-color-emphasis-200)"},children:[(0,i.jsxs)("div",{style:{display:"flex",backgroundColor:"var(--ifm-color-primary)",color:"white",padding:"10px 16px",fontWeight:"bold",fontSize:"0.95rem"},children:[(0,i.jsx)("div",{style:{flex:"0 0 40%"},children:"Tool"}),(0,i.jsx)("div",{style:{flex:"0 0 30%"},children:"Minimum Version"}),(0,i.jsx)("div",{style:{flex:"0 0 30%",textAlign:"center"},children:"Link"})]}),r.map((e,t)=>(0,i.jsxs)("div",{style:{display:"flex",backgroundColor:t%2==0?"var(--ifm-table-stripe-background)":"var(--ifm-background-surface-color)",padding:"10px 16px",borderBottom:t<r.length-1?"1px solid var(--ifm-color-emphasis-200)":"none",fontSize:"0.9rem"},children:[(0,i.jsx)("div",{style:{flex:"0 0 40%"},children:e.tool}),(0,i.jsx)("div",{style:{flex:"0 0 30%"},children:e.version}),(0,i.jsx)("div",{style:{flex:"0 0 30%",textAlign:"center"},children:(0,i.jsx)("a",{href:`https://github.com/ethpandaops/${e.repo}`,style:{color:"var(--ifm-color-primary)",textDecoration:"none",fontWeight:"medium"},target:"_blank",rel:"noopener noreferrer",children:"GitHub"})})]},t))]})})})},u=()=>{const[e,t]=(0,a.useState)(!1);(0,a.useEffect)(()=>{const e=()=>{t(window.innerWidth<768)};return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}},[]);const r=[{event:"Electra activation",description:"The Electra activation is the first step in the upgrade process, and is the point at which the network will begin to produce Electra blocks.",whereToWatch:(0,i.jsx)("a",{href:"https://www.youtube.com/watch?v=NbxaCZYtW-I",children:"Pectra Upgrade Livestream"})},{event:"Electra blocks",description:"Block proposals are the first indicator that validators on the network successfully upgraded, and a high proposal rate is a good first sign that the network is healthy.",whereToWatch:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("a",{href:"https://lab.ethpandaops.io/beacon/slot/live",children:"The Lab"}),",\xa0",(0,i.jsx)("a",{href:"https://beaconcha.in/",children:"Beaconcha.in"}),",\xa0",(0,i.jsx)("a",{href:"https://ethseer.io/?network=mainnet",children:"EthSeer"})]})},{event:"Electra attestations",description:"This time we're watching for attestations to be produced. This means that other validators on the network were able to import, verify, and attest to the proposed Electra blocks. If we see a high attestation rate, it's a very good sign that the network is healthy.",whereToWatch:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("a",{href:"https://lab.ethpandaops.io/beacon/slot/live",children:"The Lab"}),",\xa0",(0,i.jsx)("a",{href:"https://beaconcha.in/",children:"Beaconcha.in"}),",\xa0",(0,i.jsx)("a",{href:"https://ethseer.xyz/",children:"EthSeer"})]})},{event:"Blocks and blobs arriving on time",description:(0,i.jsxs)(i.Fragment,{children:["Blocks, and their associated blobs, need to be seen by 66% of the validators in the network otherwise they run the risk of being orphaned. ",(0,i.jsx)("a",{href:"/posts/contribute-to-xatu-data/",children:"Thanks to our wonderful contributoors"}),", we have a real-time view of the network and can see if blocks and blobs are arriving on time. This is especially important with the inclusion of ",(0,i.jsx)("a",{href:"https://eips.ethereum.org/EIPS/eip-7691",children:"EIP-7691"}),", which increases blob throughput."]}),whereToWatch:(0,i.jsx)("a",{href:"https://lab.ethpandaops.io/beacon/slot/live",children:"The Lab"})},{event:"ethPandaOps blocks built locally",description:'Our team runs multiple nodes on the network, and we constantly build "throw away" blocks to test all clients\' ability to build blocks for the current slot. This gives us immediate feedback on any issues that may arise with clients, reducing the response time for client developers!',whereToWatch:(0,i.jsx)("a",{href:"https://lab.ethpandaops.io/beacon/locally-built-blocks",children:"The Lab"})},{event:"Terence puts the champagne away \ud83c\udf7e",description:"Terence has a reputation for declaring victory moments before chaos, so hopefully he has the day off Twitter.",whereToWatch:(0,i.jsx)("a",{href:"https://x.com/terencechain",children:"Terence's Twitter"})},{event:"Justification and Finalization",description:"It's in the name! Once the network has finalized, Pectra has been locked in.",whereToWatch:(0,i.jsx)("a",{href:"https://beaconcha.in/",children:"Beaconcha.in"})},{event:"Feature tests",description:"Some of the Pectra specific features, such as consolidations and deposits will take a longer period of time to test. The testing and client teams will be looking through everything that happens with a fine comb and announce the success of the fork once they are done!",whereToWatch:(0,i.jsx)("a",{href:"https://x.com/ethpandaops/",children:"ethPandaOps's Twitter"})}];return(0,i.jsx)("div",{style:{width:"100%",marginBottom:"24px",position:"relative"},children:(0,i.jsx)("div",{style:{width:"100%",overflowX:e?"auto":"visible",WebkitOverflowScrolling:"touch"},children:(0,i.jsxs)("div",{style:{minWidth:"100%",display:"flex",flexDirection:"column",borderRadius:"6px",overflow:"hidden",border:"1px solid var(--ifm-color-emphasis-200)"},children:[(0,i.jsxs)("div",{style:{display:e?"none":"flex",backgroundColor:"var(--ifm-color-primary)",color:"white",padding:"10px 16px",fontWeight:"bold",fontSize:"0.95rem"},children:[(0,i.jsx)("div",{style:{flex:"0 0 25%",paddingRight:"20px"},children:"Event"}),(0,i.jsx)("div",{style:{flex:"0 0 75%"},children:"Description"})]}),r.map((t,o)=>(0,i.jsxs)("div",{style:{display:"flex",flexDirection:e?"column":"row",backgroundColor:o%2==0?"var(--ifm-table-stripe-background)":"var(--ifm-background-surface-color)",padding:"10px 16px",borderBottom:o<r.length-1?"1px solid var(--ifm-color-emphasis-200)":"none",fontSize:"0.9rem"},children:[(0,i.jsx)("div",{style:{flex:e?"1 1 auto":"0 0 25%",paddingRight:e?"0":"20px",marginBottom:e?"4px":"0"},children:(0,i.jsx)("strong",{children:t.event})}),(0,i.jsxs)("div",{style:{flex:e?"1 1 auto":"0 0 75%"},children:[(0,i.jsx)("div",{children:t.description}),(0,i.jsx)("div",{style:{marginTop:"8px",display:"flex",alignItems:"center",fontSize:"0.85rem",color:"var(--ifm-color-emphasis-700)"},children:(0,i.jsxs)("span",{style:{backgroundColor:"var(--ifm-color-emphasis-200)",borderRadius:"12px",padding:"3px 10px",marginRight:"6px",display:"inline-flex",alignItems:"center"},children:["Where to Watch:\xa0",t.whereToWatch]})})]})]},o))]})})})},g=[{value:"It's Forking Time!",id:"its-forking-time",level:2},{value:"Pectra?",id:"pectra",level:3},{value:"Upgrade Checklist",id:"upgrade-checklist",level:2},{value:"ethPandaOps Tooling",id:"ethpandaops-tooling",level:2},{value:"Monitoring Resources",id:"monitoring-resources",level:2}
1,{value:"Thank you",id:"thank-you",level:2}];function m(e){const t={a:"a",h2:"h2",h3:"h3",p:"p",...(0,n.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h2,{id:"its-forking-time",children:"It's Forking Time!"}),"\n",(0,i.jsxs)(t.p,{children:["Ethereum's next network upgrade, Pectra, is scheduled to activate on Mainnet at epoch 364032, which lands at ",(0,i.jsx)(t.a,{href:"https://blog.ethereum.org/2025/04/23/pectra-mainnet",children:"May 7, 2025, at 10:05:11 UTC"}),". This is your definitive guide to the Pectra upgrade."]}),"\n","\n",(0,i.jsx)(h,{}),"\n",(0,i.jsx)(t.h3,{id:"pectra",children:"Pectra?"}),"\n",(0,i.jsxs)(t.p,{children:['Pectra is the amalgamation of the execution layer\'s "Prague" upgrade and consensus layer\'s "Electra" upgrade. It introduces enhancements aimed at improving scalability, validator operations, and user experience, and is one of the most significant upgrades to Ethereum to date. For more information on the upgrade, check out the ',(0,i.jsx)(t.a,{href:"https://blog.ethereum.org/2025/04/23/pectra-mainnet",children:"Ethereum Foundation blog post"}),"."]}),"\n",(0,i.jsx)(t.h2,{id:"upgrade-checklist",children:"Upgrade Checklist"}),"\n",(0,i.jsx)(t.p,{children:"Pectra is a hard fork for the Ethereum network, meaning that you'll need to upgrade your node to participate. We've created a simple tool to help you through the process."}),"\n",(0,i.jsx)(c,{}),"\n",(0,i.jsx)(t.h2,{id:"ethpandaops-tooling",children:"ethPandaOps Tooling"}),"\n",(0,i.jsx)(t.p,{children:"Our tools are all ready for the upgrade. If you're running any of these, you'll need to upgrade to the latest versions to ensure compatibility."}),"\n","\n",(0,i.jsx)(p,{}),"\n",(0,i.jsx)(t.h2,{id:"monitoring-resources",children:"Monitoring Resources"}),"\n",(0,i.jsx)(t.p,{children:"Ethereum is a complex system, and it can be overwhelming to keep track of all the moving parts. We've got you covered with a list of key events to watch out for:"}),"\n","\n",(0,i.jsx)(u,{}),"\n",(0,i.jsx)(t.h2,{id:"thank-you",children:"Thank you"}),"\n",(0,i.jsx)(t.p,{children:"This upgrade is a monumental achievement for the Ethereum ecosystem. After a full year of hard work from Core Devs, we're beyond excited to see it go live. A massive thank you to everyone who's been part of this journey with us."}),"\n",(0,i.jsxs)(t.p,{children:["We want to give particular thanks to the contributoors ",(0,i.jsx)(t.a,{href:"/posts/contribute-to-xatu-data/",children:"sharing their node data with the ethPandaOps team"}),". This data gives us a view into the network we've never had before during critical forks. It helps us jump on problems quickly and to sleep better at night, while also allowing the wider community to be more informed when making decisions about future upgrades."]}),"\n",(0,i.jsx)(t.p,{children:"See you on the other side!"}),"\n",(0,i.jsxs)("center",{children:[(0,i.jsx)(t.p,{children:"With love,"}),(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{href:"/team",children:"parithosh, skylenet, samcm, savid, barnabasbusa, pk910 & matty"})}),(0,i.jsx)(t.p,{children:"\u2764\ufe0f"})]})]})}function x(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(m,{...e})}):m(e)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.