Nu 2.1.0 has been released [do not upgrade yet, see latest posts]


#1

It’s available here:

(sha256sums are below)

Known issues

  • If you have an existing wallet with past transactions the client will hang during the initial block index conversion.
  • Connecting to the network with Tor doesn’t work. If you need Tor you must not upgrade yet and wait for a new release.
  • Using a large time in the walletpassphrase RPC makes the client crash. 999999999 seems to be the maximum.

This is not a mandatory upgrade. You can keep using version 2.0.3.

Upgrade instructions

There are important changes in this release that will update most of your files in your Nu data directory, including the block database. The new datadir will not be compatible with older versions of Nu. So before upgrading you should probably backup your whole data directory to easily revert to an older version in case the new version doesn’t work. In any case you must backup at least your wallet files. This document explains how to do backups.

When you first run the 2.1 version it will start converting your block index. This process will take a long time (probably several hours depending on your hardware). You won’t be able to use the client during that time.

If the conversion process doesn’t work for some reason, you can restart with a bootstrap file. The internal process is actually the same so it should take the same time (after download).

You should also use a bootstrap file if you start from scratch because the initial download process is very long. Note that it still takes a lot of time to process the bootstrap file.

Bootstrap file

You can download the Bootstrap file:

Then:

  • close your Nu client,
  • go to your data directory (see this doc),
  • remove all the files except the wallets and the configuration,
  • put the bootstrap.dat file inside your data directory,
  • and run the Nu client.

On the first start it will read the bootstrap file and rebuild the block index from it. This will take a long time.

See also this doc.

Changes

The major change in this release is the merge of the Peercoin develop branch which merges Bitcoin 0.8.6. Before that the latest Bitcoin merge was 0.6.3. You can see the list of Bitcoin changes between these versions here: https://bitcoin.org/en/version-history (although some of them may not apply to Nu, and some others had already been imported).

The most important part of these changes is the way the block index database is stored and loaded. The switch to leveldb and other changes made the initial load time much faster.
Note that the wallet database is not changed: it sill uses the same Berkeley DB.

One of the Bitcoin 0.8 changes was to “no longer maintain a full index of historical transaction ids by default”, but Nu still does because it needs the full index to validate Proof of Stake.

In addition to this merge we also made Nu specific changes:

The most important one is the introduction of the BlockMap which loads block indexes on demand instead of keeping them constantly in memory. This reduces the overall memory usage, and makes it no longer grow continuously when new blocks are added to the chain. It makes the client use more I/O though, especially during the initial download.

The other changes are:

  • use less CPU in the Proof of Stake process when no valid kernel is found
  • a new -debugmint configuration to ease minting problems troubleshooting by logging the reasons why no kernel was found during the Proof of Stake process
  • the RPC command getpremium accepts a hash parameter to get the parking premium at a particular block (contributed by dc-tcs)
  • a new getprotocolinfo RPC to get the protocol version and votes at a specific block
  • a new getfee RPC to get the fee that must be included in a transaction, given a size and an amount

sha256sums

74476b5138ceb98229dd14692299af21337cd5f21f4422ecb75ad744f3c75b00  nu-2.1.0-linux-gitian.zip
b4e55ce2588330d7eec2741c95b7b4e5a7883dcf09a3f24279a51716105af35c  nu-2.1.0-win-gitian.zip
128fb06a92e1f4c129fe717780f0e4a701ea207b25427b6ac1c46b4f6dd65306  bin/32/nu
b08f5451be8034cf49812a8f4118b846ff69e25bfd92d198ef7eec9a83e060c2  bin/32/nud
361213f8fbe82a3c1ba8663e557d3ea8f128bec9e70e3a0020b6499c0842acd3  bin/64/nu
68f6acd38e02933f52f42ee7096a2e54b25dac83a6c8a7e90aa93547b39da876  bin/64/nud
2975d0c780405536ed38a58d6a52b9e87ff4cab257bb3575cd373a9de93b2369  32/Nu-2.1.0-win-setup.exe
5e9b1e30bb4769246c2b1bfa6ef2e6283d477c08f12e4e7c65ed265d6268b013  32/nu.exe
c86e585abb1a3133a89d959ba6fca267a1135f25ef17b622c8658057d5f5040e  32/nud.exe
e00a9be3592558741d6b5876cac62faa627da9b803df7d0b75bb9276f896930b  64/Nu-2.1.0-win-setup.exe
d9cedc9d1b7d889a61afa52ac3b97b628759c94ff5b50af184b2fda8ee15bf10  64/nu.exe
d4f4fa227b761a3aa74a032014cc79aa4e74160c0ded97453e0ef82fc0a11c2c  64/nud.exe
98a2e0a7962eba465b41346ffe01b82f45bb70e6d20557a0b6f0fe4dbf7cde77  bootstrap.dat

