Skip to content

v2.2.0.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@mjmacleod mjmacleod released this 23 Mar 15:19
· 2289 commits to master since this release

This release incorporates several major feature branches, which combined involve over years of major development effort.
Highlights include:

  • The final phase of our PoW² rollout, which brings new functionality to witness addresses/accounts
  • Our new 'v2' transaction format
  • Unity - A single unified codebase backend that is shared between desktop and mobile wallets

PoW² phase4:
CORE - Ability to compound witness earnings becomes active
CORE - Delta difficulty adjustments now uses the more accurate witness time instead of the mining time, which should improve block timings and reduce hash rate swings
UI - Easily toggle compounding on/off for a witness account
UI - Extend the locktime and/or quantity of a witness account via UI
UI - New optimise button which can be used on large witness accounts (>1% network weight) to divide/combine into smaller/larger parts for better earnings
UI - Improved dialog for funding witness accounts; Also automatically optimizes large witness accounts (>1% network weight) into multiple parts when creating if appropriate
RPC - Various Phase4 RPC commands become active:
Add funds to a witness account and/or extend the lock period - extendwitnessaccount "funding_account" "witness_account" "amount" "time"
Add funds to a witness address and/or extend the lock period - extendwitnessaddress "funding_account" "witness_address" "amount" "time"
Split a witness account into multiple witness addresses; Lock period is not changed this exists for the benefit of users whose weight is too large for the network - splitwitnessaccount "funding_account" "witness_account" "amounts"
Merge multiple identical witness addresses into a single one; Only works on identical accounts i.e. ones that have previously been split - mergewitnessaccount "funding_account" "witness_account"
Change the witness key on an account where the key may have been compromised or as a periodic precaution - rotatewitnessaccount "funding_account" "witness_account"
Change the witness key on an address where the key may have been compromised or as a periodic precaution - rotatewitnessaddress "funding_account" "witness_address"
Set a witness account to compound all or part of the earnings it receives - setwitnesscompound "witness_account" "amount"
Check the compounding settings for a witness account - getwitnesscompound "witness_account"
Set an address or script other than the default for witness reward payout - setwitnessrewardscript "witness_account" "destination" force_pubkey
Get the current address or script that has been set for witness reward payout - getwitnessrewardscript "witness_account"
Set the compounding template for a witness account; Can be used to managed advanced configurations of how the reward should be paid out - setwitnessrewardtemplate "witness_account" [["destination1" (,"amount") (,"percentage%") (,"remainder") (,"compound_overflow")], ["destination2" ...], ...]
Get the compounding template for a witness account - getwitnessrewardtemplate "witness_account"

v2 transaction format (SegSig):
CORE - New compact transaction format, with a "only pay for what you use" philosophy. Extensible transaction output/input types and flags for easier future extendability in various directions. Uses various built in methods like compact amount representation to ensure transactions are as small as possible while being efficient to process.
CORE - Transaction functionality like RBF using proper built in flags instead of magic values
CORE - Three new initial transaction types (extensible to more)
* Script - Bitcoin compatible 'script' format as in v1 transaction format, for more complex types of transactions that require this functionality
* StandardKeyHash - A compact and concise format for regular day to day transactions without the extra unnecessary processing overhead of a scripting language
* PoW2WitnessOutput - A compact and concise format for witness transactions; Replaces the sub-optimal requirement of placing all the witnessing information in; More compact, faster to process and leads to a cleaner code base
CORE - Compact transaction signatures used throghout for smaller transaction size
CORE - Introduce 'index based outpoints' to new transaction format; allowing for reduction of transaction size in many cases.
CORE - Remove unncessary requirement of 'OP_0' from multisig transaction signatures (Legacy bitcoin bug)
CORE - Transaction signatures are seperate from the transaction script; Similar to SegWit, but done in a more efficient way that doesn't have to worry about backwards compatibility
CORE - Remove sources of transaction malleability; Similar to SegWit, but done in a more efficient way that doesn't have to worry about backwards compatibility

Other:
CORE - Extend recovery phrase with (optional) birth number
UI - Option to hide status bar when synchronized (default enabled). Disable to always show status indicators.
RPC - Implement new 'importlinkedaccount' command.
RPC - Add an optional purge option to 'deleteseed' command.
RPC - Add 'initialblockdownload', 'automatic_pruning' and 'prune_target_size' fields to 'getblockchaininfo' results
RPC - Add 'fail_count' and 'action_nonce' data to 'getwitnessinfo' command.
And numerous more smaller changes and bug fixes, for a comprehensive list view the commit history on our github repository.