From a8029c71cdc1adef627b679e22e9b27c8baf51f8 Mon Sep 17 00:00:00 2001 From: Airat Arifullin Date: Wed, 10 May 2023 11:19:19 +0300 Subject: [PATCH] [#21] Document contract storage schemes Signed-off-by: Airat Arifullin a.arifullin@yadro.com --- alphabet/doc.go | 11 +++++++++++ audit/doc.go | 8 ++++++++ balance/doc.go | 9 +++++++++ container/doc.go | 17 +++++++++++++++++ frostfs/doc.go | 10 ++++++++++ frostfsid/doc.go | 9 +++++++++ netmap/doc.go | 13 +++++++++++++ nns/doc.go | 17 +++++++++++++++++ processing/doc.go | 7 +++++++ proxy/doc.go | 5 +++++ reputation/doc.go | 8 ++++++++ 11 files changed, 114 insertions(+) create mode 100644 nns/doc.go diff --git a/alphabet/doc.go b/alphabet/doc.go index 2571e6b..fc7228b 100644 --- a/alphabet/doc.go +++ b/alphabet/doc.go @@ -17,5 +17,16 @@ for each alphabet contract. # Contract notifications Alphabet contract does not produce notifications to process. + +# Contract storage scheme + + | Key | Value | Description | + |--------------------|------------|-------------------------------------------------| + | `netmapScriptHash` | Hash160 | netmap contract hash | + | `proxyScriptHash` | Hash160 | proxy contract hash | + | `name` | string | assigned glagolitic letter | + | `index` | int | the index of deployed alphabet contract | + | `threshold` | int | the total number of deployed alphabet contracts | + */ package alphabet diff --git a/audit/doc.go b/audit/doc.go index 97acfee..15d7039 100644 --- a/audit/doc.go +++ b/audit/doc.go @@ -18,5 +18,13 @@ they make a list and get these AuditResultStructures from the audit contract. # Contract notifications Audit contract does not produce notifications to process. + +# Contract storage scheme + + | Key | Value | Description | + |--------------------|------------|-----------------------------------------------------------| + | `netmapScriptHash` | Hash160 | netmap contract hash | + | auditID | ByteArray | serialized DataAuditResult structure | + */ package audit diff --git a/balance/doc.go b/balance/doc.go index 3879048..d869926 100644 --- a/balance/doc.go +++ b/balance/doc.go @@ -74,5 +74,14 @@ when FrostFS contract has transferred GAS assets back to the user. type: Hash160 - name: amount type: Integer + +# Contract storage scheme + + | Key | Value | Description | + |-----------------------|------------|----------------------------------| + | `netmapScriptHash` | Hash160 | netmap contract hash | + | `containerScriptHash` | Hash160 | container contract hash | + | circulationKey | int | the token circulation key value | + */ package balance diff --git a/container/doc.go b/container/doc.go index 0636b0f..a664234 100644 --- a/container/doc.go +++ b/container/doc.go @@ -64,5 +64,22 @@ it in Container contract. StopEstimation: - name: epoch type: Integer + +# Contract storage scheme + + | Key | Value | Description | + |-----------------------------------------------------------------------------------------------------| + | `netmapScriptHash` | Hash160 | netmap contract hash | + | `balanceScriptHash` | Hash160 | balance contract hash | + | `identityScriptHash` | Hash160 | frostfsID contract hash | + | `nnsContractKey` | Hash160 | nns contract hash | + | `nnsRoot` | string | default value for domain zone | + | `cnr` + epoch + containerID + publicKeyHash[:10] | ByteArray | estimated container size | + | `est` + containerID + publicKeyHash | ByteArray | serialized epochs array | + | `o` + ownerID + containerID | ByteArray | container ID | + | `x` + containerID | ByteArray | serialized container struct | + | `nnsHasAlias` + containerID | string | domain name | + + */ package container diff --git a/frostfs/doc.go b/frostfs/doc.go index 8a312be..35b1e0e 100644 --- a/frostfs/doc.go +++ b/frostfs/doc.go @@ -80,5 +80,15 @@ FrostFS network configuration value. type: ByteArray - name: value type: ByteArray + +# Contract storage scheme + + | Key | Value | Description | + |-----------------------------------------------------------------------------| + | `processingScriptHash` | Hash160 | processing contract hash | + | `candidates` + candidateKey | ByteArray | it flags inner ring candidate | + | `config` + postfix | ByteArray | serialized config data | + + */ package frostfs diff --git a/frostfsid/doc.go b/frostfsid/doc.go index e15832d..1f6a836 100644 --- a/frostfsid/doc.go +++ b/frostfsid/doc.go @@ -16,5 +16,14 @@ contract. # Contract notifications FrostFSID contract does not produce notifications to process. + +# Contract storage scheme + + | Key | Value | Description | + |-----------------------------|------------|----------------------------------| + | `processingScriptHash` | Hash160 | netmap contract hash | + | `containerScriptHash` | Hash160 | container contract hash | + | `o` + ownerID + publicKey | ByteArray | it flags owner's public key | + */ package frostfsid diff --git a/netmap/doc.go b/netmap/doc.go index c352699..88233c1 100644 --- a/netmap/doc.go +++ b/netmap/doc.go @@ -29,5 +29,18 @@ in the network by invoking NewEpoch method. NewEpoch - name: epoch type: Integer + +# Contract storage scheme + + | Key | Value | Description | + |-----------------------------|------------|-----------------------------------| + | `snapshotCount` | int | snapshot count | + | `snapshotEpoch` | int | snapshot epoch | + | `snapshotBlock` | int | snapshot block | + | `snapshot_` + snapshotNum | ByteArray | serialized '[]Node' array | + | `snapshotCurrent` | int | current snapshot | + | `balanceScriptHash` | Hash160 | balance contract hash | + | `containerScriptHash` | Hash160 | container contract hash | + */ package netmap diff --git a/nns/doc.go b/nns/doc.go new file mode 100644 index 0000000..fcce7fb --- /dev/null +++ b/nns/doc.go @@ -0,0 +1,17 @@ +/* + +# Contract storage scheme + + | Key | Value | Description | + |--------------------------------------|------------|-----------------------------------| + | 0x0 | int | total supply of minted domains | + | 0x1 + accountAddr | int | account's balance | + | 0x2 + accountAddr + tokenKey | ByteArray | token ID | + | 0x10 | int | price for domain registration | + | 0x20 | int | set of roots | + | 0x21 + tokenKey | ByteArray | serialized NameState struct | + | 0x22 + tokenKey + Hash160(tokenName) | Hash160 | container contract hash | + +*/ + +package nns diff --git a/processing/doc.go b/processing/doc.go index f6a4979..586b967 100644 --- a/processing/doc.go +++ b/processing/doc.go @@ -18,5 +18,12 @@ execution. # Contract notifications Processing contract does not produce notifications to process. + +# Contract storage scheme + + | Key | Value | Description | + |-----------------------------|------------|----------------------------------| + | `frostfsScriptHash` | Hash160 | frostFS contract hash | + */ package processing diff --git a/proxy/doc.go b/proxy/doc.go index 3201a92..c138cb9 100644 --- a/proxy/doc.go +++ b/proxy/doc.go @@ -17,5 +17,10 @@ verified, Proxy contract pays for the execution. # Contract notifications Proxy contract does not produce notifications to process. + +# Contract storage scheme + +Proxy contract does not use storage + */ package proxy diff --git a/reputation/doc.go b/reputation/doc.go index ad253af..891e084 100644 --- a/reputation/doc.go +++ b/reputation/doc.go @@ -13,5 +13,13 @@ Inner Ring nodes if data audit succeeds. # Contract notifications Reputation contract does not produce notifications to process. + +# Contract storage scheme + + | Key | Value | Description | + |-----------------------------|------------|-----------------------------------| + | `c` + epoch + peerID | int | peer reputation count | + | `r` + count | ByteArray | serialized DataAuditResult struct | + */ package reputation