Skip to content

V24.0

Compare
Choose a tag to compare
@thsfs thsfs released this 20 Jan 13:06
· 1115 commits to develop since this release

CHANGELOG

Release V24.0

Full Changelog

Protocol Changes

Pull Request Title
#3867 Bulk pull ascending flag

RPC Updates

Pull Request Title
#3860 Add populate_backlog rpc command
#3790 Changes the accounts_balances RPC to return per account results
#3791 Changes the accounts_frontiers RPC to return per account results
#3789 Changes the accounts_representatives RPC to return per account response
#3702 Add receive_hash option for the blocks_info RPC
#3753 Pending to receivable renames
#3700 Add optional offset parameter for the receivable RPC

Websocket Updates

Pull Request Title
#3851 Add started_elections topic to websockets
#3698 Add option to include sideband info of confirmed blocks in websocket messages
#3554 Introduce support for binding sockets to ports picked by the OS

CLI Updates

Pull Request Title
#3836 confirmation_height_clear cli account param

Deprecation/Removal

Pull Request Title
#3655 Remove json config code

Developer Wallet

Pull Request Title
#4000 Update qt.cpp to match block_count RPC & fix bug with pruned display
#3627 added cemented, full and pruned to nano_wallet gui
#3586 Update images for README and QT wallet to be new symbol

Developer/Debug Options

Pull Request Title
#3806 open_burn_account errors and comments
#3685 Add collect_container_info to election scheduler and prioritization
#3684 Impove election result logging
#3652 Remove incorrect debug_assert
#3582 Include election.confirmed outcome in log

Fixed Bugs

Pull Request Title
#4003 Fix missing return on non-void function
#4002 Fix use after scope error active_transactions.vacancy test
#3977 Add missing include file for std::atomic (required by slow_test)
#3953 Do not wait for vote processor during AEC processing loop
#3959 Bugfix: properly handle refused bootstrap connection
#3898 Fix bootstrap serving threads regression
#3861 Fix & refactor bootstrap_server
#3850 Fix rocksdb_block_store.tombstone_count
#3849 Fix intermittently failing test gap_cache.two_dependencies
#3853 Fix server_socket close method override
#3745 Fix unit test confirmation_height.conflict_rollback_cemented
#3680 Enable and fix node.unconfirmed_send unit test
#3703 Fix unit tests within active_transactions
#3732 Fix unit test election_scheduler.no_vacancy
#3691 Fix unit tests election.quorum_minimum_flip_*
#3723 Fix unchecked_map destructor.
#3721 fix race condition between bootstrap pull and push
#3713 Minor bugfix for election scheduler thread name
#3696 Fix ipc_client::async_resolve when given invalid endpoint
#3643 Fix telemetry rpc getting stuck if all nodes have bandwidth set to 0
#3679 Investigate and fix some of the disabled unit tests
#3694 Do not ignore socket errors
#3687 Fix node.pruning_* unit tests
#3629 Disable batch of intermittently failing unit tests
#3649 Modifies the silent connection checker to inspect sever-side incoming messages only (develop branch version)
#3602 Disable intermittently failing UT ledger_walker.ladder_geometry
#3604 Disable intermittently failing UT active_transactions.inactive_votes_cache_fork
#3607 Disable intermittently failing UT confirmation_height.election_winner_details_clearing
#3611 Disable intermittently failing UTs
#3610 Fixing slow_test compile error.
#3594 Initializes receive and completion times to always hold a valid value…
#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.
#3572 Unlocking lock in all branch cases.
#3568 Add wallets::start() function for deferred start.

Implemented Enhancements

Pull Request Title
#3980 Rebalancing buckets the reflect natural transaction ranges.
#3957 Replace random_access with sequenced in active_transactions
#3956 Replace random_access with sequenced in unchecked_map
#3955 Replace random_access with sequenced in vote_cache
#3907 Improved inactive_vote_cache
#3865 Bootstrap serving on dedicated thread pool
#3869 Simplifying bootstrap_attempt::mode_text
#3866 Add hashing specializations for nano::hash_or_account.
#3864 Add an observer to block_processor that notifies with the output from block processing.
#3812 Extracting nano::bootstrap::block_deserializer class
#3852 Expands ability for ledger::is_send to accept any block type
#3816 Node ID persistence
#3813 Remove vote-by-block support from vote class
#3811 Adding unhandled case for message_visitor
#3809 Bootstrap cleanup
#3802 Updating rocksdb to 6.29 feature branch and using vanilla rocksdb.
#3644 This demonstrates a speedup in confirmation rate during initial boots…
#3786 Adding details to the DB commit () release_asserts
#3787 Moves the LDMB table handles to their respective type of store class
#3785 Further removal of templates in db classes
#3784 Add db backend namespaces
#3783 Remove db templates
#3764 Convert some important startup debug asserts to release asserts
#3718 Sort results of the receivable RPC by block hash in case of equal amounts
#3729 Remove coupling between nano::state_block_signature_verification and nano::unchecked_info.
#3728 Remove coupling of block processor and unchecked_map on unchecked_info::modified.
#3733 Comment and warning about epoch blocks
#3730 Inactive cache information to string (easy review)
#3719 Removes the nano::unchecked_info::confirmed member.
#3717 Encapsulate detail_to_string with uint32_t overload.
#3710 Apply the timestamp mask to timestamp field to remove the duration bits
#3704 Socket timeout tidyup
#3601 Display node startup time for easy access to up time without RPC access
#3606 Better move semantics & fix clang-tidy warnings
#3600 Unchecked cleanup
#3589 Double max_peers_per_ip and max_peers_per_subnet (5 -> 10 and 20 -> 40)
#3569 Refine election scheduler lock.
#3567 Turns off sub-network connection limiting for IPv4

