Skip to content
a7a44f9
Compare
Choose a tag to compare

CHANGELOG

Release V23.0

Full Changelog

Node Configuration Updates

Pull Request Title
#3032 Secure Websocket support and certificate config improvements
#3531 Rep crawler weight minimum
#3377 Removing deprecated lmdb_max_dbs config option
#3282 specify ip notation for preconfigured peers

RPC Updates

Pull Request Title
#3412 Implement "accounts_representatives" RPC (#3409)
#3439 Add receivable along with pending to RPC responses (#3411)
#3429 Add "confirmed" field to "account_history" RPC response (#3424)
#3398 Add deprecation output to "history" RPC (#3397)
#3392 Update RPC & QT Wallet to the new units #3386
#3387 wallet_pending and accounts_pending handle empty results differently
#3343 Fix RPC "active_difficulty" returning empty string as "difficulty_trend" (#3323)
#3337 Add "successor" field to RPC "block_info" & "blocks_info"
#3333 Improve delegators rpc by adding "count", "start", and "threshold" parameters (#3330)
#3277 Extend 'wallet_info' RPC command

IPC Updates

Pull Request Title
#3446 Have CMake copy Flatbuffers schema files to output dir to simplify dev

CLI Updates

Pull Request Title
#3475 Node flag to disable calling add_initial_peers function
#3474 Add some flags to the command line options list
#3465 Fix broken cli commands: wallet_create, wallet_list (issue #3447), diagnostics (issue #3452) and other CLI commands
#3410 Network selector

Developer Wallet

Pull Request Title
#3619 Update images for README and QT wallet to be new symbol
#3546 Fix crash in nano_wallet when ran with --config option
#3437 Replace "pending" with "receivable"/"ready to receive" in QT wallet (#3411)

Developer/Debug Options

Pull Request Title
#3582 Include election.confirmed outcome in log
#3438 Replace "pending" with "receivable"/"ready to receive" in node logs (#3411)
#3369 Remove 1 sec socket timeout in dev mode (becomes 2 sec as in normal m…
#3297 Split election drop stats to be either overflow or expired
#3310 Warn if the limit for open FDs is lower than recommended

Fixed Bugs

Pull Request Title
#3623 Modifies the silent connection checker to inspect sever-side incoming messages only
#3593 Adding detail string for request_underflow.
#3590 Check and track request underflows in bootstrap/realtime message processing.
#3591 Specifying macos toolchain explicitly to 10.15 rather than tracking latest.
#3587 Fixes the early drops of not yet timed out connections
#3568 Add wallets::start() function for deferred start.
#3563 Fix a couple issues found with TSAN and add a suppression for Crypto++
#3556 Disable intermittently failing UT node.vote_by_hash_republish
#3558 Disable intermittently failing UT bootstrap_processor.push_diamond
#3560 Disable intermittently failing UT rpc.send_epoch_2
#3550 Fixes/splits vote_processor.no_broadcast_local
#3511 Handle SIGABRT and SIGSEGV on Windows
#3275 Fix for RPC stop command (#3191)
#3500 Endianess fix for vote timestamp field (does not affect x86)
#3502 Fix handling of SIGSEGV and SIGABRT in nano_node
#3459 Fix a crash that would sometimes happen in debug builds at handshakes
#3445 Fix fill_keepalive_self so the low index entries aren't clobbered.
#3442 Remove node_id_handshake_sockets as unneeded.
#3428 Fixing QT ratio selection
#3422 Fix daemon_config active_network.
#3380 Adding 'explicit' specifier to uint256_constructor for strings.
#3379 Removing incorrect TCP assert
#3375 Updated diskhash repo and code version
#3340 Fix counting of voting representatives #3339
#3315 Fix TCP accept handling when max incoming connection limit is reached
#3311 Remove election blocks () debug assert
#3298 UPnP leases issue

Implemented Enhancements

Pull Request Title
#3569 Refine election scheduler lock.
#3567 Turns off sub-network connection limiting for IPv4
#3564 Improve and simplify a number of network limiters
#3548 Adding duration to vote timestamps.
#2921 Deadline timer cleanup
#3544 Vote timestamp encapsulation
#3540 Remove election limiter from call site in confirmation height processor
#3541 Updating miniupnp to v2.2.3
#3507 Brings back broadcasting blocks on process_live
#3388 Refer to empty/null accounts as nano::account{nullptr}
#3443 Remove callbacks passed through start_tcp
#3461 Fix the bootstrap request queue processing
#3420 Remove static instantiation of network_constants
#3414 Removing legacy path from nano::working_path
#3413 Removing static initialization of nano::network_params
#3406 Converting sever static initializations of nano::network_params to references
#3408 Removing static mutex for the random pool
#3403 Changing nano::block_store_partial to hold nano::ledger_constants by reference
#3402 Passing nano::ledger_constants in to nano::ledger
#3394 Moving networking related parameters off of the node config
#3391 Remove nano::genesis class
#3383 Cleaning up genesis_dev constants
#3368 Convert static network id code to instance code
#3324 Depth-first search ledger walking
#3364 Message sink interface
#3358 Fix half principal rep check
#3280 Remove election restart by difficulty
#3304 Increase soft limit for number of open file descriptors
#3308 Increase tcp_incoming_connections_max default value
#3281 Prevent not processed blocks addition to confirmed elections list

Build, Test, Automation, Cleanup & Chores

Pull Request Title
#3670 Update live rep weights file for V23
#3671 Setting version for release.
#3566 Update beta rep weights file for V23.0
#3565 Update live rep weights file for V23
#3547 Removing old (disabled) conflicts.add_two unit test
#3545 Fix conflicts.add_two unit test
#3536 Disable intermittently failing unit test
#3532 Disable intermittently failing unit test
#3525 Include <csignal> for std::signal usage
#3526 Disable intermittently failing unit test
#3512 Disable (intermittently) failing unit tests
#3510 Improvements in const correctness and 'const' positioning
#3509 Fix Windows build (signal handling)
#3506 Formatting rules update -- indentation rules improvements
#3505 Add [[nodiscard]] attribute to node::process method
#3497 Possible race condition fix in ledger_walker.ladder_geometry test
#3488 Cleanup qt_system remnants (#3189)
#3353 Update FlatBuffers to release 2.0.0
#3492 Comment on_connection_requeue_delayed
#3487 Minor improvements to slow_test
#3486 Redesign CI format check/update scripts according to review
#3470 Fix cmake-format-all.sh script + friendlier xargs usage
#3468 Add systests to CI and fix for rocksdb mode (issue #3447) (issue #3452)
#3479 Fix unit test case node.search_pending_pruned
#3477 Fix for unit test rpc.epoch_upgrade #3476
#3469 Fix Windows build
#3467 Fixing OSX formatting issues.
#3462 Improve clang-format detection & enforcement
#3460 Make code formatting compliant with clang-format 12
#3454 Require fixed version of clang-format
#3450 Fix CI clang-format script: tell if clang-format cannot be found
#3441 Removing null checks for nano::bootstrap::socket
#3440 Removing unused variable channel_tcp::response_server
#3435 Convert nano::bootstrap_connection::connections to a reference
#3434 fix failure to build with GCC11
#3433 fix failing build with boost >= 1.76
#3416 Update major version to 23 and add pre release version 99
#3418 Remove qt_system target we dont need it or use it
#3415 test_common not required for qt only for qt_test
#3407 remove errexit ghcr.io has some edgecase rules, and isnt required for…
#3405 Fix typo on CLI online_weight_clear success message
#3395 update clang-format checks for full history
#3396 Remove wezrule from security policy
#3393 Update README.md
#3384 Update CMakeLists.txt
#3055 Weekly Coverage Runs to coveralls.io
#3381 Cleanup of genesis constants within ledger_constants
#3373 Remove load_test from github CI
#3374 Fix ledger_walker.genesis_account_longer unit test on macOS
#3372 Disable compilation/usage of diskhash on Windows
#3370 Remove tautology: send_buffer was called on channel so it must be non-null.
#3371 Fix build after merging PR 3324
#3365 Fix race condition in unit test websocket.bootstrap
#3359 Moving socket type entirely in to nano::socket class.
#3363 Double unit test timeout in github CI
#3361 Fix for unit test active_transactions.vote_replays #3360
#3362 Fix for unit test bulk.offline_send
#3332 System initializer
#3357 Removing unused constants from enumeration.
#3356 Simplify RPC tests response check
#3352 Update GoogleTest to release 1.11.0
#3354 Update Crypto++ to release 8.5
#3347 Simplify RPC tests initialization
#3351 This disallows passing in a nullptr socket in to bootstrap_server.
#3350 Rename socket::type_t
#3345 fix unit test socket.max_connections
#3336 Fix for network.peer_max_tcp_attempt
#3344 Fix unit test node vote republish
#3341 Fix code formatting
#3338 Fix unit test deferred dependent elections
#3328 Fix for active_transactions.pessimistic_elections unit test
#3326 Removing redundant check in telemetry limiter.
#3329 Block store break up
#3334 Don't reference get_available_port from within the node lib.
#3331 Moving the check "using_rocksdb_in_tests" on to rocksdb_config
#3327 Test case for max incoming tcp sockets limit
#3325 Unchecked store break up
#3318 Moves out peer methods from the block store class
#3317 Moves out pruned methods from block store class
#3319 Moves out confirmation height methods from block store class
#3320 Moves out final vote methods from block store class
#3306 Account store break up
#3316 Online weight store break up
#3309 Fix compilation failure on OSX.
#3307 Pending store break up
#3296 Election scheduler predicates
#3303 Fix build issue
#3286 Fix last contacted
#3302 Election cleanup cleanup
#3287 Frontier store break up
#3283 Simplify inactive_votes_cache_election_start test
#3279 Improve confirmation_height.gap_live core test

Other

Pull Request Title
#3595 Update CPACK_PACKAGE_VERSION_PATCH for V23.0RC2
#3378 Enable blank issue with preference noted for using pre-set templates
#3278 Update deploy-docker.sh
Commit Title
0176d6c7 Double max_peers_per_ip and max_peers_per_subnet (5 -> 10 and 20 -> 40)
242e9e38 Updating version for V23.0RC1

Additional binary releases:


Hashes and GPG Signature (keys located in source etc/gpg/).

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Below are the sha256 sum hashes for version 23.0 release artifacts
Signature Verification can be run against argakiig.asc in source repo (etc/gpg/)

