Roman Khimov
dfd4f6978f
bigint: don't reallocate big.Int in ToBytes(), fix #2864
...
In some cases n.Add() can reuse the []Word buffer and n.Sub() reallocate it
away. If that happens, we're out of luck with 0.99.0+ versions (since
3945e81857
). I'm not sure why it does that, bit
width doesn't change in most of the cases and even if it does, we still have
enough of it in cap() to hold the old Abs() value (when we have a negative
value we in fact decreate its Abs() first and increase it back
afterwards). Still, that's what we have.
So when we have processTokenTransfer() doing Neg/Neg in-place its value is not
affected, but the original []Word bits that are reused by amount value are
(they're shared initially, Amount: *amount).
name old time/op new time/op delta
ToPreallocatedBytes-8 65.8ns ± 2% 45.6ns ± 2% -30.73% (p=0.008 n=5+5)
name old alloc/op new alloc/op delta
ToPreallocatedBytes-8 0.00B 0.00B ~ (all equal)
name old allocs/op new allocs/op delta
ToPreallocatedBytes-8 0.00 0.00 ~ (all equal)
2023-01-10 22:51:45 +03:00
Roman Khimov
5ad1fcd321
Merge pull request #2852 from nspcc-dev/required-hash
...
cli: mark required flags of `generate-*` command
2023-01-10 02:23:28 +07:00
Roman Khimov
06d29bc0e9
Merge pull request #2860 from nspcc-dev/fix-vm-cli-doc
...
docs: adjust outdated VM CLI doc
2023-01-09 18:21:25 +07:00
Anna Shaleva
0314cf0430
docs: adjust outdated VM CLI doc
2023-01-09 13:58:27 +03:00
Roman Khimov
4e6ce9c3e6
Merge pull request #2846 from nspcc-dev/fix-getblockbyindex-req
...
network: do not allow to request invalid block count
2022-12-29 04:04:01 +07:00
Roman Khimov
00848cdc83
Merge pull request #2854 from nspcc-dev/update-deps
...
go.mod: Update dependencies
2022-12-29 04:02:43 +07:00
f8fed21285
go.mod: Update dependencies
...
Signed-off-by: Evgeniy Stratonikov <e.stratonikov@yadro.com>
2022-12-28 22:00:16 +03:00
Roman Khimov
c64dc9ab02
Merge pull request #2853 from nspcc-dev/release-0.100.1
...
Release 0.100.1
2022-12-28 19:36:38 +07:00
Anna Shaleva
9b364aa7ee
network: do not allow to request invalid block count
...
The problem is in peer disconnection due to invalid GetBlockByIndex
payload (the logs are from some patched neo-go version):
```
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.490Z INFO new peer connected {"addr": "10.78.69.115:50846", "peerCount": 3}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.490Z WARN peer disconnected {"addr": "10.78.69.115:50846", "error": "invalid block count", "peerCount": 2}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.490Z INFO started protocol {"addr": "10.78.69.115:50846", "userAgent": "/NEO-GO:1.0.0/", "startHeight": 0, "id": 1339571820}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.491Z INFO new peer connected {"addr": "10.78.69.115:50856", "peerCount": 3}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.492Z WARN peer disconnected {"addr": "10.78.69.115:50856", "error": "invalid block count", "peerCount": 2}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.492Z INFO started protocol {"addr": "10.78.69.115:50856", "userAgent": "/NEO-GO:1.0.0/", "startHeight": 0, "id": 1339571820}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.492Z INFO new peer connected {"addr": "10.78.69.115:50858", "peerCount": 3}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.493Z INFO started protocol {"addr": "10.78.69.115:50858", "userAgent": "/NEO-GO:1.0.0/", "startHeight": 0, "id": 1339571820}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.493Z WARN peer disconnected {"addr": "10.78.69.115:50858", "error": "invalid block count", "peerCount": 2}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.494Z INFO new peer connected {"addr": "10.78.69.115:50874", "peerCount": 3}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.494Z INFO started protocol {"addr": "10.78.69.115:50874", "userAgent": "/NEO-GO:1.0.0/", "startHeight": 0, "id": 1339571820}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.494Z WARN peer disconnected {"addr": "10.78.69.115:50874", "error": "invalid block count", "peerCount": 2}
```
GetBlockByIndex payload can't be decoded, and the only possible cause
is zero (or <-1, but it's probably not the case) block count requested.
Error is improved as far.
2022-12-28 13:04:56 +03:00
Anna Shaleva
c0a453a53b
network: adjust requestBlocs logic
...
If the lastQueued block index is the same as the one we'd like to
request in payload, then we need to increment the payload's count.
2022-12-28 12:50:30 +03:00
Anna Shaleva
7bab81f196
cli: adjust flags description for smartcontract generate-*
2022-12-28 12:18:09 +03:00
AnnaShaleva
2334166423
cli: mark required flags of generate-*
command
2022-12-28 12:15:56 +03:00
Roman Khimov
b7d2fd2cb1
CHANGELOG: release 0.100.1
2022-12-28 12:08:31 +03:00
Roman Khimov
5f2e25de11
Merge pull request #2851 from nspcc-dev/fuzz-tests
...
*: add fuzz tests for `bigint.FromBytes` and `vm.ParseMultisigContract`
2022-12-28 16:05:55 +07:00
Evgeniy Stratonikov
db977ce38d
vm: add fuzz test for ParseMultiSigContract
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-12-28 11:50:15 +03:00
Evgeniy Stratonikov
affe1ecb4f
encoding: add bigint fuzz test
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-12-28 11:50:13 +03:00
Roman Khimov
d9af122be5
Merge pull request #2850 from mike-petrov/feature/2289-add_logo_for_dark_theme
...
Add logo for dark theme
2022-12-21 22:41:07 +07:00
Mikhail Petrov
be9a231c98
[ #2289 ] Add logo for dark theme
...
Signed-off-by: Mikhail Petrov <mike@nspcc.ru>
2022-12-21 18:08:30 +03:00
Roman Khimov
5fb9e1353d
Merge pull request #2848 from nspcc-dev/tune-management-callflags-for-aspidochelone
...
Tune management callflags for aspidochelone
2022-12-19 13:41:07 +07:00
Roman Khimov
3339824fe9
native: simplify code somewhat, get Metadata() only once
2022-12-16 23:48:04 +03:00
Roman Khimov
5d478b5514
native: add old management deploy/update call flags to Aspidochelone
...
d5a9af5860
is incompatible with the NeoFS
mainnet sidechain, so we add the old logic to the pre-Aspidochelone
behaviour. Changing flags at newMethodAndPrice() is a bit less convenient
unfortunately because this will affect interop validity checks, so let's have
this kludge here.
2022-12-16 23:45:47 +03:00
Roman Khimov
3e714a348e
Merge pull request #2842 from nspcc-dev/stringer
...
*: use zap.Stringer instead of zap.String where it can be used
2022-12-13 22:12:18 +07:00
Roman Khimov
e79dec15f9
*: use zap.Stringer instead of zap.String where it can be used
...
It's a bit more efficient in case we're not logging the message (mostly for
debug), makes the code somewhat simpler as well.
2022-12-13 12:44:54 +03:00
Roman Khimov
515cbf6a80
Merge pull request #2841 from nspcc-dev/more-robust-divisible-check
...
rpcsrv: use more robust NEP-11 divisibility check
2022-12-12 14:05:24 +07:00
Roman Khimov
c1afaf8ea8
rpcsrv: use more robust NEP-11 divisibility check
...
It's more heavyweight at the same time, but should be OK for the
purpose. Inspired by https://github.com/neo-project/neo-modules/issues/754#issuecomment-1345176986
2022-12-10 11:45:43 +03:00
Roman Khimov
628f04769b
Merge pull request #2840 from nspcc-dev/release-0.100.0
...
CHANGELOG: release 0.100.0
2022-12-08 15:56:54 +07:00
Roman Khimov
31b863591f
CHANGELOG: release 0.100.0
2022-12-08 11:51:40 +03:00
Roman Khimov
bbb35f52e3
Merge pull request #2839 from nspcc-dev/port-string
...
config: use string type for Port
2022-12-08 03:29:37 +07:00
Roman Khimov
3ce1fc41a4
config: fix the default P2P ping settings
...
54c2aa8582
broke them, they're in seconds and we
have a 90s timeout.
2022-12-07 21:29:40 +03:00
Roman Khimov
0d65071abc
config: use string type for Port
...
6b4dd5703e
made it to be a uint16 which was
somewhat important for RPC, but now it's irrelevant and the fact that it was a
string in some cases may lead to errors like these:
failed to unmarshal config YAML: yaml: unmarshal errors:
line 48: cannot unmarshal !!str `20011` into uint16
line 52: cannot unmarshal !!str `40001` into uint16
So for maximum backwards compatibility we better have string here and
eventually it'll be deleted anyway.
2022-12-07 21:21:05 +03:00
Roman Khimov
81d755736c
Merge pull request #2833 from nspcc-dev/proto-to-app-config-2
...
Move some settings from Protocol to Application config
2022-12-07 21:58:42 +07:00
Roman Khimov
4e7cee4e12
config: replace VerifyBlocks with SkipBlockVerification
...
It directly affects node security and the default here MUST BE the safe choice
which is to do the verification. Otherwise it's just dangerous, absent any
VerifyBlocks configuration we'll get an insecure node. This option is not
supposed to be frequently used and it doesn't affect the ability to process
blocks, so breaking compatibility (in a safe manner) should be OK here.
2022-12-07 17:35:56 +03:00
Roman Khimov
d92f35664b
config: move Ledger config from Protocol to Application
2022-12-07 17:35:56 +03:00
Roman Khimov
7589733017
config: add a special Blockchain type to configure Blockchain
...
And include some node-specific configurations there with backwards
compatibility. Note that in the future we'll remove Ledger's
fields from the ProtocolConfiguration and it'll be possible to access them in
Blockchain directly (not via .Ledger).
The other option tried was using two configuration types separately, but that
incurs more changes to the codebase, single structure that behaves almost like
the old one is better for backwards compatibility.
Fixes #2676 .
2022-12-07 17:35:53 +03:00
Roman Khimov
199a6de737
Merge pull request #2838 from nspcc-dev/neo-misuse
...
*: fix Neo and NeoGo misuses
2022-12-07 21:34:27 +07:00
Anna Shaleva
2d6db6f5c4
vm: adjust stale comment
2022-12-07 17:30:02 +03:00
Anna Shaleva
82221b0ca7
*: fix Neo and NeoGo misuses
2022-12-07 17:29:09 +03:00
Roman Khimov
b1f1405f42
Merge pull request #2836 from nspcc-dev/fix-subs
...
rpcclient: fix filtered naive subscriptions receiver
2022-12-07 21:17:07 +07:00
Anna Shaleva
2c0844221a
rpcclient: fix filtered naive subscriptions receiver
...
We should return the filter itself instead of pointer.
2022-12-07 16:56:16 +03:00
Roman Khimov
c4d519f549
Merge pull request #2837 from nspcc-dev/350-compat
...
native: make management compatible with C# node 3.5.0
2022-12-07 20:19:04 +07:00
Roman Khimov
531ab4bd6c
Merge pull request #2832 from nspcc-dev/consensus-config-section
...
Consensus config section
2022-12-07 20:18:23 +07:00
Roman Khimov
573ed6c39e
Merge pull request #2834 from nspcc-dev/doc-updates
...
Minor documentation fixes
2022-12-07 20:16:59 +07:00
Roman Khimov
236e633ee4
native: make management compatible with C# node 3.5.0
...
It doesn't store id->hash mappings for native contracts. We need blockchain's
GetContractScriptHash to serve both anyway, so it was changed a bit. The only
other direct user of native.GetContractScriptHash is the VM CLI, but I doubt
anyone will use it for native contracts (they have ~zero VM code anyway).
2022-12-07 15:13:17 +03:00
Roman Khimov
dbb798d4b7
config: add dummy consensus config section into files
...
Just to make it easier to configure.
2022-12-07 13:23:08 +03:00
Roman Khimov
0efa9c5fc3
config: update configurations for Consensus
2022-12-07 13:22:11 +03:00
Roman Khimov
883c6c5286
config: add Consensus subsection for dBFT config, fix #2677
...
Old UnlockWallet is still supported and works just fine.
2022-12-07 13:20:21 +03:00
Roman Khimov
730849a1cd
config: move common part of notary/state into InternalService
2022-12-07 13:18:50 +03:00
Roman Khimov
ce7995e045
README: update a little, fix #2779
...
Minor improvements, removing outdated data, plus
NEO -> Neo
neo-go -> NeoGo
2022-12-07 13:17:09 +03:00
Roman Khimov
90a85259a8
Merge pull request #2827 from nspcc-dev/multiaddr
...
network: support multiple bind addresses
2022-12-07 17:15:56 +07:00
Anna Shaleva
54c2aa8582
config: move P2P options to a separate config section
...
And convert time-related settings to a Duration format along the way.
2022-12-07 13:06:05 +03:00