Commit graph

8098 commits

Author SHA1 Message Date
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
e0c8bebd05
Merge pull request #3751 from nspcc-dev/debug-upload-bin
cli: add debug on retry in `upload-bin`
2024-12-13 16:33:43 +03:00
Anna Shaleva
9834b83cf0
Merge pull request #3750 from nspcc-dev/removeuntraceableheaders
RemoveUntraceableHeaders
2024-12-13 16:30:31 +03:00
Roman Khimov
90b6a42331 network: make GetHeaders best-effort
Be a nice neighbor, try to reply with whatever headers we have, don't fail
completely because of a single missing header.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-12-13 16:09:00 +03:00
Roman Khimov
9599fba24f core: fix removing old transfer data with RemoveUntraceableHeaders
Transfer data is timestamp-based, previously it always had and used headers,
no we can go via a small cache (we don't want it to grow or be stored forever).
Otherwise it's unable to do the job:

    2024-12-13T12:55:15.056+0300    ERROR   failed to find block header for transfer GC     {"time": "19.066µs", "error": "key not found"}

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-12-13 16:09:00 +03:00
Roman Khimov
7d89a53043 core: drop redundant tgtBlock normalization
It's there since 423c7883b8, but looks like it
never changed anything, the same thing is done six lines above and tgtBlock is
not changed since.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-12-13 16:09:00 +03:00
Roman Khimov
c53b0645bb core: extend NewBlockchain coverage a bit
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-12-13 16:09:00 +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
46cbfab264 cli: add more debug info about retry to the upload-bin
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-12-13 13:52:33 +03:00
Anna Shaleva
38f635bce0
Merge pull request #3742 from nspcc-dev/default-blockfetcher-config
services: add default values for NeoFSBlockFetcher configuration
2024-12-13 12:17:56 +03:00
Ekaterina Pavlova
65bdc82da8 *: move constant and NeoFS related code into separate package
Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-12-13 11:43:19 +03:00
Ekaterina Pavlova
c79ffa967f services: add default values for NeoFSBlockFetcher configuration
The minimum sufficient configuration is Addresses and ContainerID,
example:
```
  NeoFSBlockFetcher:
    Enabled: true
    Addresses:
      - st1.storage.fs.neo.org:8080
      - st2.storage.fs.neo.org:8080
      - st3.storage.fs.neo.org:8080
      - st4.storage.fs.neo.org:8080
    ContainerID: "87JRc7vyWcjW8uS32LMoLTAj4ckCzFZWfKbacjU3sAob"
```

Close #3718

Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-12-13 11:39:22 +03:00
Anna Shaleva
283ca5cb6c
Merge pull request #3748 from nspcc-dev/fix-gomod
go.mod: tidy
2024-12-12 16:41:57 +03:00
Anna Shaleva
3c372de570 *: update interop deps
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2024-12-12 16:08:32 +03:00
Anna Shaleva
cb4b21fcf4
Merge pull request #3735 from nspcc-dev/index-files-put
cli: update `upload-bin` to create index files during block uploading
2024-12-12 16:08:05 +03:00
Anna Shaleva
ea0a6114d2 go.mod: tidy
Fix linter after #3746 and #3747:
```
 Running [/home/runner/golangci-lint-1.62.2-linux-amd64/golangci-lint run --path-prefix=scripts --config=/home/runner/work/neo-go/neo-go/nspcc-gh/.golangci.yml] in [/home/runner/work/neo-go/neo-go/scripts] ...
  level=error msg="Running error: context loading failed: no go files to analyze: running `go mod tidy` may solve the problem"

  Error: golangci-lint exit with code 5
```

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2024-12-12 16:07:05 +03:00
Roman Khimov
15cc559c73
Merge pull request #3747 from nspcc-dev/dependabot/go_modules/examples/nft-nd-nns/golang.org/x/crypto-0.31.0
build(deps): bump golang.org/x/crypto from 0.26.0 to 0.31.0 in /examples/nft-nd-nns
2024-12-12 12:38:07 +03:00
dependabot[bot]
1447158f2b
build(deps): bump golang.org/x/crypto in /examples/nft-nd-nns
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.26.0 to 0.31.0.
- [Commits](https://github.com/golang/crypto/compare/v0.26.0...v0.31.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-12 09:16:57 +00: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
e530ba0791
Merge pull request #3746 from nspcc-dev/dependabot/go_modules/golang.org/x/crypto-0.31.0
build(deps): bump golang.org/x/crypto from 0.26.0 to 0.31.0
2024-12-12 12:04:39 +03:00
dependabot[bot]
b058b6cf21
build(deps): bump golang.org/x/crypto from 0.26.0 to 0.31.0
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.26.0 to 0.31.0.
- [Commits](https://github.com/golang/crypto/compare/v0.26.0...v0.31.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-12 09:00:01 +00:00
Anna Shaleva
6d1eea307b
Merge pull request #3696 from nspcc-dev/basic-chain-tests
basicchain: use UnitTestNet default config for generation
2024-12-12 10:51:42 +03:00
Ekaterina Pavlova
e993c1bdac basicchain: use UnitTestNet default config
It's important to have the same chain configuration for all tests.
Otherwise, a mismatched hardfork configuration is used to dump/restore
the basic chain.

Close #3681

Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-12-11 21:42:00 +03:00
Anna Shaleva
4fa5fdc39c
Merge pull request #3715 from nspcc-dev/sub-test
rpcsrv: fix `TestFilteredSubscriptions`
2024-12-11 20:50:52 +03:00
Ekaterina Pavlova
0bd378770d rpcsrv: fix TestFilteredSubscriptions
Close #3693

Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-12-11 14:18:23 +03:00
Roman Khimov
727262a95a
Merge pull request #3737 from nspcc-dev/fix-timer-drain
services: fix timer draining
2024-12-09 15:06:30 +03:00
Anna Shaleva
827acfca23 services: fix timer draining
Ref. #3736.

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2024-12-09 12:11:01 +03:00
Anna Shaleva
35c2c5cc0e
Merge pull request #3736 from nspcc-dev/retry
services: fix defer function in `retry` of NeoFSBlockFetcher
2024-12-09 12:08:45 +03:00
Ekaterina Pavlova
3010324c4f services: fix defer function in retry of NeoFSBlockFetcher
Drain the channel only if it has pending events. This avoids trying to
read from an already-empty channel.

Close #3734

Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
2024-12-08 00:04:14 +03:00
Anna Shaleva
5f92da21fa
Merge pull request #3731 from nspcc-dev/rel-0.107.1
CHANGELOG: release 0.107.1
2024-12-06 16:48:31 +03:00
Anna Shaleva
703e066acc CHANGELOG: release 0.107.1
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2024-12-06 16:26:02 +03:00
Anna Shaleva
c84dac501d
Merge pull request #3730 from nspcc-dev/tune-getaddr-trigger
network: take into account good known peers when thinking of GetAddr
2024-12-06 15:55:32 +03:00
Roman Khimov
703bf6c458 network: take into account good known peers when thinking of GetAddr
They will be returned to pool when disconnected anyway. On a smaller network
this can make a difference because there are not a lot of addresses in the
pool usually.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-12-06 15:31:33 +03:00
Anna Shaleva
2bc41dbe30
Merge pull request #3724 from nspcc-dev/hf-latest-stable
Latest stable hardforks
2024-12-06 13:18:03 +03:00
Anna Shaleva
a68856c27c
Merge pull request #3728 from nspcc-dev/blockfetcher-close
Fix blockfetcher closing
2024-12-06 13:07:19 +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
a164db92cc config: replace LatestHardfork() with HFLatestStable
Function doesn't make much sense here. The change is rather trivial and this
is not expected to be used by external code, so no deprecation.

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
Roman Khimov
109319d220 network: avoid accidental double-close of blockFetcherFin channel
It's not supposed to happen, but if blockfetcher goes wild and calls this
twice it can ruin the system, so better safe than sorry.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-12-06 11:39:44 +03:00
Roman Khimov
c812150d83 network: avoid looping forever
blockFetcherFin is closed by the block fetcher, so it will forever return
something in this loop making it an infinite loop, creating useless load
and affecting normal node operation.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-12-06 11:35:54 +03:00
Anna Shaleva
49267f3412
Merge pull request #3726 from nspcc-dev/fix-unexpected-empty-payload
network: fix "unexpected empty payload: CMDVersion"
2024-12-05 23:34:05 +03:00
Anna Shaleva
1aed0faeec
Merge pull request #3727 from nspcc-dev/network-optimaln
network: optimize optimalN for small networks
2024-12-05 23:26:41 +03:00
Roman Khimov
d69f8ebbab network: optimize optimalN for small networks
Consider 10-node network. FanOut is 6 for it. optimalN is 12. But it's a
10-node network, you can't have more than 9 peers there. So adjust the formula
for netSize-1.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-12-05 22:31:19 +03:00
Roman Khimov
121307d349 network: fix "unexpected empty payload: CMDVersion"
We can have _a lot_ of these in the log, but the only reason they happen is
because we're trying to interpret length before checking for reader error,
CMDVersion is just 0.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2024-12-05 18:34:55 +03:00
Roman Khimov
8952922c4d
Merge pull request #3723 from nspcc-dev/fix-deal-timeout
blockfetcher: decrease default pool deal timeout
2024-12-04 17:29:11 +03:00
Anna Shaleva
2244d2ad75 blockfetcher: decrease default pool deal timeout
Dealing is fast, we don't need 10 minutes to check that connection can
(or can't) be established. Improve documentation along the way.

Close #3721.

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2024-12-04 16:34:09 +03:00
Roman Khimov
0879018e03
Merge pull request #3722 from nspcc-dev/fs-testnet-forks
config: enable hardforks for default NeoFS testnet config
2024-12-04 12:26:27 +03:00
Anna Shaleva
f7ee66ff8b config: enable hardforks for default NeoFS testnet config
Otherwise all hardforks enabled by default from genesis which leads to
errors like this if we introduce new hardfork:
```
Dec 04 02:46:46 titan1 neofs-node[157390]: warn        client/multi.go:43        could not establish connection to RPC node        {"endpoint": "wss://rpc.morph.t5.fs.neo.org/ws", "error": "WS client initialization: failed to get network magic: unexpected hardfork: Echidna"}
```

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2024-12-04 12:22:07 +03:00
Roman Khimov
9a3923097b
Merge pull request #3717 from nspcc-dev/rel-0.107.0
CHANGELOG: release 0.107.0
2024-12-03 12:00:20 +03:00