neo-go/pkg/core
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
..
block *: use require.ErrorIs instead of require.True(t, error.Is()) 2023-05-04 17:03:47 +03:00
chaindump *: use require.ErrorIs instead of require.True(t, error.Is()) 2023-05-04 17:03:47 +03:00
dao *: mention prefix trimming in Seek operations where applicable 2023-11-23 18:44:19 +03:00
fee vm: add ABORTMSG and ASSERTMSG opcodes 2023-08-10 12:41:30 +03:00
interop *: move NativeUpdateHistory logic under Hardforks management 2023-11-21 14:05:28 +03:00
mempool *: replace go.uber.org/atomic with sync/atomic 2023-10-12 17:59:34 +03:00
mempoolevent *: replace interface{} with any keyword 2023-04-04 13:22:42 +03:00
mpt *: use require.ErrorIs instead of require.True(t, error.Is()) 2023-05-04 17:03:47 +03:00
native native: never set Neo's newEpoch* cache values to nil 2023-12-21 17:56:07 +03:00
state core: remove UpdateHistory from NativeContract structure 2023-11-29 09:25:04 +03:00
stateroot *: replace go.uber.org/atomic with sync/atomic 2023-10-12 17:59:34 +03:00
statesync config: drop deprecated Protocol configurations 2023-10-10 13:26:07 +03:00
storage storage: Use timeout for boltdb database opening 2023-10-06 13:10:11 +03:00
test_data core: refactor helper test contracts generation 2022-03-30 11:46:29 +03:00
transaction native: introduce attribute pricing 2023-11-21 13:42:56 +03:00
basic_chain_test.go config: add a special Blockchain type to configure Blockchain 2022-12-07 17:35:53 +03:00
bench_test.go core: make GetHeaderHash accept uint32 2022-11-25 14:30:51 +03:00
blockchain.go core, services: fix Designation-dependant service initialisation 2023-11-24 15:25:51 +03:00
blockchain_core_test.go Merge pull request #3150 from nspcc-dev/drop-deprecated 2023-10-10 14:29:47 +03:00
blockchain_neotest_test.go Revert "native: ignore decoding errors during cache init" 2023-11-22 19:39:03 +03:00
doc.go *: apply go 1.19 formatter heuristics 2022-08-09 15:37:52 +03:00
headerhashes.go core: don't always store all hashes in memory 2022-11-25 14:30:51 +03:00
helper_test.go *: add GenesisTransaction extension to the protocol configuration 2023-10-19 18:33:50 +03:00
interops.go core: add System.Runtime.CurrentSigners syscall 2023-11-20 14:46:27 +03:00
native_designate_test.go *: introduce Genesis protocol configuration 2023-10-19 18:30:20 +03:00
prometheus.go core: distinguish notarypool/mempool metrics 2023-04-13 18:40:19 +03:00
util.go *: add GenesisTransaction extension to the protocol configuration 2023-10-19 18:33:50 +03:00
util_test.go *: add GenesisTransaction extension to the protocol configuration 2023-10-19 18:33:50 +03:00