Merged Bitcoin 0.15.0.1 + Cold Staking

The Particl Development Team released the latest version of the Particl Core wallet: Release 0.15.0.2

  • Linux Versions— aarch64, arm, i686, x86_64
  • OSX Version — osx64
  • Windows Versions — win32, win64
  • Open Source code + checksums

This merges the latest development on Bitcoin Core 0.15.0.1 which was a considered a major release. Release notes for Particl Core 0.15.0.2 can be found here.

Hard Fork — Nov 10th

Particl Core 0.15.0.2 will activate a hard fork on the 10th November 2017. The Hark Fork will activate the Cold Staking Protocol (OP_ISCOINSTAKE) on the Particl blockchain.

Cold Staking Protocol support

Particl Core will support cold staking once the Hard Fork activates on Nov 10th. Cold Staking OP_ISCOINSTAKE introduces a new opcode and transaction type.

The new opcode OP_ISCOINSTAKE returns true if the transaction is a coinstake.

When used in a script it allows the output to be spent by one script when the spending transaction is a coinstake and another if not.

Example: OP_ISCOINSTAKE OP_IF <coinstake_txn_script> OP_ELSE <spend_txn_script> OP_ENDIF

<spend_txn_script> can be any supported script including paytoscripthash

The script below allows signing with the key to idA only when in a coinstake txn:

OP_ISCOINSTAKE OP_IF
OP_DUP OP_HASH160 <idA> OP_EQUALVERIFY OP_CHECKSIG
OP_ELSE
OP_DUP OP_HASH160 <idB> OP_EQUALVERIFY OP_CHECKSIG
OP_ENDIF

A constraint is placed on coinstake transactions using inputs with scripts using OP_ISCOINSTAKE such that the outputs must pay at least the same amount as the inputs to the same script used in the input outputs.

This prevents coin from being moved from outputs with scripts using OP_ISCOINSTAKE without being able to sign for <spend_txn_script>

Multi-wallet support

Particl Core now supports loading multiple, separate wallets (See PR 8694, PR 10849). The wallets are completely separated, with individual balances, keys and received transactions.

Multi-wallet is enabled by using more than one -wallet argument when starting Particl, either on the command line or in the Particl config file.

In particl-Qt, only the first wallet will be displayed and accessible for creating and signing transactions. GUI selectable multiple wallets will be supported in a future version. However, even in 0.15 other loaded wallets will remain synchronized to the node’s current tip in the background. This can be useful if running a pruned node, since loading a wallet where the most recent sync is beyond the pruned height results in having to download and revalidate the whole blockchain. Continuing to synchronize all wallets in the background avoids this problem.

Mempool Persistence Across Restarts

Version 0.14 introduced mempool persistence across restarts (the mempool is saved to a mempool.dat file in the data directory prior to shutdown and restores the mempool when the node is restarted). Version 0.15 allows this feature to be switched on or off using the -persistmempool command-line option (See PR 9966). By default, the option is set to true, and the mempool is saved on shutdown and reloaded on startup. If set to false, the mempool.dat file will not be loaded on startup or saved on shutdown.

Credits

Thanks to Particl Team and everyone at Bitcoin Core who contributed to these changes.

WARNING Despite this version being heavily tested, this version may still contain bugs. Always backup your `wallet.dat` file before upgrading. If you encounter any issues, please let us know by reporting here.

Thank You

Particl Team