Leonard Lyubich
758c455c7e
services/rpcsrv: Test Server
shutdown with failed precondition
...
There is an existing problem with RPC server shutdown freeze after start
failure due to some init actions (at least HTTP listen) described in
#2896 .
Add dedicated unit test which checks that `Shutdown` returns within 5s
after `Start` method encounters internal problems.
Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
2023-08-01 17:27:03 +03:00
Anna Shaleva
c880873105
core: improve documentation to SetOracle/SetNotary
...
I've carefully checked the way how new service can be added to the
Blockchain instance or to be removed from it. Current implemention
of SetNotary and SetOracle methods doesn't contain dangerous code,
and native contracts have atomic values everywhere where service
is stored.
Current implementation of Notary, Oracle and StateRoot services'
reload/disabling/enabling on SIGUSR1 is safe and doesn't require
any adjustment.
This commit closes #2944 , it's not a bug in the code, it's just
stale documentation.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-08-01 17:26:17 +03:00
Anna Shaleva
d5f964f181
config: do not allow negative validators count
...
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-08-01 17:22:39 +03:00
Anna Shaleva
6cd0f78649
config: do not allow zero numbers for validators/committee history
...
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-08-01 17:22:33 +03:00
Anna Shaleva
56b93d279e
config: use uint32 for validators/committee members count
...
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-08-01 17:22:28 +03:00
Anna Shaleva
7028930bd6
network: do not use error channel to start network srv
...
It's obsolete thing, we have looger and it perfectly suits our needs.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-08-01 17:22:01 +03:00
Anna Shaleva
146775213a
CHANGELOG: release 0.101.3
...
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-07-08 11:54:07 +03:00
Anna Shaleva
762a8da76a
core: remove contract script check on deploy/update
...
This check is good and was present here since #1729 , but it was
accidently removed from the reference implementation (see the
discussion in https://github.com/neo-project/neo/issues/2848 ). The
removal of this check from the C# node leaded to the T5 testnet state
diff since 1670095 heigh which causes inability to process new blocks
since 2272533 height (see #3049 ). This check was added back to the
C# node in https://github.com/neo-project/neo/pull/2849 , but it is
planned to be the part of the upcoming 3.6.0 C# node release.
We need to keep our testnet healthy, thus, strict contract script
check will be temporary removed from the node code and is planned
to be added back to be a part of the next 3.6.0-compatible release.
Close #3049 .
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-07-08 11:49:31 +03:00
Roman Khimov
e993003b46
CHANGELOG: release 0.101.2
...
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2023-06-29 12:20:26 +03:00
Anna Shaleva
3bf8192f98
rpcclient: make Notary Actor follow the request creation doc
...
All Notary contract witnesses in incomplete transaction (both main
and fallback) may either have invocation scripts pushing dummy signature
on stack or be empty, both ways are OK. Notary actor keeps main tx's
Notary witness empty and keeps fallback tx's Notary witness filled
with dummy signature.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-06-29 12:04:40 +03:00
Anna Shaleva
60e6fe05a7
docs: improve Notary's till
value documentation
...
Close #2986 .
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-06-29 12:03:51 +03:00
Roman Khimov
70aed34d77
interop/contract: fix state rollbacks for nested contexts
...
Our wrapping optimization relied on the caller context having a TRY block,
but each context (including internal calls!) has an exception handling stack
of its own, which means that for an invocation stack of
entry
A.someMethodFromEntry() # this one has a TRY
A.internalMethodViaCALL() # this one doesn't
B.someMethod()
we get `HasTryBlock() == false` for `A.internalMethodViaCALL()` context, which
leads to missing wrapper and missing rollbacks if B is to THROW. What this
patch does instead is it checks for any context within contract boundaries.
Fixes #3045 .
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2023-06-29 11:58:12 +03:00
Roman Khimov
50c8805034
*: drop legacy addresses from examples
...
They can't even be used now because they'll fail the conversion.
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2023-06-29 11:56:26 +03:00
Anna Shaleva
84b00d46aa
rpc: emit Null in case of Any
parameter with zero-len value
...
Otherwise it leads to the following error in the TestActor_CallWithNilParam:
```
=== RUN TestActor_CallWithNilParam
logger.go:130: 2023-04-03T15:58:27.672+0300 INFO initial gas supply is not set or wrong, setting default value {"InitialGASSupply": "52000000"}
logger.go:130: 2023-04-03T15:58:27.672+0300 INFO P2PNotaryRequestPayloadPool size is not set or wrong, setting default value {"P2PNotaryRequestPayloadPoolSize": 1000}
logger.go:130: 2023-04-03T15:58:27.672+0300 INFO MaxBlockSize is not set or wrong, setting default value {"MaxBlockSize": 262144}
logger.go:130: 2023-04-03T15:58:27.672+0300 INFO MaxBlockSystemFee is not set or wrong, setting default value {"MaxBlockSystemFee": 900000000000}
logger.go:130: 2023-04-03T15:58:27.672+0300 INFO MaxTransactionsPerBlock is not set or wrong, using default value {"MaxTransactionsPerBlock": 512}
logger.go:130: 2023-04-03T15:58:27.672+0300 INFO MaxValidUntilBlockIncrement is not set or wrong, using default value {"MaxValidUntilBlockIncrement": 5760}
logger.go:130: 2023-04-03T15:58:27.675+0300 INFO no storage version found! creating genesis block
logger.go:130: 2023-04-03T15:58:27.675+0300 INFO ExtensiblePoolSize is not set or wrong, using default value {"ExtensiblePoolSize": 20}
logger.go:130: 2023-04-03T15:58:27.675+0300 INFO SessionPoolSize is not set or wrong, setting default value {"SessionPoolSize": 20}
logger.go:130: 2023-04-03T15:58:27.675+0300 INFO MaxWebSocketClients is not set or wrong, setting default value {"MaxWebSocketClients": 64}
logger.go:130: 2023-04-03T15:58:27.675+0300 INFO starting rpc-server {"endpoint": "localhost:0"}
logger.go:130: 2023-04-03T15:58:27.677+0300 DEBUG done processing headers {"headerIndex": 1, "blockHeight": 0, "took": "436.313µs"}
logger.go:130: 2023-04-03T15:58:27.679+0300 DEBUG done processing headers {"headerIndex": 2, "blockHeight": 1, "took": "272.891µs"}
logger.go:130: 2023-04-03T15:58:27.680+0300 DEBUG done processing headers {"headerIndex": 3, "blockHeight": 2, "took": "276.949µs"}
logger.go:130: 2023-04-03T15:58:27.681+0300 DEBUG done processing headers {"headerIndex": 4, "blockHeight": 3, "took": "286.028µs"}
logger.go:130: 2023-04-03T15:58:27.681+0300 DEBUG done processing headers {"headerIndex": 5, "blockHeight": 4, "took": "268.673µs"}
logger.go:130: 2023-04-03T15:58:27.681+0300 INFO bad notification {"contract": "565cff9508ebc75aadd7fe59f38dac610ab6093c", "event": "Transfer", "error": "parameter 0 type mismatch: Hash160 vs ByteString"}
logger.go:130: 2023-04-03T15:58:27.682+0300 DEBUG done processing headers {"headerIndex": 6, "blockHeight": 5, "took": "380.988µs"}
logger.go:130: 2023-04-03T15:58:27.683+0300 DEBUG done processing headers {"headerIndex": 7, "blockHeight": 6, "took": "273.543µs"}
logger.go:130: 2023-04-03T15:58:27.683+0300 DEBUG done processing headers {"headerIndex": 8, "blockHeight": 7, "took": "275.163µs"}
logger.go:130: 2023-04-03T15:58:27.684+0300 DEBUG done processing headers {"headerIndex": 9, "blockHeight": 8, "took": "259.578µs"}
logger.go:130: 2023-04-03T15:58:27.685+0300 DEBUG done processing headers {"headerIndex": 10, "blockHeight": 9, "took": "266.882µs"}
logger.go:130: 2023-04-03T15:58:27.686+0300 DEBUG done processing headers {"headerIndex": 11, "blockHeight": 10, "took": "295.3µs"}
logger.go:130: 2023-04-03T15:58:27.687+0300 DEBUG done processing headers {"headerIndex": 12, "blockHeight": 11, "took": "295.568µs"}
logger.go:130: 2023-04-03T15:58:27.688+0300 DEBUG done processing headers {"headerIndex": 13, "blockHeight": 12, "took": "258.197µs"}
logger.go:130: 2023-04-03T15:58:27.689+0300 DEBUG done processing headers {"headerIndex": 14, "blockHeight": 13, "took": "261.602µs"}
logger.go:130: 2023-04-03T15:58:27.689+0300 DEBUG done processing headers {"headerIndex": 15, "blockHeight": 14, "took": "268.922µs"}
logger.go:130: 2023-04-03T15:58:27.690+0300 DEBUG done processing headers {"headerIndex": 16, "blockHeight": 15, "took": "276.176µs"}
logger.go:130: 2023-04-03T15:58:27.691+0300 DEBUG done processing headers {"headerIndex": 17, "blockHeight": 16, "took": "256.068µs"}
logger.go:130: 2023-04-03T15:58:27.692+0300 DEBUG done processing headers {"headerIndex": 18, "blockHeight": 17, "took": "262.303µs"}
logger.go:130: 2023-04-03T15:58:27.692+0300 DEBUG done processing headers {"headerIndex": 19, "blockHeight": 18, "took": "265.087µs"}
logger.go:130: 2023-04-03T15:58:27.693+0300 DEBUG done processing headers {"headerIndex": 20, "blockHeight": 19, "took": "260.758µs"}
logger.go:130: 2023-04-03T15:58:27.694+0300 DEBUG done processing headers {"headerIndex": 21, "blockHeight": 20, "took": "263.482µs"}
logger.go:130: 2023-04-03T15:58:27.694+0300 DEBUG done processing headers {"headerIndex": 22, "blockHeight": 21, "took": "327.812µs"}
logger.go:130: 2023-04-03T15:58:27.696+0300 DEBUG done processing headers {"headerIndex": 23, "blockHeight": 22, "took": "284.104µs"}
logger.go:130: 2023-04-03T15:58:27.697+0300 WARN contract invocation failed {"tx": "82279bfe9bada282ca0f8cb8e0bb124b921af36f00c69a518320322c6f4fef60", "block": 23, "error": "at instruction 0 (ABORT): ABORT"}
logger.go:130: 2023-04-03T15:58:27.697+0300 DEBUG processing rpc request {"method": "getversion", "params": "[]"}
logger.go:130: 2023-04-03T15:58:27.698+0300 DEBUG processing rpc request {"method": "invokefunction", "params": "[565cff9508ebc75aadd7fe59f38dac610ab6093c putValue ]"}
client_test.go:2562:
Error Trace: /home/anna/Documents/GitProjects/nspcc-dev/neo-go/pkg/services/rpcsrv/client_test.go:2562
Error: Should be true
Test: TestActor_CallWithNilParam
Messages: at instruction 6 (PACK): OPACK: invalid length
logger.go:130: 2023-04-03T15:58:27.699+0300 INFO shutting down RPC server {"endpoint": "127.0.0.1:46005"}
logger.go:130: 2023-04-03T15:58:27.700+0300 INFO persisted to disk {"blocks": 23, "keys": 1236, "headerHeight": 23, "blockHeight": 23, "took": "908.825µs"}
--- FAIL: TestActor_CallWithNilParam (0.03s)
FAIL
```
See also the ref. df534f6b0c/src/Neo/SmartContract/ContractParameter.cs (L141)
and the way how parameters are handled by ref. RPC server:
4b3a76e1b7/src/RpcServer/RpcServer.SmartContract.cs (L202)
and FromJSON implementation:
df534f6b0c/src/Neo/SmartContract/ContractParameter.cs (L70)
2023-06-29 11:51:40 +03:00
Roman Khimov
7306beca4d
Merge pull request #2939 from nspcc-dev/release-0.101.1
...
Release 0.101.1
2023-03-17 12:48:24 +03:00
Roman Khimov
e3d8772f57
ROADMAP: correct schedule
...
We'll keep old RPC APIs in 0.102.0, they're still used in the wild.
2023-03-17 12:22:35 +03:00
Roman Khimov
5a34e819e9
CHANGELOG: release 0.101.1
2023-03-17 12:22:35 +03:00
Roman Khimov
fa392aa5ff
CHANGELOG: fix 0.101.0 release date
2023-03-17 12:22:35 +03:00
Roman Khimov
0d5613cfcb
Merge pull request #2938 from nspcc-dev/failing-actor-test
...
actor: don't close already closed channel, fix #2932
2023-03-17 11:46:31 +03:00
Roman Khimov
da7eafd4c7
Merge pull request #2937 from nspcc-dev/copy-wsclient-filters
...
Copy wsclient filters
2023-03-17 10:49:13 +03:00
Roman Khimov
e197f3faef
rpcclient: copy subscription params, fix #2890
...
Clients can change things and we better be safe here.
2023-03-17 10:33:30 +03:00
Roman Khimov
e84ea0207d
actor: don't close already closed channel, fix #2932
...
Waiter should close its channels, but WSClient can also do that and it can do
that in a drain loop as well.
2023-03-17 09:57:41 +03:00
Roman Khimov
1a4da8c462
neorpc: add Copy to filters for easy deep copying
2023-03-16 23:43:00 +03:00
Roman Khimov
8acff056a9
Merge pull request #2936 from nspcc-dev/minor-doc-fixes-for-0.101.1
...
Minor doc fixes for 0.101.1
2023-03-16 21:37:06 +03:00
Roman Khimov
74623e64bc
rpcclient: improve wsclient doc, fix #2895
2023-03-16 21:27:35 +03:00
Roman Khimov
88c1e65b5b
Merge pull request #2935 from nspcc-dev/dbft-upd
...
gomod: fetch dbft fix of committed nodes counting
2023-03-16 09:25:31 +03:00
Anna Shaleva
c2c2a49732
gomod: fetch dbft fix of committed nodes counting
2023-03-16 09:09:17 +03:00
Roman Khimov
44e84a5943
stateroot: fix spelling and enhance FindStates doc, fix #2925
2023-03-15 22:55:19 +03:00
Roman Khimov
a8aa29727b
Merge pull request #2930 from nspcc-dev/addblock-lock
...
consensus: prevent AddBlock lock caused by consensus service
2023-03-15 17:59:48 +03:00
Anna Shaleva
c7566c2a01
consensus: perform batched chain's block sync
...
If there are several blocks from chain, then initialize consensus only for the
latest one.
2023-03-15 17:45:56 +03:00
Anna Shaleva
0b352349eb
consensus: adjust TestService_NextConsensus after dBFT upgrade
2023-03-15 17:37:47 +03:00
Anna Shaleva
04de604afd
gomod: fetch dBFT fix from https://github.com/roman-khimov/dbft/pull/4
...
And other dBFT updates happened since nspcc-dev was blocked.
2023-03-15 17:37:47 +03:00
Anna Shaleva
0cbef58b3c
consensus: enqueue newly created blocks
...
Do not add them directly to chain, it will be done by the block queue
manager. Close https://github.com/nspcc-dev/neo-go/issues/2923 . However,
this commit is not valid without
https://github.com/roman-khimov/dbft/pull/4 .
It's the neo-go's duty to initialize consensus after subsequent block
addition; the dBFT itself must wait for the neo-go to complete the block
addition and notify the dBFT, so that it can initialize at 0-th view to
collect the next block.
2023-03-15 17:37:47 +03:00
Anna Shaleva
04d0b45ceb
network: move blockqueue to a separate package
2023-03-15 17:37:47 +03:00
Anna Shaleva
91a77c25a2
network: refactor blockqueuer interface
...
Remove unused argument.
2023-03-15 17:37:47 +03:00
Anna Shaleva
e57e74692f
consensus: drain block notification channel after each message
...
Make blockchain lock less possible.
2023-03-15 17:37:47 +03:00
Anna Shaleva
ea46943815
services: use buffered channels for block subscription
...
Add a tiny buffer where possible to avoid Blockchain's blocking
on new block addition.
2023-03-15 17:37:47 +03:00
Roman Khimov
97c7023020
Merge pull request #2933 from nspcc-dev/fix-linter
...
*: add nolint comments to multiple errors wrapping
2023-03-15 16:57:43 +03:00
Anna Shaleva
5f6c01336c
*: add nolint comments to multiple errors wrapping
...
To be enabled after go 1.20 support is added.
2023-03-15 16:38:01 +03:00
Roman Khimov
1db90e538f
Merge pull request #2929 from nspcc-dev/dependabot/go_modules/examples/nft-nd-nns/golang.org/x/crypto-0.1.0
...
build(deps): bump golang.org/x/crypto from 0.0.0-20210711020723-a769d52b0f97 to 0.1.0 in /examples/nft-nd-nns
2023-03-14 18:24:15 +03:00
dependabot[bot]
8329f29cde
build(deps): bump golang.org/x/crypto in /examples/nft-nd-nns
...
Bumps [golang.org/x/crypto](https://github.com/golang/crypto ) from 0.0.0-20210711020723-a769d52b0f97 to 0.1.0.
- [Release notes](https://github.com/golang/crypto/releases )
- [Commits](https://github.com/golang/crypto/commits/v0.1.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-03-13 22:30:12 +00:00
Roman Khimov
31ee21a83a
Merge pull request #2924 from nspcc-dev/drain-queues-on-disconnect
...
network: drain send queues on peer disconnection
2023-02-21 17:12:23 +03:00
Roman Khimov
4f708c037d
network: drain send queues on peer disconnection
...
Fix potential memory leak with a lot of connected clients that keep requesting
things from node and then disconnect.
2023-02-21 16:19:06 +03:00
Roman Khimov
510bc91804
Merge pull request #2922 from nspcc-dev/fix-typo
...
network: fix grammar typo in the error message
2023-02-20 12:45:44 +03:00
Anna Shaleva
da757fa387
network: fix grammar typo in the error message
2023-02-20 11:08:07 +03:00
Roman Khimov
475d9de2d5
Merge pull request #2916 from nspcc-dev/not-so-local-client
...
Not so local RPC client
2023-02-20 10:38:30 +03:00
Roman Khimov
d54418bad0
Merge pull request #2920 from nspcc-dev/fix-seek-doc
...
core: adjust the documentation of SeekRange's Prefix field
2023-02-18 23:18:39 +03:00
Roman Khimov
08c42c1d00
Merge pull request #2919 from nspcc-dev/dependabot/go_modules/golang.org/x/net-0.7.0
...
build(deps): bump golang.org/x/net from 0.3.0 to 0.7.0
2023-02-18 23:17:40 +03:00
Roman Khimov
b945f22b13
Merge pull request #2918 from nspcc-dev/any-wrapper-fix
...
rpcbinding: fix wrappers for Any type, fix #2898
2023-02-18 23:15:15 +03:00
Anna Shaleva
09186127da
core: adjust the documentation of SeekRange's Prefix field
...
It is used in different context (seeking through the storage or
through the contract storage), and sometimes empty prefix is not
supported.
2023-02-18 21:06:30 +03:00