문제 해결
Story 노드 실행 시 발생하는 일반적인 문제와 해결책
Story 노드 문제 해결에 오신 것을 환영합니다! 이 섹션에서는 Story 노드 실행 시 발생하는 일반적인 문제와 해결책을 다룹니다.
노드 설정
하드웨어 요구 사항은 무엇인가요?
하드웨어 요구 사항은 무엇인가요?
다음을 참조하세요 system specs
예상되는 최대 TPS는 얼마인가요?
예상되는 최대 TPS는 얼마인가요?
~700
완전한 EVM 호환성이 있나요? IP 블록체인에 이미 적용된 사용자 정의가 있나요? 또는 앞으로 적용될 사용자 정의가 있나요?
완전한 EVM 호환성이 있나요? IP 블록체인에 이미 적용된 사용자 정의가 있나요? 또는 앞으로 적용될 사용자 정의가 있나요?
네, EVM 호환성이 있습니다. Story의 실행 클라이언트는 Geth의 포크로, 우리의 사용자 정의 프리컴파일을 포함하고 있어 IP 그래프의 성능을 향상시키면서도 엄격한 EVM 호환성을 유지합니다. RETH와 Erigon과 같은 다른 Ethereum 실행 클라이언트는 나중에 지원될 수 있습니다.
합의 메커니즘은 무엇인가요?
합의 메커니즘은 무엇인가요?
우리의 합의 메커니즘은 CometBFT입니다
배치 지원이 있나요? 배치 요청에 대한 제한이 있나요?
배치 지원이 있나요? 배치 요청에 대한 제한이 있나요?
배치 RPC는 지원됩니다 - Geth의 경우 1K 제한이 있고 합의 측면에서는 10개 요청 제한이 있습니다
WS 연결이 있나요? (있다면 어떻게 작동하나요)
WS 연결이 있나요? (있다면 어떻게 작동하나요)
네, 실행 클라이언트에서 WS가 활성화되어 있으며, 구독 사용 사례에 권장됩니다. 8546 포트에서 열려 있습니다
노드가 제공하는 다양한 경로는 몇 개인가요 (다른 메서드를 가진 여러 RPC 경로)?
노드가 제공하는 다양한 경로는 몇 개인가요 (다른 메서드를 가진 여러 RPC 경로)?
전체적인 목록은 Geth의 최신 JSON-RPC 문서를 참조해 주세요 here. 향후에 더 추가될 수 있습니다.
RPC 메서드에 대한 캐싱 규칙이 있나요?
RPC 메서드에 대한 캐싱 규칙이 있나요?
RPC 메서드에 따라 1-10분의 TTL을 가진 표준 인메모리 캐싱을 사용하는 것을 권장합니다
최신 블록을 가져오고 노드가 정상이고 동기화되었는지 확인하는 가장 좋은 방법은 무엇인가요?
최신 블록을 가져오고 노드가 정상이고 동기화되었는지 확인하는 가장 좋은 방법은 무엇인가요?
실행 클라이언트에서 eth_syncing
RPC 호출을 사용하여 노드가 동기화되었는지 확인하고 eth_blockNumber
를 사용하여 최신 블록을 가져옵니다
가장 무거운 RPC 메서드는 무엇인가요? 이러한 메서드로 요청에 응답하는 데 얼마나 시간이 걸리나요?
가장 무거운 RPC 메서드는 무엇인가요? 이러한 메서드로 요청에 응답하는 데 얼마나 시간이 걸리나요?
eth_call
/ eth_getLogs
/ eth_getBlockByNumber
우리는 아직 응답 시간을 파악하기 위해 지연 시간 테스트를 진행 중입니다.
아카이브 노드 프로비저닝이 필요한가요? 필요하다면 얼마나 큰가요?
아카이브 노드 프로비저닝이 필요한가요? 필요하다면 얼마나 큰가요?
아니요, 현재는 필요하지 않습니다.
전체 / 아카이브에 대한 스냅샷이 있나요?
전체 / 아카이브에 대한 스냅샷이 있나요?
아직은 없지만, 작업 중입니다.
일반적인 문제
데이터베이스 초기화 실패
데이터베이스 초기화 실패
Error:
Solution:
- 검증자 상태를 저장하세요:
🚧 특히 검증자가 이미 블록에 서명하고 있다면 이 파일을 매우 조심스럽게 다루세요.
- 데이터베이스 백엔드 유형을 확인하세요. 스냅샷을 사용하는 경우 노드가 동일한 유형을 지원해야 합니다:
기본값은 app-db-backend = "goleveldb"
입니다. 대체 옵션은 db_backend
값으로 CometBFT의 config.toml
에 설정되어 있습니다.
높은 가스 수수료
높은 가스 수수료
Problem: RPC 노드에서 가스 수수료 조정 필요
Solution:
geth 시작 명령에 --rpc.txfee
플래그를 추가하세요:
PacketPing 전송 실패
PacketPing 전송 실패
Error:
Solution:
- 노드가 동기화되었다면 이 오류를 무시할 수 있습니다. 클라이언트가 약간 뒤처져 있을 수 있습니다.
- 노드가 중지되면 서비스를 재시작해야 합니다.
Cosmovisor: failed to read upgrade info
Cosmovisor: failed to read upgrade info
cosmovisor 시작 시 오류가 발생합니다:
Solution:
- 설치된 cosmovisor 버전이 최소 v1.7.0이어야 합니다.
- 그런 다음 info 파일을 확인하세요 (버전
v0.13.0
을 사용자의 경우로 수정하세요):
파일이 없다면 새로 만드세요:
cosmovisor를 사용한 자동 업데이트에 대해 더 자세히 알아보려면 here를 참조하세요.
IPC 엔드포인트 닫힘
IPC 엔드포인트 닫힘
Error:
Solution:
- 8551 포트가 중지되는 것 같습니다. 백그라운드에서 실행 중인
iptables
프로세스가 IP와 포트를 차단하고 posix 접근을 막고 있습니다. - 해결을 위해
ufw posix
와iptables
를 제거해 보세요:
동일한 키에서 서명 발견
동일한 키에서 서명 발견
Error:
Solution:
- 검증자가 이중 서명되었습니다. 현재 이중 서명된 후에는 검증자를 복구하는 것이 불가능합니다.
- 이러한 상황을 피하려면 다음 게시물을 참조하여 올바르게 migrate a validator to another machine하는 방법을 확인하세요.
생성 플래그 검증 실패: 필수 플래그 누락: moniker
생성 플래그 검증 실패: 필수 플래그 누락: moniker
투표 추가 오류
투표 추가 오류
Error:
Solution:
- 노드가 다운된 것 같습니다. 시작하려면 here에서 현재 바이너리 버전을 확인하세요.
- 최신 바이너리가 있다면 피어를 업데이트해 보세요. 이는 일반적으로 노드가 p2p 통신을 잃었을 때 발생합니다:
투표 서명 오류
투표 서명 오류
Error:
Solution:
- 당신의
priv_validator_state
의 validator.🚧 validator가 이미 블록에 서명하고 있다면 이 파일을 다룰 때 매우 주의하세요.
- 다음 명령어로 상태의 복사본을 만들 수 있습니다:
validator 상태를 확인하세요:
- 이 오류가 발생하면 상태를 재설정할 수 있습니다 (🚧 validator가 아직 블록에 서명하지 않은 경우에만).
- 노드를 중지하세요.
- 노드를 시작하세요.
Unknown flag: --home
Unknown flag: --home
Error:
Solution:
- 설정 오류로 보입니다. 시작 명령에서
--home
플래그를 제거해야 합니다. - systemd 실행 파일은 다음과 같을 수 있습니다:
Failed to register the Ethereum service
Failed to register the Ethereum service
Processing finalized payload halted while evm syncing
Processing finalized payload halted while evm syncing
Warn:
Solution:
- 이는 단순히 story-geth가 동기화 중임을 의미합니다. 이 경고는 무시해도 됩니다.
- 하지만 시간이 오래 걸린다면, 프로세스를 하나씩 중지하고 나중에 다음 순서로 다시 시작하는 것을 권장합니다:
Upgrade handler is missing
Upgrade handler is missing
Home directory contains unexpected file
Home directory contains unexpected file
Error:
Solution:
- 이는 이미 노드를 초기화했다는 의미입니다.
$HOME/.story/story
디렉토리가 생성되었고 그 안에 파일들이 있습니다. 삭제하거나 그대로 시도해 보세요.
Err='create comet node: create node
Err='create comet node: create node
Error:
Solution:
- 노드가 잘못된 버전을 사용하고 있는 것 같습니다.
- 현재 바이너리 버전을 here에서 확인하세요.
- 그리고 대부분의 경우 현재 버전으로 바이너리 롤백을 수행해야 합니다.
WAL does not contain
WAL does not contain
Error:
Solution:
- 이는
AppHash
문제로 보입니다. - 시작하려면 here에서 현재 바이너리 버전으로 업그레이드하세요.
- 만약 버전이 현재 버전보다 새로운 경우 롤백을 수행하세요.
Err='load engine JWT file: read jwt file
Err='load engine JWT file: read jwt file
Error:
Solution:
- 노드가
jwtsecret
를 가져올 수 없는 것 같습니다. - 당신의
WorkingDirectory
에 있는geth-service
를 확인하세요. 기본값은WorkingDirectory=$HOME/.story/geth
입니다. - 모든 경로를 확인하세요. 다음 명령어로
jwtsecret
를 얻을 수 있습니다 (odyssey 네트워크의 경우):
Couldn't connect to any seeds
Couldn't connect to any seeds
Error:
Solution:
- 노드가 동기화되어 있고 크게 뒤처지지 않았다면 이 오류를 무시할 수 있습니다.
- 노드가 지연되거나 완전히 멈췄다면 seeds/peers를 업데이트해 보세요. 이는 보통 노드가 p2p 통신을 잃었을 때 발생합니다 (노드를 중지하고 addrbook을 삭제하는 것을 권장합니다).
Processing finalized payload failed err='rpc forkchoice updated
Processing finalized payload failed err='rpc forkchoice updated
Warn:
Solution:
- 모든 것이 정상입니다. 이는 단순히
story-geth
가 동기화 중이며, 이는 시간이 걸린다는 의미입니다. - 노드가 크게 뒤처지지 않았다면 이 경고를 무시할 수 있습니다.
Dial tcp 127.0.0.1:9090
Warn:
Solution:
- 로그에
9090
포트에서 연결 실패가 표시됩니다. - 수신 포트를 확인하세요:
- 다른 노드가
9090
를 사용한다면 다른 포트로 변경하세요. - 일반적으로 이 경고는 노드의 성능에 영향을 미치지 않아야 합니다.
Wrong AppHash
Wrong AppHash
Error:
Solution:
Wrong AppHash
유형의 로그는 사용 중인 story 노드 버전이 잘못되었음을 의미합니다.- 현재 바이너리 버전으로 업그레이드하세요 here.
- 만약 버전이 현재 버전보다 새로운 경우 롤백을 수행하세요.
Connection failed sendRoutine / Stopping peer
Connection failed sendRoutine / Stopping peer
Error:
Solution:
- 노드가 동기화되어 있고 크게 뒤처지지 않았다면 이 오류를 무시할 수 있습니다.
- 노드가 지연되거나 완전히 멈췄다면 피어를 업데이트해 보세요. 이는 보통 노드가 p2p 통신을 잃었을 때 발생합니다:
Moniker must be valid non-empty
Moniker must be valid non-empty
Error:
Solution:
- 노드 moniker에 문제가 있는 것 같습니다.
- init을 실행할 때
""
를 사용했는지 확인하세요:
- config로 이동하여 moniker를 찾아
""
only:
Invalid address (26656)
Invalid address (26656)
Error:
Solution:
- 로그에
26656
포트에서 연결 실패가 보고됩니다. - 수신 포트를 확인하세요:
- 다른 노드가
26656
를 사용 중이라면, 다른 것으로 변경하고 story의 기본26656
를 유지하세요P2P configuration
옵션에서config
:
Eth_coinbase가 존재하지 않습니다
Eth_coinbase가 존재하지 않습니다
Warn:
Solution:
- 이 오류는 네트워크가 중지되었음을 나타냅니다.
제안 검증 실패
제안 검증 실패
Warn:
Solution:
- 포트 8551이 중지된 것 같습니다. 백그라운드에서 실행 중인
iptables
가 IP와 포트를 차단하고 posix 접근을 막고 있습니다. - 해결책으로
ufw posix
와iptables
를 제거해 보세요: