Node Invalid JSON RPC issue

안녕하세요

현재 EN node v 1.8.2 를 운영중에 있습니다.

어제 밤과 오늘 오전에 노드에 문제가 생겨서 질문드립니다.

문제점은 노드 block은 계속 생성되는데 JSON RPC response에 에러가 발생합니다.

노드를 재시작하면 정상적으로 운영되다가 간헐적으로 다시 해당 오류가 발생합니다.

백에서 발생한 에러메시지는 error: Invalid JSON RPC response: "" 이고,

프런트 쪽에서 발생한 에러메시지는 has been blocked by CORS policy 다음과 같습니다.

@narumi 안녕하세요, 혹시 네트워크가 어떻게 구성되어 있는지 알 수 있을까요?

EN - backend - front 이런 구조일 거 같은데, EN과 backend 사이에는 별도 네트워크 방화벽이나 그런 부분은 없을까요?

그리고 어떤 RPC request를 보내셨는지 알 수 있으면 도움이 될 거 같습니다.

네네 네트워크나 방화벽 문제는 아닌것 같습니다. 하드포크 이전에는 이런상황 없이 잘 작동하였는데 클레이튼 하드포크 이후 해당 문제가 발생했습니다.

특이한 점은 kend restart 를 실행한후 몇시간 동안은 정상적으로 작동되다가 어느 시점 부터 다시 json rpc 호출이 불가능해집니다.

caver-js를 이용한 jrpc request가 모두 작동하지 않습니다.

caver-js를 이용한 모든 리퀘스트가 어떤건지 좀 더 설명해주실 수 있을까요?

그리고 JSON RPC를 직접 사용해보신 적은 없으신가요? curl이나 다른 REST API client를 이용해서요.

caver.contract.create 를 이용해 만든 컨트랙트로 호출한 rpc request가 모두 정상적으로 호출되지 않습니다
프로트 백 모두 sdk를 이용하였고 curl이나 다른 rest api client를 이용해 호출해보지는 않았습니다.

의아한점은 일정 시간동안은 가능하다가 작동하지 않는점입니다. 그 상태에서도 저희 노드는 계속 block을 생성하고 있습니다.

가능하시다면 github이나 gitlab을 통해 코드를 공유해주실 수 있으실까요? 저희도 유사한 동작을 가지고 테스트해봐야 확인이 가능할 것 같습니다.

caver.rpc.klay.getBlockNumber(); Contract.populateTransaction.method(); 등 모든 request가 invalid JSON RPC response를 반환합니다. 노드는 계속 살아있는데 일정 시간후에 호출이 안되는 현상이라 따로 코드를 특정해 공유해드리기는 어려울 것 같습니다.

혹시 en 노드 설정 중에 rpc request 호출 횟수를 제한하는 설정이 있을까요?

흠 제 생각에는 rpc.concurrencylimit 정도 밖엔 없을 거 같은데요,

요청 횟수가 초당 몇 개나 될까요?

안녕하세요

엔드포인트 노드를 리버스 프록시하여

레이트 리밋을 추가하시면 될것같습니다.

저는 Basic authentication을 추가하였는데

아래 레포 첨부합니다.

1 Like

같은 에러를 만나고 있는데, 해결 되셨을까요?

간헐적으로 발생하다가 어느 시점 이후로 정상화 되었습니다. 저는 변경한 사항이 없는데 클레이튼 메인넷 쪽에서 변경이 있었던건지 지금은 정상화 되었습니다!

여기서 저는 해결했는데요,
truffle config 에서 타임아웃 값 변경해주니까 됐습니다.

gas: '10000000',
        gasPrice: null,
        networkCheckTimeout: 1000000,
        timeoutBlocks: 200
    },