Commit graph

1270 commits

Author SHA1 Message Date
Leonard Lyubich
2b89b7e798 [#419] rpc/client: Block until client connection is up
In previous implementation `Client` didn't block until the connection is
up on dial stage. This caused the dial timeout to have no effect.

Provide `WithBlock` dial option to `DialContext` call in `openGRPCConn`
method. From now `Client` blocks for configured timeout until the
connection is up.

Signed-off-by: Leonard Lyubich <ctulhurider@gmail.com>
2022-10-05 13:35:43 +04:00
Leonard Lyubich
5fc2644c68 [#416] session: Support new format of object session context
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-10-04 18:29:57 +04:00
Leonard Lyubich
504e427c18 [#417] rpc/client: Do not use deprecated code elements
`grpc.WithInsecure` has been marked as deprecated in earlier releases of
`google.golang.org/grpc`.

Use `google.golang.org/grpc/credentials/insecure` package instead as
recommended.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-09-23 10:30:59 +04:00
Leonard Lyubich
49bf6b24b0 [#417] storagegroup: Mark all expiration methods as deprecated
`expiration_epoch` field of `StorageGroup` message has been marked as
deprecated in previous NeoFS API protocol's release.

Mark all method related to the field as deprecated. Leave and use them
for test purposes only.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-09-23 10:30:59 +04:00
Leonard Lyubich
cf868188ef [#418] netmap: Support NetmapService.NetmapSnapshot RPC
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-09-19 16:44:34 +04:00
Evgenii Stratonikov
f3e1f8ae7a [#415] go.mod: Update grpc dependency
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-09-16 18:50:53 +04:00
Evgenii Stratonikov
ea7a3811bf [#415] *: Add maintenance status and node state
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-09-16 18:50:53 +04:00
Evgenii Stratonikov
1853349f22 [#415] *: Go fmt -s
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-09-16 18:50:53 +04:00
Pavel Karpy
fcf1d02afc [#414] make: Fix commit abbrev length in version
Make it uniform across all our repos.

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-09-06 17:33:19 +04:00
Evgenii Stratonikov
9e17cdfc76 [#413] util/proto: Marshal repeated []byte fields correctly
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-08-27 11:06:58 +03:00
Evgenii Stratonikov
98db3fa284 [#412] storagegroup: Remove linter warning
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-08-18 12:49:51 +03:00
Evgenii Stratonikov
9fe5c0736d [#412] .github: Update actions to the latest version
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-08-18 12:49:51 +03:00
Evgenii Stratonikov
f0b3576146 [#412] go.mod: Update minimal go version to 1.17
Also, update github actions accordingly.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-08-18 12:49:51 +03:00
Evgenii Stratonikov
146dd904dd [#412] go.mod: Update neofs-crypto dependency
Fix panic in signature marshaling.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-08-18 12:49:51 +03:00
e87a523bb2 [#411] Filter version tags for version calculation
Signed-off-by: anikeev-yadro <a.anikeev@yadro.com>
2022-08-12 16:28:59 +03:00
Pavel Karpy
882c4ab76c Release v2.13.1
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-08-01 19:23:15 +03:00
Pavel Karpy
5744605fc6 [#409] status: Support EACL_NOT_FOUND status code
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-08-01 19:12:43 +03:00
Leonard Lyubich
cdce7edc39 Release v2.13.0 - Yeonpyeongdo (연평도, 延坪島)
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-07-04 17:49:02 +03:00
Pavel Karpy
bb9fc5bfab [#405] status: Support signature status
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-06-30 18:52:22 +03:00
Pavel Karpy
c6f7ab3ef1 [#399] container: Support homomorphic hash disabling
Container could now have "__NEOFS__DISABLE_HOMOMORPHIC_HASHING" well-known
attribute. Setting that to "true" means disabling homomorphic hashing for
objects that belong to that container, any other cases mean that homomorphic
hashing is enabled.

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-06-30 13:05:06 +03:00
Pavel Karpy
417fd3a08b [#407] object: Add OUT_OF_RANGE status
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-06-30 08:19:57 +03:00
Pavel Karpy
1cd3a43d5b [#407] *: Regenerate v2.13.0 API
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-06-30 08:19:57 +03:00
Evgenii Stratonikov
dd233c3fbc [#386] util/signature: Add WalletConnect API support
To avoid introducing new dependency (neo-go), crypto routines are used
as in other code.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-06-21 20:09:33 +03:00
Pavel Karpy
f9a91e5f33 [#404] *: Regenerate code after language fixes
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-06-21 14:08:31 +03:00
Evgenii Stratonikov
454b5c0ed7 [#406] protogen: Uncomment control service line
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-06-20 14:45:58 +03:00
Leonard Lyubich
79902c1c6f Release v2.12.2
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-06-03 17:02:14 +03:00
Leonard Lyubich
c82dcf7e16 [#401] internal: Place randomization code in random package
Also replace seeding into `init` function.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-05-30 22:02:58 +03:00
Leonard Lyubich
02e962f727 [#401] object: Fix GetRangeResponseBody.FromGRPCMessage
Pass `SplitInfo` field of `GetRangeResponse_Body_SplitInfo` message into
`SplitInfo` decoder.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-05-30 22:02:58 +03:00
Leonard Lyubich
d35e935a9d [#401] test: Randomize value for oneof field
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-05-30 22:02:58 +03:00
fyrchik
0b8e4e4753
[#400] Support latest API in protoc plugin (#400)
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-05-30 10:33:01 +03:00
Pavel Karpy
870c1ffc0a [#397] refs: Fix OIDs marshalling
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-04-27 09:45:03 +03:00
Evgenii Stratonikov
3d3283411c [#393] signature: Do not allocate a signature explicitly
Helpers from `util/signature` already allocates it for us.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-04-21 15:11:57 +03:00
Evgenii Stratonikov
77a3ba9197 [#393] util/signature: Remove bytes pool and provide buffer explicitly
Chained verification is done in a single thread there is no need to use
pool to do this. Also because newly allocated items are 5 MiB in size
we can run out of memory given that typical header it much less in size.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-04-21 15:11:57 +03:00
Evgenii Stratonikov
e8e09f0d00 [#393] rpc/grpc: Use NewTimer instead of time.After
From the docs of `time.After`:
```
The underlying Timer is not recovered by the garbage collector until the timer fires.
```
We have 1 minute default timeout, which is pretty long given that most
of the time we exchange small messages.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-04-21 15:11:57 +03:00
Evgenii Stratonikov
23702bc51a util/protogen: add StableMarshal generator command
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-04-21 15:07:57 +03:00
Evgenii Stratonikov
e348c933b7 util/proto: fix doc comment
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-04-21 15:07:57 +03:00
Evgenii Stratonikov
2aacaa6aba refs: optimize marshalin of []ObjectID
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-04-21 15:07:57 +03:00
Evgenii Stratonikov
94f068e462 *: remove error from StableMarshal return values
We marshal only in-memory structures, no error is expected.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-04-21 15:07:57 +03:00
Evgenii Stratonikov
84d981e88e util/proto: do not return error from primitive marshalers
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-04-21 15:07:57 +03:00
Evgenii Stratonikov
732dd51b1b [#388] *: Remove nil check from setters
I knew one day `sed` would save me an hour of manual work:
```
sed -i -n -e '
s/) Set/) Set/
p
t setter
b end
:setter
    n
    s/nil/nil/
    t hasif
    p
    b end
    :hasif
        n
        :loop
        p
        n
        s/}/}/
        t end
        b loop
        :end
' $@
goimports -w $@
```

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-31 11:32:04 +03:00
Alex Vanin
50162741ac Release v2.12.1
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2022-03-15 17:01:15 +03:00
Alex Vanin
18a31bc68e Retract v2.12.0
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2022-03-15 17:01:15 +03:00
Evgenii Stratonikov
43fd3cfb4f [#376] status: Remove pointer from Detail slice
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00
Evgenii Stratonikov
0cab407378 [#376] reputation: Remove pointers from slices
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00
Evgenii Stratonikov
30c530e83d [#376] container: Remove pointers from slices
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00
Evgenii Stratonikov
aa1e092ca5 [#376] object: Remove pointer from slices
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00
Evgenii Stratonikov
e21a7823c5 [#376] session: Make XHeader slice non-pointer
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00
Evgenii Stratonikov
6f4908edc2 [#376] netmap: Make attributes a non-pointer slice
The speed of copying (which is done regulary for e.g. subnet changes)
is less, however it isn't on the hot path and the absolute time
difference is insignificant.
```
name              old time/op    new time/op    delta
NodeAttributes-8    96.2ns ± 1%   158.3ns ± 1%  +64.61%  (p=0.000 n=10+10)

name              old alloc/op   new alloc/op   delta
NodeAttributes-8     32.0B ± 0%     32.0B ± 0%     ~     (all equal)

name              old allocs/op  new allocs/op  delta
NodeAttributes-8      2.00 ± 0%      2.00 ± 0%     ~     (all equal)
```

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00
Evgenii Stratonikov
2f0eee96fc [#376] netmap: Replace slices of pointers with structs
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00
Evgenii Stratonikov
ec484f2fd2 [#376] acl: Replace slices of pointers with raw structs
```
name                                     old time/op    new time/op    delta
Table_ToGRPCMessage/to_grpc_message-8      2.82µs ± 5%    2.86µs ± 5%     ~     (p=0.395 n=10+8)
Table_ToGRPCMessage/from_grpc_message-8    2.47µs ± 5%    1.08µs ± 6%  -56.16%  (p=0.000 n=9+9)

name                                     old alloc/op   new alloc/op   delta
Table_ToGRPCMessage/to_grpc_message-8      3.31kB ± 0%    3.31kB ± 0%     ~     (all equal)
Table_ToGRPCMessage/from_grpc_message-8    1.82kB ± 0%    1.38kB ± 0%  -24.56%  (p=0.000 n=10+10)

name                                     old allocs/op  new allocs/op  delta
Table_ToGRPCMessage/to_grpc_message-8        46.0 ± 0%      46.0 ± 0%     ~     (all equal)
Table_ToGRPCMessage/from_grpc_message-8      45.0 ± 0%       9.0 ± 0%  -80.00%  (p=0.000 n=10+10)
```

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00