3ad1b447af41e5c15f0ab593211fd99c05d290ac99f17452d6e7ab87ffe6a64d  nano-23.0.tar.gz
626d3859104e1a49a8d0246dfb961675570e87a6d829e14d07e7cbaecaac4037  nanocurrency-23.0-26.el7.src.rpm
aac1ced1c6f1edcd640c5a3df2664b3b961f9fcfaf73647d9aff5c2479c779fc  nanocurrency-23.0-26.el7.x86_64.rpm
6c9820e41e8d0dbfdfeda23d1f88ad824138ab5f89e34a51d98edb69b6fde336  nanocurrency-debuginfo-23.0-26.el7.x86_64.rpm
2cd67cfda8b52b445a2173b7b46cbed1d7a60b9fbf46962a80774109b1204e31  nano-node-V23.0-Darwin.dmg
d666f65af1136fe82f126ac5a25900ff680bf1343285566baca0fb1857809c0b  nano-node-V23.0-Linux.deb
1f4ee8bffbfc05a843afdfe1711a014ac9003b67e0bd02038a57cc3018e27eca  nano-node-V23.0-Linux.tar.bz2
38f8a05b0d258f58336d154f1090a2a6aa6cd656978297fbbb79cab263fad09a  nano-node-V23.0-win64.exe
dbf9231d22354c33244b53d4e3f64ba79c884c022e96263638e0de8a777cf87d  nano-node-V23.0-win64.zip
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAmHltkgACgkQgERoJPn9
Olr7+Qf8CVkSgSfqW7RiT0T3P5T4YnHppLuUBgjjY9q9fU9WrIQ6sE3H5qnYvIcE
6VMkqUS8lyvPdR2fwaifJxU3lpRn4bO497dw6uLAwHsedi+HPg2d4gsErpe1Vfim
GRHH+r6/URLjigOb0PmBFWNOyjaIXyAnTSyvXFLBvgXewQrs4b4XRJM2bTuQwXzs
rv6NTGqwC+CzPXBHhz+ni+tBhsZNWT5qCoPAixuLZH1JL/jf+Vbzlncp9FdiFw+D
2vF/smu+8BTTSnT4sEr9SQExeR7zdr/tq+ORXwK3370dUMshP7S6LX2TcdQgWmN6
g+SVt/hxCJzY+cHHtGhLpje24xm20A==
=oqUL
-----END PGP SIGNATURE-----
d91016b
Compare
Choose a tag to compare

CHANGELOG

Release V22.1

Full Changelog

Fixed Bugs

Pull Request Title
#3315 Fix TCP accept handling when max incoming connection limit is reached
#3298 Fix UPnP leases not being renewed in case of errors

Implemented Enhancements

Commit Title
ac7a3e26 This change simplifies logic in the election scheduler.
03debef9 Increase soft limit for number of open file descriptors
874f0984 Increase tcp_incoming_connections_max default value

Additional binary releases:


Hashes and GPG Signature (keys located in source etc/gpg/).

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Below are the sha256 sum hashes for version 22.1 release artifacts
Signature Verification can be run against argakiig.asc in source repo (etc/gpg/)

aa95c0590f9366043a451720dd5c60e07760ba9a3f075b1ce508c59dcaed33bd *nano-22.1.tar.gz
1de53c226724364ba24285b554b714b2b19ace78f1ac28c176d8c40f86029097 *nanocurrency-22.1-25.el7.src.rpm
9ac81a65f6d13d64c5b73614ceba53a2d94ddd108c251ea4c52ee771a41f988b *nanocurrency-22.1-25.el7.x86_64.rpm
b65d150f6720b0e86f2b97be36c8a4f8c7b6f7f4d3691a73ed941b822fad6189 *nanocurrency-debuginfo-22.1-25.el7.x86_64.rpm
ca62f12563244679521fa9f2fdbba5a07e008faabb6e59ced5961cfca1bb9f04 *nano-node-22.1.0-Darwin.dmg
d106cde7a6dae3a71e2ce1f74ab3b47cba1eb119e9e4e6d98cd13a0e6ef76248 *nano-node-22.1.0-Linux.deb
00fcf256f618e68dfb74f0c74f79815245365eb492a5a1482870bca4b5ad76b3 *nano-node-22.1.0-Linux.tar.bz2
6D9DE27F0E1543E4F1AB82F5DFD08E6F177488D51E4F12F149D2639CD22731C3 nano-node-22.1.0-win64.exe
4543A2FFE0DA19AB73673E718F811C9CD37334AE23B40FAB489883AC2D252739 nano-node-22.1.0-win64.zip
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAmDZ9sUACgkQgERoJPn9
Olq1Jwf/RDWWBpQNoG/ORKc8/Hu/rdchmafvoqKn4xxbpdX0m/2/DTqKWuRCUPI7
+0hVZ4QE9Fp/8d+7uM0DT0CtGwcKgFwgxn81vMHlUnNqj8hXQ57aFQowBtL5deNS
lBLuXupz3jbrZ/l/iRtJ6aXGOeI1W3+JUsL/pxBjNfxxi9qqF4+ONONDV33L5A7/
N74iQcJK6+OVnyiutndx1V+/804XrjL+i532gz1joGa/Hi96lYtrN1foHAdD00iq
ZNUoEE7j45yfba3huUR5HtmZiutw9yTjDgH3/pIx6xEfxzlDEDAelhdZnm9CTMhM
wU1Ul2ujQZkIRLmGLw9ldHqTTovgKg==
=uuH5
-----END PGP SIGNATURE-----
ef09e55
Compare
Choose a tag to compare

CHANGELOG

=========

Release V22.0

Full Changelog


Major Changes

Pull Request Title
#3208 Election scheduler
#3190 Prioritization
#3134 Final votes
#2881 Experimental ledger pruning

Protocol Changes

Pull Request Title
#3152 Optionally send confirmed frontiers

Node Configuration Updates

Pull Request Title
#3282 specify ip notation for preconfigured peers
#3148 This decreases the confirm_req_batches_max from 20 to 2
#3120 Increase default max LMDB size
#3122 Update online_weight_quorum toml comment
#3052 Update online_weight_quorum default to 67
#2998 Rollback messages config
#2947 [Pruning] Pruning configuration settings
#2855 Simplify RocksDB config options
#2832 Set default bootstrap initiator threads to 1

RPC Updates

Pull Request Title
#2843 BREAKING Change node_id from hash to account in telemetry RPC/websocket
#2977 BREAKING [Pruning] Support pruned chains in RPC & QT wallet
#3015 BREAKING Remove payment RPC
#2884 BREAKING Confirm delta
#3060 BREAKING Pending RPC to sort by absolute amounts when returning a subset
#3237 Change return details for "bootstrap_lazy" RPC
#3276 Default include only confirmed data for RPC supporting it
#3267 Deprecate RPC active_difficulty instead of removing it
#3147 Limit frontier request block count by default
#3080 Optional async for process RPC
#3039 Add confirmed_height in account_info RPC to be consistent
#3022 Add include_only_confirmed to account_balance & account_info
#2916 Fix error with work_cancel RPC request
#2874 Fix inconsistent online representatives list from RPC
#2903 Provide network_receive_minimum in RPC/WS active_difficulty
#2852 Stats RPC to print out rocksdb memory stats
#2829 Merge block databases

Websocket Updates

Pull Request Title
#3260 BREAKING Remove elections difficulty sorting
#3016 Add option to include votes in confirmation websocket

CLI Updates

Pull Request Title
#3050 Update CLI commands missing checks for reading config and overrides
#2979 Migrate LMDB database to RocksDB with new CLI command
#2950 Use multiple threads in CLI debug_account_versions and debug_unconfirmed_frontiers
#2915 Don't delete crash dump files with --debug_generate_crash_report
#2889 Modify CLI --debug_account_versions for epoch upgrade tracking
#2845 Display hardcoded and ledger block height in compare_rep_weights
#2861 Fix CLI test --debug_profile_bootstrap
#2835 Allow unescaped quoted strings with --config CLI
#2685 Improve mutex handling when generating stacktraces with NANO_TIMED_LOCKS/txn tracker
#2822 Prevent CPU usage in --debug_opencl

Developer/Debug Options

Pull Request Title
#3144 The build info shows following description: \
#2765 Allow filtering a specific mutex for tracking with NANO_TIMED_LOCKS
#3077 Add debug/release_assert overloads which output error message strings
#3065 Improve message logging for bulk pull requests
#3031 Remove debug_assert which is hit calling block_confirm on already confirmed block.
#2932 Fix nano::timer tick update after stopping
#2777 Add uncemented frontier output CLI command
#2836 RocksDB tests
#2912 Recognize IPv4-mapped loopback addresses
#2909 Add support for defer_lock in nano::unique_lock
#2888 Make logging election tally an optional config
#2880 Logging exception handler and fix for stable_log_filename on windows
#2877 nano_test_network => nano_dev_network, new nano_test_network
#2844 Add time retrieval latency profile to CLI diagnostics
#2681 Add ASIO completion handler tracking
#2840 Different log when the OpenCL library cannot be loaded
#2839 UPnP basic logging messages are more frequent than intended

Fixed Bugs

Pull Request Title
#3273 Fix active transactions pruning regression
#3274 Duplicated foward-reference declaration
#3269 Fixing 3-cycle possible deadlock
#3265 Election flush
#3252 Fix block processor add issue
#3158 Fix FreeBSD build error: "Cannot find source file: plat/plat/default/debugging.cpp"
#3146 clear_send_ids in vacuum/snapshot is using wrong txn object
#3142 Enable write tx for vacuum operation
#3106 TSAN error in confirmation height unbounded
#3051 Wallet create causing crash when confirming blocks
#3084 Fix online reps live votes update
#3085 Wallet store adhoc keys inconsistency with reps container
#3069 Add --rpcconfig option and fix wallet config bug
#3018 Fix qt wallet hitting a debug_assert when creating blocks
#3072 Removing duplicate roots from the same vote
#3035 Renew UPNP port lease
#3019 Enable OpenCL on macOS
#3020 Properly initialize array of atomics in ws server
#2997 Fix repcrawler loopback channel guard
#2983 Wallets search pending deadlock
#2957 Prevent immediate cleanup of new channels
#2966 Check if awaiting collection is empty before waiting on condition in conf height processor
#2956 Don't null out telemetry object
#2940 [RocksDB] assert compare data and not the address on iterator operator==
#2929 socket_server should accept and drop connections during overflow
#2897 Increase confirmation solicitor single-round caps
#2887 Avoid potential deadlock in work watcher
#2862 Don't crash using read-only CLI command with no ledger
#2837 UPnP existing lease and other misc enhancements
#2828 Invoke callbacks even during socket closures
#2833 Unresolved forks during initial bootstrap
#2831 Fix TCP message manager not notifying producers
#2825 Fix requeue pull for lazy bootstrap
#2823 Pre-sample block rate for bootstrap connections

