neo-go/pkg/core/native
Anna Shaleva d7d850ac7d native: never set Neo's newEpoch* cache values to nil
We have cache update mechanism (Neo's cache votesChanged flag), it must
be used for current epoch and new epoch cached values update. And the
cached current/new epoch values themselves must always contain valid
information for the current/new epoch. These cached values must only be
changed once per epoch, never set them to nil.

This commit prevents CN node panic described in #3253 when dBFT tries
to retrieve new epoch validators with some votes modifications made
before at the same dBFT epoch.

Close #3253.

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-12-21 17:56:07 +03:00
..
native_test neotest: Add contract signer support 2023-12-01 10:50:08 +03:00
nativenames [#2442] English Check 2022-05-04 19:48:27 +03:00
nativeprices core: move NotaryVerificationPrice to a separate package 2021-03-23 13:56:39 +03:00
noderoles *: introduce Genesis protocol configuration 2023-10-19 18:30:20 +03:00
compatibility_test.go config: add InitialGASSupply, fix #2073 2021-07-20 16:59:54 +03:00
contract.go Merge pull request #3212 from nspcc-dev/drop-history 2023-11-21 15:46:16 +03:00
contract_test.go core: move TestNativeGetMethod to the native package 2022-06-08 18:51:27 +03:00
crypto.go *: move NativeUpdateHistory logic under Hardforks management 2023-11-21 14:05:28 +03:00
crypto_blspoints.go native: fix error message on unexpected BLS12-381 curve point 2023-10-05 13:46:05 +03:00
crypto_test.go core: add BLS12_381 interops 2023-04-05 15:37:50 +03:00
designate.go *: move NativeUpdateHistory logic under Hardforks management 2023-11-21 14:05:28 +03:00
doc.go *: add more package-specific documentation 2021-03-19 16:18:45 +03:00
interop.go *: move NativeUpdateHistory logic under Hardforks management 2023-11-21 14:05:28 +03:00
invocation_test.go *: move NativeUpdateHistory logic under Hardforks management 2023-11-21 14:05:28 +03:00
ledger.go *: move NativeUpdateHistory logic under Hardforks management 2023-11-21 14:05:28 +03:00
management.go core: do not check manifest size on deploy/update 2023-11-22 20:17:09 +03:00
management_neotest_test.go native: test immediate contract availability 2023-11-30 15:58:00 +03:00
management_test.go Revert "native: ignore decoding errors during cache init" 2023-11-22 19:39:03 +03:00
native_gas.go Merge pull request #3212 from nspcc-dev/drop-history 2023-11-21 15:46:16 +03:00
native_neo.go native: never set Neo's newEpoch* cache values to nil 2023-12-21 17:56:07 +03:00
native_neo_candidate.go [#2442] English Check 2022-05-04 19:48:27 +03:00
native_neo_test.go stackitem: introduce Convertible interface 2021-07-19 15:42:42 +03:00
native_nep17.go native: introduce attribute pricing 2023-11-21 13:42:56 +03:00
nativenames_test.go [#2442] English Check 2022-05-04 19:48:27 +03:00
neo_types.go stackitem: reusable serialization context 2022-06-02 15:38:39 +03:00
notary.go Merge pull request #3212 from nspcc-dev/drop-history 2023-11-21 15:46:16 +03:00
oracle.go *: move NativeUpdateHistory logic under Hardforks management 2023-11-21 14:05:28 +03:00
oracle_types.go [#2442] English Check 2022-05-04 19:48:27 +03:00
oracle_types_test.go *: replace interface{} with any keyword 2023-04-04 13:22:42 +03:00
policy.go Merge pull request #3212 from nspcc-dev/drop-history 2023-11-21 15:46:16 +03:00
policy_test.go core: move Policy contract tests to native 2022-06-08 22:44:25 +03:00
std.go *: move NativeUpdateHistory logic under Hardforks management 2023-11-21 14:05:28 +03:00
std_test.go core, interop: add strLen method for native StdLib contract 2023-11-20 19:23:33 +03:00
util.go bigint: don't allocate in ToPreallocatedBytes 2022-06-02 15:38:39 +03:00