V24.0
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-----