There are 2 approaches:
1. Use `storage.Find` to enumerate all containers.
2. Store a counter by a separate key.
Here we implemented 1, because this method is readonly (thus GAS cost it
not a problem) and simpler to implement.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
Add notifications to:
- container put, delete, setEACL
- netmap addPeer, updateState
Because notifications are limited in size (currently arguments should be
less than 1024 bytes) provide only minimal information, such as entity
ID (container ID or node public key).
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
Container now stored the same way as ExtendedACL: with
signature and session token. This is required for signature
checks when session token presented.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
Fill in `safemethods` fields in contract config files
with methods that do not change contract storages.
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
Basic income settlements depends on container estimation that
should be collected in P2P communication between storage nodes
and then stored in container contract. To synchronize these
actions there are two separate notification that inner ring
should produce in consensus.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
Sidechain contracts include alphabet contracts for governance
and audit, balance, container, neofsid, netmap, reputation
contracts.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>