getMinimumBalanceForRentExemption RPC 메소드는 특정 데이터 크기의 계정이 렌트 면제를 받기 위해 필요한 최소 lamport 잔액을 계산할 수 있게 해줍니다.
Solana에서는 계정이 시간이 지남에 따라 저장 비용을 충당하기 위해 최소 잔액을 유지해야 하며, 이를 렌트라고 합니다. 2년 치의 렌트 비용과 동등한 잔액을 보유한 계정은 “렌트 면제”로 간주되며 렌트에 의해 잔액이 소진되지 않습니다.
일반적인 사용 사례
- 계정 생성: 새 계정을 생성하기 전에(예: 새 토큰 계정, 프로그램으로부터 파생된 주소 또는 사용자 정의 데이터 저장) 이를 사용하여 처음부터 렌트 면제를 받기 위해 할당해야 하는 lamport를 확인합니다. 이는 잔액이 너무 낮아져도 계정이 가비지 수집되지 않도록 합니다.
- 동적 계정 크기 조정: 사용자의 애플리케이션이 데이터 크기가 커질 수 있는 계정을 처리하는 경우, 렌트 면제를 유지하기 위해 추가적인 lamport가 필요한지 주기적으로 확인할 수 있습니다.
- 비용 추정: 다양한 크기의 프로그램 배포 또는 데이터 계정 생성과 관련된 SOL 비용을 추정합니다.
- 지갑 및 SDK 통합: 지갑과 SDK는 새로운 계정에 적절히 자금을 제공하기 위해 이를 사용합니다.
요청 매개변수
-
dataLength(usize, 필수): 계정 데이터의 길이를 바이트 단위로 제공합니다. 이는 렌트 면제를 받기 위한 최소 요건을 결정하는 주요 요소입니다.- 예시:
165(표준 SPL 토큰 계정의 경우).
- 예시:
-
commitment(object, 선택 사항): 쿼리에 대한 커밋 수준을 지정합니다. 생략하면, RPC 노드의 기본 커밋 수준이 사용됩니다.- 필드:
commitment(문자열): 예시로"finalized","confirmed", 또는"processed"가 있습니다.
- 필드:
응답 구조
JSON-RPC 응답의result 필드는 지정된 dataLength가 있는 계정이 렌트 면제를 받기 위해 필요한 최소 lamports 수를 나타내는 u64 (unsigned 64-bit 정수)입니다.
예시
1. 표준 토큰 계정에 대한 렌트 면제 받기 (165 바이트)
이 예시는 전형적인 SPL 토큰 계정(데이터 크기가 165 바이트인)이 렌트 면제를 받기 위해 필요한 최소 잔액을 쿼리합니다.2. 0 바이트 계정에 대한 렌트 면제 받기
데이터가 없는 계정의 기본 렌트 면제를 보여주며, 이는 종종 모든 계정에 대한 절대 최소값입니다.개발자 팁
- 렌트는 데이터 크기에 따라 다릅니다: 계정 데이터가 클수록 렌트 면제 최소값이 높아집니다.
- 네트워크 매개변수: 렌트의 기본 비용(lamport per byte-year)은 클러스터 투표를 통해 이론적으로 변경될 수 있는 네트워크 매개변수입니다. 이는 드물지만,
getMinimumBalanceForRentExemption메소드는 항상 클러스터의 상태에 기반한 현재 값을 반환합니다. - Lamports 대 SOL: 응답은 lamports로 제공됩니다. 1 SOL = 1,000,000,000 lamports라는 것을 기억하세요.
- 장기적인 지속성을 위해 필수적임: 계정을 렌트 면제 상태로 유지하는 것은 Solana 블록체인에서 데이터의 장기적인 지속성을 위해 중요합니다.
getMinimumBalanceForRentExemption RPC 메소드를 이해하고 사용하는 데 도움을 줍니다.