IDStatusStatus Notes# Test ResultsCategoryNameDetailsDocsGitHub
RD1OpenMemory issues noted, more testing desired2RocksDBGeneral RocksDB setup/runFollow details on the PR to setup and run RocksDB, keeping an eye on disk IO and other metrics during normal usage and heavy spam.
CH1Delayed0Confirmation HeightPrioritize node wallet frontiers
DO1OpenNeeds testing0DockerUpdate entry scriptTest out all CLI commands as needed within Docker setup. Test different run commands according to docs.
TO1OpenMore config testing needed0TOML ConfigTest all config entriesSee TOML Config tab. Use CLI option --generate_config node|rpc
TO2OpenNeeds testing0TOML ConfigTest that old config entries get updatedvote_generator_delay and active_elections_size should be correctly upgraded to 100 and 10000 respectively, when going from a v19 to a v20 node
PRIO1Open0PoW PrioritizationVerify that high difficulty PoW is prioritizated and confirmation is fastThe QoS on the network is ensured through prioritizing high difficulty PoW correctly. After a saturating stress test, validate that high difficulty blocks were generally prioritized. RPC block_info can be used to obtain the original PoW (i.e., normally not the upgraded PoW, so this test is not compatible with testing re-work - WW1, WW2)
NP1Open0Node w/o Work GenerationValidate that a node can be run without work generationTo disable work generation, set node.work_threads to 0, node.opencl.enable to false and no work peers. Following this, all calls to work generation should fail and have appropriate error messages. See the pull request for more details. Try to find a situation under which the node will hang or not display an appropriate error message.
AD1Closed2Active DifficultyStability of active_difficultyElections that complete within a few seconds no longer count towards active_difficulty. If the node is not saturated, verify that active_difficulty stays at 1.0 or very close. During saturation, verify that it does not have extreme values. Use option "include_trend" to aid in testing.
AD2Open0Active DifficultyDB18+ Stability of active_difficultyVerify stability of active_difficulty again after changes regarding active elections and frontier confirmation
UD1ClosedIssues validated, see UD20PeeringStuck UDP connectionsSome peer connections appear to be switching from TCP to UDP during/after spam events and then won't reset back to TCP without full node restarts. Please keep an eye on peer counts for both TCP and UDP before and after spam to see if it recurs with DB15+. Command for checking counts: echo "TCP $(curl -sd '{"action": "peers", "peer_details":"true"}' [::1]:55000 | grep "\"type\": \"tcp\"" | wc -l) || UDP $(curl -sd '{"action": "peers", "peer_details":"true"}' [::1]:55000 | grep "\"type\": \"udp\"" | wc -l)"
UD2OpenNeeds testing0PeeringUPnP fixesThose who have had issues with UDP peers in the past, enable UPnP logging and check logs for UPnP related messages for successful responses or error numbers indicating failures occured. As long as networks are properly setup to support TCP, you shouldn’t see errors and should have all peers through TCP.
VG1Closed2Vote GeneratorVerify low TPS vote packingAt low TPS, measure the rates of votes being packed together to validate improvements from previous versions. Configuration documentation contains additional details.
CA1Closed1CachingCaching votes for unseen blocksGap cache size increased and cache for votes on missing blocks added, this should allow lower traffic and faster recovery for nodes that fallback on bootstrapping. Under heavy load, for nodes that become saturated and fallback to bootstrapping, watch cache sizes to see at what point they become full and see rate of websocket confirmations with 0 duration (instantly confirmed from cache).
CH2Closed2Confirmation HeightTest different frontier confirmation modesA new config option node.frontiers_confirmation {"always", "automatic", "disabled"} was added, default "automatic". Test that all modes work as intended after an initial bootstrap
NW1Closed2Node WalletProcess wallet blocks outside of block processor queueVerify that RPC send/receive no longer take some time to return, even under heavy load.
WW1Closed2Work WatcherUse the new RPC publish work watching functionalityVerify rework is properly handled when using RPC process. It should happen by default, and not happen when optional "watch_work" is false
WW2Closed1Work WatcherValidate work watcher periodUpdate work watcher period to be more or less than 5s and see if rework is triggered in that time period. The specific period might be slightly inconsistent until PR #2228 is merged.
RPC1Closed1RPCMultiplier option in RPC work_generate and work_validateThe new optional "multiplier" should override difficulty if given, and should be a multiplier off the reduced difficulty of beta. work_generate should respect config option max_work_generate_multiplier.
RPC2Closed1RPCnode_ is used to identify peersVerify that all peer-related RPCs now use the prefix node_ rather than nano_