#2

Question under running in 64b windows:
since 32b version uses less of system ram, what is the benefit of running the 64b version?
If such benefit exists.
thanks


#3

The 64 bits client should be faster because we use many 64 bits numbers and because the compiler has more room to optimize. But I’m not sure it’s significant in our case, or even noticeable.


#4

#5

please give a link that we can use wget to download with linux


#6

bootstrap is a must! It would just take several hours to load the blocks.
Without bootstrap, it would take several days!


#7

http://212.129.19.120/bootstrap.dat


#8

I can’t compile this on my RPi 2.
Downloaded the 2.1 Linux files, extracted the nubit.tar.gz, went to src and did make -f makefile.unix.

make[1]: Leaving directory '/home/pi/nu/src/src/leveldb'
g++ -c -O2 -pthread -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -g -DBOOST_SPIRIT_THREADSAFE -D_FILE_OFFSET_BITS=64 -I/home/pi/nu/src/src -I/home/pi/nu/src/src/obj -DUSE_UPNP=0 -DUSE_IPV6=1 -I/home/pi/nu/src/src/leveldb/include -I/home/pi/nu/src/src/leveldb/helpers -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -D_FORTIFY_SOURCE=2  -MMD -MF obj/alert.d -o obj/alert.o alert.cpp
/bin/sh ../share/genbuild.sh obj/build.h
fatal: Not a git repository (or any of the parent directories): .git
g++ -c -O2 -pthread -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -g -DBOOST_SPIRIT_THREADSAFE -D_FILE_OFFSET_BITS=64 -I/home/pi/nu/src/src -I/home/pi/nu/src/src/obj -DUSE_UPNP=0 -DUSE_IPV6=1 -I/home/pi/nu/src/src/leveldb/include -I/home/pi/nu/src/src/leveldb/helpers -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -D_FORTIFY_SOURCE=2  -MMD -MF obj/version.d -o obj/version.o version.cpp
version.cpp:66:32: error: macro "BUILD_DESC_FROM_UNKNOWN" requires 4 arguments, but only 3 given
 const std::string CLIENT_BUILD(BUILD_DESC CLIENT_VERSION_SUFFIX);
                        ^
version.cpp:54:28: error: ‘BUILD_DESC_FROM_UNKNOWN’ was not declared in this scope
 #        define BUILD_DESC BUILD_DESC_FROM_UNKNOWN(CLIENT_VERSION_MAJOR, CLIENT_VERSION_MINOR, CLIENT_VERSION_REVISION)
                    ^
version.cpp:66:32: note: in expansion of macro ‘BUILD_DESC’
 const std::string CLIENT_BUILD(BUILD_DESC CLIENT_VERSION_SUFFIX);
                        ^
makefile.unix:190: recipe for target 'obj/version.o' failed
make: *** [obj/version.o] Error 1

#9

It looks like it doesn’t work outside git. We will look into that. In the meantime you can try building from git:

git clone https://bitbucket.org/JordanLeePeershares/nubit.git
cd nubit
git checkout 2.1.0-Stable-Release
cd src
make -f makefile.unix

#10

ubuntu ?


#11

I should work on Ubuntu.


#12

I had to do
git clone https://bitbucket.org/JordanLeePeershares/nubit.git

Using your line gave me

Cloning to ‘nubit’…
The authenticity of host ‘bitbucket.org (104.192.143.1)’ can’t be established.
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘bitbucket.org,104.192.143.1’ (RSA) to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.


#13

Ah yes sorry. I’ve updated my post.


#14

2016-01-31 12:09:01 ThreadRPCServer method=walletpassphrase
2016-01-31 12:09:01

2016-01-31 12:09:01 Nu version v2.1.0-beta (2016-01-24 12:44:58 +0100)

Nud works fine untill I try to unlock the wallet. It stops and seems to restart itself immediately.

terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injectorboost::condition_error >'
what(): boost::condition_variable::do_wait_until failed in pthread_cond_timedwait: Invalid argument


#15

I’m not able to reproduce this, but i’m using the official 2.1 nud binary. Can you share the command you’re entering into the command line? Just replace your passphrase with **** before you post.


#16

nud walletpassphrase $pass 999999999999999 true

Created a new wallet. encrypted it. same issue.

Okay the 999999999999999 seems to be the issue. Works fine with 99999.

What’s the new max here?!


#17

I’m not sure what the max was. I thought there was a trick in Peercoin that if you used -1 it would unlock indefinitely, but I might be remembering incorrectly.


#18

I think it was about the number I mentioned above.
That one worked fine pre 2.1.

@sigmike?


#19

It seems that the limit is 9 characters. 999999999 works, 9999999999 breaks. I’m not sure what would have changed it though. Haven’t looked at the source.


#20

How can you say this is ready for release when people are still reporting bugs?