이 가이드는 공식 Base 노드 Docker 설정을 사용하여 Base 노드를 설정하고 실행할 때 발생하는 일반적인 문제를 다루며 진단 및 해결 단계를 제공합니다.Documentation Index
Fetch the complete documentation index at: https://daehan-base.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
일반적인 문제 해결 단계
특정 문제로 넘어가기 전에 일반적으로 도움이 되는 단계가 있습니다:-
컨테이너 로그 확인: 일반적으로 가장 유익한 단계입니다.
docker compose logs -f <service_name>을 사용하여 특정 컨테이너의 실시간 로그를 확인합니다.- L2 클라이언트 (Reth):
docker compose logs -f execution - 롤업 노드:
docker compose logs -f node. 오류, 경고 또는 반복되는 메시지를 확인합니다.
- L2 클라이언트 (Reth):
-
컨테이너 상태 확인: 관련 Docker 컨테이너가 실행 중인지 확인합니다:
docker compose ps. 컨테이너가 자주 재시작되거나 종료된 경우 로그를 확인합니다. -
리소스 사용량 확인: 서버의 CPU, RAM, 디스크 I/O, 네트워크 사용량을 모니터링합니다. 성능 문제는 종종 불충분한 리소스와 관련됩니다.
htop,iostat,iftop과 같은 도구가 유용합니다. -
RPC 엔드포인트 확인:
curl을 사용하여 L2 클라이언트의 RPC 엔드포인트가 응답하는지 확인합니다(Base 노드 실행 > 노드 실행 확인 참조). 또한 L1 엔드포인트가 올바르고 노드 서버에서 접근 가능한지 확인합니다. - L1 노드 확인: 구성된 L1 노드(실행 및 합의)가 완전히 동기화되고 건강하며 접근 가능한지 확인합니다. L1 노드의 문제는 L2 노드의 동기화를 방해합니다.
일반적인 문제와 해결책
설정 및 구성 문제
-
문제: Docker 명령 실패 (
docker compose up ...)- 확인: Docker와 Docker Compose가 설치되고 Docker 데몬이 실행 중인가요?
- 확인:
docker-compose.yml이 포함된 클론된node디렉토리에 있나요? - 확인: 명령의 구문 오류(예:
NETWORK_ENV또는CLIENT오타).
-
문제: 컨테이너 시작 실패,
.env파일 또는 환경 변수 관련 오류 표시.- 확인: 올바른
.env파일(.env.mainnet또는.env.sepolia)에서 L1 엔드포인트(OP_NODE_L1_ETH_RPC,OP_NODE_L1_BEACON)를 올바르게 구성했나요? - 확인: 구성 또는 L1 노드에서 필요한 경우
OP_NODE_L1_BEACON_ARCHIVER엔드포인트가 설정되어 있나요? - 확인: L1 제공업체에 맞게
OP_NODE_L1_RPC_KIND가 올바르게 설정되어 있나요? - 확인: (Reth)
.env파일에RETH_CHAIN과RETH_SEQUENCER_HTTP가 올바르게 설정되어 있나요?
- 확인: 올바른
-
문제:
op-node와 L2 클라이언트 간의 JWT 시크릿 또는 인증 관련 오류.- 확인: 무엇을 하는지 알지 못하는 한
OP_NODE_L2_ENGINE_AUTH변수나 JWT 파일 경로($OP_NODE_L2_ENGINE_AUTH)를 수동으로 수정하지 않았는지 확인합니다.docker-compose설정은 일반적으로 이를 자동으로 처리합니다.
- 확인: 무엇을 하는지 알지 못하는 한
-
문제: 데이터 볼륨(
./reth-data) 관련 권한 오류.- 확인:
docker compose를 실행하는 사용자가node저장소가 클론된 디렉토리에 쓰기 권한이 있는지 확인합니다. Docker는./reth-data에 쓸 수 있어야 합니다.sudo로 Docker 명령을 실행하면 나중에 권한 문제가 발생할 수 있습니다;docker그룹에 추가된 비루트 사용자로 실행해 보세요.
- 확인:
동기화 문제
-
문제: 노드가 동기화를 시작하지 않거나 멈춘 것처럼 보임 (블록 높이가 증가하지 않음).
- 확인:
op-node로그. L1 엔드포인트 또는 L2 클라이언트에 연결하는 데 오류가 있나요? - 확인: 실행 클라이언트 로그. 엔진 API(포트
8551)를 통해op-node에 연결하거나 P2P 문제에 오류가 있나요? - 확인: L1 노드 건강 및 동기화 상태. L1 노드가 접근 가능하고 완전히 동기화되어 있나요?
- 확인: 시스템 시간. 서버의 시계가 정확하게 동기화되어 있는지 확인합니다(
ntp또는chrony사용). 큰 시간 드리프트는 P2P 문제를 유발할 수 있습니다.
- 확인:
-
문제: 동기화가 매우 느림.
- 확인: 하드웨어 사양. 노드 성능 가이드에 설명된 권장 사양(특히 RAM과 NVMe SSD)을 충족하나요? 디스크 I/O가 종종 병목입니다.
- 확인: L1 노드 성능. L1 RPC 엔드포인트가 응답성이 있나요? 느린 L1 노드는 L2 동기화를 느리게 합니다.
- 확인: 네트워크 연결 품질 및 대역폭.
- 확인:
op-node및 L2 클라이언트 로그에서 성능 경고나 오류를 확인합니다.
-
문제:
optimism_syncStatus(포트7545의op-node)에서 큰 시간 차이나 오류 표시.- 조치: 상태가 확인된 시간 주변에 롤업 노드와 L2 실행 클라이언트 모두의 로그를 확인하여 근본 원인(예: L1 연결 문제, L2 클라이언트 문제)을 파악합니다.
-
문제: 트랜잭션 전송 시
Error: nonce has already been used.- 원인: 노드가 아직 체인 헤드까지 완전히 동기화되지 않았습니다.
- 조치: 노드가 완전히 동기화될 때까지 기다립니다.
optimism_syncStatus또는 로그를 사용하여 진행 상황을 모니터링합니다.
성능 문제
- 문제: 높은 CPU, RAM 또는 디스크 I/O 사용량.
- 확인: 노드 성능의 권장 사항에 대한 하드웨어 사양. 필요하면 업그레이드합니다. 로컬 NVMe SSD가 매우 중요합니다.
- 확인: 특정 오류나 병목을 찾기 위해 클라이언트 로그를 검토합니다.
스냅샷 복원 문제
올바른 절차는 스냅샷 가이드를 참조하세요.-
문제:
wget명령 실패 또는 스냅샷 다운로드 손상.- 확인: 네트워크 연결.
- 확인: 사용 가능한 디스크 공간.
- 조치: 다운로드를 재시도합니다. 다운로드 URL이 올바른지 확인합니다.
-
문제:
tar추출 실패.- 확인: 다운로드된 파일 무결성 (손상되었나요?).
- 확인: 사용 가능한 디스크 공간 (추출에는 다운로드보다 훨씬 많은 공간이 필요합니다).
- 확인:
tar명령 구문.
-
문제: 스냅샷 복원 후 노드 시작 실패; 로그에 데이터베이스 오류 또는 파일 누락.
- 확인: 데이터 디렉토리를 수정하기 전에 노드를 중지(
docker compose down)했나요? - 확인: 스냅샷 데이터를 추출/이동하기 전에 기존 데이터 디렉토리의 내용(
./reth-data/*)을 삭제했나요? - 확인: 스냅샷 데이터가 올바르게 이동되었나요? 체인 데이터는 중첩된 하위 폴더(예:
./reth-data/reth/...)가 아닌./reth-data내에 직접 있어야 합니다. 폴더 구조를 확인합니다.
- 확인: 데이터 디렉토리를 수정하기 전에 노드를 중지(
-
문제: 다운로드 또는 추출 중 디스크 공간 부족.
- 조치: 디스크 공간을 확보하거나 더 큰 볼륨을 프로비저닝합니다. 스토리지 공식을 기억하세요:
- 조치: 디스크 공간을 확보하거나 더 큰 볼륨을 프로비저닝합니다. 스토리지 공식을 기억하세요:
네트워킹 / 연결 문제
-
문제: RPC/WS 연결 거부 (예:
localhost:8545에curl실패).- 확인: L2 클라이언트 컨테이너가 실행 중인가요(
docker compose ps)? - 확인: 올바른 포트를 사용하고 있나요(HTTP는 기본값
8545, WS는8546)? - 확인: L2 클라이언트 로그. RPC 서버 시작에 실패했나요?
- 확인: 외부 연결(Docker 네트워크 내에서)을 허용하기 위해 클라이언트 설정/엔트리포인트에서
--http.addr와--ws.addr플래그가0.0.0.0으로 설정되어 있나요?
- 확인: L2 클라이언트 컨테이너가 실행 중인가요(
-
문제: 노드의 피어 수가 낮음.
- 확인: P2P 포트 접근성. 호스트 또는 네트워크 방화벽에서
30303(TCP/UDP)과9222(Reth discv5를 위한 TCP/UDP)가 차단되어 있지 않은지 확인합니다. - 확인: P2P 오류에 대한 노드 로그.
- 조치: NAT 뒤에 있는 경우
.env파일의ADDITIONAL_ARGS를 통해--nat=extip:<your-ip>플래그를 구성합니다(고급 설정 참조).
- 확인: P2P 포트 접근성. 호스트 또는 네트워크 방화벽에서
-
문제: 로그에 포트 충돌 보고 또는
docker compose up실패.- 확인: 호스트에서 기본 포트(
8545,8546,8551,6060,7545,30303)를 사용하는 다른 서비스가 실행 중인가요? 다음을 사용하세요: - 조치: 충돌하는 서비스를 중지하거나
docker-compose.yml의ports섹션을 수정하고 필요한 경우.env파일에서 관련 환경 변수($RPC_PORT,$WS_PORT등)를 업데이트하여 Base 노드 컨테이너에서 사용하는 포트를 변경합니다.
- 확인: 호스트에서 기본 포트(
추가 도움 받기
이 가이드를 따라도 여전히 문제가 있다면 커뮤니티에서 도움을 구하세요:- Discord: Base Discord에 참여하여
🛠|node-operators채널에 설정, 문제, 관련 로그에 대한 세부 정보를 게시합니다. - GitHub: Base 노드 저장소 이슈를 확인하거나 버그로 의심되는 경우 새 이슈를 열어 보세요.