이 공지 페이지는 2025년 3월 11일에 업데이트되었습니다. 이전 op-node 릴리스에서 L1 Block의 blob 기본 수수료(L1 수수료 계산용)가 Prague 파라미터 대신 Prague 이전(=Cancun)의 blob 스케줄 파라미터로 계산되는 버그가 발견되었습니다. 이 버그는 op-node 최신 릴리스에서 수정되었습니다.이는 어떤 OP Sepolia 체인에서도 치명적인 문제는 아닙니다. 그러나 Sepolia의 L1 blob 기본 수수료가 100 Mwei 이상으로 상승하면 L1 수수료를 과다 청구하게 되므로 일시적인 활성(liveness) 위험이 발생합니다. 요컨대 현재 L1 비용 계산은 1.5 지수만큼 과다 청구하며, BBF_Cancun =
BBF_Prague^1.5입니다(BBF=blob base fee).네트워크에서 이 문제를 방지하려면 Sepolia node를 op-node 최신 릴리스로 업데이트하고 하드포크 활성화 시간을 예약해야 합니다. 이 문제를 완화하는 데 도움이 되는 새로운 안내가 노드 운영자 섹션에 추가되었습니다.자세한 내용은 다음 공지 페이지를 참조하십시오: Superchain testnet의 blob 수수료 버그.- L1 Pectra 업그레이드가 활성화될 때 OP Stack 체인이 중단되지 않도록 필요한 업그레이드를 수행합니다. L1 Pectra 업그레이드 이후에도 OP Stack 체인이 정상적으로 작동하도록 OP Stack의 새 버전을 릴리스할 예정입니다. 결함 증명(fault proof)이 활성화된 체인을 운영하는 경우 아래에 설명된 추가 단계를 따라야 합니다.
- L2에 적용되는 Pectra의 새 기능을 지원하도록 OP Stack 체인을 업그레이드합니다. L2에 적용되는 Pectra의 모든 기능을 구현하고, 이러한 기능이 포함된 OP Stack의 새 버전을 릴리스할 예정입니다. 엔지니어링 작업이 마무리되면 더 많은 정보를 제공하겠습니다. 사양 작업은 이 이슈에서 추적하고 있습니다. 예정된 Isthmus 하드포크에는 모든 Prague 기능이 포함되며, 진행 상황은 이 프로젝트 보드에서 확인할 수 있습니다.
이 페이지는 업그레이드 런북과 일정에 관한 정보가 나오는 대로 계속 업데이트됩니다. 다음은 2월 6일에 열린 ACDC에 따른 잠정적인 L1 Pectra 하드포크 시간입니다.L1 클라이언트 testnet 릴리스는 2월 13일(ACDE)까지 배포됩니다.
- Holesky 슬롯:
1740434112(2월 24일(월) 21:55:12 UTC) - Sepolia 슬롯:
1741159776(3월 5일(수) 07:29:36 UTC) - +30일 mainnet 슬롯:
1744154711(4월 8일(화) 23:25:11 UTC)
Pectra에 포함된 내용
Pectra에는 다양한 EIP가 포함되어 있으며, 그중 일부는 OP Stack에 적용되고 일부는 적용되지 않습니다. Pectra Devnet 5 노트에 명시된 대로 Pectra에는 다음 EIP가 포함됩니다.- EIP-2537: Precompile for BLS12-381 curve operations
- EIP-2935: Save historical block hashes in state
- EIP-6110: Supply validator deposits on chain
- EIP-7002: Execution layer triggerable withdrawals
- EIP-7251: Increase the MAX_EFFECTIVE_BALANCE
- EIP-7549: Move committee index outside Attestation
- EIP-7623: Increase calldata cost
- EIP-7685: General purpose execution layer requests
- EIP-7691: Blob throughput increase
- EIP-7702: Set EOA account code
- EIP-7840: Add blob schedule to EL config files
노드 운영자 대상
노드 운영자는 활성화 날짜 이전에 해당 릴리스로 업그레이드해야 합니다. 모든 노드 운영자는 다음 단계를 수행해야 합니다.최신 릴리스로 업데이트
풀 node 운영자, 즉
gc-mode=full로 op-geth를 실행하는 운영자는 최신 릴리스로 업그레이드하기 전에 중간 업그레이드 단계를 처리하기 위해 op-geth v1.101411.8 릴리스 노트를 참조해야 합니다. 아카이브 node 운영자(gc-mode=archive)는 이 단계를 건너뛰고 최신 릴리스로 바로 업그레이드할 수 있습니다.op-nodev1.12.0op-gethv1.101503.0op-rethv1.2.0에도 L1 Pectra 지원이 포함되어 있습니다.
네트워크가 올바른 수수료 계산을 사용하도록 op-node 바이너리를 업그레이드할 때 하드포크 활성화 시간을 예약하십시오. Superchain Registry 구성을 검토하여 네트워크가 Superchain 활성화 시간과 별도로 이를 조정해야 하는지 확인하십시오.
- 옵션 1:
op-node의rollup.json에pectrablobschedule활성화 시간을 설정합니다. - 옵션 2:
op-node에서 오버라이드(CLI)를 통해 활성화 시간을 설정합니다. sequencer와 다른 모든 node의op-node에 이를 설정해야 합니다.
op-geth에는 오버라이드를 지정할 필요가 없지만 최신 릴리스로 업데이트해야 합니다.
체인 운영자 대상
다음 섹션에서는 체인 운영자가 OP Stack의 Pectra L1 지원 첫 번째 부분을 준비하는 방법을 설명합니다. 이를 통해 L1 Pectra 업그레이드가 활성화될 때 OP Stack 체인이 중단되지 않도록 합니다. 모든 체인 운영자는 다음을 수행해야 합니다.1
node 바이너리 업데이트
노드 운영자 섹션에 설명된 안내에 따라 node를 최신 릴리스로 업데이트하십시오.
2
batcher 및 proposer 업데이트
바이너리를 다음 버전으로 업데이트하십시오.
3
수수료 scalar 재확인
결함 증명이 활성화된 체인 대상
다음 안내는 체인이 최신 컨트랙트 릴리스
op-contracts/v1.8.0을 사용하고 있으며 Holocene이 활성화되어 있다고 가정합니다.op-challenger 바이너리를 op-challenger/v1.3.2로 업데이트해야 합니다.
다음 단계는 새 분쟁 게임(dispute game) 컨트랙트로 absolute prestate를 업데이트하는 방법입니다. 이는 permissionless 결함 증명을 운영하는 체인에 반드시 필요합니다. permissioned 게임으로 결함 증명 시스템(Fault Proof System)을 운영하는 체인은 게임이 실제로 진행되지 않고 absolute prestate가 사용되지 않으므로 이 섹션을 건너뛸 수 있습니다.
Pectra 업그레이드는 도출(derivation) 규칙을 변경하므로, permissionless 결함 증명 체인은 이러한 변경 사항을 지원하도록 결함 증명 시스템에서 사용하는 op-program 버전을 업그레이드해야 합니다. 사용되는 op-program 버전은 FaultDisputeGame 및 PermissionedDisputeGame 컨트랙트의 일부로 배포되는 faultGameAbsolutePrestate 설정으로 지정됩니다.
1
새 absolute prestate 검증
absolute prestate는 op-program/v1.5.0-rc.4로 생성됩니다(명령이 끝날 때 다음과 같은 출력이 나와야 합니다.
op-program/v1.5.0-rc.4 기준). 다음 체인에는 새 absolute prestate(0x0354eee87a1775d96afee8977ef6d5d6bd3612b256170952a01bf1051610ee01)를 사용할 수 있습니다.- Sepolia: Base, OP, Metal, Mode, Zora, Ethernity, Unichain, Ink, Minato (Soneium)
- Mainnet: Base, OP, Orderly, Lyra, Metal, Mode, Zora, Lisk, Ethernity, Binary, Ink, Unichain, Soneium
op-program/v1.5.0-rc.4 태그에서 모노레포 루트에 다음 명령(0026006 기준)을 실행하여 이 absolute prestate를 검증할 수 있습니다.2
새 preimage 파일 업로드
이전 단계에서 absolute prestate의 preimage도 함께 생성되었습니다. 이는 기본적으로 op-program을 바이너리 파일로 직렬화한 것입니다. 새 파일은
optimism/op-program/bin/prestate.bin.gz에 있습니다. 파일 이름을 absolute prestate 해시로 변경하여 0x0354eee87a1775d96afee8977ef6d5d6bd3612b256170952a01bf1051610ee01.bin.gz 형식이 되도록 하십시오.이 파일을 다른 absolute preimage 파일을 저장하는 위치에 업로드하십시오. 이 위치는 --cannon-prestates-url이 가리키는 곳이어야 합니다. op-challenger는 게임에 이의를 제기해야 할 때 이 파일을 가져와 사용합니다.3
새 분쟁 게임 컨트랙트 배포
그런 다음 absolute prestate 값을 사용하여 새
FaultDisputeGame 및 PermissionedDisputeGame 컨트랙트를 배포합니다. Holocene 스크립트(op-contracts/v1.8.0-rc.4 기준)를 재사용하여 새 컨트랙트를 배포할 수 있습니다. 변경해야 할 유일한 부분은 deploy-config(2073f40 기준)의 absolutePrestate 값입니다. 또는 새 컨트랙트 배포에 사용할 수 있는 OPPrestateUpdater를 릴리스할 예정입니다.4
DisputeGameFactory 업데이트
그런 다음
DisputeGameFactory.setImplementation을 호출하여 DisputeGameFactory가 새 FaultDisputeGame 및 PermissionedDisputeGame 컨트랙트를 가리키도록 업데이트해야 합니다. 이 템플릿을 활용하여 이 단계의 트랜잭션과 검증 스크립트를 생성할 수 있습니다. 실행하기 전에 op-challenger를 업데이트해야 합니다.5
업그레이드 실행
op-challenger가 새 preimage로 준비되면 “Set Dispute Game Implementation” 트랜잭션을 실행할 수 있습니다. 트랜잭션을 실행하기 전에 예상 결과를 시뮬레이션하고 검증하십시오.