Skip to content

V20.0RC1

Pre-release
Pre-release
Compare
Choose a tag to compare
@argakiig argakiig released this 25 Oct 13:57
· 40 commits to master since this release

Change Log

Release V20.0RC1 (2019-10-24)

Full Changelog

Major Changes:

  • RPC publish optional work_watch flag to add to work_watcher [#2168]
  • Adds RocksDB support [#2197]
  • TOML config file support and migration [#2221]
  • Support epoch 2 [#2310]
  • Add ability to start pow server as child process [#2331]
  • Active elections loop tuning [#2306]

Semantic Changes:

  • Classify traffic stats correctly [#2309]
  • Verify pubkey against special keys in wallet [#2299]
  • Fixes account_history RPC to include receive blocks when filtering accounts. [#2244]
  • Use node_ prefix for node ID [#2191]
  • Assert for disabled bootstrap modes [#2163]
  • Remove querying pending confirmation height in various operations [#2156]
  • Accept multiplier in work_generate and work_validate [#2151]

Implemented enhancements:

  • Confirm frontiers for bootstrap with multiple failures [#2349]
  • Non-blocking UPnP discovery [#2346]
  • Attempt to fetch account from block hash in RPC work_generate [#2339]
  • Unchecked cleanup tuning [#2336]
  • Restart dropped elections for unconfirmed blocks with higher PoW [#2335]
  • Basic confirmation request loop enhancements [#2327]
  • CLI command to output the total number of (un)opened account versions [#2323]
  • Periodic rep crawler weights update [#2319]
  • Add lazy bootstrap possible links and accounts [#2315]
  • Allow node to work without work generation [#2312]
  • RPC epoch_upgrade [#2304]
  • Update broadcast_confirm_req_batch to handle PoW priority [#2303]
  • Strong types for the various bit unions [#2300]
  • Stacktrace with backtrace to display files and lines [#2298]
  • Lazy bootstrap cleanup & basic improvements [#2292]
  • Some minor cleanup [#2291]
  • Add block count cache [#2290]
  • Replace account_info::rep_block with representative account [#2283]
  • Enhance block processor filter [#2282]
  • Handle work generation failure and cancel [#2281]
  • Split bootstrap source files [#2274]
  • Disable unchecked cleanup if node is not synchronized [#2272]
  • Add log when a block difficulty is updated in active transactions [#2270]
  • CLI --debug_validate_blocks enhancement [#2269]
  • Refactoring epochs [#2268]
  • Track length of time mutexes are held for [#2267]
  • Add config option to conditionally enable RocksDB backend [#2266]
  • Prevent possible from_multiplier () function overflow [#2265]
  • Prevent adjusted difficulty overflow for extremly high or low difficulty [#2260]
  • Prevent dropping of unchecked on restart if node is not synchronized [#2257]
  • Distributed work refactor [#2255]
  • Enhancements to OpenCL work handling [#2247]
  • Wrap boost::asio::async_write to ensure lifetime of buffers [#2240]
  • Start frontiers confirmation after initial bootstrap [#2236]
  • Enforce upper case for hashes/signatures string output [#2235]
  • Fire callback & add to history after confirmation height is set [#2233]
  • Allow Cmake AVX2 builds for Windows [#2232]
  • Reduce time holding read transaction in vote processor [#2231]
  • Distibuted work fixes [#2230]
  • Watch blocks separately in work watcher [#2228]
  • Configurable work watcher period [#2222]
  • Improve throttled received block for bootstrap [#2220]
  • Use max config difficulty internally [#2218]
  • Throttled received block for bootstrap [#2216]
  • Add counter in stats for number of incoming blocks dropped [#2215]
  • Config option for single line logging records [#2214]
  • Beta reset with new genesis and lower work threshold [#2207]
  • Travis/artifacts to s3 [#2204]
  • Provide optional automatic ledger/wallet backups before an upgrade [#2198]
  • Process wallet blocks outside of block processor queue [#2196]
  • In http callback, don't log any http responses indicating success as errors [#2193]
  • Callback response misleading [#2192]
  • Add frontiers confirmation modes [#2175]
  • Use confirm_req by hash + root for upgraded peers [#2164]
  • Assert for disabled bootstrap modes [#2163]
  • Cache recently arrived votes [#2159]
  • Improve votes caching for same account & increase max cache size [#2155]
  • Prioritize node wallet frontiers during background confirmations [#2154]
  • Accept multiplier in work_generate and work_validate [#2151]
  • Improve docker build speed on multi-core machines [#2148]
  • Improve stacktrace output during release_assert [#2142]
  • Static type safety for the union types [#2117]
  • Provide optional automatic ledger/wallet backups before an upgrade [#1690]
  • No write transactions on I/O threads [#1264]
  • Logging output can spread multiple lines, which makes it difficult to export [#806]
  • Node crashes with no error message if the database can't be opened [#761]
  • Lazy bootstrap retry limit [#2362]

Fixed bugs:

  • move min bootstrap and traffic to v16 [#2363]
  • Docker USER support [#2361]
  • ASAN leak when exiting node [#2360]
  • Improve sample configuration file [#2359]
  • Update travis beta-osx job with cached qt [#2358]
  • Update Argon2 to release 20190702 [#2357]
  • ASAN error in vote_by_hash test [#2356]
  • Distributed work test failures under ASAN [#2355]
  • Add upnp port mapping description [#2354]
  • TSAN error in node.peers test [#2353]
  • Add support for launch flags passed to nano_wallet [#2352]
  • TSAN error with block work [#2351]
  • Update beta network bootstrap weights for v20, cutoff 14M [#2350]
  • Fix link ordering issues [#2348]
  • Fix bootstrap attempt not stopping [#2347]
  • Suppress RocksDB TSAN warnings with Clang [#2345]
  • create build cache for mac qt in external repo and pull in for testing and artifacts. [#2344]
  • Fix disabled ongoing unchecked cleanup [#2342]
  • RPC unchecked json_block option [#2341]
  • Output error message with qt wallet if RocksDB is enabled in config but is unsupported [#2340]
  • Fix active difficulty calculation [#2338]
  • Update from_multiplier () overflow checks [#2337]
  • tsan: fix race in inactive_votes_cache_multiple_votes [#2334]
  • include nano_pow_server as a submodule and build into ci framework for tagged releases [#2333]
  • Fix work_pool.opencl test hanging [#2332]
  • Fix UPnP [#2329]
  • Object stats for work watcher container [#2328]
  • Profile work validation [#2322]
  • generate sample node and rpc toml after building nano_node target [#2321]
  • Add confirmation request count to election_status [#2320]
  • Account creation refresh in qt wallet [#2318]
  • Fix init order warning [#2317]
  • Add some RocksDB TOML config options to tune memory usage [#2316]
  • Don't comment toml tables in generate_config [#2314]
  • Set NANO_ROCKSDB define even when set to OFF [#2313]
  • Snapshot/Vacuum should use the rocksdb config option [#2311]
  • Classify traffic stats correctly [#2309]
  • Make generate_config produce commented-out entries by default [#2305]
  • Checking for frontiers only if necessary [#2302]
  • Verify pubkey against special keys in wallet [#2299]
  • Fix a bug in the rep_block -> representative conversion [#2297]
  • Support --config option in Qt wallet [#2295]
  • Fix rpc.work_peer_bad [#2294]
  • Websocket subscription for work notifications [#2289]
  • Build RocksDB library as portable in docker [#2288]
  • Add --config option to rpc process [#2287]
  • Improve bootstrap attempt locking [#2286]
  • docker --cache-from set as single string argument with = [#2284]
  • Fix off by one in broadcast_confirm_req_batch [#2280]
  • Fix active transactions difficulty update for state blocks [#2279]
  • Fixing test to use unique_path each time. [#2278]
  • Use distributed work in work watcher [#2277]
  • add master tag for beta and caching for subsequent artifacts_beta builds [#2276]
  • add rocksdb to build artifacts lacking it [#2275]
  • Fix possible issue in active_transactions.adjusted_difficulty_overflow_min test [#2273]
  • Fix delay in stopping the node [#2271]
  • Non-blocking work watcher loop [#2264]
  • Prevent supurious wakeup in active transactions request loop [#2263]
  • Set USE_RTTI before building RocksDB in docker [#2261]
  • Cache cemented count [#2259]
  • No longer need enable_control when getting the cemented count [#2258]
  • Post to worker thread in qt wallet when doing write tx's on io threads [#2256]
  • Remove preferred TPC response channels [#2254]
  • Extend toml default-configs test [#2252]
  • Fix some time-related configs being overriden with 0 [#2251]
  • Lambda formatting that works across clang-format versions [#2250]
  • Update weights following beta refresh distribution [#2249]
  • Use defaults for amounts in toml [#2248]
  • Move protocol versions to network_params [#2246]
  • No required options in TOML parsing [#2245]
  • Fixes account_history RPC to include receive blocks when filtering accounts. [#2244]
  • update beta network header_magic_number to finalize beta network reset [#2243]
  • Docker changes for new TOML config [#2241]
  • Fix TSAN error in adjusted difficulty test [#2234]
  • Simplify process_loop log timing by using nano::timer [#2229]
  • Set application/json as header content type for work peer requests [#2227]
  • Header 'Content-Type': 'application/json' not set in work peer requests [#2224]
  • Remove landing store [#2223]
  • Fix failing slow_tests [#2219]
  • Cache rep weights [#2217]
  • Make some changes suggested from cppcheck [#2213]
  • Add mdb database test from v14 to v15 [#2212]
  • Increase lifetime of temporary rep variable [#2209]
  • Simplify vote generator logic with a dual sleep [#2203]
  • Deprecate nano- and xrb- address support [#2201]
  • Fix rpc.node_id test [#2200]
  • Only use -Werror by default with ci [#2199]
  • Add support for election info in websocket confirmations [#2195]
  • Wallet actions can take a long time due to flush() being called [#2194]
  • Use node_ prefix for node ID [#2191]
  • Fix building error caused by #2151 [#2189]
  • boost 1.70 requires log_setup component specifically updated CMAKE 1.… [#2185]
  • RPC version network label and identifier [#2184]
  • Fix lazy bootstrap balances insert [#2183]
  • Principal representative factor as a network constant [#2182]
  • escaping regex for deployment on master or releases/v* branches [#2180]
  • fix boost downloads [#2178]
  • More preparation for new database backends [#2177]
  • Extract confirmation height to its own database [#2174]
  • Move alarm/operation out of node [#2173]
  • add git commit hash and compiler info to logging and version calls [#2170]
  • Travis/streamline [#2169]
  • RPC publish optional work_watch flag to add to work_watcher [#2168]
  • Allow the RPC server to be run on a different system [#2162]
  • Update entry script [#2160]
  • Fix compile errors in release mode after warning->error change [#2158]
  • Add RocksDB to the build system [#2157]
  • Remove querying pending confirmation height in various operations [#2156]
  • Fix node_id assign for bootstrap_server [#2152]
  • Remove extra core utilised during docker deployment build [#2150]
  • Fix unused variable error in deployments [#2147]
  • [Valgrind] Check if running under valgrind before doing death tests [#2145]
  • Refactor ledger database code for reuse with different backends [#2136]
  • Suggestion: allow docker container to die when broken [#2123]
  • Remove compiler warnings (incl from third party headers) [#2072]
  • Fix slow_tests [#1923]
  • Show active network in RPC version [#1884]
  • Migrate config.json to reference and override files in TOML format [#1878]
  • Do not rewrite config.json on node boot [#1781]
  • Docker Image - Redirect logs output to Docker logs [#1612]
  • Update node ID to use node_ instead of nano_ prefix [#2181]

Additional binary releases:


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

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

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

0547cc61d811f3794ccdcc7c52b280c3f47ddd4e1f5a2f948cfc76fdac16f621 *nano-20.0RC1.tar.gz
6cb7f579d11dfc4d789dbea0fb1a1dfde90199f9c55fdc1f8c49287f0d6aa133 *nanocurrency-beta-20.0RC1-16.el7.src.rpm
3c7730edc6cc60a0765430d92dff5995279561176e05980f07cd03b5cef0cff6 *nanocurrency-beta-20.0RC1-16.el7.x86_64.rpm
8ca1da34047d4b67b82cbb528a53c38b5f8be04424955edb6ebecef727e43a62 *nanocurrency-beta-debuginfo-20.0RC1-16.el7.x86_64.rpm
9de481414f3d7ba38888fd95339c335c606509faa98940065fc5d3f401684a9a *nano-node-V20.0RC1-Darwin.dmg
2dcd000180069f6b93597554e15b76743954a7ea93b5a54dd3f35a7a7067ae5f *nano-node-V20.0RC1-Linux.tar.bz2
3eb4c27541199c0b9c1bbde95b61de28173bb3fd9908778c92098ec20bd5bbcf *nano-node-V20.0RC1-win64.exe
75e0270b6a8129bc5f4edc966eadae2743b6f122a8164d1c7242120d0f004ffc *nano-node-V20.0RC1-win64.zip
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEc+pdEgPPsADHbxJjyW2zlQ3kDroFAl2ycrcACgkQyW2zlQ3k
DroE1wgAq0vc9+bhZdR+ix5qHxZl+OpE4htTcDiiMtMlpdBlCTX7HLWisYVHa88m
EuBu5DhlQX5uJE96FfRPVnfNy/t7WoO8hJ0+2xYaVnCvfAfijEU4Pj8WwpOVViX8
79kuVw/MC5Ye+8X/ikL9+iqn4zsaQtY0jTfzWPC1AEaFUCnGB8QbhFCIPuXxePnV
eYhz0rpX5r9ABdtVc3SZm13IWzT74xO27ZbfqDiyb3VACDCRyLJgWYsB7A0GwNg9
c+Keu6VswYoKTEqe3qkNNzySRghaE3lOzWNMId+JCRn5h73NgUnFezR+ZMDNLji1
i1W8+pBXlCFlznLjjjoLQ5FUzy2BSg==
=iK9n
-----END PGP SIGNATURE-----