Commit graph

130 commits

Author SHA1 Message Date
Leonard Lyubich
d95bc53589 [#269] netmap: Return same type from reading methods
There is a need to return similar structure of information about the
storage nodes from the contract storage readers. In previous
implementation some methods didn't return node state which can differ
with the one encoded in the node's BLOB.

Define `Node` structure of the information about the storage nodes
recorded in the contract storage. Return `[]Node` from all related
methods.

Also improve docs of touched contract methods.

Signed-off-by: Leonard Lyubich <ctulhurider@gmail.com>
2022-09-30 17:31:58 +04:00
Evgenii Stratonikov
9785f9b2c7 [#271] netmap: Allow to move node back to Online state
Signed-off-by: Evgenii Stratonikov <evgeniy@morphbits.ru>
2022-09-21 07:29:44 +03:00
Evgenii Stratonikov
cb684994fc [#269] netmap: Support Maintenance node state
Signed-off-by: Evgenii Stratonikov <evgeniy@morphbits.ru>
2022-09-21 07:29:44 +03:00
Evgenii Stratonikov
b4fdd854b7 [#259] nns: Check admin in Renew
Signed-off-by: Evgenii Stratonikov <evgeniy@morphbits.ru>
2022-08-29 12:03:24 +03:00
Evgenii Stratonikov
5b5ff8cb33 [#261] nns: Set expiration time based on arguments
Signed-off-by: Evgenii Stratonikov <evgeniy@morphbits.ru>
2022-08-29 12:03:24 +03:00
Evgenii Stratonikov
f1f2101dc6 [#242] container: allow to fetch total amount of countainers
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>
2022-05-24 13:31:18 +03:00
Elizaveta Chichindaeva
335b04d9a6 [#240] English Check
Signed-off-by: Elizaveta Chichindaeva <elizaveta@nspcc.ru>
2022-04-26 23:22:06 +03:00
Evgenii Stratonikov
4a0f0d7408 [#232] netmap: Allow to configure snapshot history size
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-29 09:44:38 +03:00
Evgenii Stratonikov
33d5568511 [#234] *: Fix some lint issues
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-28 10:27:25 +03:00
Evgenii Stratonikov
01a7163d1e [#229] netmap: Improve UpdateState in notary-enabled environment
Require `UpdateState` to be called by both storage node and the alphabet
in notary-enabled environment, fail if only one of the signatures is present.
`UpdateStateIR` can be use for force updates by the alphabet.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-22 12:56:16 +03:00
Evgenii Stratonikov
666e1d6d8d [#224] netmap: Add tests for NewEpoch
Ensure snapshots are handled properly.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-21 18:57:43 +03:00
Evgenii Stratonikov
f6766a144f [#225] netmap: Do not emit some events in notary-enabled mode
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-17 16:32:20 +03:00
Evgenii Stratonikov
a4f9d52cfc [#225] netmap: Rename Register to AddPeerIR
Similar to `UpdateState`/`UpdateStateIR` pair.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-17 16:32:20 +03:00
Evgenii Stratonikov
9662f9f4db [#225] netmap: Split UpdateState method for notary-enabled environment
Split methods similar to `AddPeer`/`Register` pair from b104a2ccbc .

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-17 16:32:20 +03:00
Pavel Karpy
912eaab8d8 [#198] test: Adopt neotest changes
This reverts commit 8418183498.

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-01-21 11:03:47 +03:00
Evgenii Stratonikov
676daa1782 [#215] container: remove old estimations when adding new ones
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-01-21 10:39:30 +03:00
Evgenii Stratonikov
7bca6bf782 [#215] container/tests: add tests for container size estimation
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-01-21 10:39:30 +03:00
Evgenii Stratonikov
53f102344f [#215] container/tests: add helper for dummy container creation
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-01-21 10:39:30 +03:00
Alex Vanin
8418183498 Revert "[#198] test: Adopt neotest changes"
This reverts commit 17907f9457.
2022-01-14 10:59:25 +03:00
Pavel Karpy
17907f9457 [#198] test: Adopt neotest changes
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-12-14 14:51:43 +03:00
Alex Vanin
39fc2b8ac4 [#194] container: Fix tests
One can't register domain in advance when zone
owner is container contract.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-12-08 18:19:07 +03:00
Pavel Karpy
9b50e1bb88 [#192] processing: Add processing contract test
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-12-07 11:28:51 +03:00
Pavel Karpy
c840498b6f [#192] alphabet: Add alphabet contract tests
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-12-07 11:28:51 +03:00
Pavel Karpy
e14ffbe68b [#192] proxy: Add proxy contract tests
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-12-07 11:28:51 +03:00
Evgenii Stratonikov
b104a2ccbc [#154] netmap: implement Register method
For notary-disabled environment it makes sense to split node
registration and actual candidate update into separate methods.
This way we have less complicate logic in `AddPeer` and overall
registration flow is more understandable.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-12-06 11:03:33 +03:00
Evgenii Stratonikov
4248424a44 nns: disallow conflicting records on register
Require no records '*.domain' to be present when registering domain.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-12-02 14:14:22 +03:00
Evgenii Stratonikov
f12c44fc78 nns: allow to register arbitrary-level domains
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-12-02 14:14:22 +03:00
Evgenii Stratonikov
b2559857f6 [#101] neofs: allow to register multiple candidates per block
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-11-30 16:24:23 +03:00
Pavel Karpy
2ee2344e5f [#184] *: Move all panics on witness checks in common
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-11-30 12:14:19 +03:00
Pavel Karpy
ac89694eeb [#184] *: Remove method prefix in panic messages
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-11-30 12:14:19 +03:00
Evgenii Stratonikov
c7a02f0259 [#180] nns: allow hyphen in names
Both amazon bucket naming rules and DNS label names prohibit hyphen as
first or last character, but allow it in the middle.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-11-30 11:50:40 +03:00
Pavel Karpy
293ca36ff4 [#174] subnet: Do not panic while doing operation that are already done
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-11-25 13:02:25 +03:00
Pavel Karpy
76933df0a9 [#174] subnet: Delete method prefix check in error tests
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-11-25 13:02:25 +03:00
Pavel Karpy
bd2d1cdf86 [#174] subnet: Add comments to version dependent format checks
Also add `groupID` format checks.

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-11-25 13:02:25 +03:00
Pavel Karpy
c0636ff0ee [#174] subnet: Make len(subnetID) constant and fix its value
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-11-25 13:02:25 +03:00
Pavel Karpy
c4ff617525 [#174] subnet: Rename ErrSubNotExist -> ErrNotExist
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-11-25 13:02:25 +03:00
Pavel Karpy
9e2842b4ad [#174] subnet: Add UserAllowed method
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-11-25 13:02:25 +03:00
Pavel Karpy
a7a272ad08 [#174] subnet: Add RemoveUser method
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-11-25 13:02:25 +03:00
Pavel Karpy
9a05e213eb [#174] subnet: Add AddUser method
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-11-25 13:02:25 +03:00
Pavel Karpy
cc7d98d45e [#174] subnet: Add RemoveClientAdmin method
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-11-25 13:02:25 +03:00
Pavel Karpy
0d45d83450 [#174] subnet: Add AddClientAdmin method
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-11-25 13:02:25 +03:00
Pavel Karpy
b5db977e62 [#174] subnet: Add NodeAllowed method
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-11-25 13:02:25 +03:00
Pavel Karpy
4b47bfadcd [#174] subnet: Add RemoveNode method
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-11-25 13:02:25 +03:00
Pavel Karpy
18b5e56727 [#174] subnet: Add AddNode method
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-11-25 13:02:25 +03:00
Pavel Karpy
cee4dd76dc [#174] subnet: Add RemoveNodeAdmin method
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-11-25 13:02:25 +03:00
Pavel Karpy
df6cc4f8b7 [#174] subnet: Add AddNodeAdmin method
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-11-25 13:02:25 +03:00
Evgenii Stratonikov
445c0a6087 nns: add test for TLD record registration
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-11-24 16:38:04 +03:00
Evgenii Stratonikov
870db4a81a [#122] subnet: implement delete method
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-11-22 10:30:35 +03:00
Evgenii Stratonikov
ed6f90c180 [#122] subnet: implement put method
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-11-22 10:30:35 +03:00
Evgenii Stratonikov
6250e5eaf7 [#122] subnet: add contract skeleton
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-11-22 10:30:35 +03:00
Evgenii Stratonikov
75bb382f7b [#101] neofsid: allow to have multiple AddKey per block
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-11-19 16:06:23 +03:00
Evgenii Stratonikov
c4212e7d2f [#101] reputation: allow Put in multiple tx per block
`listByEpoch` now returns only peer identifiers.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-11-19 15:23:59 +03:00
Evgenii Stratonikov
99c81fe26a [#165] nns: disallow duplicating records
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-11-19 10:36:05 +03:00
Evgenii Stratonikov
370720c83b [#161] netmap: fix tests
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-11-19 09:54:11 +03:00
Leonard Lyubich
68eac87e64 [#154] netmap: allow only alphabet calls in updateState
This reverts commit a9503b5c
2021-11-16 17:26:26 +03:00
Evgenii Stratonikov
8553320e1c [#161] tests: reuse neo-go testing framework
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-11-15 18:13:24 +03:00
Evgenii Stratonikov
63673a5e54 [#139] nns: allow to resolve FQDN
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-26 14:00:28 +03:00
Evgenii Stratonikov
05d372e882 [#139] nns: check domain expiration for read functions
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-26 14:00:28 +03:00
Evgenii Stratonikov
552def9322 [#139] nns: require admin signature for registering subdomain
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-26 14:00:28 +03:00
Evgenii Stratonikov
e0dbd07f21 [#139] nns: replace root with TLD
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-26 14:00:28 +03:00
Evgenii Stratonikov
2cb10edfd2 [#142] container: do not fail when deleting missing container
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-25 18:10:47 +03:00
Evgenii Stratonikov
6bd088aa9f [#142] container: panic on missing container
Return more descriptive error message for a user.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-25 18:10:47 +03:00
Evgenii Stratonikov
654fc371fd [#142] tests: fix container owner offset
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-25 18:10:47 +03:00
Evgenii Stratonikov
8c8e4a6d85 [#156] container: fix domain owner check
Container contract owns all registered domains.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-22 09:08:13 +03:00
Evgenii Stratonikov
a9503b5cf8 Revert "[#152] netmap: allow only alphabet calls in updateState"
This reverts commit e1ee1c203c.
2021-10-19 17:46:26 +03:00
Evgenii Stratonikov
81c12b3f24 Revert "[#152] netmap: allow only alphabet calls in addPeer"
This reverts commit c008910157.
2021-10-19 17:46:26 +03:00
Evgenii Stratonikov
c5e026c6e7 [#151] netmap: allow to update config values in _deploy
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-19 13:11:53 +03:00
Evgenii Stratonikov
c957b9ca69 [#151] container: require additional fee for nice-name
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-19 13:11:53 +03:00
Evgenii Stratonikov
e1ee1c203c [#152] netmap: allow only alphabet calls in updateState
If notary is enabled only alphabet calls are expected.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-19 12:46:19 +03:00
Evgenii Stratonikov
c008910157 [#152] netmap: allow only alphabet calls in addPeer
If notary is enabled only alphabet calls are expected.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-19 12:46:19 +03:00
Evgenii Stratonikov
a72392f672 [#146] netmap: allow to update peer info
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-19 12:02:19 +03:00
Evgenii Stratonikov
7fe7188e7d [#150] container: allow only alphabet calls in SetEACL
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-19 11:51:16 +03:00
Evgenii Stratonikov
0ef906fb03 [#150] container: allow only alphabet calls in Delete
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-19 11:51:16 +03:00
Evgenii Stratonikov
e5c5cc30c0 [#150] container: make config key public
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-19 11:51:16 +03:00
Evgenii Stratonikov
fef6a6cb36 [#150] container: check domain owner in Put
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-19 11:51:16 +03:00
Evgenii Stratonikov
16f3281198 [#150] tests: add container type in tests
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-19 11:51:16 +03:00
Evgenii Stratonikov
a7601334f7 [#150] container: allow only alphabet calls in Put
For notary-enabled environment we expect `put` to be signed by alphabet.
Also group notary-disabled logic inside a single if and
add tests for balance checks.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-19 11:51:16 +03:00
Evgenii Stratonikov
cd005e54a4 [#135] tests: check container nice-name registration
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-07 12:25:19 +03:00
Evgenii Stratonikov
b5d5963b38 [#135] tests: cache compiled contracts
Speedup tests a bit.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-07 12:25:19 +03:00
Evgenii Stratonikov
6a6d377259 [#137] tests: implement contract testing framework
Create simple running blockchain node with a single validator and
test both contract deployment and method invocations.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-10-05 10:01:27 +03:00