Nano V20 protocol update is now available

nano v20 download

Nano V20 is now available for download and this protocol / wallet upgrade brings many new features and improvements.

Download Nano V20 from here.

What has changed in Nano V20?

More than 200 issues and pull requests are part of this release.

1. Migration to TOML for configuration
2. Proof of work regeneration outside development wallet.
3. RocksDB experimental support
4. Active elections and other optimizations
5. Infrastructure for PoW transition

All these Nano v20 upgrades will make the Nano network more capable and efficient than before.

Here is the complete changelog taken from official Nano’s github.

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

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:
Improve bootstrap for accounts with public key = existing block hash [#2400]
Improve bootstrap frontiers confirmation [#2394]
Lazy bootstrap memory usage improvements [#2385]
Vacuum after upgrade [#2370]
Use std::condition_variable_any with timed locking [#2365]
Lazy bootstrap retry limit [#2362]
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]
Add ability to start pow server as child process [#2331]
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]
Fixing some unused variable warnings. [#2285]
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]
Adds RocksDB support [#2197]
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]
RPC publish optional work_watch flag to add to work_watcher [#2168]
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]