Roman Khimov
22c6ab4de9
smartcontract: process slices via reflection in NewParameterFromValue
...
Pros:
* less code
* handles more types
Cons:
* slow
This code is not likely to be on the hot path and it is exactly the one used
by actors for making calls of various kinds. Supporting more types is more
important here than raw speed.
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-11-18 15:20:39 +03:00
Roman Khimov
a123b75fd9
io: no need to do ValueOf() again, it's known
...
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-11-15 22:29:06 +03:00
Anna Shaleva
c2b4d32224
Merge pull request #3680 from nspcc-dev/fix-range
...
*: remove range usage from smartcontracts
2024-11-14 17:22:27 +03:00
Ekaterina Pavlova
71a89c230a
*: remove range usage from smartcontracts
...
Reverting a part of 1b83dc2
, because ranging over integers is not
supported by smart contract compiler, ref. #3525 .
Close #3671
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-11-14 16:57:39 +03:00
Anna Shaleva
3ec06f316e
Merge pull request #3674 from ixje/remove-breakpoint
...
vm: add RemoveBreakPoint support
2024-11-14 12:42:57 +03:00
ixje
d8ea4103c7
cli: add delete and list break point commands
...
Close #3673
Signed-off-by: ixje <erik@coz.io>
2024-11-14 09:52:25 +01:00
Anna Shaleva
cb51eeb1b1
Merge pull request #3678 from nspcc-dev/dupword
...
*: fix some dupword warnings
2024-11-14 10:46:17 +03:00
Roman Khimov
8b12b3ac64
*: fix some dupword warnings
...
Duplicate words in comments.
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-11-13 20:57:10 +03:00
Anna Shaleva
dda2cafdf8
Merge pull request #3665 from nspcc-dev/http-code-status-ok
...
rpcsrv: align default error code with C# implementation
2024-11-12 17:19:03 +03:00
Ekaterina Pavlova
0afd9ac0bb
rpcsrv: align default error code with C# implementation
...
We had 400, 405 and 500 in getHTTPCodeForError, but none is explicitly
set in C#.
1. **405 code** (unknown method, `neorpc.MethodNotFoundCode`). The
resulting HTTP code returned by C# server is 200 OK:
```
anna@kiwi:~/Documents/GitProjects/bane-labs/go-ethereum$ curl -v -d '{
"jsonrpc": "2.0", "id": 1, "method": "unknown-method", "params": [] }'
http://seed1t5.neo.org:20332 | json_pp
% Total % Received % Xferd Average Speed Time Time Time
Current
Dload Upload Total Spent Left
Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:--
0* Trying 34.133.235.69:20332...
* Connected to seed1t5.neo.org (34.133.235.69) port 20332 (#0 )
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:--
0> POST / HTTP/1.1
> Host: seed1t5.neo.org:20332
> User-Agent: curl/7.81.0
> Accept: */*
> Content-Length: 71
> Content-Type: application/x-www-form-urlencoded
>
} [71 bytes data]
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Tue, 12 Nov 2024 13:45:51 GMT
< Server: Kestrel
< Transfer-Encoding: chunked
<
{ [461 bytes data]
100 520 0 449 100 71 729 115 --:--:-- --:--:-- --:--:--
844
* Connection #0 to host seed1t5.neo.org left intact
{
"error" : {
"code" : -32601,
"data" : " at Neo.Plugins.Result.True_Or(Boolean result,
RpcError err)\n at Neo.Plugins.RpcServer.ProcessRequestAsync
(HttpContext context, JObject request)",
"message" : "Method not found - The method 'unknown-method'
doesn't exists. - at Neo.Plugins.Result.True_Or(Boolean result,
RpcError err)\n at Neo.Plugins.RpcServer.ProcessRequestAsync
(HttpContext context, JObject request)"
},
"id" : 1,
"jsonrpc" : "2.0"
}
```
2. **400 code** (malformed request, `neorpc.BadRequestCode`). The
resulting HTTP code returned by C# server is 200 OK:
```
anna@kiwi:~/Documents/GitProjects/bane-labs/go-ethereum$ curl -v -d '{
"jsonrpc": "2.0", "id": 1, "method": "getapplicationlog", "params": ["]
}' http://seed1t5.neo.org:20332 | json_pp
% Total % Received % Xferd Average Speed Time Time Time
Current
Dload Upload Total Spent Left
Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:--
0* Trying 34.133.235.69:20332...
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:--
0* Connected to seed1t5.neo.org (34.133.235.69) port 20332 (#0 )
> POST / HTTP/1.1
> Host: seed1t5.neo.org:20332
> User-Agent: curl/7.81.0
> Accept: */*
> Content-Length: 75
> Content-Type: application/x-www-form-urlencoded
>
} [75 bytes data]
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Tue, 12 Nov 2024 13:50:12 GMT
< Server: Kestrel
< Transfer-Encoding: chunked
<
{ [86 bytes data]
100 150 0 75 100 75 84 84 --:--:-- --:--:-- --:--:--
169
* Connection #0 to host seed1t5.neo.org left intact
{
"error" : {
"code" : -32700,
"message" : "Bad request"
},
"id" : null,
"jsonrpc" : "2.0"
}
```
3. **500 code** (internal server error, `neorpc
.InternalServerErrorCode`). It's difficult to reproduce this error on
real network for C# server, but the resulting code is expected to be the
same, 200 OK.
Close #3586
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-11-12 17:08:01 +03:00
Anna Shaleva
66fbcb2f00
Merge pull request #3642 from nspcc-dev/config-blockfetcher
...
config: add NeoFSBlockFetcher section
2024-11-11 11:57:33 +03:00
Anna Shaleva
b62c0b9118
Merge pull request #3666 from nspcc-dev/doc-improve
...
Tiny documentation improvements
2024-11-07 18:46:35 +03:00
Roman Khimov
9cca702ac2
emit: add some package doc
...
People use it more often than they should, discourage that a bit, it's rarely
really needed.
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-11-07 18:44:55 +03:00
Roman Khimov
24577d320d
rpcclient: improve GetNEPXXTransfers docs
...
No one cares about NeoGo 0.7X.smth, but timestamps are a bit unobvious here.
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-11-07 18:02:53 +03:00
Anna Shaleva
7062ab9397
Merge pull request #3660 from nspcc-dev/gaps-upload-bin
...
cli: add check of successful upload for `upload-bin`
2024-11-06 11:27:23 +03:00
Ekaterina Pavlova
29e2d712f4
cli: add flag max-retries
for upload-bin
...
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-11-06 11:18:41 +03:00
Ekaterina Pavlova
18ed3bb3e8
cli: fix missing errors on closure of writer in upload-bin
...
Ref #3658
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-11-06 11:16:46 +03:00
Anna Shaleva
1a540d5883
Merge pull request #3663 from nspcc-dev/io-improve-bytes-doc
...
io: specify Bytes() behavior a bit better for BufBinWriter
2024-11-06 11:15:52 +03:00
Anna Shaleva
8c4d9432d7
Merge pull request #3662 from nspcc-dev/improve-uploadbin-log
...
cli: extend logs of index file construction for `upload-bin`
2024-11-06 11:13:44 +03:00
Anna Shaleva
b6516586d5
Merge pull request #3661 from alexey-savchuk/fix-panic-on-sighup
...
services/rpcsrv: Return a new server by pointer
2024-11-06 11:04:44 +03:00
Roman Khimov
23f9c5a43b
io: specify Bytes() behavior a bit better for BufBinWriter
...
It's not immediately obvious.
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-11-05 16:58:33 +03:00
Alexey Savchuk
df9247c00b
services/rpcsrv: Return a new server by pointer
...
Before, a new server was returned by value which could cause
a panic `unlock of unlocked mutex` on SIGHUP handling. It's
because the new server overwrites a locked mutex of the already
existing server.
oct‚ 22 13:51:15 node1 neo-go[1183338]: fatal error: sync: Unlock of unlocked RWMutex
oct‚ 22 13:51:15 node1 neo-go[1183338]: goroutine 538 [running]:
oct‚ 22 13:51:15 node1 neo-go[1183338]: sync.fatal({0xf83d64?, 0xc001085880?})
oct‚ 22 13:51:15 node1 neo-go[1183338]: runtime/panic.go:1007 +0x18
oct‚ 22 13:51:15 node1 neo-go[1183338]: sync.(*RWMutex).Unlock(0xc00019a4c8)
oct‚ 22 13:51:15 node1 neo-go[1183338]: sync/rwmutex.go:208 +0x45
oct‚ 22 13:51:15 node1 neo-go[1183338]: github.com/nspcc-dev/neo-go/pkg/services/rpcsrv.(*Server).dropSubscriber(0xc00019a2c8, 0xc000a77740)
oct‚ 22 13:51:15 node1 neo-go[1183338]: github.com/nspcc-dev/neo-go/pkg/services/rpcsrv/server.go:825 +0xce
oct‚ 22 13:51:15 node1 neo-go[1183338]: github.com/nspcc-dev/neo-go/pkg/services/rpcsrv.(*Server).handleWsReads(0xc00019a2c8, 0xc0034478c0, 0xc000af5f80, 0xc000a7
7740)
oct‚ 22 13:51:15 node1 neo-go[1183338]: github.com/nspcc-dev/neo-go/pkg/services/rpcsrv/server.go:810 +0x266
oct‚ 22 13:51:15 node1 neo-go[1183338]: github.com/nspcc-dev/neo-go/pkg/services/rpcsrv.(*Server).handleHTTPRequest(0xc00019a2c8, {0x11c3900, 0xc003437dc0}, 0xc00
31945a0)
oct‚ 22 13:51:15 node1 neo-go[1183338]: github.com/nspcc-dev/neo-go/pkg/services/rpcsrv/server.go:582 +0x54a
oct‚ 22 13:51:15 node1 neo-go[1183338]: net/http.HandlerFunc.ServeHTTP(0x471779?, {0x11c3900?, 0xc003437dc0?}, 0xc000943b68?)
oct‚ 22 13:51:15 node1 neo-go[1183338]: net/http/server.go:2171 +0x29
oct‚ 22 13:51:15 node1 neo-go[1183338]: net/http.serverHandler.ServeHTTP({0xc000a77680?}, {0x11c3900?, 0xc003437dc0?}, 0x6?)
oct‚ 22 13:51:15 node1 neo-go[1183338]: net/http/server.go:3142 +0x8e
oct‚ 22 13:51:15 node1 neo-go[1183338]: net/http.(*conn).serve(0xc0032030e0, {0x11c5220, 0xc000a76960})
oct‚ 22 13:51:15 node1 neo-go[1183338]: net/http/server.go:2044 +0x5e8
oct‚ 22 13:51:15 node1 neo-go[1183338]: created by net/http.(*Server).Serve in goroutine 534
oct‚ 22 13:51:15 node1 neo-go[1183338]: net/http/server.go:3290 +0x4b4
Signed-off-by: Alexey Savchuk <alexey.a.savchuk@yandex.com>
2024-11-05 15:05:25 +03:00
Anna Shaleva
cee296eb92
Merge pull request #3659 from nspcc-dev/make-balance-work-without-wallet
...
cli: make nep1X balance commands work without a wallet, fix #3275
2024-11-05 13:24:20 +03:00
Roman Khimov
ddaf9c01ab
cli: make nep1X balance commands work without a wallet, fix #3275
...
Checking the balance should be easy without any wallets involved, the data
is available anyway.
Tests are extended a bit as well.
Adding the command to "query nep1X" is not so trivial, so let's have it this
way for now.
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-11-05 13:12:13 +03:00
Anna Shaleva
a85f3ce83f
cli: rename uploader.go to upload_bin.go
...
Follow the style of other files in the `util` package and existing
`dump_bin.go`.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2024-11-05 12:43:20 +03:00
Anna Shaleva
22cb7feb1d
cli: fix format
...
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2024-11-05 11:25:08 +03:00
Anna Shaleva
82b508e8f3
cli: extend logs of index file construction for upload-bin
...
These logs are needed to track the progress of uploaders.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2024-11-05 11:24:57 +03:00
Roman Khimov
95098d4b25
Merge pull request #3657 from nspcc-dev/drop-macos-12
...
workflows: remove macos-12 support
2024-11-02 13:30:21 +03:00
Anna Shaleva
5cffa90774
workflows: remove macos-12 support
...
Support for macos-12 will be deprecated 10/7/24 and the image will
be fully unsupported by 12/3/24. Ref.
https://github.com/actions/runner-images/issues/10721 .
Get rid of the build warning:
```
A brownout will take place on November 4, 14:00 UTC - November 5, 00:00
UTC to raise awareness of the upcoming macOS-12 environment removal.
```
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2024-11-02 13:08:12 +03:00
Anna Shaleva
21d6887969
Merge pull request #3650 from nspcc-dev/index-files
...
cli: add retries if search results are not expected length in `upload-bin`
2024-11-02 12:28:26 +03:00
Ekaterina Pavlova
1c65f32a6d
config: add NeoFSBlockFetcher section
...
NeoFSBlockFetcher is disabled by default.
Close #3632
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-11-02 12:26:57 +03:00
Ekaterina Pavlova
c955c1e4ea
cli: use GET instead of HEAD in upload bin
...
Will be reverted when nspcc-dev/neofs-node#2988 is fixed. Currently HEAD
request can return incorrect attributes, which can lead to incorrect
index files.
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-11-02 12:04:02 +03:00
Ekaterina Pavlova
35d12779d6
cli: adjust index file creation in upload-bin
...
In case of incomplete search result it will try to find each missed oid
and process it. In case of duplicates the first found will be in index
file.
Close #3647
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-11-01 19:51:01 +03:00
Ekaterina Pavlova
365bbe08ed
cli: refactor errors and comments in upload-bin
...
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-11-01 14:58:48 +03:00
Ekaterina Pavlova
6a93f70728
cli: add flag for skipping block uploading in upload-bin
...
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-10-31 18:39:40 +03:00
Anna Shaleva
a4633ce2c7
Merge pull request #3649 from nspcc-dev/vm-modpow
...
vm: fix MODPOW operation
2024-10-31 17:50:40 +03:00
Ekaterina Pavlova
cccbe843be
vm: fix MODPOW operation
...
Close #3612
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-10-31 17:49:02 +03:00
Anna Shaleva
e8b8c1a4b1
Merge pull request #3651 from nspcc-dev/tojson-test
...
stackitem: extend ToJSON test
2024-10-30 20:01:45 +03:00
Anna Shaleva
a0d2f95e42
stackitem: extend ToJSON test
...
Inspired by https://github.com/neo-project/neo/pull/3558 , although this
PR fixes different implementation of stackitem serializatior that is
used outside of VM.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2024-10-29 12:07:04 +03:00
Anna Shaleva
b8a65d3c37
Merge pull request #3643 from nspcc-dev/uploader-workers
...
cli: add flag workers to `upload-bin` command
2024-10-24 12:26:51 +03:00
Ekaterina Pavlova
7b3eeb9061
cli: fix usage of upload-bin
...
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-10-24 12:19:12 +03:00
Ekaterina Pavlova
36e855609d
cli: add workers
and searchers
flags to upload-bin
command
...
Number of workers to fetch, upload and search blocks concurrently is now
configurable.
Close #3641
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-10-24 12:19:10 +03:00
Anna Shaleva
4b10f23aec
Merge pull request #3638 from nspcc-dev/uploader-retry-errors
...
cli: fix `upload-bin` error handling
2024-10-23 16:00:38 +03:00
Ekaterina Pavlova
a5e9ab6979
cli: verify index file construction in upload-bin
command
...
Verify that there are no empty OIDs in the constructed index file, as
empty payloads can result in improperly set attributes, leading to empty
OIDs being added to the index file.
Close #3628
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-10-23 15:30:12 +03:00
Ekaterina Pavlova
42c8e40eaa
cli: add retry to all requests to NeoFS in upload-bin
...
Add retry to `NetworkInfo` and `uploadObj`.
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-10-23 15:30:12 +03:00
Ekaterina Pavlova
8b43c33e44
cli: extend object attribute parsing error in upload-bin
...
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-10-23 15:30:12 +03:00
Ekaterina Pavlova
5b793bcf1b
cli: fix process termination in upload-bin
command
...
Add a return statement to properly handle errors, ensuring the process
terminates as expected.
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-10-23 15:30:12 +03:00
Ekaterina Pavlova
e83b3e4839
cli: fix error handling in upload-bin command
...
Fix shared global error reuse.
Close #3634
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-10-23 15:30:12 +03:00
Anna Shaleva
0b79901b7f
Merge pull request #3637 from nspcc-dev/attributes
...
BlockFetcher/BlockUploader: fix and add additional attributes
2024-10-23 15:07:09 +03:00
Ekaterina Pavlova
c47d4e6c5b
BlockFetcher/BlockUploader: fix and add additional attributes
...
Capitalize block objects and index file objects attributes.
Add network magic attribute to container.
Close #3631
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-10-23 13:52:06 +03:00