Releases: nanocurrency/nano-node
V28.1
Upgrade Notices
Some V28.0 users experienced occasional node crashes due to missing sideband in election blocks. This has been resolved in V28.1.
Major updates
Bounded Block Backlog
The Bounded Block Backlog (BBB) adds a maximum limit for unconfirmed transactions (currently 100,000), helping prevent resource exhaustion attacks & ensuring more consistent confirmation rates during high network load.
Traffic Shaping
Traffic shaping complements the fair queuing system implemented in V27, by managing outbound network traffic more intelligently. This helps ensure more equal distribution of bandwidth between peers, reduces network congestion, & helps maintain performance during peak network usage.
RocksDB Optimizations
Nano's RocksDB implementation has been updated to V9.7.2, and the default configuration settings have been updated to match current best practices. Additionally, a range of improvements related to memory usage, thread handling, & lock management have been included, improving stability and performance for nodes using the RocksDB database backend.
Vote Generation Improvements
The vote generation system has been redesigned to be more resource-efficient, reducing CPU usage, improving priority vote processing, & bundling votes more intelligently.
Vote Filter Implementation
A new vote filter implements sophisticated deduplication and relevancy checks, eliminating redudant votes, reducing bandwidth usage, lowering memory usage, & reducing overall network load.
Vote Rebroadcasting Overhaul
The vote_rebroadcaster component was overhauled, making vote rebroadcasting smarter & more efficient. Previously we used a simple queue with a naive filter which rebroadcasted all processed votes. Since a vote can contain up to 255 hashes and the same vote can be processed multiple times depending on the exact timing of election activation, this introduced a rather significant inefficiency where we could rebroadcast the same vote multiple times, wasting bandwidth. The vote rebroadcaster overhaul significantly improves this by improving tracking & filtering of vote rebroadcasts.
Bootstrap & Database Optimizations
Bulk frontier scanning has been added to the ascending bootstrapper, processing up to 1,000 accounts simultaneously. I/O overhead has also been reduced through smart caching and optimised database queries. Additionally, a new fork_cache
& block bootstrapping improvements were added, speeding up fork resolution during certain bootstrap scenarios.
Legacy Code Removal
The legacy bootstrapper has been completely removed, simplifying the codebase & improving code maintability.
Bug fixes
Several bugs were fixed, including race conditions, missing notifications, & dependency issues.
Upgrade notices
RPC changes
Bootstrap RPCs
The following bootstrap related RPC commands have been extended, modified, or added:
bootstrap_status
: previously this returned the status of legacy bootstrap; modified to return the status of ascending bootstrapbootstrap_reset
: resets ascending bootstrap state, both priority and blocking sets are clearedbootstrap_priorities
: dumps info about priority and blocking sets to aid in debugging any potential problems
Please note that the above bootstrap RPC commands are internal/diagnostic RPCs, & may not be stable.
Confirmation_info RPC
This is a backwards compatible change that updated the confirmation_info
RPC call to include a list of representatives_final
(representatives that have voted with final votes). Thanks to MajorChump for submitting this PR!
Ratio & Conversion related RPCs
Xrb_ratio has been removed and replaced with nano_ratio:
Existing name | ratio | Value | New name |
---|---|---|---|
Gxrb_ratio | 10^33 | 1000 nano | Knano_ratio |
Mxrb_ratio | 10^30 | 1 nano | nano_ratio |
kxrb_ratio | 10^27 | 0.001 nano | removed |
xrb_ratio | 10^24 | 0.000001 | removed |
The following deprecated RPC endpoints for conversion have been removed:
krai_from_raw
krai_to_raw
mrai_from_raw
mrai_to_raw
rai_from_raw
rai_to_raw
For alternatives, see Unit Conversion RPCs
Other RPC Changes
An optional include_linked_account
parameter was added to the account_history
, block_info
, and blocks_info
RPC endpoints. When enabled, the response will include a new field linked_account
, which returns the linked account associated with the block (or "0" if no linked account exists/was found e.g. due to pruning). Thanks to Exxenoz for submitting this PR!
Config changes
While the previous toml for database backend configuration is still supported for now, it is being replaced by database_backend = "lmdb"
or database_backend = "rocksdb"
under [node]
.
Consider reviewing and updating your configuration files with the --update_config
or --generate_config
CLI parameters. Review the toml config quick reference, or the CLI documentation for additional details.
Known Issues
Bootstrapping from scratch with pruning enabled causes the node to crash. As a potential workaround, node operators may be able to bootstrap with pruning disabled, and then enable pruning after bootstrapping is complete. A higher max_pruning_depth may also reduce the frequency of crashes. Pruning is considered experimental, so use it at your own risk - pruning is not currently recommended for important production services.
Docker Image
The official Docker tag for the V28.1 release is nanocurrency/nano:V28.1
See Pulling the Docker Image for more details.
Changelog
Bootstrapping
- Use chrono timestamps in ascending bootstrap code by @pwojcikdev in #4687
- Revert account store iterator in
bootstrap_server
by @pwojcikdev in #4688 - Ascending bootstrap dependency resolution by @pwojcikdev in #4692
- Fix handling of
gap_previous
by @pwojcikdev in #4696 - More bootstrap fixes by @pwojcikdev in #4699
- Bootstrap config tuning by @pwojcikdev in #4698
- Update live network bootstrap weights by @clemahieu in #4710
- Bootstrap weights in plain text by @RickiNano in #4703
- Frontier scan client by @pwojcikdev in #4739
- Remove legacy bootstrap by @pwojcikdev in #4777
- Bootstrap tuning by @pwojcikdev in #4784
- Optimize Vote Request Behavior During Bootstrapping by @gr0vity-dev in #4798
- Bootstrap tuning by @pwojcikdev in #4806
- Handle
gap_epoch_open_pending
block status when bootstrapping by @pwojcikdev in #4821 - Fix incorrect tag hash when requesting blocks by frontier by @simpago in #4845
- Decay bootstrap blocking set by @pwojcikdev in #4844
- Rate limiter for bootstrap server by @pwojcikdev in #4818
- Updated bootstrap weights by @RickiNano in #4843
Database / Ledger
- Revert ledger account iterator by @pwojcikdev in #4706
- Partially revert receivable iterator by @clemahieu in #4711
- Perform ledger upgrade in batches by @pwojcikdev in #4714
- Fix database iterator-transaction lifetimes by @pwojcikdev in #4713
- Rocksdb overhaul and clean up by @RickiNano in #4730
- Migration progress in percentage by @RickiNano in #4725
- Rocksdb tx cleanup by @clemahieu in #4737
- Database scan improvements by @pwojcikdev in #4734
- Simplified RocksDb migration logic by @RickiNano in #4740
- Database scan fix by @pwojcikdev in #4742
- Various cleanups to store classes by @clemahieu in #4760
- Pass transaction in to end iterator for future use. by @clemahieu in #4761
- Convert store iterators to variants rather than using polymorphism. by @clemahieu in #4759
- Use unique_ptr with LMDB resources to prevent leaks by @clemahieu in #4770
- Exit migration if existing rocksdb ledger found by @RickiNano in #4778
- Fix database write guard by @pwojcikdev in #4780
- Fix out of order ledger notifications by @pwojcikdev in #4824
- Pass node config directly to make_store function by @RickiNano in #4826
*...
V28.0
Major updates
Bounded Block Backlog
The Bounded Block Backlog (BBB) adds a maximum limit for unconfirmed transactions (currently 100,000), helping prevent resource exhaustion attacks & ensuring more consistent confirmation rates during high network load.
Traffic Shaping
Traffic shaping complements the fair queuing system implemented in V27, by managing outbound network traffic more intelligently. This helps ensure more equal distribution of bandwidth between peers, reduces network congestion, & helps maintain performance during peak network usage.
RocksDB Optimizations
Nano's RocksDB implementation has been updated to V9.7.2, and the default configuration settings have been updated to match current best practices. Additionally, a range of improvements related to memory usage, thread handling, & lock management have been included, improving stability and performance for nodes using the RocksDB database backend.
Vote Generation Improvements
The vote generation system has been redesigned to be more resource-efficient, reducing CPU usage, improving priority vote processing, & bundling votes more intelligently.
Vote Filter Implementation
A new vote filter implements sophisticated deduplication and relevancy checks, eliminating redudant votes, reducing bandwidth usage, lowering memory usage, & reducing overall network load.
Vote Rebroadcasting Overhaul
The vote_rebroadcaster component was overhauled, making vote rebroadcasting smarter & more efficient. Previously we used a simple queue with a naive filter which rebroadcasted all processed votes. Since a vote can contain up to 255 hashes and the same vote can be processed multiple times depending on the exact timing of election activation, this introduced a rather significant inefficiency where we could rebroadcast the same vote multiple times, wasting bandwidth. The vote rebroadcaster overhaul significantly improves this by improving tracking & filtering of vote rebroadcasts.
Bootstrap & Database Optimizations
Bulk frontier scanning has been added to the ascending bootstrapper, processing up to 1,000 accounts simultaneously. I/O overhead has also been reduced through smart caching and optimised database queries. Additionally, a new fork_cache
& block bootstrapping improvements were added, speeding up fork resolution during certain bootstrap scenarios.
Legacy Code Removal
The legacy bootstrapper has been completely removed, simplifying the codebase & improving code maintability.
Bug fixes
Several bugs were fixed, including race conditions, missing notifications, & dependency issues.
Upgrade notices
RPC changes
Bootstrap RPCs
The following bootstrap related RPC commands have been extended, modified, or added:
bootstrap_status
: previously this returned the status of legacy bootstrap; modified to return the status of ascending bootstrapbootstrap_reset
: resets ascending bootstrap state, both priority and blocking sets are clearedbootstrap_priorities
: dumps info about priority and blocking sets to aid in debugging any potential problems
Please note that the above bootstrap RPC commands are internal/diagnostic RPCs, & may not be stable.
Confirmation_info RPC
This is a backwards compatible change that updated the confirmation_info
RPC call to include a list of representatives_final
(representatives that have voted with final votes). Thanks to MajorChump for submitting this PR!
Ratio & Conversion related RPCs
Xrb_ratio has been removed and replaced with nano_ratio:
Existing name | ratio | Value | New name |
---|---|---|---|
Gxrb_ratio | 10^33 | 1000 nano | Knano_ratio |
Mxrb_ratio | 10^30 | 1 nano | nano_ratio |
kxrb_ratio | 10^27 | 0.001 nano | removed |
xrb_ratio | 10^24 | 0.000001 | removed |
The following deprecated RPC endpoints for conversion have been removed:
krai_from_raw
krai_to_raw
mrai_from_raw
mrai_to_raw
rai_from_raw
rai_to_raw
For alternatives, see Unit Conversion RPCs
Other RPC Changes
An optional include_linked_account
parameter was added to the account_history
, block_info
, and blocks_info
RPC endpoints. When enabled, the response will include a new field linked_account
, which returns the linked account associated with the block (or "0" if no linked account exists/was found e.g. due to pruning). Thanks to Exxenoz for submitting this PR!
Config changes
While the previous toml for database backend configuration is still supported for now, it is being replaced by database_backend = "lmdb"
or database_backend = "rocksdb"
under [node]
.
Consider reviewing and updating your configuration files with the --update_config
or --generate_config
CLI parameters. Review the toml config quick reference, or the CLI documentation for additional details.
Known Issues
Bootstrapping from scratch with pruning enabled causes the node to crash. As a potential workaround, node operators may be able to bootstrap with pruning disabled, and then enable pruning after bootstrapping is complete. A higher max_pruning_depth may also reduce the frequency of crashes. Pruning is considered experimental, so use it at your own risk - pruning is not currently recommended for important production services.
Docker Image
The official Docker tag for the V28.0 release is nanocurrency/nano:V28.0
.
See Pulling the Docker Image for more details.
Changelog
Bootstrapping
- Use chrono timestamps in ascending bootstrap code by @pwojcikdev in #4687
- Revert account store iterator in
bootstrap_server
by @pwojcikdev in #4688 - Ascending bootstrap dependency resolution by @pwojcikdev in #4692
- Fix handling of
gap_previous
by @pwojcikdev in #4696 - More bootstrap fixes by @pwojcikdev in #4699
- Bootstrap config tuning by @pwojcikdev in #4698
- Update live network bootstrap weights by @clemahieu in #4710
- Bootstrap weights in plain text by @RickiNano in #4703
- Frontier scan client by @pwojcikdev in #4739
- Remove legacy bootstrap by @pwojcikdev in #4777
- Bootstrap tuning by @pwojcikdev in #4784
- Optimize Vote Request Behavior During Bootstrapping by @gr0vity-dev in #4798
- Bootstrap tuning by @pwojcikdev in #4806
- Handle
gap_epoch_open_pending
block status when bootstrapping by @pwojcikdev in #4821 - Fix incorrect tag hash when requesting blocks by frontier by @simpago in #4845
- Decay bootstrap blocking set by @pwojcikdev in #4844
- Rate limiter for bootstrap server by @pwojcikdev in #4818
- Updated bootstrap weights by @RickiNano in #4843
Database / Ledger
- Revert ledger account iterator by @pwojcikdev in #4706
- Partially revert receivable iterator by @clemahieu in #4711
- Perform ledger upgrade in batches by @pwojcikdev in #4714
- Fix database iterator-transaction lifetimes by @pwojcikdev in #4713
- Rocksdb overhaul and clean up by @RickiNano in #4730
- Migration progress in percentage by @RickiNano in #4725
- Rocksdb tx cleanup by @clemahieu in #4737
- Database scan improvements by @pwojcikdev in #4734
- Simplified RocksDb migration logic by @RickiNano in #4740
- Database scan fix by @pwojcikdev in #4742
- Various cleanups to store classes by @clemahieu in #4760
- Pass transaction in to end iterator for future use. by @clemahieu in #4761
- Convert store iterators to variants rather than using polymorphism. by @clemahieu in #4759
- Use unique_ptr with LMDB resources to prevent leaks by @clemahieu in #4770
- Exit migration if existing rocksdb ledger found by @RickiNano in #4778
- Fix database write guard by @pwojcikdev in #4780
- Fix out of order ledger notifications by @pwojcikdev in #4824
- Pass node config directly to make_store function by @RickiNano in #4826
- Extract pruning class by @pwojcikdev in #4825
- Database backend configuration by @RickiNano in https:...
V27.1
What's Changed
Networking overhaul
Significant portions of the networking structure have been rewritten to improve reliability, maintainability, and performance.
- Merge server_socket in to tcp_listener by @clemahieu in #4354
- Preliminary network class cleanup by @pwojcikdev in #4490
- Reorganize
tcp_listener
by @pwojcikdev in #4515 - Networking cleanup continued by @pwojcikdev in #4495
- Fix
tcp_server
constructor by @pwojcikdev in #4499 - Cleanup strand binding in socket class by @pwojcikdev in #4498
- Keep io context running when stopping test system by @pwojcikdev in #4525
- Remove channel comparison functions by @pwojcikdev in #4500
- Rework handshake visitor by @pwojcikdev in #4504
- Store
io_context
as shared pointer by @pwojcikdev in #4506 - Keep weak pointer to node in socket objects by @pwojcikdev in #4542
- Use strand for socket operations by @pwojcikdev in #4576
- Use a dedicated thread for tcp listener by @pwojcikdev in #4523
- Peer cache by @pwojcikdev in #4574
- Use coroutines in tcp listener by @pwojcikdev in #4581
- Stop using boost::asio::ip::udp::endpoint by @dsiganos in #4585
- Run UPNP port mapping on a dedicated thread by @pwojcikdev in #4591
- Remove temporary channels by @pwojcikdev in #4595
- Replace
tcp_message_manager
by @pwojcikdev in #4609 - Internal node io context by @pwojcikdev in #4618
- Avoid creating temporary inproc channels by @pwojcikdev in #4625
- Transport classes cleanup by @pwojcikdev in #4651
- Differentiate between node IO runners and general IO thread roles by @pwojcikdev in #4643
- Remove tls support by @pwojcikdev in #4646
- Fix stopping of bootstrap workers by @pwojcikdev in #4667
- Incremental backoff for
local_block_broadcaster
by @pwojcikdev in #4662 - Legacy bootstrap throttling by @pwojcikdev in #4669
Fair queuing
- Fair queuing for block processor by @pwojcikdev in #4476
- Fair queuing for vote processor by @pwojcikdev in #4536
- Fair queuing for bootstrap server by @pwojcikdev in #4584
- Wait until fair queue source drains before removal by @pwojcikdev in #4597
- Fair queuing for request aggregator by @pwojcikdev in #4598
Logging and stats overhaul
- Logging overhaul by @pwojcikdev in #4375
- Avoid printing warning about cerr and colors in default cli mode by @dsiganos in #4400
- Tracing by @pwojcikdev in #4412
- Fix typo in ipc session_id debug log by @gr0vity-dev in #4448
- Allow easy printing ranges of objects by @pwojcikdev in #4488
- Log improvements by @pwojcikdev in #4580
- Stats overhaul by @pwojcikdev in #4583
- Stats logging by @pwojcikdev in #4596
- Enum utils by @pwojcikdev in #4601
Election/block handling improvements
- Add a bucket that lands in the range typically used by faucets / tipping services. by @gr0vity-dev #4661
- Remove atomic enum election::state_m and instead require locking election::mutex. by @clemahieu in #4318
- Remove block_processor::flush function by @clemahieu in #4404
- Remove gap cache by @pwojcikdev in #4422
- Move block observer logic into
active_transactions
by @pwojcikdev in #4421 - Adjust election block rebroadcasting by @pwojcikdev in #4423
- Blockprocessor context by @pwojcikdev in #4424
- Cleanup unused
broadcast_confirm_req
variants by @pwojcikdev in #4440 - Local block broadcaster by @pwojcikdev in #4454
- Ledger block abstraction by @clemahieu in #4458
- Improve block field functions by accessing sideband information internally by @clemahieu in #4465
- Remove ledger::block_destination and use block::destination by @clemahieu in #4478
- Remove usages of frontiers table from ledger_processor block checks by @clemahieu in #4460
- Simplify the nano::ledger::successor function to make its implementation more obvious. by @clemahieu in #4484
- Election vote result enum by @pwojcikdev in #4497
- Election age statistics by @RickiNano in #4537
- Limit batch size for block processor by @pwojcikdev in #4655
Rep handling overhaul
- Rep crawler overhaul by @pwojcikdev in #4449
- Dedicated
rep_tiers
class by @pwojcikdev in #4471 - Multithreaded request aggregator by @RickiNano in #4469
- Changed description of request_aggregator_threads by @RickiNano in #4477
- rep_weights part 1 - Add data store for representative weights by @simpago in #4482
- rep_weights part 2 - Store representative weights in database by @simpago in #4483
- rep_weights part 3 - Add mininum weight to representative cache by @simpago in #4485
- Convert rep_weights mutex to a shared_mutex since the majority of time it's being read by @clemahieu in #4628
- Track rep query response time by @pwojcikdev in #4658
- Use memory weight instead of exact weight when computing wallet reps. by @clemahieu in #4555
Vote handling improvements
- Enable large votes by default where support was added in V26 #4350 by @clemahieu #4683
- Store full votes in vote cache by @pwojcikdev in #4518
- Vote generator write queue by @clemahieu in #4556
- Multithreaded vote processor by @pwojcikdev in #4600
- Separate vote_router from active_transactions by @clemahieu in #4607
- Add 'rebroadcasted' flag to
confirm_ack
message by @pwojcikdev in #4621 - More vote cache optimizations by @pwojcikdev in #4629
- Address performance regression in vote_cache::top by @clemahieu in #4627
- Use read/write transaction variant in vote generator by @pwojcikdev in #4639
- Offload vote cache lookup to a separate thread by @pwojcikdev in #4631
- Optimize
vote_cache::collect_container_info
by @pwojcikdev in #4644 - Reduce vote generator max batch size by @pwojcikdev in #4650
CI/GitHub improvements - Update clang-format by @pwojcikdev in #4414
- Analyze core dumps on test failure by @pwojcikdev in #4430
- Sanitizer workflow for macOS by @pwojcikdev in #4431
- Separate leak sanitizer from ASAN run by @pwojcikdev in #4435
- Reintroduce RC builds for releases branches by @gr0vity-dev in #4381
- Ignore
chacha.hpp
ubsan errors by @pwojcikdev in https://github.com/nanocurren...
V26.1
Build run: https://github.com/nanocurrency/nano-node/actions/runs/8048168703
What's Changed
Major improvements
- Hinted scheduler improvements by @pwojcikdev in #4312
- Support for frontier requests in stateless bootstrap server by @pwojcikdev in #4337
- Larger votes preparation by @pwojcikdev in #4350
Library updates
- Update boost submodule to v1.82 by @clemahieu in #4271
- Update lmdb submodule to version 0.9.31 by @clemahieu in #4289
- Rocksdb 8.6.7 and Clang 16 upgrade by @clemahieu in #4319
CI and Testing improvements
- Enable running core test suite in parallel by @pwojcikdev in #4246
- Improvements to CI pipeline by @pwojcikdev in #4248
- Improve: Consolidate artifact build process for all environments & Add Workflow for preparing release branch by @gr0vity-dev in #4256
- UBSan workflow by @pwojcikdev in #4353
- Enhance code sanitizers workflow (fixed & resubmitted) by @pwojcikdev in #4278
Cleanup
- Force use of windows.h instead of default winnt.h by @RickiNano in #4288
- Use c++ std filesystem (Cherry picked) by @RickiNano in #4315
- Remove vote-by-block support for confirm req message by @pwojcikdev in #4341
- Remove priority::flush and rename node::block_confirm to node::start_election by @clemahieu in #4276
- Refactor block_cemented_callback for readability by @gr0vity-dev in #4306
- Encapsulate election mutex by @gr0vity-dev in #4310
Miscellaneous
- fix(dockerfile): pass CI_VERSION_PRE_RELEASE build argument to cmake by @gr0vity-dev in #4247
- Fix Docker build type by @pwojcikdev in #4249
- Extract rollback_competitor function and simplify proces_batch. by @clemahieu in #4252
- Prettier
rate_observer
output by @pwojcikdev in #4257 - Add to_string functions to the classes asc_pull_req and asc_pull_ack by @brandon-bb in #4255
- Lazy steady clock sampling within nano::stats by @clemahieu in #4269
- Fix active_transactions::completion_type by @clemahieu in #4275
- This creates a the nano::store library/namespace/directory by @clemahieu in #4286
- Moving meta_handle to nano::store::lmdb::version by @clemahieu in #4291
- Remove database upgrades pre node v22 by @clemahieu in #4292
- Remove legacy upgrade code from lmdb store. by @clemahieu in #4293
- fixed bug in nano::rocksdb::store::clear() by @RickiNano in #4304
- Remove enumerations from stats_enums.hpp that are not used by @RickiNano in #4307
- Checks to ensure transactions execute in the context of their originating stores by @pwojcikdev in #4311
- Converting release_assert to exception if the ledger file cannot be opened. by @clemahieu in #4314
- Periodically refresh read transaction inside hinted scheduler by @pwojcikdev in #4325
- Fix performance issue in block_uniquer cleanup. by @clemahieu in #4326
- Move mutex acquisition outside write transaction inside vote generator. by @clemahieu in #4322
- Remove separate signature checking thread classes by @clemahieu in #4267
- Convert lmdb::block::exists to use lmdb::component::exists by @clemahieu in #4328
- Periodically refresh read transaction in
backlog_population
by @pwojcikdev in #4329 - Rocksdb: Don't read block content when checking if block exists by @RickiNano in #4333
- Fixes for hinted scheduler & vote cache by @pwojcikdev in #4334
- Fix
vote_uniquer
by @pwojcikdev in #4339 - Limit max number of queued blocks from ascending bootstrap by @pwojcikdev in #4347
- Apply correct network setting during linux builds by @gr0vity-dev in #4351
New Contributors
- @brandon-bb made their first contribution in #4255
Full Changelog: V25.1...V26.1
V25.1
Build run: https://github.com/nanocurrency/nano-node/actions/runs/5156809257
CHANGELOG
Release V25.1
Full Changelog
Fixed Bugs
Pull Request | Title |
---|---|
#4240 | Blockprocessor stall workaround |
Build, Test, Automation, Cleanup & Chores
Pull Request | Title |
---|---|
#4242 | Bump Qt version to 5.15.2 for Windows builds |
Other
Pull Request | Title |
---|---|
#4243 | Log hashes of build artifacts |
#4245 | Remove the call for signing.ps1 on Windows builds |
#4244 | Fix cpack on Windows |
#4241 | Remove assert for null block deserialization |
Commit | Title |
---|---|
fd07d15a | Merge bump-rhel-compatibility branch |
V25.0
CHANGELOG
Release V25.0
Full Changelog
Major Changes
Pull Request | Title |
---|---|
#4158 | Add the ascending bootstrap client |
#4111 | Optimistic elections |
Node Configuration Updates
Pull Request | Title |
---|---|
#4215 | Bootstrap dynamic throttle |
#4182 | Add config classes for ascending bootstrap |
#4163 | Lowering block_processor max transaction duration |
#4104 | Add tip on optimizing cpu usage |
RPC Updates
Pull Request | Title |
---|---|
#4228 | Quality improvements for accounts_balances RPC |
#4223 | QoL improvements for accounts_frontiers & accounts_representatives RPC |
#4066 | Return unopened accounts |
CLI Updates
Pull Request | Title |
---|---|
#4105 | Remove the UDP channel implementation from the network |
#4123 | Fix missing peering port doc when running --generate_config node |
Deprecation/Removal
Pull Request | Title |
---|---|
#4219 | Remove live updating bandwidth limits |
#4142 | Remove the stat types related to the removed UDP functionalities |
#4141 | Remove message buffer class and its manager class |
#4127 | Remove external boost references from CI build |
#4107 | Remove UDP test network.self_discard |
#4043 | Remove nano pow server |
Ledger & Database
Pull Request | Title |
---|---|
#4131 | Add LMDB and RocksDB upgrades to v22: Remove unchecked table |
#4216 | Remove the unchecked table code from the store classes |
#4028 | Upgrading RocksDB to stock 7.8.3. |
Fixed Bugs
Pull Request | Title |
---|---|
#4230 | Fix access without lock in active_transactions::confirm_block function |
#4225 | Fixes intermittent test failures in several RPC tests when querying setup blocks. |
#4221 | Converting legacy bootstrap shared_ptr's referencing nano::node to weak_ptr's |
#4205 | Add throttling functionality to the ascending bootstrapper |
#4110 | Bugfix: max counting had reversed polarity, it counted successes not fails |
#4103 | Fixes an issue where token_bucket::last_refill would update even if there were no tokens to add. |
#4093 | Fix race condition in unchecked_map |
#4082 | Fix processing_queue stop |
#4080 | Fix active_transactions stop |
#4079 | Fix hinted_scheduler stop |
#4018 | Specify whether bootstrap pull should start at block hash or account |
#4019 | Locking around read/write to peering_endpoint. |
Implemented Enhancements
Pull Request | Title |
---|---|
#4211 | Convert node-wide request rate limiter to a per-channel outstanding request limiter. |
#4202 | Socket write queue fixes and improvements |
#4192 | Applies a number of cleanups to rpc tests. |
#4164 | Verify work inside blockprocessor |
#4160 | Decouple message deserializer from the TCP socket |
#4159 | Small processing_queue improvements |
#4161 | Internally check if the block processor needs to drop blocks. |
#4151 | Add stats for election_scheduler |
#4149 | Cleaning up stat counters for active_transactions. |
#4148 | Add unchecked_map stats |
#4119 | Refactor election vote |
#4130 | Remove requeuing of blocks with invalid signature |
#4126 | Avoid unnecessarily held lock in backlog_population |
#4121 | Add ledger::head_block query which returns the head block for a given account. |
#4113 | Fix magic enum slow compilation times |
#4026 | Telemetry refactor |
#4094 | Fix magic_enum range |
#4090 | Add start & stop to election_scheduler |
#4087 | Add ledger::pending_info as interface to access pending information |
#4081 | Add ledger::account_info as interface to access account information |
#4078 | Extract epoch upgrader out of node |
#4065 | Use 'magic_enum' library for static reflection for enums |
#4074 | Add include_only_confirmed option to rpc accounts_balances |
#4068 | Move websocket initialization code out of node constructor |
#4062 | Submodule2 |
#3999 | Continuous backlog population |
#4017 | Updating to use c++20 |
#4030 | Adding boost as a submodule rather than depending on external references. |
#4022 | Change election scheduler to consider previous balance |
#4015 | Unchecked map sequenced index |
Build, Test, Automation, Cleanup & Chores
Pull Request | Title |
---|---|
#4229 | Update rep weights for V25. |
#4220 | Fix blake2 and argon2 building on Windows ARM |
#4204 | Small cleanup of threading related code |
#4203 | Fix thread names in nano::thread_pool |
#4166 | Migrate tests from the old message_parser to test the message_deserializer class |
#4140 | Move from boost spawn/yield coroutine on load_test to async callbacks |
#4114 | Fix bootstrap server thread name typo |
#4091 | Fix fork publish inactive |
#4100 | Introduce nano::test::start_election method |
#4076 | Extract common code for setting up unit test chains |
#4073 | Add comment for NANO_DEFAULT_PEER environment variable |
#4067 | Fix several sign comparison mismatches identified by msvc. |
#4063 | Removing WIN32_LEAN_AND_MEAN define from global project settings. |
#4056 | Increasing minimum required OSX version to 10.15 |
#4051 | Fixing build error, linking load_test to boost_process. |
#4049 | Removed all unnecessary usings |
#4045 | Disambiguity of all the implemented locks |
#4027 | Updating cryptopp from 8.5.0 to 8.7.0 |
Commit | Title |
---|---|
[cff1dbd](cff1dbde7f8b... |
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](https://github.com/nanocurrency/nano-node/pul... |
V23.3
CHANGELOG
V23.3
Full Changelog
Fixed Bugs
Pull Request | Title |
---|---|
#142 | Improves the vote processor class and limits its flush() |
#152 | Vote hinting reenable |
Other
Pull Request | Title |
---|---|
#3835 | Unchecked memory |
#152 | Crypto++ 5.6.5 |
#145 | GUI: seed warnings, several tooltips, balance in Account viewer |
#142 | RPC receive |
Commit | Title |
---|---|
17250767 | Fix use after delete in cleanup_election() |
a17157e0 | Merging identical code branches for convenience ::put function. |
00610099 | Adding a memory container for blocks once the initial bootstrap threshold is reached. Blocks are pruned in fifo order. |
9b5bae62 | Reimplementing nano::unchecked_store::get in terms of unchecked_store::for_each and removing backend-specific variants. |
b4ce6c41 | Converting functions on unchecked_map that return iterators to instead use for_each with a functor to execute on each result. This prevents iteration details from being exposed externally. |
2fd16c79, 57c2210e | Removing unchecked.for_each_par as it's effectively unused. |
73a631c3 | Remove a debug assert that crashes the node on receipt of zero node ID |
65c8ae9e | Bugfix: correctly check for magic bytes and network in message header |
Additional binary releases:
Hashes and GPG Signature (keys located in source etc/gpg/
).
Below are the sha256 sum hashes for version 23.3
Signature Verification can be run against thsfs.asc in source repo (etc/gpg/)
20057926a464c25090d69c9ce783d8211d91ed94fa0e3772340f8fb7ba1604f7 nano-node-23.3.0-Darwin.dmg
de91d92b479da5d97c5934302fc88f66c034c9e3b6dcdc251e4665832eb4c628 nano-node-23.3.0-Linux.deb
5873f160cd4da3ba59267e2f8338a265a294669391529d9b00bf1e0b61a8092e nano-node-23.3.0-Linux.tar.bz2
B62EDE96DD7D980B44AAC10840FAF950104D0C133BE66107DAE13D7D153D2453 nano-node-23.3.0-win64.exe
6F4775BFCF6009221A3C4BE9378B3F2BE2CD14F330CA947F4AC7F44E84EDEF43 nano-node-23.3.0-win64.zip
-----BEGIN PGP MESSAGE-----
owF1km1QFWUUxy8KqFsOjDbYaE6LmkHKvbvP8+wbgnn3viilpKhB4JTP7j4La3Iv
3r1XwHgZM3CgqBxSU8fRNMJohHHSuOLoaE5Ok05NEKaJigPamIovJBRxofWDnxy/
nA/nnP/v/M+Z8+nEsTYqaqxr7K1PPKwRdfamYlMaN8XJZK2/mMYBQgcLCG0WYMDx
tBkqpAuwWUBMWvcH6PUkYBp+Hw2gHVLLjXwfDoYswZskYOiGioOPair20QqhAyEf
jfOx4TODFtDUTTs2Vdrw0aY/FFCtOiny00kkqDryi/IdyRQFGIYTJMBjxCMVcIzE
aLykSioRRKiJgGU1iSWahHTMECgIACJGF3VFUDDLM0gXaB/2+VN8fo2kPLJnZ1Lc
OFBs+OxaYT6lEcnSAwUJkoY5TRJUToIIMkBXRVHneZWBSJUIVHhN1azpLEE8z4kQ
EAWpPBCfhC82fKESu0YUihMFqFseVA1pGCqYs5YQCNBFCEUMeA4DyYJJUGI5IGmS
wjCKzhJG4VksMhIgT2MHccCubACUzAOP2yPxbrfglkRGRsjpdLGMiBiv0ytxDMsg
N+NiIZQ9PM8ygtvpYaHVy3LQDRAHn+RbV+GRnZQQivciQcjmZK/LyzOWGcA6oQvJ
HgkKogy9QPYAl5tFXggZl1NCghc5XVZAHhFZnrzoqfANRhFVMwZG26Io2/SExOj7
FRWx/mMb5ahpo1mPXy9mzKO/s1ET4h9n3uLjbbunDbaGMib8HWyd73htS3pp1r6c
6o8Svk1NnTVQWN6tvFyZd+jOEfk/cmn+lfMNrz9/NPG5zfOKt0zak/v9oviV3YC7
PH1ZdFnlveUdM7eFs29Kdfud8KUbuzJ+bVAW3f1xpDmm7u0+adO2P9jbsVfVVBBo
m/XixsxrTfLqg5Gh8L41rs/opvi5Z7IP739o1lbvPFk+eXfm3L6uazHPzKvJfCim
ZZ5wvNDfc2b9lY3vZ8ddZpWWOVkrby5alZP0ywcc//mQ2ZnRnyv06mur7uPbeSt6
imf0U+Gk8ZFjQx0NF5u45tGr/wz3sg1a9/FgyxFj5pTFK/1d4b3Dk/v22DKOT07r
jG6OWv3qQjm9ftKeJUUpZVNbf9qhXuh42F46byBr4PQ7g0fXiB2mY+rZccPfTRyc
4e7c9WfeG6mHumuFhFJP6o1lS8ehBi5knPqSDS/s4NLiIk3XT92dYr+VAu43Lq6v
XLagOoea2JNe3v7g3TmVjWerxz9orx+5TifvPRXeced3o6L5ZFX7uezRSb0lJ5a8
csk7OJTXtsp/uGJ72Q9r69t+RlPT1S6jcOlw73lb0rProtetqTmY0bhp62/chzPK
085Xd2a1nNmdFBepEh1/4dkfX/jqwQqcmLx8dl3/VriA5H7d9U3kIn33QH/xvZ2e
CKoZ1k7/e+/ce18cqE0uGHWOcAtiV2xv71r4Pw==
=dpMI
-----END PGP MESSAGE-----
V23.1
CHANGELOG
V23.1
Full Changelog
Fixed Bugs
Pull Request | Title |
---|---|
#3828 | V23.1 Cumulative patch |
Implemented Enhancements
Pull Request | Title |
---|---|
#3816 | Node ID persistence |
Other commits
Commit | Title |
---|---|
fef94e36 | Setting CPACK_PACKAGE_VERSION_MINOR value to reflect V23.1.0.0 |
Additional binary releases:
Hashes and GPG Signature (keys located in source etc/gpg/
).
Below are the sha256 sum hashes for version 23.1
Signature Verification can be run against thsfs.asc in source repo (etc/gpg/)
556457314eae3dd6cf1538743b8d15aa23fb19169d6c2c3efebdcf9540eb537f nano-node-23.1.zip
7ae22cdfbd4056053bb9bbd733b79e86c2cce849f9ff750118340af612a257c3 nano-node-23.1.tar.gz
e2affdeb9635f7f35fa90c40b60aefc6429ca67f9c97e2748e49bce62f955edc nanocurrency-23.1-1.el7.src.rpm
946a788782bc2be25994a56a2c93038231619544c9273a998a19070eda497c9a nanocurrency-23.1-1.el7.x86_64.rpm
b386eeb85b0c3d8987dbd6ae450a196602dba962583b432a6c8426a64562c865 nanocurrency-debuginfo-23.1-1.el7.x86_64.rpm
94ae49c4869376787cc161ee324d933584725aa820cfad9fc65c2934db6fb028 nano-node-23.1.0-Linux.deb
aa7c67350bb18a232c3c1d083f7a110ad7f177025b821f4fd1266d49b1b374fb nano-node-23.1.0-Linux.tar.bz2
C1C8F86C36480DC1F5AF0602C4877F655205EFE99DCB69264CB38ED3A075FC25 nano-node-23.1.0-win64.exe
8814DB1F621615832F7FBB4C16AC8CD7BF0A2E377B05E323F8FE3EF0E5B31A4A nano-node-23.1.0-win64.zip
922aa8020a4225cd3c1a961badcb5115d9e06ce06dea9b98e1a1d5b243428793 nano-node-23.1.0-Darwin.dmg
-----BEGIN PGP MESSAGE-----
owF1lGuMjFcYx3ddlh13bbfSrc2Qja7qjvfcz0E1cyWNkC6l2N3uOec97+y4zIyZ
HXY1FutSrBShSIOiLtFSl4YEFaxq0FKVVLQN0hZR10UrFbe+K/GhFV/Oh/fJ+/s/
z///nLOwXfMsT3bzYPOrC8Iglv3dFZWl6o/WBcy4xCSvTBlvVaXxpislJNSbzoz3
Vsp0pUl7nUTKO9Gk0rFE3AuRD3iGxqJxWZVxfxhuUjEnpmVVU03LuFcZbyoT98qo
jMXTVS4w7aR9Mq29sbg3nciktFs3yYS3yFTp3tFktHdPj4cQiglDABtpkG1T7QCC
OMNIcRsQKSFyFBCACrcENTKOUbZ2BMGWUQQxxxuX8URxPGGb4qb2fJNjSQ+TBkJt
O8rGFqEWQUoJpWyGkGLC8CaQNhwLRzgOIxYAHGFLOhRAd3qm0f+ZVTLli072GCgd
xzZKUEQc5riHFJbGlqKWNI6mGAotKXOEFsxAhrnBQmlDodsuMbZ+gtWZVMrEdc0T
cjHwmXHMl05pXyo53iMwlYxzxqHSUBlIhMCSUAm1QBbiEAEK3MmxFpAhKQSXQFjM
MrbEgmkhnytQzen7FD/RUIhTYxQnytLI5oIzW9lUGkwsl0apBW0lBYWEI4URlFRz
DKl0Q6JQc0r+q+G6kYnG4k7iOWpu/64JGnMqEKOMM63dGYxBENsCIcIxg27IHFra
kbZwTSQaCoRtRR1lQf7/JKziQbF4ptrn6nqkZJoyRCylAHf3xN0ODWyLI4dJACxp
MwcwZkGiOAQOdmwAKbXdSIBCDDvqeeymtNVk6AmCII9wGkQUcysUBBHij1iuP0HM
GYtQQqBFwpGwEKFggApIcTCAeDiE/BYjkSAkz/InxeKuL6baeDgHOBQAEQpdO1yr
YYRFAgEcBNQf5MEQC0QsPwwjxgKuBoIowiNhFI5YYRJAwI/9z2M3bb+A0HXUgpbE
EBJtu664gQIlba0IAMQWxqLauDfDNlIowQ2QwCYKYoQhZ+KZ9beKQzLl8n32+Khn
bjPUIivbk9U1r1uLW7W1OYm90wPZ+Y9Lnj4sLZs1vSpZntyOT78cf7nDo6IJox82
LIwkN5TlF/ZttbJ119MbztzdWns/70HSVtWfd1zceP7MRfv+sj+H77xyZED/WScy
a1bPKF1dc/vxrpXV9OGlspFFpeZAuNDsr7na4ofyL14L9595FPTofOLooKLpjeVv
9TpRerX04MFf2n9bUtD9k94t6l4oHJAztmDP3mh939JvNvBVU/U8+3KP2ndOF3+9
Hac7HDt1oE1uw46TpYdVIf/+XEHy1pd9Xu+8tW3Px3Pr+4V/m76jblsvdHtLy5oh
FW+c/TivbtSlfg37pl0eyLqtm7fxpwl/tK3ss97nnz+lsWzmiM0Plm0UK268e+if
KeVbFtwRB7tk17QqLwgl0c8fRpbqwZlwu0M6NOTcEDLGnuNpvyLnxfm5g4pfOjVg
T2Vy4oC2m85fgnnT171dkVlyc32nzQNHLP6sAdeOra3LnZofH1TyQWPjpLWpwYvu
gd0l/u73L83dtS3p3HmPJCcc+st3cuboi78u399p37VhP+b3uHU8u2hXz1ZFVxq6
UVKMIrMrzs8u9/6d/GrY9f35M+blv5k+eTh++drVR5seHavfe2d3dv7IaamWyysu
9K8813gwZ1KzDrW3d24curTwRvdX+pKSa2O2rDzbLX6i5M6YXXfDZbMWD2vTJYdd
6P2Rv09ZclzlqkU0umPJzTnHJodebSgYeC+xyckrPFKx5vdPx3lWhwu2bt4+qnXJ
rdFrlyVOX8/9Fw==
=/ugz
-----END PGP MESSAGE-----
V23.0
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 walki... |