OP Stack 배우기 — 14단계 중 14단계.
지금까지 개념부터 계층 간 흐름까지 스택 전체를 학습했습니다. 이 마지막
단계에서는 공식 Docker 이미지를 사용하여 실제 네트워크에서 OP Stack node를
실행합니다. node가 동기화되면 트랙을 완료한 것입니다. 다음 단계는
OP Stack 배우기로 돌아가 확인하십시오.
docker-compose.yml에서 공식 op-reth 및 op-node Docker 이미지를 사용하여 OP Stack node를 실행합니다. 소스 빌드는 필요하지 않습니다.
op-node 대신 Rust 합의 클라이언트를 실행하려면
kona-node Docker 가이드를 참고하십시오. 이 가이드는
kona-node + op-reth 스택을 위한 자체 docker-compose 레시피를 제공합니다.
의존성
- Docker
- Docker Compose (v2)
- L1 실행 RPC 엔드포인트(OP Mainnet의 경우 Ethereum mainnet, OP Sepolia의 경우 Ethereum Sepolia).
- 같은 L1 체인의 L1 Beacon API 엔드포인트. op-node가 Ecotone 이후 blob 데이터를 가져오는 데 필요합니다.
빠른 시작
1
작업 디렉터리 만들기
2
JWT secret 생성하기
두 컨테이너는 bind mount를 통해 JWT secret을 공유합니다.
3
.env 파일 만들기
네트워크와 L1 엔드포인트를 구성합니다. 네트워크 블록(Sepolia 또는 Mainnet) 중 하나를 선택하고 L1 RPC 및 Beacon URL을 입력하십시오.
L1_RPC_KIND의 유효한 값: alchemy, quicknode, infura, parity, nethermind, debug_geth, erigon, basic, any. 확실하지 않으면 basic을 사용하십시오.OP_RETH_CHAIN과 OP_NODE_NETWORK는 superchain-registry에 있는 모든 체인(예: unichain / unichain-mainnet, soneium / soneium-mainnet)을 허용합니다. 각 체인에 대해 L1_RPC_URL / L1_BEACON_URL이 해당 L1(Ethereum Mainnet 또는 Sepolia)을 가리키도록 하고, OP_RETH_SEQUENCER를 해당 체인의 sequencer 엔드포인트로 변경하십시오.4
docker-compose.yml 만들기
./reth-data에서 bind mount되므로 스냅샷을 직접 검사하거나 복원할 수 있습니다(아래 스냅샷에서 부트스트랩하기 참고).표시된 이미지 태그는 작성 시점의 최신 버전입니다. 현재 태그는 op-reth 릴리스와 op-node 릴리스를 참고하십시오.5
node 시작하기
검증
node가 실행 중이며 진행하고 있는지 확인합니다.{"jsonrpc":"2.0","id":1,"result":"0x..."}. 1분 후 다시 실행해 보십시오. 동기화가 진행됨에 따라 숫자가 증가해야 합니다.
op-node 동기화 상태(unsafe, safe, finalized head를 한 번의 호출로 확인):
초기 EL 기반 동기화(
--syncmode=execution-layer) 중에는 unsafe_l2가 libp2p gossip을 통해 tip을 따라가는 반면, safe_l2와 finalized_l2는 0으로 유지됩니다. 이는 예상된 동작입니다. op-node는 op-reth가 단계별 동기화(staged sync)를 마칠 때까지 L1 derivation을 미룹니다. EL이 따라잡으면 derivation이 시작되고 safe/finalized head가 진행되기 시작합니다.스냅샷에서 부트스트랩하기
처음부터 동기화하는 것은 OP Sepolia(~30–50 GB, 수 시간)에서는 괜찮지만 OP Mainnet(~700 GB, 수 일)에서는 느립니다. Mainnet의 경우, 또는 초기 동기화를 건너뛰고 싶을 때는 언제든지 사전 동기화된 스냅샷에서 op-reth를 부트스트랩하십시오.OP Mainnet의 경우 스냅샷을 사용하면 Bedrock 이전 상태 요구 사항(이 페이지 상단의 경고 참고)도 한 번에 처리됩니다.
1
컨테이너 중지하기
2
스냅샷 다운로드하기
datadirs.optimism.io에서 네트워크에 맞는 스냅샷을 찾아 최신 파일을 선택하십시오. 그런 다음 다운로드하고 SHA256을 검증합니다.
3
datadir에 압축 해제하기
bind mount된 디렉터리는
./reth-data(docker-compose.yml 기준 상대 경로)입니다.--strip-components=1은 tarball 내부의 최상위 래핑 디렉터리를 제거합니다. 먼저 tar -tf <snapshot-file>.tar.zst | head -3을 실행하여 확인하십시오. 파일이 이미 아카이브 루트에 있다면 --strip-components를 생략하십시오.4
node 시작하기
latest_block은 0이 아니라 스냅샷의 높이여야 합니다. 그런 다음 해당 tip에서 현재까지 따라잡습니다(스냅샷의 생성 시기에 따라 Sepolia는 수 분, Mainnet은 수 시간).다음 단계
- Node 메트릭 및 모니터링 가이드 — 메트릭 포트에 Prometheus/Grafana를 연결합니다.
- Node 문제 해결 가이드 — 문제가 발생한 경우 참고하십시오.
- 소스에서 OP Stack node 빌드 및 실행하기 — 사용자 정의 빌드가 필요하거나 소스를 살펴보려는 경우 참고하십시오.