아카이브 스토어 및 서비스
확장성과 성능을 위해 풀 노드는 제한된 리텐션만 적용하지만, 개발자에게는 온체인 과거 데이터에 대한 장기 접근이 필수적이다. 아카이브 스토어 및 서비스(Archival Store and Service)는 풀 노드나 인덱서 데이터베이스가 일반적으로 유지하는 범위를 넘어서는 Sui 과거 데이터에 접근할 수 있도록 확장 가능하고 일관된 기반을 제공한다. 이 인프라는 GraphQL RPC, gRPC 기반 앱, 데이터 플랫폼의 과거 데이터 기반 역할을 하며, 풀 노드가 데이터를 pruning한 뒤에도 오래된 transactions, checkpoints, object states에 대한 효율적인 포인트 조회를 제공한다.
When to use
개발자와 RPC 및 데이터 제공자 모두 Archival Store and Service를 사용해 이점을 얻지만, 목표와 사용 패턴은 다르다.
Developers
- transaction history, object lineage, 이전 앱 상태와 같은 UI 기능을 렌더링하기 위해 과거 데이터에 접근한다.
- 인프라 오버헤드를 피하기 위해 장기 데이터는 호스팅된 archival service에 의존한다.
- 풀 노드나 인덱서 데이터베이스가 충분한 리텐션을 반환하지 않을 경우 archival data를 조회하는 폴백 메커니즘을 앱에 구현한다.
RPC and data providers
- 개발자에게 과거 데이터 접근을 제공하는 차별화된 인프라 서비스를 운영한다.
- Archival Service를 통해 GraphQL 또는 gRPC 기반 APIs의 리텐션 범위를 확장한다.
- Bigtable 또는 커스텀 백엔드를 사용해 자체 Archival Store and Service를 실행함으로써 운영 독립성을 유지한다.
How the Archival Store and Service fits into the application stack
- Archival Store: checkpoint로 인덱싱된 Sui 데이터를 보관하는 장기 storage 시스템(Bigtable 등)이다.
- Archival Service: 이 스토어에 대한 접근을 노출해 과거 데이터의 포인트 조회를 가능하게 하는 gRPC
LedgerService계층이다.
풀 노드를 사용할 때 누락된 데이터를 찾기 위해 gRPC 기반 Archival Service를 통해 archival store를 조회할 수 있으며, 리텐션 밖 데이터까지 포함하는 GraphQL RPC 쿼리를 처리하는 데에도 사용할 수 있다. 서비스를 직접 호스팅할 수도 있고, 제공자를 사용할 수도 있으며, 속도 제한이 있는 public-good 버전에 의존할 수도 있다.