Implemented Enhancements

Pull Request Title
#3281 Prevent not processed blocks addition to confirmed elections list
#3128 Update issue templates
#3257 Sighup reload bandwidth params
#3251 Change default active elections size
#3246 Remove frontiers confirmation start only after reaching cemented > hardcoded
#3211 fixes sha256 sum file generation
#3232 Block builders can only be used once, initialize at top of loop.
#3231 Check bulk push availability
#3188 Modernize unit tests: construct state blocks via builder
#3221 Refactory of block processor thread
#3218 Support pruned block with ledger::dependencies_confirmed function
#3164 Resolve issue with inactive votes cache not triggering elections to start
#3187 Modernize active_transactions::restart
#3185 Election encapsulation
#3186 Add vacancy metric to active transactions container.
#3181 Fix/Update the clang-format version to 10
#3174 Election start encapsulation
#3108 Add gap pending epoch open blocks to unchecked
#3155 Limit bulk pull processing for possible existing blocks
#3100 Reverse store iterator and selector for last record
#3173 Removing broadcasting state
#3149 Remove bootstrap restarting code
#3154 Throttled removal of rep crawler targets
#3107 Check open file descriptor limit, warn if low
#3098 Use frontiers age option for frontier_req client
#3136 Remove recently dropped check to restart elections
#3118 Disable peers banning after frontiers confirmation
#3125 Inactive votes cache timestamp
#3079 Republish difficulty updates to elections
#3103 Bootstrap tests improvements
#3117 Remove lazy destinations check
#2532 Add histogram support to stats
#3116 Move related blockstore functions together
#3110 Replace private_key uses with raw_key
#3101 Add worker task queue count to the stats
#2758 Store whole block in confirmation height processor queue
#3058 Various consistency changes
#3038 Remove epoch2 started code
#3081 Revert coroutine changes for core & rpc_test
#2871 Combine alarm and worker threads into a pool
#3086 Remove boost process code
#3059 Improve inactive votes cache memory allocation
#3029 Modify std::shared_ptr value parameters to const refs
#2763 Vote spacing
#3014 Remove telemetry signature partitions
#3048 Update online weight before checking quorum
#3026 Storing blocks according to tally in elections with forks
#3027 Republish only winners for forked elections
#3068 Limit failures for confirmed lazy bootstrap bulk pull
#3071 Moving voting constants in to their own class
#3064 Remove timestamp count in votes
#3040 Remove unnecessary heap allocations during ed25519 hashing
#2883 Remove conf height put during ledger processing on a newly opened account
#2994 Include block to fork confirm_req response
#2996 Erase dropped forks from the duplicate filter
#2879 Packed timestamp
#2925 Election mutexes to remove heavy active mutex contention
#3013 Add pruned node to maker
#2820 Using post-processing events for all operations
#3001 Constifying shared_ptr parameters to various functions.
#2976 [Pruning] Support pruned blocks in bootstrap actions
#2991 Avoid locking the work_watcher mutex in the request_confirm loop
#2992 [Pruning] Wallet receive action & search pending for pruned blocks
#2974 [Pruning] Accept pruned-related blocks in blocks processing & rollback
#2978 [Pruning] Support pruned blocks in confirmation height processor & active transactions
#2975 [Pruning] Use pruned blocks in rep crawler
#2987 Set thread names in db parallel traversal
#2981 Change usage of latest to accounts for consistency
#2982 Add timing_logging check before conf height timing output
#2938 [RocksDB] Modify some table/column family settings
#2863 Resolve data type conversion warnings
#2968 [Pruning] Ledger pruning functions
#2918 Move channel drop policy off of nano::socket and remove channel concurrency value as redundant
#2961 Election encapsulation
#2960 Removing unused variables.
#2936 Converting nano::socket::note from weak_ptr to node to a plain reference
#2955 Directly use socket shared_ptr in bootstrap_client
#2937 Use node::receive_confirmed synchronously
#2939 Convert nano::network periodic functions to use a steady timer instead of callbacks
#2865 Move all vote generation to the voting thread
#2934 Retrieve copy of wallets in scan_receivable
#2876 Improve ledger cache initialization with multiple threads
#2926 Non-functional change to clean up header inclusions.
#2761 Require explicit conversion from root/link to block hash or account
#2896 Atomic representation weight changes
#2856 [RocksDB] Use different column family options and prefix extraction for unchecked table
#2860 [RocksDB] Manually flush memtables if there are a large number of tombstones
#2914 Removing channel::callback
#2885 Add cemented frontier successor confirmation in request loop
#2907 Renaming ledger::can_vote to ledger::dependents_confirmed
#2788 Use Boost.Coroutine with asio/beast async calls in tests
#2902 Use improved OpenCL kernel
#2901 Relax mutex requirement for retrieving active difficulty
#2904 Increase default bootstrap interval
#2900 Temporarily pause the request loop in extreme situations
#2895 Constrained successor and destination block activation
#2894 Extracting votes cache bootstrap start function
#2891 Remove election fallback behaviors and adjusted multiplier calculations
#2886 Inactive votes election hint
#2890 Election insertion cleanup
#2850 Epoch 1 legacy blocks work validation before processing
#2854 [RocksDB] Use estimated unchecked count
#2795 Write database queue functions should be NoOps with RocksDB
#2872 Remove UDP status/stats dead code
#2873 Add source block epoch to sideband information
#2849 Cleanup nano::process_return
#2827 Local votes history to replace votes cache
#2679 Make std::condition_variable::wait* compatible with NANO_TIMED_LOCKS
#2858 [RocksDB] Do not fill block cache from ranged iterators
#2848 Unnecessary frontier_get when processing state block forks
#2756 Use block cache from unbounded processor when checking if block is processing
#2842 Specify OpenCL clCreateBuffer() flags
#2821 node config spelling errors
#2736 Improve distributed_work_factory item management
#2775 Refactor shared testing code from core_test
#2770 Remove node v18 and earlier upgrade support

Build, Test, Automation, & Chores

Pull Request Title
#2878 BREAKING Enforce Cxx17
#3283 Simplify inactive_votes_cache_election_start test
#3279 Improve confirmation_height.gap_live core test
#3254 New Rep weights live file (#3238)
#3272 Adjust node.aggressive_flooding test
#3270 Adjust active_transactions.pessimistic_elections & network.last_contacted
#3258 Prevent blocks conflict in RPC pruned tests & improve confirmation in RPC pending tests
#3259 Update active_transaction.inactive_votes_cache_fork with election scheduler changes
#3131 Update MiniUPnP to version 2.2.2
#3183 stop deploying live on latest
#3215 Updating unit tests in preparation for election scheduler changes.
#3184 Fixing test issue found with asan.
#3132 Update GoogleTest to release 1.10.0
#3172 Test fix
#3135 Update beta genesis and magic number from V22.0DB10 reset
#3129 Improve elections related tests
#3130 Database final votes support
#3042 Make fuzz_buffer compile again after message_parser changes
#3123 Update missing nano::mutex changes
#2629 Make bootstrap_processor.process_state more robust under tsan
#3102 Fix test rpc.confirmation_active
#3096 Add missing include(msvc2017)
#3093 Process async test should use state block
#3090 Add recent constref change to rpc secure as well
#3088 more changes regarding github actions security hardening
#3082 Increment retry date string
#3062 Fix intermittent node.bootstrap_bulk_push failure
#3061 Deploy "Test" net artifacts correctly
#3057 follow lib naming convention of pre-compiled boost on windows
#3044 Fix intermittent rpc.receive_work_disabled segfaults
#3056 Fix copy pasta error with test network variables
#3054 Allow for manual triggering of artifact runs
#3053 cleanup various scripts
#3037 Customizing Test Network Parameters
#3043 Fix rpc online_reps unit test
#3049 Fixing boost to 1.70 on windows via artifact cache
#3034 github container repo
#3033 Allow [[deprecated]] attribute
#3024 use $GITHUB_ENV instead of set-env
#2972 Translate some tests with UDP functionality to TCP
#3025 Update to correct rocksdb submodule commit
#3010 Update RocksDB version to 6.13.3
#3005 Adding plist files to ignore filter.
#3000 add test network to build artifacts for non DB tags
#3006 Remove Guilherme's pubkey from security policy
#2995 Make entry.sh more portable by removing all bashisms
#2969 Fix link to contributors guide
#2990 correct lib install path for nix
#2988 build bootstrap artifacts to be compatible with rpath linking
#2984 Add coroutine/context boost shared libraries to the artifacts
#2980 Fix intermittent failure of node.local_votes_cache_generate_new_vote
#2973 Beta reset in prep for rocksdb heavy testing
#2964 update LD_LIBRARY_PATH for building
#2971 This fixes a race condition in node.node_receive_quorum.
#2967 [Pruning] Pruned blocks slow test
#2962 Fix rpc.send_fail TSAN failure
#2943 Add RocksDB as a submodule
#2948 Use 1 thread to service I/O operations to allow TSAN runs.
#2941 Avoid duplicate workflows for local pulls
#2933 Fix core_test build with Boost 1.74
#2930 [RocksDB] Set max_write_buffer_size_to_maintain explicitly
#2928 Move forward rocksdb minimum
#2935 Update beta V22 bootstrap weights following reset
#2927 Fix build error when using NANO_TIMED_LOCKS_IGNORE_BLOCKED
#2919 [TSAN] minor race in rpc.send test
#2911 Add Boost.Coroutine to bootstrap_boost.sh script
#2908 Frontier confirmation cleanup
#2905 Lower request loop min_sleep for tests
#2898 Docker base update
#2847 Changelog generator grab pull from commit message
#2868 Increment major version to 22
#2830 Beta reset for V22 development
#2859 extend test retry deadline 12/31/2020 23:59:59 UTC
#2834 update lmdb to 0.9.25
#2838 Fix secure RPC build on msvc
#2780 Use ASSERT_TIMELY in tests where possible

Other

Pull Request Title
#3127 Limit peers per subnetwork
#3209 Project-wide update with clang-format-10 and new formatting options including initializer-list indentation.
#3206 Fixing static initialization order on Window
#3180 Add new GPG public key
#3170 Add new GPG public key
#3124 Change qualified root from previous-root to root-previous
#2970 Transport loopback channel
#2946 [Pruning] Basic pruning blocks storage & database upgrade
#2944 Use empty uint8_t peer data
#2920 [RocksDB] Reduce number of blocks processed in batch by block processor

