跳到主要内容

상태

각 계정에는 메타데이터와 모든 컨트랙트 관련 데이터 (컨트랙트 코드 + 스토리지)를 저장하는 '상태'가 있습니다 .

계정의 상태는 네트워크의 모든 사람이 읽을 수 있지만, 계정만이 변경 가능합니다.

각 계정은 사용된 공간에 비례하여 잔고의 일부를 잠그는 형태로 자체 스토리지 비용을 지불합니다.


계정의 메타데이터

상태는 컨트랙트에서 관련 메타데이터를 추적합니다. 특히 상태는 다음 필드를 저장합니다.

  1. amount: yoctoNEAR(1 Ⓝ = 1024yⓃ)로 표현되는 계정 잔고입니다.
  2. code_hash: 컨트랙트의 Wasm 파일 해시로, 컨트랙트가 없는 경우 1s로 채워집니다.
  3. storage_usage: 계정(코드 + 메타데이터 + 데이터 스토리지)이 저장하는 데 사용하는 바이트의 양입니다.
信息

다음 near cli 명령어를 실행하여 계정 메타데이터를 확인할 수 있습니다 .

near state hello-nearverse.testnet

컨트랙트의 상태

상태는 컨트랙트 코드컨트랙트 스토리지가 모두 저장 되는 장소이기도 합니다 .

컨트랙트 스토리지는 base64 및 JSON 직렬화(또는 Rust의 Borsh)를 사용하여 인코딩된 키-값 쌍 으로 구성됩니다 .

信息

다음 near cli 명령어를 실행하여 계정 컨트랙트 상태를 확인할 수 있습니다 .

near view-state hello-nearverse.testnet --finality final --utf8 true
提示

컨트랙트를 개발할 때, SDK가 스토리지 직렬화를 처리해주기 때문에 더 중요한 것들에 집중할 수 있습니다.


스토리지 비용 지불(1 Ⓝ ~ 100kb)

스토리지 비용을 지불하기 위해 계정은 저장되는 데이터 양에 비례하여 잔고의 일부를 잠가야 합니다. 이는 다음을 의미합니다.

  • 더 많은 데이터가 추가되어 상태가 증가하면 ↑, 계정의 잔고는 감소합니다 ↓.
  • 데이터가 삭제되어 상태가 감소하면 ↓, 계정의 잔고는 증가합니다 ↑.

현재 100kb의 데이터 를 저장하는 데 대략 1Ⓝ의 비용이 듭니다.