• V19.0RC4

released at 11/06/2019

Assets 8

Change Log

Release V19.0RC4 (2019-06-11)

Full Changelog

Implemented enhancements:

  • 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]
  • 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]
  • Prioritize frontiers for background confirmation [#1982]
  • Add more information after a segmentation fault [#1921]

Fixed bugs:

  • 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]
  • 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]
  • Websockets: prevent re-sub [#2001]
  • Print info about network and path, when running daemon [#1953]
  • Add blocks_not_found in RPC blocks_info response rather than an error [#1950]

Additional binary releases:

  • Official Docker Instructions
  • Nano CentOS repo
    • sudo yum-config-manager --add-repo https://repo.nano.org/nanocurrency-beta.repo
    • sudo yum install nanocurrency-beta
    • nano_node-beta 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.0RC3
Signature verification can be done against the signature for argakiig in the source
code repository (etc/gpg/)

1f96bbf2fd8b7fbda53517ed73e3b08588b3085c1189abac4bb7dc8849f8216d *nano-19.0RC4.tar.gz
b1e7b556279bbb84467fca7d8550603302032ee37c661ddbadaa9a4c5ca599a6 *nanocurrency-beta-19.0RC4-12.el7.src.rpm
a789b368d4042d6c747c6062189b07d8fba475dcb57532f08b5ea5453a540894 *nanocurrency-beta-19.0RC4-12.el7.x86_64.rpm
71bfc1bf45a014607e8f5d04a7f110d967ed5ede16a604c6a741b833c15bd584 *nanocurrency-beta-debuginfo-19.0RC4-12.el7.x86_64.rpm
3fb64c4cfcd3a07dd67f19ac4d9847a35d4ddffc56f2c977b8320d619d7dbbe9 *nano-node-19.0.RC4-Darwin.dmg
7ff54717d4579e5bd3ecfffe905f494523d7ebcd3b876dcb8749fd554b7407bf *nano-node-19.0.RC4-Linux.tar.bz2
eeb315c8fdca1aa0edee1f523165d15ee3c12bcc610729c0f1d4ceacac3f0911 *nano-node-19.0.RC4-win64.exe
7d8a05147dce9c3f97dacbdb51ff276d46e491953b1788a935f105cdccf3d261 *nano-node-19.0.RC4-win64.zip
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAl0ACWIACgkQgERoJPn9
OlpuKQf/eDj/cm7rSLc70cbkGUIiBPJeh9Y4FDOyXqdLI2qgfyEeZPv+4eMY10EM
EE/w8YeHCNvY+hFImULLEBv6qgWSrSS4QygeX1eBYuGgS70T6WSuIieG5H7U8+yE
sRH9/9eDMVljSh+wCAq+uhxEPUDke36G0+HuGYbgqzXKi5+TRl61Us/0wk794ZHD
df09Yxfk07/LbC/Tv1l8DylLtA0t3Ccjlxdv041+nKfB3TgeE7HHrXm/GxN41vZ8
+dcfZqByz6bZMQcn9acBeQk6R+tZa58kL+dijxE3RxmQFTyr1AvJ47I8gs+/aLkS
LpqfeDcDRVfnCIG1daipBiaMJI3aOA==
=8WJc
-----END PGP SIGNATURE-----
  • V19.0RC3

released at 22/05/2019

Assets 8

Change Log

Release V19.0RC3 (2019-05-22)

Full Changelog

Major Changes:

  • Add support for realtime network traffic over the bootstrap TCP port [#1548]

Implemented enhancements:

  • Fix off by one error in frontier req server [#1992]
  • Bounded active transaction [#1990]
  • 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]
  • Reduce length holding read transaction open for in confirmation height processor [#1954]
  • Replace xxHash with blake2b [#1919]

Fixed bugs:

  • 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]
  • Set minimum difficulty for RPC "work_generate" [#2006]
  • 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]
  • 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]
  • Finish up difficulty/multiplier semantics in RPC work_generate and work_validate [#1981]
  • Move io_threads to rpc process config node [#1980]
  • Add modify callback to prevent violating boost multiindex invariants [#1979]
  • Prevent (optionally) block processor batched writes from being logged by the lmdb tracker [#1978]
  • Add specific rpc process config options [#1977]
  • 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]
  • Fix RPC block_create error getting overridden [#1952]
  • LMDB transaction time tracker [#1947]
  • Add work check for ledger::process () in Debug mode [#1939]
  • TCP socket rewrite with strand and queueing support [#1938]

Additional binary releases:

  • Official Docker Instructions
  • Nano CentOS repo
    • sudo yum-config-manager --add-repo https://repo.nano.org/nanocurrency-beta.repo
    • sudo yum install nanocurrency-beta
    • nano_node-beta 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.0RC3
Signature verification can be done against the signature for argakiig in the source
code repository (etc/gpg/)

d86dee78729455434d5173daac52877145ea39a3b7206343a98a839a0b0c7be1 *nano-19.0RC3.tar.gz
b438f3056e6a3679e96516f0898b3112d1833f506f4197a39e5ab3729f10db75 *nanocurrency-beta-19.0RC3-11.el7.src.rpm
4efa9f79c4a53ab786cfa4b6b487f79e3ae9c31803f86b7b3af9840b7fe10ff8 *nanocurrency-beta-19.0RC3-11.el7.x86_64.rpm
9115fad0f574bb487754a513fb24a46742c164893b35daf89634e3e43005fd01 *nanocurrency-beta-debuginfo-19.0RC3-11.el7.x86_64.rpm
3657f0f2ee1e167ab15841bbeba152ea123de7d50974067a26ba046f4aa3c73c *nano-node-19.0RC3-Darwin.dmg
d4e66438915a4b7b13c9533904202a8073641d6cad8da30da7a07164f9ebb196 *nano-node-19.0RC3-Linux.tar.bz2
5cc7a12462dbe9915000546cf8f6cb87b592edbba4479a2cb8ebcf6cd8c188ab *nano-node-19.0RC3-win64.exe
2729acd6d49d86a3672ae53fe9e73e8afcd96786516e2ffbd620c09b78d36154 *nano-node-19.0RC3-win64.zip
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAlzlkRYACgkQgERoJPn9
Olomigf/XuXp/Ohjo6v0BsjsiHRufmTbirNzseh3VuxLEkXIR8LwYdxvHzpj2OI2
7gi2yTkuNvBedAYG2wkwP+xe3nPOlflGRacn863fhMYcPyiNKLT4khlo5aRsT1+3
6M+/QLnr2KhrCr48JzLq45CmSNZoq0/pGVRBkXSTNo5M1xZumBLjxKP1RglVafog
y+hkxMZW4uAYB5G/HrzI7x3bfMuQob2gpLI+tN0keSkNhhXn6+OWU5qjuwPhTRR2
zsuNqdMlegsbeARIo0FJO7/I7L/6A4SScvi+F88WkCoPJs9NBH/Y6+1gi/wMc9zS
ke67Xejl3KMNnCJglPZEMHc3/kv1VA==
=3vx9
-----END PGP SIGNATURE-----
  • V19.0RC2

released at 07/05/2019

Assets 7

Change Log

Release V19.0RC2 (2019-05-06)

Full Changelog

Implemented enhancements:

  • Allow long running read transactions to be broken up [#1951]
  • Fix our warnings [#1942]
  • TSAN suppressions file [#1941]
  • Add CLI command for dumping any frontier-unchecked key matches [#1915]

Fixed bugs:

  • nano_rpc included in packaging [#1961]
  • updating work_watcher::run [#1960]
  • Pass command line arguments (network/data_path) to nano_rpc child process [#1957]
  • Simple ledger validation CLI command [#1956]
  • Add pull request failure to stats [#1955]
  • Fix regression introduced by 100-continue [#1949]
  • Fix some websocket test issues [#1948]
  • 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]
  • Set defaults for block_sideband [#1922]
  • Not all versions of GCC support -fsanitize-blacklist [#1656]

Additional binary releases:

  • Official Docker Instructions
  • Nano CentOS repo
    • sudo yum-config-manager --add-repo https://repo.nano.org/nanocurrency-beta.repo
    • sudo yum install nanocurrency-beta
    • nano_node-beta 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.0RC2
Signature verification can be done against the signature for argakiig in the source
code repository (etc/gpg/)

a8780c4b3b8dd261c7f6324d08e82c312cb7bf8a865b6a24990186ecd654e780 *nano-19.0RC2.tar.gz
212d111006de03209b4af7bb0dbe39bd1f5e7bd9b89eb51913de0ab42c3b83d9 *nanocurrency-beta-19.0RC2-10.el7.x86_64.rpm
7e59180d979fdc389724c6ad5cd71502e44f6e5f14cca61b9e71da5e666dafed *nanocurrency-beta-debuginfo-19.0RC2-10.el7.x86_64.rpm
2758dfc404131bd10ce1433cb61855f4aafb810166890239d2650f725c74d312 *nano-node-19.0RC2-Darwin.dmg
136250e001e394ca29f60b48e2484f23b31d586ba22c43f8af7bfef0faef0679 *nano-node-19.0RC2-Linux.tar.bz2
566697a4ddd2482cd704cb28f9767696f65b526ffe662d99ffc651fe81cf2fc5 *nano-node-19.0RC2-win64.exe
6ac3a79dd314a6a907eaec95d2c6025570633ba6e838ed8713fdb5aa6591ec2d *nano-node-19.0RC2-win64.zip
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAlzQsm0ACgkQgERoJPn9
OlpR/Af/RA/58W39WmtNoZslTReyWpr3Ep1GQpfTGh6Hb1Me6nB+Tf4a9gWYbJpU
CrQVu/pnJXp2IrRqD0t40UiVruaZ+kDKKw270+T+Jjr0drWvwLF5ZVJMIrpToUwA
sD8v041Dxy3odHWSvOEOsU3vpyjZI2HXDQjxwMqEPfH5FSPnp5zh0njVWW/vShLp
gFN8OjRgHU8wqq475fVtA2vB6H+NSnedp2ytvs5mkvEiL/+L/vL9HEXlnU+Ihoxt
+0VNMK1IYucwpoAYqdiTNioR5LE5ssYn3oF/z2MnYFJ/nr2jWcU4Mem3KqjwqQS8
7ci/8DQ52DaXUlk3mk/q7U+vKG0Fww==
=8x2J
-----END PGP SIGNATURE-----
  • V19.0RC1

released at 27/04/2019

Assets 8

Change Log

Release V19.0RC1 (2019-04-27)

Full Changelog

Major Changes:

  • Add confirmation height [#1770]
  • PoW Client Compute and Resend Work based on network load [#1336]
  • Trending active_transactions difficulty for an average [#1858]
  • Emit "nano_" prefixed addresses [#1771]
  • RPC server is moved to a new process [#1874]
  • Websocket support [#1840]

Implemented enhancements:

  • Try to fix some version-specific clangformat formatting issues [#1927]
  • Activate confirm_req_hashes for beta network [#1926]
  • 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]
  • 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]
  • Reinstate preconfigured keepalives [#1854]
  • clang for travis [#1846]
  • Support sending decimals from QT wallet [#1843]
  • Allow block_processor variables tuning with launch flags [#1842]
  • 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]
  • Use the error code overloads for socket shutdown/close [#1786]
  • 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]
  • 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]
  • RPC Account history filter [#1355]
  • Enhancement Request: Update Ledger RPC action to show unopened accounts with pending balance [#1166]
  • 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]
  • Add more information after a segmentation fault [#1921]
  • Add CLI command for dumping any frontier-unchecked key matches [#1915]
  • Add support for realtime network traffic over the bootstrap TCP port [#1548]
  • Proposal: features [#1308]

Fixed bugs:

  • 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]
  • Make new random_constants class for not_an_account [#1928]
  • 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]
  • When clearing confirmation heights set the genesis account to be 1 [#1875]
  • TSAN: fix races in udp channels [#1873]
  • Fix secure rpc build [#1868]
  • Replace assert with null-check during nodeid handshake [#1866]
  • Fix missed enum in switch [#1864]
  • Some improvements to load tester script [#1861]
  • Extend lifetime of size response in rpc handler [#1859]
  • Generalize installer path [#1855]
  • 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]
  • 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]
  • 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]
  • 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]
  • TCP socket rewrite with strand and queueing support [#1938]
  • Set defaults for block_sideband [#1922]
  • Not all versions of GCC support -fsanitize-blacklist [#1656]

Additional binary releases:

  • Official Docker Instructions
  • Nano CentOS repo
    • sudo yum-config-manager --add-repo https://repo.nano.org/nanocurrency-beta.repo
    • sudo yum install nanocurrency-beta
    • nano_node-beta 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.0RC1
Signature verification can be done against the signature for argakiig in the source
code repository (etc/gpg/)

735e3b4227bb08163a6ec5e72e0a1f39769f66e99743ad46177abaede8ccb605 *nano-19.0RC1.tar.gz
350ac252e5def299672d70da0af6d2553faedff06e2dee4738548d352faa3aba *nanocurrency-beta-19.0RC1-9.el7.src.rpm
86636ae2f4dd3c2a09f6e17f482cbfc867f15305dfcffc3510ff6a6471b7eb84 *nanocurrency-beta-19.0RC1-9.el7.x86_64.rpm
18687847dbd6b5caa4e7fbe1198d8d7b7f0f0240b2b34dbf5d7685cecd3eaa32 *nanocurrency-beta-debuginfo-19.0RC1-9.el7.x86_64.rpm
3846f385dc9e56a5a2430b31907e0f1a6a3ea598ad31d8d37f3e5b7bd987501b *nano-node-19.0RC1-Darwin.dmg
351bdf5b365cfd936d45e7195d3e0f426a69469b1b0bcd902774bf8f4762b9a6 *nano-node-19.0RC1-Linux.tar.bz2
def044d826f3cf50c39550bd55c2001e9543ce87981aee4ee11bfef677b4c4ce *nano-node-19.0RC1-win64.exe
c784476074a27c44617412f6628dfee65563fb564742b0255bb5cf9c92f902df *nano-node-19.0RC1-win64.zip

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAlzDyN0ACgkQgERoJPn9
OlooBgf+Np5UGzftGV+Zo7gsEJ7v/adZEVuORREK8FF7DxDT/2sUI80Tryp8GoTZ
QyoVwbJMrTf3YeHYhEszlkU03i8Ez4tS778L+xtwA2LUNS5jTa0fTuJyi8dqYN04
yj3UJJucxhLihrMJAp1E5Cfs8FCpnVXAZFHMFyZY+E4WOB7UgXB57nz6/oqBI79W
UbT2sXtGZv7eP/iAIKkItdRJmp5ZL1KR8nAVfYi/JhOE6h/yYfUhpi6Vbv+FGGdY
8M4Vnh0FuF/eoghwzI+ppyXQQjB+gfavtP7j8lGK8sfs+9pQT3D/TJ6I6hCBxkVb
g2HJVpNrM372LUmVHkRk1BT4Av/y8Q==
=DP/r
-----END PGP SIGNATURE-----
  • V18.0

released at 21/02/2019

Assets 8

Change Log

Release V18.0 (2019-02-21)

Full Changelog

Major Changes:

  • PATCH to indicate RC, Updated Version responses [#1643]
  • Splitting wallets from ledger database. [#1610]
  • Add sideband information to database. [#1554]
  • Deprecate all existing API calls [#1540]
  • Disable voting by default [#1509]
  • Rename internal project bits from RaiBlocks to Nano [#1504]
  • Block builder [#1451]
  • Confirm dependent active elections [#1438]
  • Support external RPC servers via IPC [#1434]
  • Disable voting by default [#1369]
  • Zero-terminate all things we refer to as strings [#1223]
  • Node ID in RPC & QT wallet peers list [#946]
  • Separate DB file for wallets [#210]

Implemented enhancements:

  • Make confirm_back () non-recursive [#1754]
  • Cli debug online weight [#1744]
  • Respond to keepalive messages within a TCP socket [#1742]
  • Fix reported by TSAN issues [#1739]
  • Make the sideband open block start at a height of 1 [#1737]
  • Update CLI --debug_validate_blocks to validate sideband data [#1735]
  • Remove unnecessary cast [#1730]
  • Cleanup unchecked table after each bootstrap attempt [#1724]
  • Use cpack to build zip for win [#1706]
  • Exclude miniupnpc install () [#1701]
  • Factor out signature checker [#1700]
  • Configurable timer clock type [#1699]
  • Add alarm operations to memory stats RPC [#1694]
  • Add missing beta/live network helper constants [#1693]
  • Factor out block processor [#1692]
  • CLI to clear online_weight & peers [#1689]
  • add CLI switch for adjusting Sideband upgrade batch sizes [#1684]
  • Create and use new network helper constants [#1680]
  • Improve votes cache usage [#1678]
  • Fix our own compiler warnings [#1677]
  • Fixing issue where blocks were not being rebroadcast immediately upon… [#1657]
  • Improve wallet_history consistency with other RPC [#1654]
  • Make nano_wallet for Windows console [#1653]
  • Multi-thread the signature checker [#1651]
  • Filter outdated_version errors from logging [#1649]
  • Long-term online rep weight tracking [#1648]
  • Update balance on ratio change [#1647]
  • Count processed forks in stats [#1646]
  • Add support for getting the current thread's name as a string [#1639]
  • Better handling of TCP accept overflow [#1638]
  • tsan: blacklist mdb [#1637]
  • Memory stats in RPC [#1632]
  • Add version info to Info.plist [#1631]
  • Improved error message when unable to accept RPC connection [#1626]
  • RPC to clear stats [#1625]
  • Increase default max log folder size to 128Mb [#1623]
  • Add optional "offset" & "reverse" parameters for RPC chain [#1622]
  • RPC to clear stats [#1620]
  • Increase default max log folder size [#1618]
  • RPC uptime [#1616]
  • Remove deprecated bulk_pull_blocks [#1615]
  • Upgrade preconfigured peers in config.json file to use nano url instead of rai [#1613]
  • Splitting wallets from ledger database. [#1610]
  • More transaction cleanup in preparation for wallet splitting. NFC [#1609]
  • Cache peers in database [#1608]
  • Separate transaction sources [#1607]
  • Multithread signature_checker [#1606]
  • Add existing blocks check for lazy bootstrap pulls [#1603]
  • Indicate active network in Qt wallet [#1601]
  • Rename announce_votes () to request_confirm () [#1598]
  • Update FindBoost.cmake [#1597]
  • version numbers missing on macOS [#1596]
  • Make asan/tsan link on macOS, add tsan cache variable [#1593]
  • Connect to a bootstrap peer only once concurrently [#1590]
  • [QT] Automatic determinictic accounts check after leaving the synchronisation state [#1589]
  • Change order of block table lookups [#1587]
  • Remove bulk_pull_blocks [#1585]
  • Convert deserializers to use exceptions [#1584]
  • Add size expressions to bootstrap types [#1580]
  • Remove checksum table [#1579]
  • RPC debug command line option [#1577]
  • Remove unnecessary inline specifier [#1572]
  • Accept seed in RPC wallet_create [#1567]
  • Priority lazy bootstrap for wallet accounts [#1565]
  • Disable clang format where versions disagree [#1562]
  • Remove gap_previous check from epoch_block_impl [#1559]
  • Renaming block_processor::process_x functions. [#1558]
  • Add sideband information to database. [#1554]
  • Use builder in CLI debug commands [#1553]
  • Extracting function to calculate block successor offset [#1552]
  • Optional deterministic index in RPC account_create [#1547]
  • Local votes cache to reduce CPU usage for representatives [#1542]
  • Set outdated-version status on livenet as well [#1538]
  • Block method refactor [#1535]
  • "update_existing_accounts" option for RPC wallet_representative_set [#1531]
  • Adding logging object to mdb_store. [#1530]
  • Add size field to bootstrap message types [#1529]
  • Block size computation improvement [#1528]
  • Timer utilities [#1526]
  • Request confirmation faster for new blocks [#1518]
  • Lazy bootstrap part 2 [#1516]
  • Minor cleanup of entry.cpp for node [#1514]
  • UI feedback when changing seed [#1513]
  • Migrate existing data from ~/RaiBlocks to ~/Nano [#1512]
  • Log work generation data and difficulty [#1511]
  • Update UI block status [#1510]
  • Disable voting by default [#1509]
  • Only build essential boost libraries in docker [#1507]
  • Improve requesting frontier performance [#1503]
  • CLI --debug_profile_bootstrap [#1502]
  • Remove ip_address_hash from std namespace [#1499]
  • Replace bind with lambda [#1498]
  • Remove beast from .gitmodules [#1493]
  • Store timestamp & verified signature status in unchecked table [#1492]
  • Slight improvements of block_exists usage in bootstrap & ledger [#1490]
  • Stop usual pull request with more than 16k unexpected blocks [#1486]
  • Faster block existence check when the block type is known [#1484]
  • Remove dupsort from unchecked table [#1483]
  • Profile and improve process_receive_one [#1478]
  • When building for Beta or Test default to a Debug build [#1470]
  • Move from deprecated io_service to io_context [#1469]
  • Add more support for building boost with different options [#1468]
  • Fix initialization order [#1467]
  • Remove function template specializations [#1462]
  • Pessimisation fix for condition_variable notify_* [#1461]
  • Remove virtual function specifiers where override is used [#1458]
  • Block builder [#1451]
  • Check origination time before starting election [#1446]
  • Close sockets gracefully [#1445]
  • Log work data when computing work [#1443]
  • Confirm dependent active elections [#1438]
  • Support external RPC servers via IPC [#1434]
  • Error type and config handling [#1416]
  • Signature checking thread [#1411]
  • Early detection for votes overflow [#1406]
  • Add missing header [#1405]
  • Renaming successors to blocks to be less confusing. [#1400]
  • Remove gap_previous check from epoch_block_impl [#1392]
  • Implement queue management [#1391]
  • Move serialization to vector pattern into a base class function [#1386]
  • Misc cleanup [#1384]
  • Remove code related to unused observer [#1381]
  • Cache peers [#1374]
  • Cached local representatives list [#1372]
  • Add a config option to allow local peers [#1370]
  • Disable voting by default [#1369]
  • CLI --debug_profile_votes [#1366]
  • Slightly more efficient way of storing duplicates [#1364]
  • (Proposal) Fix multiple rpc callbacks for same host. [#1356]
  • Proposal Import seed/wallet without exsiting wallet [#1341]
  • Avoid lock pessimisation [#1284]
  • please make the status make sense for the average technical user [#1245]
  • RPC "sign" (hash, block) [#1241]
  • For Docker, log output to a file (unrotated !) [#1228]
  • adding support for rpm building [#1175]
  • Remove redundant config_file parameter of fetch_object [#1167]
  • Remove unused param from daemon_config ctor [#1144]
  • What is purpose of config_file param in method rai::fetch_object? [#1143]
  • Config error handling [#1111]
  • Allow local preconfigured peers [#1105]
  • Slow refresh rate of block number [#1102]
  • confirm_req_hash to reduce bandwidth usage [#1046]
  • Move to random_pool for shuffling [#1045]
  • Disable process active with large queue [#1010]
  • Add wallet_history with timestamps [#994]
  • Option to disable automatic wallet backups [#984]
  • Optional search by hash in confirmation_history [#974]
  • Returning list in RPC representatives_online [#777]
  • Add accounts parameter to wallet_change_seed [#775]
  • Modify wallet\_create CLI to allow seed & password change [#719]
  • Update Repository name, description, and url to Nano [#627]
  • Blocks.hpp - Tech debt and potential maintainability issues [#375]
  • Separate DB file for wallets [#210]
  • False positive Antivirus warnings (Windows) [#45]

Fixed bugs:

  • Update Live Weights [#1760]
  • Use a single synchronised random pool across all threads [#1758]
  • check for legacy directory [#1757]
  • Fix ASAN warning caused by global initialization order using CryptoPP functions [#1747]
  • [ASAN] replace junk data with 0 for peer_put () [#1745]
  • [ASAN] don't create more wallets in vote_minimum test [#1743]
  • Fix some asan issues in tests [#1741]
  • Initialize peer_information members [#1738]
  • block_store.sideband_height test [#1736]
  • Update appveyor.yml [#1722]
  • Update github issue template bug bounty info [#1720]
  • Support both nano_ and rai_ prefixes for unit conversion RPCs [#1719]
  • Fix uses of lambdas on GCC < 7.1.0 [#1715]
  • Find pthread in CMakeLists.txt [#1714]
  • Only blacklist the TSAN file when using clang compiler [#1713]
  • Fix wallet import for old JSON files [#1712]
  • Appveyor: fix building PRs during CI [#1710]
  • Update missed rai:: references to nano:: [#1709]
  • ipc: Handle rpc actions doing async ops [#1708]
  • Data race when upgrading sideband information [#1705]
  • State blocks subtype check for RPC "process" [#1704]
  • Deserializer changes in unchecked_info [#1703]
  • Update .gitmodules to reflect branch change for LMDB [#1702]
  • Sign windows [#1698]
  • Build/debug beta [#1696]
  • Fix handling non-UTF8 code pages on windows [#1695]
  • Info.plist generation, out-of-src build support [#1686]
  • Fix Boost 1.69 build [#1685]
  • update beta weights [#1683]
  • Revert "Initial Travis Windows support" [#1682]
  • tsan: fix rpc shutdown acceptor issue [#1681]
  • Update populate_connections () endpoints list with new clients [#1679]
  • Update FindBoost.Cmake module to support up to boost 1.70.0 [#1676]
  • Fix scope issue when setting thread names in the multi-threaded signature checker [#1674]
  • Add missing headers in timer [#1673]
  • Improve mutex for online_reps::sample () [#1672]
  • Restore old default response for RPC "peers" [#1669]
  • Support the HTTP OPTIONS verb for RPC [#1667]
  • Set current time for block in RPC process [#1666]
  • Encapsulate and lock stat_datapoint, fixes core_test tsan [#1665]
  • Improve node::process_confirmed () [#1664]
  • Fix windows tests for ipc [#1663]
  • Add compile options for Aarch64 [#1662]
  • Update miniupnp [#1659]
  • Specify the path to the TSAN blacklist, to allow out-of-tree builds [#1655]
  • Fix vc++ compile error in write_legacy_sideband [#1652]
  • Fix race conditions reported by TSAN [#1650]
  • Initial Travis Windows support [#1644]
  • PATCH to indicate RC, Updated Version responses [#1643]
  • fix wallet.startup_balance [#1642]
  • update .travis.yml [#1641]
  • Fix potential div-by-zero issue in receive_frontier [#1629]
  • Fix rpc.wallet_create_seed test [#1628]
  • Add wallet locked check to RPC wallet_representative_set [#1627]
  • Set permissions to config.json file after creating [#1621]
  • json config: fix upgrade of required child nodes [#1599]
  • Fix asan issue (illegal downcast) in test [#1595]
  • Fix rare time_bound & time_cutoff tests failures [#1592]
  • Include assert.h, needed for assert() [#1591]
  • Fix RPC wallet_change_seed [#1586]
  • Upgrade config from raiblocks.net [#1575]
  • Limit recursive confirm_back () [#1570]
  • Limit nested bootstrap runs [#1568]
  • Update RPC details in Wiki [#1564]
  • Improve provided "work" for RPC [#1560]
  • Improve RPC shutdown [#1550]
  • Get rid of nounset flag when running the Boost bootstrap subscript [#1549]
  • rpc shutdown fails intermittently [#1546]
  • Fix too-small buffer [#1541]
  • Deprecate all existing API calls [#1540]
  • Rename all links to our GitHub repo [#1537]
  • Calculate votes for local representatives in block_confirm [#1534]
  • Add recursive_mutex to foreach_representative [#1533]
  • Fix intermittent send_node_id_handshake failure [#1532]
  • Update license year 2019 [#1527]
  • Fix tests broken with #1510 [#1524]
  • When bootstrapping, connect to a peer only once concurrently [#1522]
  • Remove dead link to forum from readme [#1515]
  • Wiki improvements (mostly boost related) [#1508]
  • Update DockerHub username [#1506]
  • Rename internal project bits from RaiBlocks to Nano [#1504]
  • File descriptor leak [#1496]
  • Extend test retry [#1495]
  • udp_buffer could hang [#1491]
  • verify_state_blocks() with a max is O(n) [#1475]
  • Retroactive rebase of PRs [#1464]
  • Remove endpoint_hash from std namespace [#1460]
  • Ensure the block exists in account_history [#1410]
  • Use "count" in frontier_req_server [#1407]
  • On Windows with non-UTF codepage, startup crash if data path has non-ASCII characters. Causes wallet startup error. [#1402]
  • git clone with a single branch does not include annotated tags ? [#1395]
  • Consider update config.json file in wiki [#1367]
  • rai_node not exiting with success code in certain situations [#1340]
  • Unable to read from work_peer ::ffff:172.17.0.2 7075: Connection reset by peer (104) [#1324]
  • Zero-terminate all things we refer to as strings [#1223]
  • v16.0 transactions with provided work not processing correctly [#1181]
  • Fix callback resolver [#1073]
  • Update CryptoPP & Argon2 [#1068]
  • Node V14.2 - New Accounts in wallet set representative to themselves upon opening, instead of using the wallet representative [#1019]
  • Node ID in RPC & QT wallet peers list [#946]
  • Update the main menu of wiki standstill (Small change but helping saving time a lot) [#897]
  • Update Wiki - Docker node [#863]
  • rai_node Wallet-Backups instructions in the Wiki contain errors [#795]
  • Release asset: official Docker image [#754]
  • The statement is always true in 'rai::active_transactions::announce_votes' ? [#724]
  • cpack release includes miniupnp headers [#629]
  • Chain RPC call suggestions [#615]
  • Signing executables [#575]
  • Wallet_create on the command line doesn't work with a running daemon [#458]
  • Documentation error [#300]
  • xrb_uint256_to_string does not null-terminate the address string [#290]
  • [Proposal] Option to track block timestamp for local wallet/node without including in blockchain [#105]
  • Windows: CLI doesn't return info to command line [#84]
  • Refresh the accounts list after importing seed [#70]
  • Add detection of possible firewall issues [#52]

Additional binary releases:


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

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

Below are sha256sum hashes for version 18.0
Signature verification can be done against the signature for argakiig in the source
code repository (etc/gpg/)

4af0d636ed4d0e6938c9866d5d2b91296cc5e30af5163b043725b00acf593c34 *nano-18.0.tar.gz
bab0c9678c49565a86309997ea8168739eb42097b1ad25c3fd0640ca470b5aa0 *nanocurrency-18.0-8.el7.src.rpm
f61fd6a023a0556f5baf1f77a7abb1a3936208d7166b2f84642c12c4b8b3e8d7 *nanocurrency-18.0-8.el7.x86_64.rpm
9619a5c6bdd7d5217dce85e729e7a986ca057b9f1ba530436159eb7adf2fe99b *nanocurrency-debuginfo-18.0-8.el7.x86_64.rpm
1b6c512449dcf87fe93f6ea4651ff80d9253567f7139c4e41f07f28e5a98d2e6 *nano-node-18.0-Darwin.dmg
383cb5d6dcf1f072b4c8304e4a250c6c570ff2093dd9e8251f52022501a4c50c *nano-node-18.0-Linux.tar.bz2
3ebd9183f0ed14217b8e1547796249aa7da2e3ae5e193083663fc59164bc967b *nano-node-18.0-win64.exe
67c2c9556e04086cc95ef5428f8ae0eeab310f87d7f8af75dc7aeb89e6262905 *nano-node-18.0-win64.zip
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAlxvA6kACgkQgERoJPn9
OlpKpAf9GByIJqTPgngdR7dCRrjvEc9EmK+nYesMy0YYMYN9shbdLF1xZ7pjVhD3
3Wjh4P8KBX/w5OuiWS5L1fEufL/gCL8GdD7qb6S3N+iVEjpKivY6dANezJ/OW6gJ
r433ESQMt3BLWwkygR9ajXXOuKyBmeIrTCIV+jx7e4C/sv3HKccgrzF/Xojh1aqk
//EERm1dnTUYkTAW2awwffsUcbn+uE+Kt/lCDniGE1/8+1UdH0KOpcSa55CAzuFn
jUO9yoHkazXC/69mpnujzW5pxHza/8lGvYyFVBh49PU/NVaELr8q/O3RcYOX3MaG
nbCfZdrtGCLZGwhAuDRlLbYmFraqww==
=iZG4
-----END PGP SIGNATURE-----
  • V18.0RC3

released at 18/02/2019

Assets 8

This is a Beta Network Release -- binaries will only work on the Beta network

Change Log

Release V18.0RC3 (2019-02-18)

Full Changelog

Implemented enhancements:

  • Cli debug online weight [#1744]
    • Respond to keepalive messages within a TCP socket [#1742]
    • Fix reported by TSAN issues [#1739]
    • Update CLI --debug_validate_blocks to validate sideband data [#1735]
    • Remove unnecessary cast [#1730]
    • Cleanup unchecked table after each bootstrap attempt [#1724]
    • Use cpack to build zip for win [#1706]
    • adding support for rpm building [#1175]

Fixed bugs:

  • [ASAN] replace junk data with 0 for peer_put () [#1745]
    • [ASAN] don't create more wallets in vote_minimum test [#1743]
    • Fix some asan issues in tests [#1741]
    • Initialize peer_information members [#1738]
    • Make the sideband open block start at a height of 1 [#1737]
    • block_store.sideband_height test [#1736]
    • Update appveyor.yml [#1722]
    • Update github issue template bug bounty info [#1720]
    • Support both nano_ and rai_ prefixes for unit conversion RPCs [#1719]
    • Fix uses of lambdas on GCC < 7.1.0 [#1715]
    • Find pthread in CMakeLists.txt [#1714]
    • Only blacklist the TSAN file when using clang compiler [#1713]
    • Fix wallet import for old JSON files [#1712]
    • Appveyor: fix building PRs during CI [#1710]
    • Update missed rai:: references to nano:: [#1709]
    • ipc: Handle rpc actions doing async ops [#1708]

Additional binary releases:


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

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

Below are sha256sum hashes for version 18.0RC3.
Signature verification can be done against the signature for argakiig in the source
code repository (etc/gpg/)

bf2682a8a96462ddfae242683b1e5b4bf2884d2b62b279dc1b2cc229a2ab5d48 *nano-18.0RC3.tar.gz
4fab0470fa7a5b0ff7083ed8a1a731578920703d616fca3a4faa018cab7e30e9 *nanocurrency-beta-18.0RC3-7.el7.src.rpm
84e04eb6f037de0108fa6f7fc7895a21e69bffa3c7c327e7a90bf1f58ae4be17 *nanocurrency-beta-18.0RC3-7.el7.x86_64.rpm
b2e45fc806d1e67a7da7e38b745f061b9deb4f2fc59743214c87304e4017015c *nanocurrency-beta-debuginfo-18.0RC3-7.el7.x86_64.rpm
54340cd7afa27ee49a5fc365e8a0db619a5ed72a37deaff7da03a64b20a1b573 *nano-node-18.0RC3-Darwin.dmg
7dc06cb6d510aec42ec3fc746194aa7bda619193613ad4363887ec5201f0bce8 *nano-node-18.0RC3-Linux.tar.bz2
39df37a30c50972f53bf8c7d30d39a92d64fe7dc601b83495875447f93080fb4 *nano-node-18.0RC3-win64.exe
95617bea88e2c8a42d0ad4e39aa83c70765fc8a0f03d3c74f11f8eb8f0d9df7c *nano-node-18.0RC3-win64.zip
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAlxrIA4ACgkQgERoJPn9
OlqR6AgAnEjhD7xzO9EzHyL8iXzv/OwgMyyafY0pOR3xhX8gRT45Npn8uRHm0Bgv
fsoQODMMrcpt5RgwFbt6NtVDWmX5aMnG1L5QHMKGFB//flxB2HYR6/WNBBjykG88
NMuE6nYdYD37OpcLOYDrb6Yh7au1msIheGTLJHj+/G+WEs0qfiDxzY/f+ltPpQzA
1Nf54qt8ivSJbQP7d6FV/ZbHoHwijWHOHZerrK/xLN0Hs8zljYbyzY9QY2HqKjgh
5IQOFAsDojwEMEhmhksWXbyev3Rg2puzObFc5IqY8tc9WGTklLiSMUbEhTsZR09K
h6HlFk4LlD6XEp8CvnddH5usFX3lTQ==
=8BVj
-----END PGP SIGNATURE-----
  • V18.0RC2

released at 08/02/2019

Assets 7

This is a Beta Network Release -- binaries will only work on the Beta network

Change Log

Release V18.0RC2 (2019-02-05)

Full Changelog

Implemented enhancements:

  • Exclude miniupnpc install () [#1701]
  • Factor out signature checker [#1700]
  • Configurable timer clock type [#1699]
  • Add alarm operations to memory stats RPC [#1694]
  • Factor out block processor [#1692]
  • CLI to clear online_weight & peers [#1689]
  • Add missing beta/live network helper constants [#1693]
  • Convert deserializers to use exceptions [#1584]
    • Request confirmation faster for new blocks [#1518]

Fixed bugs:

  • Data race when upgrading sideband information [#1705]
  • State blocks subtype check for RPC "process" [#1704]
  • Deserializer changes in unchecked_info [#1703]
  • Update .gitmodules to reflect branch change for LMDB [#1702]
  • Sign windows [#1698]
  • Build/debug beta [#1696]
  • Fix handling non-UTF8 code pages on windows [#1695]
  • Info.plist generation, out-of-src build support [#1686]
  • Specify the path to the TSAN blacklist, to allow out-of-tree builds [#1655]

Additional binary releases:


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

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

Below are sha256sum hashes for version 18.0RC2.
Signature verification can be done against the signature for argakiig in the source
code repository (etc/gpg/)

3e94f49a5043234b9c1b0a9b6f563ec0f8ad3fdbc4f3c692a97af6340a5c0404 *nano-18.0RC2.tar.gz
ea9f00f113c30ff9ab38e278d7c15dfd4067e1e217719bd2c319980e205b0b11 *nanocurrency-18.0RC2-6.el7.src.rpm
2f6b8039e31f2ebecd5e27031011e034221b7f0675cdf136e1bd9c39ec0bfa6f *nanocurrency-18.0RC2-6.el7.x86_64.rpm
c8a83e24d4356c4104afbb756932f2f19bb5eb1c2ae7df21e65a7086a19ec304 *nanocurrency-debuginfo-18.0RC2-6.el7.x86_64.rpm
e29acced3a5799f7ac5bc777e2bffc78278c86e162744b6813fa128c2a1919e7 *nano-node-18.0RC2-Linux.tar.bz2
2cc8d048c64e3792f99056d97382997320386a7c7dd10c7c408ab28c40711a9e *nano-node-18.0RC2-Darwin.dmg
3551df94507ae08d7d52a8f346a250631e0158a81163367dc1674c4da203cfc0 *nano-node-18.0RC2-win64.exe
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAlxaNmUACgkQgERoJPn9
OloryAf/cVia73/+Sk0ejWTHqUabwnMgiPxqN/rr/x00MhfWPUkZ2dsnyQ5SHzZN
Qo4YkMLTuGKlaE9+SH9SGobACkaiTe78VXq8DAU1gom5ps/oazTRj7nSTaWuJOPw
fn1SLrRyZRwZDSnuvL8EcdT4dfSlu68wnlqwaW61t8+ZhqpQFpBdCvatAO2PGfso
bhdBqIr/NraoW3mqw2LYdFdn9o1NzIxycrupLmmH9E3Bbv+YAaZRXeWaK+7kRR7+
qHlHWSeu1lrZGtxYd5/pII0xvb2jLHyCJXDnFh3Czxr3puxr+F4aVbVZch8sVGcB
s9nx+S16EbIs9KE9nw2QVRGyfwMcuw==
=NyB7
-----END PGP SIGNATURE-----
  • V18.0RC1

released at 01/02/2019

Assets 7

This is a Beta Network Release -- binaries will only work on the Beta network

Change Log

Release V18.0RC1 (2019-02-01)

Full Changelog

Major Changes:

  • PATCH to indicate RC, Updated Version responses [#1643]
  • Splitting wallets from ledger database. [#1610]
  • Add sideband information to database. [#1554]
  • Deprecate all existing API calls [#1540]
  • Disable voting by default [#1509]
  • Rename internal project bits from RaiBlocks to Nano [#1504]
  • Block builder [#1451]
  • Confirm dependent active elections [#1438]
  • Support external RPC servers via IPC [#1434]
  • Disable voting by default [#1369]
  • Zero-terminate all things we refer to as strings [#1223]
  • Node ID in RPC & QT wallet peers list [#946]
  • Separate DB file for wallets [#210]

Implemented enhancements:

  • add CLI switch for adjusting Sideband upgrade batch sizes [#1684]
  • Create and use new network helper constants [#1680]
  • Improve votes cache usage [#1678]
  • Fix our own compiler warnings [#1677]
  • Fixing issue where blocks were not being rebroadcast immediately upon… [#1657]
  • Make nano_wallet for Windows console [#1653]
  • Multi-thread the signature checker [#1651]
  • Filter outdated_version errors from logging [#1649]
  • Long-term online rep weight tracking [#1648]
  • Update balance on ratio change [#1647]
  • Count processed forks in stats [#1646]
  • Add support for getting the current thread's name as a string [#1639]
  • Better handling of TCP accept overflow [#1638]
  • tsan: blacklist mdb [#1637]
  • Memory stats in RPC [#1632]
  • Add version info to Info.plist [#1631]
  • Improved error message when unable to accept RPC connection [#1626]
  • RPC to clear stats [#1625]
  • Increase default max log folder size to 128Mb [#1623]
  • Add optional "offset" & "reverse" parameters for RPC chain [#1622]
  • RPC to clear stats [#1620]
  • Increase default max log folder size [#1618]
  • RPC uptime [#1616]
  • Remove deprecated bulk_pull_blocks [#1615]
  • Upgrade preconfigured peers in config.json file to use nano url instead of rai [#1613]
  • Splitting wallets from ledger database. [#1610]
  • More transaction cleanup in preparation for wallet splitting. NFC [#1609]
  • Cache peers in database [#1608]
  • Separate transaction sources [#1607]
  • Multithread signature_checker [#1606]
  • Add existing blocks check for lazy bootstrap pulls [#1603]
  • Indicate active network in Qt wallet [#1601]
  • Rename announce_votes () to request_confirm () [#1598]
  • Update FindBoost.cmake [#1597]
  • version numbers missing on macOS [#1596]
  • Make asan/tsan link on macOS, add tsan cache variable [#1593]
  • Connect to a bootstrap peer only once concurrently [#1590]
  • [QT] Automatic determinictic accounts check after leaving the synchronisation state [#1589]
  • Change order of block table lookups [#1587]
  • Remove bulk_pull_blocks [#1585]
  • Add size expressions to bootstrap types [#1580]
  • Remove checksum table [#1579]
  • RPC debug command line option [#1577]
  • Remove unnecessary inline specifier [#1572]
  • Accept seed in RPC wallet_create [#1567]
  • Priority lazy bootstrap for wallet accounts [#1565]
  • Disable clang format where versions disagree [#1562]
  • Remove gap_previous check from epoch_block_impl [#1559]
  • Renaming block_processor::process_x functions. [#1558]
  • Add sideband information to database. [#1554]
  • Use builder in CLI debug commands [#1553]
  • Extracting function to calculate block successor offset [#1552]
  • Optional deterministic index in RPC account_create [#1547]
  • Local votes cache to reduce CPU usage for representatives [#1542]
  • Set outdated-version status on livenet as well [#1538]
  • Block method refactor [#1535]
  • "update_existing_accounts" option for RPC wallet_representative_set [#1531]
  • Adding logging object to mdb_store. [#1530]
  • Add size field to bootstrap message types [#1529]
  • Block size computation improvement [#1528]
  • Timer utilities [#1526]
  • Lazy bootstrap part 2 [#1516]
  • Minor cleanup of entry.cpp for node [#1514]
  • UI feedback when changing seed [#1513]
  • Migrate existing data from ~/RaiBlocks to ~/Nano [#1512]
  • Log work generation data and difficulty [#1511]
  • Update UI block status [#1510]
  • Disable voting by default [#1509]
  • Only build essential boost libraries in docker [#1507]
  • Improve requesting frontier performance [#1503]
  • CLI --debug_profile_bootstrap [#1502]
  • Remove ip_address_hash from std namespace [#1499]
  • Replace bind with lambda [#1498]
  • Remove beast from .gitmodules [#1493]
  • Store timestamp & verified signature status in unchecked table [#1492]
  • Slight improvements of block_exists usage in bootstrap & ledger [#1490]
  • Stop usual pull request with more than 16k unexpected blocks [#1486]
  • Faster block existence check when the block type is known [#1484]
  • Remove dupsort from unchecked table [#1483]
  • Profile and improve process_receive_one [#1478]
  • Move from deprecated io_service to io_context [#1469]
  • Add more support for building boost with different options [#1468]
  • Fix initialization order [#1467]
  • Remove function template specializations [#1462]
  • Pessimisation fix for condition_variable notify_* [#1461]
  • Remove virtual function specifiers where override is used [#1458]
  • Block builder [#1451]
  • Check origination time before starting election [#1446]
  • Close sockets gracefully [#1445]
  • Log work data when computing work [#1443]
  • Confirm dependent active elections [#1438]
  • Support external RPC servers via IPC [#1434]
  • Error type and config handling [#1416]
  • Signature checking thread [#1411]
  • Early detection for votes overflow [#1406]
  • Add missing header [#1405]
  • Renaming successors to blocks to be less confusing. [#1400]
  • Remove gap_previous check from epoch_block_impl [#1392]
  • Implement queue management [#1391]
  • Move serialization to vector pattern into a base class function [#1386]
  • Misc cleanup [#1384]
  • Remove code related to unused observer [#1381]
  • Cache peers [#1374]
  • Cached local representatives list [#1372]
  • Add a config option to allow local peers [#1370]
  • Disable voting by default [#1369]
  • CLI --debug_profile_votes [#1366]
  • Slightly more efficient way of storing duplicates [#1364]
  • (Proposal) Fix multiple rpc callbacks for same host. [#1356]
  • Proposal Import seed/wallet without exsiting wallet [#1341]
  • Avoid lock pessimisation [#1284]
  • please make the status make sense for the average technical user [#1245]
  • RPC "sign" (hash, block) [#1241]
  • For Docker, log output to a file (unrotated !) [#1228]
  • Remove redundant config_file parameter of fetch_object [#1167]
  • Remove unused param from daemon_config ctor [#1144]
  • What is purpose of config_file param in method rai::fetch_object? [#1143]
  • Config error handling [#1111]
  • Allow local preconfigured peers [#1105]
  • Slow refresh rate of block number [#1102]
  • confirm_req_hash to reduce bandwidth usage [#1046]
  • Move to random_pool for shuffling [#1045]
  • Disable process active with large queue [#1010]
  • Add wallet_history with timestamps [#994]
  • Option to disable automatic wallet backups [#984]
  • Optional search by hash in confirmation_history [#974]
  • Returning list in RPC representatives_online [#777]
  • Add accounts parameter to wallet_change_seed [#775]
  • Modify wallet\_create CLI to allow seed & password change [#719]
  • Update Repository name, description, and url to Nano [#627]
  • Blocks.hpp - Tech debt and potential maintainability issues [#375]
  • Separate DB file for wallets [#210]

Fixed bugs:

  • Fix Boost 1.69 build [#1685]
  • update beta weights [#1683]
  • Revert "Initial Travis Windows support" [#1682]
  • tsan: fix rpc shutdown acceptor issue [#1681]
  • Update populate_connections () endpoints list with new clients [#1679]
  • Update FindBoost.Cmake module to support up to boost 1.70.0 [#1676]
  • Fix scope issue when setting thread names in the multi-threaded signature checker [#1674]
  • Add missing headers in timer [#1673]
  • Improve mutex for online_reps::sample () [#1672]
  • Restore old default response for RPC "peers" [#1669]
  • Support the HTTP OPTIONS verb for RPC [#1667]
  • Set current time for block in RPC process [#1666]
  • Encapsulate and lock stat_datapoint, fixes core_test tsan [#1665]
  • Improve node::process_confirmed () [#1664]
  • Fix windows tests for ipc [#1663]
  • Add compile options for Aarch64 [#1662]
  • Update miniupnp [#1659]
  • Fix vc++ compile error in write_legacy_sideband [#1652]
  • Fix race conditions reported by TSAN [#1650]
  • Initial Travis Windows support [#1644]
  • PATCH to indicate RC, Updated Version responses [#1643]
  • fix wallet.startup_balance [#1642]
  • update .travis.yml [#1641]
  • Fix potential div-by-zero issue in receive_frontier [#1629]
  • Fix rpc.wallet_create_seed test [#1628]
  • Add wallet locked check to RPC wallet_representative_set [#1627]
  • Set permissions to config.json file after creating [#1621]
  • json config: fix upgrade of required child nodes [#1599]
  • Fix asan issue (illegal downcast) in test [#1595]
  • Fix rare time_bound & time_cutoff tests failures [#1592]
  • Include assert.h, needed for assert() [#1591]
  • Fix RPC wallet_change_seed [#1586]
  • Upgrade config from raiblocks.net [#1575]
  • Limit recursive confirm_back () [#1570]
  • Limit nested bootstrap runs [#1568]
  • Improve provided "work" for RPC [#1560]
  • Improve RPC shutdown [#1550]
  • Get rid of nounset flag when running the Boost bootstrap subscript [#1549]
  • rpc shutdown fails intermittently [#1546]
  • Fix too-small buffer [#1541]
  • Deprecate all existing API calls [#1540]
  • Rename all links to our GitHub repo [#1537]
  • Calculate votes for local representatives in block_confirm [#1534]
  • Add recursive_mutex to foreach_representative [#1533]
  • Fix intermittent send_node_id_handshake failure [#1532]
  • Update license year 2019 [#1527]
  • Fix tests broken with #1510 [#1524]
  • When bootstrapping, connect to a peer only once concurrently [#1522]
  • Remove dead link to forum from readme [#1515]
  • Wiki improvements (mostly boost related) [#1508]
  • Update DockerHub username [#1506]
  • Rename internal project bits from RaiBlocks to Nano [#1504]
  • File descriptor leak [#1496]
  • Extend test retry [#1495]
  • udp_buffer could hang [#1491]
  • verify_state_blocks() with a max is O(n) [#1475]
  • Retroactive rebase of PRs [#1464]
  • Remove endpoint_hash from std namespace [#1460]
  • Ensure the block exists in account_history [#1410]
  • Use "count" in frontier_req_server [#1407]
  • git clone with a single branch does not include annotated tags ? [#1395]
  • rai_node not exiting with success code in certain situations [#1340]
  • Unable to read from work_peer ::ffff:172.17.0.2 7075: Connection reset by peer (104) [#1324]
  • Zero-terminate all things we refer to as strings [#1223]
  • v16.0 transactions with provided work not processing correctly [#1181]
  • Fix callback resolver [#1073]
  • Update CryptoPP & Argon2 [#1068]
  • Node V14.2 - New Accounts in wallet set representative to themselves upon opening, instead of using the wallet representative [#1019]
  • Node ID in RPC & QT wallet peers list [#946]
  • Update the main menu of wiki standstill (Small change but helping saving time a lot) [#897]
  • Update Wiki - Docker node [#863]
  • rai_node Wallet-Backups instructions in the Wiki contain errors [#795]
  • Release asset: official Docker image [#754]
  • The statement is always true in 'rai::active_transactions::announce_votes' ? [#724]
  • Chain RPC call suggestions [#615]
  • Wallet_create on the command line doesn't work with a running daemon [#458]
  • xrb_uint256_to_string does not null-terminate the address string [#290]
  • [Proposal] Option to track block timestamp for local wallet/node without including in blockchain [#105]
  • Refresh the accounts list after importing seed [#70]
  • Add detection of possible firewall issues [#52]

Additional binary releases:


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

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

Below are sha256sum hashes for version 18.0RC1.
Signature verification can be done against the signature for argakiig in the source
code repository (etc/gpg/)

fe69c32a14dd0d91e5ce434d86fe4654d2da85ee06509b3456e9af49ac6246b7 *nano-18.0RC1.tar.gz
36c2b8601063dc54c29bf75f98e677acaf0d2468158355ddc2683f882b5d752e *nano-18.0RC1-Darwin.dmg
b539ffc7c0751dbac157d8c8719744a88f86e709b586cc965322c69d37bdc6f2 *nano-18.0RC1-Linux.tar.bz2
77cc7667c3982d35787651d9e5e151d9a3a5c8888b583fe1deddff28b60b2df2 *nano-18.0RC1-win64.exe
38b8a8d8642b8164436cd1a6f356ded561116734367524755596cd8c4d1c94d5 *nanocurrency-18.0RC1-5.el7.src.rpm
06ddd6be0d7e1ca12f0901d9acb54ec8d2601ec6ce62835bbfd5b5f5859a5ad0 *nanocurrency-18.0RC1-5.el7.x86_64.rpm
21d76859820fca4de176e28d1c2ff12586ca3944bed714283e19e5d2a0ccd4ff *nanocurrency-debuginfo-18.0RC1-5.el7.x86_64.rpm
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAlxUta4ACgkQgERoJPn9
Olo0yAgAllzJNtcdiVa0kYpbId/4C8wvQK6XU6VpNZepagfAeny4D+dmiWcgQZCs
CN590LwNZVmr0IHWe5k2+2tON+yen/5w91X/2LTJOMO9oGeA9VzfldjB9SazTuGZ
ZlJFOmtTVunO7IeJ3CVpiP+QdQ5X634Nc+P73whkYlQoauJbbWzvJ2cDPKZdnoMX
qjXLKRqembHUgrKgE+XpIQRTKjbeGH/Bk4iLWkYRUggbtwHgOunAYi9AJYABA6e/
Qs9vjwxruYjBHO7FojW3uYsvhDzas/v4+oN0S7EG1+LrqRxaOJOWCwaPS/DHYtky
9LRH/s0XbYRMl5U2uAqKsNtwrG/0Qw==
=NM4y
-----END PGP SIGNATURE-----
  • V17.1

released at 21/01/2019

Assets 5

Change Log

Release V17.1 (2019-01-21)

Full Changelog

Implemented enhancements:

  • List of rolled back blocks in block_processor [#1581]
  • Check state blocks existence in ledger before verification [#1571]
  • Lack of contact timestamping drops peers [#1536]
  • Reduce UI lockups [#1482]
  • MDB improvements [#1421]
  • Expanding root to uint512_union [#1600]

Fixed bugs:

  • Test node.block_processor_reject_rolled_back [#1594]
  • Restore blocks_hashes.insert [#1569]
  • update lmdb submodule [#1563]
  • Fix crash when announcing votes [#1501]
  • Disable pool_connection () for stopped bootstrap or bootstrap_client [#1500]
  • Fix a possible thread stall [#1494]

Additional binary releases:


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

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

Below are sha256sum hashes for version 17.1
Signature verification can be done against the signature for argakiig in the source
code repository (etc/gpg/)

79c55cb4e593cd54820b6352936cb53490bb30f569c9f9eac85c9556ff20fc3e *nano-17.1.tar.gz
4ce51ef996b6fe49061a006ccac7a6908cb3479077fada56cd905d9cc7088e56 *nano-17.1-Darwin.dmg
e980bbe03e1c680e2a70605b547afd5348fdab0340e8f1fd4ef2c74fde8fd3e4 *nano-17.1-Linux.tar.bz2
995fe00b22079283500d38520709cfdbf54fbbec5a81e4c1f3b1ab45d8fa0db1 *nano-17.1-win64.exe
4249f98f84ec0f0c9eab7439f69ab21ff1c4bfe11c5c3940786ab6ca3ceba047 *nanocurrency-17.1-4.el7.x86_64.rpm
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAlxGGjIACgkQgERoJPn9
OlqFeQf/adYT8SYAr8BwWi474c0dNn0vdp938Ht9fKp75DNtZ9L/emXH0atJ+dbI
DxRY4T6RKanwCmumj50bEDmCF/5B1/UJhFPaw2U4/clW6pUoaRtSUmFjBMAP9JS/
9+Ru4HpjjSyrTVpOtAjwWI1qum//CUHVM81RSHAeILdrVHF+jCgDjy6BigaKGJ9x
35c6AjkEBqvgx+isTHMt8tbOuS9hGxJ7zQSFsz8P930d5jL05uYVpw9qXu66Jsui
xEnNR4d8qTt6TS7GKhaGpXjZhnlaNMa7OC10CddT830q04Fj+Kb8jSlaSU2IiKNG
opD0rKzvUSXm4SIIv8jGCSHO2nYWjg==
=2XDc
-----END PGP SIGNATURE-----
  • V17.1RC2

released at 18/01/2019

Assets 4

This is a Beta Network Release -- binaries will only work on the Beta network

Change Log

Release V17.1RC2 (2019-01-18)

Full Changelog

Implemented enhancements:

  • List of rolled back blocks in block_processor [#1581]
  • Check state blocks existence in ledger before verification [#1571]
  • Lack of contact timestamping drops peers [#1536]
  • Reduce UI lockups [#1482]
  • MDB improvements [#1421]
  • Expanding root to uint512_union [#1600]

Fixed bugs:

  • Test node.block_processor_reject_rolled_back [#1594]
  • Restore blocks_hashes.insert [#1569]
  • update lmdb submodule [#1563]
  • Fix crash when announcing votes [#1501]
  • Disable pool_connection () for stopped bootstrap or bootstrap_client [#1500]
  • Fix a possible thread stall [#1494]

Additional binary releases:


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

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

Below are sha256sum hashes for version 17.1RC2.
Signature verification can be done against the signature for argakiig in the source
code repository (etc/gpg/)

f8df1c53c1ff2a0986d1437965b3473e2b4f3366a7cb77406a55619c27bf869c  nano-17.1RC2.tar.gz
c25c63b853f8d17b2ccf5c1919475e0be5b48fffa9e3890165783144c152d09e  nano-17.1RC2-beta-Darwin.dmg
11f3e5bfc40800f73f7c1dad5a080671624134f33af270956708c4dd17b745cd  nano-17.1RC2-beta-Linux.tar.bz2
2d8bb90cff5b9cb25d4ec485e761fe8e2070f5854040351e87cdf6004a5cd031  nano-17.1RC2-beta-win64.exe
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAlxCIFEACgkQgERoJPn9
OlphLgf9EX92O280chWzze3mf14a13c4JwgYI6RzhmA1RVlMoPzQXUPs54f+HdLj
GAAxKJBS6DLd2EfDkErOq+BmtZvhrAcqfoi9Q6ZNlKsKNgqxad3vaoh+X0TokFcx
ABfx20Q8SuBI6lkUxShM7MLlZ3RifFWcE99gsRuyoLbZ+6Jxw6dRlPRZIS2fIX+w
Z1K/mem+t2Lj1kq4QPE5Fpf+4sPtkxtua96jLsD5r7y0RTkV8LtLJogNZMHnwShd
20i3O1YoiUmm7cLn7VHHntP4MwjrKZVUiSzz6MC/756p36ER8sMswMIdHxICOejP
yFXo1tR/d8Gmi8iafaLfMXxWf9bUIw==
=AWyG
-----END PGP SIGNATURE-----