메인 콘텐츠로 건너뛰기
sequencer와 batcher를 실행한 후에는 L2 상태 루트 데이터를 L1에 다시 게시하는 proposer를 연결해야 합니다. 이를 통해 출금의 유효성을 증명할 수 있습니다. proposer는 신뢰가 필요 없는(trustless) L2-L1 메시징을 가능하게 하고, L1 관점에서 L2 상태에 대한 권위 있는 뷰를 생성하는 핵심 구성 요소입니다.
5단계 중 4단계: 이 튜토리얼은 단계별로 따라 하도록 구성되어 있습니다. 각 단계는 이전 단계를 기반으로 합니다.
자동화된 설정 제공모든 구성 요소가 포함된 완전한 작동 설정은 코드 디렉터리의 자동화된 방식을 확인하십시오.
이 가이드는 정상적으로 작동하는 sequencer와 batcher가 이미 있고, op-deployer를 사용하여 필요한 L1 컨트랙트를 배포했다고 가정합니다. 아직 sequencer와 batcher를 설정하지 않았다면 먼저 sequencer 가이드와 batcher 가이드를 참조하십시오. proposer의 구성 정보는 구성 페이지를 확인하십시오.

proposer의 역할 이해하기

proposer(op-proposer)는 L2 체인과 L1 사이를 잇는 중요한 다리 역할을 합니다. 주요 책임은 다음과 같습니다.
  • 상태 커밋먼트: 일정한 간격으로 L2 상태 루트를 L1에 제안합니다
  • 출금 지원: 사용자가 출금을 증명하고 최종 확정하는 데 필요한 커밋먼트를 제공합니다
proposer는 DisputeGameFactory 컨트랙트를 통해 분쟁 게임(dispute game)을 생성합니다.

사전 요구 사항

proposer를 설정하기 전에 다음을 준비했는지 확인하십시오. 실행 중인 인프라:
  • 작동 중인 sequencer node
  • L1 RPC 엔드포인트에 대한 접근 권한
네트워크 정보:
  • L2 체인 ID 및 네트워크 구성
  • L1 네트워크 세부 정보(체인 ID, RPC 엔드포인트)
proposer를 설정할 때는 일관되고 격리된 환경을 제공하는 Docker 사용을 권장합니다. 소스에서 빌드하는 방법도 선택할 수 있습니다.
컨테이너 기반 배포를 선호한다면 공식 Docker 이미지를 사용하여 다음과 같이 진행할 수 있습니다.
1

디렉터리 구조 설정 및 구성 파일 복사

2

환경 변수 파일 생성

OP Stack 표준 변수proposer는 OP Stack 규칙을 따르는 OP Stack 표준 환경 변수를 사용합니다. proposer 전용 설정에는 OP_PROPOSER_ 접두사가 붙습니다.
중요: 모든 플레이스홀더 값(YOUR_ACTUAL_*)을 실제 구성 값으로 바꾸십시오.
3

docker-compose.yml 생성

“failed to dial address” 오류가 발생하면 proposer가 sequencer와 동일한 Docker 네트워크에 있는지 확인하십시오.일반적인 해결 방법:
  • proposer의 docker-compose.yml에 networks: - sequencer-node_default를 추가합니다
  • .env 파일에서 op-reth:8545, op-node:8547과 같은 서비스 이름을 사용합니다
  • docker network ls로 sequencer 네트워크 이름을 확인합니다
4

proposer 서비스 시작

5

proposer 실행 확인

6

최종 디렉터리 구조

proposer를 처음 시작하면 여러 유형의 로그 메시지가 표시됩니다.
  1. 초기화 메시지(정상):
  2. 동기화 상태 메시지(시작 중 예상되는 메시지):
    이는 정상입니다. 의미는 다음과 같습니다.
    • rollup이 아직 L1(예: Sepolia)과 동기화 중입니다
    • proposer는 동기화가 L1 최신 블록(tip)에 가까워질 때까지 대기합니다
    • 따라잡는 동안 current_l1 숫자가 증가하는 것을 확인할 수 있습니다
    • 따라잡고 나면 proposer가 제안 제출을 시작합니다
“retrying” 메시지는 걱정하지 않아도 됩니다. 이는 rollup이 최신 L1 블록을 따라잡으며 정상적으로 진행되고 있음을 보여 줍니다.일반적인 로그 패턴:
  • 시작: 서비스가 시작되면서 초기화 메시지가 표시됩니다
  • 동기화: 따라잡는 동안 “block still behind target” 메시지가 표시됩니다
  • 정상 작동: 동기화가 완료되면 정기적으로 제안이 제출됩니다
  • 네트워크: L1/L2 엔드포인트에 대한 연결 메시지가 표시됩니다
“failed to dial” 오류나 연결 문제가 표시되는 경우:
  • 소스 빌드의 경우: localhost 포트와 서비스를 확인하십시오
이제 proposer가 작동하며 상태 루트를 L1에 지속적으로 제출합니다!

다음 단계

잘하셨습니다! proposer가 상태 루트를 L1에 제출하고 있습니다. 마지막 단계는 분쟁을 모니터링하고 대응하는 challenger를 설정하는 것입니다.

challenger 실행하기 →

다음: 분쟁을 모니터링하고 rollup의 보안을 유지하도록 op-challenger를 구성하고 시작합니다.

도움이 필요하신가요?