메인 콘텐츠로 건너뛰기
이 페이지는 노드 운영자를 위한 일반적인 문제 해결 시나리오와 해결 방법을 나열합니다.

401 Unauthorized: Signature Invalid

op-node에서 다음과 같은 로그가 표시되는 경우:
이는 op-node가 JWT secret을 사용하여 execution client의 인증된 RPC에 인증할 수 없다는 의미입니다.

해결 방법

  1. 두 서비스 모두에서 JWT secret이 올바른지 확인하십시오.
  2. execution client의 인증된 RPC가 활성화되어 있고 URL이 올바른지 확인하십시오.

P2P 구성 로드 실패

op-node에서 다음과 같은 로그가 표시되는 경우:
이는 op-node에 P2P discovery 또는 peerstore 디렉터리에 대한 쓰기 권한이 없다는 의미입니다.

해결 방법

  1. op-node에 P2P 디렉터리에 대한 쓰기 권한이 있는지 확인하십시오. 기본값은 /p2p입니다.
  2. --p2p.discovery.path 및 --p2p.peerstore.path 파라미터를 통해 P2P 디렉터리를 op-node가 접근할 수 있는 위치로 설정하십시오.
  3. --p2p.discovery.path 및 --p2p.peerstore.path 파라미터를 통해 discovery 경로를 memory로 설정하여 영속성을 비활성화하십시오.

잘못된 체인

op-node에서 다음과 같은 로그가 표시되는 경우:
이는 op-node가 잘못된 체인을 가리키고 있다는 의미입니다.

해결 방법

  1. op-node의 L1 URL이 해당 네트워크의 올바른 L1을 가리키고 있는지 확인하십시오.
  2. op-node의 rollup 구성/--network 파라미터가 올바른 네트워크로 설정되어 있는지 확인하십시오.
  3. op-node의 L2 URL이 올바른 execution client 인스턴스를 가리키고 있으며, execution client가 해당 네트워크에 맞게 올바르게 초기화되었는지 확인하십시오.

오류: eth_sendRawTransaction이 존재하지 않음

실행 클라이언트(op-reth, Nethermind 등)에 대한 RPC 호출이 다음과 같은 응답을 반환하는 경우:
이 -32601 JSON-RPC 오류는 구성한 sequencer 엔드포인트가 eth_sendRawTransaction을 제공하지 않는다는 의미입니다. 요청 경로는 다음과 같습니다.
op-node는 rollup 전용 RPC 메서드만 제공하며 eth_* 네임스페이스가 없으므로, raw 트랜잭션 제출을 받을 수 없습니다. 실행 클라이언트가 트랜잭션을 op-node URL로 전달하면 즉시 -32601 오류와 함께 실패합니다. 이 상황은 거의 항상 op-reth의 --rollup.sequencer(별칭 --rollup.sequencer-http, --rollup.sequencer-ws)가 체인의 실제 sequencer가 아닌 자체 op-node를 가리키도록 잘못 구성된 경우에 발생합니다.

해결 방법

  1. op-reth가 HTTP API에서 eth 네임스페이스를 제공하는지 확인하십시오(표준 설정은 --http.api=eth,net,web3,debug입니다). eth가 비활성화되어 있으면 raw 트랜잭션이 sequencer에 도달하기 전에 거부됩니다.
  2. sequencer와 통신하는 모든 구성 요소(op-node, op-reth, op-batcher, op-proposer, 스크립트)의 CLI 플래그와 환경 변수를 점검하십시오. --rollup.sequencer 플래그는 자체 op-node가 아니라 체인의 공개 sequencer 엔드포인트(예: https://mainnet-sequencer.optimism.io)를 가리켜야 합니다.
  3. sequencer를 직접 운영하는 사용자 배포 L2의 경우, op-reth가 로컬로 전달하고 op-node 엔드포인트로 대체되지 않도록 --rollup.sequencer를 설정하지 마십시오.
  4. 플래그를 수정한 후 영향을 받은 서비스를 재시작하여 새 엔드포인트가 적용되도록 하십시오. 올바른 sequencer RPC에 연결되면 즉시 오류가 사라집니다.

비정상 종료

비정상 종료(unclean shutdown)는 실행 클라이언트가 정상적인 종료 절차를 완료하지 못하고 중지될 때 발생합니다. 예를 들어 SIGKILL, 전원 손실, 유예 기간을 초과하여 종료된 컨테이너 등이 있습니다. 영향은 EL이 사용하는 데이터베이스 백엔드에 따라 다릅니다. 위험을 최소화하려면 항상 정상적으로 종료하십시오. 포그라운드 프로세스는 Ctrl-C, Docker는 docker stop -t 300 <container>, systemd는 systemctl stop을 사용하십시오(EL에 플러시해야 할 대용량 인메모리 쓰기가 있는 경우 기본 90초 타임아웃을 재정의하십시오).

op-reth의 경우

op-reth는 설계상 크래시에 안전한 MDBX를 사용합니다. 비정상 종료 후에도 일반적으로 운영자의 개입 없이 정상적으로 재시작됩니다. 비정상 종료 후 시작에 실패하는 경우 다음 옵션을 사용할 수 있습니다.
  • Stage unwind — 마지막으로 일관성 있는 stage 체크포인트로 롤백합니다.
  • 전체 재동기화 — 최후의 수단으로 datadir를 삭제하고 genesis 또는 스냅샷에서 다시 동기화합니다.

Nethermind의 경우

Nethermind에서 비정상 종료가 발생하면 데이터베이스가 손상될 수 있습니다. 이는 일반적으로 다음과 같은 경우에 발생합니다.
  • node에 하드웨어 장애(디스크 장애, 메모리 오류, 과열)가 발생한 경우
  • 정전으로 인해 갑작스럽게 종료된 경우
  • 적절한 정리 없이 프로세스가 종료된 경우
해결 방법
  1. Lock 파일 문제 비정상 종료 후 Nethermind가 lock 파일에 대해 오류를 보고하는 경우 다음을 실행하십시오.
  2. 블록 체크섬 불일치 블록 체크섬 불일치 오류가 발생하는 경우 direct I/O를 활성화할 수 있습니다.
    참고: 성능에 영향을 줄 수 있습니다.
  3. 완전 재동기화 심각한 손상의 경우 전체 재동기화를 권장합니다.