5단계 중 5단계: 이 튜토리얼은 단계별로 따라 하도록 설계되었습니다.
각 단계는 이전 단계를 기반으로 하며, 이번이 튜토리얼의 마지막 부분입니다.
자동 설정 제공자동 prestate 생성을 포함하여 모든 구성 요소를 갖춘 완전한 작동 설정은 코드 디렉터리의 자동화된 방식을 확인하십시오.
- 결함 증명 시스템이 생성한 분쟁 게임 모니터링
- 분쟁 게임에서 잘못된 주장에 이의 제기
- 유효한 상태 전환 방어
- 가능한 경우 게임 해결(resolve)
사전 요구 사항
필수 요구 사항
challenger를 연결하기 전에 다음 사전 요구 사항을 완료하십시오.1
결함 증명이 활성화된 OP Stack 체인 배포
absolute prestate 생성(필수)
absolute prestate 생성(필수)
challenger가 분쟁 게임(dispute game)에 참여하려면 absolute prestate가 필요합니다. prestate는 현재 유지 관리되는 결함 증명(fault proof) 프로그램인
kona-client의 특정 빌드에 대한 온체인 커밋먼트입니다. (이전에 이 역할을 담당했던 op-program은 지원이 종료되었습니다. op-geth 및 op-program 지원 종료를 참조하십시오.) 생성 방법은 다음과 같습니다.-
저장소를 클론하고 올바른 버전을 체크아웃합니다:
-
체인 구성을 준비합니다:
체인이 공개 Superchain Registry에 등록되어 있지 않으므로 prestate 빌드에 체인 구성이 포함되어야 합니다. 사용자 지정 kona-client absolute prestate 생성을 따라
rollup.json, L2 genesis,op-deployer상태로부터 두 개의 준비 파일(chainList.json및configs.json)을 생성한 다음, 빌드가 해당 파일을 가리키도록 합니다. -
prestate를 생성합니다:
빌드는 Docker에서 실행되며 해시로 이름이 지정된 preimage 파일(
0x<PRESTATE_HASH>.bin.gz)을 포함한 아티팩트를rust/kona/prestate-artifacts-cannon/에 기록합니다.jq명령으로 출력된 해시가 체인의 absolute prestate입니다. -
체인이 prestate에 포함되었는지 확인합니다:
일치하는 항목이 없다면 사용자 지정 구성이 병합되지 않은 것입니다(이 경우 빌드는 경고 없이 표준 prestate를 대신 생성합니다). 문제 해결은 사용자 지정 prestate 튜토리얼을 참조하십시오.
0x<PRESTATE_HASH>.bin.gz파일을 접근 가능한 곳에 보관하십시오. challenger 설정에 필요합니다.- Superchain registry 체인의 경우 레지스트리에서 공식
cannon64-konaprestate를 확인할 수 있습니다.
2
필요한 인프라 접근 설정
이전 단계에서 구성한 sequencer 스택이 challenger에 필요한 L2 엔드포인트(op-reth 및 op-node)를 이미 제공합니다. 그 외에 challenger에는 다음이 필요합니다.
- 정산 레이어(이 튜토리얼에서는 Sepolia)를 위한 L1 RPC 엔드포인트
- blob을 가져오는 데 사용되는 L1 beacon API 엔드포인트
3
구성 파일 준비
0x<PRESTATE_HASH>.bin.gz- 1단계에서 생성한 absolute prestate preimage 파일rollup.json-op-deployer가이드에서 생성한 rollup 구성 파일
소프트웨어 설치
challenger 배포에는 일관되고 격리된 환경을 제공하는 Docker 사용을 권장합니다. 고급 사용자는 소스에서 빌드할 수도 있습니다.- Docker 사용
- 소스에서 빌드
Docker 설정
Docker 설정은 challenger를 실행하기 위한 컨테이너화된 환경을 제공합니다. 이 방법은 내장된kona 서버와 Cannon 실행 파일이 포함된 공식 Docker 이미지를 사용합니다.1
challenger 디렉터리 생성
2
환경 파일 생성
OP Stack 표준 변수challenger는 OP Stack 규칙을 따르는 OP Stack 표준 환경 변수를 사용합니다. challenger 전용 설정에는
OP_CHALLENGER_ 접두사가 붙습니다.YOUR_ACTUAL_* 자리 표시자를 배포의 실제 값으로 바꾸십시오.3
Docker Compose 설정
docker-compose.yml에 challenger 서비스를 정의합니다. 이 서비스는 몇 가지 중요한 파일을 마운트합니다.${PRESTATE_HASH}.bin.gz: 분쟁 게임에 필요한 absolute prestate입니다.PRESTATE_HASH를 실제 해시(just reproducible-prestate-kona가 기록한prestate-proof.json의.pre필드)로 바꾸십시오.
4
challenger 시작
challenger 서비스를 시작하고 로그를 확인합니다.
op-dispute-mon을 사용한 모니터링
보안 모니터링을 강화하려면op-dispute-mon을 함께 실행하는 것을 고려하십시오.
- 최근 28일 동안의 모든 게임 상태에 대한 가시성을 제공합니다
- 프로덕션 challenger 배포에 필수적입니다
축하합니다
L2 rollup testnet 튜토리얼 전체를 성공적으로 완료했습니다! 이제 모든 구성 요소가 실행되며 rollup이 완전히 작동합니다.- op-deployer - L1 컨트랙트 배포 완료
- Sequencer - 트랜잭션 처리
- Batcher - L1에 데이터 게시
- Proposer - 상태 루트 제출
- Challenger - 분쟁 모니터링
체인에 지갑 연결
이제http://localhost:8545에서 Sequencer node가 실행되는 완전히 작동하는 OP Stack Rollup을 보유하게 되었습니다. 다른 EVM 체인에 지갑을 연결하는 것과 같은 방식으로 이 체인에 지갑을 연결할 수 있습니다.
체인에서 ETH 받기
지갑을 연결하면 체인에서 gas를 지불할 ETH가 없다는 것을 알게 될 것입니다. Sepolia ETH를 체인에 입금(디파짓)하는 가장 쉬운 방법은L1StandardBridge 컨트랙트에 ETH를 직접 보내는 것입니다.
L1StandardBridge 주소 가져오기
L1StandardBridge 프록시 주소는 배포 상태 파일에서 찾을 수 있습니다. 주소를 가져오려면 다음을 실행하십시오.
L1StandardBridge 프록시 주소를 출력합니다. 구현(implementation) 주소가 아닌 프록시 주소를 사용해야 합니다.
L2로 ETH 입금
L1StandardBridge 주소를 확인했으면 L2에서 사용할 지갑에서 해당 주소로 소량의 Sepolia ETH(0.1 이하)를 보내십시오.
이렇게 하면 L2의 지갑에 ETH를 발행(mint)하는 입금이 트리거됩니다.
L2의 지갑에 ETH가 표시되기까지 최대 5분이 걸릴 수 있습니다.
이 지연은 입금 트랜잭션이 처리되고 최종 확정되는 데 필요한 시간 때문입니다.
rollup 동작 확인
다른 EVM 체인과 상호작용하는 것과 같은 방식으로 Rollup과 상호작용할 수 있습니다. 트랜잭션을 보내고, 컨트랙트를 배포하며, 어떤 일이 일어나는지 확인해 보십시오! 이제 작동하는 testnet이 준비되었습니다. 프로덕션까지 남은 과정은 다음과 같습니다.프로덕션 환경에서 운영하기
도움이 필요하신가요?
- OP Challenger 설명: 결함 증명 개요
- 기술 사양: Honest Challenger 사양