JSON-RPC 호출 수를 최적화 하고 있습니다. 구상한 방식 중 여러 요청들을 한번에 몰아서 보낼 수 있는 부분 (초기 로딩 쿼리)의 경우는 JsonRpcBatchProvider로 일괄 처리하는 것이 효과적일 거라는 생각을 하고 테스트를 하였습니다.
그 결과 개발자 도구상으로 요청이 합쳐져 보내는 것을 확인하였는데요. 해당 방식으로 보내게 되면 실제로 요청받은 EN노드는 실제 연속적으로 작업을 처리하는지 궁금합니다.
JSON-RPC 호출 수를 최적화 하고 있습니다. 구상한 방식 중 여러 요청들을 한번에 몰아서 보낼 수 있는 부분 (초기 로딩 쿼리)의 경우는 JsonRpcBatchProvider로 일괄 처리하는 것이 효과적일 거라는 생각을 하고 테스트를 하였습니다.
그 결과 개발자 도구상으로 요청이 합쳐져 보내는 것을 확인하였는데요. 해당 방식으로 보내게 되면 실제로 요청받은 EN노드는 실제 연속적으로 작업을 처리하는지 궁금합니다.
유저가 보유하고 있는 토큰들의 getBalance 함수를 호출하는 경우입니다!
Batch 리퀘스트로 요청하신다고 해도 결국 EN 입장에서는 그 요청을 1 by 1 으로 처리하게 될 거 같습니다.
JSON-RPC APIs - Klaytn Docs 문서로 확인해보실 수 있겠지만, Batch로 한꺼번에 요청을 받아 처리하는 API는 노드 단에서 제공되고 있지 않습니다.
즉 Batch로 보내셔도 결국 하나씩 처리가 된다는 뜻입니다.
따라서 Json RPC 호출 수를 최적화하는 것이 목적이라면, Batch Request로는 목적 달성이 어려울 거 같아요. 왜냐면 결국 노드 입장에서는 Batch로 하던 한 개씩 요청을 날리던 처리하는 갯수는 동일할테니까요.
감사합니다. 결과적으론 네트워크 요청이 하나인 Promise.all과 같은 역할밖에 하지 못하겠네요. 도움이 많이 되었습니다!
호출 시 노드가 Batch 작업과 유사하게 가능한 방법은 찾아본 바 아래 오픈소스를 사용하는 방법인것 같습니다.
컨트랙트 코드 자체에서 함수 호출을 여러개 받는 방법이 있네요! 단점은 컨트랙트에 선언된 함수만 사용가능하네요.
클레이튼 네트워크 또한 배포해서 PR 올려보겠습니다!