Boulton RC#3 Released

Andy Johnson
Dec 14, 2018 · 6 min read

The third Boulton release candidate is now available for testing on the Nano beta network. Beta testers observed high memory use in RC#2 and should see a reduction in the memory footprint while bootstrapping and during normal node operation in RC#3.

To participate in testing this release on the beta network, please visit https://beta.nano.org/ for more info.

We want to thank everyone in the community for their assistance in testing. Your valuable contributions via feedback and bug reports have been incredibly helpful, and undoubtedly will lead to a better final release — so a big thank you from the Nano team for your continued support.

Full Changelog

Major Changes:

  • Lazy bootstrap improvements [#1427]
  • Prioritizing transaction processing by difficulty. [#1413]
  • Reply to confirm_reqs with a vote by hash [#1335]
  • Add support for Lazy Bootstrapping [#1332]
  • Exclude confirmed & aborted elections from RPC confirmation_active [#1307]
  • Db abstraction [#1127]
  • Implement a Lazy Bootstrapping Client [#995]
  • Batch state blocks signatures verification [#956]

Implemented enhancements:

  • Add epoch timepoint for election end to confirmation_history [#1454]
  • Do not accept incoming bulk_push requests while bootstrapping [#1452]
  • Reducing the number of alarms [#1444]
  • Update Confirmation Timers to be ms not sec [#1442]
  • Add max_broadcast_queue for rai::active_transactions [#1440]
  • Lazy fallback to legacy bootstrap [#1437]
  • Extend Confirmation History [#1433]
  • Extend “bulk_pull” to have a count parameter [#1432]
  • Update “bulk_pull” to accept a count parameter [#1431]
  • [v17] Lazy bootstrap improvements [#1427]
  • Differentiate between lazy and non-lazy bootstrap in stats [#1420]
  • Prioritizing transaction processing by difficulty. [#1413]
  • Signature checking thread [#1411]
  • [v17] Replay votes in response to a confirm_req for an active block [#1409]
  • Fix secure rpc build [#1404]
  • Difficulty extraction [#1401]
  • Announce cleanup [#1399]
  • Add vote overflow stats [#1394]
  • Replay votes in response to a confirm_req for an active block [#1393]
  • Moving announcements off conflict_info [#1388]
  • Adding deadlines to RPC tests and checking error codes in some more c… [#1385]
  • Fix formatting on master [#1380]
  • RPC confirmation_quorum: optionally include account/ip/rep weight [#1379]
  • Ensure “.clang-format” works with current clang-format tool [#1378]
  • Update .clang-format to be consistent with new version [#1376]
  • Only observe blocks if callback is configured [#1375]
  • Limit the amount of deduplication items we store [#1371]
  • Dedicate a full r hash block to attacker unknown bytes [#1368]
  • Reduce lock scope in active_transactions [#1359]
  • Block uniquer [#1358]
  • CLI wallet_import force wallet creation if requested [#1357]
  • Make signatures non-deterministic [#1353]
  • Single active_transactions mutex for vote_blocking [#1350]
  • Make config upgrades more robust [#1348]
  • Reduce the amount of time spent holding the active_transactions lock. [#1345]
  • Log vote processing time [#1344]
  • Filter password, wallet, key, seed from RPC logging [#1343]
  • Remove unused local shared_ptr [#1342]
  • Reply to confirm_reqs with a vote by hash [#1335]
  • Log UPnP devices only if configured to do so [#1333]
  • Add support for Lazy Bootstrapping [#1332]
  • Bootstrap traffic stats [#1330]
  • Add unreachable host stats [#1329]
  • Fix formatting on master [#1328]
  • Create a separate tail constructor for distributed work [#1326]
  • Remove unused forward decl [#1325]
  • Use is_epoch_link [#1322]
  • Eliminate numerous warnings [#1319]
  • Fix MSVC linker error using rai_bootstrap_weights [#1317]
  • MSVC linker error rai_bootstrap_weights [#1316]
  • Move out peer container and related types [#1315]
  • Immediate election starts [#1314]
  • Logging vote tallies in a single block instead of separate lines. [#1313]
  • Speed up testing by using run_one_for [#1312]
  • Separate vote generation process [#1302]
  • New unit labels from legacy XRB to NANO style [#1301]
  • Add weight option and account filter to representative_online rpc cal… [#1300]
  • Using QSettings to persist application settings for selected ratio scale [#1299]
  • Implement PoW work-based prioritization [#1298]
  • Factor out node_config [#1296]
  • Revert stack size linking for windows [#1290]
  • Better changelog generation [#1287]
  • Build prep enhancements [#1286]
  • Force macOS wallet to use aqua light mode whilst QT adds support for … [#1279]
  • Log common exceptions before asserting [#1278]
  • Save DB random block read with include_active [#1277]
  • Separate config option for network threads [#1276]
  • Support Mojave dark mode [#1275]
  • Remove process_active from confirm_req [#1265]
  • Move port/address parsing to common, where it’s declared [#1263]
  • Factor out logging [#1262]
  • Add vote status stats even when vote logging is off [#1261]
  • Name threads by role [#1258]
  • Iterative amount/balance visitor [#1257]
  • Add a max time to batch processes [#1256]
  • Fix deadlock for elections escalation [#1254]
  • frontier_req_server & frontier_req_client accounts deque [#1251]
  • macOS Build Automation [#1250]
  • Updated script to generate source tarball and changelog [#1249]
  • Better build prep scripts [#1248]
  • Change default desktop config.json [#1247]
  • Remove processing blocks from confirm_req [#1246]
  • Additional message stats [#1234]
  • Add a test for bulk_pull_account [#1227]
  • Release assert on DB failures [#1226]
  • Better error messages [#1225]
  • More counters [#1209]
  • Fix misleading message from lambda spawned from gap\_cache::vote() [#1208]
  • Fix generic error message in network::receive\_action() [#1207]
  • Added support for PENDING_HASH_AMOUNT_AND_ADDRESS to bulk_pull_account [#1201]
  • Enhance version rpc [#1194]
  • Add “latest-including-rc” tag for Docker [#1193]
  • 2 feature requests for the RPC call ‘representatives_online’ [#1192]
  • Enhancement: Add own protocol version to RPC version action [#1189]
  • Blockstore move visitors [#1186]
  • Initial bootstrap weight for betanet [#1179]
  • Remove generate_hash_votes_at from config [#1170]
  • Add — clear_send_ids CLI option [#1163]
  • Feature request: ability to clear Send Idempotency IDs and force send [#1162]
  • Validate pending blocks [#1160]
  • Support a flag for bulk\_pull\_account for including the account [#1159]
  • Checking for a matching environment when unwrapping a transaction. [#1155]
  • Stop test nodes with deadline expired [#1152]
  • Add _read and _write suffixed versions of tx_begin [#1136]
  • Check for invalid private keys in wallet_decrypt_unsafe [#1128]
  • Db abstraction [#1127]
  • Check genesis on startup [#1124]
  • Add representative weights for the Beta network [#1123]
  • Add tests for “bulk_pull_account” [#1043]
  • Node breakup: port mapper [#1038]
  • Implement a Lazy Bootstrapping Client [#995]
  • Batch state blocks signatures verification [#956]
  • Node ID RPC [#948]
  • rai_wallet does not remember scale display of Mxrb [#511]

Fixed bugs:

  • Fixed issue with incorrect timing computation [#1449]
  • Count state blocks in rai::block_processor::full () [#1448]
  • Division by zero possible [#1447]
  • Fix RPC shutdown in acceptor loop [#1426]
  • Support RCs for changelogs [#1419]
  • Fix iteration in rai::bootstrap_attempt::lazy_finished [#1417]
  • Update bootstrap weights [#1415]
  • RPC: sending 0 amount is invalid with state blocks [#1408]
  • Update GitLab Arch Linux image [#1398]
  • Restart the RPC connection acceptor in the face of errors [#1390]
  • Fix new tests relying on deterministic signatures [#1363]
  • Fix vote_cache [#1362]
  • ASan heap-user-after-free during node.send_single_many_peers [#1361]
  • Actually use also_publish flag [#1360]
  • removing std::endl from filter_request [#1349]
  • RPC logs blank lines [#1347]
  • Track VBH Rollout [#1339]
  • Track down high memory usage [#1338]
  • Update README.md [#1327]
  • Qt fixes [#1323]
  • Mutex covering wallet::items isn’t acquired within wallet_destroy. [#1320]
  • Insert race workaround [#1318]
  • Fix incorrect downcast to send_block &. [#1311]
  • Pass wallet reference in to actions and check for wallet liveness [#1310]
  • Exclude confirmed & aborted elections from RPC confirmation_active [#1307]
  • Using decode_account instead of decode_hex in account_move RPC handler [#1306]
  • No longer decrement the count if the entry is empty during account_history RPC call. [#1293]
  • Fix escalation source block check [#1282]
  • balance visitor assertion failure [#1280]
  • account_history RPC count parameter still considers change blocks even though they aren’t returned [#1270]
  • Fix node.password_fanout test with running beta node [#1269]
  • Search pending interval [#1268]
  • Bootstrap blocks cannot initiate elections required for wallet receive [#1260]
  • Extended bulk.offline_send [#1259]
  • Fix vote check [#1233]
  • Better — snapshot CLI error messages [#1224]
  • Fix mdb\_store::flush() [#1206]
  • Enable bootstrap weights on betanet [#1182]
  • 16.0.0-RC2-beta keeps exiting automatically on Windows, at apparently random times [#1168]
  • Display error message when snapshot file already exists [#1161]
  • Adding virtual dtor to block_store. [#1146]
  • Fix max vote sequence comparison [#964]
  • [bug]is the judgement true:max_vote->sequence > vote_a->sequence? then it may be a replay, not a vote [#962]
  • account_move is broken [#666]
  • v16.1 Windows Desktop keeps crashing [#1244]

Hashes

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Below are sha256sum hashes for version 17.0RC3.
Signature verification can be done against the signature for argakiig in the source
code repository (/utils/gpg_keys)
4065f35a99ce8467ce881232683810440e0f740bc7ba1f8f18c8717eada58aa1 *nano-17.0RC3-beta.tar.gz
5f7a8e79b4c407f10212e0e7baa015e91c2f9c160d845dab908bf988a7511a75 *nano-17.0RC3-beta-Darwin.dmg
7fc6ef6ff90be5fccf6468c43851863633e8084cfe9d6ba7e3dfcb5573685d96 *nano-17.0RC3-beta-Linux.tar.bz2
e248df0b59cb3a8bfb745bc28f6b82f8ce831a4ce64f50a546b9c228e8ad37cc *nano-17.0RC3-beta-win64.exe

GPG Signature

-----BEGIN PGP SIGNATURE-----iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAlwUK+8ACgkQgERoJPn9
Olrt7ggAoRzuF8yKpzsz9kfUzMydUIkbmbNwul3e7oYNOhx8ZoteVdMa3I/18kWj
1GX2PSCdqsyo4oNq1tC5hbOvrPVFuhrmxZtUCS3LUSgdsGxnYeDD/GlSEzAK94jp
JhqltOnQD4y52xw5N4XfT8VlIDOqJ6dZW6GVNSD5I8O6kG6Gs2/7B2JVlL/9/raJ
OOZlaVK0flh9dQMookTgsLKXeRB7wrTf0dF3m1dpU5IMvvZOLtiSWQmGb6nLr14o
a3wLak6TeI/40u5x9VtWp/qe87BMP4hC7Ns6BVuafW0rVAiWOAJnCrdCgQT+PkuW
8r+wkNJx5goaJloZuyJpfbZ7shEe0A==
=NOca
-----END PGP SIGNATURE-----

Nano

The best place for all of the latest Nano updates, developments and interviews. Brought to you by the Nano Foundation.

Thanks to Austin Ramsdale

Andy Johnson

Written by

Nano

Nano

The best place for all of the latest Nano updates, developments and interviews. Brought to you by the Nano Foundation.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade