Commit graph

338 commits

Author SHA1 Message Date
Roman Khimov
42beabcde0
Merge pull request #3846 from nspcc-dev/ignore-tty 2025-03-26 09:28:55 +03:00
Anna Shaleva
3ef560ea8f config: add timestamp logging option
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2025-03-25 12:15:10 +03:00
Anna Shaleva
6727b8b053 docs: sort application configuration settings doc
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2025-03-24 18:36:59 +03:00
Anna Shaleva
83e138000b config: add log encoding option
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2025-03-24 18:36:58 +03:00
Anna Shaleva
ef37c8c695 rpcsrv, rpcclient: support invokecontainedscript RPC call
Close #3836.

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2025-03-19 21:50:41 +03:00
Ekaterina Pavlova
20f88d4103 rpcsrv: add SessionExpansionEnabled
Close #3818

Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2025-03-18 19:27:32 +08:00
Anna Shaleva
7d72b6538a
Merge pull request #3828 from fyfyrchik/update-feeds
rpcsrv: allow to configure subscription limit
2025-03-07 16:42:35 +03:00
Evgenii Stratonikov
70b4d005e3
rpcsrv: allow to configure subscription limit
Close #3823

Signed-off-by: Evgenii Stratonikov <fyfyrchik@runbox.com>
2025-03-07 14:34:40 +03:00
Anna Shaleva
2881961421
Merge pull request #3808 from nspcc-dev/upload-state
cli: add `upload-state ` command
2025-03-07 14:05:23 +03:00
Ekaterina Pavlova
5f80a142b0 cli: add upload-state command
Close #3782

Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2025-03-07 18:13:54 +08:00
Anna Shaleva
2c8bd056fa core: restrict the number of allowed SC notifications
Close #3490.

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2025-03-07 12:28:25 +03:00
Roman Khimov
25e2d80363 neorpc: rename BlockNotifications fields to follow triggers exactly
Be more consistent.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2025-02-11 16:06:15 +03:00
Ricardo Prado
bd170fb849 rpc: implement getblocknotifications API
Add new RPC method to retrieve block notifications organized by trigger type.

Signed-off-by: Ricardo Prado <ricardo.prado@simpli.com.br>
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2025-02-11 15:40:15 +03:00
Anna Shaleva
7ba8048530
Merge pull request #3569 from ixje/applog-invocations
*: add invocations to applicationlog
2025-01-24 18:42:53 +03:00
ixje
4b2ee9a424
state, rpc: add invocations to applicationlog
Add setting to include smart contract invocations data to the applicationlog.
Original issue at https://github.com/neo-project/neo/issues/3386

Signed-off-by: ixje <erik@coz.io>
2025-01-24 15:44:10 +01:00
Roman Khimov
c047bad446 docs: a bit more DB recommendations
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2025-01-15 22:08:08 +03:00
Roman Khimov
c07c74df41 docs: add more recommendataions to GarbageCollectionPeriod
We're trying to delete less than 1% of data in the default configuration for
mainnet, so it looks like this:

    2025-01-14T15:51:39.449+0300    INFO    finished MPT garbage collection {"removed": 221115, "kept": 71236766, "time": "5m40.323822085s"}

Spending this much time for this low gain every 10K blocks is far from being
optimal.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2025-01-14 17:20:31 +03:00
Roman Khimov
4d45be8434 native: add candidate registration via onNEP17Payment
Solves two problems:
 * inability to estimate GAS needed for registerCandidate in a regular way
   because of its very high fee (more than what normal RPC servers allow)
 * inability to have MaxBlockSystemFee lower than the registration price
   which is very high on its own (more than practically possible to execute)

See https://github.com/neo-project/neo/issues/3552.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-12-25 10:36:38 +03:00
Ekaterina Pavlova
80e18222bc native: add callflag.AllowNotify to some methods to HFEchidna
Close #3702

Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-12-23 15:54:56 +01:00
Ekaterina Pavlova
b096e68428 native: add Base64URL support to the StdLib starting from HFEchidna
Close #3550

Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-12-23 15:54:56 +01:00
Ekaterina Pavlova
dc68e39811 native: add Designation event extension starting from HFEchidna
Close #3549

Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-12-23 15:54:54 +01:00
Anna Shaleva
4b7b2ef701 docs: take care of upload-bin documentation
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2024-12-17 10:18:34 +03:00
Anna Shaleva
53ab704971 docs: add defaults to NeoFS BlockFetcher configuration
Follow #3742.

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2024-12-13 19:32:04 +03:00
Ekaterina Pavlova
247ee831e5 cli: change block timestamp attribute of objects in upload-bin
Close #3654

Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-12-13 16:35:14 +03:00
Anna Shaleva
9834b83cf0
Merge pull request #3750 from nspcc-dev/removeuntraceableheaders
RemoveUntraceableHeaders
2024-12-13 16:30:31 +03:00
Roman Khimov
c7f5f173ae core: introduce RemoveUntraceableHeaders
With blocks available from NeoFS we can drop them from the local DB.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-12-13 16:09:00 +03:00
Ekaterina Pavlova
62615f8c7e cli: update upload-bin to create index files during block uploading
Close #3655
Close #3652

Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-12-12 12:08:49 +03:00
Roman Khimov
5f09e00e44 docs: introduce Echidna hardfork
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-12-06 12:24:00 +03:00
Roman Khimov
fc705433a3 docs: move Hardforks into a section of their own
It's impossible to maintain a 4K line. I'm not even sure new table works good
enough, but at least it's per-hardfork.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-12-06 12:24:00 +03:00
Roman Khimov
981ae10091 config: declare and use the latest stable hardfork
Differentiate released and stable ones from test-only not-yet-ready and such.
Enabled only stable ones by default to avoid surprises in private networks
when some beta hardfork is made available with some node release.

