getBlocks RPC 메서드는 지정된 시작 슬롯과 선택적 끝 슬롯 사이의 확인된 블록 슬롯 번호 목록을 검색할 수 있도록 합니다. 이는 특정 범위에서 확인된 블록을 알고자 할 때 각 블록의 전체 내용을 가져오지 않고도 유용합니다.
일반적인 사용 사례
- 블록 확인 범위 식별: 원장에서 두 지점 사이에 성공적으로 확인된 모든 블록 슬롯의 목록을 빠르게 가져옵니다.
- 블록을 통한 반복: 필요에 따라
getBlock를 사용하여 각 블록에 대한 자세한 정보를 가져오기 위해 반환된 슬롯 목록을 사용합니다. - 기본 블록 감사: 특정 범위 내에서 블록의 존재를 확인합니다.
요청 매개변수
getBlocks 메서드는 다음 매개변수를 사용합니다:
start_slot(u64, 필수): 범위에 대해 고려할 첫 번째 슬롯(포함).end_slot(u64, 선택): 범위에 대해 고려할 마지막 슬롯(포함).- 제공되지 않으면, 쿼리는
start_slot부터 최신 확인 슬롯까지 블록을 반환합니다. start_slot와end_slot(또는end_slot가 생략된 경우 최신 슬롯) 사이의 범위는 500,000 슬롯을 초과할 수 없습니다.
- 제공되지 않으면, 쿼리는
commitment(문자열, 선택): 쿼리에 대한 커밋 수준을 지정합니다. 생략된 경우 노드의 기본 커밋이 사용됩니다. 마지막 매개변수로 구성 객체에서 유일한 필드로 전달됩니다.
응답 구조
JSON-RPC 응답의result 필드는 u64 정수 배열입니다. 배열의 각 정수는 지정된 범위 내에서 확인된 블록 슬롯 번호를 나타냅니다.
- 예시:
[5, 6, 7, 8, 9, 10]
예시
1. 특정 슬롯 범위 내의 블록 가져오기
이 예시는 슬롯250000000와 250000010 사이의 확인된 블록 슬롯 목록을 가져옵니다.
2. 시작 슬롯에서 최신 확인 슬롯까지 블록 가져오기
이 예시는260000000부터 노드에 의해 확인된 최신 블록까지 확인된 블록 슬롯을 가져옵니다(시작 슬롯에서 500,000 슬롯 범위 제한을 준수).
3. 특정 커밋 수준으로 블록 가져오기
이 예시는confirmed 커밋 수준을 사용하여 블록을 가져옵니다.
개발자 팁
- 범위 제한: 500,000 슬롯 범위 제한을 기억하십시오. 더 큰 범위를 요청하면 오류가 발생합니다.
- 노드 데이터 가용성: 노드는 모든 역사적 슬롯에 대한 정보를 보유하지 않을 수 있습니다. 매우 오래된
start_slot값은 노드의 구성 및 원장 보유에 따라 빈 배열이나 오류를 반환할 수 있습니다. - 블록 확인: 이 메서드는 확인된 블록을 반환합니다. 선택한
commitment수준과 쿼리한 노드에 따라 특히 최근 슬롯의 경우 정확한 블록 세트가 약간 다를 수 있습니다. getBlock에 대한 보완:getBlocks는 종종 관련 블록 슬롯을 식별한 후getBlock를 사용하여 해당 목록의 개별 블록에 대한 전체 세부 정보를 검색하는 첫 번째 단계로 사용됩니다.- 페이징 대안:
getBlocks에 범위 제한이 있기 때문에 체인의 매우 큰 부분을 검색해야 하는 경우 원하는 총 범위를 500,000 슬롯 이하의 세그먼트로 나누어 여러 번의 호출을 해야 합니다.
getBlocks RPC 메서드를 사용하는 방법에 대한 명확한 개요를 제공합니다.
관련 메서드
getBlock
특정 블록에 대한 자세한 정보 가져오기
getBlocksWithLimit
슬롯에서 시작하여 고정된 수의 블록 가져오기