Ardor v2.4.0e

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Release 2.4.0e

https://www.jelurida.com/ardor/downloads

sha256 checksums:

ba1643baff9795e308250cd41d9f70e5e32559c13d64436911519e8d69b564bc  ardor-client-2.4.0e.zip

1917a0bb701183191eac720a087795cec3139211e0897394ab2596a51fb9296b  ardor-client-2.4.0e.sh

The exe package must have a digital signature by "Jelurida Swiss SA".


Change log:

This experimental release is a mandatory upgrade for the Ardor 2.0 testnet.
It can also be used on mainnet. A testnet hardfork has been scheduled for
block 9800000, expected on March 20, 2022.

The new features to be enabled at the hardfork on testnet are Per-Transaction
Type Asset Control, and Asset Trade Royalties.

Per-transaction type asset control. When setting up asset control, it is now
possible to specify different phasing requirements for different transaction
types. The setPhasingAssetControl API now accepts a multivalue transactionType
parameter specifying the types to which the asset control will be applied (or
removed, if voting model is NONE). Possible values are: ASSET_TRANSFER,
ASSET_DELETE, ASK_ORDER_PLACEMENT, BID_ORDER_PLACEMENT,
ASK_ORDER_CANCELLATION, BID_ORDER_CANCELLATION, DIVIDEND_PAYMENT,
ASSET_PROPERTY_SET, ASSET_PROPERTY_DELETE, SET_ASSET_CONTROL. If no types are
specified, by default the asset control is applied to the following types:
ASSET_TRANSFER, ASSET_DELETE, ASK_ORDER_PLACEMENT, BID_ORDER_PLACEMENT,
DIVIDEND_PAYMENT, consistent with the original asset control implementation.
Setting control for some transaction type removes any previous control for
that specific transaction type. At any time, there is at most one control per
transaction type, while the same control can apply to multiple transaction
types.

The asset control can still be set only by the asset issuer, and the initial
setting, when no transaction types have been set under control yet, still
requires that the asset issuer holds all asset shares. Once asset control
has been set for at least one transaction types, it is not required that the
issuer holds all shares, but the SET_ASSET_CONTROL transaction type itself
could be restricted by specifying asset control phasing requirements for it.

An API change was necessary, the getPhasingAssetControl API now returns an
array of controls objects instead of a single controlParams.

Asset trade royalties. The asset issuer can now receive royalties, calculated
as a fixed percentage from each trade of the asset, which is subtracted from
the amount (in child chain coins) that the asset seller receives and gets
added automatically to the asset issuer account.

Setting or changing the royalties percentage can be done only be the asset
issuer and requires that he owns all shares of the asset. The asset issuer
can also disable royalties by setting the percentage to 0, and disabling
does not require ownership of all shares.

The new setAssetTradeRoyalties API is used to configure royalties, with the
percentage specified in royaltiesPercentage parameter. The maximum allowed
is 50%.

For open API public nodes, the default API result size limits and database
query timeouts can now be bypassed for hosts as configured in the new
nxt.unlimitedBotHosts property. The default is to ignore the limits for
localhost, set to * to allow all hosts, but be aware of potential DoS issues.

The MPG child chain will be disabled on testnet at this hardfork, and on
mainnet at the mainnet hardfork which is to be scheduled with the next
release. MPG balances and transaction history will be preserved for now, but
no more transactions of any type will be possible with MPG tokens.

A shell script contrib/ardor-ramdisk.sh has been added, for running Ardor with
the database stored in memory on tmpfs, backed up and restored to/from
persistent storage under contrib/ramdisk-backups. Run the script with no
arguments for more help.

Bugfixes in Contract Manager, Transaction voucher processing, and others.

Added support for READ_ONLY mode of the ContractRunner.

Added support for Ledger Speculos emulator, use the nxt.ledger.speculosHostname
and nxt.ledger.speculosPort parameters to configure.

Updated Jetty to version 9.4.45.


-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEvs/qm2srO/+g27NEDPnHRy2AuLkFAmIzGEUACgkQDPnHRy2A
uLm1yhAAg2wUr9C4olQj/d1WBr+ANwsLJHHjgE1ZzUQTHKt+3eBA1cci79SP/Q6G
yksgzONpKhp+CDFFkd+acyedyAVOBjCv0B47nBKDxKFJr3Jvvaf7DznROVtI/NNV
jGdpShZ/Iw+rRh6rfTvcY5PDpcQGvwftP8pQYtLPTBP6KxFr/Uuqri4BkPczQ7fc
7kTdA/yZj3w9zRGaR2/kGc9Kn/KjZPPZNMTsJ25ya/ZqYfEa+PLSzkFdlG2RJhfh
nHo2nExz6pGezb/6VEs3myf0xXqXkNztlBQu5QKAAcRcN+XBTyg+kKLRQFs55h7v
sHNbl1AwGQQcdMkYdfu+bqiOqF+WhkJSh5g7LXzKKjSEWK3bplRSDGZoMsd8KhLs
lhi7QAIGqpBd33WMdZm8l1qouvz4Z1zamHs+50JuJftw0fgazXr9vv7WEtLR9DQQ
wiuCGWrLtQOM++8yJJXl39VoOA9Cagz73P+z4nukN0pX7QwsVOsJE/xvLft5TJpy
3sAtpfaszXBwlo5YxnK+RRQ/1fV574ksP+bRA9MC1XmAMGIw1VNViW/qW7lmxD/9
gll9yOGpGM+RmmAzrbahxZ2icdsgeGyQZSK2BiYEs1b68/+8D9LHGiLtn0hK9sry
Q2yv2dXZallcJK6dKVvIeLFMEQ9mnylzKcslYp/MoxFqb5aLp4Q=
=jFn8
-----END PGP SIGNATURE-----

2 Likes

What effect does running Ardor with the database stored in memory have on performance? Would it allow for fast blocks? More TPS? A node can just handle more API calls?

TPS are limited by protocol. Faster API calls for sure, also faster db download. Apart from that, having the db in memory appears useful when the storage device is a memory card on raspberry pi and similar devices. Even if you have to allocate a swap partition, it still seems faster than writing every new block to the memory card.