Fixes #3719.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-12-06 12:23:46 +03:00
Anna Shaleva
20ea4c40f5 docs: adjust NeoFS BlockFetcher configuration example
Set container ID to N3 Mainnet container ID, extend the list of storage
nodes.

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2024-12-02 19:51:45 +03:00
Ekaterina Pavlova
119ca27994 blockfetcher: fix block enqueue logic
Previously, the `blockQueuer` routine, which enqueues blocks into
`bQueue`, could be blocked on enqueing newer blocks if older blocks
downloading is delayed by NeoFS.

The `blocksCh` channel, acting as a queue ordered by download speed,
conflicted with the BQueue requirement for strict sequential enqueuing
(expecting an exact range of blocks), resulting in a deadlock that
stalled the process.

Before with default config settings:
```
2024-11-27T17:12:19.348+0300	INFO	persisted to disk	{"blocks":
 0, "keys": 116, "headerHeight": 0, "blockHeight": 0, "took": "15
 .509083ms"}
2024-11-27T17:19:39.574+0300	INFO	persisted to disk	{"blocks":
 16, "keys": 11107, "headerHeight": 216768, "blockHeight": 216768,
 "took": "62.762041ms"}
```
Average block persistence speed: 492.40 block/s
Average blocks number for each persist log: 584.28

After:

```
2024-11-27T17:29:03.362+0300	INFO	persisted to disk	{"blocks":
 0, "keys": 116, "headerHeight": 0, "blockHeight": 0, "took": "19
 .485084ms"}
2024-11-27T17:34:58.527+0300	INFO	persisted to disk	{"blocks":
 16, "keys": 11109, "headerHeight": 216770, "blockHeight": 216769,
 "took": "52.43925ms"}
```
Average block persistence speed: 610.33 block/s
Average blocks number for each persist log: 752.61

Close #3699

Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-11-29 13:37:50 +03:00
Anna Shaleva
f98169a762
Merge pull request #3689 from nspcc-dev/feat/filter-events-by-parameters
ws: allow filtering notification by parameters
2024-11-26 10:12:40 +03:00
Pavel Karpy
0ba16fe580 ws: allow filtering notification by parameters
`Any` type with nil/null value is treated as a parameter filter that allows
any notification value. Not more than 16 filter parameters are allowed.
Closes #3624.

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2024-11-26 00:26:04 +03:00
Ekaterina Pavlova
43609dd984 *: migrate to SEARCH with strict equality comparator
Close #3670

Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-11-25 13:19:35 +03:00
Ekaterina Pavlova
58ed448f8d cli: add debug mode to upload-bin command
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-11-15 17:18:44 +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
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
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
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
Ekaterina Pavlova
6199240598 cli: add upload-bin
This command is used for keeping container with blocks for
blockfetcher updated.

Close #3578

Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-10-17 11:56:07 +03:00
Ekaterina Pavlova
852dcb0f64 config, docs: adjust NeoFSBlockFetcher index file and time attributes
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-10-16 19:23:56 +03:00
Ekaterina Pavlova
0ae098bea2 docs: update vm loadhex example
Update example for Neo Legacy VM to N3.

Close #3588

Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-09-26 14:51:23 +03:00
Ekaterina Pavlova
0b31a29f39 services: add new service for fetching blocks from NeoFS
Close #3496

Co-authored-by: Anna Shaleva <shaleva.ann@nspcc.ru>
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-09-11 08:50:31 +04:00
Anna Shaleva
cbc2f73a0c *: migrate to Docker Compose V2
Docker Compose V1 is deprecated since June 2023, ref.
https://docs.docker.com/compose/migrate/ and
https://github.com/nspcc-dev/neo-bench/issues/166.

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2024-08-06 15:51:17 +03:00
Anna Shaleva
7e277fa948 docs: adjust DB compatibility notes
It's dangerous to change `Max*` ProtocolConfiguration settings:

* Changes in MaxBlockSize, MaxBlockSystemFee and MaxTransactionsPerBlock
  may lead to the fact that accepted block or transaction becomes invalid.
  I agree that these settings are not written in the DB, but at the same
  time it's not correct to compare databases that have these settings
  mismatched.
* Changes in MaxTraceableBlocks may lead to the fact that some
  transaction will be processed differently, it's a possible contract
  state mismatch.
* Changes in MaxValidUntilBlockIncrement may lead to the fact that
  `setMaxNotValidBeforeDelta` method of native Notary contract may be
  processed in a different way which is also a possible contract state
  mismatch.

Ref. 5d29a3fdab.

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2024-08-05 12:33:11 +03:00
Roman Khimov
07da75c254
Merge pull request #3526 from nspcc-dev/improve-doc 2024-07-29 15:07:54 +03:00
Roman Khimov
5d29a3fdab docs: document DB incompatibilities, fix #3456
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-07-29 13:09:16 +03:00
Roman Khimov
f4b61b5a77 rpcsrv: set minimal default SessionExpirationTime to 5s, fix #3509
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-07-26 17:17:37 +03:00