Nano is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies.

Overview

Logo

Live Artifacts Beta Artifacts GitHub release (latest by date) GitHub tag (latest by date) Tests RelWithDebug Tests Discord


What is Nano?

Nano is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions.


Guides & Documentation

Other documentation details can be found at https://docs.nano.org.


Links & Resources


Want to Contribute?

Please see the contributors guide.


Contact us

We want to hear about any trouble, success, delight, or pain you experience when using Nano. Let us know by filing an issue, joining us on Reddit, or joining us on Discord.

Comments
  • Setting up NANO test network?

    Setting up NANO test network?

    Hello,

    I'm new to NANO and am interested in setting up a "test" network with just a couple of docker nodes that I can use the CLI or web interface to connect to and explore to get a feel for how things work. I want to learn how to setup the TEST network, configure it, and then interact with it as some initial steps.

    I am trying to determine how NANO compares to STEEM, BITSHARES, and EOS as far as transactions-per-second and scalability.

    Is there any documentation on this?

    Also, I am seeking a NANO forum or other place to discuss NANO core code development as well.

    Any assistance or input would be greatly appreciated Thanks and have a great day,

    opened by Outstep 39
  • Can't start the wallet on Ubuntu 17.04

    Can't start the wallet on Ubuntu 17.04

    I was using rai_wallet a few months ago without any problem, but now I get: $ ./rai_wallet Aborted (core dumped)

    I think it's caused by Ubuntu upgrade to 17.04 My current kernel is: Linux 4.10.0-21-generic #23-Ubuntu SMP Fri Apr 28 16:14:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

    Any thoughts how to fix it?

    opened by Mikadily 36
  • Node v.11.2 died after 3h

    Node v.11.2 died after 3h

    Description of bug: Node just died without messages in the log after running for 3 hours. Compiled from git master; commit 84a6b5160e2d81cf86b23a81f5a52d29553e7287

    Additional information you deem important (e.g. issue happens only occasionally): System Load seems significant higher than with 11.1.1, sometimes 90%-180% in top, will attach graph when more useful in some hours.

    Environment: Arch Linux Server, 4gb ram, SSD CPU(s): 2 Single core Intel Xeon E5-2680 v2s (-MT-SMP-) cache: 32768 KB clock speeds: max: 2799 MHz 1: 2799 MHz 2: 2799 MHz

    Raiblocks folder stored in ramdisk. Node Monitor: https://nanode21.cloud/stats.php

    logs https://nanode21.cloud/11.2.log

    opened by stefonarch 30
  • Would Raiblocks applications (malicious or not) be vulnerable to private key leaking?

    Would Raiblocks applications (malicious or not) be vulnerable to private key leaking?

    I was looking about the sign algorithm Ed25519 and found this issue: https://github.com/jedisct1/libsodium/issues/170

    Lets imagine the flow below:

    1. Origin wallet sign a transaction and broadcast it
    2. Some bit(s) could flip during the signing
    3. Destination wallet receives the transaction and invalidates it because of wrong signature
    4. Origin wallet creates the same transaction again and re-broadcasts it
    5. Destination wallet receives the transaction ok. And as a prize, it could extract the origin wallet's private key

    Having some bits changed during the signing happens, a lot. And happens more on mobile devices, mostly on iOS for example.

    It could expose the private key, not just to the destination, but for all network.

    opened by eddieoz 29
  • Change storage technology

    Change storage technology

    Why

    Currently one of the largest costs of running a Raiblocks node is due to the large amount of IO needed just to keep up with the current write rate.

    General Info

    Disks can do ~75 to 100 iops per second, or 120 Megabytes per second (sequential io). Consumer SSD's can do ~10K iops, or 375 Megabytes per second of IO.

    Problem Description

    Bootstrapping currently requires ~1k iops and 3 megabytes/s. So LMDB is generating a lot of very small writes for every block, but it's not actually writing much data. The write rate would be easily done on a single spinning disk if the IO's were structured differently.

    That's not ideal for this usecase where we are more concerned with being able to sustain a large write rate. There's a very large temporal distribution of data; newer data is more likely to be read while old data is less likely to be read. So we should choose a data-storage technology that allows for very cheap writes, has relatively cheap reads on recent data, and can scale to large amounts of data.

    LMDB is a memory mapped B-Tree. It makes for some very very fast random reads; however it's expensive for writes.

    Log Structured Merge Trees however have the exact properties that we're looking for. See: The advantages of an LSM vs a B-Tree

    Log structured merge trees allow writes to come in at a fantastic rate, and only generate a small amount of larger IO's. So we should think about replacing LMDB with a log structured merge tree. The best in breed currently is RocksDB. It also has the added advantage that it can compress blocks.

    Suggested Solution

    1. Add RocksDB
    2. Add ZSTD
    3. Configure RocksDB with universal compaction,
    4. Add a flag to allow using RockDB.
    5. After it's all tested and shown to be working remove the LMDB code.

    Steps to reproduce the issue:

    1. Start a new rai node
    2. Run iostat -dxt 5
    3. Notice the very very small IO's being issued.

    Environment:

    cpu:
                           Intel(R) Core(TM) i5-4250U CPU @ 1.30GHz, 1995 MHz
                           Intel(R) Core(TM) i5-4250U CPU @ 1.30GHz, 1950 MHz
                           Intel(R) Core(TM) i5-4250U CPU @ 1.30GHz, 1733 MHz
                           Intel(R) Core(TM) i5-4250U CPU @ 1.30GHz, 2444 MHz
    storage:
                           Intel 8 Series SATA Controller 1 [AHCI mode]
    network:
      eno1                 Intel Ethernet Connection I218-V
    network interface:
      eno1                 Ethernet network interface
      lo                   Loopback network interface
      docker0              Ethernet network interface
      veth8964baa          Ethernet network interface
    disk:
      /dev/sda             Crucial_CT120M50
    partition:
      /dev/sda1            Partition
      /dev/sda2            Partition
      /dev/sda3            Partition
    

    logs

    01/24/2018 07:39:03 PM
    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
    sda               0.00     0.40    0.00  777.60     0.00  3742.40     9.63     3.77    4.85    0.00    4.85   0.04   3.04
    
    01/24/2018 07:39:08 PM
    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
    sda               0.00     0.40    0.00  868.20     0.00  4256.80     9.81     4.18    4.82    0.00    4.82   0.04   3.44
    
    01/24/2018 07:39:13 PM
    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
    sda               0.00     0.40    0.00  696.60     0.00  3480.00     9.99     3.49    5.00    0.00    5.00   0.04   2.88
    
    01/24/2018 07:39:18 PM
    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
    sda               0.00     0.40    0.00  586.40     0.00  2907.20     9.92     3.03    5.17    0.00    5.17   0.04   2.48
    
    01/24/2018 07:39:23 PM
    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
    sda               0.00     0.60    0.00  490.60     0.00  2472.00    10.08     2.54    5.18    0.00    5.18   0.04   2.08
    
    opened by elliottneilclark 26
  • Add a new message type

    Add a new message type "bulk_pull_blocks"

    This patchset adds a new message type "bulk_pull_blocks" (0x09) which allows one to request from a node a range of blocks (min_hash to max_hash). Alternatively, the checksum for a range of blocks can be requested to determine if it is likely that there are new blocks in that range that need to be pulled.

    Further, a limited number of blocks can be requested by specifying a non-zero "max_count" argument.

    opened by rkeene 25
  • New Qml GUI implementation

    New Qml GUI implementation

    This is new Qml GUI implementation (see #384 ), rebased to include last changes from main repo.

    I'm opening a pull request to not let it diverge to much from main codebase, and because even if not 100% complete almost all functionality is implemented.

    Missing parts (advanced tools) are available by showing old GUI via a button inside settings panel.

    opened by rainbyte 23
  • Version 11+ makes Windows 10 unusable / memory leak

    Version 11+ makes Windows 10 unusable / memory leak

    Description of bug:

    Wallets starts briefly, then freezes, database size stays the same

    image

    Steps to reproduce the issue:

    1. Nano Milestone 11 on Windows on a fresh start (deleted database files)
    2. Main window hangs and werfault.exe process starts using 100% of CPU (on one core)

    Describe the results you received:

    Windows Error Reporting starts using 100% (on one core), and is unkillable. image image

    the only way to stop this is forcefully restarting the computer (taskkill can't kill it)

    image

    image

    Describe the results you expected:

    It works like previous versions

    Additional information you deem important (e.g. issue happens only occasionally):

    Happened every time, from the 3 times I tried

    Environment:

    • OS information: Windows 10 x64
    • Node version: Milestone 11

    logs

    [2018-03-23 17:37:44.065215]: Bootstrap stopped because there are no peers
    [2018-03-23 17:37:44.065215]: Bootstrap stopped because there are no peers
    [2018-03-23 17:37:44.065215]: Bootstrap stopped because there are no peers
    [2018-03-23 17:37:44.065215]: Bootstrap stopped because there are no peers
    [2018-03-23 17:37:44.065215]: Exiting bootstrap attempt
    [2018-03-23 17:37:44.510075]: Beginning pending block search
    [2018-03-23 17:37:44.510075]: Pending block search phase complete
    [2018-03-23 17:37:45.515069]: UDP Receive error: No connection could be made because the target machine actively refused it
    [2018-03-23 17:37:47.737077]: Beginning pending block search
    [2018-03-23 17:37:47.737077]: Pending block search phase complete
    [2018-03-23 17:37:49.068256]: Starting bootstrap attempt
    [2018-03-23 17:37:49.238260]: Connection established to [::ffff:192.99.176.122]:7075
    [2018-03-23 17:37:49.246260]: Connection established to [::ffff:192.99.176.121]:7075
    [2018-03-23 17:37:49.246260]: Connection established to [::ffff:165.227.201.217]:7075
    [2018-03-23 17:37:49.248260]: Connection established to [::ffff:144.217.167.119]:7075
    [2018-03-23 17:37:49.274260]: Connection established to [::ffff:159.89.143.80]:7075
    [2018-03-23 17:37:49.276261]: Connection established to [::ffff:138.68.2.234]:7075
    [2018-03-23 17:37:49.304261]: Connection established to [::ffff:139.162.199.142]:7075
    [2018-03-23 17:37:49.322262]: Connection established to [::ffff:138.201.94.249]:7075
    [2018-03-23 17:37:49.402263]: Invalid size: expected 64, got 0
    [2018-03-23 17:37:49.404263]: frontier_req failed, reattempting
    [2018-03-23 17:37:59.094699]: Error initiating bootstrap connection to [::ffff:89.64.59.63]:10025: The I/O operation has been aborted because of either a thread exit or an application request
    [2018-03-23 17:37:59.094699]: Error initiating bootstrap connection to [::ffff:192.81.216.141]:7075: The I/O operation has been aborted because of either a thread exit or an application request
    [2018-03-23 17:37:59.094699]: Error initiating bootstrap connection to [::ffff:54.246.128.136]:7075: The I/O operation has been aborted because of either a thread exit or an application request
    [2018-03-23 17:37:59.350706]: Connection established to [::ffff:45.76.92.115]:7075
    [2018-03-23 17:37:59.352705]: Connection established to [::ffff:212.47.237.7]:7075
    [2018-03-23 17:37:59.356701]: Connection established to [::ffff:188.226.155.250]:7075
    [2018-03-23 17:37:59.484704]: Connection established to [::ffff:172.104.32.150]:7075
    [2018-03-23 17:38:01.985391]: Found a representative at [2001:41d0:8:d85f::1]:7075
    [2018-03-23 17:38:02.857584]: Found a representative at [2600:3c03::f03c:91ff:fee5:29e]:7075
    [2018-03-23 17:38:04.403929]: Received 303959 frontiers from [::ffff:192.99.176.121]:7075
    [2018-03-23 17:38:09.642300]: Found a representative at [::ffff:139.59.31.249]:7075
    [2018-03-23 17:38:10.134317]: Found a representative at [::ffff:35.200.122.8]:7075
    [2018-03-23 17:38:10.548320]: Completed frontier request, 468710 out of sync accounts according to [::ffff:192.99.176.121]:7075
    [2018-03-23 17:38:10.931790]: Found a representative at [::ffff:178.22.66.84]:7075
    [2018-03-23 17:38:10.932791]: Found a representative at [::ffff:178.22.66.84]:7075
    [2018-03-23 17:38:11.020796]: Requesting account xrb_33de47sgua1pup78kw4ye8nz7ujdz47oucfgco1zb95n8n7hkbq1x81z3md6 from [::ffff:165.227.201.217]:7075. 468709 accounts in queue
    [2018-03-23 17:38:11.020796]: Error receiving block type End of file
    [2018-03-23 17:38:11.021797]: Error receiving block type End of file
    
    bug 
    opened by pocesar 22
  • QTimers dependency requires newer Qt?

    QTimers dependency requires newer Qt?

    Since https://github.com/clemahieu/raiblocks/pull/508 we started failing builds on Trusty.

    We now have compilation errors like the one below.

    @CathalT thanks so much for your contribution. Would you be willing to rework the change with a CMake feature test or some other way to make sure it still builds on older distros?

    
    /usr/include/qt5/QtCore/qtimer.h:82:17: note:   candidate expects 4 arguments, 2 provided
    ../rai/qt/qt.cpp: In lambda function:
    ../rai/qt/qt.cpp:1415:6: error: no matching function for call to 'QTimer::singleShot(std::chrono::duration<long int, std::ratio<1l, 1000l> >::rep, rai_qt::settings::settings(rai_qt::wallet&)::__lambda73::__lambda74)'
         });
          ^
    ../rai/qt/qt.cpp:1415:6: note: candidates are:
    In file included from /usr/include/qt5/QtCore/QtCore:77:0,
                     from /usr/include/qt5/QtGui/QtGuiDepends:2,
                     from /usr/include/qt5/QtGui/QtGui:3,
                     from ../rai/qt/qt.hpp:9,
                     from ../rai/qt/qt.cpp:1:
    /usr/include/qt5/QtCore/qtimer.h:81:17: note: static void QTimer::singleShot(int, const QObject*, const char*)
         static void singleShot(int msec, const QObject *receiver, const char *member);
                     ^
    /usr/include/qt5/QtCore/qtimer.h:81:17: note:   candidate expects 3 arguments, 2 provided
    /usr/include/qt5/QtCore/qtimer.h:82:17: note: static void QTimer::singleShot(int, Qt::TimerType, const QObject*, const char*)
         static void singleShot(int msec, Qt::TimerType timerType, const QObject *receiver, const char *member);
                     ^
    /usr/include/qt5/QtCore/qtimer.h:82:17: note:   candidate expects 4 arguments, 2 provided
    ninja: build stopped: subcommand failed.
    
    bug help wanted 
    opened by androm3da 21
  • Remove PoW requirement on RECEIVE tx

    Remove PoW requirement on RECEIVE tx

    Discussed in Issue 360

    Requiring PoW on RECEIVE txs puts a large burden on services that accept XRB deposits, and if a user were spammed with penny-sends then it is difficult for them to clean it up.

    Having a min PoW on RECEIVE txs makes it pretty efficient to identify and discard spam quickly, however it does not prevent spammers from broadcasting underworked RECEIVE txs. Because RECEIVE txs must match 1:1 with SEND txs there is no risk of ledger spam on the RECEIVE side. Only SEND can be the source of ledger spam. PoW does not prevent network spam.

    Instead of using PoW as one of the first criteria to validate RECEIVE txs, a bloom filter can be used first to confirm that the SEND being claimed is still pending. The bloom filter will have to match for all pending SEND's. If the bloom filter check returns "this RECEIVE's SEND is definitely not still pending" then this spam RECEIVE is discarded. If the filter says it may still be pending then this spam check is passed.

    There may be slightly better ways to implement this, or maybe it already is implemented, but the gist of it is that PoW on RECEIVE txs is hurting a whole lot more than it is helping so it should be disabled.

    opened by triwebb1 21
  • Unable to receive pending funds

    Unable to receive pending funds

    Hello,

    Installed RAI Desktop Wallet, created password and backed up seed. Got account address and sent some XRB to it. It was very far out of sync and even after days of running non-stop it did not catch up even though it's installed on SSD and fast network. I downloaded latest ldb and replaced. I then imported my wallet using seed. After import my previous account address is no longer shown in the wallet. The accounts page does however show my pending deposit in the Wallet Pending section. The use of the more recent ldb allowed my local wallet to finish syncing with the blocks, still no change in accepting my funds and again I still cannot see the original account address in the GUI wallet.

    As a troubleshooting step I started using RPC commands. Account list shows the original account address, it shows the pending funds but attempting to run a receive command on the transcation returns this: { "block": "0000000000000000000000000000000000000000000000000000000000000000" }

    Any ideas?

    opened by altmank 21
  • Telemetry refactor

    Telemetry refactor

    This PR significantly simplifies the telemetry class. The previous implementation was quite complex, with deep nested callbacks, which led to some subtle and hard to debug bugs. Hopefully this implementation will be less susceptible to such behavior.

    One major behavior change is that instead of only replying to telemetry requests, we now broadcast our own telemetry periodically. This can be taken further in subsequent node versions, removing the need for active telemetry requests will remove additional complexity from message handlers that now have to do additional checks just to handle telemetry replies.

    For reviewing it's probably easiest to view the end result code instead of comparing diff, as majority of the class has changed.

    opened by pwojcikdev 0
  • Remove sudo from buildci.sh and re-test release process

    Remove sudo from buildci.sh and re-test release process

    The script ci/build-ci uses sudo to gain root access. We should not need to do that just to build our software.

    TODO: remove the sudo and test that the release process is not broken

    REF: https://github.com/nanocurrency/nano-node/blob/754ee4abf6fb619257774c757a45205e9ef45391/ci/build-ci.sh#L67

    quality improvements exclude from changelog 
    opened by dsiganos 0
  • Continuous backlog population

    Continuous backlog population

    Backlog population is a process in which a node scans all accounts in the ledger, with or without any confirmed blocks, and forwards (activates) those accounts which do not have all their blocks confirmed to election scheduler for prioritization and eventual queuing in proper bucket. It is necessary to do this periodically, because the amount of space in each bucket is limited (currently ~2000 entries) and number of accounts needing confirmations can be much higher than that, especially during bootstrap or network spam attack.

    The problem with current implementation is that this process runs every 5 minutes and scans the whole ledger at once, leading to situations where we run out of accounts to prioritize before the next run has started. This is especially visible during bootstrapping, a graph showing such situation is included below. We can clearly see the bumps in AEC occupancy where prioritization queue is filled, followed by periods of idleness when priority queue is emptied:

    Screen Shot 2022-11-15 at 21 15 39

    This PR fixes that by modifying the way the ledger scan is done. Instead of 5 minute interval, we run the scan all the time (unless disabled by setting frontiers_confirmation = disabled node config setting), but we throttle the rate at which the scan is done to limit consumption of node resources. The rate and frequency is controlled by two new node-config.toml settings: backlog_scan_rate and backlog_scan_frequency. By default it scans 10000 accounts per second divided into 10 batches, so 1000 accounts per batch. This is rather conservative and should be later adjusted with feedback from beta node operators (before this PR we dit it in batches of 64k).

    The result of this PR is the AEC that stays full almost all the time (except the initial phase of the bootstrap):

    Screen Shot 2022-11-15 at 21 15 53
    opened by pwojcikdev 4
