diff --git a/netmap/doc.go b/netmap/doc.go index f19d0620..c272d9c5 100644 --- a/netmap/doc.go +++ b/netmap/doc.go @@ -32,3 +32,56 @@ in the network by invoking NewEpoch method. type: Integer */ package netmap + +/* +Contract storage model. + +# Summary +Key-value storage format: + - snapshotEpoch -> int + current epoch + - snapshotBlock -> int + block which "ticked" the current epoch + - snapshotCount -> int + number of stored network maps including current one + - snapshot_ -> std.Serialize([]storageNode) + network map by snapshot ID + - snapshotCurrent -> int + ID of the snapshot representing current network map + - candidate -> std.Serialize(netmapNode) + information about the particular network map candidate + - containerScriptHash -> 20-byte script hash + Container contract reference + - balanceScriptHash -> 20-byte script hash + Balance contract reference + - notary -> bool + is notary mode disabled + - innerring -> []interop.PublicKey + public keys of the Inner Ring members + - config -> []byte + value of the particular NeoFS network parameter + +# Setting +Contract can be deployed in notary and notary-disabled mode. In notary-disable +mode contract stores the Inner Ring members. + +To handle some events, the contract refers to other contracts. + +# Epoch +Contract stores the current (last) NeoFS timestamp for the network within which +the contract is deployed. + +# Network maps +Contract records set of network parties representing the network map. Current +network map is updated on each epoch tick. Contract also holds limited number +of previous network maps (SNAPSHOT_LIMIT). Timestamped network maps are +called snapshots. Snapshots are identified by the numerical ring [0:SNAPSHOT_LIMIT). + +# Network map candidates +Contract stores information about the network parties which were requested +in the network map. + +# Network configuration +Contract stores NeoFS network configuration declared in the NeoFS API protocol. + +*/