ADDITIONAL="--gcmode archive" 관련 문의

안녕하세요. 포럼에서 많은 도움 받고 있습니다! 감사합니다:)

아래 내용에 대하여 질문 드립니다.

  1. 임의의 블록에서 balance를 조회하기 위해서는 노드를 archive node로 동작시켜야 합니다.
    → 라는 20년도 답변글이 있는데 현재도 임의의 블록에서 balance를 조회하기 위해서는 동일한 것일까요? (특정 블락 넘버에서 balance 정보를 호출했더니 에러를 받았습니다)

  2. SYNCMODE=“archive” 이면서 fast sync를 활용할 수 있는 방법이 있을까요?

@bbb_bbb 안녕하세요.

  1. 임의의 블록에서 balance를 조회하기위해서는 해당 블록의 State Trie가 존재해야합니다. archive node는 모든 block의 state를 데이터베이스에 저장합니다. full node는 최신 128개 블록들과 128블록 주기로 state를 저장해서 128배수인 블록에 대한 balance를 조회할 수 있습니다.

  2. 말씀하신 방식으로 받을 수는 없습니다. 다만, AWS를 사용하시고 계시다면 ami를 이용해서 archive노드를 띄울 수 있습니다. AWS AMI에서 klaytn을 조회하시면 archive용 이미지가 검색됩니다. 용량제한 때문에 r5b시리즈로 인스턴스를 띄워야 사용하실 수 있습니다.

arvchive 노드 데이터는 데이터크기가 매우 큰 상황이고, 비용도 많이 발생할 수 있습니다. 상황에 따라서 다를 수 있으나 일반적으로 기 운영중인 노드(문서참조)를 활용하거나, KAS와 같은 서비스를 사용하시는 것을 추천드립니다.

1개의 좋아요

안녕하세요. 답변 감사드립니다!

  1. 최신 128개 블록들과 128블록 주기로 state를 저장.

fast sync로 동기화 하였을 때, state trie가 존재하는 블록 번호를 1, 128, 256 … 으로 계산하면 안되는 걸까요? 해당 블록 번호 위주로 잔액을 조회했을 때 결과가 나오지 않아서 다시 문의 드립니다.

@bbb_bbb

fast sync로 동기화 하였을 때

현재 클레이튼에서는 fast sync 모드를 지원하고있지 않습니다. fast sync역시 과거데이터에 대한 state를 가지고 있지않기 때문에 조회는 불가능합니다.

state trie가 존재하는 블록 번호를 1, 128, 256 … 으로 계산하면 안되는 걸까요?

말씀하신 부분은 full sync이고 genesis block부터 동기화 하였을 때 가능합니다. 동기화 이후 State migration이나 Live pruning을 진행했을 경우 특정 시점이전 과거데이터에 대한 내역 조회가 불가능합니다.

Klaytn cypress ChainData 에서 데이터를 다운받으신 후에 노드를 기동한 것이라해도 마찬가지입니다. 해당 데이터에는 이미 State Migration이 진행이 된 이후 데이터입니다.

동기화하신 방법에 대해서 구체적으로 말씀해주시면 추가적인 답변 드리도록 하겠습니다.
감사합니다.

2개의 좋아요