Build, Test, Automation, Cleanup & Chores

Pull Request Title
#3947 Fix MacOS compilation, add libsecure to target link libs for nano_lib
#3815 Fix compatibility with Boost 1.78
#3774 Fix unit test rpc.account_representative_set_epoch_2
#3776 Simplify unit test node.bootstrap_confirm_frontiers
#3775 Fix for test active_transactions.fork_filter_cleanup
#3773 Improve/fix test rpc.account_representative_set
#3772 Add function comment for function nano::upgrade_epoch.
#3750 Fix_fork_storm failure #3709 on node allocation and catch stalled vote/fork resolution errorrs in the test
#3742 Add comments to class nano::prioritization
#3741 Fix confirmation_height.election_winner_details_clearing
#3738 Fix for unit test unchecked.multiple_get, do not use store.count()
#3735 Fix unit test rpc.confirmation_info (remove scheduler flush)
#3726 Updates the doxygen.config
#3725 Add class description to mostly of bootstrap classes
#3714 Fix network.construction_with_specified_port (uses test network port)
#3553 Adds an Unchecked Map - wrapper for the unchecked table outside the store class
#3690 Fix compilation problem due to ambiguous call
#3583 to_string function for message_header class
#3682 Improve slow test system.generate_mass_activity
#3654 Move semantics fix in the asio header
#3677 Fix slow test telemetry.all_peers_use_single_request_cache
#3678 Telemetry data to string function
#3667 Fix confirmation_height slow_test cases
#3666 Improve the slow_test store.pruned_load to work the same way for all databases
#3663 Fixing slow_test store.pruned_load.
#3656 Allow overriding initial peering DNS by environment variable
#3653 Remove unused locals
#3650 Add basic contributing file with links to docs for details
#3622 Disabling network.peer_max_tcp_attempts UT for Windows only
#3576 Introduce support for and use automatic port binding in rpc_test unit tests
#3579 Define macro to correct ubsan instrumentation for RocksDB.
#3597 Fix foreach representative deadlock
#3585 Remove short election expiration time for dev network
#3565 Update live rep weights file for V23

Other

