In this release
This release introduces the new Light Node operation mode which greatly reduces CPU usage during block processing, as well as lays the groundwork for the upcoming Waves 2.0 release. RocksDB is now used instead of LevelDB, and the storage structure has been updated to take advantage of RocksDB's improvements and optimizations. The node now requires Java 11 to run. For more information, see the Release Notes.
Protocol Enhancements
- A block generator distributes state snapshots to the blockchain network, along with the key block and microblocks. Snapshots contain changes of blockchain state, including balances, entries of account data storages, assigned scripts, token parameters, etc., resulting from transactions added to the block. See the docs for more information about the Waves 1.5 protocol.
- If a generating node discovers a discrepancy between a received snapshot and a block, the node can challenge the block and receive a reward instead of the original generator.
- Other nodes get the option to operate in the light mode, sequentially applying ready-made state snapshots without performing transaction validation, and thus significantly speed up block processing. The light mode is enabled and disabled with the
waves.enable-light-mode
setting (no by default). - Added to the block header:
state_hash
field containing the root state hash for the block,challenged_header
message containing header fields of the block being challenged by the current block.
- Added the
attachment
field to an order as part of an Exchange transaction.
Ride
- Released version
8
of the Standard Library. - Added built-in functions:
replaceByIndex
— replaces an element in the list by index.calculateDelay
— calculates the time delay before generating a block.
- Added the
attachment
field to the Order structure. - Disabled the ability to assign scripts, which use Standard Library versions 1-3, to accounts and assets. Previously installed scripts continue to operate.
Node REST API
-
Added fields stateHash and challengedHeader to the response of endpoints returning a block or block header.
-
Added
/transactions/snapshot
HTTP API method for retrieving state snapshots for specific transactions. -
Added fields order1.attachment and order2.attachment to the response of endpoints returning transactions, as part of an Exchange transaction.
-
Added the value elided for the field applicationStatus for transactions of any type that have become invalid as a result of a block challenge.
-
Removed deprecated API routes
/debug/stateChanges/address/{address}/limit/{limit}
/debug/stateChanges/info/{id}
/debug/rollback-to/{id}
/assets/broadcast/*
/assets/[transfer,masstransfer,…]
/alias/broadcast/create
/alias/create
/leasing/lease
/leasing/cancel
/leasing/broadcast/*
/assets/{assetId}/distribution
POST /addresses/data
/blocks/signature
/utils/script/compile
/addresses/verify/{address}
/addresses/sign/{address}
/addresses/verifyText/{address}
/addresses/signText/{address}
/blocks/first
Activation
To activate the improvements listed above, vote for feature #22 Light Node
.
Update Notes
- You need to rebuild the state with this update (this also concerns Testnet and Stagenet). The state snapshot for Mainnet will be available on blockchain.wavesnodes.com later today. Make sure you're downloading the snapshot for version 1.5.2.
- Make sure you use the correct version of application.ini. When prompted to resolve differences, it is advised to install the maintainer's version, and then tweak the options manually.
Configuration file '/usr/share/waves/conf/application.ini' ==> Modified (by you or by a script) since installation. ==> Package distributor has shipped an updated version. What would you like to do about it ? Your options are: Y or I : install the package maintainer's version N or O : keep your currently-installed version D : show the differences between the versions Z : start a shell to examine the situation The default action is to keep your current version. *** application.ini (Y/I/N/O/D/Z) [default=N] ? Y
- The node requires Java 11 to run. Please update your hosts if necessary.
SHA256 Checksums
914149e0697f4d2b281f8f79de2e9812de7da8a2d1b863ce9bdbe79bc323b73c waves-grpc-server_1.5.2_all.deb
1b0e185fb194ace93c8ddea4b5f57cea4242f3edb689ab788d4bf73306baee9c waves_1.5.2_all.deb
061f1105f4e9259eb91b55aff5bdb8d132395184b131c223dcd7d7edd884b823 waves-grpc-server-testnet_1.5.2_all.deb
254826ef01e942208d56d0ce81adb154c52bb4d485b94b8bccab2d91f9f2abff waves-testnet_1.5.2_all.deb
4997b46e9f35d727555469433da78f01734565041d7a924a303ea5d19542439e waves-grpc-server-stagenet_1.5.2_all.deb
0bc12f137d136a779475c6c8f661fb93ae2f17b78573dd9f6472d9686861f612 waves-stagenet_1.5.2_all.deb
3282bb5ad479d68a87fda01826cae62fd3e161a6577e1e732ed5e051ef29af2c waves-all-1.5.2.jar
c05c9c77a2ddbcd601cf77a626237e3aa6fea79a855ef8b5e3c062eef757b9cf waves-grpc-server-1.5.2.tgz
29315311126125490d975c26bd30f85e0898c64280360658144b81b6bb2773bc waves-ride-runner-all-1.5.2.jar
e17162bd0499096aeab3452cfbae1d5912031d3d0f256acba0c29575560ca1b0 waves-ride-runner_1.5.2_all.deb