Version 19.0
Change Log
Release V19.0 (2019-07-11)
Major Changes:
- RPC server is moved to a new process [#1874]
- Trending active_transactions difficulty for an average [#1858]
- Add confirmation height [#1770]
- Add support for realtime network traffic over the bootstrap TCP port [#1548]
Implemented enhancements:
- Move confirm_frontiers higher up request loop [#2141]
- Cleanup inactive channels from rep crawler [#2132]
- Improve broadcast_confirm_req_batch delays and max size [#2130]
- More aggressive setting confirmation height of frontiers during low tps [#2126]
- Send confirm_req each request_confirm loop [#2125]
- Always notify on active difficulty updates [#2109]
- Fix intermittent test issue and cleanup unused vars [#2108]
- Improve batching multiple blocks pending confirmation height processing [#2105]
- Add observer stats for confirmations [#2100]
- Use default vote_generator_delay if missing (for RC updates) [#2093]
- Web socket subscription for active difficulty [#2091]
- Bidirectional TCP sockets [#2087]
- Move WebSocket confirmation_type into message [#2079]
- Only pass active confirmations to the http callback [#2078]
- Don't start confirm_frontiers () if elections count > active_elections_size [#2076]
- Use correct index when iterating prioritized frontiers [#2069]
- Add launch flag --disable_udp [#2063]
- Use a convenient global instead of passing use_memory_pools explicitly [#2059]
- Add active container observer [#2058]
- Make announcement_long delay 2 rounds [#2056]
- active_transaction.roots bounding by config instead of confirmation rate [#2051]
- Configurable confirmation history container [#2049]
- Don't escalate confirmed previous/source for elections [#2048]
- Attempt to start TCP connections to known UDP peers [#2045]
- Update broadcast_confirm_req to use confirm_req by hash [#2036]
- Move SYN cookies & response channels to separate classes [#2029]
- Add configurable vote generator delay and bundling test [#2028]
- Use a memory pool to reduce block deserialization heap usage [#2025]
- Factor out network [#2024]
- Increase server timeout to receive TCP header [#2022]
- Capture SIGINT and SIGTERM to clean up sockets [#2018]
- Set minimum difficulty for RPC "work_generate" [#2006]
- Fix off by one error in frontier req server [#1992]
- Bounded active transaction [#1990]
- Prioritize frontiers for background confirmation [#1982]
- Finish up difficulty/multiplier semantics in RPC work_generate and work_validate [#1981]
- Move io_threads to rpc process config node [#1980]
- Add specific rpc process config options [#1977]
- Add severity logging levels, and send errors to syslog/Event Viewer (incl failed rollbacks for confirmed blocks) [#1973]
- Framing support for realtime network messages [#1972]
- Move common UDP/TCP channels functions to transport [#1971]
- Fixing dynamic re-work and trend from elections [#1968]
- Makes sure a write lock can be avoided when launching an inactive_node [#1967]
- Send live network messages over TCP [#1962]
- Backup config files when upgrading [#1959]
- Pass command line arguments (network/data_path) to nano_rpc child process [#1957]
- Simple ledger validation CLI command [#1956]
- Reduce length holding read transaction open for in confirmation height processor [#1954]
- Print info about network and path, when running daemon [#1953]
- Allow long running read transactions to be broken up [#1951]
- Fix our warnings [#1942]
- TSAN suppressions file [#1941]
- Make new random_constants class for not_an_account [#1928]
- Try to fix some version-specific clangformat formatting issues [#1927]
- Activate confirm_req_hashes for beta network [#1926]
- Set defaults for block_sideband [#1922]
- Add more information after a segmentation fault [#1921]
- Replace xxHash with blake2b [#1919]
- Add CLI command for dumping any frontier-unchecked key matches [#1915]
- Cleanup test files on Windows after executing test binary [#1910]
- Immediately stop inactive node active_transactions loop [#1909]
- Websockets - subscribe to votes [#1908]
- Websockets - filtering options [#1907]
- Websockets - check for subscriptions before proceeding [#1906]
- Remove delay exiting node in request processor [#1904]
- Add pulls cache for long bootstraps [#1903]
- Update confirmation heights with new async timing [#1899]
- Delete unused rpc.cpp [#1897]
- Recalculate work from wallet [#1895]
- Port config cleanup, allow running tests alongside beta node [#1891]
- Remove vote generator delay [#1889]
- Add copying operation to block builder [#1886]
- Create new node ID on each launch & support keepalive with preferred ports [#1885]
- Reduce work.eco_pow intermittent failure rate [#1882]
- Update confirmation height in another thread [#1877]
- When clearing confirmation heights set the genesis account to be 1 [#1875]
- RPC server is moved to a new process [#1874]
- Refactor preparation for moving RPC out of process [#1872]
- Remove ed25519 and lib library circular dependency [#1870]
- Remove circular dependency between secure <-> lib libraries [#1867]
- Various minor coding style updates [#1863]
- Trending active_transactions difficulty for an average [#1858]
- Reinstate preconfigured keepalives [#1854]
- clang for travis [#1846]
- Support sending decimals from QT wallet [#1843]
- Allow block_processor variables tuning with launch flags [#1842]
- Websocket support [#1840]
- Add the concept of message channels to the node. [#1837]
- Moving network sizing functions [#1836]
- Separating the concepts of: [#1835]
- Renaming udp_buffer to message_buffer [#1834]
- Removing send_confirm_req functions [#1833]
- Add difficulty limit for RPC "work_generate" in config.json [#1830]
- Clean up and simplify calls to get buffers to messages. [#1829]
- Externally connect to the tcp socket [#1828]
- Move RPC out of node process [#1827]
- Rename republish_x to flood_x to better describe what we're doing. [#1825]
- Remove node_id_version [#1824]
- Remove nano::network::on [#1823]
- RPC account_history add block height and optional reverse [#1822]
- Periodically check for unconfirmed frontiers and start elections [#1821]
- Get account history starting at a block and ending in head [#1820]
- Log wallet lock/unlock [#1817]
- Start elections for all forks of unconfirmed blocks [#1815]
- Output error if lmdb env cannot be opened [#1811]
- Use adjusted difficulty for trees in active transactions [#1810]
- Use to_bytes in bootstrap as well [#1807]
- Require standard layout in mdb_val [#1806]
- RPC accounts_pending - sort by amount [#1804]
- Improve representative crawler [#1803]
- Confirmation height enhancement [#1801]
- Improve CLI --wallet_import [#1800]
- Support difficulty for RPC "work_generate" [#1798]
- Replace nested if/else with map for no argument rpc_handler functions [#1796]
- Add TCP server timeout [#1790]
- Time limited logging [#1789]
- Use the error code overloads for socket shutdown/close [#1786]
- Don't output useless log file entries [#1785]
- Include all representatives with delegated weight in online representatives list [#1784]
- Support difficulty for RPC "work_generate" [#1780]
- Support difficulty for OpenCL generate_work () [#1775]
- Add subtype field for state blocks in RPC block_info, blocks_info [#1774]
- Add confirmation height [#1770]
- RPC config versioning, remove unused options [#1768]
- Cleanup unused member functions in secure library and various other cleanups [#1764]
- Use optimized Argon2 source for all x86_64 builds [#1762]
- Improve rep tracking [#1756]
- Check that full is not empty and assert [#1753]
- Remove implicitly converted argument [#1751]
- Support difficulty for OpenCL PoW [#1749]
- RPC pending - sort by amount [#1748]
- Ability to limit CPU rate for POW [#1734]
- --diagnostics CLI option to check & update config.json file [#1733]
- Network selector [#1729]
- RPC unopened [#1727]
- Investigate supporting the Expect header in RPC [#1671]
- Check if block processor is full in bulk push server [#1668]
- Allow block_processor variables tuning with launch flags [#1660]
- Slight OpenCL improvements [#1634]
- Add support for realtime network traffic over the bootstrap TCP port [#1548]
- RPC Account history filter [#1355]
- PoW Client Compute and Resend Work based on network load [#1336]
- Enhancement Request: Update Ledger RPC action to show unopened accounts with pending balance [#1166]
- Update HTTP Callback to Support HTTP keep-alive [#1125]
- Enhancement Request: add optional account_filter option to account_history RPC [#1110]
- Easy way to switch between beta/live network [#1099]
- RPC/CLI inconsistency with wallet_change_seed [#793]
- Official wallet doesn't support decimals [#247]
- Add information to logs about password & wallet unlock [#92]
Fixed bugs:
- pre release maintenance [#2146]
- Set genesis account to have a confirmation height of 1 after initial upgrade [#2144]
- set default active_election_size to 50k [#2143]
- Strange TSAN warnings running nano_rpc & making simultaneous requests [#2140]
- test validating #2116 [#2138]
- RPC stop action can take a long time to close the node down [#2135]
- Improve assert in TCP node_id_handshake [#2133]
- [TSAN] Use only async signal safe functions in signal handlers [#2131]
- tsan: missing lock in ws active_difficulty unit test [#2129]
- Improve assert in tcp_channels::process_message () [#2127]
- Docker cache [#2121]
- update default limit to (5 * 1024 * 1024) or 5Mb/s [#2119]
- remove else and always flush if over config.json active_elections_size [#2116]
- only log if blocks have been processed and logging enabled [#2115]
- fix windows installer path [#2112]
- Use confirmation request count instead of announcement term [#2111]
- Minor Readme file updates [#2107]
- Flag to disable TCP realtime network [#2103]
- Fix locking issue and intermittent failure in rpc.active_difficulty [#2102]
- Test bug introduced by #2090 [#2101]
- Add ability to clear stats from Qt wallet [#2099]
- TCP: Don't connect to or log invalid peers [#2097]
- Fix vote_generator loop inconsistency during high load [#2095]
- Formatting issues on master [#2094]
- Optional include_trend for RPC active_difficulty [#2090]
- Add optional cemented count to block_count RPC command [#2089]
- Fix duplicate iterating in conf height processor with self and circular sends [#2088]
- Update slow_test [#2086]
- Use node_flags for delay_frontier_confirmation_height_updating [#2085]
- Add optional argument to block_count RPC for including cemented blocks [#2083]
- Prevent multiple observer calls for confirmed block [#2082]
- Provide test for WS topic election_stopped and fix bad topic/content [#2081]
- Create websocket subscription for active_difficulty changes [#2080]
- Use the MDB_NOMEMINIT flag with the ledger db environment [#2077]
- Remove copies of blocks container from network::flood_block_batch [#2075]
- Fix ASAN issue in ws unit tests [#2074]
- [Valgrind] Increase deadline timer in the rpc.simultaneous_calls test to account for valgrind slowness [#2073]
- Fix assorted compiler warnings [#2071]
- Factor out online_reps and gap_cache [#2070]
- Disable memory pools when running on Mac [#2067]
- Websocket/extended confirmation support [#2066]
- Consistently send TCP keepalives [#2064]
- Limit socket queue_size [#2062]
- Fix TSAN error with work_watcher [#2061]
- TSAN error for send_node_id_handshake test [#2060]
- Reduce lock time in UDP ongoing keepalive [#2057]
- Check if existing block is already confirmed in active_transactions add [#2055]
- Handle accounts which have the same number of uncemented blocks when prioritizing frontiers [#2053]
- Ledger tests related to epoch conflicts [#2052]
- Fix deadlock in tests (Continued) [#2050]
- Use a pool allocator for shared_ptrs with blocks, elections and votes [#2047]
- Remove count byte from confirm_req by hash [#2046]
- Remove unused std::expected library [#2044]
- Fix deadlock in tests [#2043]
- Fix initialization order bug in nano::node [#2042]
- Factor out vote processor [#2041]
- Add node_constants half_period [#2040]
- update docker config template and include default rpc config [#2038]
- Change gap cache voters to use a vector [#2037]
- Bandwidth limiting [#2035]
- Support for boost 1.70 in load tester [#2034]
- Remove node dependency from secure library [#2033]
- Include ordering fix [#2031]
- Factor out election [#2030]
- Remove unnecessary copies when using lmdb cursors [#2026]
- Sort includes by category using clang-format [#2023]
- Increase tcp_io_timeout for test TSAN/ASAN builds [#2019]
- Bump protocol version [#2017]
- Update stringstream test sink to bounds check the strings [#2016]
- remove sleep from test [#2015]
- Add threshold optional to RPC unopened and ledger [#2014]
- Fix TSAN error for the rpc.database_txn_tracker test [#2013]
- active_transactions test cleanup [#2012]
- Update test script [#2011]
- Join threads in socket tests [#2009]
- generate difficulty was passing hash by ref [#2008]
- WebSocket fixes and improvements [#2007]
- Rename active_difficulty RPC response [#2005]
- active_transactions.prioritize_chains timing fix [#2004]
- Decrease logging level for "Reserved sender" message [#2003]
- Fix TSAN error with test confirmation_height.conflict_rollback_cemented [#2002]
- Websockets: prevent re-sub [#2001]
- Remove debugging assert from socket [#2000]
- use correct namespace to fix literal usage in active_transactions [#1999]
- Fix load tester for mac with boost 1.69 [#1998]
- Fix RPC secure build [#1997]
- Fix test by disabling confirmation, as a result the block wont be con… [#1996]
- Reinstate debug_rpc command [#1995]
- Apply Blake2b AVX2 changes [#1994]
- Clean up json upgrade code/unused variables [#1993]
- Test peer caching on node restart [#1991]
- Rewrite load tester in C++ [#1989]
- Add unnecessary lambda capture to please VS2017 [#1988]
- Show opencl device memory stats [#1987]
- Fix UDP channels insert [#1986]
- Update config path on macos/boost 1.69 [#1985]
- Work multiplier format and RPC work_validate fix for lower difficulties [#1984]
- Fix race when notifying bootstrap initiator listeners [#1983]
- Add modify callback to prevent violating boost multiindex invariants [#1979]
- Prevent (optionally) block processor batched writes from being logged by the lmdb tracker [#1978]
- Remove unnecessary --debug_validate_ledger CLI option [#1974]
- Version and allow_unsafe upgrade in ipc config [#1970]
- No longer use bin & lib sub-folders in the installers [#1969]
- Fix tests failing after PR#1939 [#1966]
- Stop node when using an incompatible ledger [#1964]
- nano_rpc included in packaging [#1961]
- updating work_watcher::run [#1960]
- Fix difficulty check assert in work_pool [#1958]
- Add pull request failure to stats [#1955]
- Fix RPC block_create error getting overridden [#1952]
- Add blocks_not_found in RPC blocks_info response rather than an error [#1950]
- Fix regression introduced by 100-continue [#1949]
- Fix some websocket test issues [#1948]
- LMDB transaction time tracker [#1947]
- Update Dockerfile [#1946]
- Add nano_rpc to Docker [#1945]
- Work value in RPC work_validate response [#1943]
- Improve receivable_processor.send_with_receive test [#1940]
- Add work check for ledger::process () in Debug mode [#1939]
- TCP socket rewrite with strand and queueing support [#1938]
- update weights for beta network [#1937]
- [TSAN] prevent warnings for confirmation_height.gap_live test [#1936]
- TSAN - Fix websocket tests [#1935]
- Increase request_interval_ms for TSAN/ASAN build [#1934]
- Fix ASAN warning in wallet.history (again) [#1933]
- Update conflicts.adjusted_difficulty test [#1932]
- Fix some asan rpc issues [#1931]
- Protect udp_channel members with a mutex [#1930]
- Websocket tests: Use error_code when closing [#1924]
- Fix confirmation_height.single test [#1920]
- fix tests and update logic of work_watcher::run() [#1918]
- Support Boost v.1.70 [#1916]
- Support Boost 1.70 [#1914]
- Websockets - Fix tests breaking with TSAN [#1913]
- [TSAN] Protect local_endpoint value with mutex [#1912]
- Remove strand assert [#1905]
- build.state().from() set build flags [#1902]
- Fix vote::to_json() [#1900]
- Add callback for confirmed block in RPC block_confirm [#1898]
- Fix TSAN warning in node.no_voting & wallet.update_work_action [#1894]
- Fix TSAN warning with work.eco_pow [#1893]
- Fix TSAN warning with nano::logger_mt [#1892]
- Fix ASAN warning for uint128_union.decode_decimal [#1890]
- Fix ASAN warning in rpc.account_history [#1888]
- Fix ASAN warning in wallet.history [#1887]
- tsan: Fix race in repcrawler and remove redundant weight computation [#1881]
- Use asio strands in udp channels [#1880]
- Fix lock ordering issue in udp_channels [#1876]
- TSAN: fix races in udp channels [#1873]
- Remove secure <-> node circular dependency [#1869]
- Fix secure rpc build [#1868]
- Replace assert with null-check during nodeid handshake [#1866]
- Fix missed enum in switch [#1864]
- Rewrite load tester in Python [#1862]
- Some improvements to load tester script [#1861]
- Extend lifetime of size response in rpc handler [#1859]
- Generalize installer path [#1855]
- Add clang format guard in more lambdas [#1853]
- Fix active_transactions/signature checker initialization order [#1852]
- Unsafe encoding in IPC [#1851]
- Fix race in tcp_listener_timeout_keepalive [#1850]
- qualified_root type alias [#1849]
- rpc.online_reps test udpate [#1848]
- Fix assert assignment for Debug builds [#1841]
- RPC 100-continue and max request size [#1819]
- missed instances of nano::work_pool::publish_threshold [#1818]
- Add required stake to confirmation_quorum [#1816]
- Valgrind fixes & suppressions [#1814]
- Add optional difficulty in RPC "work_validate" [#1812]
- Improve Boost download links in bootstrap_boost.sh [#1805]
- Make wallet.multithreaded_send slow test async [#1802]
- Failed to import wallet [#1799]
- Fix intermittent select_account test failure [#1797]
- V18 - RPC Pending request returns empty list for a period of time after callback [#1793]
- Set CI boost min/default to 1.67 [#1791]
- Merge aliases in RPC process_request () [#1788]
- Return error message for failed async RPC actions [#1779]
- account_representative_set RPC returns block of zeros instead of an error [#1778]
- RPC: Support json literals as block input [#1777]
- Update Crypto++ to stable version 8.1 [#1776]
- Deprecate
payments\_
RPC calls [#1773] - Add "seed" option to CLI [#1772]
- Emit "nano_" prefixed addresses [#1771]
- Display a warning if TSAN/ASAN used together as CMake options [#1767]
- Add allow_local_peers option for not_a_peer () & reserved_addresses () functions [#1766]
- Improve block_exists table lookup order [#1765]
- Minimum version of boost required in cmake should be 1.67 [#1763]
- Command to generate input to RNG test suites [#1761]
- Remove expect_death test [#1759]
- RPC: option to render block as JSON [#1740]
- Improve QT wallet.seed_work_generation test [#1732]
- Deprecate
payments\_
RPC calls [#1723] - Return last account restored in RPC wallet_change_seed [#1718]
- RPC wallet_change_seed should return the first account created [#1717]
- Raw support in Qt wallet [#1675]
- Migrate Gtest to submodule [#1661]
- Not all versions of GCC support -fsanitize-blacklist [#1656]
- URI standard for representative change [#1497]
- Boulton (V17.0) repeating callbacks for older blocks [#1489]
- Is there implemented block cementing? [#1018]
- Windows: Old version is not removed after upgrading to a new release [#821]
- Impossible to distinct between a send/receive/change using the
blocks
in RPC [#809] - Issues detect by valgrind [#654]
- Suggestions for RPC doc enhancements [#620]
Additional binary releases:
- Official Docker Instructions
- Nano CentOS repo
sudo yum-config-manager --add-repo https://repo.nano.org/nanocurrency.repo
sudo yum install nanocurrency
nano_node
installed to bin
Hashes and GPG Signature (keys located in source etc/gpg/
).
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Below are sha256sum hashes for version 19.0
Signature verification can be done against the signature for argakiig in the source
code repository (etc/gpg/)
1ceec8b710ec4b3314217ff33a3ce451ce2edf3a5372a4cdfffab61b3a7c868a *nano-19.0.tar.gz
82e089f9d25bec28cf6b3e28d3dd9d9dc07fc66ea0f8eec66ea6ce9cbc8df36c *nanocurrency-19.0-15.el7.src.rpm
cf2fb0000cd3cdc3741c5b09e9f3eed3cadde62eb896d9ec97089290d705fac1 *nanocurrency-19.0-15.el7.x86_64.rpm
56da7180c8fcf73f4a7c4efd1e09781b4eca590e0d2ce956cf9e451b2e5527fd *nanocurrency-debuginfo-19.0-15.el7.x86_64.rpm
e1babd95b90f2e6aac344bf0f5dd69a073f0edf931e66ac7844547170f045b99 *nano-node-19.0-Darwin.dmg
e6fc435593c59316d88ab96c240a70f59e0a891216df81ca5fef91afb06dd914 *nano-node-19.0-Linux.tar.bz2
36ac51460e0301f69f898fd2a93436bf4f95afe007d1121fa2b3c16cb070a589 *nano-node-19.0-win64.exe
754d8383bdf4dcface5895f7977cbbc7a5eeeb71a2be184b8d1c714b9dc148bc *nano-node-19.0-win64.zip
-----BEGIN PGP SIGNATURE-----
iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAl0nZDAACgkQgERoJPn9
OlpW3wgAjTUp2XLKIl35pntUaSek+IYR8GDNnl6EDTIxPsG/Rj4GzkkSHUrlE/Uu
6KQuVBShV2J7j+ekAxjgMl/td9Uh/Od9IAXWFhtOglEdlqoR+1XwsnwHyMvxa/98
A3vvMdg9wYQHYBWjvOJpRF0T6IQWoaIdArPa0/VZhDn6AChl29+AJ6yaBJznQHSN
DbBsWMTzUFXYU7rrDWY7Ti9m79uMYt7LNxS1DVhdepftIini5isFm3OJw6AJCR+X
OD+LiG23MRnn3ZNeTTPa0qInnrEf36QyiyqG/h4dW9kIUlsu2bzWAIE2vS+jxdtA
U92J/4Bcxp08QEMDTkRI8JrEultgfw==
=JHyg
-----END PGP SIGNATURE-----