Other Updates

Commit Title
ef09e55c Merge pull request #3284 from nanocurrency/v22rc2_cherry_pick
2a3afcb1 Correcting version number since we don't use _PATCH numbers.
21097ccf Increasing patch release number to signify V22RC1
2b23fd47 Qt test: disable wallet.status and introduce wallet status with peer
6838a59a Remove x or pruned exists fn (#3216)
f801b615 Bugfix: signal handlers called twice for each signal received
a0f90721 Do not repeat core_test in CI
ebc851b1 Fix tests quorum_minimum_confirm_fail, quorum_minimum_update_weight_before_quorum_checks
7672d4ed Fix core test case election.quorum_minimum_confirm_success (#3242)
9e04e156 Remove printing of log to stderr (file descriptor limit too low)
7b1b51c4 Handle signals with boost asio signal handler
5e1aa73c Merge pull request #3219 from dsiganos/dimitrios_siganos_gpg_pubkey
29e3a1dd GPG public key for Dimitrios Siganos
5f8e4d7d Merge pull request #3063 from cryptocode/unit-fix-work_watcher-confirm-while-generating
c8630c09 Merge pull request #3028 from SergiySW/network/tcp_endpoint_value
f15adfeb Merge pull request #3078 from cryptocode/wallet_republish-rpc-fix
d473d21c Fix wallet_republish crash during bootstrap
ad0a92f7 Fix intermittent work_watcher.confirm_while_generating failure
3839e8cc Persistent TCP channel endpoint value

Hashes and GPG Signature (keys located in source etc/gpg/).

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Below are the sha256 sum hashes for version 22.0
Signature Verification can be run against argakiig.asc in source repo (etc/gpg/)


071da96356f76ba60c67305af132ae697792d34e2655701480156456035d2dde  nano-22.0.tar.gz
ad1876c81467aa8331d1d757b281a5a7de6458446fd7d98c15f999825feea78d  nano-node-22.0.0-Darwin.dmg
df12accaba4ceda6eb968a9f5f44e3b57b559253aeac3f0f3136b7470ffc59a5  nano-node-22.0.0-Linux.deb
9e23956746b3b02fc575a2c917ae20b0bc786893c4c679217b1353393af647ce  nano-node-22.0.0-Linux.tar.bz2
9C682A2BD4EEF5BA8B87B8B8A92D210626A0AE96F680D6C570A2AE8DEAFEF63A  nano-node-22.0.0-win64.exe
77B694EB60019C856B9D83C4F19E102EEAEBC110BFE12EF85CD6B2167869DE26  nano-node-22.0.0-win64.zip
7719030a877a5726456da4d295729f16bc6820850a1687298886d9ce90dce636  nanocurrency-22.0-24.el7.src.rpm
47951a776507f6c8dd71a92af4cfd76fb8d459dbc2d716cad585135cc5911aa4  nanocurrency-22.0-24.el7.x86_64.rpm
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEc+pdEgPPsADHbxJjyW2zlQ3kDroFAmCfVwEACgkQyW2zlQ3k
Droy8wgAg1DYOVW55IJpVSBiBLROtRXg7eqWCanne4/1FA0qMscWHbMdMU1NSXCS
TrFoJLPxSf4RIKJMk1RwB6Hyo9hmLqWBYGjYJFOlvQOkv9O0xW3eZIVmtGoYB3Ic
rYlzHP+RbxFGP8v/sR9E3S+MjVxvOe0caOmrAz69b6rsCe+C+7er1F1jxnI6vqDY
RD5GtI/cSgkMlA3gY/7CG28mx2Seyix5GBnDhWD0Hxqc6yzCH+XIhTRPsHiEjb3M
oHt1pTIKTFPVjnCEBvOpN6tsb4KoKHTyr7eMX8FFm8hnIhKrQ5TEU3xYy3Lxo9Ci
hLe0z5fMKIaU3Ul2B4SKQxXDUFJd5g==
=itw8
-----END PGP SIGNATURE-----


cf3d4f3
Compare
Choose a tag to compare

CHANGELOG

Release V21.3

Full Changelog


Pull Request Title
#3140 Various synchronization fixes (see PR for details)
#3157 Update live bootstrap weights

Additional binary releases:


Hashes and GPG Signature (keys located in source etc/gpg/).

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Below are the sha256 sum hashes for version 21.3 release artifacts
Signature Verification can be run against argakiig.asc in source repo (etc/gpg/)

5fd4d10e85deca133851f1be17735a76810ca508ebca413902396123b1604006  nano-node-V21.3-Darwin.dmg
b998f4d3c2d32a2da2f46799312bfb6069b9b28d63e40bb7e8df3bc67541a082  nano-node-V21.3-Linux.deb
185fbe1f355a8cda9e91d9df671aae27e186bf9eb199eb43a38767ae1d591593  nano-node-V21.3-Linux.tar.bz2
ccfdf48266e126a55e2c3a50d8a2eae87b4e1971bdc92eae3ae27e7f25d69225  nano-node-V21.3-win64.exe
835b0516a92c42238c6d1df429a15a3c97d462da2be06cb15de4457113476c06  nano-node-V21.3-win64.zip
2ebf52b682585762294ce92f4b3eae552e51eb97824ec78e71921264b6017780  nanocurrency-21.3-23.el7.x86_64.rpm
d8dfa1ae2dda7c6f4e3456ee701b67c11c7cab452b6c5faf1ee957b107b84197  nano-21.3.tar.gz
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAmBWeO0ACgkQgERoJPn9
OlqakQf/RPV338bOOr/DCscV3B/qFpGHeZyB+Z9Wc2g3V2pSiL/Q8lNRlbXybIlC
73FmMICn9TUbQurpC+uc/jjB1XUWBowuJP4mjN/RZe1YSL+hGT2aah4BDJoXxIjw
wmdg21In3rAvNDebB6nkUNT2y8bIgvboJATa5Rhkya6nUN5FtBu8MGMIZZKWPz4F
0BGYL9dDdr/xcLDbgDN8jKmdiUiKn3t1BTJ0ajaSGyWkfDeUuWKku1B2vH6Y5mfq
Xwm/z2XmiJuC2Z6NR898Vojvj/wAaaqoQHD72QpEntcLh0Ve/BDC98EgT5I8GdAn
t9hM/3vs1xi5xv3qRNmlF08CYlMGMw==
=E9PS
-----END PGP SIGNATURE-----
5160073
Compare
Choose a tag to compare

CHANGELOG

Release V21.2

Full Changelog


RPC Updates

Pull Request Title
#2903 Provide network_receive_minimum in RPC/WS active_difficulty

IPC Updates

Pull Request Title
#2892 Add random id to RPC send via IPC if not included

CLI Updates

Pull Request Title
#2889 Modify CLI --debug_account_versions for epoch upgrade tracking

Developer/Debug Options

Pull Request Title
#2888 Make logging election tally an optional config

Fixed Bugs

Pull Request Title
#2897 Increase confirmation solicitor single-round caps
#2880 Logging exception handler and fix for stable_log_filename on windows
#2887 Avoid potential deadlock in work watcher

Implemented Enhancements

Pull Request Title
#2885 Add cemented frontier successor confirmation in request loop
#2907 Renaming ledger::can_vote to ledger::dependents_confirmed
#2902 Use improved OpenCL kernel
#2901 Relax mutex requirement for retrieving active difficulty
#2904 Increase default bootstrap interval
#2900 Temporarily pause the request loop in extreme situations
#2895 Constrained successor and destination block activation
#2894 Extracting votes cache bootstrap start function
#2891 Remove election fallback behaviors and adjusted multiplier calculations
#2886 Inactive votes election hint
#2890 Election insertion cleanup

Build, Test, Automation, & Chores

Pull Request Title
#2909 Add support for defer_lock in nano::unique_lock
#2908 Frontier confirmation cleanup
#2905 Lower request loop min_sleep for tests
#2830 Beta reset for V22 development
#2859 extend test retry deadline 12/31/2020 23:59:59 UTC

Additional binary releases:


Hashes and GPG Signature (keys located in source etc/gpg/).

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Below are the sha256 sum hashes for version 21.2 Athena
Signature Verification can be run against argakiig.asc in source repo (etc/gpg/)

e1b9841de8c4d41875ccb744df46426137a7046b98846057093f796304633514 *nano-21.2.tar.gz
3715a3b8c1ffb80a57258e7c70be0037a7cbcacb32f6124f445a31df1345773d *nano-21.2.tar.gz.sha256
6ebe730cb155b56583d8bc1991b2f0d66ff2934d024d35c28b5988f3fa219ae0 *nanocurrency-21.2-22.el7.x86_64.rpm
458f67e95382d1de7b7ab251c5a15c9cb05a4e05a47a6312e6ec9f378932b404 *nanocurrency-21.2-22.el7.x86_64.rpm.sha256
a5f6a987b1516495afc64810b41003f0332de49ec4d54b6f1ed652dbba7f5896 *nano-node-V21.2-Darwin.dmg
1077ec1c28f5100ee32b4a385c5c1e35b2ad39ddd0cea8efc2560e7a0e655c83 *nano-node-V21.2-Darwin.dmg.sha256
babd8b76575e7d1407030d658f6c5f0e7f6cd9084fd3fc3e7e8646062268d54e *nano-node-V21.2-Linux.deb
6f5ec08fcc15a174906a90454e8ee293759a6a359bd1080fb6c722a4e2d4f7d9 *nano-node-V21.2-Linux.deb.sha256
b74f478c9c3a453e5c7b9d1d2befd91d9a73a2d7941382a098f78e94ef82fbb7 *nano-node-V21.2-Linux.tar.bz2
14f615dff9e466361a997f3d87f28c283568c83f269c5647b9975189b9a543ea *nano-node-V21.2-Linux.tar.bz2.sha256
616333c271f345b1bad73590e89f5d4a990bd62eacfd9b137212b9ab16a28fd2 *nano-node-V21.2-win64.exe
a38602e9cbebde3d322a894da13d4b28d95a025dd3aae8e3bec951433f5b87d0 *nano-node-V21.2-win64.exe.sha256
887b2901af3a7f240dcc9210f27a7bbf3906a5e3a7e6ef481a8de873185be413 *nano-node-V21.2-win64.zip
a2eec9a67e46a7dd5b5376a018abcb6c1f708399f7700b3015665635bdeef123 *nano-node-V21.2-win64.zip.sha256
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAl/3DDcACgkQgERoJPn9
OloyTQf+PSjNVE64FZEwFINxrRxQ3HV3n00r2h0PwOCUntWhOqtboXnm3u3DRRy8
vanjl2E7FSG5VuOhB/yVewIk828CXu6qYLmYE6/AoPF96WDglIrf6fIhs7HURpWu
cLf9040zQPmz5kpcl/CcF1S9/qBsPjgO0Air6BTmz7MNdEq7MnZCKsIeLp/zqrfE
kyTZHMhIrNS5mZxhhLZjYe+GLjHTORIA/imHDfwt9nRsLhXGfnd2ErO/kOsv1Alq
Gi4WxCHID5jRjK6urZ+sFPbLpnrAFkf0t1Kb82Ij3HjSEQcXg31HQRG3ldTpX8Af
s+dT6Dfh6B5uGXBG69Zm8l+4nvxa2g==
=d9T0
-----END PGP SIGNATURE-----
df08740
Compare
Choose a tag to compare

V21.2RC1

Pre-release
Pre-release

CHANGELOG

Release V21.2RC1

Full Changelog


RPC Updates

Pull Request Title
#2903 Provide network_receive_minimum in RPC/WS active_difficulty

IPC Updates

Pull Request Title
#2892 Add random id to RPC send via IPC if not included

CLI Updates

Pull Request Title
#2889 Modify CLI --debug_account_versions for epoch upgrade tracking

Developer/Debug Options

Pull Request Title
#2888 Make logging election tally an optional config

Fixed Bugs

Pull Request Title
#2897 Increase confirmation solicitor single-round caps
#2880 Logging exception handler and fix for stable_log_filename on windows
#2887 Avoid potential deadlock in work watcher

Implemented Enhancements

Pull Request Title
#2885 Add cemented frontier successor confirmation in request loop
#2907 Renaming ledger::can_vote to ledger::dependents_confirmed
#2902 Use improved OpenCL kernel
#2901 Relax mutex requirement for retrieving active difficulty
#2904 Increase default bootstrap interval
#2900 Temporarily pause the request loop in extreme situations
#2895 Constrained successor and destination block activation
#2894 Extracting votes cache bootstrap start function
#2891 Remove election fallback behaviors and adjusted multiplier calculations
#2886 Inactive votes election hint
#2890 Election insertion cleanup

Build, Test, Automation, & Chores

Pull Request Title
#2909 Add support for defer_lock in nano::unique_lock
#2908 Frontier confirmation cleanup
#2905 Lower request loop min_sleep for tests
#2830 Beta reset for V22 development
#2859 extend test retry deadline 12/31/2020 23:59:59 UTC
Compare
Choose a tag to compare

CHANGELOG

Release V21.1

Full Changelog

Node Configuration Updates

Pull Request Title
#2832 Set default bootstrap initiator threads to 1

RPC Updates

Pull Request Title
#2843 BREAKING Change node_id from hash to account in telemetry RPC/websocket

Developer/Debug Options

Pull Request Title
#2839 UPnP basic logging messages are more frequent than intended

Fixed Bugs

Pull Request Title
#2837 UPnP existing lease and other misc enhancements
#2828 Invoke callbacks even during socket closures
#2833 Unresolved forks during initial bootstrap
#2831 Fix TCP message manager not notifying producers
#2825 Fix requeue pull for lazy bootstrap

Build, Test, Automation, & Chores

Pull Request Title
#2838 Fix secure RPC build on msvc

Additional binary releases:


Hashes and GPG Signature (keys located in source etc/gpg/).

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Below are the sha256 sum hashes for version 21.1 Athena
Signature Verification can be run against argakiig.asc in source repo (etc/gpg/)

52D67A0E3A1574129A575DA3463699FDFEC06B9ACC5425BA2873303EE7601124 *nano-node-V21.1-win64.zip
B8D12B9C21193B19B0A077290DD5F0CA7B8796EB3B3610D775EBFF8BE0391E3E *nano-node-V21.1-win64.zip.sha256
55A3A5A544E70C0A476B7025C03B06B226441843D7359C84C00F0ABB3056C562 *nano-node-V21.1-win64.exe
156D656D5A4F084036F54049A0679203FB68D8BBB32958EF4FD117F67BB281E1 *nano-node-V21.1-win64.exe.sha256
98f28cd90f9c94f740a223802df15019fde616292b8522229d5c2ce5f0328077 *nano-node-V21.1-Linux.tar.bz2
62561FD61B36D1EBD84A48637293075D19378DF24D4ECDDDA23AAA598C5C7F9C *nano-node-V21.1-Linux.tar.bz2.sha256
845fe8cfc19269b929880842796adbf1ba1a055bec859ce9ca9fe095cb156320 *nano-node-V21.1-Darwin.dmg
F943D71F95B6D86988B7402793A81ADD862F3C5F4F8EA115AE17BF50FC09615E *nano-node-V21.1-Darwin.dmg.sha256
2189a184b92964617e89f9fb24c60b532bcbf6d5dfe631a9cab7d919625752bc *nano-node-V21.1-Linux.deb
6C6029EAF69E73B89055621416747E04F1621C5590956D6C2EEB2C52EBB7F689 *nano-node-V21.1-Linux.deb.sha256
b5365981f8642859c5a4d5113f79e6b5120cae59811b954d5d077c09ba0af5b2  nanocurrency-21.1-21.el7.src.rpm
23d2a7fdc9ca79d2a72ee6e6186d0832acb06d98fa8936a10ffa6ab2f68a6363  nanocurrency-21.1-21.el7.src.rpm.sha256
569e348086de7a4542690c3cd73095bfc4aaa04ea75bd07682cd8aad1491c30b  nanocurrency-21.1-21.el7.x86_64.rpm
3209da9506be6d180b8f35e710cc32c7f46477d1f6aab24430040fc2de3f2acc  nanocurrency-21.1-21.el7.x86_64.rpm.sha256
bb19d1a1ba45ba48ed504189fe03432783a0ada1d1ee8a687f411dfe138b23da  nanocurrency-debuginfo-21.1-21.el7.x86_64.rpm
0c8ae99239bd4101953cc383b85b747b1a69e328a3a0fc42c7430d910fd0dd29  nanocurrency-debuginfo-21.1-21.el7.x86_64.rpm.sha256
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAl8fjmkACgkQgERoJPn9
Olp9/ggAi5jhmzm0S4anU+o1kGSxDy3/HIE/PZts5vN0PB0JCguXJ7dOLlvU7FK9
a59FTpkkfEGZ/K6O7g8xuUo91yohLHelvOyonlLMFzo0tZLwF1w9DeFlui+9XYEu
KAed9OQI9K41JSEo28KZx4+mJ1AzxU2bX4kn6DO+drtD0lUDOHhwwBIk9Lrz0qoE
J/DtJ7vQdn4OeBDCenC7+Oyn55jr0Bxn8n0MHpq2n6m4mgk8501fVOPaboujHmQb
fEx7lyjUWWqzl08rJDBUWz9oRa43QAZ2spCDnFTW053eMlkgbA+Mpe2Z9XgU2R5+
lWSfidrejtmR8SjdAybKTQnCucFrLw==
=u672
-----END PGP SIGNATURE-----
cd4db79
Compare
Choose a tag to compare

V21.1RC1

Pre-release
Pre-release

CHANGELOG

Release V21.1RC1

Full Changelog


Node Configuration Updates

Pull Request Title
#2832 Set default bootstrap initiator threads to 1

Bug

Pull Request Title
#2825 Fix requeue pull for lazy bootstrap
#2831 Fix TCP message manager not notifying producers
#2833 Unresolved forks during initial bootstrap
#2828 Invoke callbacks even during socket closures
#2837 UPnP existing lease and other misc enhancements

Build, Test, Automation, & Chores

Pull Request Title
#2819 correct rpath for libs in tar.bz2 archive
#2838 Fix secure RPC build on msvc
dff6564
Compare
Choose a tag to compare

CHANGELOG

Release V21.0

Full Changelog

Major Changes

Pull Request Title
#2535 Election state refactor
#2487 IPC 2.0
#2545 Sideband upgrade using epoch byte for is_send/receive/epoch
#2446 Node telemetry

Protocol Changes

Pull Request Title
#2701 Dont peer with v20 and earlier after epoch 2 block is seen
#2683 Increase minimum supported protocol version to 17
#2667 Validate work difficulty during ledger processing

Node Configuration Updates

Pull Request Title
#2787 Double default bandwidth limit config
#2727 Safely read override values when no config file is present
#2724 Clarify nano_pow_server configs are not in use
#2588 LMDB sync options and new config settings

RPC Updates

Pull Request Title
#2499 BREAKING Bootstrap attempts and connections/pulls separation
#2671 BREAKING Handle epoch_2 work thresholds in the wallet and most RPCs
#2689 BREAKING Change response for RPC work_validate with implicit difficulty
#2804 Make RPC name consistent with stats, websocket & protocol naming for telemetry
#2754 Optional "block" given to RPC "work_generate" to infer difficulty
#2753 Flood difficulty updates from RPC process
#2752 Result difficulty in RPC block_create
#2718 Epoch upgrader as an async task
#2704 Asynchronous epoch upgrade RPC
#2703 Difficulty calculation for RPC block_create
#2684 Epoch 2 started flag in ledger cache
#2619 Election refactor follow up
#2569 Work version concept
#2560 Request telemetry data for local node
#2481 Upgrade confirmation height table to include cemented frontier
#2414 Add block and voters count in election information
#2424 Fix RPC secure (TLS)
#2420 Add database vendor string to RPC version

IPC Updates

Pull Request Title
#2644 Add Flatbuffers schema evolution rules to IDL

Websocket Updates

Pull Request Title
#2774 Enable WebSocket server by default in Docker image
#2734 Websocket notification for RPC work_generate without peers
#2729 Websocket new_unconfirmed_block
#2634 Add telemetry response websocket callbacks
#2566 Incremental options for ws confirmation subscription
#2562 Fake websocket client to test the node websocket server
#2471 Websocket bootstrap subscription
#2444 Indeterminate vote status and enhanced websocket vote sub

CLI Updates

Pull Request Title
#2794 CLI commands incorrect ledger cache setup
#2749 Multithreaded --validate_blocks
#2725 CLI command for a frontier confirmation speed test
#2719 CLI compare_rep_weights to compare ledger and hardcoded weights
#2707 Add difficulty and multiplier to CLI work generation commands
#2637 Read config file for CLI commands
#2594 Allow CLI --config values for inactive node tests
#2606 Launch flag --allow_bootstrap_peers_duplicates
#2575 Add flag for vote_processor capacity and tests
#2579 Configurable inactive votes cache size
#2435 Add CLI command for better LMDB compaction

Deprecation/Removal

Pull Request Title
#2555 Disable UDP by default
#2769 Deprecate --batch_size/debug_mass_acitvity CLI options

Developer Wallet

Pull Request Title
#2427 qt dev wallet deserialization fix
#2419 Set wallet representative with RPC receive on unopened accounts

Developer/Debug Options

Pull Request Title
#2802 Clarify election difficulty update log message
#2793 Add logging section to rpc config to optionally disable logging
#2791 Fix insufficient work logging
#2762 Add cemented block log timings
#2746 Fix Xcode warnings
#2731 New stats for elections
#2591 friendly backtraces in actions
#2540 Lower beta network work threshold to 1/64x base
#2515 Additional ledger stats
#2489 Log when voting and warn if voting with more than one account
#2412 Fix work_cache_blocking logging bug

Fixed Bugs

Pull Request Title
#2800 Fix open blocks not getting activated through dependencies
#2799 Slow test fixes
#2796 Retrieve block when activating dependencies
#2782 Stuck uncemented blocks after heavy load
#2781 Union std::hash coverage
#2767 Fix previous balance in active_transaction::insert ()
#2766 Votes from local representatives should not be flooded on processing
#2744 Tally votes on conflicting block with no inactive votes
#2733 Remove invalid uses of epoch_1 work threshold
#2723 Some confirmed block observer callbacks being missed
#2664 Incorrect cemented count during conf height algo transition
#2706 Prevent more rare deadlocks due to races for condition variables
#2651 Using relaxed atomics for counts not involved in control flow in conf height processor
#2696 Remove assert if a delayed work cache request is not found
#2652 Consistently add conflicting block to election
#2674 Modify inactive cache to prevent multiple insertions for confirmed
#2675 Prevent getting stuck in block processor flush
#2659 Signature checker blocking fix
#2650 Telemetry results not correctly utilising cache timeouts
#2648 Fix wrong number of representatives in confirmation solicitor
#2609 [RocksDB] Only delete from unchecked when existence is guaranteed
#2593 Start vote generator for changed winner only if voting is enabled
#2582 Check against op aborted on secure rpc acceptor shutdown
#2563 Fix election calling confirm_if_quorum after destruction
#2553 Inactive votes cache confirmation status
#2546 Restore max block processor signature verification batch size
#2530 Remove representatives with closed channels
#2527 Allow rep crawler targets with ephemeral ports
#2519 Resolving hostnames in distributed_work
#2502 Prevent possible issues with ledger contaning pending records only for burn account
#2488 Unchecked cache not handling duplicate entries or unchecked_clear
#2477 Support multiple work peers in the same host
#2472 Confirmation solicitor revamp
#2462 Process RPC incorrect enable_control checking when using watch_work
#2451 Avoid replying to confirm_req with repeated votes
#2438 Wallet representative counts consistency
#2429 Remove representation table during v15 upgrade
#2413 Fix distributed_work segfault when local work generation fails
#2405 Fix jumping peer stake total

Implemented Enhancements

Pull Request Title
#2801 Sequential elections
#2785 Sequential voting
#2797 Check executable paths in load_test
#2778 Bisected election backtracking
#2784 Confirmation requests and broadcasts if available vote is for a conflicting block
#2565 Push front blocks from unchecked
#2768 Force node exit if ledger inconsistency in the conf height processor is found
#2772 Republishing a vote to principal representatives
#2759 Perform wallet representative action without holding any mutex
#2751 Serialize telemetry as big endian
#2730 Use a multi-index container to allow fifo queue for pending confirmations
#2728 Add active difficulty to node telemetry
#2715 Allow restarting elections with higher work
#2716 Release write_guard lock when no longer required
#2721 Remove confirmation requests for a new representative
#2720 Separate election state for the broadcasting block fallback
#2613 Move TCP messages processing to network threads
#2714 Improve batching of writes in unbounded conf height processor
#2710 Difficulty updates for elections with multiple blocks
#2709 Ensure propagation and removal for the work watcher
#2702 Vote generator session for batch insertions
#2669 Improve telemetry request/response under load
#2705 Ensure max_work_generate_difficulty is updated when changing the default difficulty
#2691 Active difficulty normalization
#2694 Prevent reconnecting to excluded peers with sufficient score
#2645 Rate limiting using token buckets
#2688 Move vote generator calls into election code
#2673 Epoch open blocks should have corresponding pending entries
#2692 Wrapper for RPC worker tasks
#2693 Move excluded_peers to network
#2690 Work version parameter in default_difficulty and use it in more places
#2680 Delay wallet work caching to allow using lower difficulty on demand
#2686 Improve automatic frontiers confirmation
#2627 Optimize vote post-processing operations
#2672 Refactor work thresholds as nano::work_thresholds
#2666 Delay voting for non-priority elections under saturation
#2676 Optimize mutex access when adding blocks to block processor
#2603 Remove peers with different genesis block or invalid telemetry signature
#2505 Directed block broadcasting for long elections
#2610 Remove telemetry message versions
#2662 Move all request aggregator operations out of the mutex hold scope
#2663 Check if a vote is for a recently confirmed block
#2638 Definitions for work thresholds with epoch_2
#2618 Sign telemetry messages
#2665 Output current function in assert diagnostics
#2661 Increase minimum time to log block processing
#2625 Improve confirmation consistency
#2631 Delay inactive/gap cache bootstrap start for 30 seconds
#2570 Parallelize state block signature verification with block processor
#2653 Include requesting telemetry metrics from temporary channels
#2649 Erase representatives with full queues when adding to confirmation solicitor
#2643 Network duplicate filter for publish messages
#2641 Increase active elections capacity with periodic full checks
#2646 Bandwidth considerations following election refactor
#2581 Use attempts list for TCP channels
#2640 Read transaction scope in active
#2604 Update adjusted difficulty in batches
#2626 Improve --debug_profile_bootstrap performance
#2620 Use the sideband when available in ledger.is_send
#2614 Simplify request aggregator mutex lock behavior
#2596 Attach sideband to block
#2616 Update preconfigured_peers comment regarding port
#2598 Simplify telemetry data processing
#2608 Lock before stopping when notifying other threads
#2605 Utility: nano::optional_ptr
#2601 Block difficulty and work validation cleanup
#2549 Aggressive flooding for local blocks
#2602 Don't use active mutex lock during confirmation solicitor.prepare ()
#2600 Reduce active mutex locking with election winner details
#2577 Minimize work validation calls
#2599 Block work version
#2590 Remove dropped_election_cache in preparation for election refactor.
#2589 Reworking confirmation_height.dependent_election test
#2592 [RocksDB] Limit write locks to necessary tables
#2573 Add peer timestamp to telemetry responses
#2585 Remove vote cache & generate new vote if election winner is changed
#2568 Output stacktrace with custom debug assert
#2583 warnings: Remove some unused locals and captures
#2534 Log stable filename
#2574 Add tests for vote_processor
#2544 Use a different confirmation height algorithm when ledger is almost fully cemented
#2572 Move back timer comments to header
#2567 Add GSL-style narrow_cast
#2559 Buffer drop policies
#2571 Use only the necessary protocols in UPnP
#2557 Add launch flag --disable_block_processor_unchecked_deletion
#2542 Separate inactive votes cache from gap cache
#2551 Return created election when adding to active_transactions
#2554 [ASAN] Access node through a weak_ptr on distributed_work dtor
#2552 Encapsulating election::confirmed so its implementation can vary.
#2548 Add wallet-processed block to work watcher via the block processor
#2518 Active_transactions updates blocks when updating difficulty.
#2543 Probabilistic network packet filter
#2521 Poll all nodes, remove outliers, ddos protection & amend RPC response with endpoint
#2541 Handle legacy confirm_req using the aggregator
#2531 Bounded memory and redesign in the confirmation height processor
#2536 Cache hash for multiple block->hash () calls
#2512 Cache genesis block hash in ledger constants
#2528 Improve initial TCP server keepalive
#2524 Extend telemetry data with more node versioning details
#2522 Optionally disable data in responses to telemetry requests with CLI option
#2468 Publish prototype
#2511 Cache account count
#2513 Avoid long read transactions for bootstrap
#2459 Publish cleanup
#2507 Adjust request aggregator stats
#2497 Vote replay in crawler
#2506 Clear peers and online weight after 1 week of inactivity
#2509 Refresh mutex lock after some consecutive requests without generation
#2504 Reinstate election request limit on the confirmation solicitor
#2501 Bounded request aggregator
#2464 Don't bind to UDP socket with --disable_udp flag
#2498 Emplacing wherever possible and other misc enhancements
#2482 Rep crawler cleanup
#2485 Request aggregator
#2437 Change processed blocks factor for requeued pulls
#2475 Remove unnecessary lock requirement in active_transactions::lock.
#2432 Generated votes cache size increase and upper bound
#2470 Use node reference instead of system.nodes[n] in unit tests more often
#2474 Use a strand in distributed_work
#2463 Adding forked votes to inactive vote cache.
#2452 Confirmation solicitor
#2449 Some code cleanup
#2458 Cache unchecked count
#2399 Add HOST header to distributed work request
#2448 Erase inactive votes cache after election stop / finish
#2447 Remove rolled back blocks list
#2455 New CLI command to generate a crash report
#2454 Global bandwidth limiter
#2453 Remove unused function
#2436 Socket buffer size error code
#2430 Improve uses of boost multi_index_container
#2428 Remove raw new operator used with smart pointers
#2425 Improve build times
#2388 Allow simultaneous test runs
#2398 Improve block deletion and RocksDB deletion in general

Build, Test, Automation, & Chores

Pull Request Title
#2803 add label "logging" to Developer/Debug Options Sections
#2789 Epoch2 signer
#2792 update bundled FindBoost.cmake
#2790 use full cache for PR's requesting modules not currently specified in…
#2786 [TSAN] Fix off-by-one in socket.drop_policy test
#2783 enable shared boost for tests
#2779 Set boost min to 1.69
#2760 Fix intermittent failure in test wallet.work_cache_delayed
#2757 [TSAN] race for system in test websocket.bootstrap_exited
#2750 Fix network.tcp_no_connect_excluded_peers test failure
#2748 Fix minor test-specific intermittent failures
#2743 Fix node.fork_invalid_block_signature intermittent failures, re-enable on windows CI
#2745 Fix intermittently failing conflicts.adjusted_multiplier test
#2742 Fix system.generate_send_new intermittent failures
#2739 Fix rpc.wallet_history failures
#2738 Fix intermittent node_telemetry.remove_peer_different_genesis test
#2737 Fix intermittently failing rpc.confirmation_height_currently_processing test
#2735 Allow starting more that max_peers_per_ip test nodes
#2732 record_rep_weights to py3
#2722 changelog_generator refactored as changelog.py
#2717 Fix logic in active_transactions.prioritize_chains test
#2611 Preparation for building with shared boost
#2698 [TSAN] start_time data race in bootstrap_client
#2700 Add Security Policy file
#2708 Fix failure in ledger.work_validation due to random work being above threshold
#2712 Add node sequence for tests
#2711 [TSAN] lock order inversion in active transactions / wallet
#2699 Fix qt tests failing to click radio buttons
#2697 updates for fuzzer
#2695 Fix qt test wallet.seed_work_generation
#2687 set timeout to 1hr to catch tests that hang
#2682 Fix intermittent failure in active_transactions.confirmation_consistency
#2677 Fix intermittent wallet.work_watcher_update failure
#2670 clang included now
#2660 typo on windows sha256 Out-File
#2656 Fix node.aggressive_flooding
#2655 Update tick count in timer::update
#2647 gather sha256 hashes of artifacts and upload to s3 with artifacts
#2632 Fix request_aggregator unit tests
#2636 split docker artifacts to separate job
#2633 Add ASSERT_TIMELY
#2630 Make network.replace_port more robust under tsan
#2628 Make confirmation_solicitor.batches more robust under tsan
#2615 tsan fix: rpc.wallet_destroy
#2624 confirmation_height.modified_chain test fails on a non-debug build
#2621 Fix confirmation_height.gap_live intermittent test failure
#2623 [RocksDB] Tests not reading account count from store correctly
#2622 Host qt assets on s3
#2617 update url for sourceforge
#2612 Fix intermittent send_node_id_handshake unit test failures
#2607 CMakeLists backwards compatibility
#2597 Use C++17 locally, C++14 on CI
#2595 Fix rpc telemetry test timestamps
#2580 Improve confirmation_solicitor.batches test
#2587 [TSAN] vote_processor.flush test
#2586 [TSAN] confirmation_height.cemented_gap_below_receive test
#2584 tsan: race in telemetry::ongoing_single_request_cleanup
#2576 Fix intermittent node telemetry tests with tsan/valgrind
#2556 Update --debug_profile_bootstrap CLI test
#2564 Update --debug_profile_process CLI test
#2561 Disable node.fork_open_flip test on Windows actions
#2550 guard policy setting by version checks
#2547 BOOST_1.69
#2538 ASAN error with database transaction tracker json serialization
#2537 Update beta network bootstrap weights for v21, cutoff 7M
#2525 Define GCC sanitizers builds
#2523 Fuzz account, hex, dec and endpoint parsing
#2520 update fuzz_buffer
#2496 Buffer parser fuzzing
#2517 unstable tests on actions for windows
#2510 Fix bootstrap_exited segfault on macos
#2508 Update bootstrap tests to disable frontiers confirmation
#2503 update vc_redist url
#2500 Extend distributed_work.peer_malicious test to fix intermittent failure
#2492 remove clang-format guards as not needed on 8 or prior
#2495 A couple of clang static analysis fixes
#2491 Formatting fix so clang-format v8 applies cleanly
#2490 use clang-format-8
#2403 The start of CLI tests
#2486 use v1.1 for actions-aws-cli
#2476 Beta network reset #2
#2478 Add clang-format test back in
#2480 Fix some formatting issues on develop
#2479 Fix thread worker unit test so it handles repeat runs
#2465 Fixing some intermittent failures in unit tests, and some cleanup
#2457 Allow core_test retries until 7-1-2020 00:00(gmt)
#2450 use commit hash instead of tag for security
#2445 TRAVIS_TAG set for deploy-docker.sh
#2443 updates to README badging to reflect changes to actions
#2442 Migrate Travis and Appveyor into actions
#2433 Fix qt wallet build on Windows
#2426 Fix rpc_test build
#2411 Fix active_transactions not doing any confirmation request in tests


Additional binary releases:


Hashes and GPG Signature (keys located in source etc/gpg/).

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Below are the sha256 sum hashes for version 21.0 Athena
Signature Verification can be run against argakiig.asc in source repo (etc/gpg/)

0d3c1a53d6fd893a4b2197d6e4507b9eb5f830cb9bc42e940762cc875c629067 *nano-21.0.tar.gz
7612211b6685e8f46e4d764f8e48bb346d4bd386ef5f6748bee7e1980f87a954 *nano-21.0.tar.gz.sha256
bb4b627996546063104d9ff6c7892c214ae3a124943c426ae008c1fd0371ee9f *nanocurrency-21.0-20.el7.src.rpm
854aa2a542e031c56b5cb4baf05eb7c27d81caee69390892fb37601952285375 *nanocurrency-21.0-20.el7.src.rpm.sha256
e63cbca8f4e4a5b22e277ba0c782d95aa3fca496501bde7b1df6206cc3303759 *nanocurrency-21.0-20.el7.x86_64.rpm
181b02c047f943d4fa575232034c42d54d1d86370686666dabc48c5e182eddef *nanocurrency-21.0-20.el7.x86_64.rpm.sha256
111e80245122e86cac9b1d2bf45ba9cf4725deee444c254b66ef08f3a6bff5ce *nano-node-V21.0.1-Linux.deb
d9a8244c2940fc7f6617bb49b1b03b94f440c6a9165626d344733190e03e1833 *nano-node-V21.0.1-Linux.deb.sha256
7dcdb17b2dbd7459e3a616d9f6aa9ee42e02decc93bc2c1cf89cb8284f1ee055 *nano-node-V21.0.1-Linux.tar.bz2
8d0b4221279ba7cdba913637ead9f36bd1a5cdd8e2dfaafd1fe1ae66ba8b92fa *nano-node-V21.0.1-Linux.tar.bz2.sha256
d837baf8a960db6a0ee3d44263f0cd8e5a8df21cbcacd7a05c4e9c673ff766b8 *nano-node-V21.0-Darwin.dmg
0c4344cc805535d82e86f2ac1dc81afbb5604dc613fcef8cb028e7e8846509c4 *nano-node-V21.0-Darwin.dmg.sha256
b27d1be9709672d12f170646122951bbfb73ef53a98bc3b0d71794a1dac50929 *nano-node-V21.0-win64.exe
e3a3988947c2006d133ee8192e1831b9242f00658f4547e75b4c50d133c6c69b *nano-node-V21.0-win64.exe.sha256
2cfecfe3266b8aea96452fb90c7a280a8909253729c419ed0cd283d7e4afa104 *nano-node-V21.0-win64.zip
3a2fa206a2edb9920b9431055fae2fa746a00fcf7735d253cbc501f7e354fadf *nano-node-V21.0-win64.zip.sha256
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEc+pdEgPPsADHbxJjyW2zlQ3kDroFAl7pDsYACgkQyW2zlQ3k
DrqiBQgArUy+LiFIvu4b4ut6cbEyoELCuh4MdKJAFwl6k2wnH0aFUwBcXPe/phcw
N4woEND9f1e+I2U9Df9s8U6rQZpb8NXGrptVd+NPsc2Gs4OcjUx8iKd7TeiIoONa
hGe23tVDW18YszrOxtl2+AJH9La02lxDunJ0htYmPemLqsVV24QO43elfyEi6asg
xKsvWt3ihghQCgisMemFjc7IBTGReIAODoos/fVDD/nqlhRPQMuwE7G8u5R/7Pr/
SxJMxlmesE40HhEcu2WfM8fXoH8ecnykb0qKpHrSB5bvieIodzoZUe1YxrXTcMs+
jdeM1M2ViMSucGgABfTLJ9NXgPV4Ew==
=wqQH
-----END PGP SIGNATURE-----
7017fb5
Compare
Choose a tag to compare

V21.0RC1

Pre-release
Pre-release

CHANGELOG

Release V21.0RC1

Full Changelog

Major Changes

Pull Request Title
#2545 Sideband upgrade using epoch byte for is_send/receive/epoch
#2487 IPC 2.0
#2535 Election state refactor
#2446 Node telemetry

Protocol Changes

Pull Request Title
#2667 Validate work difficulty during ledger processing
#2683 Increase minimum supported protocol version to 17
#2701 Dont peer with v20 and earlier after epoch 2 block is seen

Node Configuration Updates

Pull Request Title
#2588 LMDB sync options and new config settings
#2724 Clarify nano_pow_server configs are not in use
#2727 Safely read override values when no config file is present
#2787 Double default bandwidth limit config

RPC Updates

Pull Request Title
#2689 BREAKING Change response for RPC work_validate with implicit difficulty
#2671 BREAKING Handle epoch_2 work thresholds in the wallet and most RPCs
#2499 BREAKING Bootstrap attempts and connections/pulls separation
#2560 Request telemetry data for local node
#2569 Work version concept
#2619 Election refactor follow up
#2684 Epoch 2 started flag in ledger cache
#2703 Difficulty calculation for RPC block_create
#2704 Asynchronous epoch upgrade RPC
#2718 Epoch upgrader as an async task
#2752 Result difficulty in RPC block_create
#2753 Flood difficulty updates from RPC process
#2754 Optional "block" given to RPC "work_generate" to infer difficulty
#2804 Make RPC name consistent with stats, websocket & protocol naming for telemetry

IPC Updates

Pull Request Title
#2644 Add Flatbuffers schema evolution rules to IDL

Websocket Updates

Pull Request Title
#2562 Fake websocket client to test the node websocket server
#2566 Incremental options for ws confirmation subscription
#2634 Add telemetry response websocket callbacks
#2729 Websocket new_unconfirmed_block
#2734 Websocket notification for RPC work_generate without peers
#2774 Enable WebSocket server by default in Docker image

CLI Updates

Pull Request Title
#2579 Configurable inactive votes cache size
#2575 Add flag for vote_processor capacity and tests
#2606 Launch flag --allow_bootstrap_peers_duplicates
#2594 Allow CLI --config values for inactive node tests
#2637 Read config file for CLI commands
#2707 Add difficulty and multiplier to CLI work generation commands
#2719 CLI compare_rep_weights to compare ledger and hardcoded weights
#2725 CLI command for a frontier confirmation speed test
#2749 Multithreaded --validate_blocks
#2769 Deprecate --batch_size/debug_mass_acitvity CLI options
#2794 CLI commands incorrect ledger cache setup

Deprecation/Removal

Pull Request Title
#2555 Disable UDP by default

Developer/Debug Options

Pull Request Title
#2540 Lower beta network work threshold to 1/64x base
#2591 friendly backtraces in actions
#2731 New stats for elections
#2746 Fix Xcode warnings
#2762 Add cemented block log timings
#2791 Fix insufficient work logging
#2793 Add logging section to rpc config to optionally disable logging
#2802 Clarify election difficulty update log message

Fixed Bugs

Pull Request Title
#2527 Allow rep crawler targets with ephemeral ports
#2530 Remove representatives with closed channels
#2546 Restore max block processor signature verification batch size
#2553 Inactive votes cache confirmation status
#2563 Fix election calling confirm_if_quorum after destruction
#2582 Check against op aborted on secure rpc acceptor shutdown
#2593 Start vote generator for changed winner only if voting is enabled
#2609 [RocksDB] Only delete from unchecked when existence is guaranteed
#2648 Fix wrong number of representatives in confirmation solicitor
#2650 Telemetry results not correctly utilising cache timeouts
#2659 Signature checker blocking fix
#2675 Prevent getting stuck in block processor flush
#2674 Modify inactive cache to prevent multiple insertions for confirmed
#2652 Consistently add conflicting block to election
#2696 Remove assert if a delayed work cache request is not found
#2651 Using relaxed atomics for counts not involved in control flow in conf height processor
#2706 Prevent more rare deadlocks due to races for condition variables
#2664 Incorrect cemented count during conf height algo transition
#2723 Some confirmed block observer callbacks being missed
#2733 Remove invalid uses of epoch_1 work threshold
#2744 Tally votes on conflicting block with no inactive votes
#2766 Votes from local representatives should not be flooded on processing
#2767 Fix previous balance in active_transaction::insert ()
#2781 Union std::hash coverage
#2782 Stuck uncemented blocks after heavy load
#2796 Retrieve block when activating dependencies
#2799 Slow test fixes
#2800 Fix open blocks not getting activated through dependencies

Implemented Enhancements

Pull Request Title
#2522 Optionally disable data in responses to telemetry requests with CLI option
#2518 Active_transactions updates blocks when updating difficulty.
#2524 Extend telemetry data with more node versioning details
#2528 Improve initial TCP server keepalive
#2512 Cache genesis block hash in ledger constants
#2536 Cache hash for multiple block->hash () calls
#2531 Bounded memory and redesign in the confirmation height processor
#2541 Handle legacy confirm_req using the aggregator
#2521 Poll all nodes, remove outliers, ddos protection & amend RPC response with endpoint
#2543 Probabilistic network packet filter
#2552 Encapsulating election::confirmed so its implementation can vary.
#2548 Add wallet-processed block to work watcher via the block processor
#2554 [ASAN] Access node through a weak_ptr on distributed_work dtor
#2551 Return created election when adding to active_transactions
#2542 Separate inactive votes cache from gap cache
#2557 Add launch flag --disable_block_processor_unchecked_deletion
#2571 Use only the necessary protocols in UPnP
#2559 Buffer drop policies
#2567 Add GSL-style narrow_cast
#2572 Move back timer comments to header
#2544 Use a different confirmation height algorithm when ledger is almost fully cemented
#2574 Add tests for vote_processor
#2534 Log stable filename
#2583 warnings: Remove some unused locals and captures
#2568 Output stacktrace with custom debug assert
#2585 Remove vote cache & generate new vote if election winner is changed
#2573 Add peer timestamp to telemetry responses
#2592 [RocksDB] Limit write locks to necessary tables
#2589 Reworking confirmation_height.dependent_election test
#2590 Remove dropped_election_cache in preparation for election refactor.
#2599 Block work version
#2577 Minimize work validation calls
#2600 Reduce active mutex locking with election winner details
#2602 Don't use active mutex lock during confirmation solicitor.prepare ()
#2549 Aggressive flooding for local blocks
#2601 Block difficulty and work validation cleanup
#2605 Utility: nano::optional_ptr
#2608 Lock before stopping when notifying other threads
#2598 Simplify telemetry data processing
#2616 Update preconfigured_peers comment regarding port
#2596 Attach sideband to block
#2614 Simplify request aggregator mutex lock behavior
#2620 Use the sideband when available in ledger.is_send
#2626 Improve --debug_profile_bootstrap performance
#2604 Update adjusted difficulty in batches
#2640 Read transaction scope in active
#2581 Use attempts list for TCP channels
#2646 Bandwidth considerations following election refactor
#2641 Increase active elections capacity with periodic full checks
#2643 Network duplicate filter for publish messages
#2649 Erase representatives with full queues when adding to confirmation solicitor
#2653 Include requesting telemetry metrics from temporary channels
#2570 Parallelize state block signature verification with block processor
#2631 Delay inactive/gap cache bootstrap start for 30 seconds
#2625 Improve confirmation consistency
#2661 Increase minimum time to log block processing
#2665 Output current function in assert diagnostics
#2618 Sign telemetry messages
#2638 Definitions for work thresholds with epoch_2
#2663 Check if a vote is for a recently confirmed block
#2662 Move all request aggregator operations out of the mutex hold scope
#2610 Remove telemetry message versions
#2505 Directed block broadcasting for long elections
#2603 Remove peers with different genesis block or invalid telemetry signature
#2676 Optimize mutex access when adding blocks to block processor
#2666 Delay voting for non-priority elections under saturation
#2672 Refactor work thresholds as nano::work_thresholds
#2627 Optimize vote post-processing operations
#2686 Improve automatic frontiers confirmation
#2680 Delay wallet work caching to allow using lower difficulty on demand
#2690 Work version parameter in default_difficulty and use it in more places
#2693 Move excluded_peers to network
#2692 Wrapper for RPC worker tasks
#2673 Epoch open blocks should have corresponding pending entries
#2688 Move vote generator calls into election code
#2645 Rate limiting using token buckets
#2694 Prevent reconnecting to excluded peers with sufficient score
#2691 Active difficulty normalization
#2705 Ensure max_work_generate_difficulty is updated when changing the default difficulty
#2669 Improve telemetry request/response under load
#2702 Vote generator session for batch insertions
#2709 Ensure propagation and removal for the work watcher
#2710 Difficulty updates for elections with multiple blocks
#2714 Improve batching of writes in unbounded conf height processor
#2613 Move TCP messages processing to network threads
#2720 Separate election state for the broadcasting block fallback
#2721 Remove confirmation requests for a new representative
#2716 Release write_guard lock when no longer required
#2715 Allow restarting elections with higher work
#2728 Add active difficulty to node telemetry
#2730 Use a multi-index container to allow fifo queue for pending confirmations
#2751 Serialize telemetry as big endian
#2759 Perform wallet representative action without holding any mutex
#2772 Republishing a vote to principal representatives
#2768 Force node exit if ledger inconsistency in the conf height processor is found
#2565 Push front blocks from unchecked
#2784 Confirmation requests and broadcasts if available vote is for a conflicting block
#2778 Bisected election backtracking
#2797 Check executable paths in load_test
#2785 Sequential voting
#2801 Sequential elections

Build, Test, Automation, & Chores

Pull Request Title
#2525 Define GCC sanitizers builds
#2537 Update beta network bootstrap weights for v21, cutoff 7M
#2538 ASAN error with database transaction tracker json serialization
#2547 BOOST_1.69
#2550 guard policy setting by version checks
#2561 Disable node.fork_open_flip test on Windows actions
#2564 Update --debug_profile_process CLI test
#2556 Update --debug_profile_bootstrap CLI test
#2576 Fix intermittent node telemetry tests with tsan/valgrind
#2584 tsan: race in telemetry::ongoing_single_request_cleanup
#2586 [TSAN] confirmation_height.cemented_gap_below_receive test
#2587 [TSAN] vote_processor.flush test
#2580 Improve confirmation_solicitor.batches test
#2595 Fix rpc telemetry test timestamps
#2597 Use C++17 locally, C++14 on CI
#2607 CMakeLists backwards compatibility
#2612 Fix intermittent send_node_id_handshake unit test failures
#2617 update url for sourceforge
#2622 Host qt assets on s3
#2623 [RocksDB] Tests not reading account count from store correctly
#2621 Fix confirmation_height.gap_live intermittent test failure
#2624 confirmation_height.modified_chain test fails on a non-debug build
#2615 tsan fix: rpc.wallet_destroy
#2628 Make confirmation_solicitor.batches more robust under tsan
#2630 Make network.replace_port more robust under tsan
#2633 Add ASSERT_TIMELY
#2636 split docker artifacts to separate job
#2632 Fix request_aggregator unit tests
#2647 gather sha256 hashes of artifacts and upload to s3 with artifacts
#2655 Update tick count in timer::update
#2656 Fix node.aggressive_flooding
#2660 typo on windows sha256 Out-File
#2670 clang included now
#2677 Fix intermittent wallet.work_watcher_update failure
#2682 Fix intermittent failure in active_transactions.confirmation_consistency
#2687 set timeout to 1hr to catch tests that hang
#2695 Fix qt test wallet.seed_work_generation
#2697 updates for fuzzer
#2699 Fix qt tests failing to click radio buttons
#2711 [TSAN] lock order inversion in active transactions / wallet
#2712 Add node sequence for tests
#2708 Fix failure in ledger.work_validation due to random work being above threshold
#2700 Add Security Policy file
#2698 [TSAN] start_time data race in bootstrap_client
#2611 Preparation for building with shared boost
#2717 Fix logic in active_transactions.prioritize_chains test
#2722 changelog_generator refactored as changelog.py
#2732 record_rep_weights to py3
#2735 Allow starting more that max_peers_per_ip test nodes
#2737 Fix intermittently failing rpc.confirmation_height_currently_processing test
#2738 Fix intermittent node_telemetry.remove_peer_different_genesis test
#2739 Fix rpc.wallet_history failures
#2742 Fix system.generate_send_new intermittent failures
#2745 Fix intermittently failing conflicts.adjusted_multiplier test
#2743 Fix node.fork_invalid_block_signature intermittent failures, re-enable on windows CI
#2748 Fix minor test-specific intermittent failures
#2750 Fix network.tcp_no_connect_excluded_peers test failure
#2757 [TSAN] race for system in test websocket.bootstrap_exited
#2760 Fix intermittent failure in test wallet.work_cache_delayed
#2779 Set boost min to 1.69
#2783 enable shared boost for tests
#2786 [TSAN] Fix off-by-one in socket.drop_policy test
#2790 use full cache for PR's requesting modules not currently specified in…
#2792 update bundled FindBoost.cmake
#2789 Epoch2 signer
#2803 add label "logging" to Developer/Debug Options Sections