Releases(V23.3)
  • V23.3(Jun 13, 2022)

    CHANGELOG

    V23.3

    Full Changelog

    Fixed Bugs

    |Pull Request|Title
    |:-:|:--
    |#142|Improves the vote processor class and limits its flush() |#152|Vote hinting reenable

    Other

    |Pull Request|Title
    |:-:|:--
    |#3835|Unchecked memory
    |#152|Crypto++ 5.6.5
    |#145|GUI: seed warnings, several tooltips, balance in Account viewer
    |#142|RPC receive

    |Commit|Title
    |:-:|:--
    |17250767|Fix use after delete in cleanup_election()
    |a17157e0|Merging identical code branches for convenience ::put function.
    |00610099|Adding a memory container for blocks once the initial bootstrap threshold is reached. Blocks are pruned in fifo order.
    |9b5bae62|Reimplementing nano::unchecked_store::get in terms of unchecked_store::for_each and removing backend-specific variants.
    |b4ce6c41|Converting functions on unchecked_map that return iterators to instead use for_each with a functor to execute on each result. This prevents iteration details from being exposed externally.
    |2fd16c79, 57c2210e|Removing unchecked.for_each_par as it's effectively unused.
    |73a631c3|Remove a debug assert that crashes the node on receipt of zero node ID
    |65c8ae9e|Bugfix: correctly check for magic bytes and network in message header

    Additional binary releases:


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

    Below are the sha256 sum hashes for version 23.3
    Signature Verification can be run against thsfs.asc in source repo (etc/gpg/)
    
    20057926a464c25090d69c9ce783d8211d91ed94fa0e3772340f8fb7ba1604f7 nano-node-23.3.0-Darwin.dmg
    de91d92b479da5d97c5934302fc88f66c034c9e3b6dcdc251e4665832eb4c628 nano-node-23.3.0-Linux.deb
    5873f160cd4da3ba59267e2f8338a265a294669391529d9b00bf1e0b61a8092e nano-node-23.3.0-Linux.tar.bz2
    B62EDE96DD7D980B44AAC10840FAF950104D0C133BE66107DAE13D7D153D2453 nano-node-23.3.0-win64.exe
    6F4775BFCF6009221A3C4BE9378B3F2BE2CD14F330CA947F4AC7F44E84EDEF43 nano-node-23.3.0-win64.zip
    -----BEGIN PGP MESSAGE-----
    
    owF1km1QFWUUxy8KqFsOjDbYaE6LmkHKvbvP8+wbgnn3viilpKhB4JTP7j4La3Iv
    3r1XwHgZM3CgqBxSU8fRNMJohHHSuOLoaE5Ok05NEKaJigPamIovJBRxofWDnxy/
    nA/nnP/v/M+Z8+nEsTYqaqxr7K1PPKwRdfamYlMaN8XJZK2/mMYBQgcLCG0WYMDx
    tBkqpAuwWUBMWvcH6PUkYBp+Hw2gHVLLjXwfDoYswZskYOiGioOPair20QqhAyEf
    jfOx4TODFtDUTTs2Vdrw0aY/FFCtOiny00kkqDryi/IdyRQFGIYTJMBjxCMVcIzE
    aLykSioRRKiJgGU1iSWahHTMECgIACJGF3VFUDDLM0gXaB/2+VN8fo2kPLJnZ1Lc
    OFBs+OxaYT6lEcnSAwUJkoY5TRJUToIIMkBXRVHneZWBSJUIVHhN1azpLEE8z4kQ
    EAWpPBCfhC82fKESu0YUihMFqFseVA1pGCqYs5YQCNBFCEUMeA4DyYJJUGI5IGmS
    wjCKzhJG4VksMhIgT2MHccCubACUzAOP2yPxbrfglkRGRsjpdLGMiBiv0ytxDMsg
    N+NiIZQ9PM8ygtvpYaHVy3LQDRAHn+RbV+GRnZQQivciQcjmZK/LyzOWGcA6oQvJ
    HgkKogy9QPYAl5tFXggZl1NCghc5XVZAHhFZnrzoqfANRhFVMwZG26Io2/SExOj7
    FRWx/mMb5ahpo1mPXy9mzKO/s1ET4h9n3uLjbbunDbaGMib8HWyd73htS3pp1r6c
    6o8Svk1NnTVQWN6tvFyZd+jOEfk/cmn+lfMNrz9/NPG5zfOKt0zak/v9oviV3YC7
    PH1ZdFnlveUdM7eFs29Kdfud8KUbuzJ+bVAW3f1xpDmm7u0+adO2P9jbsVfVVBBo
    m/XixsxrTfLqg5Gh8L41rs/opvi5Z7IP739o1lbvPFk+eXfm3L6uazHPzKvJfCim
    ZZ5wvNDfc2b9lY3vZ8ddZpWWOVkrby5alZP0ywcc//mQ2ZnRnyv06mur7uPbeSt6
    imf0U+Gk8ZFjQx0NF5u45tGr/wz3sg1a9/FgyxFj5pTFK/1d4b3Dk/v22DKOT07r
    jG6OWv3qQjm9ftKeJUUpZVNbf9qhXuh42F46byBr4PQ7g0fXiB2mY+rZccPfTRyc
    4e7c9WfeG6mHumuFhFJP6o1lS8ehBi5knPqSDS/s4NLiIk3XT92dYr+VAu43Lq6v
    XLagOoea2JNe3v7g3TmVjWerxz9orx+5TifvPRXeced3o6L5ZFX7uezRSb0lJ5a8
    csk7OJTXtsp/uGJ72Q9r69t+RlPT1S6jcOlw73lb0rProtetqTmY0bhp62/chzPK
    085Xd2a1nNmdFBepEh1/4dkfX/jqwQqcmLx8dl3/VriA5H7d9U3kIn33QH/xvZ2e
    CKoZ1k7/e+/ce18cqE0uGHWOcAtiV2xv71r4Pw==
    =dpMI
    -----END PGP MESSAGE-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-node-V23.3-Darwin.dmg(24.38 MB)
    nano-node-V23.3-Darwin.dmg.sha256(139 bytes)
    nano-node-V23.3-Linux.deb(17.21 MB)
    nano-node-V23.3-Linux.deb.sha256(137 bytes)
    nano-node-V23.3-Linux.tar.bz2(15.15 MB)
    nano-node-V23.3-Linux.tar.bz2.sha256(141 bytes)
    nano-node-V23.3-win64.exe(37.76 MB)
    nano-node-V23.3-win64.exe.sha256(93 bytes)
    nano-node-V23.3-win64.zip(43.97 MB)
    nano-node-V23.3-win64.zip.sha256(93 bytes)
  • V23.1(May 19, 2022)

    CHANGELOG

    V23.1

    Full Changelog

    Fixed Bugs

    |Pull Request|Title
    |:-:|:--
    |#3828|V23.1 Cumulative patch

    Implemented Enhancements

    |Pull Request|Title
    |:-:|:--
    |#3816|Node ID persistence

    Other commits

    |Commit|Title
    |:-:|:--
    |fef94e36|Setting CPACK_PACKAGE_VERSION_MINOR value to reflect V23.1.0.0


    Additional binary releases:


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

    Below are the sha256 sum hashes for version 23.1
    Signature Verification can be run against thsfs.asc in source repo (etc/gpg/)
    
    556457314eae3dd6cf1538743b8d15aa23fb19169d6c2c3efebdcf9540eb537f nano-node-23.1.zip
    7ae22cdfbd4056053bb9bbd733b79e86c2cce849f9ff750118340af612a257c3 nano-node-23.1.tar.gz
    e2affdeb9635f7f35fa90c40b60aefc6429ca67f9c97e2748e49bce62f955edc nanocurrency-23.1-1.el7.src.rpm
    946a788782bc2be25994a56a2c93038231619544c9273a998a19070eda497c9a nanocurrency-23.1-1.el7.x86_64.rpm
    b386eeb85b0c3d8987dbd6ae450a196602dba962583b432a6c8426a64562c865 nanocurrency-debuginfo-23.1-1.el7.x86_64.rpm
    94ae49c4869376787cc161ee324d933584725aa820cfad9fc65c2934db6fb028 nano-node-23.1.0-Linux.deb
    aa7c67350bb18a232c3c1d083f7a110ad7f177025b821f4fd1266d49b1b374fb nano-node-23.1.0-Linux.tar.bz2
    C1C8F86C36480DC1F5AF0602C4877F655205EFE99DCB69264CB38ED3A075FC25 nano-node-23.1.0-win64.exe
    8814DB1F621615832F7FBB4C16AC8CD7BF0A2E377B05E323F8FE3EF0E5B31A4A nano-node-23.1.0-win64.zip
    922aa8020a4225cd3c1a961badcb5115d9e06ce06dea9b98e1a1d5b243428793 nano-node-23.1.0-Darwin.dmg
    -----BEGIN PGP MESSAGE-----
    
    owF1lGuMjFcYx3ddlh13bbfSrc2Qja7qjvfcz0E1cyWNkC6l2N3uOec97+y4zIyZ
    HXY1FutSrBShSIOiLtFSl4YEFaxq0FKVVLQN0hZR10UrFbe+K/GhFV/Oh/fJ+/s/
    z///nLOwXfMsT3bzYPOrC8Iglv3dFZWl6o/WBcy4xCSvTBlvVaXxpislJNSbzoz3
    Vsp0pUl7nUTKO9Gk0rFE3AuRD3iGxqJxWZVxfxhuUjEnpmVVU03LuFcZbyoT98qo
    jMXTVS4w7aR9Mq29sbg3nciktFs3yYS3yFTp3tFktHdPj4cQiglDABtpkG1T7QCC
    OMNIcRsQKSFyFBCACrcENTKOUbZ2BMGWUQQxxxuX8URxPGGb4qb2fJNjSQ+TBkJt
    O8rGFqEWQUoJpWyGkGLC8CaQNhwLRzgOIxYAHGFLOhRAd3qm0f+ZVTLli072GCgd
    xzZKUEQc5riHFJbGlqKWNI6mGAotKXOEFsxAhrnBQmlDodsuMbZ+gtWZVMrEdc0T
    cjHwmXHMl05pXyo53iMwlYxzxqHSUBlIhMCSUAm1QBbiEAEK3MmxFpAhKQSXQFjM
    MrbEgmkhnytQzen7FD/RUIhTYxQnytLI5oIzW9lUGkwsl0apBW0lBYWEI4URlFRz
    DKl0Q6JQc0r+q+G6kYnG4k7iOWpu/64JGnMqEKOMM63dGYxBENsCIcIxg27IHFra
    kbZwTSQaCoRtRR1lQf7/JKziQbF4ptrn6nqkZJoyRCylAHf3xN0ODWyLI4dJACxp
    MwcwZkGiOAQOdmwAKbXdSIBCDDvqeeymtNVk6AmCII9wGkQUcysUBBHij1iuP0HM
    GYtQQqBFwpGwEKFggApIcTCAeDiE/BYjkSAkz/InxeKuL6baeDgHOBQAEQpdO1yr
    YYRFAgEcBNQf5MEQC0QsPwwjxgKuBoIowiNhFI5YYRJAwI/9z2M3bb+A0HXUgpbE
    EBJtu664gQIlba0IAMQWxqLauDfDNlIowQ2QwCYKYoQhZ+KZ9beKQzLl8n32+Khn
    bjPUIivbk9U1r1uLW7W1OYm90wPZ+Y9Lnj4sLZs1vSpZntyOT78cf7nDo6IJox82
    LIwkN5TlF/ZttbJ119MbztzdWns/70HSVtWfd1zceP7MRfv+sj+H77xyZED/WScy
    a1bPKF1dc/vxrpXV9OGlspFFpeZAuNDsr7na4ofyL14L9595FPTofOLooKLpjeVv
    9TpRerX04MFf2n9bUtD9k94t6l4oHJAztmDP3mh939JvNvBVU/U8+3KP2ndOF3+9
    Hac7HDt1oE1uw46TpYdVIf/+XEHy1pd9Xu+8tW3Px3Pr+4V/m76jblsvdHtLy5oh
    FW+c/TivbtSlfg37pl0eyLqtm7fxpwl/tK3ss97nnz+lsWzmiM0Plm0UK268e+if
    KeVbFtwRB7tk17QqLwgl0c8fRpbqwZlwu0M6NOTcEDLGnuNpvyLnxfm5g4pfOjVg
    T2Vy4oC2m85fgnnT171dkVlyc32nzQNHLP6sAdeOra3LnZofH1TyQWPjpLWpwYvu
    gd0l/u73L83dtS3p3HmPJCcc+st3cuboi78u399p37VhP+b3uHU8u2hXz1ZFVxq6
    UVKMIrMrzs8u9/6d/GrY9f35M+blv5k+eTh++drVR5seHavfe2d3dv7IaamWyysu
    9K8813gwZ1KzDrW3d24curTwRvdX+pKSa2O2rDzbLX6i5M6YXXfDZbMWD2vTJYdd
    6P2Rv09ZclzlqkU0umPJzTnHJodebSgYeC+xyckrPFKx5vdPx3lWhwu2bt4+qnXJ
    rdFrlyVOX8/9Fw==
    =/ugz
    -----END PGP MESSAGE-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-node-V23.1-Darwin.dmg(24.35 MB)
    nano-node-V23.1-Darwin.dmg.sha256(139 bytes)
    nano-node-V23.1-Linux.deb(17.18 MB)
    nano-node-V23.1-Linux.deb.sha256(137 bytes)
    nano-node-V23.1-Linux.tar(15.18 MB)
    nano-node-V23.1-Linux.tar.bz2.sha256(141 bytes)
    nano-node-V23.1-win64.exe(37.75 MB)
    nano-node-V23.1-win64.exe.sha256(93 bytes)
    nano-node-V23.1-win64.zip(43.95 MB)
    nano-node-V23.1-win64.zip.sha256(93 bytes)
    nanocurrency-23.1-1.el7.src.rpm(24.31 MB)
    nanocurrency-23.1-1.el7.src.rpm.sha256(177 bytes)
    nanocurrency-23.1-1.el7.x86_64.rpm(6.30 MB)
    nanocurrency-23.1-1.el7.x86_64.rpm.sha256(186 bytes)
    nanocurrency-debuginfo-23.1-1.el7.x86_64.rpm(1002.51 KB)
    nanocurrency-debuginfo-23.1-1.el7.x86_64.rpm.sha256(196 bytes)
  • V23.0(Jan 17, 2022)

    CHANGELOG

    Release V23.0

    Full Changelog

    Node Configuration Updates

    |Pull Request|Title
    |:-:|:--
    |#3032|Secure Websocket support and certificate config improvements
    |#3531|Rep crawler weight minimum
    |#3377|Removing deprecated lmdb_max_dbs config option
    |#3282|specify ip notation for preconfigured peers

    RPC Updates

    |Pull Request|Title
    |:-:|:--
    |#3412|Implement "accounts_representatives" RPC (#3409)
    |#3439|Add receivable along with pending to RPC responses (#3411)
    |#3429|Add "confirmed" field to "account_history" RPC response (#3424)
    |#3398|Add deprecation output to "history" RPC (#3397)
    |#3392|Update RPC & QT Wallet to the new units #3386
    |#3387|wallet_pending and accounts_pending handle empty results differently
    |#3343|Fix RPC "active_difficulty" returning empty string as "difficulty_trend" (#3323)
    |#3337|Add "successor" field to RPC "block_info" & "blocks_info"
    |#3333|Improve delegators rpc by adding "count", "start", and "threshold" parameters (#3330)
    |#3277|Extend 'wallet_info' RPC command

    IPC Updates

    |Pull Request|Title
    |:-:|:--
    |#3446|Have CMake copy Flatbuffers schema files to output dir to simplify dev

    CLI Updates

    |Pull Request|Title
    |:-:|:--
    |#3475|Node flag to disable calling add_initial_peers function
    |#3474|Add some flags to the command line options list
    |#3465|Fix broken cli commands: wallet_create, wallet_list (issue #3447), diagnostics (issue #3452) and other CLI commands
    |#3410|Network selector

    Developer Wallet

    |Pull Request|Title
    |:-:|:--
    |#3619|Update images for README and QT wallet to be new symbol
    |#3546|Fix crash in nano_wallet when ran with --config option
    |#3437|Replace "pending" with "receivable"/"ready to receive" in QT wallet (#3411)

    Developer/Debug Options

    |Pull Request|Title
    |:-:|:--
    |#3582|Include election.confirmed outcome in log
    |#3438|Replace "pending" with "receivable"/"ready to receive" in node logs (#3411)
    |#3369|Remove 1 sec socket timeout in dev mode (becomes 2 sec as in normal m…
    |#3297|Split election drop stats to be either overflow or expired
    |#3310|Warn if the limit for open FDs is lower than recommended

    Fixed Bugs

    |Pull Request|Title
    |:-:|:--
    |#3623|Modifies the silent connection checker to inspect sever-side incoming messages only
    |#3593|Adding detail string for request_underflow.
    |#3590|Check and track request underflows in bootstrap/realtime message processing.
    |#3591|Specifying macos toolchain explicitly to 10.15 rather than tracking latest.
    |#3587|Fixes the early drops of not yet timed out connections
    |#3568|Add wallets::start() function for deferred start.
    |#3563|Fix a couple issues found with TSAN and add a suppression for Crypto++
    |#3556|Disable intermittently failing UT node.vote_by_hash_republish
    |#3558|Disable intermittently failing UT bootstrap_processor.push_diamond
    |#3560|Disable intermittently failing UT rpc.send_epoch_2
    |#3550|Fixes/splits vote_processor.no_broadcast_local
    |#3511|Handle SIGABRT and SIGSEGV on Windows
    |#3275|Fix for RPC stop command (#3191)
    |#3500|Endianess fix for vote timestamp field (does not affect x86)
    |#3502|Fix handling of SIGSEGV and SIGABRT in nano_node
    |#3459|Fix a crash that would sometimes happen in debug builds at handshakes
    |#3445|Fix fill_keepalive_self so the low index entries aren't clobbered.
    |#3442|Remove node_id_handshake_sockets as unneeded.
    |#3428|Fixing QT ratio selection
    |#3422|Fix daemon_config active_network.
    |#3380|Adding 'explicit' specifier to uint256_constructor for strings.
    |#3379|Removing incorrect TCP assert
    |#3375|Updated diskhash repo and code version
    |#3340|Fix counting of voting representatives #3339
    |#3315|Fix TCP accept handling when max incoming connection limit is reached
    |#3311|Remove election blocks () debug assert
    |#3298|UPnP leases issue

    Implemented Enhancements

    |Pull Request|Title
    |:-:|:--
    |#3569|Refine election scheduler lock.
    |#3567|Turns off sub-network connection limiting for IPv4
    |#3564|Improve and simplify a number of network limiters
    |#3548|Adding duration to vote timestamps.
    |#2921|Deadline timer cleanup
    |#3544|Vote timestamp encapsulation
    |#3540|Remove election limiter from call site in confirmation height processor
    |#3541|Updating miniupnp to v2.2.3
    |#3507|Brings back broadcasting blocks on process_live
    |#3388|Refer to empty/null accounts as nano::account{nullptr}
    |#3443|Remove callbacks passed through start_tcp
    |#3461|Fix the bootstrap request queue processing
    |#3420|Remove static instantiation of network_constants
    |#3414|Removing legacy path from nano::working_path
    |#3413|Removing static initialization of nano::network_params
    |#3406|Converting sever static initializations of nano::network_params to references
    |#3408|Removing static mutex for the random pool
    |#3403|Changing nano::block_store_partial to hold nano::ledger_constants by reference
    |#3402|Passing nano::ledger_constants in to nano::ledger
    |#3394|Moving networking related parameters off of the node config
    |#3391|Remove nano::genesis class
    |#3383|Cleaning up genesis_dev constants
    |#3368|Convert static network id code to instance code
    |#3324|Depth-first search ledger walking
    |#3364|Message sink interface
    |#3358|Fix half principal rep check
    |#3280|Remove election restart by difficulty
    |#3304|Increase soft limit for number of open file descriptors
    |#3308|Increase tcp_incoming_connections_max default value
    |#3281|Prevent not processed blocks addition to confirmed elections list

    Build, Test, Automation, Cleanup & Chores

    |Pull Request|Title
    |:-:|:--
    |#3670|Update live rep weights file for V23
    |#3671|Setting version for release.
    |#3566|Update beta rep weights file for V23.0
    |#3565|Update live rep weights file for V23
    |#3547|Removing old (disabled) conflicts.add_two unit test
    |#3545|Fix conflicts.add_two unit test
    |#3536|Disable intermittently failing unit test
    |#3532|Disable intermittently failing unit test
    |#3525|Include <csignal> for std::signal usage
    |#3526|Disable intermittently failing unit test
    |#3512|Disable (intermittently) failing unit tests
    |#3510|Improvements in const correctness and 'const' positioning
    |#3509|Fix Windows build (signal handling)
    |#3506|Formatting rules update -- indentation rules improvements
    |#3505|Add [[nodiscard]] attribute to node::process method
    |#3497|Possible race condition fix in ledger_walker.ladder_geometry test
    |#3488|Cleanup qt_system remnants (#3189)
    |#3353|Update FlatBuffers to release 2.0.0
    |#3492|Comment on_connection_requeue_delayed
    |#3487|Minor improvements to slow_test
    |#3486|Redesign CI format check/update scripts according to review
    |#3470|Fix cmake-format-all.sh script + friendlier xargs usage
    |#3468|Add systests to CI and fix for rocksdb mode (issue #3447) (issue #3452)
    |#3479|Fix unit test case node.search_pending_pruned
    |#3477|Fix for unit test rpc.epoch_upgrade #3476
    |#3469|Fix Windows build
    |#3467|Fixing OSX formatting issues.
    |#3462|Improve clang-format detection & enforcement
    |#3460|Make code formatting compliant with clang-format 12
    |#3454|Require fixed version of clang-format
    |#3450|Fix CI clang-format script: tell if clang-format cannot be found
    |#3441|Removing null checks for nano::bootstrap::socket
    |#3440|Removing unused variable channel_tcp::response_server
    |#3435|Convert nano::bootstrap_connection::connections to a reference
    |#3434|fix failure to build with GCC11
    |#3433|fix failing build with boost >= 1.76
    |#3416|Update major version to 23 and add pre release version 99
    |#3418|Remove qt_system target we dont need it or use it
    |#3415|test_common not required for qt only for qt_test
    |#3407|remove errexit ghcr.io has some edgecase rules, and isnt required for…
    |#3405|Fix typo on CLI online_weight_clear success message
    |#3395|update clang-format checks for full history
    |#3396|Remove wezrule from security policy
    |#3393|Update README.md
    |#3384|Update CMakeLists.txt
    |#3055|Weekly Coverage Runs to coveralls.io
    |#3381|Cleanup of genesis constants within ledger_constants
    |#3373|Remove load_test from github CI
    |#3374|Fix ledger_walker.genesis_account_longer unit test on macOS
    |#3372|Disable compilation/usage of diskhash on Windows
    |#3370|Remove tautology: send_buffer was called on channel so it must be non-null.
    |#3371|Fix build after merging PR 3324
    |#3365|Fix race condition in unit test websocket.bootstrap
    |#3359|Moving socket type entirely in to nano::socket class.
    |#3363|Double unit test timeout in github CI
    |#3361|Fix for unit test active_transactions.vote_replays #3360
    |#3362|Fix for unit test bulk.offline_send
    |#3332|System initializer
    |#3357|Removing unused constants from enumeration.
    |#3356|Simplify RPC tests response check
    |#3352|Update GoogleTest to release 1.11.0
    |#3354|Update Crypto++ to release 8.5
    |#3347|Simplify RPC tests initialization
    |#3351|This disallows passing in a nullptr socket in to bootstrap_server.
    |#3350|Rename socket::type_t
    |#3345|fix unit test socket.max_connections
    |#3336|Fix for network.peer_max_tcp_attempt
    |#3344|Fix unit test node vote republish
    |#3341|Fix code formatting
    |#3338|Fix unit test deferred dependent elections
    |#3328|Fix for active_transactions.pessimistic_elections unit test
    |#3326|Removing redundant check in telemetry limiter.
    |#3329|Block store break up
    |#3334|Don't reference get_available_port from within the node lib.
    |#3331|Moving the check "using_rocksdb_in_tests" on to rocksdb_config
    |#3327|Test case for max incoming tcp sockets limit
    |#3325|Unchecked store break up
    |#3318|Moves out peer methods from the block store class
    |#3317|Moves out pruned methods from block store class
    |#3319|Moves out confirmation height methods from block store class
    |#3320|Moves out final vote methods from block store class
    |#3306|Account store break up
    |#3316|Online weight store break up
    |#3309|Fix compilation failure on OSX.
    |#3307|Pending store break up
    |#3296|Election scheduler predicates
    |#3303|Fix build issue
    |#3286|Fix last contacted
    |#3302|Election cleanup cleanup
    |#3287|Frontier store break up
    |#3283|Simplify inactive_votes_cache_election_start test
    |#3279|Improve confirmation_height.gap_live core test

    Other

    |Pull Request|Title
    |:-:|:--
    |#3595|Update CPACK_PACKAGE_VERSION_PATCH for V23.0RC2
    |#3378|Enable blank issue with preference noted for using pre-set templates
    |#3278|Update deploy-docker.sh

    |Commit|Title
    |:-:|:--
    |0176d6c7|Double max_peers_per_ip and max_peers_per_subnet (5 -> 10 and 20 -> 40)
    |242e9e38|Updating version for V23.0RC1


    Additional binary releases:


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

    Below are the sha256 sum hashes for version 23.0 release artifacts
    Signature Verification can be run against clemahieu.asc in source repo (etc/gpg/)
    
    3ad1b447af41e5c15f0ab593211fd99c05d290ac99f17452d6e7ab87ffe6a64d  nano-23.0.tar.gz
    626d3859104e1a49a8d0246dfb961675570e87a6d829e14d07e7cbaecaac4037  nanocurrency-23.0-26.el7.src.rpm
    aac1ced1c6f1edcd640c5a3df2664b3b961f9fcfaf73647d9aff5c2479c779fc  nanocurrency-23.0-26.el7.x86_64.rpm
    6c9820e41e8d0dbfdfeda23d1f88ad824138ab5f89e34a51d98edb69b6fde336  nanocurrency-debuginfo-23.0-26.el7.x86_64.rpm
    2cd67cfda8b52b445a2173b7b46cbed1d7a60b9fbf46962a80774109b1204e31  nano-node-V23.0-Darwin.dmg
    d666f65af1136fe82f126ac5a25900ff680bf1343285566baca0fb1857809c0b  nano-node-V23.0-Linux.deb
    1f4ee8bffbfc05a843afdfe1711a014ac9003b67e0bd02038a57cc3018e27eca  nano-node-V23.0-Linux.tar.bz2
    31a1272dcdaa1d74966482ca04f775897204a6a13dc90e5e418a89bb6fadfbef  nano-node-V23.0-win64.exe
    2d1da2ada3d879dd455a90ff06d13f3c38cef2db6cd27959daeef7a4d66c6b5d  nano-node-V23.0-win64.zip
    -----BEGIN PGP MESSAGE-----
    
    owF9lD+IXFUUxkcTkX1gSCFTCIEbENRiJ/f/nwgSNAiCRSQQTGM4995zZh6ZfTO8
    N7O72S5FYEtBLaxWLCysxEKw0y5gKyZgYWMjWoqgSPTMmq3C2r537/ed8/s+7vvP
    nRk14zeW98T9n76OT333Sx7lcx+++jrOF3sCehSrGYphBtp5Max3xAyGGQ6CFr3Y
    xX5oF53QZiJFj3OEAfnKqiUoq6G53k47WK1Z4gb2LbUFVpvTBTqRUfTrTsAU2m5Y
    iTLHHZi1uJ7AUETbiWGx7gufweVCvIyrcmm6nF56pWkMVJWtDUBWoSvKkYTsktFK
    UU2pSFd1klBSIhWs09VjgBwDEXrwtgrRQbfY3gw8WUE/mR40XvtqoktKWlRgE8Qq
    tfWVcvLKB+eCxBjA16gTKltlwFAyYAEoVprwn2RZ9z125c6x9Lb2E5yHydCXSb/c
    afikKlhV8aSwluqtLA5MJe29zWZjRIkKAQXjbagJiFzRNqQSAv/4H4v96G95e+zi
    S4paIoPhDWqmSlhBm6ooRuDprTKRYVFMaCw4VVPEmn3Knioa409cvk2PfSrm9bTt
    aHGao+ZVQqEKMTvNsTjQKpgcsvUl876VscmcKJP1yWuIMgSrZMpKM2yjHqfRLSpu
    3zj2uAr9XttN6s60qd578g5IKeMJoyalPTA37ZKURD7KTMpYo6Nz3mcoICmr6EKU
    XIT8pPjbbbfen/BWjSKLGDPxZFwZiNbABpcKSoFUlvsjpck+oMxcBsncXCjFSBVR
    B07+NO1NpfKBbowCpYPmqAGYgk2cc9Q8oKUQXEyB9wcPylR2QseZRYgpcxLAvUN6
    Up+pMHTcx0YzV9BQuT8xpFqtc5CYh/RVGTLFxIKkOdhSdUguVUCkAJZ5Fp9dPU37
    oF02h+uzo3EzujC+ePby0Tvv/fbs6OJn525eOHkcnnmaX4a3Rs3W+ZMvH1wZ/YNf
    jj/furr15/yjv1776sEPf1x/+Ov3P+89+vGF5z++c+vNbz4ZPXrp0y+uvXj44Ghr
    73C2a/++f+3K7d3fx7dH9C4d6bsPz/wL
    =r6Vg
    -----END PGP MESSAGE-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-23.0.tar.gz(24.32 MB)
    nano-node-V23.0-Darwin.dmg(24.34 MB)
    nano-node-V23.0-Darwin.dmg.sha256(139 bytes)
    nano-node-V23.0-Linux.deb(17.18 MB)
    nano-node-V23.0-Linux.deb.sha256(137 bytes)
    nano-node-V23.0-Linux.tar.bz2.sha256(141 bytes)
    nano-node-V23.0-Linux.tar.bz2.tar(15.18 MB)
    nano-node-V23.0-win64.exe(37.52 MB)
    nano-node-V23.0-win64.exe.sha256(93 bytes)
    nano-node-V23.0-win64.zip(43.57 MB)
    nano-node-V23.0-win64.zip.sha256(93 bytes)
    nanocurrency-23.0-26.el7.src.rpm(24.30 MB)
    nanocurrency-23.0-26.el7.src.rpm.sha256(99 bytes)
    nanocurrency-23.0-26.el7.x86_64.rpm(6.33 MB)
    nanocurrency-23.0-26.el7.x86_64.rpm.sha256(102 bytes)
    nanocurrency-debuginfo-23.0-26.el7.x86_64.rpm(988.49 KB)
    nanocurrency-debuginfo-23.0-26.el7.x86_64.rpm.sha256(112 bytes)
  • V22.1(Jun 11, 2021)

    CHANGELOG

    Release V22.1

    Full Changelog

    Fixed Bugs

    |Pull Request|Title
    |:-:|:--
    |#3315|Fix TCP accept handling when max incoming connection limit is reached |#3298|Fix UPnP leases not being renewed in case of errors

    Implemented Enhancements

    |Commit|Title
    |:-:|:--
    |ac7a3e26|This change simplifies logic in the election scheduler.
    |03debef9|Increase soft limit for number of open file descriptors
    |874f0984|Increase tcp_incoming_connections_max default value


    Additional binary releases:


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

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA256
    
    Below are the sha256 sum hashes for version 22.1 release artifacts
    Signature Verification can be run against argakiig.asc in source repo (etc/gpg/)
    
    aa95c0590f9366043a451720dd5c60e07760ba9a3f075b1ce508c59dcaed33bd *nano-22.1.tar.gz
    1de53c226724364ba24285b554b714b2b19ace78f1ac28c176d8c40f86029097 *nanocurrency-22.1-25.el7.src.rpm
    9ac81a65f6d13d64c5b73614ceba53a2d94ddd108c251ea4c52ee771a41f988b *nanocurrency-22.1-25.el7.x86_64.rpm
    b65d150f6720b0e86f2b97be36c8a4f8c7b6f7f4d3691a73ed941b822fad6189 *nanocurrency-debuginfo-22.1-25.el7.x86_64.rpm
    ca62f12563244679521fa9f2fdbba5a07e008faabb6e59ced5961cfca1bb9f04 *nano-node-22.1.0-Darwin.dmg
    d106cde7a6dae3a71e2ce1f74ab3b47cba1eb119e9e4e6d98cd13a0e6ef76248 *nano-node-22.1.0-Linux.deb
    00fcf256f618e68dfb74f0c74f79815245365eb492a5a1482870bca4b5ad76b3 *nano-node-22.1.0-Linux.tar.bz2
    6D9DE27F0E1543E4F1AB82F5DFD08E6F177488D51E4F12F149D2639CD22731C3 nano-node-22.1.0-win64.exe
    4543A2FFE0DA19AB73673E718F811C9CD37334AE23B40FAB489883AC2D252739 nano-node-22.1.0-win64.zip
    -----BEGIN PGP SIGNATURE-----
    
    iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAmDZ9sUACgkQgERoJPn9
    Olq1Jwf/RDWWBpQNoG/ORKc8/Hu/rdchmafvoqKn4xxbpdX0m/2/DTqKWuRCUPI7
    +0hVZ4QE9Fp/8d+7uM0DT0CtGwcKgFwgxn81vMHlUnNqj8hXQ57aFQowBtL5deNS
    lBLuXupz3jbrZ/l/iRtJ6aXGOeI1W3+JUsL/pxBjNfxxi9qqF4+ONONDV33L5A7/
    N74iQcJK6+OVnyiutndx1V+/804XrjL+i532gz1joGa/Hi96lYtrN1foHAdD00iq
    ZNUoEE7j45yfba3huUR5HtmZiutw9yTjDgH3/pIx6xEfxzlDEDAelhdZnm9CTMhM
    wU1Ul2ujQZkIRLmGLw9ldHqTTovgKg==
    =uuH5
    -----END PGP SIGNATURE-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-22.1.tar.gz(23.61 MB)
    nano-22.1.tar.gz.sha256(83 bytes)
    nano-node-V22.1-Darwin.dmg(24.38 MB)
    nano-node-V22.1-Darwin.dmg.sha256(139 bytes)
    nano-node-V22.1-Linux.deb(17.16 MB)
    nano-node-V22.1-Linux.deb.sha256(137 bytes)
    nano-node-V22.1-Linux.tar(15.19 MB)
    nano-node-V22.1-Linux.tar.bz2.sha256(141 bytes)
    nano-node-V22.1-win64.exe(37.75 MB)
    nano-node-V22.1-win64.exe.sha256(93 bytes)
    nano-node-V22.1-win64.zip(43.95 MB)
    nano-node-V22.1-win64.zip.sha256(93 bytes)
    nanocurrency-22.1-25.el7.src.rpm(23.60 MB)
    nanocurrency-22.1-25.el7.src.rpm.sha256(99 bytes)
    nanocurrency-22.1-25.el7.x86_64.rpm(6.30 MB)
    nanocurrency-22.1-25.el7.x86_64.rpm.sha256(102 bytes)
    nanocurrency-debuginfo-22.1-25.el7.x86_64.rpm(1006.03 KB)
    nanocurrency-debuginfo-22.1-25.el7.x86_64.rpm.sha256(112 bytes)
  • V22.0(May 14, 2021)

    CHANGELOG

    =========

    Release V22.0

    Full Changelog


    Major Changes

    |Pull Request|Title
    |:-:|:--
    |#3208|Election scheduler
    |#3190|Prioritization
    |#3134|Final votes
    |#2881|Experimental ledger pruning

    Protocol Changes

    |Pull Request|Title
    |:-:|:--
    |#3152|Optionally send confirmed frontiers

    Node Configuration Updates

    |Pull Request|Title
    |:-:|:--
    |#3282|specify ip notation for preconfigured peers
    |#3148|This decreases the confirm_req_batches_max from 20 to 2
    |#3120|Increase default max LMDB size
    |#3122|Update online_weight_quorum toml comment
    |#3052|Update online_weight_quorum default to 67
    |#2998|Rollback messages config
    |#2947|[Pruning] Pruning configuration settings
    |#2855|Simplify RocksDB config options
    |#2832|Set default bootstrap initiator threads to 1

    RPC Updates

    |Pull Request|Title
    |:-:|:--
    |#2843|BREAKING Change node_id from hash to account in telemetry RPC/websocket
    |#2977|BREAKING [Pruning] Support pruned chains in RPC & QT wallet
    |#3015|BREAKING Remove payment RPC
    |#2884|BREAKING Confirm delta
    |#3060|BREAKING Pending RPC to sort by absolute amounts when returning a subset
    |#3237|Change return details for "bootstrap_lazy" RPC
    |#3276|Default include only confirmed data for RPC supporting it
    |#3267|Deprecate RPC active_difficulty instead of removing it
    |#3147|Limit frontier request block count by default
    |#3080|Optional async for process RPC
    |#3039|Add confirmed_height in account_info RPC to be consistent
    |#3022|Add include_only_confirmed to account_balance & account_info
    |#2916|Fix error with work_cancel RPC request
    |#2874|Fix inconsistent online representatives list from RPC
    |#2903|Provide network_receive_minimum in RPC/WS active_difficulty
    |#2852|Stats RPC to print out rocksdb memory stats
    |#2829|Merge block databases

    Websocket Updates

    |Pull Request|Title
    |:-:|:--
    |#3260|BREAKING Remove elections difficulty sorting
    |#3016|Add option to include votes in confirmation websocket

    CLI Updates

    |Pull Request|Title
    |:-:|:--
    |#3050|Update CLI commands missing checks for reading config and overrides
    |#2979|Migrate LMDB database to RocksDB with new CLI command
    |#2950|Use multiple threads in CLI debug_account_versions and debug_unconfirmed_frontiers
    |#2915|Don't delete crash dump files with --debug_generate_crash_report
    |#2889|Modify CLI --debug_account_versions for epoch upgrade tracking
    |#2845|Display hardcoded and ledger block height in compare_rep_weights
    |#2861|Fix CLI test --debug_profile_bootstrap
    |#2835|Allow unescaped quoted strings with --config CLI
    |#2685|Improve mutex handling when generating stacktraces with NANO_TIMED_LOCKS/txn tracker
    |#2822|Prevent CPU usage in --debug_opencl

    Developer/Debug Options

    |Pull Request|Title
    |:-:|:--
    |#3144|The build info shows following description: \
    |#2765|Allow filtering a specific mutex for tracking with NANO_TIMED_LOCKS
    |#3077|Add debug/release_assert overloads which output error message strings
    |#3065|Improve message logging for bulk pull requests
    |#3031|Remove debug_assert which is hit calling block_confirm on already confirmed block.
    |#2932|Fix nano::timer tick update after stopping
    |#2777|Add uncemented frontier output CLI command
    |#2836|RocksDB tests
    |#2912|Recognize IPv4-mapped loopback addresses
    |#2909|Add support for defer_lock in nano::unique_lock
    |#2888|Make logging election tally an optional config
    |#2880|Logging exception handler and fix for stable_log_filename on windows
    |#2877|nano_test_network => nano_dev_network, new nano_test_network
    |#2844|Add time retrieval latency profile to CLI diagnostics
    |#2681|Add ASIO completion handler tracking
    |#2840|Different log when the OpenCL library cannot be loaded
    |#2839|UPnP basic logging messages are more frequent than intended

    Fixed Bugs

    |Pull Request|Title
    |:-:|:--
    |#3273|Fix active transactions pruning regression
    |#3274|Duplicated foward-reference declaration
    |#3269|Fixing 3-cycle possible deadlock
    |#3265|Election flush
    |#3252|Fix block processor add issue
    |#3158|Fix FreeBSD build error: "Cannot find source file: plat/plat/default/debugging.cpp"
    |#3146|clear_send_ids in vacuum/snapshot is using wrong txn object
    |#3142|Enable write tx for vacuum operation
    |#3106|TSAN error in confirmation height unbounded
    |#3051|Wallet create causing crash when confirming blocks
    |#3084|Fix online reps live votes update
    |#3085|Wallet store adhoc keys inconsistency with reps container
    |#3069|Add --rpcconfig option and fix wallet config bug
    |#3018|Fix qt wallet hitting a debug_assert when creating blocks
    |#3072|Removing duplicate roots from the same vote
    |#3035|Renew UPNP port lease
    |#3019|Enable OpenCL on macOS
    |#3020|Properly initialize array of atomics in ws server
    |#2997|Fix repcrawler loopback channel guard
    |#2983|Wallets search pending deadlock
    |#2957|Prevent immediate cleanup of new channels
    |#2966|Check if awaiting collection is empty before waiting on condition in conf height processor
    |#2956|Don't null out telemetry object
    |#2940|[RocksDB] assert compare data and not the address on iterator operator==
    |#2929|socket_server should accept and drop connections during overflow
    |#2897|Increase confirmation solicitor single-round caps
    |#2887|Avoid potential deadlock in work watcher
    |#2862|Don't crash using read-only CLI command with no ledger
    |#2837|UPnP existing lease and other misc enhancements
    |#2828|Invoke callbacks even during socket closures
    |#2833|Unresolved forks during initial bootstrap
    |#2831|Fix TCP message manager not notifying producers
    |#2825|Fix requeue pull for lazy bootstrap
    |#2823|Pre-sample block rate for bootstrap connections

    Implemented Enhancements

    |Pull Request|Title
    |:-:|:--
    |#3281|Prevent not processed blocks addition to confirmed elections list
    |#3128|Update issue templates
    |#3257|Sighup reload bandwidth params
    |#3251|Change default active elections size
    |#3246|Remove frontiers confirmation start only after reaching cemented > hardcoded
    |#3211|fixes sha256 sum file generation
    |#3232|Block builders can only be used once, initialize at top of loop.
    |#3231|Check bulk push availability
    |#3188|Modernize unit tests: construct state blocks via builder
    |#3221|Refactory of block processor thread
    |#3218|Support pruned block with ledger::dependencies_confirmed function
    |#3164|Resolve issue with inactive votes cache not triggering elections to start
    |#3187|Modernize active_transactions::restart
    |#3185|Election encapsulation
    |#3186|Add vacancy metric to active transactions container.
    |#3181|Fix/Update the clang-format version to 10
    |#3174|Election start encapsulation
    |#3108|Add gap pending epoch open blocks to unchecked
    |#3155|Limit bulk pull processing for possible existing blocks
    |#3100|Reverse store iterator and selector for last record
    |#3173|Removing broadcasting state
    |#3149|Remove bootstrap restarting code
    |#3154|Throttled removal of rep crawler targets
    |#3107|Check open file descriptor limit, warn if low
    |#3098|Use frontiers age option for frontier_req client
    |#3136|Remove recently dropped check to restart elections
    |#3118|Disable peers banning after frontiers confirmation
    |#3125|Inactive votes cache timestamp
    |#3079|Republish difficulty updates to elections
    |#3103|Bootstrap tests improvements
    |#3117|Remove lazy destinations check
    |#2532|Add histogram support to stats
    |#3116|Move related blockstore functions together
    |#3110|Replace private_key uses with raw_key
    |#3101|Add worker task queue count to the stats
    |#2758|Store whole block in confirmation height processor queue
    |#3058|Various consistency changes
    |#3038|Remove epoch2 started code
    |#3081|Revert coroutine changes for core & rpc_test
    |#2871|Combine alarm and worker threads into a pool
    |#3086|Remove boost process code
    |#3059|Improve inactive votes cache memory allocation
    |#3029|Modify std::shared_ptr value parameters to const refs
    |#2763|Vote spacing
    |#3014|Remove telemetry signature partitions
    |#3048|Update online weight before checking quorum
    |#3026|Storing blocks according to tally in elections with forks
    |#3027|Republish only winners for forked elections
    |#3068|Limit failures for confirmed lazy bootstrap bulk pull
    |#3071|Moving voting constants in to their own class
    |#3064|Remove timestamp count in votes
    |#3040|Remove unnecessary heap allocations during ed25519 hashing
    |#2883|Remove conf height put during ledger processing on a newly opened account
    |#2994|Include block to fork confirm_req response
    |#2996| Erase dropped forks from the duplicate filter
    |#2879|Packed timestamp
    |#2925|Election mutexes to remove heavy active mutex contention
    |#3013|Add pruned node to maker
    |#2820|Using post-processing events for all operations
    |#3001|Constifying shared_ptr parameters to various functions.
    |#2976|[Pruning] Support pruned blocks in bootstrap actions
    |#2991|Avoid locking the work_watcher mutex in the request_confirm loop
    |#2992|[Pruning] Wallet receive action & search pending for pruned blocks
    |#2974|[Pruning] Accept pruned-related blocks in blocks processing & rollback
    |#2978|[Pruning] Support pruned blocks in confirmation height processor & active transactions
    |#2975|[Pruning] Use pruned blocks in rep crawler
    |#2987|Set thread names in db parallel traversal
    |#2981|Change usage of latest to accounts for consistency
    |#2982|Add timing_logging check before conf height timing output
    |#2938|[RocksDB] Modify some table/column family settings
    |#2863|Resolve data type conversion warnings
    |#2968|[Pruning] Ledger pruning functions
    |#2918|Move channel drop policy off of nano::socket and remove channel concurrency value as redundant
    |#2961|Election encapsulation
    |#2960|Removing unused variables.
    |#2936|Converting nano::socket::note from weak_ptr to node to a plain reference
    |#2955|Directly use socket shared_ptr in bootstrap_client
    |#2937|Use node::receive_confirmed synchronously
    |#2939|Convert nano::network periodic functions to use a steady timer instead of callbacks
    |#2865|Move all vote generation to the voting thread
    |#2934|Retrieve copy of wallets in scan_receivable
    |#2876|Improve ledger cache initialization with multiple threads
    |#2926|Non-functional change to clean up header inclusions.
    |#2761|Require explicit conversion from root/link to block hash or account
    |#2896|Atomic representation weight changes
    |#2856|[RocksDB] Use different column family options and prefix extraction for unchecked table
    |#2860|[RocksDB] Manually flush memtables if there are a large number of tombstones
    |#2914|Removing channel::callback
    |#2885|Add cemented frontier successor confirmation in request loop
    |#2907|Renaming ledger::can_vote to ledger::dependents_confirmed
    |#2788|Use Boost.Coroutine with asio/beast async calls in tests
    |#2902|Use improved OpenCL kernel
    |#2901|Relax mutex requirement for retrieving active difficulty
    |#2904|Increase default bootstrap interval
    |#2900|Temporarily pause the request loop in extreme situations
    |#2895|Constrained successor and destination block activation
    |#2894|Extracting votes cache bootstrap start function
    |#2891|Remove election fallback behaviors and adjusted multiplier calculations
    |#2886|Inactive votes election hint
    |#2890|Election insertion cleanup
    |#2850|Epoch 1 legacy blocks work validation before processing
    |#2854|[RocksDB] Use estimated unchecked count
    |#2795|Write database queue functions should be NoOps with RocksDB
    |#2872|Remove UDP status/stats dead code
    |#2873|Add source block epoch to sideband information
    |#2849|Cleanup nano::process_return
    |#2827|Local votes history to replace votes cache
    |#2679|Make std::condition_variable::wait* compatible with NANO_TIMED_LOCKS
    |#2858|[RocksDB] Do not fill block cache from ranged iterators
    |#2848|Unnecessary frontier_get when processing state block forks
    |#2756|Use block cache from unbounded processor when checking if block is processing
    |#2842|Specify OpenCL clCreateBuffer() flags
    |#2821|node config spelling errors
    |#2736|Improve distributed_work_factory item management
    |#2775|Refactor shared testing code from core_test
    |#2770|Remove node v18 and earlier upgrade support

    Build, Test, Automation, & Chores

    |Pull Request|Title
    |:-:|:--
    |#2878|BREAKING Enforce Cxx17
    |#3283|Simplify inactive_votes_cache_election_start test
    |#3279|Improve confirmation_height.gap_live core test
    |#3254|New Rep weights live file (#3238)
    |#3272|Adjust node.aggressive_flooding test
    |#3270|Adjust active_transactions.pessimistic_elections & network.last_contacted
    |#3258|Prevent blocks conflict in RPC pruned tests & improve confirmation in RPC pending tests
    |#3259|Update active_transaction.inactive_votes_cache_fork with election scheduler changes
    |#3131|Update MiniUPnP to version 2.2.2
    |#3183|stop deploying live on latest
    |#3215|Updating unit tests in preparation for election scheduler changes.
    |#3184|Fixing test issue found with asan.
    |#3132|Update GoogleTest to release 1.10.0
    |#3172|Test fix
    |#3135|Update beta genesis and magic number from V22.0DB10 reset
    |#3129|Improve elections related tests
    |#3130|Database final votes support
    |#3042|Make fuzz_buffer compile again after message_parser changes
    |#3123|Update missing nano::mutex changes
    |#2629|Make bootstrap_processor.process_state more robust under tsan
    |#3102|Fix test rpc.confirmation_active
    |#3096|Add missing include(msvc2017)
    |#3093|Process async test should use state block
    |#3090|Add recent constref change to rpc secure as well
    |#3088|more changes regarding github actions security hardening
    |#3082|Increment retry date string
    |#3062|Fix intermittent node.bootstrap_bulk_push failure
    |#3061|Deploy "Test" net artifacts correctly
    |#3057|follow lib naming convention of pre-compiled boost on windows
    |#3044|Fix intermittent rpc.receive_work_disabled segfaults
    |#3056|Fix copy pasta error with test network variables
    |#3054|Allow for manual triggering of artifact runs
    |#3053|cleanup various scripts
    |#3037|Customizing Test Network Parameters
    |#3043|Fix rpc online_reps unit test
    |#3049|Fixing boost to 1.70 on windows via artifact cache
    |#3034|github container repo
    |#3033|Allow [[deprecated]] attribute
    |#3024|use $GITHUB_ENV instead of set-env
    |#2972|Translate some tests with UDP functionality to TCP
    |#3025|Update to correct rocksdb submodule commit
    |#3010|Update RocksDB version to 6.13.3
    |#3005|Adding plist files to ignore filter.
    |#3000|add test network to build artifacts for non DB tags
    |#3006|Remove Guilherme's pubkey from security policy
    |#2995|Make entry.sh more portable by removing all bashisms
    |#2969|Fix link to contributors guide
    |#2990|correct lib install path for nix
    |#2988|build bootstrap artifacts to be compatible with rpath linking
    |#2984|Add coroutine/context boost shared libraries to the artifacts
    |#2980|Fix intermittent failure of node.local_votes_cache_generate_new_vote
    |#2973|Beta reset in prep for rocksdb heavy testing
    |#2964|update LD_LIBRARY_PATH for building
    |#2971|This fixes a race condition in node.node_receive_quorum.
    |#2967|[Pruning] Pruned blocks slow test
    |#2962|Fix rpc.send_fail TSAN failure
    |#2943|Add RocksDB as a submodule
    |#2948|Use 1 thread to service I/O operations to allow TSAN runs.
    |#2941|Avoid duplicate workflows for local pulls
    |#2933|Fix core_test build with Boost 1.74
    |#2930|[RocksDB] Set max_write_buffer_size_to_maintain explicitly
    |#2928|Move forward rocksdb minimum
    |#2935|Update beta V22 bootstrap weights following reset
    |#2927|Fix build error when using NANO_TIMED_LOCKS_IGNORE_BLOCKED
    |#2919|[TSAN] minor race in rpc.send test
    |#2911|Add Boost.Coroutine to bootstrap_boost.sh script
    |#2908|Frontier confirmation cleanup
    |#2905|Lower request loop min_sleep for tests
    |#2898|Docker base update
    |#2847|Changelog generator grab pull from commit message
    |#2868|Increment major version to 22
    |#2830|Beta reset for V22 development
    |#2859|extend test retry deadline 12/31/2020 23:59:59 UTC
    |#2834|update lmdb to 0.9.25
    |#2838|Fix secure RPC build on msvc
    |#2780|Use ASSERT_TIMELY in tests where possible

    Other

    |Pull Request|Title
    |:-:|:--
    |#3127|Limit peers per subnetwork
    |#3209|Project-wide update with clang-format-10 and new formatting options including initializer-list indentation.
    |#3206|Fixing static initialization order on Window
    |#3180|Add new GPG public key
    |#3170|Add new GPG public key
    |#3124|Change qualified root from previous-root to root-previous
    |#2970|Transport loopback channel
    |#2946|[Pruning] Basic pruning blocks storage & database upgrade
    |#2944|Use empty uint8_t peer data
    |#2920|[RocksDB] Reduce number of blocks processed in batch by block processor

    Other Updates

    |Commit|Title
    |:-:|:--
    |ef09e55c|Merge pull request #3284 from nanocurrency/v22rc2_cherry_pick
    |2a3afcb1|Correcting version number since we don't use _PATCH numbers.
    |21097ccf|Increasing patch release number to signify V22RC1
    |2b23fd47|Qt test: disable wallet.status and introduce wallet status with peer
    |6838a59a|Remove x or pruned exists fn (#3216)
    |f801b615|Bugfix: signal handlers called twice for each signal received
    |a0f90721|Do not repeat core_test in CI
    |ebc851b1|Fix tests quorum_minimum_confirm_fail, quorum_minimum_update_weight_before_quorum_checks
    |7672d4ed|Fix core test case election.quorum_minimum_confirm_success (#3242)
    |9e04e156|Remove printing of log to stderr (file descriptor limit too low)
    |7b1b51c4|Handle signals with boost asio signal handler
    |5e1aa73c|Merge pull request #3219 from dsiganos/dimitrios_siganos_gpg_pubkey
    |29e3a1dd|GPG public key for Dimitrios Siganos
    |5f8e4d7d|Merge pull request #3063 from cryptocode/unit-fix-work_watcher-confirm-while-generating
    |c8630c09|Merge pull request #3028 from SergiySW/network/tcp_endpoint_value
    |f15adfeb|Merge pull request #3078 from cryptocode/wallet_republish-rpc-fix
    |d473d21c|Fix wallet_republish crash during bootstrap
    |ad0a92f7|Fix intermittent work_watcher.confirm_while_generating failure
    |3839e8cc|Persistent TCP channel endpoint value

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

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA256
    
    Below are the sha256 sum hashes for version 22.0
    Signature Verification can be run against argakiig.asc in source repo (etc/gpg/)
    
    
    071da96356f76ba60c67305af132ae697792d34e2655701480156456035d2dde  nano-22.0.tar.gz
    ad1876c81467aa8331d1d757b281a5a7de6458446fd7d98c15f999825feea78d  nano-node-22.0.0-Darwin.dmg
    df12accaba4ceda6eb968a9f5f44e3b57b559253aeac3f0f3136b7470ffc59a5  nano-node-22.0.0-Linux.deb
    9e23956746b3b02fc575a2c917ae20b0bc786893c4c679217b1353393af647ce  nano-node-22.0.0-Linux.tar.bz2
    9C682A2BD4EEF5BA8B87B8B8A92D210626A0AE96F680D6C570A2AE8DEAFEF63A  nano-node-22.0.0-win64.exe
    77B694EB60019C856B9D83C4F19E102EEAEBC110BFE12EF85CD6B2167869DE26  nano-node-22.0.0-win64.zip
    7719030a877a5726456da4d295729f16bc6820850a1687298886d9ce90dce636  nanocurrency-22.0-24.el7.src.rpm
    47951a776507f6c8dd71a92af4cfd76fb8d459dbc2d716cad585135cc5911aa4  nanocurrency-22.0-24.el7.x86_64.rpm
    -----BEGIN PGP SIGNATURE-----
    
    iQEzBAEBCAAdFiEEc+pdEgPPsADHbxJjyW2zlQ3kDroFAmCfVwEACgkQyW2zlQ3k
    Droy8wgAg1DYOVW55IJpVSBiBLROtRXg7eqWCanne4/1FA0qMscWHbMdMU1NSXCS
    TrFoJLPxSf4RIKJMk1RwB6Hyo9hmLqWBYGjYJFOlvQOkv9O0xW3eZIVmtGoYB3Ic
    rYlzHP+RbxFGP8v/sR9E3S+MjVxvOe0caOmrAz69b6rsCe+C+7er1F1jxnI6vqDY
    RD5GtI/cSgkMlA3gY/7CG28mx2Seyix5GBnDhWD0Hxqc6yzCH+XIhTRPsHiEjb3M
    oHt1pTIKTFPVjnCEBvOpN6tsb4KoKHTyr7eMX8FFm8hnIhKrQ5TEU3xYy3Lxo9Ci
    hLe0z5fMKIaU3Ul2B4SKQxXDUFJd5g==
    =itw8
    -----END PGP SIGNATURE-----
    
    
    
    Source code(tar.gz)
    Source code(zip)
    nano-22.0.tar.gz(23.68 MB)
    nano-22.0.tar.gz.sha256(83 bytes)
    nano-node-V22.0-Darwin.dmg(24.38 MB)
    nano-node-V22.0-Darwin.dmg.sha256(139 bytes)
    nano-node-V22.0-Linux.deb(17.16 MB)
    nano-node-V22.0-Linux.deb.sha256(137 bytes)
    nano-node-V22.0-Linux.tar(15.11 MB)
    nano-node-V22.0-Linux.tar.bz2.sha256(141 bytes)
    nano-node-V22.0-win64.exe(27.84 MB)
    nano-node-V22.0-win64.exe.sha256(93 bytes)
    nano-node-V22.0-win64.zip(34.06 MB)
    nano-node-V22.0-win64.zip.sha256(93 bytes)
    nanocurrency-22.0-24.el7.src.rpm(23.66 MB)
    nanocurrency-22.0-24.el7.src.rpm.sha256(99 bytes)
    nanocurrency-22.0-24.el7.x86_64.rpm(6.30 MB)
    nanocurrency-22.0-24.el7.x86_64.rpm.sha256(102 bytes)
  • V21.3(Mar 18, 2021)

    CHANGELOG

    Release V21.3

    Full Changelog


    |Pull Request|Title |:-:|:-- |#3140|Various synchronization fixes (see PR for details) |#3157|Update live bootstrap weights


    Additional binary releases:


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

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA256
    
    Below are the sha256 sum hashes for version 21.3 release artifacts
    Signature Verification can be run against argakiig.asc in source repo (etc/gpg/)
    
    5fd4d10e85deca133851f1be17735a76810ca508ebca413902396123b1604006  nano-node-V21.3-Darwin.dmg
    b998f4d3c2d32a2da2f46799312bfb6069b9b28d63e40bb7e8df3bc67541a082  nano-node-V21.3-Linux.deb
    185fbe1f355a8cda9e91d9df671aae27e186bf9eb199eb43a38767ae1d591593  nano-node-V21.3-Linux.tar.bz2
    ccfdf48266e126a55e2c3a50d8a2eae87b4e1971bdc92eae3ae27e7f25d69225  nano-node-V21.3-win64.exe
    835b0516a92c42238c6d1df429a15a3c97d462da2be06cb15de4457113476c06  nano-node-V21.3-win64.zip
    2ebf52b682585762294ce92f4b3eae552e51eb97824ec78e71921264b6017780  nanocurrency-21.3-23.el7.x86_64.rpm
    d8dfa1ae2dda7c6f4e3456ee701b67c11c7cab452b6c5faf1ee957b107b84197  nano-21.3.tar.gz
    -----BEGIN PGP SIGNATURE-----
    
    iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAmBWeO0ACgkQgERoJPn9
    OlqakQf/RPV338bOOr/DCscV3B/qFpGHeZyB+Z9Wc2g3V2pSiL/Q8lNRlbXybIlC
    73FmMICn9TUbQurpC+uc/jjB1XUWBowuJP4mjN/RZe1YSL+hGT2aah4BDJoXxIjw
    wmdg21In3rAvNDebB6nkUNT2y8bIgvboJATa5Rhkya6nUN5FtBu8MGMIZZKWPz4F
    0BGYL9dDdr/xcLDbgDN8jKmdiUiKn3t1BTJ0ajaSGyWkfDeUuWKku1B2vH6Y5mfq
    Xwm/z2XmiJuC2Z6NR898Vojvj/wAaaqoQHD72QpEntcLh0Ve/BDC98EgT5I8GdAn
    t9hM/3vs1xi5xv3qRNmlF08CYlMGMw==
    =E9PS
    -----END PGP SIGNATURE-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-21.3.tar.gz(17.47 MB)
    nano-21.3.tar.gz.sha256(83 bytes)
    nano-node-V21.3-Darwin.dmg(23.94 MB)
    nano-node-V21.3-Darwin.dmg.sha256(92 bytes)
    nano-node-V21.3-Linux.deb(73.56 MB)
    nano-node-V21.3-Linux.deb.sha256(91 bytes)
    nano-node-V21.3-Linux.tar.bz2(74.32 MB)
    nano-node-V21.3-Linux.tar.bz2.sha256(95 bytes)
    nano-node-V21.3-win64.exe(27.58 MB)
    nano-node-V21.3-win64.exe.sha256(91 bytes)
    nano-node-V21.3-win64.zip(33.70 MB)
    nano-node-V21.3-win64.zip.sha256(91 bytes)
    nanocurrency-21.3-23.el7.x86_64.rpm(4.48 MB)
    nanocurrency-21.3-23.el7.x86_64.rpm.sha256(102 bytes)
  • V21.2(Sep 3, 2020)

    CHANGELOG

    Release V21.2

    Full Changelog


    RPC Updates

    |Pull Request|Title |:-:|:-- |#2903|Provide network_receive_minimum in RPC/WS active_difficulty


    IPC Updates

    |Pull Request|Title |:-:|:-- |#2892|Add random id to RPC send via IPC if not included


    CLI Updates

    |Pull Request|Title |:-:|:-- |#2889|Modify CLI --debug_account_versions for epoch upgrade tracking


    Developer/Debug Options

    |Pull Request|Title |:-:|:-- |#2888|Make logging election tally an optional config


    Fixed Bugs

    |Pull Request|Title |:-:|:-- |#2897|Increase confirmation solicitor single-round caps |#2880|Logging exception handler and fix for stable_log_filename on windows |#2887|Avoid potential deadlock in work watcher


    Implemented Enhancements

    |Pull Request|Title |:-:|:-- |#2885|Add cemented frontier successor confirmation in request loop |#2907|Renaming ledger::can_vote to ledger::dependents_confirmed |#2902|Use improved OpenCL kernel |#2901|Relax mutex requirement for retrieving active difficulty |#2904|Increase default bootstrap interval |#2900|Temporarily pause the request loop in extreme situations |#2895|Constrained successor and destination block activation |#2894|Extracting votes cache bootstrap start function |#2891|Remove election fallback behaviors and adjusted multiplier calculations |#2886|Inactive votes election hint |#2890|Election insertion cleanup


    Build, Test, Automation, & Chores

    |Pull Request|Title |:-:|:-- |#2909|Add support for defer_lock in nano::unique_lock |#2908|Frontier confirmation cleanup |#2905|Lower request loop min_sleep for tests |#2830|Beta reset for V22 development |#2859|extend test retry deadline 12/31/2020 23:59:59 UTC


    Additional binary releases:


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

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA256
    
    Below are the sha256 sum hashes for version 21.2 Athena
    Signature Verification can be run against argakiig.asc in source repo (etc/gpg/)
    
    e1b9841de8c4d41875ccb744df46426137a7046b98846057093f796304633514 *nano-21.2.tar.gz
    3715a3b8c1ffb80a57258e7c70be0037a7cbcacb32f6124f445a31df1345773d *nano-21.2.tar.gz.sha256
    6ebe730cb155b56583d8bc1991b2f0d66ff2934d024d35c28b5988f3fa219ae0 *nanocurrency-21.2-22.el7.x86_64.rpm
    458f67e95382d1de7b7ab251c5a15c9cb05a4e05a47a6312e6ec9f378932b404 *nanocurrency-21.2-22.el7.x86_64.rpm.sha256
    a5f6a987b1516495afc64810b41003f0332de49ec4d54b6f1ed652dbba7f5896 *nano-node-V21.2-Darwin.dmg
    1077ec1c28f5100ee32b4a385c5c1e35b2ad39ddd0cea8efc2560e7a0e655c83 *nano-node-V21.2-Darwin.dmg.sha256
    babd8b76575e7d1407030d658f6c5f0e7f6cd9084fd3fc3e7e8646062268d54e *nano-node-V21.2-Linux.deb
    6f5ec08fcc15a174906a90454e8ee293759a6a359bd1080fb6c722a4e2d4f7d9 *nano-node-V21.2-Linux.deb.sha256
    b74f478c9c3a453e5c7b9d1d2befd91d9a73a2d7941382a098f78e94ef82fbb7 *nano-node-V21.2-Linux.tar.bz2
    14f615dff9e466361a997f3d87f28c283568c83f269c5647b9975189b9a543ea *nano-node-V21.2-Linux.tar.bz2.sha256
    616333c271f345b1bad73590e89f5d4a990bd62eacfd9b137212b9ab16a28fd2 *nano-node-V21.2-win64.exe
    a38602e9cbebde3d322a894da13d4b28d95a025dd3aae8e3bec951433f5b87d0 *nano-node-V21.2-win64.exe.sha256
    887b2901af3a7f240dcc9210f27a7bbf3906a5e3a7e6ef481a8de873185be413 *nano-node-V21.2-win64.zip
    a2eec9a67e46a7dd5b5376a018abcb6c1f708399f7700b3015665635bdeef123 *nano-node-V21.2-win64.zip.sha256
    -----BEGIN PGP SIGNATURE-----
    
    iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAl/3DDcACgkQgERoJPn9
    OloyTQf+PSjNVE64FZEwFINxrRxQ3HV3n00r2h0PwOCUntWhOqtboXnm3u3DRRy8
    vanjl2E7FSG5VuOhB/yVewIk828CXu6qYLmYE6/AoPF96WDglIrf6fIhs7HURpWu
    cLf9040zQPmz5kpcl/CcF1S9/qBsPjgO0Air6BTmz7MNdEq7MnZCKsIeLp/zqrfE
    kyTZHMhIrNS5mZxhhLZjYe+GLjHTORIA/imHDfwt9nRsLhXGfnd2ErO/kOsv1Alq
    Gi4WxCHID5jRjK6urZ+sFPbLpnrAFkf0t1Kb82Ij3HjSEQcXg31HQRG3ldTpX8Af
    s+dT6Dfh6B5uGXBG69Zm8l+4nvxa2g==
    =d9T0
    -----END PGP SIGNATURE-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-21.2.tar.gz(17.44 MB)
    nano-21.2.tar.gz.sha256(83 bytes)
    nano-node-V21.2-Darwin.dmg(24.07 MB)
    nano-node-V21.2-Darwin.dmg.sha256(65 bytes)
    nano-node-V21.2-Linux.deb(73.57 MB)
    nano-node-V21.2-Linux.deb.sha256(65 bytes)
    nano-node-V21.2-Linux.tar.bz2(74.38 MB)
    nano-node-V21.2-Linux.tar.bz2.sha256(65 bytes)
    nano-node-V21.2-win64.exe(27.51 MB)
    nano-node-V21.2-win64.exe.sha256(66 bytes)
    nano-node-V21.2-win64.zip(33.61 MB)
    nano-node-V21.2-win64.zip.sha256(66 bytes)
    nanocurrency-21.2-22.el7.x86_64.rpm(4.48 MB)
    nanocurrency-21.2-22.el7.x86_64.rpm.sha256(102 bytes)
  • V21.2RC1(Sep 2, 2020)

    CHANGELOG

    Release V21.2RC1

    Full Changelog


    RPC Updates

    |Pull Request|Title |:-:|:-- |#2903|Provide network_receive_minimum in RPC/WS active_difficulty


    IPC Updates

    |Pull Request|Title |:-:|:-- |#2892|Add random id to RPC send via IPC if not included


    CLI Updates

    |Pull Request|Title |:-:|:-- |#2889|Modify CLI --debug_account_versions for epoch upgrade tracking


    Developer/Debug Options

    |Pull Request|Title |:-:|:-- |#2888|Make logging election tally an optional config


    Fixed Bugs

    |Pull Request|Title |:-:|:-- |#2897|Increase confirmation solicitor single-round caps |#2880|Logging exception handler and fix for stable_log_filename on windows |#2887|Avoid potential deadlock in work watcher


    Implemented Enhancements

    |Pull Request|Title |:-:|:-- |#2885|Add cemented frontier successor confirmation in request loop |#2907|Renaming ledger::can_vote to ledger::dependents_confirmed |#2902|Use improved OpenCL kernel |#2901|Relax mutex requirement for retrieving active difficulty |#2904|Increase default bootstrap interval |#2900|Temporarily pause the request loop in extreme situations |#2895|Constrained successor and destination block activation |#2894|Extracting votes cache bootstrap start function |#2891|Remove election fallback behaviors and adjusted multiplier calculations |#2886|Inactive votes election hint |#2890|Election insertion cleanup


    Build, Test, Automation, & Chores

    |Pull Request|Title |:-:|:-- |#2909|Add support for defer_lock in nano::unique_lock |#2908|Frontier confirmation cleanup |#2905|Lower request loop min_sleep for tests |#2830|Beta reset for V22 development |#2859|extend test retry deadline 12/31/2020 23:59:59 UTC

    Source code(tar.gz)
    Source code(zip)
    nano-node-V21.2RC1-Darwin.dmg(25.32 MB)
    nano-node-V21.2RC1-Darwin.dmg.sha256(65 bytes)
    nano-node-V21.2RC1-Linux.deb(216.94 MB)
    nano-node-V21.2RC1-Linux.deb.sha256(65 bytes)
    nano-node-V21.2RC1-Linux.tar.bz2(222.03 MB)
    nano-node-V21.2RC1-Linux.tar.bz2.sha256(65 bytes)
    nano-node-V21.2RC1-win64.exe(31.03 MB)
    nano-node-V21.2RC1-win64.exe.sha256(66 bytes)
    nano-node-V21.2RC1-win64.zip(39.04 MB)
    nano-node-V21.2RC1-win64.zip.sha256(66 bytes)
  • V21.1(Jul 14, 2020)

    CHANGELOG

    Release V21.1

    Full Changelog

    Node Configuration Updates

    |Pull Request|Title
    |:-:|:--
    |#2832|Set default bootstrap initiator threads to 1

    RPC Updates

    |Pull Request|Title
    |:-:|:--
    |#2843|BREAKING Change node_id from hash to account in telemetry RPC/websocket

    Developer/Debug Options

    |Pull Request|Title
    |:-:|:--
    |#2839|UPnP basic logging messages are more frequent than intended

    Fixed Bugs

    |Pull Request|Title
    |:-:|:--
    |#2837|UPnP existing lease and other misc enhancements
    |#2828|Invoke callbacks even during socket closures
    |#2833|Unresolved forks during initial bootstrap
    |#2831|Fix TCP message manager not notifying producers
    |#2825|Fix requeue pull for lazy bootstrap

    Build, Test, Automation, & Chores

    |Pull Request|Title
    |:-:|:--
    |#2838|Fix secure RPC build on msvc


    Additional binary releases:


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

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA512
    
    Below are the sha256 sum hashes for version 21.1 Athena
    Signature Verification can be run against argakiig.asc in source repo (etc/gpg/)
    
    52D67A0E3A1574129A575DA3463699FDFEC06B9ACC5425BA2873303EE7601124 *nano-node-V21.1-win64.zip
    B8D12B9C21193B19B0A077290DD5F0CA7B8796EB3B3610D775EBFF8BE0391E3E *nano-node-V21.1-win64.zip.sha256
    55A3A5A544E70C0A476B7025C03B06B226441843D7359C84C00F0ABB3056C562 *nano-node-V21.1-win64.exe
    156D656D5A4F084036F54049A0679203FB68D8BBB32958EF4FD117F67BB281E1 *nano-node-V21.1-win64.exe.sha256
    98f28cd90f9c94f740a223802df15019fde616292b8522229d5c2ce5f0328077 *nano-node-V21.1-Linux.tar.bz2
    62561FD61B36D1EBD84A48637293075D19378DF24D4ECDDDA23AAA598C5C7F9C *nano-node-V21.1-Linux.tar.bz2.sha256
    845fe8cfc19269b929880842796adbf1ba1a055bec859ce9ca9fe095cb156320 *nano-node-V21.1-Darwin.dmg
    F943D71F95B6D86988B7402793A81ADD862F3C5F4F8EA115AE17BF50FC09615E *nano-node-V21.1-Darwin.dmg.sha256
    2189a184b92964617e89f9fb24c60b532bcbf6d5dfe631a9cab7d919625752bc *nano-node-V21.1-Linux.deb
    6C6029EAF69E73B89055621416747E04F1621C5590956D6C2EEB2C52EBB7F689 *nano-node-V21.1-Linux.deb.sha256
    b5365981f8642859c5a4d5113f79e6b5120cae59811b954d5d077c09ba0af5b2  nanocurrency-21.1-21.el7.src.rpm
    23d2a7fdc9ca79d2a72ee6e6186d0832acb06d98fa8936a10ffa6ab2f68a6363  nanocurrency-21.1-21.el7.src.rpm.sha256
    569e348086de7a4542690c3cd73095bfc4aaa04ea75bd07682cd8aad1491c30b  nanocurrency-21.1-21.el7.x86_64.rpm
    3209da9506be6d180b8f35e710cc32c7f46477d1f6aab24430040fc2de3f2acc  nanocurrency-21.1-21.el7.x86_64.rpm.sha256
    bb19d1a1ba45ba48ed504189fe03432783a0ada1d1ee8a687f411dfe138b23da  nanocurrency-debuginfo-21.1-21.el7.x86_64.rpm
    0c8ae99239bd4101953cc383b85b747b1a69e328a3a0fc42c7430d910fd0dd29  nanocurrency-debuginfo-21.1-21.el7.x86_64.rpm.sha256
    -----BEGIN PGP SIGNATURE-----
    
    iQEzBAEBCgAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAl8fjmkACgkQgERoJPn9
    Olp9/ggAi5jhmzm0S4anU+o1kGSxDy3/HIE/PZts5vN0PB0JCguXJ7dOLlvU7FK9
    a59FTpkkfEGZ/K6O7g8xuUo91yohLHelvOyonlLMFzo0tZLwF1w9DeFlui+9XYEu
    KAed9OQI9K41JSEo28KZx4+mJ1AzxU2bX4kn6DO+drtD0lUDOHhwwBIk9Lrz0qoE
    J/DtJ7vQdn4OeBDCenC7+Oyn55jr0Bxn8n0MHpq2n6m4mgk8501fVOPaboujHmQb
    fEx7lyjUWWqzl08rJDBUWz9oRa43QAZ2spCDnFTW053eMlkgbA+Mpe2Z9XgU2R5+
    lWSfidrejtmR8SjdAybKTQnCucFrLw==
    =u672
    -----END PGP SIGNATURE-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-node-V21.1-Darwin.dmg(24.07 MB)
    nano-node-V21.1-Darwin.dmg.sha256(65 bytes)
    nano-node-V21.1-Linux.deb(73.58 MB)
    nano-node-V21.1-Linux.deb.sha256(65 bytes)
    nano-node-V21.1-Linux.tar.bz2(74.42 MB)
    nano-node-V21.1-Linux.tar.bz2.sha256(65 bytes)
    nano-node-V21.1-win64.exe(27.47 MB)
    nano-node-V21.1-win64.exe.sha256(66 bytes)
    nano-node-V21.1-win64.zip(33.58 MB)
    nano-node-V21.1-win64.zip.sha256(66 bytes)
    nanocurrency-21.1-21.el7.src.rpm(17.43 MB)
    nanocurrency-21.1-21.el7.src.rpm.sha256(99 bytes)
    nanocurrency-21.1-21.el7.x86_64.rpm(4.27 MB)
    nanocurrency-21.1-21.el7.x86_64.rpm.sha256(102 bytes)
    nanocurrency-debuginfo-21.1-21.el7.x86_64.rpm(755.59 KB)
    nanocurrency-debuginfo-21.1-21.el7.x86_64.rpm.sha256(112 bytes)
  • V21.1RC1(Jul 8, 2020)

    CHANGELOG

    Release V21.1RC1

    Full Changelog


    Node Configuration Updates

    |Pull Request|Title |:-:|:-- |#2832|Set default bootstrap initiator threads to 1


    Bug

    |Pull Request|Title |:-:|:-- |#2825|Fix requeue pull for lazy bootstrap |#2831|Fix TCP message manager not notifying producers |#2833|Unresolved forks during initial bootstrap |#2828|Invoke callbacks even during socket closures |#2837|UPnP existing lease and other misc enhancements


    Build, Test, Automation, & Chores

    |Pull Request|Title |:-:|:-- |#2819|correct rpath for libs in tar.bz2 archive |#2838|Fix secure RPC build on msvc

    Source code(tar.gz)
    Source code(zip)
    nano-node-V21.0RC1-Darwin.dmg(25.03 MB)
    nano-node-V21.0RC1-Linux.tar.bz2(220.68 MB)
    nano-node-V21.0RC1-win64.exe(31.41 MB)
    nano-node-V21.0RC1-win64.zip(39.67 MB)
    nano-node-V21.1RC1-Darwin.dmg.sha256(65 bytes)
    nano-node-V21.1RC1-Linux.deb(216.32 MB)
    nano-node-V21.1RC1-Linux.deb.sha256(65 bytes)
    nano-node-V21.1RC1-Linux.tar.bz2.sha256(65 bytes)
    nano-node-V21.1RC1-win64.exe.sha256(66 bytes)
    nano-node-V21.1RC1-win64.zip.sha256(66 bytes)
  • V21.0(Jun 16, 2020)

    CHANGELOG

    Release V21.0

    Full Changelog

    Major Changes

    |Pull Request|Title
    |:-:|:--
    |#2535|Election state refactor
    |#2487|IPC 2.0
    |#2545|Sideband upgrade using epoch byte for is_send/receive/epoch
    |#2446|Node telemetry

    Protocol Changes

    |Pull Request|Title
    |:-:|:--
    |#2701|Dont peer with v20 and earlier after epoch 2 block is seen
    |#2683|Increase minimum supported protocol version to 17
    |#2667|Validate work difficulty during ledger processing

    Node Configuration Updates

    |Pull Request|Title
    |:-:|:--
    |#2787|Double default bandwidth limit config
    |#2727|Safely read override values when no config file is present
    |#2724|Clarify nano_pow_server configs are not in use
    |#2588| LMDB sync options and new config settings

    RPC Updates

    |Pull Request|Title
    |:-:|:--
    |#2499|BREAKING Bootstrap attempts and connections/pulls separation
    |#2671|BREAKING Handle epoch_2 work thresholds in the wallet and most RPCs
    |#2689|BREAKING Change response for RPC work_validate with implicit difficulty
    |#2804|Make RPC name consistent with stats, websocket & protocol naming for telemetry
    |#2754|Optional "block" given to RPC "work_generate" to infer difficulty
    |#2753| Flood difficulty updates from RPC process
    |#2752|Result difficulty in RPC block_create
    |#2718|Epoch upgrader as an async task
    |#2704|Asynchronous epoch upgrade RPC
    |#2703|Difficulty calculation for RPC block_create
    |#2684|Epoch 2 started flag in ledger cache
    |#2619|Election refactor follow up
    |#2569|Work version concept
    |#2560|Request telemetry data for local node
    |#2481|Upgrade confirmation height table to include cemented frontier
    |#2414|Add block and voters count in election information
    |#2424|Fix RPC secure (TLS)
    |#2420|Add database vendor string to RPC version

    IPC Updates

    |Pull Request|Title
    |:-:|:--
    |#2644|Add Flatbuffers schema evolution rules to IDL

    Websocket Updates

    |Pull Request|Title
    |:-:|:--
    |#2774|Enable WebSocket server by default in Docker image
    |#2734|Websocket notification for RPC work_generate without peers
    |#2729|Websocket new_unconfirmed_block
    |#2634|Add telemetry response websocket callbacks
    |#2566|Incremental options for ws confirmation subscription
    |#2562|Fake websocket client to test the node websocket server
    |#2471|Websocket bootstrap subscription
    |#2444|Indeterminate vote status and enhanced websocket vote sub

    CLI Updates

    |Pull Request|Title
    |:-:|:--
    |#2794|CLI commands incorrect ledger cache setup
    |#2749|Multithreaded --validate_blocks
    |#2725|CLI command for a frontier confirmation speed test
    |#2719|CLI compare_rep_weights to compare ledger and hardcoded weights
    |#2707|Add difficulty and multiplier to CLI work generation commands
    |#2637|Read config file for CLI commands
    |#2594|Allow CLI --config values for inactive node tests
    |#2606|Launch flag --allow_bootstrap_peers_duplicates
    |#2575|Add flag for vote_processor capacity and tests
    |#2579|Configurable inactive votes cache size
    |#2435|Add CLI command for better LMDB compaction

    Deprecation/Removal

    |Pull Request|Title
    |:-:|:--
    |#2555|Disable UDP by default
    |#2769|Deprecate --batch_size/debug_mass_acitvity CLI options

    Developer Wallet

    |Pull Request|Title
    |:-:|:--
    |#2427|qt dev wallet deserialization fix
    |#2419|Set wallet representative with RPC receive on unopened accounts

    Developer/Debug Options

    |Pull Request|Title
    |:-:|:--
    |#2802|Clarify election difficulty update log message
    |#2793|Add logging section to rpc config to optionally disable logging
    |#2791|Fix insufficient work logging
    |#2762|Add cemented block log timings
    |#2746|Fix Xcode warnings
    |#2731|New stats for elections
    |#2591|friendly backtraces in actions
    |#2540|Lower beta network work threshold to 1/64x base
    |#2515|Additional ledger stats
    |#2489|Log when voting and warn if voting with more than one account
    |#2412|Fix work_cache_blocking logging bug

    Fixed Bugs

    |Pull Request|Title
    |:-:|:--
    |#2800|Fix open blocks not getting activated through dependencies
    |#2799|Slow test fixes
    |#2796|Retrieve block when activating dependencies
    |#2782|Stuck uncemented blocks after heavy load
    |#2781|Union std::hash coverage
    |#2767|Fix previous balance in active_transaction::insert ()
    |#2766|Votes from local representatives should not be flooded on processing
    |#2744|Tally votes on conflicting block with no inactive votes
    |#2733|Remove invalid uses of epoch_1 work threshold
    |#2723|Some confirmed block observer callbacks being missed
    |#2664|Incorrect cemented count during conf height algo transition
    |#2706|Prevent more rare deadlocks due to races for condition variables
    |#2651|Using relaxed atomics for counts not involved in control flow in conf height processor
    |#2696|Remove assert if a delayed work cache request is not found
    |#2652|Consistently add conflicting block to election
    |#2674|Modify inactive cache to prevent multiple insertions for confirmed
    |#2675|Prevent getting stuck in block processor flush
    |#2659|Signature checker blocking fix
    |#2650|Telemetry results not correctly utilising cache timeouts
    |#2648|Fix wrong number of representatives in confirmation solicitor
    |#2609|[RocksDB] Only delete from unchecked when existence is guaranteed
    |#2593|Start vote generator for changed winner only if voting is enabled
    |#2582|Check against op aborted on secure rpc acceptor shutdown
    |#2563|Fix election calling confirm_if_quorum after destruction
    |#2553|Inactive votes cache confirmation status
    |#2546|Restore max block processor signature verification batch size
    |#2530|Remove representatives with closed channels
    |#2527|Allow rep crawler targets with ephemeral ports
    |#2519|Resolving hostnames in distributed_work
    |#2502|Prevent possible issues with ledger contaning pending records only for burn account
    |#2488|Unchecked cache not handling duplicate entries or unchecked_clear
    |#2477|Support multiple work peers in the same host
    |#2472|Confirmation solicitor revamp
    |#2462|Process RPC incorrect enable_control checking when using watch_work
    |#2451|Avoid replying to confirm_req with repeated votes
    |#2438|Wallet representative counts consistency
    |#2429|Remove representation table during v15 upgrade
    |#2413|Fix distributed_work segfault when local work generation fails
    |#2405|Fix jumping peer stake total

    Implemented Enhancements

    |Pull Request|Title
    |:-:|:--
    |#2801|Sequential elections
    |#2785|Sequential voting
    |#2797|Check executable paths in load_test
    |#2778|Bisected election backtracking
    |#2784|Confirmation requests and broadcasts if available vote is for a conflicting block
    |#2565|Push front blocks from unchecked
    |#2768|Force node exit if ledger inconsistency in the conf height processor is found
    |#2772|Republishing a vote to principal representatives
    |#2759| Perform wallet representative action without holding any mutex
    |#2751|Serialize telemetry as big endian
    |#2730|Use a multi-index container to allow fifo queue for pending confirmations
    |#2728|Add active difficulty to node telemetry
    |#2715|Allow restarting elections with higher work
    |#2716|Release write_guard lock when no longer required
    |#2721|Remove confirmation requests for a new representative
    |#2720|Separate election state for the broadcasting block fallback
    |#2613|Move TCP messages processing to network threads
    |#2714|Improve batching of writes in unbounded conf height processor
    |#2710|Difficulty updates for elections with multiple blocks
    |#2709|Ensure propagation and removal for the work watcher
    |#2702|Vote generator session for batch insertions
    |#2669|Improve telemetry request/response under load
    |#2705|Ensure max_work_generate_difficulty is updated when changing the default difficulty
    |#2691|Active difficulty normalization
    |#2694|Prevent reconnecting to excluded peers with sufficient score
    |#2645|Rate limiting using token buckets
    |#2688|Move vote generator calls into election code
    |#2673|Epoch open blocks should have corresponding pending entries
    |#2692|Wrapper for RPC worker tasks
    |#2693|Move excluded_peers to network
    |#2690|Work version parameter in default_difficulty and use it in more places
    |#2680|Delay wallet work caching to allow using lower difficulty on demand
    |#2686|Improve automatic frontiers confirmation
    |#2627|Optimize vote post-processing operations
    |#2672|Refactor work thresholds as nano::work_thresholds
    |#2666|Delay voting for non-priority elections under saturation
    |#2676|Optimize mutex access when adding blocks to block processor
    |#2603|Remove peers with different genesis block or invalid telemetry signature
    |#2505|Directed block broadcasting for long elections
    |#2610|Remove telemetry message versions
    |#2662|Move all request aggregator operations out of the mutex hold scope
    |#2663|Check if a vote is for a recently confirmed block
    |#2638|Definitions for work thresholds with epoch_2
    |#2618|Sign telemetry messages
    |#2665|Output current function in assert diagnostics
    |#2661|Increase minimum time to log block processing
    |#2625|Improve confirmation consistency
    |#2631|Delay inactive/gap cache bootstrap start for 30 seconds
    |#2570|Parallelize state block signature verification with block processor
    |#2653|Include requesting telemetry metrics from temporary channels
    |#2649|Erase representatives with full queues when adding to confirmation solicitor
    |#2643|Network duplicate filter for publish messages
    |#2641|Increase active elections capacity with periodic full checks
    |#2646|Bandwidth considerations following election refactor
    |#2581|Use attempts list for TCP channels
    |#2640|Read transaction scope in active
    |#2604|Update adjusted difficulty in batches
    |#2626|Improve --debug_profile_bootstrap performance
    |#2620|Use the sideband when available in ledger.is_send
    |#2614|Simplify request aggregator mutex lock behavior
    |#2596|Attach sideband to block
    |#2616|Update preconfigured_peers comment regarding port
    |#2598|Simplify telemetry data processing
    |#2608|Lock before stopping when notifying other threads
    |#2605|Utility: nano::optional_ptr
    |#2601|Block difficulty and work validation cleanup
    |#2549|Aggressive flooding for local blocks
    |#2602|Don't use active mutex lock during confirmation solicitor.prepare ()
    |#2600|Reduce active mutex locking with election winner details
    |#2577|Minimize work validation calls
    |#2599|Block work version
    |#2590|Remove dropped_election_cache in preparation for election refactor.
    |#2589|Reworking confirmation_height.dependent_election test
    |#2592|[RocksDB] Limit write locks to necessary tables
    |#2573|Add peer timestamp to telemetry responses
    |#2585|Remove vote cache & generate new vote if election winner is changed
    |#2568|Output stacktrace with custom debug assert
    |#2583|warnings: Remove some unused locals and captures
    |#2534|Log stable filename
    |#2574|Add tests for vote_processor
    |#2544|Use a different confirmation height algorithm when ledger is almost fully cemented
    |#2572|Move back timer comments to header
    |#2567|Add GSL-style narrow_cast
    |#2559|Buffer drop policies
    |#2571|Use only the necessary protocols in UPnP
    |#2557|Add launch flag --disable_block_processor_unchecked_deletion
    |#2542|Separate inactive votes cache from gap cache
    |#2551|Return created election when adding to active_transactions
    |#2554|[ASAN] Access node through a weak_ptr on distributed_work dtor
    |#2552|Encapsulating election::confirmed so its implementation can vary.
    |#2548|Add wallet-processed block to work watcher via the block processor
    |#2518|Active_transactions updates blocks when updating difficulty.
    |#2543|Probabilistic network packet filter
    |#2521|Poll all nodes, remove outliers, ddos protection & amend RPC response with endpoint
    |#2541|Handle legacy confirm_req using the aggregator
    |#2531|Bounded memory and redesign in the confirmation height processor
    |#2536|Cache hash for multiple block->hash () calls
    |#2512|Cache genesis block hash in ledger constants
    |#2528|Improve initial TCP server keepalive
    |#2524|Extend telemetry data with more node versioning details
    |#2522|Optionally disable data in responses to telemetry requests with CLI option
    |#2468|Publish prototype
    |#2511|Cache account count
    |#2513| Avoid long read transactions for bootstrap
    |#2459|Publish cleanup
    |#2507|Adjust request aggregator stats
    |#2497|Vote replay in crawler
    |#2506|Clear peers and online weight after 1 week of inactivity
    |#2509|Refresh mutex lock after some consecutive requests without generation
    |#2504|Reinstate election request limit on the confirmation solicitor
    |#2501|Bounded request aggregator
    |#2464|Don't bind to UDP socket with --disable_udp flag
    |#2498|Emplacing wherever possible and other misc enhancements
    |#2482|Rep crawler cleanup
    |#2485|Request aggregator
    |#2437|Change processed blocks factor for requeued pulls
    |#2475|Remove unnecessary lock requirement in active_transactions::lock.
    |#2432|Generated votes cache size increase and upper bound
    |#2470|Use node reference instead of system.nodes[n] in unit tests more often
    |#2474|Use a strand in distributed_work
    |#2463|Adding forked votes to inactive vote cache.
    |#2452|Confirmation solicitor
    |#2449|Some code cleanup
    |#2458|Cache unchecked count
    |#2399|Add HOST header to distributed work request
    |#2448|Erase inactive votes cache after election stop / finish
    |#2447|Remove rolled back blocks list
    |#2455|New CLI command to generate a crash report
    |#2454|Global bandwidth limiter
    |#2453|Remove unused function
    |#2436|Socket buffer size error code
    |#2430|Improve uses of boost multi_index_container
    |#2428|Remove raw new operator used with smart pointers
    |#2425|Improve build times
    |#2388|Allow simultaneous test runs
    |#2398|Improve block deletion and RocksDB deletion in general

    Build, Test, Automation, & Chores

    |Pull Request|Title
    |:-:|:--
    |#2803|add label "logging" to Developer/Debug Options Sections
    |#2789|Epoch2 signer
    |#2792|update bundled FindBoost.cmake
    |#2790|use full cache for PR's requesting modules not currently specified in…
    |#2786|[TSAN] Fix off-by-one in socket.drop_policy test
    |#2783|enable shared boost for tests
    |#2779|Set boost min to 1.69
    |#2760|Fix intermittent failure in test wallet.work_cache_delayed
    |#2757|[TSAN] race for system in test websocket.bootstrap_exited
    |#2750|Fix network.tcp_no_connect_excluded_peers test failure
    |#2748|Fix minor test-specific intermittent failures
    |#2743|Fix node.fork_invalid_block_signature intermittent failures, re-enable on windows CI
    |#2745|Fix intermittently failing conflicts.adjusted_multiplier test
    |#2742|Fix system.generate_send_new intermittent failures
    |#2739|Fix rpc.wallet_history failures
    |#2738|Fix intermittent node_telemetry.remove_peer_different_genesis test
    |#2737|Fix intermittently failing rpc.confirmation_height_currently_processing test
    |#2735|Allow starting more that max_peers_per_ip test nodes
    |#2732|record_rep_weights to py3
    |#2722|changelog_generator refactored as changelog.py
    |#2717|Fix logic in active_transactions.prioritize_chains test
    |#2611|Preparation for building with shared boost
    |#2698|[TSAN] start_time data race in bootstrap_client
    |#2700|Add Security Policy file
    |#2708|Fix failure in ledger.work_validation due to random work being above threshold
    |#2712|Add node sequence for tests
    |#2711|[TSAN] lock order inversion in active transactions / wallet
    |#2699|Fix qt tests failing to click radio buttons
    |#2697|updates for fuzzer
    |#2695|Fix qt test wallet.seed_work_generation
    |#2687|set timeout to 1hr to catch tests that hang
    |#2682|Fix intermittent failure in active_transactions.confirmation_consistency
    |#2677|Fix intermittent wallet.work_watcher_update failure
    |#2670|clang included now
    |#2660|typo on windows sha256 Out-File
    |#2656|Fix node.aggressive_flooding
    |#2655|Update tick count in timer::update
    |#2647|gather sha256 hashes of artifacts and upload to s3 with artifacts
    |#2632|Fix request_aggregator unit tests
    |#2636|split docker artifacts to separate job
    |#2633|Add ASSERT_TIMELY
    |#2630|Make network.replace_port more robust under tsan
    |#2628|Make confirmation_solicitor.batches more robust under tsan
    |#2615|tsan fix: rpc.wallet_destroy
    |#2624|confirmation_height.modified_chain test fails on a non-debug build
    |#2621|Fix confirmation_height.gap_live intermittent test failure
    |#2623|[RocksDB] Tests not reading account count from store correctly
    |#2622|Host qt assets on s3
    |#2617|update url for sourceforge
    |#2612|Fix intermittent send_node_id_handshake unit test failures
    |#2607|CMakeLists backwards compatibility
    |#2597|Use C++17 locally, C++14 on CI
    |#2595|Fix rpc telemetry test timestamps
    |#2580|Improve confirmation_solicitor.batches test
    |#2587|[TSAN] vote_processor.flush test
    |#2586|[TSAN] confirmation_height.cemented_gap_below_receive test
    |#2584|tsan: race in telemetry::ongoing_single_request_cleanup
    |#2576|Fix intermittent node telemetry tests with tsan/valgrind
    |#2556| Update --debug_profile_bootstrap CLI test
    |#2564|Update --debug_profile_process CLI test
    |#2561|Disable node.fork_open_flip test on Windows actions
    |#2550|guard policy setting by version checks
    |#2547|BOOST_1.69
    |#2538|ASAN error with database transaction tracker json serialization
    |#2537|Update beta network bootstrap weights for v21, cutoff 7M
    |#2525|Define GCC sanitizers builds
    |#2523|Fuzz account, hex, dec and endpoint parsing
    |#2520|update fuzz_buffer
    |#2496|Buffer parser fuzzing
    |#2517|unstable tests on actions for windows
    |#2510|Fix bootstrap_exited segfault on macos
    |#2508|Update bootstrap tests to disable frontiers confirmation
    |#2503|update vc_redist url
    |#2500|Extend distributed_work.peer_malicious test to fix intermittent failure
    |#2492|remove clang-format guards as not needed on 8 or prior
    |#2495|A couple of clang static analysis fixes
    |#2491|Formatting fix so clang-format v8 applies cleanly
    |#2490|use clang-format-8
    |#2403|The start of CLI tests
    |#2486|use v1.1 for actions-aws-cli
    |#2476|Beta network reset #2
    |#2478|Add clang-format test back in
    |#2480|Fix some formatting issues on develop
    |#2479|Fix thread worker unit test so it handles repeat runs
    |#2465|Fixing some intermittent failures in unit tests, and some cleanup
    |#2457|Allow core_test retries until 7-1-2020 00:00(gmt)
    |#2450|use commit hash instead of tag for security
    |#2445|TRAVIS_TAG set for deploy-docker.sh
    |#2443|updates to README badging to reflect changes to actions
    |#2442|Migrate Travis and Appveyor into actions
    |#2433|Fix qt wallet build on Windows
    |#2426|Fix rpc_test build
    |#2411|Fix active_transactions not doing any confirmation request in tests


    Additional binary releases:


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

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA256
    
    Below are the sha256 sum hashes for version 21.0 Athena
    Signature Verification can be run against argakiig.asc in source repo (etc/gpg/)
    
    0d3c1a53d6fd893a4b2197d6e4507b9eb5f830cb9bc42e940762cc875c629067 *nano-21.0.tar.gz
    7612211b6685e8f46e4d764f8e48bb346d4bd386ef5f6748bee7e1980f87a954 *nano-21.0.tar.gz.sha256
    bb4b627996546063104d9ff6c7892c214ae3a124943c426ae008c1fd0371ee9f *nanocurrency-21.0-20.el7.src.rpm
    854aa2a542e031c56b5cb4baf05eb7c27d81caee69390892fb37601952285375 *nanocurrency-21.0-20.el7.src.rpm.sha256
    e63cbca8f4e4a5b22e277ba0c782d95aa3fca496501bde7b1df6206cc3303759 *nanocurrency-21.0-20.el7.x86_64.rpm
    181b02c047f943d4fa575232034c42d54d1d86370686666dabc48c5e182eddef *nanocurrency-21.0-20.el7.x86_64.rpm.sha256
    111e80245122e86cac9b1d2bf45ba9cf4725deee444c254b66ef08f3a6bff5ce *nano-node-V21.0.1-Linux.deb
    d9a8244c2940fc7f6617bb49b1b03b94f440c6a9165626d344733190e03e1833 *nano-node-V21.0.1-Linux.deb.sha256
    7dcdb17b2dbd7459e3a616d9f6aa9ee42e02decc93bc2c1cf89cb8284f1ee055 *nano-node-V21.0.1-Linux.tar.bz2
    8d0b4221279ba7cdba913637ead9f36bd1a5cdd8e2dfaafd1fe1ae66ba8b92fa *nano-node-V21.0.1-Linux.tar.bz2.sha256
    d837baf8a960db6a0ee3d44263f0cd8e5a8df21cbcacd7a05c4e9c673ff766b8 *nano-node-V21.0-Darwin.dmg
    0c4344cc805535d82e86f2ac1dc81afbb5604dc613fcef8cb028e7e8846509c4 *nano-node-V21.0-Darwin.dmg.sha256
    b27d1be9709672d12f170646122951bbfb73ef53a98bc3b0d71794a1dac50929 *nano-node-V21.0-win64.exe
    e3a3988947c2006d133ee8192e1831b9242f00658f4547e75b4c50d133c6c69b *nano-node-V21.0-win64.exe.sha256
    2cfecfe3266b8aea96452fb90c7a280a8909253729c419ed0cd283d7e4afa104 *nano-node-V21.0-win64.zip
    3a2fa206a2edb9920b9431055fae2fa746a00fcf7735d253cbc501f7e354fadf *nano-node-V21.0-win64.zip.sha256
    -----BEGIN PGP SIGNATURE-----
    
    iQEzBAEBCAAdFiEEc+pdEgPPsADHbxJjyW2zlQ3kDroFAl7pDsYACgkQyW2zlQ3k
    DrqiBQgArUy+LiFIvu4b4ut6cbEyoELCuh4MdKJAFwl6k2wnH0aFUwBcXPe/phcw
    N4woEND9f1e+I2U9Df9s8U6rQZpb8NXGrptVd+NPsc2Gs4OcjUx8iKd7TeiIoONa
    hGe23tVDW18YszrOxtl2+AJH9La02lxDunJ0htYmPemLqsVV24QO43elfyEi6asg
    xKsvWt3ihghQCgisMemFjc7IBTGReIAODoos/fVDD/nqlhRPQMuwE7G8u5R/7Pr/
    SxJMxlmesE40HhEcu2WfM8fXoH8ecnykb0qKpHrSB5bvieIodzoZUe1YxrXTcMs+
    jdeM1M2ViMSucGgABfTLJ9NXgPV4Ew==
    =wqQH
    -----END PGP SIGNATURE-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-21.0.tar.gz(17.29 MB)
    nano-21.0.tar.gz.sha256(83 bytes)
    nano-node-V21.0-Darwin.dmg(24.06 MB)
    nano-node-V21.0-Darwin.dmg.sha256(65 bytes)
    nano-node-V21.0-win64.exe(27.47 MB)
    nano-node-V21.0-win64.exe.sha256(66 bytes)
    nano-node-V21.0-win64.zip(33.57 MB)
    nano-node-V21.0-win64.zip.sha256(66 bytes)
    nano-node-V21.0.1-Linux.deb(73.56 MB)
    nano-node-V21.0.1-Linux.deb.sha256(94 bytes)
    nano-node-V21.0.1-Linux.tar.bz2(74.31 MB)
    nano-node-V21.0.1-Linux.tar.bz2.sha256(98 bytes)
    nanocurrency-21.0-20.el7.src.rpm(17.28 MB)
    nanocurrency-21.0-20.el7.src.rpm.sha256(99 bytes)
    nanocurrency-21.0-20.el7.x86_64.rpm(4.30 MB)
    nanocurrency-21.0-20.el7.x86_64.rpm.sha256(102 bytes)
  • V21.0RC1(Jun 10, 2020)

    CHANGELOG

    Release V21.0RC1

    Full Changelog

    Major Changes

    |Pull Request|Title
    |:-:|:--
    |#2545|Sideband upgrade using epoch byte for is_send/receive/epoch
    |#2487|IPC 2.0
    |#2535|Election state refactor
    |#2446|Node telemetry

    Protocol Changes

    |Pull Request|Title
    |:-:|:--
    |#2667|Validate work difficulty during ledger processing
    |#2683|Increase minimum supported protocol version to 17
    |#2701|Dont peer with v20 and earlier after epoch 2 block is seen

    Node Configuration Updates

    |Pull Request|Title
    |:-:|:--
    |#2588| LMDB sync options and new config settings
    |#2724|Clarify nano_pow_server configs are not in use
    |#2727|Safely read override values when no config file is present
    |#2787|Double default bandwidth limit config

    RPC Updates

    |Pull Request|Title
    |:-:|:--
    |#2689|BREAKING Change response for RPC work_validate with implicit difficulty
    |#2671|BREAKING Handle epoch_2 work thresholds in the wallet and most RPCs
    |#2499|BREAKING Bootstrap attempts and connections/pulls separation
    |#2560|Request telemetry data for local node
    |#2569|Work version concept
    |#2619|Election refactor follow up
    |#2684|Epoch 2 started flag in ledger cache
    |#2703|Difficulty calculation for RPC block_create
    |#2704|Asynchronous epoch upgrade RPC
    |#2718|Epoch upgrader as an async task
    |#2752|Result difficulty in RPC block_create
    |#2753| Flood difficulty updates from RPC process
    |#2754|Optional "block" given to RPC "work_generate" to infer difficulty
    |#2804|Make RPC name consistent with stats, websocket & protocol naming for telemetry

    IPC Updates

    |Pull Request|Title
    |:-:|:--
    |#2644|Add Flatbuffers schema evolution rules to IDL

    Websocket Updates

    |Pull Request|Title
    |:-:|:--
    |#2562|Fake websocket client to test the node websocket server
    |#2566|Incremental options for ws confirmation subscription
    |#2634|Add telemetry response websocket callbacks
    |#2729|Websocket new_unconfirmed_block
    |#2734|Websocket notification for RPC work_generate without peers
    |#2774|Enable WebSocket server by default in Docker image

    CLI Updates

    |Pull Request|Title
    |:-:|:--
    |#2579|Configurable inactive votes cache size
    |#2575|Add flag for vote_processor capacity and tests
    |#2606|Launch flag --allow_bootstrap_peers_duplicates
    |#2594|Allow CLI --config values for inactive node tests
    |#2637|Read config file for CLI commands
    |#2707|Add difficulty and multiplier to CLI work generation commands
    |#2719|CLI compare_rep_weights to compare ledger and hardcoded weights
    |#2725|CLI command for a frontier confirmation speed test
    |#2749|Multithreaded --validate_blocks
    |#2769|Deprecate --batch_size/debug_mass_acitvity CLI options
    |#2794|CLI commands incorrect ledger cache setup

    Deprecation/Removal

    |Pull Request|Title
    |:-:|:--
    |#2555|Disable UDP by default

    Developer/Debug Options

    |Pull Request|Title
    |:-:|:--
    |#2540|Lower beta network work threshold to 1/64x base
    |#2591|friendly backtraces in actions
    |#2731|New stats for elections
    |#2746|Fix Xcode warnings
    |#2762|Add cemented block log timings
    |#2791|Fix insufficient work logging
    |#2793|Add logging section to rpc config to optionally disable logging
    |#2802|Clarify election difficulty update log message

    Fixed Bugs

    |Pull Request|Title
    |:-:|:--
    |#2527|Allow rep crawler targets with ephemeral ports
    |#2530|Remove representatives with closed channels
    |#2546|Restore max block processor signature verification batch size
    |#2553|Inactive votes cache confirmation status
    |#2563|Fix election calling confirm_if_quorum after destruction
    |#2582|Check against op aborted on secure rpc acceptor shutdown
    |#2593|Start vote generator for changed winner only if voting is enabled
    |#2609|[RocksDB] Only delete from unchecked when existence is guaranteed
    |#2648|Fix wrong number of representatives in confirmation solicitor
    |#2650|Telemetry results not correctly utilising cache timeouts
    |#2659|Signature checker blocking fix
    |#2675|Prevent getting stuck in block processor flush
    |#2674|Modify inactive cache to prevent multiple insertions for confirmed
    |#2652|Consistently add conflicting block to election
    |#2696|Remove assert if a delayed work cache request is not found
    |#2651|Using relaxed atomics for counts not involved in control flow in conf height processor
    |#2706|Prevent more rare deadlocks due to races for condition variables
    |#2664|Incorrect cemented count during conf height algo transition
    |#2723|Some confirmed block observer callbacks being missed
    |#2733|Remove invalid uses of epoch_1 work threshold
    |#2744|Tally votes on conflicting block with no inactive votes
    |#2766|Votes from local representatives should not be flooded on processing
    |#2767|Fix previous balance in active_transaction::insert ()
    |#2781|Union std::hash coverage
    |#2782|Stuck uncemented blocks after heavy load
    |#2796|Retrieve block when activating dependencies
    |#2799|Slow test fixes
    |#2800|Fix open blocks not getting activated through dependencies

    Implemented Enhancements

    |Pull Request|Title
    |:-:|:--
    |#2522|Optionally disable data in responses to telemetry requests with CLI option
    |#2518|Active_transactions updates blocks when updating difficulty.
    |#2524|Extend telemetry data with more node versioning details
    |#2528|Improve initial TCP server keepalive
    |#2512|Cache genesis block hash in ledger constants
    |#2536|Cache hash for multiple block->hash () calls
    |#2531|Bounded memory and redesign in the confirmation height processor
    |#2541|Handle legacy confirm_req using the aggregator
    |#2521|Poll all nodes, remove outliers, ddos protection & amend RPC response with endpoint
    |#2543|Probabilistic network packet filter
    |#2552|Encapsulating election::confirmed so its implementation can vary.
    |#2548|Add wallet-processed block to work watcher via the block processor
    |#2554|[ASAN] Access node through a weak_ptr on distributed_work dtor
    |#2551|Return created election when adding to active_transactions
    |#2542|Separate inactive votes cache from gap cache
    |#2557|Add launch flag --disable_block_processor_unchecked_deletion
    |#2571|Use only the necessary protocols in UPnP
    |#2559|Buffer drop policies
    |#2567|Add GSL-style narrow_cast
    |#2572|Move back timer comments to header
    |#2544|Use a different confirmation height algorithm when ledger is almost fully cemented
    |#2574|Add tests for vote_processor
    |#2534|Log stable filename
    |#2583|warnings: Remove some unused locals and captures
    |#2568|Output stacktrace with custom debug assert
    |#2585|Remove vote cache & generate new vote if election winner is changed
    |#2573|Add peer timestamp to telemetry responses
    |#2592|[RocksDB] Limit write locks to necessary tables
    |#2589|Reworking confirmation_height.dependent_election test
    |#2590|Remove dropped_election_cache in preparation for election refactor.
    |#2599|Block work version
    |#2577|Minimize work validation calls
    |#2600|Reduce active mutex locking with election winner details
    |#2602|Don't use active mutex lock during confirmation solicitor.prepare ()
    |#2549|Aggressive flooding for local blocks
    |#2601|Block difficulty and work validation cleanup
    |#2605|Utility: nano::optional_ptr
    |#2608|Lock before stopping when notifying other threads
    |#2598|Simplify telemetry data processing
    |#2616|Update preconfigured_peers comment regarding port
    |#2596|Attach sideband to block
    |#2614|Simplify request aggregator mutex lock behavior
    |#2620|Use the sideband when available in ledger.is_send
    |#2626|Improve --debug_profile_bootstrap performance
    |#2604|Update adjusted difficulty in batches
    |#2640|Read transaction scope in active
    |#2581|Use attempts list for TCP channels
    |#2646|Bandwidth considerations following election refactor
    |#2641|Increase active elections capacity with periodic full checks
    |#2643|Network duplicate filter for publish messages
    |#2649|Erase representatives with full queues when adding to confirmation solicitor
    |#2653|Include requesting telemetry metrics from temporary channels
    |#2570|Parallelize state block signature verification with block processor
    |#2631|Delay inactive/gap cache bootstrap start for 30 seconds
    |#2625|Improve confirmation consistency
    |#2661|Increase minimum time to log block processing
    |#2665|Output current function in assert diagnostics
    |#2618|Sign telemetry messages
    |#2638|Definitions for work thresholds with epoch_2
    |#2663|Check if a vote is for a recently confirmed block
    |#2662|Move all request aggregator operations out of the mutex hold scope
    |#2610|Remove telemetry message versions
    |#2505|Directed block broadcasting for long elections
    |#2603|Remove peers with different genesis block or invalid telemetry signature
    |#2676|Optimize mutex access when adding blocks to block processor
    |#2666|Delay voting for non-priority elections under saturation
    |#2672|Refactor work thresholds as nano::work_thresholds
    |#2627|Optimize vote post-processing operations
    |#2686|Improve automatic frontiers confirmation
    |#2680|Delay wallet work caching to allow using lower difficulty on demand
    |#2690|Work version parameter in default_difficulty and use it in more places
    |#2693|Move excluded_peers to network
    |#2692|Wrapper for RPC worker tasks
    |#2673|Epoch open blocks should have corresponding pending entries
    |#2688|Move vote generator calls into election code
    |#2645|Rate limiting using token buckets
    |#2694|Prevent reconnecting to excluded peers with sufficient score
    |#2691|Active difficulty normalization
    |#2705|Ensure max_work_generate_difficulty is updated when changing the default difficulty
    |#2669|Improve telemetry request/response under load
    |#2702|Vote generator session for batch insertions
    |#2709|Ensure propagation and removal for the work watcher
    |#2710|Difficulty updates for elections with multiple blocks
    |#2714|Improve batching of writes in unbounded conf height processor
    |#2613|Move TCP messages processing to network threads
    |#2720|Separate election state for the broadcasting block fallback
    |#2721|Remove confirmation requests for a new representative
    |#2716|Release write_guard lock when no longer required
    |#2715|Allow restarting elections with higher work
    |#2728|Add active difficulty to node telemetry
    |#2730|Use a multi-index container to allow fifo queue for pending confirmations
    |#2751|Serialize telemetry as big endian
    |#2759| Perform wallet representative action without holding any mutex
    |#2772|Republishing a vote to principal representatives
    |#2768|Force node exit if ledger inconsistency in the conf height processor is found
    |#2565|Push front blocks from unchecked
    |#2784|Confirmation requests and broadcasts if available vote is for a conflicting block
    |#2778|Bisected election backtracking
    |#2797|Check executable paths in load_test
    |#2785|Sequential voting
    |#2801|Sequential elections

    Build, Test, Automation, & Chores

    |Pull Request|Title
    |:-:|:--
    |#2525|Define GCC sanitizers builds
    |#2537|Update beta network bootstrap weights for v21, cutoff 7M
    |#2538|ASAN error with database transaction tracker json serialization
    |#2547|BOOST_1.69
    |#2550|guard policy setting by version checks
    |#2561|Disable node.fork_open_flip test on Windows actions
    |#2564|Update --debug_profile_process CLI test
    |#2556| Update --debug_profile_bootstrap CLI test
    |#2576|Fix intermittent node telemetry tests with tsan/valgrind
    |#2584|tsan: race in telemetry::ongoing_single_request_cleanup
    |#2586|[TSAN] confirmation_height.cemented_gap_below_receive test
    |#2587|[TSAN] vote_processor.flush test
    |#2580|Improve confirmation_solicitor.batches test
    |#2595|Fix rpc telemetry test timestamps
    |#2597|Use C++17 locally, C++14 on CI
    |#2607|CMakeLists backwards compatibility
    |#2612|Fix intermittent send_node_id_handshake unit test failures
    |#2617|update url for sourceforge
    |#2622|Host qt assets on s3
    |#2623|[RocksDB] Tests not reading account count from store correctly
    |#2621|Fix confirmation_height.gap_live intermittent test failure
    |#2624|confirmation_height.modified_chain test fails on a non-debug build
    |#2615|tsan fix: rpc.wallet_destroy
    |#2628|Make confirmation_solicitor.batches more robust under tsan
    |#2630|Make network.replace_port more robust under tsan
    |#2633|Add ASSERT_TIMELY
    |#2636|split docker artifacts to separate job
    |#2632|Fix request_aggregator unit tests
    |#2647|gather sha256 hashes of artifacts and upload to s3 with artifacts
    |#2655|Update tick count in timer::update
    |#2656|Fix node.aggressive_flooding
    |#2660|typo on windows sha256 Out-File
    |#2670|clang included now
    |#2677|Fix intermittent wallet.work_watcher_update failure
    |#2682|Fix intermittent failure in active_transactions.confirmation_consistency
    |#2687|set timeout to 1hr to catch tests that hang
    |#2695|Fix qt test wallet.seed_work_generation
    |#2697|updates for fuzzer
    |#2699|Fix qt tests failing to click radio buttons
    |#2711|[TSAN] lock order inversion in active transactions / wallet
    |#2712|Add node sequence for tests
    |#2708|Fix failure in ledger.work_validation due to random work being above threshold
    |#2700|Add Security Policy file
    |#2698|[TSAN] start_time data race in bootstrap_client
    |#2611|Preparation for building with shared boost
    |#2717|Fix logic in active_transactions.prioritize_chains test
    |#2722|changelog_generator refactored as changelog.py
    |#2732|record_rep_weights to py3
    |#2735|Allow starting more that max_peers_per_ip test nodes
    |#2737|Fix intermittently failing rpc.confirmation_height_currently_processing test
    |#2738|Fix intermittent node_telemetry.remove_peer_different_genesis test
    |#2739|Fix rpc.wallet_history failures
    |#2742|Fix system.generate_send_new intermittent failures
    |#2745|Fix intermittently failing conflicts.adjusted_multiplier test
    |#2743|Fix node.fork_invalid_block_signature intermittent failures, re-enable on windows CI
    |#2748|Fix minor test-specific intermittent failures
    |#2750|Fix network.tcp_no_connect_excluded_peers test failure
    |#2757|[TSAN] race for system in test websocket.bootstrap_exited
    |#2760|Fix intermittent failure in test wallet.work_cache_delayed
    |#2779|Set boost min to 1.69
    |#2783|enable shared boost for tests
    |#2786|[TSAN] Fix off-by-one in socket.drop_policy test
    |#2790|use full cache for PR's requesting modules not currently specified in…
    |#2792|update bundled FindBoost.cmake
    |#2789|Epoch2 signer
    |#2803|add label "logging" to Developer/Debug Options Sections

    Source code(tar.gz)
    Source code(zip)
    nano-node-V21.0RC1-Darwin.dmg(25.03 MB)
    nano-node-V21.0RC1-Darwin.dmg.sha256(65 bytes)
    nano-node-V21.0RC1-Linux.tar(220.68 MB)
    nano-node-V21.0RC1-Linux.tar.bz2.sha256(65 bytes)
    nano-node-V21.0RC1-win64.exe(31.41 MB)
    nano-node-V21.0RC1-win64.exe.sha256(66 bytes)
    nano-node-V21.0RC1-win64.zip(39.67 MB)
    nano-node-V21.0RC1-win64.zip.sha256(66 bytes)
  • V20.0(Nov 12, 2019)

    Change Log

    Release V20.0 (2019-11-12)

    Full Changelog

    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]

    Fixed bugs:

    • Update live bootstrap_weights [#2404]
    • Node id handshake container not protected during push [#2402]
    • Warn if control is enabled with non-local bind address [#2401]
    • [ASAN] UPNP url memory leak [#2397]
    • Updates to TOML generated docs [#2396]
    • update dockerfile to use cached rocksdb [#2395]
    • [TSAN] Data race in active_difficulty.recalculate_work test [#2393]
    • Fix occasional failures for core_test.distributed_work* tests [#2392]
    • use cached build artifacts [#2391]
    • Incorrect total memtable size used with RocksDB [#2390]
    • [Valgrind] Various uninitialized data accesses [#2389]
    • Fix early return preventing mutex lock in attempt_restart_check [#2387]
    • Prevent concurrent bootstrap populate_connections () [#2386]
    • [Valgrind] Uninitialized memory in distributed_work.no_peers test [#2384]
    • Add mutex lock to RPC bootstrap_status [#2383]
    • Fix lazy mutex unlock via mutex [#2382]
    • Target osx 10.12 deployment [#2381]
    • RPC block_create fixes [#2380]
    • [ASAN] memory leak between tcp channels and sockets [#2378]
    • Add error handling to RPC process without json_block [#2377]
    • Stop work generation before stopping threads waiting for work [#2375]
    • regex check for beginning of string -v allowing --vacuum to fall through [#2374]
    • Fix link ordering issue in core_test (ubuntu/boost 1.71) [#2373]
    • allow for updated TARGET usage by updating cmake in nano-env:base [#2372]
    • Adjust single-hash confirm requests [#2371]
    • Improve distributed_work stopping with ongoing worker tasks [#2369]
    • Fix non-restarting timer in vote processor log [#2368]
    • Badge URLs [#2367]
    • Do not increase pull attempts counter after network errors [#2366]
    • Latest release, latest tag and discord badges [#2364]
    • 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]
    • Secondary list of peers for generating work [#2330]
    • 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]
    • Quality of life updates for distributed work [#2308]
    • ws keepalive [#2307]
    • Active elections loop tuning [#2306]
    • 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]
    • TOML config file support and migration [#2221]
    • 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]
    • Update node ID to use node_ instead of nano_ prefix [#2181]
    • 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]
    • 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]

    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.0
    Signature verification can be done against the signature for argakiig in the source
    code repository (etc/gpg/)
    f762b74b209aae4d0e8b41b87cb39224c58600bfe693d8c4b417a70ed32e8a7b *nano-20.0.tar.gz
    c4bd90aba5ce18f69f2335a6e268e8f0708b83cd1ec1ce1ad1ecb0846518ec95 *nanocurrency-20.0-19.el7.src.rpm
    111b3540e6508267d77e3a042e6195057c02c00928ebf985fd6bd9bb74f22db2 *nanocurrency-20.0-19.el7.x86_64.rpm
    977e07268f9da89debfa4dba0ff6575ac6d8379d5d9cf9d6e29adc00d607e176 *nanocurrency-debuginfo-20.0-19.el7.x86_64.rpm
    b770c78e7bbce29604b9d83edf36498319b3d568f1d1a9132acdb004f3e20ce4 *nano-node-V20.0-Darwin.dmg
    ab03b67acf7114fce73a8ff0582bf375f959311b4b8b85938164149e21dce5a4 *nano-node-V20.0-Linux.tar
    353010b60631ee7af898792f5d8ef6d19330284497985effc7985fa3bec308e3 *nano-node-V20.0-win64.exe
    92f730c20e11ee7d12c6c9c6f5b68b2d25c8c491a797a74bf6aea3500db54325 *nano-node-V20.0-win64.zip
    -----BEGIN PGP SIGNATURE-----
    
    iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAl3LWKcACgkQgERoJPn9
    OlqJ7wgAjrSm5/I1lhriFkPsetigaoZnF3SWf/nNE+9neiXoSzMl1J0z5b1eA8cT
    XolvkiBoYsBuRKbC3JuKSoFlv84OePKCJZvuhxgApCNdKw7C6g1KQ/TQnOoopAY6
    Q+fzUSMKmX5u7wcRD/0f4Y1vgdqoopj6eILpzw3zvOoNGeX0oMwpOPkJp9xkRVxL
    AcUUkpy6uz64SdjCMuLxMBSjmZaNr2M7nsOPQvonR7trjjd833qLhCyr808PfLuW
    88R3XgMc+/wICVSPOVkV2BNZ+Q03juTK4vi93si82rPm/+MnYAtRRDth5O6OtkBL
    lq5zoRIjGvUtPpHvn/Q47ck27KZR9g==
    =dCo6
    -----END PGP SIGNATURE-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-20.0.tar.gz(15.36 MB)
    nano-node-V20.0-Darwin.dmg(22.35 MB)
    nano-node-V20.0-Linux.tar(72.50 MB)
    nano-node-V20.0-win64.exe(27.72 MB)
    nano-node-V20.0-win64.zip(33.82 MB)
    nanocurrency-20.0-19.el7.src.rpm(15.35 MB)
    nanocurrency-20.0-19.el7.x86_64.rpm(3.80 MB)
    nanocurrency-debuginfo-20.0-19.el7.x86_64.rpm(670.36 KB)
    zlib1.dll(83.00 KB)
  • V20.0RC3(Nov 8, 2019)

    Change Log

    Release V20.0RC3 (2019-11-08)

    Full Changelog

    Implemented enhancements:

    • Improve bootstrap frontiers confirmation [#2394]
    • Lazy bootstrap memory usage improvements [#2385]

    Fixed bugs:

    • Update dockerfile to use cached rocksdb [#2395]
    • [TSAN] Data race in active_difficulty.recalculate_work test [#2393]
    • Fix occasional failures for core_test.distributed_work* tests [#2392]
    • use cached build artifacts [#2391]
    • Incorrect total memtable size used with RocksDB [#2390]
    • [Valgrind] Various uninitialized data accesses [#2389]
    • Fix early return preventing mutex lock in attempt_restart_check [#2387]
    • Prevent concurrent bootstrap populate_connections () [#2386]
    • [Valgrind] Uninitialized memory in distributed_work.no_peers test [#2384]
    • Add mutex lock to RPC bootstrap_status [#2383]
    • Fix lazy mutex unlock via mutex [#2382]
    • Target osx 10.12 deployment [#2381]
    • RPC block_create fixes [#2380]
    • [ASAN] memory leak between tcp channels and sockets [#2378]

    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.0RC3
    Signature verification can be done against the signature for argakiig in the source
    code repository (etc/gpg/)
    
    9f9d050e126889d3315423102517878f7a9c32c68eb7396b1451ecc9c1b00f42 *nano-20.0RC3.tar.gz
    e8878f70be68badec571491a0071647885f5718bb356d57ebca59d14c7c5a946 *nanocurrency-beta-20.0RC3-18.el7.src.rpm
    854b42d35efe525ee5e5dc9841d4c8a38919da69aefb1b0df87fa43006c059dc *nanocurrency-beta-20.0RC3-18.el7.x86_64.rpm
    426c3409022f6dd721e4db1d7b63012038b418ea7991522f9babdde8ed443a5c *nanocurrency-beta-debuginfo-20.0RC3-18.el7.x86_64.rpm
    dc8a1d6b483f40d7da4383f2919c80c81f2e1581bd85f84e7246ba67e7ee1a69 *nano-node-V20.0RC3-Darwin.dmg
    14622f4c94cc68640e3cc60d2dedc85ab40f7ead990b777247a3b73b6a0892e7 *nano-node-V20.0RC3-Linux.tar.bz2
    7de725e5299345e07e444dc2e17b28ad0c9bd2992615a3361d7871f1b67a1428 *nano-node-V20.0RC3-win64.exe
    936f9f500def703b34b2386f4b50a79e905e973cd2b20e2b2945b3cb4106de64 *nano-node-V20.0RC3-win64.zip
    -----BEGIN PGP SIGNATURE-----
    
    iQEyBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAl3F4jIACgkQgERoJPn9
    Olp/0Qf4jeshaWLlNpZ97Oyct1hQwzBzOZxczKdDtBLh2Pe49Qw6Edyw+01140T2
    XUM+ZUjLGaJiz9m/4srY9CO6TahYSDITl9Kk/KJ1N0rwGaqFTW7pFnisgcfkASJ7
    yO2LomBuZ+S6XDsUqThwjdVxayg6qxUSzCQ7X1MNwOrKlGB5wcUTdhHR9eqgYPwQ
    UqRK+nJTDYta/ccFuqHnZRr/x5gm9WHtijF/76pkSpuj+dGDOFz9lL5CJUSMxPxV
    dKDcxcM9hgLIs/13rmev/L29FGSp1dpi3caQbpwZwLwxqL2SX9Sbkjtt7LZHqbIi
    jKEefNk92N6SnykmiHJUjl4dkBGE
    =3QFc
    -----END PGP SIGNATURE-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-20.0RC3.tar.gz(15.34 MB)
    nano-node-V20.0RC3-Darwin.dmg(23.40 MB)
    nano-node-V20.0RC3-Linux.tar.bz2(205.73 MB)
    nano-node-V20.0RC3-win64.exe(30.93 MB)
    nano-node-V20.0RC3-win64.zip(39.18 MB)
    nanocurrency-beta-20.0RC3-18.el7.src.rpm(15.33 MB)
    nanocurrency-beta-20.0RC3-18.el7.x86_64.rpm(3.79 MB)
    nanocurrency-beta-debuginfo-20.0RC3-18.el7.x86_64.rpm(670.46 KB)
  • V20.0RC2(Nov 1, 2019)

    Change Log

    Release V20.0RC2 (2019-11-01)

    Full Changelog

    Implemented enhancements:

    • Vacuum after upgrade [#2370]
    • Use std::condition_variable_any with timed locking [#2365]
    • Lazy bootstrap retry limit [#2362]

    Fixed bugs:

    • Add error handling to RPC process without json_block [#2377]
    • Stop work generation before stopping threads waiting for work [#2375]
    • regex check for beginning of string -v allowing --vacuum to fall through [#2374]
    • Fix link ordering issue in core_test (ubuntu/boost 1.71) [#2373]
    • allow for updated TARGET usage by updating cmake in nano-env:base [#2372]
    • Adjust single-hash confirm requests [#2371]
    • Improve distributed_work stopping with ongoing worker tasks [#2369]
    • Fix non-restarting timer in vote processor log [#2368]
    • Badge URLs [#2367]
    • Do not increase pull attempts counter after network errors [#2366]
    • Latest release, latest tag and discord badges [#2364]

    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.0RC2
    Signature verification can be done against the signature for argakiig in the source
    code repository (etc/gpg/)
    
    fa5b647b585959ac17ef278e2860732c7fa7114f49de5ed2eff34f8c3ddefd9b *nano-20.0RC2.tar.gz
    21b7dca5079c6f85c318c99e598bfadada6ca9156e30de435117338b0db447be *nanocurrency-beta-20.0RC2-17.el7.src.rpm
    9d4dde900f84ad88895ee35a31aa560f73995aa5299c49ef672ed8a4be29031f *nanocurrency-beta-20.0RC2-17.el7.x86_64.rpm
    40c3fc31f474923f5975ee24f8b470466e0f59216763f750eed06509fe76c3af *nano-node-V20.0RC2-Darwin.dmg
    867d472fc85933b880746002a958dc9d5d04acce083fa728ef46243d223aa12b *nano-node-V20.0RC2-Linux.tar
    ea1bfe84e4512c4aeef68ef787f49e652d4bb954485189fcb398189ed217a1f7 *nano-node-V20.0RC2-win64.exe
    01c4ac1b67209ddf35d1487fa9717328bdf498206f2f91a7b253a265aa15f1fe *nano-node-V20.0RC2-win64.zip
    -----BEGIN PGP SIGNATURE-----
    
    iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAl28f1UACgkQgERoJPn9
    Olr1UAf/duEm8bRHsBGFcpMJUX3tWw26MVz99vflr5yZy38TomHe9OMg6UDY6b/w
    KNHVUbUkkV5ZioaTlpedKaTUVYq/olnP6zlgiSVyrph9DBUjS3mrtsKNdt/QjwXU
    03+AmePGWXHrB/4vc3n1kt+NHaUA9hJdLr45jbkkIztN2xJX6eilst45/gsVeoR5
    LBZ3vQjTgFfaTDeMoq2mrGvrr8kJHlrrvJ5H2NcbfVLmZe8ORirf465gR8Y6OUak
    2Ydoxcxl7cd470dHm+WE0ovKK7+v6Mr4+1nCq3yqDhOTBRZeZMO0oExXc3PKNZ4X
    TilwM5P01P9PhU9K09ieKffXPzHpeg==
    =ENlY
    -----END PGP SIGNATURE-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-20.0RC2.tar.gz(15.34 MB)
    nano-node-V20.0RC2-Darwin.dmg(23.73 MB)
    nano-node-V20.0RC2-Linux.tar(211.21 MB)
    nano-node-V20.0RC2-win64.exe(30.93 MB)
    nano-node-V20.0RC2-win64.zip(39.17 MB)
    nanocurrency-beta-20.0RC2-17.el7.src.rpm(15.33 MB)
    nanocurrency-beta-20.0RC2-17.el7.x86_64.rpm(3.79 MB)
  • V20.0RC1(Oct 25, 2019)

    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-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-20.0RC1.tar.gz(15.34 MB)
    nano-node-V20.0RC1-Darwin.dmg(20.11 MB)
    nano-node-V20.0RC1-Linux.tar.bz2(210.72 MB)
    nano-node-V20.0RC1-win64.exe(30.91 MB)
    nano-node-V20.0RC1-win64.zip(39.14 MB)
    nanocurrency-beta-20.0RC1-16.el7.src.rpm(15.33 MB)
    nanocurrency-beta-20.0RC1-16.el7.x86_64.rpm(3.78 MB)
    nanocurrency-beta-debuginfo-20.0RC1-16.el7.x86_64.rpm(668.94 KB)
  • V19.0(Jul 11, 2019)

    Change Log

    Release V19.0 (2019-07-11)

    Full Changelog

    Major Changes:

    • RPC server is moved to a new process [#1874]
    • Trending active_transactions difficulty for an average [#1858]
    • Add confirmation height [#1770]
    • Add support for realtime network traffic over the bootstrap TCP port [#1548]

    Implemented enhancements:

    • Move confirm_frontiers higher up request loop [#2141]
    • Cleanup inactive channels from rep crawler [#2132]
    • Improve broadcast_confirm_req_batch delays and max size [#2130]
    • More aggressive setting confirmation height of frontiers during low tps [#2126]
    • Send confirm_req each request_confirm loop [#2125]
    • Always notify on active difficulty updates [#2109]
    • Fix intermittent test issue and cleanup unused vars [#2108]
    • Improve batching multiple blocks pending confirmation height processing [#2105]
    • Add observer stats for confirmations [#2100]
    • Use default vote_generator_delay if missing (for RC updates) [#2093]
    • Web socket subscription for active difficulty [#2091]
    • Bidirectional TCP sockets [#2087]
    • Move WebSocket confirmation_type into message [#2079]
    • Only pass active confirmations to the http callback [#2078]
    • Don't start confirm_frontiers () if elections count > active_elections_size [#2076]
    • Use correct index when iterating prioritized frontiers [#2069]
    • Add launch flag --disable_udp [#2063]
    • Use a convenient global instead of passing use_memory_pools explicitly [#2059]
    • Add active container observer [#2058]
    • Make announcement_long delay 2 rounds [#2056]
    • active_transaction.roots bounding by config instead of confirmation rate [#2051]
    • Configurable confirmation history container [#2049]
    • Don't escalate confirmed previous/source for elections [#2048]
    • Attempt to start TCP connections to known UDP peers [#2045]
    • Update broadcast_confirm_req to use confirm_req by hash [#2036]
    • Move SYN cookies & response channels to separate classes [#2029]
    • Add configurable vote generator delay and bundling test [#2028]
    • Use a memory pool to reduce block deserialization heap usage [#2025]
    • Factor out network [#2024]
    • Increase server timeout to receive TCP header [#2022]
    • Capture SIGINT and SIGTERM to clean up sockets [#2018]
    • Set minimum difficulty for RPC "work_generate" [#2006]
    • Fix off by one error in frontier req server [#1992]
    • Bounded active transaction [#1990]
    • Prioritize frontiers for background confirmation [#1982]
    • Finish up difficulty/multiplier semantics in RPC work_generate and work_validate [#1981]
    • Move io_threads to rpc process config node [#1980]
    • Add specific rpc process config options [#1977]
    • Add severity logging levels, and send errors to syslog/Event Viewer (incl failed rollbacks for confirmed blocks) [#1973]
    • Framing support for realtime network messages [#1972]
    • Move common UDP/TCP channels functions to transport [#1971]
    • Fixing dynamic re-work and trend from elections [#1968]
    • Makes sure a write lock can be avoided when launching an inactive_node [#1967]
    • Send live network messages over TCP [#1962]
    • Backup config files when upgrading [#1959]
    • Pass command line arguments (network/data_path) to nano_rpc child process [#1957]
    • Simple ledger validation CLI command [#1956]
    • Reduce length holding read transaction open for in confirmation height processor [#1954]
    • Print info about network and path, when running daemon [#1953]
    • Allow long running read transactions to be broken up [#1951]
    • Fix our warnings [#1942]
    • TSAN suppressions file [#1941]
    • Make new random_constants class for not_an_account [#1928]
    • Try to fix some version-specific clangformat formatting issues [#1927]
    • Activate confirm_req_hashes for beta network [#1926]
    • Set defaults for block_sideband [#1922]
    • Add more information after a segmentation fault [#1921]
    • Replace xxHash with blake2b [#1919]
    • Add CLI command for dumping any frontier-unchecked key matches [#1915]
    • Cleanup test files on Windows after executing test binary [#1910]
    • Immediately stop inactive node active_transactions loop [#1909]
    • Websockets - subscribe to votes [#1908]
    • Websockets - filtering options [#1907]
    • Websockets - check for subscriptions before proceeding [#1906]
    • Remove delay exiting node in request processor [#1904]
    • Add pulls cache for long bootstraps [#1903]
    • Update confirmation heights with new async timing [#1899]
    • Delete unused rpc.cpp [#1897]
    • Recalculate work from wallet [#1895]
    • Port config cleanup, allow running tests alongside beta node [#1891]
    • Remove vote generator delay [#1889]
    • Add copying operation to block builder [#1886]
    • Create new node ID on each launch & support keepalive with preferred ports [#1885]
    • Reduce work.eco_pow intermittent failure rate [#1882]
    • Update confirmation height in another thread [#1877]
    • When clearing confirmation heights set the genesis account to be 1 [#1875]
    • RPC server is moved to a new process [#1874]
    • Refactor preparation for moving RPC out of process [#1872]
    • Remove ed25519 and lib library circular dependency [#1870]
    • Remove circular dependency between secure <-> lib libraries [#1867]
    • Various minor coding style updates [#1863]
    • Trending active_transactions difficulty for an average [#1858]
    • Reinstate preconfigured keepalives [#1854]
    • clang for travis [#1846]
    • Support sending decimals from QT wallet [#1843]
    • Allow block_processor variables tuning with launch flags [#1842]
    • Websocket support [#1840]
    • Add the concept of message channels to the node. [#1837]
    • Moving network sizing functions [#1836]
    • Separating the concepts of: [#1835]
    • Renaming udp_buffer to message_buffer [#1834]
    • Removing send_confirm_req functions [#1833]
    • Add difficulty limit for RPC "work_generate" in config.json [#1830]
    • Clean up and simplify calls to get buffers to messages. [#1829]
    • Externally connect to the tcp socket [#1828]
    • Move RPC out of node process [#1827]
    • Rename republish_x to flood_x to better describe what we're doing. [#1825]
    • Remove node_id_version [#1824]
    • Remove nano::network::on [#1823]
    • RPC account_history add block height and optional reverse [#1822]
    • Periodically check for unconfirmed frontiers and start elections [#1821]
    • Get account history starting at a block and ending in head [#1820]
    • Log wallet lock/unlock [#1817]
    • Start elections for all forks of unconfirmed blocks [#1815]
    • Output error if lmdb env cannot be opened [#1811]
    • Use adjusted difficulty for trees in active transactions [#1810]
    • Use to_bytes in bootstrap as well [#1807]
    • Require standard layout in mdb_val [#1806]
    • RPC accounts_pending - sort by amount [#1804]
    • Improve representative crawler [#1803]
    • Confirmation height enhancement [#1801]
    • Improve CLI --wallet_import [#1800]
    • Support difficulty for RPC "work_generate" [#1798]
    • Replace nested if/else with map for no argument rpc_handler functions [#1796]
    • Add TCP server timeout [#1790]
    • Time limited logging [#1789]
    • Use the error code overloads for socket shutdown/close [#1786]
    • Don't output useless log file entries [#1785]
    • Include all representatives with delegated weight in online representatives list [#1784]
    • Support difficulty for RPC "work_generate" [#1780]
    • Support difficulty for OpenCL generate_work () [#1775]
    • Add subtype field for state blocks in RPC block_info, blocks_info [#1774]
    • Add confirmation height [#1770]
    • RPC config versioning, remove unused options [#1768]
    • Cleanup unused member functions in secure library and various other cleanups [#1764]
    • Use optimized Argon2 source for all x86_64 builds [#1762]
    • Improve rep tracking [#1756]
    • Check that full is not empty and assert [#1753]
    • Remove implicitly converted argument [#1751]
    • Support difficulty for OpenCL PoW [#1749]
    • RPC pending - sort by amount [#1748]
    • Ability to limit CPU rate for POW [#1734]
    • --diagnostics CLI option to check & update config.json file [#1733]
    • Network selector [#1729]
    • RPC unopened [#1727]
    • Investigate supporting the Expect header in RPC [#1671]
    • Check if block processor is full in bulk push server [#1668]
    • Allow block_processor variables tuning with launch flags [#1660]
    • Slight OpenCL improvements [#1634]
    • Add support for realtime network traffic over the bootstrap TCP port [#1548]
    • RPC Account history filter [#1355]
    • PoW Client Compute and Resend Work based on network load [#1336]
    • Enhancement Request: Update Ledger RPC action to show unopened accounts with pending balance [#1166]
    • Update HTTP Callback to Support HTTP keep-alive [#1125]
    • Enhancement Request: add optional account_filter option to account_history RPC [#1110]
    • Easy way to switch between beta/live network [#1099]
    • RPC/CLI inconsistency with wallet_change_seed [#793]
    • Official wallet doesn't support decimals [#247]
    • Add information to logs about password & wallet unlock [#92]

    Fixed bugs:

    • pre release maintenance [#2146]
    • Set genesis account to have a confirmation height of 1 after initial upgrade [#2144]
    • set default active_election_size to 50k [#2143]
    • Strange TSAN warnings running nano_rpc & making simultaneous requests [#2140]
    • test validating #2116 [#2138]
    • RPC stop action can take a long time to close the node down [#2135]
    • Improve assert in TCP node_id_handshake [#2133]
    • [TSAN] Use only async signal safe functions in signal handlers [#2131]
    • tsan: missing lock in ws active_difficulty unit test [#2129]
    • Improve assert in tcp_channels::process_message () [#2127]
    • Docker cache [#2121]
    • update default limit to (5 * 1024 * 1024) or 5Mb/s [#2119]
    • remove else and always flush if over config.json active_elections_size [#2116]
    • only log if blocks have been processed and logging enabled [#2115]
    • fix windows installer path [#2112]
    • Use confirmation request count instead of announcement term [#2111]
    • Minor Readme file updates [#2107]
    • Flag to disable TCP realtime network [#2103]
    • Fix locking issue and intermittent failure in rpc.active_difficulty [#2102]
    • Test bug introduced by #2090 [#2101]
    • Add ability to clear stats from Qt wallet [#2099]
    • TCP: Don't connect to or log invalid peers [#2097]
    • Fix vote_generator loop inconsistency during high load [#2095]
    • Formatting issues on master [#2094]
    • Optional include_trend for RPC active_difficulty [#2090]
    • Add optional cemented count to block_count RPC command [#2089]
    • Fix duplicate iterating in conf height processor with self and circular sends [#2088]
    • Update slow_test [#2086]
    • Use node_flags for delay_frontier_confirmation_height_updating [#2085]
    • Add optional argument to block_count RPC for including cemented blocks [#2083]
    • Prevent multiple observer calls for confirmed block [#2082]
    • Provide test for WS topic election_stopped and fix bad topic/content [#2081]
    • Create websocket subscription for active_difficulty changes [#2080]
    • Use the MDB_NOMEMINIT flag with the ledger db environment [#2077]
    • Remove copies of blocks container from network::flood_block_batch [#2075]
    • Fix ASAN issue in ws unit tests [#2074]
    • [Valgrind] Increase deadline timer in the rpc.simultaneous_calls test to account for valgrind slowness [#2073]
    • Fix assorted compiler warnings [#2071]
    • Factor out online_reps and gap_cache [#2070]
    • Disable memory pools when running on Mac [#2067]
    • Websocket/extended confirmation support [#2066]
    • Consistently send TCP keepalives [#2064]
    • Limit socket queue_size [#2062]
    • Fix TSAN error with work_watcher [#2061]
    • TSAN error for send_node_id_handshake test [#2060]
    • Reduce lock time in UDP ongoing keepalive [#2057]
    • Check if existing block is already confirmed in active_transactions add [#2055]
    • Handle accounts which have the same number of uncemented blocks when prioritizing frontiers [#2053]
    • Ledger tests related to epoch conflicts [#2052]
    • Fix deadlock in tests (Continued) [#2050]
    • Use a pool allocator for shared_ptrs with blocks, elections and votes [#2047]
    • Remove count byte from confirm_req by hash [#2046]
    • Remove unused std::expected library [#2044]
    • Fix deadlock in tests [#2043]
    • Fix initialization order bug in nano::node [#2042]
    • Factor out vote processor [#2041]
    • Add node_constants half_period [#2040]
    • update docker config template and include default rpc config [#2038]
    • Change gap cache voters to use a vector [#2037]
    • Bandwidth limiting [#2035]
    • Support for boost 1.70 in load tester [#2034]
    • Remove node dependency from secure library [#2033]
    • Include ordering fix [#2031]
    • Factor out election [#2030]
    • Remove unnecessary copies when using lmdb cursors [#2026]
    • Sort includes by category using clang-format [#2023]
    • Increase tcp_io_timeout for test TSAN/ASAN builds [#2019]
    • Bump protocol version [#2017]
    • Update stringstream test sink to bounds check the strings [#2016]
    • remove sleep from test [#2015]
    • Add threshold optional to RPC unopened and ledger [#2014]
    • Fix TSAN error for the rpc.database_txn_tracker test [#2013]
    • active_transactions test cleanup [#2012]
    • Update test script [#2011]
    • Join threads in socket tests [#2009]
    • generate difficulty was passing hash by ref [#2008]
    • WebSocket fixes and improvements [#2007]
    • Rename active_difficulty RPC response [#2005]
    • active_transactions.prioritize_chains timing fix [#2004]
    • Decrease logging level for "Reserved sender" message [#2003]
    • Fix TSAN error with test confirmation_height.conflict_rollback_cemented [#2002]
    • Websockets: prevent re-sub [#2001]
    • Remove debugging assert from socket [#2000]
    • use correct namespace to fix literal usage in active_transactions [#1999]
    • Fix load tester for mac with boost 1.69 [#1998]
    • Fix RPC secure build [#1997]
    • Fix test by disabling confirmation, as a result the block wont be con… [#1996]
    • Reinstate debug_rpc command [#1995]
    • Apply Blake2b AVX2 changes [#1994]
    • Clean up json upgrade code/unused variables [#1993]
    • Test peer caching on node restart [#1991]
    • Rewrite load tester in C++ [#1989]
    • Add unnecessary lambda capture to please VS2017 [#1988]
    • Show opencl device memory stats [#1987]
    • Fix UDP channels insert [#1986]
    • Update config path on macos/boost 1.69 [#1985]
    • Work multiplier format and RPC work_validate fix for lower difficulties [#1984]
    • Fix race when notifying bootstrap initiator listeners [#1983]
    • Add modify callback to prevent violating boost multiindex invariants [#1979]
    • Prevent (optionally) block processor batched writes from being logged by the lmdb tracker [#1978]
    • Remove unnecessary --debug_validate_ledger CLI option [#1974]
    • Version and allow_unsafe upgrade in ipc config [#1970]
    • No longer use bin & lib sub-folders in the installers [#1969]
    • Fix tests failing after PR#1939 [#1966]
    • Stop node when using an incompatible ledger [#1964]
    • nano_rpc included in packaging [#1961]
    • updating work_watcher::run [#1960]
    • Fix difficulty check assert in work_pool [#1958]
    • Add pull request failure to stats [#1955]
    • Fix RPC block_create error getting overridden [#1952]
    • Add blocks_not_found in RPC blocks_info response rather than an error [#1950]
    • Fix regression introduced by 100-continue [#1949]
    • Fix some websocket test issues [#1948]
    • LMDB transaction time tracker [#1947]
    • Update Dockerfile [#1946]
    • Add nano_rpc to Docker [#1945]
    • Work value in RPC work_validate response [#1943]
    • Improve receivable_processor.send_with_receive test [#1940]
    • Add work check for ledger::process () in Debug mode [#1939]
    • TCP socket rewrite with strand and queueing support [#1938]
    • update weights for beta network [#1937]
    • [TSAN] prevent warnings for confirmation_height.gap_live test [#1936]
    • TSAN - Fix websocket tests [#1935]
    • Increase request_interval_ms for TSAN/ASAN build [#1934]
    • Fix ASAN warning in wallet.history (again) [#1933]
    • Update conflicts.adjusted_difficulty test [#1932]
    • Fix some asan rpc issues [#1931]
    • Protect udp_channel members with a mutex [#1930]
    • Websocket tests: Use error_code when closing [#1924]
    • Fix confirmation_height.single test [#1920]
    • fix tests and update logic of work_watcher::run() [#1918]
    • Support Boost v.1.70 [#1916]
    • Support Boost 1.70 [#1914]
    • Websockets - Fix tests breaking with TSAN [#1913]
    • [TSAN] Protect local_endpoint value with mutex [#1912]
    • Remove strand assert [#1905]
    • build.state().from() set build flags [#1902]
    • Fix vote::to_json() [#1900]
    • Add callback for confirmed block in RPC block_confirm [#1898]
    • Fix TSAN warning in node.no_voting & wallet.update_work_action [#1894]
    • Fix TSAN warning with work.eco_pow [#1893]
    • Fix TSAN warning with nano::logger_mt [#1892]
    • Fix ASAN warning for uint128_union.decode_decimal [#1890]
    • Fix ASAN warning in rpc.account_history [#1888]
    • Fix ASAN warning in wallet.history [#1887]
    • tsan: Fix race in repcrawler and remove redundant weight computation [#1881]
    • Use asio strands in udp channels [#1880]
    • Fix lock ordering issue in udp_channels [#1876]
    • TSAN: fix races in udp channels [#1873]
    • Remove secure <-> node circular dependency [#1869]
    • Fix secure rpc build [#1868]
    • Replace assert with null-check during nodeid handshake [#1866]
    • Fix missed enum in switch [#1864]
    • Rewrite load tester in Python [#1862]
    • Some improvements to load tester script [#1861]
    • Extend lifetime of size response in rpc handler [#1859]
    • Generalize installer path [#1855]
    • Add clang format guard in more lambdas [#1853]
    • Fix active_transactions/signature checker initialization order [#1852]
    • Unsafe encoding in IPC [#1851]
    • Fix race in tcp_listener_timeout_keepalive [#1850]
    • qualified_root type alias [#1849]
    • rpc.online_reps test udpate [#1848]
    • Fix assert assignment for Debug builds [#1841]
    • RPC 100-continue and max request size [#1819]
    • missed instances of nano::work_pool::publish_threshold [#1818]
    • Add required stake to confirmation_quorum [#1816]
    • Valgrind fixes & suppressions [#1814]
    • Add optional difficulty in RPC "work_validate" [#1812]
    • Improve Boost download links in bootstrap_boost.sh [#1805]
    • Make wallet.multithreaded_send slow test async [#1802]
    • Failed to import wallet [#1799]
    • Fix intermittent select_account test failure [#1797]
    • V18 - RPC Pending request returns empty list for a period of time after callback [#1793]
    • Set CI boost min/default to 1.67 [#1791]
    • Merge aliases in RPC process_request () [#1788]
    • Return error message for failed async RPC actions [#1779]
    • account_representative_set RPC returns block of zeros instead of an error [#1778]
    • RPC: Support json literals as block input [#1777]
    • Update Crypto++ to stable version 8.1 [#1776]
    • Deprecate payments\_ RPC calls [#1773]
    • Add "seed" option to CLI [#1772]
    • Emit "nano_" prefixed addresses [#1771]
    • Display a warning if TSAN/ASAN used together as CMake options [#1767]
    • Add allow_local_peers option for not_a_peer () & reserved_addresses () functions [#1766]
    • Improve block_exists table lookup order [#1765]
    • Minimum version of boost required in cmake should be 1.67 [#1763]
    • Command to generate input to RNG test suites [#1761]
    • Remove expect_death test [#1759]
    • RPC: option to render block as JSON [#1740]
    • Improve QT wallet.seed_work_generation test [#1732]
    • Deprecate payments\_ RPC calls [#1723]
    • Return last account restored in RPC wallet_change_seed [#1718]
    • RPC wallet_change_seed should return the first account created [#1717]
    • Raw support in Qt wallet [#1675]
    • Migrate Gtest to submodule [#1661]
    • Not all versions of GCC support -fsanitize-blacklist [#1656]
    • URI standard for representative change [#1497]
    • Boulton (V17.0) repeating callbacks for older blocks [#1489]
    • Is there implemented block cementing? [#1018]
    • Windows: Old version is not removed after upgrading to a new release [#821]
    • Impossible to distinct between a send/receive/change using the blocks in RPC [#809]
    • Issues detect by valgrind [#654]
    • Suggestions for RPC doc enhancements [#620]

    Additional binary releases:

    • Official Docker Instructions
    • Nano CentOS repo
      • sudo yum-config-manager --add-repo https://repo.nano.org/nanocurrency.repo
      • sudo yum install nanocurrency
      • nano_node installed to bin

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

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA256
    
    Below are sha256sum hashes for version 19.0
    Signature verification can be done against the signature for argakiig in the source
    code repository (etc/gpg/)
    
    1ceec8b710ec4b3314217ff33a3ce451ce2edf3a5372a4cdfffab61b3a7c868a *nano-19.0.tar.gz
    82e089f9d25bec28cf6b3e28d3dd9d9dc07fc66ea0f8eec66ea6ce9cbc8df36c *nanocurrency-19.0-15.el7.src.rpm
    cf2fb0000cd3cdc3741c5b09e9f3eed3cadde62eb896d9ec97089290d705fac1 *nanocurrency-19.0-15.el7.x86_64.rpm
    56da7180c8fcf73f4a7c4efd1e09781b4eca590e0d2ce956cf9e451b2e5527fd *nanocurrency-debuginfo-19.0-15.el7.x86_64.rpm
    e1babd95b90f2e6aac344bf0f5dd69a073f0edf931e66ac7844547170f045b99 *nano-node-19.0-Darwin.dmg
    e6fc435593c59316d88ab96c240a70f59e0a891216df81ca5fef91afb06dd914 *nano-node-19.0-Linux.tar.bz2
    36ac51460e0301f69f898fd2a93436bf4f95afe007d1121fa2b3c16cb070a589 *nano-node-19.0-win64.exe
    754d8383bdf4dcface5895f7977cbbc7a5eeeb71a2be184b8d1c714b9dc148bc *nano-node-19.0-win64.zip
    -----BEGIN PGP SIGNATURE-----
    
    iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAl0nZDAACgkQgERoJPn9
    OlpW3wgAjTUp2XLKIl35pntUaSek+IYR8GDNnl6EDTIxPsG/Rj4GzkkSHUrlE/Uu
    6KQuVBShV2J7j+ekAxjgMl/td9Uh/Od9IAXWFhtOglEdlqoR+1XwsnwHyMvxa/98
    A3vvMdg9wYQHYBWjvOJpRF0T6IQWoaIdArPa0/VZhDn6AChl29+AJ6yaBJznQHSN
    DbBsWMTzUFXYU7rrDWY7Ti9m79uMYt7LNxS1DVhdepftIini5isFm3OJw6AJCR+X
    OD+LiG23MRnn3ZNeTTPa0qInnrEf36QyiyqG/h4dW9kIUlsu2bzWAIE2vS+jxdtA
    U92J/4Bcxp08QEMDTkRI8JrEultgfw==
    =JHyg
    -----END PGP SIGNATURE-----
    
    
    Source code(tar.gz)
    Source code(zip)
    nano-19.0.tar.gz(14.88 MB)
    nano-node-19.0-Darwin.dmg(25.92 MB)
    nano-node-19.0-Linux.tar.bz2(7.44 MB)
    nano-node-19.0-win64.exe(23.73 MB)
    nano-node-19.0-win64.zip(28.29 MB)
    nanocurrency-19.0-15.el7.src.rpm(14.87 MB)
    nanocurrency-19.0-15.el7.x86_64.rpm(3.57 MB)
    nanocurrency-debuginfo-19.0-15.el7.x86_64.rpm(660.83 KB)
  • V19.0RC6(Jul 5, 2019)

    Change Log

    Release V19.0RC6 (2019-07-05)

    Full Changelog

    Implemented enhancements:

    • Cleanup inactive channels from rep crawler [#2132]
    • Improve broadcast_confirm_req_batch delays and max size [#2130]
    • More aggressive setting confirmation height of frontiers during low tps [#2126]
    • Send confirm_req each request_confirm loop [#2125]
    • Docker cache [#2121]

    Fixed bugs:

    • tsan: missing lock in ws active_difficulty unit test [#2129]
    • Improve assert in tcp_channels::process_message () [#2127]
    • update default limit to (5 * 1024 * 1024) or 5Mb/s [#2119]
    • remove else and always flush if over config.json active_elections_size [#2116]
    • only log if blocks have been processed and logging enabled [#2115]
    • fix windows installer path [#2112]

    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.0RC5
    Signature verification can be done against the signature for argakiig in the source
    code repository (etc/gpg/)
    
    6e6ca3aad2546536ee3f864a4df93eec695e6596eb7975479ce1ebdbba0b510a *nano-19.0RC6.tar.gz
    40b5f797ad41346ac1d56d4554a322ac65424acbeb27b97b5390cb36603cbdca *nanocurrency-beta-19.0RC6-14.el7.src.rpm
    143d37b22bc80cf9702ae1742bda4da19118994d66c3bde5019dbac3cfd06ac7 *nanocurrency-beta-19.0RC6-14.el7.x86_64.rpm
    2dc282dc677bc4c8447fe717aa4c79aa9112214c70ef7c77c7a56c4828c355de *nanocurrency-beta-debuginfo-19.0RC6-14.el7.x86_64.rpm
    f05000f6eb85190046e3390ab2a17e368012a5014c2fc793f2285bc5a17f7605 *nano-node-19.0RC6-Darwin.dmg
    3f60f4721a8cfc3f42fee888a692c207c376663f0b44ae137492db9f53027a52 *nano-node-19.0RC6-Linux.tar.bz2
    f0fdfc314d07546ad80e2880c286fa5320f5b3dfb97a3ac86d45981bb82a9403 *nano-node-19.0RC6-win64.exe
    c127ec01601fec62be6f08605814a405db60391e21cae9a53334a5a9e54349b7 *nano-node-19.0RC6-win64.zip
    -----BEGIN PGP SIGNATURE-----
    
    iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAl0f6TMACgkQgERoJPn9
    OlqPVwf9Grr5OFBKR+xHmjTWS564CvUwGKG71LyQdQTxqOw0HEYT/0MtpaL3Z7Wo
    wGLgtjcegBSglOA1djlRkE00w5BMjqPglbv5FD7Nrw2zKqpHO7+rIcz/AJoQbnOO
    7r3xGtsRn4khekgbPfmN82xktyMkCmSMG4Xl3H6xqhReX7eAKN7GQdczy51WVjvZ
    LHPoJSvbrLJdx0AzILB70XN/itelStJRtnESuCtlggTk2uYL9TcG6Dr9WxbdgxJD
    q7/FShO4p3F1mRR8WHaSh1dHCsa1tflfeZqITIkrqBedupkjD0MEtgFbVOEHUKV0
    Hz7BNC+/2bG+A+xRZFT1K5jJEoYyFw==
    =V+zt
    -----END PGP SIGNATURE-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-19.0RC6.tar.gz(14.87 MB)
    nano-node-19.0RC6-Darwin.dmg(26.69 MB)
    nano-node-19.0RC6-Linux.tar.bz2(107.00 MB)
    nano-node-19.0RC6-win64.exe(25.97 MB)
    nano-node-19.0RC6-win64.zip(31.71 MB)
    nanocurrency-beta-19.0RC6-14.el7.src.rpm(14.86 MB)
    nanocurrency-beta-19.0RC6-14.el7.x86_64.rpm(3.55 MB)
    nanocurrency-beta-debuginfo-19.0RC6-14.el7.x86_64.rpm(657.68 KB)
  • V19.0RC5(Jun 27, 2019)

    Change Log

    Release V19.0RC5 (2019-06-27)

    Full Changelog

    Implemented enhancements:

    • Fix intermittent test issue and cleanup unused vars [#2108]
    • Improve batching multiple blocks pending confirmation height processing [#2105]
    • Flag to disable TCP realtime network [#2103]
    • Add observer stats for confirmations [#2100]
    • Web socket subscription for active difficulty [#2091]
    • Add optional cemented count to block_count RPC command [#2089]
    • Fix duplicate iterating in conf height processor with self and circular sends [#2088]
    • Bidirectional TCP sockets [#2087]
    • Don't start confirm_frontiers () if elections count > active_elections_size [#2076]

    Fixed bugs:

    • Always notify on active difficulty updates [#2109]
    • Minor Readme file updates [#2107]
    • Fix locking issue and intermittent failure in rpc.active_difficulty [#2102]
    • Test bug introduced by #2090 [#2101]
    • Add ability to clear stats from Qt wallet [#2099]
    • TCP: Don't connect to or log invalid peers [#2097]
    • Fix vote_generator loop inconsistency during high load [#2095]
    • Formatting issues on master [#2094]
    • Use default vote_generator_delay if missing (for RC updates) [#2093]
    • Optional include_trend for RPC active_difficulty [#2090]
    • Update slow_test [#2086]
    • Use node_flags for delay_frontier_confirmation_height_updating [#2085]
    • Prevent multiple observer calls for confirmed block [#2082]
    • Provide test for WS topic election_stopped and fix bad topic/content [#2081]
    • Move WebSocket confirmation_type into message [#2079]
    • Only pass active confirmations to the http callback [#2078]
    • Use the MDB_NOMEMINIT flag with the ledger db environment [#2077]
    • Remove copies of blocks container from network::flood_block_batch [#2075]

    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.0RC5
    Signature verification can be done against the signature for argakiig in the source
    code repository (etc/gpg/)
    
    4d66a528afc5b0f16c82222b01659392a49aa954ecee02302134bc904075adb6 *nano-19.0RC5.tar.gz
    56b4fe817f9a1556ece4e3b6c55566b86051bdc49a2b6d2ac1106d62d728c214 *nanocurrency-beta-19.0RC5-13.el7.src.rpm
    899412416e67da23f08730dac3abaa2bdc1a59a98fb42e41ac5d470a007ad309 *nanocurrency-beta-19.0RC5-13.el7.x86_64.rpm
    8e610262fe6615a4f7fc2b2be04dad551674e39bbab90623d39b515ca79b6ac9 *nanocurrency-beta-debuginfo-19.0RC5-13.el7.x86_64.rpm
    136e387b6dce6f0a60559d702ba1acd80e4815a8e59a0d7eeb7fa506792ffbc1 *nano-node-19.0RC5-Darwin.dmg
    b294c705b19632279e3c9ebcaae7987935918f21cc436fe71d2e4c4b0e29c443 *nano-node-19.0RC5-Linux.tar.bz2
    8cca52c4361e718cee00006042cdb86979aee08aa75e6cd8243f044163b3f1e4 *nano-node-19.0RC5-win64.exe
    eddb447769931287178db7010c1e7a8b48776514a76d08514e044f95c2614f5c *nano-node-19.0RC5-win64.zip
    -----BEGIN PGP SIGNATURE-----
    
    iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAl0WT9cACgkQgERoJPn9
    Olojngf+PB9ukTn/yLr7CUcG88VqKmN1DLhUmiTnhh2Tqeajs15Dytd/2GJEIWiA
    gqFT3ba+0IkIkZLgDIGVG9ta9DHRVJcyRM2A5pTSEys1He7kUxk8tTRDxekOcZNb
    oaQCKAkqEvNw6lRM8fiXh4u91O1gz51SwWxhHrdPY2qs9ut6nnBWl8yoC7ugSlhg
    30LZ1uDhGb+OyNODQ7sU6Nk8SXQDXVHcjqm5v8Hrqu5/upTgbhkif0nWFdj03AmL
    rN3S30owbncP1hELHM2BRETESdatY+Ae1tDDhEK6B1BuusqbddXqtk9IES8fCVvq
    ZZDwtfSwLPRHDLc1Dqi/v4IMPonE+w==
    =V/U6
    -----END PGP SIGNATURE-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-19.0RC5.tar.gz(14.87 MB)
    nano-node-19.0RC5-Darwin.dmg(26.69 MB)
    nano-node-19.0RC5-Linux.tar.bz2(106.98 MB)
    nano-node-19.0RC5-win64.exe(26.02 MB)
    nano-node-19.0RC5-win64.zip(31.72 MB)
    nanocurrency-beta-19.0RC5-13.el7.src.rpm(14.86 MB)
    nanocurrency-beta-19.0RC5-13.el7.x86_64.rpm(3.55 MB)
    nanocurrency-beta-debuginfo-19.0RC5-13.el7.x86_64.rpm(657.66 KB)
  • V19.0RC4(Jun 11, 2019)

    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](https://github.com/nanocurrency/ nano-node/pull/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](https://github.com/nanocurrency/nano-node/ pull/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-----
    
    
    
    Source code(tar.gz)
    Source code(zip)
    nano-19.0RC4.tar.gz(14.84 MB)
    nano-node-19.0.RC4-Darwin.dmg(26.47 MB)
    nano-node-19.0.RC4-Linux.tar.bz2(105.98 MB)
    nano-node-19.0.RC4-win64.exe(26.01 MB)
    nano-node-19.0.RC4-win64.zip(31.70 MB)
    nanocurrency-beta-19.0RC4-12.el7.src.rpm(14.83 MB)
    nanocurrency-beta-19.0RC4-12.el7.x86_64.rpm(3.54 MB)
    nanocurrency-beta-debuginfo-19.0RC4-12.el7.x86_64.rpm(656.58 KB)
  • V19.0RC3(May 22, 2019)

    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-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-19.0RC3.tar.gz(14.83 MB)
    nano-node-19.0RC3-Darwin.dmg(26.38 MB)
    nano-node-19.0RC3-Linux.tar.bz2(96.47 MB)
    nano-node-19.0RC3-win64.exe(25.93 MB)
    nano-node-19.0RC3-win64.zip(31.59 MB)
    nanocurrency-beta-19.0RC3-11.el7.src.rpm(14.82 MB)
    nanocurrency-beta-19.0RC3-11.el7.x86_64.rpm(3.51 MB)
    nanocurrency-beta-debuginfo-19.0RC3-11.el7.x86_64.rpm(649.37 KB)
  • V19.0RC2(May 7, 2019)

    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-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-19.0RC2.tar.gz(14.85 MB)
    nano-node-19.0RC2-Darwin.dmg(23.25 MB)
    nano-node-19.0RC2-Linux.tar.bz2(92.18 MB)
    nano-node-19.0RC2-win64.exe(27.01 MB)
    nano-node-19.0RC2-win64.zip(34.30 MB)
    nanocurrency-beta-19.0RC2-10.el7.x86_64.rpm(3.46 MB)
    nanocurrency-beta-debuginfo-19.0RC2-10.el7.x86_64.rpm(641.33 KB)
  • V19.0RC1(Apr 27, 2019)

    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-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-19.0RC1.tar.gz(14.85 MB)
    nano-node-19.0RC1-Darwin.dmg(21.39 MB)
    nano-node-19.0RC1-Linux.tar.bz2(81.84 MB)
    nano-node-19.0RC1-win64.exe(26.05 MB)
    nano-node-19.0RC1-win64.zip(32.99 MB)
    nanocurrency-beta-19.0RC1-9.el7.src.rpm(14.84 MB)
    nanocurrency-beta-19.0RC1-9.el7.x86_64.rpm(2.15 MB)
    nanocurrency-beta-debuginfo-19.0RC1-9.el7.x86_64.rpm(389.68 KB)
  • V18.0(Feb 21, 2019)

    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-----
    
    
    Source code(tar.gz)
    Source code(zip)
    nano-18.0.tar.gz(13.58 MB)
    nano-node-18.0-Darwin.dmg(21.10 MB)
    nano-node-18.0-Linux.tar.bz2(5.27 MB)
    nano-node-18.0-win64.exe(22.97 MB)
    nano-node-18.0-win64.zip(27.36 MB)
    nanocurrency-18.0-8.el7.src.rpm(13.57 MB)
    nanocurrency-18.0-8.el7.x86_64.rpm(1.93 MB)
    nanocurrency-debuginfo-18.0-8.el7.x86_64.rpm(360.64 KB)
  • V18.0RC3(Feb 18, 2019)

    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-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-18.0RC3.tar.gz(13.58 MB)
    nano-node-18.0RC3-Darwin.dmg(21.37 MB)
    nano-node-18.0RC3-Linux.tar.bz2(56.55 MB)
    nano-node-18.0RC3-win64.exe(25.14 MB)
    nano-node-18.0RC3-win64.zip(30.94 MB)
    nanocurrency-beta-18.0RC3-7.el7.src.rpm(13.57 MB)
    nanocurrency-beta-18.0RC3-7.el7.x86_64.rpm(1.93 MB)
    nanocurrency-beta-debuginfo-18.0RC3-7.el7.x86_64.rpm(360.88 KB)
  • V18.0RC2(Feb 8, 2019)

    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-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-18.0RC2.tar.gz(12.56 MB)
    nano-node-18.0RC2-Darwin.dmg(21.37 MB)
    nano-node-18.0RC2-Linux.tar.bz2(56.42 MB)
    nano-node-18.0RC2-win64.exe(25.12 MB)
    nanocurrency-18.0RC2-6.el7.src.rpm(12.54 MB)
    nanocurrency-18.0RC2-6.el7.x86_64.rpm(1.90 MB)
    nanocurrency-debuginfo-18.0RC2-6.el7.x86_64.rpm(348.03 KB)
  • V18.0RC1(Feb 1, 2019)

    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-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-18.0RC1-Darwin.dmg(21.11 MB)
    nano-18.0RC1-Linux.tar.bz2(5.25 MB)
    nano-18.0RC1-win64.exe(22.89 MB)
    nano-18.0RC1.tar.gz(13.57 MB)
    nanocurrency-18.0RC1-5.el7.src.rpm(12.53 MB)
    nanocurrency-18.0RC1-5.el7.x86_64.rpm(1.89 MB)
    nanocurrency-debuginfo-18.0RC1-5.el7.x86_64.rpm(347.50 KB)
  • V17.1(Jan 21, 2019)

    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-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-17.1-Darwin.dmg(20.89 MB)
    nano-17.1-Linux.tar.bz2(4.81 MB)
    nano-17.1-win64.exe(23.95 MB)
    nano-17.1.tar.gz(12.61 MB)
    nanocurrency-17.1-4.el7.x86_64.rpm(1.76 MB)
  • V17.1RC2(Jan 18, 2019)

    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-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-17.1RC2-beta-Darwin.dmg(20.88 MB)
    nano-17.1RC2-beta-Linux.tar.bz2(4.80 MB)
    nano-17.1RC2-beta-win64.exe(23.93 MB)
    nano-17.1RC2.tar.gz(12.60 MB)
  • V17.1RC1(Jan 17, 2019)

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

    Change Log

    Release V17.1RC1 (2019-01-17)

    Full Changelog

    Implemented enhancements:

    • List of rolled back blocks in block_processor [#1581]
    • Lack of contact timestamping drops peers [#1536]
    • 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.1RC1.
    Signature verification can be done against the signature for argakiig in the source
    code repository (etc/gpg/)
    
    fef9ccf3ba837d822aa01f3df4dcbd042b3a8160c4d95b2046ae7bf95474f0fe  nano-17.1RC1.tar.gz
    685d2257b46198c2a1713583c5f85e04be1778db081fc5e5e175c19253b9ec43  nano-17.1RC1-beta-Darwin.dmg
    387bba0141ddcbaeecd848c80a7e6207fee9be16d9915f998c4c6025b1c2eab2  nano-17.1RC1-beta-Linux.tar.bz2
    67933d9e155f7c0b9d0b33bcc494bf02646150d541cbc85b0620efbf26f70ab7  nano-17.1RC1-beta-win64.exe
    -----BEGIN PGP SIGNATURE-----
    
    iQEzBAEBCAAdFiEEiV3g3/hlCzeiBTTjgERoJPn9OloFAlxAizYACgkQgERoJPn9
    Olp33gf+NUdnkNZ+dySRp1D8af3wrnqt8BGJQAHFB7S0g1w+9KitiZACSV7K0wwq
    lLB8MRK5qndVKJsDBy/PrsuqvGZPEWGMrX+hu11SJK7bja9hzH01Us99nYUnzneh
    /tSXTmEhlRABb+MxT4ZOaeR5a44doed0sAJKa0K0lJcEvJL6uhlC5rrrhBfCjQBD
    fQUjYUzwMj8gPUPp1b4Avk88Jh4OANUfk0BlpnmfK8GoDGvn7olbrHdr9uU4s0qx
    +P3YnR6TEXz6uGj/wgLPCtvpo+e4fFuPMOQxumvvfSRdeivJz2lkcX+Xfl513nTH
    ljeVo60tAmQ22P/wp64X1+05qlH+qw==
    =uaGo
    -----END PGP SIGNATURE-----
    
    Source code(tar.gz)
    Source code(zip)
    nano-17.1RC1-beta-Darwin.dmg(20.89 MB)
    nano-17.1RC1-beta-Linux.tar.bz2(4.80 MB)
    nano-17.1RC1-beta-win64.exe(23.94 MB)
    nano-17.1RC1.tar.gz(12.60 MB)
NanoSwift: A Swift Library for the Nano cryptocurrency

Nano is an instant, feeless and eco-friendly cryptocurrency that is also super easy to use. This library lets you create wallets, accounts and blocks as well as manage Nano amounts, interact with a node and more.

Christian 23 Mar 1, 2022
Bitweb is an experimental digital currency that enables instant payments to anyone, anywhere in the world.

Bitweb is an experimental digital currency that enables instant payments to anyone, anywhere in the world.

Bitweb Project 12 Nov 13, 2022
Elecrypt core protocol details

This codes are compatible with esp8266 nodemcu 1.0 on Arduino board.media/esp8266nodemcu.png

null 8 Nov 6, 2022
wtf is a distributed, code-coverage guided, customizable, cross-platform snapshot-based fuzzer designed for attacking user and / or kernel-mode targets running on Microsoft Windows.

wtf is a distributed, code-coverage guided, customizable, cross-platform snapshot-based fuzzer designed for attacking user and / or kernel-mode targets running on Microsoft Windows.

Axel Souchet 1.1k Dec 30, 2022
FCracker is a command line tool designed to brute force encrypted files like zip, 7z, rar, pdf etc.

FCrack is a command-line tool designed to brute force encrypted files like zip, 7z, rar, pdf, gpg etc.

null 23 Dec 21, 2022
BoringSSL is a fork of OpenSSL that is designed to meet Google's needs.

Although BoringSSL is an open source project, it is not intended for general use, as OpenSSL is. We don't recommend that third parties depend upon it. Doing so is likely to be frustrating because there are no guarantees of API or ABI stability.

Google 1.4k Dec 25, 2022
A lightweight and simpling iOS binary decryptor

FlexDecrypt's source code is pretty FAT, bundling the whole swift runtime to just achieve a simple mremap_encrypted.

null 210 Jan 7, 2023
A lightweight, secure, easy-to-use crypto library suitable for constrained environments.

The Hydrogen library is a small, easy-to-use, hard-to-misuse cryptographic library. Features: Consistent high-level API, inspired by libsodium. Instea

Frank Denis 457 Dec 21, 2022
Finalists to the NIST lightweight cryptography competition

LWC Finalists This repository contains implementations of the 10 finalists in the NIST lightweight cryptography competition: ASCON, Elephant, GIFT-COF

null 32 Sep 4, 2022
x509cert is a tool and library for generating X.509 certificates and certificate requests.

x509cert is a tool and library for generating X.509 certificates and certificate requests. It is written in C99 and uses BearSSL to decode keys and compute signatures.

Michael Forney 10 Sep 5, 2022
HashLibPlus is a recommended C++11 hashing library that provides a fluent interface for computing hashes and checksums of strings, files, streams, bytearrays and untyped data to mention but a few.

HashLibPlus HashLibPlus is a recommended C++11 hashing library that provides a fluent interface for computing hashes and checksums of strings, files,

Telepati 6 Dec 22, 2022
Text-Crypt is a tool which encrypts and decrypts texts using a specific and certain key.

Text-Crypt is a tool which encrypts and decrypts texts using a specific and certain key. This tool uses Caesar Cypher Algorithm to encrypt and decrypt a given text.

AnonabdulJ 4 Dec 24, 2021
An open source, portable, easy to use, readable and flexible SSL library

README for Mbed TLS Mbed TLS is a C library that implements cryptographic primitives, X.509 certificate manipulation and the SSL/TLS and DTLS protocol

Arm Mbed 3.9k Jan 7, 2023
TLS/SSL and crypto library

Welcome to the OpenSSL Project OpenSSL is a robust, commercial-grade, full-featured Open Source Toolkit for the Transport Layer Security (TLS) protoco

OpenSSL 20.5k Jan 6, 2023
Library and command line tool to detect SHA-1 collision in a file

sha1collisiondetection Library and command line tool to detect SHA-1 collisions in files Copyright 2017 Marc Stevens [email protected] Distributed

Marc Stevens 1.2k Dec 29, 2022
Tink is a multi-language, cross-platform, open source library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.

Tink A multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse. Ubuntu

Google 12.9k Jan 9, 2023
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

Themis provides strong, usable cryptography for busy people General purpose cryptographic library for storage and messaging for iOS (Swift, Obj-C), An

Cossack Labs 1.6k Jan 6, 2023