Wallets created in 0.16.3 and later are not compatible with versions prior to 0.16.3
and will not work if you try to use newly created wallets in older versions. Existing
wallets that were created with older versions are not affected by this.
Viacoin Core 0.16.3 introduces full support for segwit in the wallet and user interfaces. A new
-addresstype argument has been added, which supports
p2sh-segwit (default), and
bech32 addresses. It controls what kind of addresses are produced by
-changetype argument has also been added, with the same options, and by default equal to
-addresstype, to control which kind of change is used.
address_type parameter has been added to the
addmultisigaddress RPCs to specify which type of address to generate.
change_type argument has been added to the
fundrawtransaction RPC to override the
-changetype argument for specific transactions.
- All segwit addresses created through
*multisigRPCs explicitly get their redeemscripts added to the wallet file. This means that downgrading after creating a segwit address will work, as long as the wallet file is up to date.
- All segwit keys in the wallet get an implicit redeemscript added, without it being written to the file. This means recovery of an old backup will work, as long as you use new software.
- All keypool keys that are seen used in transactions explicitly get their redeemscripts added to the wallet files. This means that downgrading after recovering from a backup that includes a segwit address will work
Note that some RPCs do not yet support segwit addresses. Notably,
verifymessage doesn't support segwit addresses, nor does
importmulti at this time. Support for segwit in those RPCs will continue to be added in future versions.
P2WPKH change outputs are now used by default if any destination in the transaction is a P2WPKH or P2WSH output. This is done to ensure the change output is as indistinguishable from the other outputs as possible in either case.
BIP173 (Bech32) Address support ("via1..." addresses)
Full support for native segwit addresses (BIP173 / Bech32) has now been added.
This includes the ability to send to BIP173 addresses (including non-v0 ones), and generating these
addresses (including as default new addresses, see above).
A checkbox has been added to the GUI to select whether a Bech32 address or P2SH-wrapped address should be generated when using segwit addresses. When launched with
-addresstype=bech32 it is checked by default. When launched with
-addresstype=legacy it is unchecked and disabled.
HD-wallets by default
Due to a backward-incompatible change in the wallet database, wallets created
with version 0.16.3 will be rejected by previous versions. Also, version 0.16.3
will only create hierarchical deterministic (HD) wallets. Note that this only applies
to new wallets; wallets made with previous versions will not be upgraded to be HD.
Wallets directory configuration (
Viacoin Core now has more flexibility in where the wallets directory can be
located. Previously wallet database files were stored at the top level of the
viacoin data directory. The behavior is now:
- For new installations (where the data directory doesn't already exist),
wallets will now be stored in a new
wallets/subdirectory inside the data
directory by default.
- For existing nodes (where the data directory already exists), wallets will be
stored in the data directory root by default. If a
already exists in the data directory root, then wallets will be stored in the
wallets/subdirectory by default.
- The location of the wallets directory can be overridden by specifying a
<path>can be an absolute path to a
directory or directory symlink.
Care should be taken when choosing the wallets directory location, as if it
becomes unavailable during operation, funds may be lost.
Performance: SHA256 assembly enabled by default
The SHA256 hashing optimizations for architectures supporting SSE4, which lead to ~50% speedups in SHA256 on supported hardware (~5% faster synchronization and block validation), have now been enabled by default. In previous versions they were enabled using the
--enable-experimental-asm flag when building, but are now the default and no longer deemed experimental.
A new RPC
rescanblockchain has been added to manually invoke a blockchain rescan.
The RPC supports start and end-height arguments for the rescan, and can be used in a
multiwallet environment to rescan the blockchain at runtime.
savemempool RPC has been added which allows the current mempool to be saved to
disk at any time to avoid it being lost due to crashes / power loss.
Safe mode disabled by default
Safe mode is now disabled by default and must be manually enabled (with
-disablesafemode=0) if you wish to use it. Safe mode is a feature that disables a subset of RPC calls - mostly related to the wallet and sending - automatically in case certain problem conditions with the network are detected. However, developers have come to regard these checks as not reliable enough to act on automatically. Even with safe mode disabled, they will still cause warnings in the
warnings field of the
getneworkinfo RPC and launch the
Renamed script for creating JSON-RPC credentials
share/rpcuser/rpcuser.py script was renamed to
share/rpcauth/rpcauth.py. This script can be
used to create
rpcauth credentials for a JSON-RPC user.
validateaddress RPC output has been extended with a few new fields, and support for segwit addresses (both P2SH and Bech32). Specifically:
- A new field
iswitnessis True for P2WPKH and P2WSH addresses ("bc1..." addresses), but not for P2SH-wrapped segwit addresses (see below).
- The existing field
isscriptwill now also report True for P2WSH addresses.
- A new field
embeddedis present for all script addresses where the script is known and matches something that can be interpreted as a known address. This is particularly true for P2SH-P2WPKH and P2SH-P2WSH addresses. The value for
embeddedincludes much of the information
validateaddresswould report if invoked directly on the embedded address.
- For multisig scripts a new
pubkeysfield was added that reports the full public keys involved in the script (if known). This is a replacement for the existing
addressesfield (which reports the same information but encoded as P2PKH addresses), represented in a more useful and less confusing way. The
addressesfield remains present for non-segwit addresses for backward compatibility.
- For all single-key addresses with known key (even when wrapped in P2SH or P2WSH), the
pubkeyfield will be present. In particular, this means that invoking
validateaddresson the output of
getnewaddresswill always report the
pubkey, even when the address type is P2SH-P2WPKH.
- The deprecated RPC
getinfowas removed. It is recommended that the more specific RPCs are used:
- The wallet RPC
getreceivedbyaddresswill return an error if called with an address not in the wallet.
- The wallet RPC
addwitnessaddresswas deprecated and will be removed in version 0.17,
getnewaddress, or option
dumpwalletnow includes hex-encoded scripts from the wallet in the dumpfile, and
importwalletnow imports these scripts, but corresponding addresses may not be added
correctly or a manual rescan may be required to find relevant transactions.
- The RPC
getblockchaininfonow includes an
- A new
blockhashparameter has been added to the
getrawtransactionRPC which allows for a raw transaction to be fetched from a specific block if known, even without
fundrawtransactionRPCs now have optional
iswitnessparameters to override the
heuristic witness checks if necessary.
walletpassphrasetimeout is now clamped to 2^30 seconds.
- Using addresses with the
createmultisigRPC is now deprecated, and will be removed in a later version. Public keys should be used instead.
- Blockchain rescans now no longer lock the wallet for the entire rescan process, so other RPCs can now be used at the same time (although results of balances / transactions may be incorrect or incomplete until the rescan is complete).
loggingRPC has now been made public rather than hidden.
initialblockdownloadboolean has been added to the
getblockchaininfoRPC to indicate whether the node is currently in IBD or not.
minrelaytxfeeis now included in the output of
Miner block size removed
-blockmaxsize option for miners to limit their blocks' sizes was
deprecated in version 0.15.1, and has now been removed. Miners should use the
-blockmaxweight option if they want to limit the weight of their blocks'
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 62b875557e2a1c59f29ba00cebcebb243b8e542c3ecbb36df54c052077b034c8 viacoin-0.16.3-i686-pc-linux-gnu.tar.gz 92e1881b9f1e1be0922dcfc1a91f9520cfd356e6225a80ac00aafe58e9183b12 viacoin-0.16.3-osx64.tar.gz 3e97109468cd3392c2299631d1d03ee40b5ecc74ff71b4a321e88dbcb1f080c4 viacoin-0.16.3-osx-unsigned.dmg 37e8c0d0469c66262a8e2b18b4b6036a9f7d8c789d09d38bfdfd370bc0866934 viacoin-0.16.3-win32-setup-unsigned.exe 1f327cb8767f8273df075e08502627258f19db74885137194c2ecd74d57e52f2 viacoin-0.16.3-win64-setup-unsigned.exe 467c9541d31b06379a71a2d9bb8741af7f94dacf26e0e63df27d4b7dcb9da838 viacoin-0.16.3-win64.zip 4b84d8f1485d799fdff6cb4b1a316c00056b8869b53a702cd8ce2cc581bae59a viacoin-0.16.3-x86_64-linux-gnu.tar.gz -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEE+1u6Oha8avDSoh1hP5I2jw0hogYFAlzdRSEACgkQP5I2jw0h ogbepggAm/bCZAo8xfsvjUhbFZlh5Xe/HhVbrqubUANXFlDALmhUGVW2itCgCedN X+FC7ViKkMtWS954zDPBOU8VKKe5AwWq9NQlyGvfOwvdM9iWNJuARDZJyfwFIkrM SV/bv0zkm/zgiJzzQTB7HkS8qAPVO2kqhXBfKIB3zdF5XgIyhVY5JVAcAxCAaUkJ HaLFdNb9WENEAoHPT45FCaG6vkOnlwkW9AuD0vUL/6ZP/RVRLKlzwZeeksB82DXH hdSJlF/8VClkJ0ufx28O0K+LAt75NWaGoyfSJfa3kKL1+gR0Yf+FxT1Pdcu05VUX /widQ2IUgmLPqUzlZ4dR4l9bOJnrMQ== =2ZDM -----END PGP SIGNATURE-----