Pull Request Title
#4022 Change election scheduler to consider previous balance
#4018 Specify whether bootstrap pull should start at block hash or account
#4019 Locking around read/write to peering_endpoint.
#4015 Unchecked map sequenced index
#4010 Constant vote broadcast interval
#4008 Skip empty batches in processing_queue
#4007 Fix bug when using locally generated votes cache
#3996 Continuous vote generation for active elections
#3995 Immediately remove confirmed elections from AEC
#3993 Improved removal of dead network channels
#3975 Stateless bootstrap server
#3979 Fix: Allow block count > UINT32_MAX in ledger::hash_root_random()
#3970 Block arrival activate
#3978 Fix: ledger bootstrap_weights size is reported as 0
#3974 Fix windows compilation problem for slow_test
#3972 Rename bootstrap_server to transport::tcp_server
#3971 Move message definitions source to separate file
#3897 Lookup channels by node id instead of endpoints in test code
#3963 Add batching to vote_generator
#3966 Add stats to blockprocessor
#3964 Fix for unit test ipc.asynchronous
#3958 Run node::process_confirmed from worker thread
#3961 Fix tests using election_scheduler::flush()
#3962 Fix vote_by_hash_bundle test
#3954 Improve vote_cache slow_tests
#3951 Simplify start_tcp_receive_node_id() by adding guard clauses
#3948 Allow overriding of std::thread::hardware concurrency
#3950 Remove the udp_fallback function
#3944 Hinted election scheduler
#3903 Split sanitizer and instrumentation checks in to several distinct parts.
#3942 clean up network_constants::network_constants
#3933 Fix test node.rep_remove
#3945 Fix test rep_crawler.local
#3940 Add EXPECT_TIMELY test macro
#3939 Cleanup bootstrap_server
#3938 Introduction of fake channel that acts similar to /dev/null
#3934 Disable systest set_bandwidth_params
#3932 Fix for test election.quorum_minimum_update_weight_before_quorum_checks
#3925 Fix inactive_vote_cache merge error
#3839 Check for representative in wallet more often when running on test net
#3914 Fix unit test active_transactions.fork_replacement_tally
#3924 Improve observer_set class
#3910 Fix unit test node.fork_open_flip
#3922 observer_set: do not call the observer callbacks holding the lock
#3900 Comments for confirmation_height_processor
#3885 Benchmark inactive_vote_cache in slow_tests
#3901 Fixing narrowing conversion warning and updating style.
#3895 Assert no error code when calling system::poll_until_true
#3894 IWYU in signal_manager
#3892 Extract recently_cemented container out of active_transactions
#3891 Fix unit test node.fork_open which intermittently failed
#3890 Move test code into namespace nano::test
#3887 Extract recently_confirmed container out of active_transactions
#3889 Fix vote_processor.producer_consumer test
#3888 Fix rpc.wallet_info test
#3886 Fix fork_bootstrap_flip test
#3874 Replace election::insert_inactive_votes_cache by election::vote
#3880 Move block_arrival class to its own file
#3877 nano::system::add_node reliability improvements
#3878 Store and forward the original peering port in keepalive messages
#3870 Extract election::cooldown_time calculation
#3868 Remove dead code from active_transactions
#3841 Block constructors to builders conversion in unit tests
#152 Crypto++ 5.6.5
#142 RPC receive
#3822 Limit the publishing of public builds and Docker images to only the public repository
#3805 Renaming nano::transport::channel_loopback to nano::transport::inproc::channel.
#3794 Improve public_key::decode_account to not write result on error
#3760 Fixes the missing of qt5-default package on newer Debian/Ubuntu versions
#3620 Fix --rpcconfig cli option
#3662 Use the default peering port for daemon start up
Commit Title
5fa226e5 Set pre release version to .99

Additional binary releases:


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

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

b20a3569af82b363d681b2ebd22d9e9f974536e9be1303674b6b4a190bd42761  nano-node-V24.0-Darwin.dmg
41c6a7cf4a1b77e35df4ea538c5847f0688a26907fd48ab1d1194a58bbf2e2aa  nano-node-V24.0-Linux.deb
d5209c92039b73eb9ec6f4cec730f9b3f31ebc2d4096fa524718030708479af7  nano-node-V24.0-Linux.tar.bz2
6bd3300eb5953bf7ac74a2a8c1ed506bdc9ef5f1923bd576ce8e7594b1cb220b  nano-node-V24.0.tar.gz
-----BEGIN PGP MESSAGE-----

owF1kj1oFUEUhTcaCVkwpHogGJiHIorkZXZ+d7QzqUwaCQQCITB35s57i8lusj9G
otgJgiIWloKNKLYWYho7RWKlnVoEUwgBGzubgBslIIjtved85144D44fjeLO9Npt
8m5nKx16vweR27574xKuFBvElkjqAZJqYJlUpGpWycBWA6xIKEpyDcsqK3LCRI+S
ElfQVtha6ixYV1fxfNbPbd20iAUss5A5Wx+onc0JICmbnNi+zfKqJm4FV+0gw6Zn
K0eynFRFU7pWg2sFOYu1m+qv9afOxTEwarlUxoaUAVfcqzQBhuAZ8wZNMFpIrtAA
JpxypQUoEDYxFLxgWiWE5DYvJvPC4+TCwdmTM7bcyPKeX+3HInHKahdaA2iNXPog
0EqeOpkKHahKU8uUoTp4kVpIfJIYYWUKEBgya/+Fz2V5c73nEWIvGTXOMMoNaI5g
0KkgHDrNaTDAA08QHPOCGhWsZEInKeVU0za5/Vb/j13bsgebLFbgOacUQRrJIWjr
tLDMpi5BL2m7dQaDDIlhHLzUymGKWhoBiQPGKPzFH/sT8Bvd34zvNMNRJ44mOt3h
C4+vLH8fibpPxxYnDgtz7EjblltRPDp+OJldivbH/c3zO2dOf3pyamZ5Yru6f3L3
w+Dy1XuDZz9ejU7PfRkeil7C7h5/s9T9dvHz+osTs/vzW7D4/HX34aOP9OfbzteR
Xw==
=5gFv
-----END PGP MESSAGE-----