forked from TrueCloudLab/frostfs-contract
726e7995fc
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
68 lines
2.1 KiB
Go
68 lines
2.1 KiB
Go
/*
|
|
Container contract is a contract deployed in NeoFS side chain.
|
|
|
|
Container contract stores and manages containers, extended ACLs and container
|
|
size estimations. Contract does not perform sanity or signature checks of the
|
|
containers or extended ACLs, it is done by Alphabet nodes of the Inner Ring.
|
|
Alphabet nodes approve it by invoking the same Put or SetEACL methods with
|
|
the same arguments.
|
|
|
|
Contract notifications
|
|
|
|
containerPut notification. This notification is produced when user wants to
|
|
create new container. Alphabet nodes of the Inner Ring catch notification and
|
|
validate container data, signature and token if it is present.
|
|
|
|
containerPut:
|
|
- name: container
|
|
type: ByteArray
|
|
- name: signature
|
|
type: Signature
|
|
- name: publicKey
|
|
type: PublicKey
|
|
- name: token
|
|
type: ByteArray
|
|
|
|
containerDelete notification. This notification is produced when container owner
|
|
wants to delete container. Alphabet nodes of the Inner Ring catch notification
|
|
and validate container ownership, signature and token if it is present.
|
|
|
|
containerDelete:
|
|
- name: containerID
|
|
type: ByteArray
|
|
- name: signature
|
|
type: Signature
|
|
- name: token
|
|
type: ByteArray
|
|
|
|
setEACL notification. This notification is produced when container owner wants
|
|
to update extended ACL of the container. Alphabet nodes of the Inner Ring catch
|
|
notification and validate container ownership, signature and token if it is
|
|
present.
|
|
|
|
setEACL:
|
|
- name: eACL
|
|
type: ByteArray
|
|
- name: signature
|
|
type: Signature
|
|
- name: publicKey
|
|
type: PublicKey
|
|
- name: token
|
|
type: ByteArray
|
|
|
|
StartEstimation notification. This notification is produced when Storage nodes
|
|
should exchange estimation values of container sizes among other Storage nodes.
|
|
|
|
StartEstimation:
|
|
- name: epoch
|
|
type: Integer
|
|
|
|
StopEstimation notification. This notification is produced when Storage nodes
|
|
should calculate average container size based on received estimations and store
|
|
it in Container contract.
|
|
|
|
StopEstimation:
|
|
- name: epoch
|
|
type: Integer
|
|
*/
|
|
package container
|