Mandatory upgrade to Nu 2.0 by August 25th

The Nu 2.0 release has passed testing and the team agrees it is now ready for general deployment on the production network. The new protocol will become effective August 25th at 14:00 UTC. If you don’t upgrade by then, your client will reject 2.0 blocks and be isolated on a non-consensus fork. So upgrading is truly mandatory.

2.0 is packed with powerful new features and changes:

  • NuShare custodial grants - The custodian system now permits NuShare custodians. This process is exactly the same as with NuBits, except NuShares are granted to an NSR address.

  • Protocol voting - Clients now vote for their protocol version. Each version of the reference client has a protocol version number hard coded in it. This number is placed on the blockchain in the coinstake transaction when a block is minted, similar to how other votes are cast. This vote is not user configurable, so it has no user interface components. When 90% of the last 2000 blocks have voted to increment the protocol version AND any applicable date criteria for the protocol change is met, the protocol will change. If the percentage of the last 2000 blocks voting for a protocol version falls back below 90% threshold, no action will be taken. The protocol version in effect cannot be decremented.

  • Change maximum interest rate increase/decrease – This enhancement changes the maximum interest rate rise from 1% per
    1440 blocks to a per block rise of 0.002% and enforces a maximum per
    block interest rate decrease of 0.004%. This allows an increase of approximately 3% per day and a decrease of 6% per day.

  • Propagate the liquidity identifier through the network – This enhancement changes the ‘getliquidityinfo’ RPC to now contain a
    liquidity tier breakdown and also a custodian breakdown. In addition, a new RPC (‘getliquiditydetails’) will return liquidity info of all the identifiers of each custodian.

  • Make park rates effective 60 blocks after the actual vote – As originally designed, parking rates are determined based on the
    rates published for the block that contains a parking transaction. This
    change uses the rate from 60 blocks in the past. This will permit the
    parking rates to be known 60 blocks into the future.

  • Dynamic fee – This enhancement permits shareholders to vote to set transaction fees. The median vote is the fee. Transaction fees are also set using the fee from 60 blocks in the past. The client uses the highest fee to be charged in the next 10 blocks. Default transaction fees equal to the current transaction fees are applied if there is no transaction fee vote for a particular currency in the majority of share days for the voting period of 2000 blocks.

We will want to ensure that each exchange that supports either NBT or NSR upgrades.

Here are the download links:

Windows Nu 2.0 Download

Linux Nu 2.0 Download

OS X Nu 2.0 Download


This topic is now a banner. It will appear at the top of every page until it is dismissed by the user.

Here is the Reddit thread CoinGame posted for those who would like to post a comment and help promote the release to r/cryptocurrency…

any checksum hashes for the files?

I successfully upgraded. If any of you have been using a data feed, be sure to open it up and look to see if the checkbox for the transaction fee is checked. It was deselected when I looked at mine.

sha256sum of the files I generated:


1 Like

The master branch of is not on 2.0, right?

I compiled from master and get:

nud getinfo
    "version" : "v1.2.0-4-ga544017-dirty-beta",

ninjaedit: I think I might delete this post soon, because I’m a git noob:

git checkout 2.0.0-Stable-Release
make -f makefile.unix

…still running

edit: done

nud getinfo
    "version" : "v2.0.0-dirty-beta",

Indeed it was in the 2.0.0-Stable-Release branch but not yet in master. I just merged it.

1 Like

Will see if i can make an unofficial raspberry build later tonight

    "version" : "v2.0.0-beta",
    "protocolversion" : 50000,
    "walletversion" : 1,
    "walletunit" : "S",
    "balance" : 0.0,
    "newmint" : 0.0,
    "stake" : 0.0,
    "parked" : 0.0,
    "blocks" : 480314,
    "moneysupply" : 1007495950.20239997,
    "connections" : 28,
    "proxy" : "",
    "ip" : "masked",
    "difficulty" : 0.00032577,
    "testnet" : false,
    "keypoololdest" : 1438648168,
    "keypoolsize" : 101,
    "paytxfee" : 1.0,
    "errors" : "EXCEPTION: St12out_of_range       \nCInv::GetCommand() : type=3 unknown type       \nnu in ProcessMessages()       \n"


This error is what I get when I query nud with “getinfo”…

Will this update automatically on daemons when the feed sets a tx vote or is further action required?

This is an error triggered by a node sending invalid messages. The error is not correctly handled by the client, hence the odd display here, but it’s not something to be worried about (besides being connected to a strange node). We will fix that in the next version.

The behavior on upgrade is not to change your data feed settings. Do you think the upgrade should automatically add the new parts?

It’s the same as the GUI, your settings won’t include the new parts after the upgrade. You can check with getdatafeed.

If you defined your data feed without specifying the parts, then you can just do it again after the upgrade, because the new default parts includes the fees:

    setdatafeed <url> [<signature url> <address>] [<parts>]
    Change the vote data feed. Set <url> to an empty string to disable.
    If <signature url> and <address> are specified and not empty strings a signature will also be retrieved at <signature url> and verified.
    Parts is the list of the top level vote parts that will be taken from the feed, separated by a coma. The other parts will not affect the vote. Default is "custodians,parkrates,motions,fees".

Okay, so I just have to re-add the feed. Does it matter whether the feed already has tx vote data set or not?

No. If the data feed doesn’t provide the fees part then your fee vote won’t be changed. If it provides it (and you enabled the fees part), then your fee vote will be updated like if you did it yourself. In any case your fee vote won’t be included in your blocks until the protocol switches to 2.0.

Okay. Re-added my data feed

“parts” : “custodians,parkrates,motions,fees”

obviously worked.

How to compile it on Ubuntu ? I get

In file included from scanbalance.cpp:5:0:
db.h:17:20: fatal error: db_cxx.h: No such file or directory
compilation terminated.
make: *** [obj/scanbalance.o] Error 1

i found

sudo apt-get install libdb++-dev

very helpful

1 Like

You beat me to it. I was already answering :stuck_out_tongue:
On my RPI I have 5.1 installed and that worked fine:

dpkg --get-selections | grep libdb
libdb5.1:armhf                                  install
libdb5.1++:armhf                                install
libdb5.1++-dev                                  install
libdb5.1-dev                                    install
libdbus-1-3:armhf                               install
libdbus-glib-1-2:armhf                          install


This might look unrelated at first glance, but in fact it’s one of the main differences between PoW and PoS systems; another difference that makes Nu so much more sustainable than PoW solutions and not only in terms of energy efficiency.

Nu and BCE inherited that powerful difference from Peercoin.

What’s happening at Bitcoin at the moment ( can’t happen at Nu, from version 2.0 on even on protocol level.
The people who own the shares (and hence a big financial stake) and the people who secure the blockchain, process transactions, create blocks, are the same entity!

They have the right and the power to decide.

I sincerely admire @JordanLee’s farsighted design!