Ardor Wallet Update

Get new Ardor Version 2.2.3[ here ].


Change log:

This release adds multiple usability enhancements, optimizations and bug fixes.
For users of 2.2.1 or 2.2.2, upgrade is optional but highly recommended.

New feature: Shamir Secret Sharing

Shamir Secret Sharing support is now enabled for both client and server. It
allows splitting a passphrase into N pieces out of which only K are required to
restore the original secret. This technique is useful to protect the full
passphrase from key loggers on the client workstation and from eavesdropping
during transport to a remote node. Shamir Secret Sharing is also useful for the
creation of fragmented backups, by storing each piece in a different physical
place or with a different trusted party, with at least K of them required to
recover the full passphrase.

Secret share splitting and combining is supported both on the server side using
the node APIs, and client side in the wallet, so that secrets split on one side
can be combined on the other.

Client side

When printing a paper wallet, a new dialog enables setting the total number of
secret pieces to generate from a passphrase, and the number of secrets required
to re-combine a passphrase. These secrets are then printed into separate pages
of the paper wallet.

For all dialogs which accept entry of a passphrase the user can now check the
"Shared Secret" checkbox, then enter or scan the required number of secret
pieces to combine the original passphrase in memory.

Server side

Any API which accepts the "secretPhrase" parameter can now accept instead 
multiple "sharedPiece" parameters which the node will combine into the original
passphrase in memory. A node can keep some of the secrets in its configuration
file while accepting other secrets using API parameters.
To configure this setup for account address X, split your passphrase into 
several pieces then list some of the pieces in a semicolon separated list as the
value of the property nxt.secretPhrasePieces.X. When using the API, submit the
parameter sharedPieceAccount=X where X is the account address, and also submit
the remaining required pieces using multiple sharedPiece parameters. This
configuration enables to start forging, bundling, etc, on a remote node without
ever transmitting the full account passphrase to it over the internet.

New APIs for Shamir Secret Sharing:

Use the splitSecret API to split a passphrase into pieces.

Use the combineSecret API to combine secret pieces to the original passphrase.


Due to enhancements to the underlying API caller infrastructure all lightweight
contracts have to be recompiled and redeployed in order for a contract runner
running this version to be able to execute them correctly.

Any other code using the API callers must also be recompiled.


The Windows and Mac installers now bundle a copy of OpenJDK 11 and Java FX sdk.
OpenJDK is installed into the jdk folder.
Java FX is installed into the javafx-sdk folder.
The jre folder which included the Java distribution in previous releases is no 
longer created by the installation.
Users who created customized scripts relying on the jre folder should adjust 
their scripts to the new structure.
For the linux installation package, the code is compiled with OpenJDK 8, and
can still be run under either Java 8, or Java 11 or 12. For Windows and Mac,
the installation package is compiled using Java 11.

UI improvements

When loading a transaction voucher it is now possible to attach an encrypted
message to yourself, and to recalculate the transaction fee. It is now also
possible to not immediately broadcast voucher transaction, for the purpose of
offline signing.

The coin exchange displays the inverse rate in the "Buy" dialog, and as a 
tooltip when hoovering with the mouse over any price field.
Expected orders and order cancellations (unconfirmed or phased) are displayed
in the order book with a special icon to their left.
Left pane balances are updated with each new block. 
The order of columns was changed so that the "Sum" column displays the coin to 
buy, clicking the "Sum" column updates the amount to buy accordingly.
Red warning is displayed when typing an amount to buy which requires larger 
balance than the available balance. Total field is limited to 8 decimals.

The dashboard transaction view was improved to reduce appearances of duplicate
transactions when the transaction moves from unconfirmed to confirmed status.

Support login by alias and recipient alias for any alias. If not an account
alias, map the alias to the alias owner account. Since any alias owned by an
account can now be used as an alias to the account, this release deprecates
the so-called "account" aliases, and we will remove support for them in the
next release.

Approximate leasing expiration date is displayed in the Account Leasing tab.

A new Account Properties tab has been added to the account info modal,
displaying all properties set on the account.

Networking and performance improvements.

As a result of our extensive load testing efforts, this release includes
several networking stability improvements and performance optimizations.

New add-ons to simplify automated and secure running of tasks on remote nodes:

A set of custom add-ons to automate forging, bundling, and funding monitors
has been include in this release.

The StartForging add-on reads the passphrases stored in a plain text file, as
defined in the property nxt.startForgingFile, one passphrase per line, and
automatically starts forging with each of these accounts when the server is
started. Since passphrases are stored unencrypted, this add-on should only
be used on well secured servers, or with accounts of insignificant value, or
in test environments.

For a secure way of starting forging with multiple accounts on a remote server,
the SaveForgingEncrypted add-on can be used to store the passphrases of forging
accounts in an encrypted file, and the StartForgingEncrypted add-on to start
forging with them by only submitting to the server the password necessary to
decrypt this file. Note that at runtime, the forging account passphrases will
still be kept in server memory, but when using these add-ons will never need to
be stored on disk, and will not need to be re-submitted to the server each time
forging needs to be started. These add-ons are useful when forging on a fully
trusted node, and having to restart forging remotely without a risk of exposing
the passphrases in transit.

The StartBundling add-on reads a list of Bundlers stored in a JSON formatted
file, as defined in the property nxt.startBundlingFile. The exact JSON can be
initially generated by manually starting the bundlers configured as desired,
including any custom bundling rules, and using the GetBundlers API to retrieve
the list of bundlers in JSON format. The only manual modification required is
to add a "secretPhrase" parameter to the JSON for each bundler, with the
corresponding account secret phrase. On server start, the StartBundling add-on
will automatically start all bundlers as configured.

Similarly to the above forging add-ons, the SaveBundlingEncrypted and
StartBundlingEncrypted add-ons can be used to store the JSON configuration of
bundlers in an encrypted instead of plain text file, and start the bundlers
on submitting the decryption password to the server.

Finally, for automating funding monitors, the StartFundingMonitors add-on will
automatically start all funding monitors configured in a JSON formatted file,
as defined in the property nxt.startFundingMonitorsFile. The JSON can be
generated by manually starting the funding monitors as desired, and using the
GetFundingMonitor API to retrieve the list of monitors in JSON format. Again,
the secretPhrase parameter needs to be manually added to the JSON for each
funding monitor.

The SaveFundingMonitorsEncrypted and StartFundingMonitorsEncrypted add-ons
allow storing the JSON configuration of funding monitors in an encrypted
instead of plain text file, and starting the funding monitors by submitting
only the decryption password to the server.

Other improvements:

The CalculateFee API now also returns the required child chain fee based on
the best bundling rate available, as feeNQT.

The JPLSnapshot add-on has been ported to Ardor. It can be used to generate
a JPL-compliant snapshot of Ignis child chain balances.

Starting a funding monitor or shuffler with feeRateNQTPerFXT=0 is now allowed.

Library updates:

Updated Jetty to version 9.4.17, Bouncy Castle to 1.61, and H2 database to
1.4.199. With the new H2 release, using MVStore mode is the default. However,
conversion of existing databases to MVStore format is not automatic. To
migrate to the new storage format, the easiest way is to use the
or compact.bat script, which should take a few minutes, and will also improve
the database performance.