Releases: wavesplatform/Waves
Version 1.2.17 (Mainnet + Testnet + Stagenet)
In this release
In this non-mandatory release, original Lease Transaction JSON is re-introduced for Lease Cancel transactions, which fixes API compatibility with previous versions.
SHA256 Checksums
92530be7a3f2c074bcad01ae98e12d4d081c1f5d65ba4155cbee30f584441698 grpc-server-1.2.17.tgz
241d70913d50fc8afa970610ebe6b606f03f04b1e23bc76a5ca2cd552b49053c grpc-server-stagenet-1.2.17.tgz
0311d84630a1e61c3c501bd8f400b7e215ef04ab03d87cf9d46372106d00e3dc grpc-server-stagenet_1.2.17_all.deb
590f88c9149f3957163c274526b0f7ad51b99cce16a8b619ff2383e4be49749d grpc-server-testnet-1.2.17.tgz
8e78d26739d4413c44467b4375af1004976e7b7b3a18084482cb8b95c96cad44 grpc-server-testnet_1.2.17_all.deb
992c8ab7d147d4bd4648fe211a195b27dfe58a0be63d23f796a05c0507e88a91 grpc-server_1.2.17_all.deb
da24f097bf9573b15583a6184a92e11b6d04929420bd2b713c308e7d9726b942 waves-all-1.2.17.jar
68348b8b51c609b19b2ff63076427305b36b4f1064fc9aa949d363b16d59219f waves-stagenet_1.2.17_all.deb
953ece1d8da6a598f9f7b2a174c4b0d3777983b633631bd42a8817d29832b9e1 waves-testnet_1.2.17_all.deb
351fb1ad95a7159d3917d3fba2df5b009da20d58bcb275595eecbeef150b10fb waves_1.2.17_all.deb
Version 1.2.16 (Mainnet + Testnet + Stagenet)
In this release
This is a mandatory release for all miners who have updated to 1.2.15. Unfortunately, a new feature has prematurely been added to implemented feature list.
Besides the fix, this release contains the following new features and improvements:
- New
/utils/script/evaluate/{address}
endpoint allows users to call any function declared in a dApp deployed to an{address}
. This endpoint expects JSON input in the form of{"expr": "functionToCall(1, \"arg2\", base58\"AAA\")"}
. Make sure to escape double quotes when passing a string as an argument. - State changes for Invoke Script transactions will be included in JSON and gRPC responses of address transactions endpoint.
/debug/stateChanges
endpoint has been deprecated and will be removed in the future. - Fixed error traces in API. Both
/debug/validate
and/transactions/broadcast
will return detailed traces when transaction validation fails. - The node will use native Curve25519 implementation on supported platforms, this will speedup signature verification.
- Improved Swagger schema and fixed several API routes to properly validate input parameters
- Improved UTX Priority Pool reliability
There's no need to rebuild state when updating from 1.2.14 or 1.2.15.
SHA256 Checksums
762d3d23d26748f87b4fd97f9505fbd2485733399583ccfa23861de3c861e484 grpc-server-1.2.16.tgz
749724f329793e5850b8d7131de08a885881e12244fb92ba2d9a08e998a54b07 grpc-server-stagenet-1.2.16.tgz
c7de07a478627524864cc5a381805285d1120c22d44540e14eb458b39351bbbb grpc-server-stagenet_1.2.16_all.deb
8ba9b8f2868e9cb31c63dc4e03303ec0d638f911492e981c2977d393cc1b7670 grpc-server-testnet-1.2.16.tgz
a0c65cb1d6c5cfccb2183f8bc569cd975a400a380b64110e585cf2ec755e4d9c grpc-server-testnet_1.2.16_all.deb
2e3b346a516ad2e6babdcccebf99af37dad90a8e618ed618580c804b3d3a7f10 grpc-server_1.2.16_all.deb
a52ec33db09f68f65e5c0e93b47e0bfcc7a8242ddc248eaf05b09785a334488f waves-all-1.2.16.jar
fc28e94b02d666f918ed6e4b1810a421e20ca3b8588df25a47534ca125974489 waves-stagenet_1.2.16_all.deb
3f455ed5163297fce3a4e7559352ba83569c2cffa8d08deb029ebf5a3a08a209 waves-testnet_1.2.16_all.deb
24629014ec799a4d1a44d058eff82876bc30af7c15cc723a0ec3437733fb423b waves_1.2.16_all.deb
Version 1.2.15 (Mainnet + Testnet + Stagenet)
This release is broken. Please see v1.2.16 instead.
Version 1.2.14 (Mainnet + Testnet + Stagenet)
In this release
This release mostly brings improvements and bug fixes to Blockchain Updates and GRPC Server extensions, so if you are using either one — please consider upgrading. There's no need to rebuild state when updating from 1.2.12.
Here's the list of Blockhain Updates improvements:
- The extension has moved to GRPC Server extension distribution. It means that you'll need to install just one DEB package or tarball to use both (or either). When migrating from previous versions, please note that
blockchain-updates
config section has also moved towaves
section. If you specified non-default listen port, please update your config accordingly. - Fixed an issue which could cause REST API to become unresponsive when Blockchain Updates extension was enabled.
- Improved error messages when requests contained invalid data.
Other node improvements:
- GRPC Server now properly sets chain ID for blocks returned via
GetBlock
/GetBlockRange
requests. - Default JVM options in
application.ini
have been tweaked. When updating DEB package, dpkg may warn you that both locally installed and package-supplied files have changed. It's safe to keep your local version. - Swagger documentation has been updated with improved request model definitions.
- Import from URL can now continue from where the process had been interrupted, so there's no need to re-download the import file fragment it has already processed.
SHA256 Checksums
a76356ebe495d5cde98dad29548f28f6c7498cac8d62e2177b24e517342daec3 grpc-server-1.2.14.tgz
60c52a0f723acc520a8793c105f42cce4c35244c4bf0bf976c2809759b734f19 grpc-server-stagenet-1.2.14.tgz
a7419bebfb3a76a4d368113beb02a155bc3ffe29f0cac0bd6e8de954cb8c900e grpc-server-stagenet_1.2.14_all.deb
ec204752b29bf7b53f9e5ea0df488dd302571d3377d75ed0cbc2b595019f9c65 grpc-server-testnet-1.2.14.tgz
1b68851938cb99991f3eb2b58503b6efae39ae10db0d0f45016852a2cb6b3d67 grpc-server-testnet_1.2.14_all.deb
54d18292188abbb0f7f6891406f9b9a7288a398398f62a32bbe3af1b2e7c8846 grpc-server_1.2.14_all.deb
e02276fc4f6213005465167a01fbb5e9d47a018eaa4bdefbc514b3ca359e0e17 waves-all-1.2.14.jar
47098c717712eaee67a04ef7f0102831ae30393a688312a8c340e7b3931cdc89 waves-stagenet_1.2.14_all.deb
f0d354a5de5eba56ff7da5352dee65a6e75f99a15e13d8d6ecdb3573d0c8c626 waves-testnet_1.2.14_all.deb
154c847fc7db2267bc6892da3d74cac76364916a94f9a32be03b6e21e6f4a2be waves_1.2.14_all.deb
Version 1.2.13 (Mainnet + Testnet + Stagenet)
In this release
- New Blockchain Updates extension is now a part of node release.
/addresses/data/{address}
method has been tweaked to run faster and consume less memory.- Bloom filters are now disabled by default. This will make node start much faster after non-clean shutdown. Bloom filters will still be used during import.
- A new setting
waves.utx.fast-lane-addresses
allows miners to prioritize transactions from specific addresses. - A new debug & monitoring API can be used to retrieve internal hashes of all state changes at specific height. These hashes can be used for early discrepancy detection between nodes.
- Instead of local time, miner will store calculated time in a block.
There's no need to rebuild state when upgrading from 1.2.12.
SHA256 Checksums
1ae0ea4c1d22bbcfebfe77775f2deea3156d8b39a26b68914e7c8d8d337d68ac grpc-server-1.2.13.tgz
447d1f1eb26ccafe5e068adf996d95a53b2d83cc55a49ed07a48645813271561 grpc-server-stagenet-1.2.13.tgz
9f0c3c0152236ef56a1f5e8e0ab0120dc926ec5169de3b1ac76477ded5ceb153 grpc-server-stagenet_1.2.13_all.deb
170e9f8940744c97cf36fe92451d70231232bd043cf3365414d1bbe3af32640f grpc-server-testnet-1.2.13.tgz
f19b698ca857153a94b3252c78e3c4e75504cf58fc6216f435ea19fd43bd808d grpc-server-testnet_1.2.13_all.deb
8d0c8e73c81148f6509e8a8687c844c6f17d704c481aa6bb5d38bba294a636dd grpc-server_1.2.13_all.deb
7f423f1e109018e0fe809597c27e81344a82456a8a4562491f9e3a31baeafd76 waves-all-1.2.13.jar
7a7a9877704ec1925cd2760edd7ee8c2204bda29683c47365b84739e5272b09e waves-stagenet_1.2.13_all.deb
114576f9cdc7a44be51b7332d3b401c4f822d12feeb3fe8313a51dca2c7ffee4 waves-testnet_1.2.13_all.deb
80ca44f65040a95733ab1c4a3fffc92e08d9c54af01af8f8cd7cd9adb19447d8 waves_1.2.13_all.deb
f5320dd96d8fbf6bcfbaaf6f2923fc7b7b672297cdec343a767394709f2c0367 blockchain-updates-1.2.13.tgz
048a5d897b4d834e755e48bad9c8c13ddcf8c3e70488d7c0a7bc7e6dc7663726 blockchain-updates-stagenet-1.2.13.tgz
53875c5ef4643dd7ec38636297d7030ae76a523df1e3caf7e6f43b90b0432351 blockchain-updates-testnet-1.2.13.tgz
3a5ddb2ff6a8d35c881d2bcb1c2b70f73d223f6108739cbf0a48f65caea1e2ed blockchain-updates-stagenet_1.2.13_all.deb
468fff0d3f55f8d7ba9da0386b37c01c42f808f6e7c0349661ddccab74931e1e blockchain-updates-testnet_1.2.13_all.deb
1621a0c5e23b24e5d6b50ad5da67c8df8265258b6c88127eb15e339285be9708 blockchain-updates_1.2.13_all.deb
Version 1.2.12 (Mainnet + Testnet + Stagenet)
In this release
This release includes several REST API compatibility and stability improvements:
- Deprecated
/assets/{assetId}/distribution
method now returns all addresses holding an asset, not just the first 1000. However, please consider using a more reliable/assets/{assetId}/distribution/{height}/limit/{limit}
method instead. - The node will accept Burn transaction JSON with either
quantity
oramount
field. - Fixed several issues which caused the node to crash when requesting address transactions, state changes or portfolio for an address via REST API.
We encourage everyone using their node's REST API to update. There's no need to rebuild state when upgrading from 1.2.11.
SHA256 Checksums
15e9843a8a8766bdccfe8c6313c2e5c8d1d454602c40d3396b57245e718fce8a grpc-server-1.2.12.tgz
7bab4cdb4879e6a375b72cc45ad7b2cbbe526cc80f2b7477aef742107c564316 grpc-server-stagenet-1.2.12.tgz
5899bbcebd1dc84c1d855aadda990c9e499bd09a8b6a31b3c2ef49e2b4047827 grpc-server-stagenet_1.2.12_all.deb
450f42fb88a6f696bea34f63da432c6607831b12a1b310bdd0634afcaface3b9 grpc-server-testnet-1.2.12.tgz
91a9f170e663beea464e949b1de0d50e5d290bccf583d50a79c69cafde61ffe8 grpc-server-testnet_1.2.12_all.deb
9607ddb9255a16425c20a8e7c7fa9ab2dad5f7cc6d0ed2aeb0ac7ddb95896c0a grpc-server_1.2.12_all.deb
33f5716d67dc9b154b9b3908dfbc30ee1ad8f650d3512271fcae77496de52207 waves-all-1.2.12.jar
42b4a8c27de72796a3c54b6edc693e4a5736d1a006d044dc8c0635a652731e2c waves-stagenet_1.2.12_all.deb
1a4e73eb93b8b52dada8cff6d0f584763afd73423ad18b53aab1b072e08723b3 waves-testnet_1.2.12_all.deb
6c671f199538e79871e3f9932657b9876034111e1a8509d6d11e710904957c28 waves_1.2.12_all.deb
Version 1.2.11 (Mainnet + Testnet + Stagenet)
In this release
- Restored (and deprecated; see below) the ability to use an empty string in transaction JSON's
assetId
andfeeAssetId
fields (where applicable). Please note that this change is introduced to restore compatibility with 1.1.x (and earlier). Future versions will only supportnull
or non-empty base58-encoded asset IDs in these fields. - Fixed a bug where responded with 200 and an empty response when a block could not be found for the valid block ID. This version will return 404 and BlockDoesNotExist error, just as expected.
- Fixed race condition in importer tool which could cause the final stage of the import process to corrupt the node's storage. If you are upgrading from 1.1.x and need to rebuild the state, it is once again safe to use importer tool.
There's no need to rebuild the state if you are updating from 1.2.10.
SHA256 Checksums
77f11c88f4705baa5d2528549ea50def995bd8f4f753772cd9c8a1f9bc6bfa36 grpc-server-1.2.11.tgz
db52cd0d101b0a8ef5c33d3668c473479ce13feca14baba3f0c2a0295b0e272b grpc-server-stagenet-1.2.11.tgz
cc99e66a361123ca2cacfa6d540c999ef569bb39e8d5caef0c52a0cbc08bae38 grpc-server-stagenet_1.2.11_all.deb
3d6d6408d2ebc20072f16373197a93b5b6327fc23fbf8f5f50ae9f722d68d09d grpc-server-testnet-1.2.11.tgz
f6b7dc5af6816ea5fba189d9474fa0b6cfdc11176aa81a5ae6ea7b0bb9ef7cd0 grpc-server-testnet_1.2.11_all.deb
94990b4f545c98dffc117cc389504372e38c06d1d1f4959c408a80575a691553 grpc-server_1.2.11_all.deb
f233f67a64bd9bc2b8a15975414cb5b8666ce6260b2a265c27e28d56b047bf0d waves-all-1.2.11.jar
40ecf55bc9f3fcc37ac3cbf503a9253e6349ed4104c1a10ece2fdce3977ed934 waves-stagenet_1.2.11_all.deb
6b580827303ae410b037325713a2ac4668b40ca2de94247c4e8dcff94bc34347 waves-testnet_1.2.11_all.deb
336b9cc2fe002e98edfaeb7a29af3978e761a1af81988ce7cad6ca5e4b7029a2 waves_1.2.11_all.deb
Version 1.2.10 (Mainnet + Testnet + Stagenet)
In this release
This release is accumulation of all previous 1.2.x releases. Now it's available for Mainnet.
After the activation of the feature #15 all Protocol changes become available.
Below you can find the list of only major changes comparing to 1.1 release. The full list of changes can be found in the documentation.
Protocol changes
- Improved the mechanism for generating blocks by using VRF (Verifiable random function). This improvement allows withstanding stake grinding attacks, which are used by the attackers to try to increase the probability of generating a block for themselves.
- Implemented saving failed transactions. Invoke Script transactions and Exchange transactions are saved on the blockchain and a fee is charged for them even if the dApp script or the asset script failed, provided that the sender's signature or account script verification passed and the complexity of calculations performed during script invocation exceeded the threshold for saving failed transactions. More details
- Changed the scheme for signing the block transactions by the generating node. Previously, the generating node needed to sign the block header along with all transactions. For now, the transactions root hash is added to the header, so it is enough to sign only the header.
- Implemented binary transaction formats based on protobuf.
- Minimal interval between blocks is increased from 5 to 15 seconds. Average block time is targeted 60 seconds instead of current ~59 seconds.
- Implemented the feature of changing the asset name and description. For this means, the Update Asset Info transaction is used.
- Reduced the minimum fee from
1
to0.001
WAVES for the Reissue transaction and Sponsor Fee transaction. - Implemented the feature of deletion of entries from the account data storage. This action can be performed by the Data transaction or DeleteEntry structure of the Ride language.
- Changed the orders' price calculation formula. Earlier, when determining the price for assets with different numbers of decimal places, there was a price value size issue. The maximum value depended on the difference of decimal digits of assets. For example, the price for an NFT asset could not exceed 1000 WAVES. The modified formula corrects this problem. Decimal places no longer affect the maximum price.
- dApp can't call itself with InvokeScript transaction with attached payments. Also dApp can't transfer funds to itself by ScriptTransfer.
Ride improvements
- Issued version 4 of the Ride Standard library.
- Enabled processing up to two payments attached to the Invoke Script transaction (previously only one).
- Added script actions that the callable function of dApp can perform:
- Token actions: Issue, Reissue, Burn, SponsorFee.
- BooleanEntry, BinaryEntry, IntegerEntry, StringEntry that add or update the account data storage entries of the corresponding type. These actions replace DataEntry that is not supported in version 4.
- DeleteEntry that deletes the account data storage entry.
- Changed the complexity of certain built-in functions and operators. Changes are listed in the Built-in Functions article.
- For the built-in hashing functions blakeb256, keccak256, sha256 and the built-in verification functions rsaVerify, sigVerify the complexity is changed in version 4 along with adding the range of similar functions with different complexity depending on the argument size limit.
- Added support of list of primitives as a callable function argument.
- Added built-in functions that verify the zero-knowledge proof zk-SNARK by groth16 protocol: groth16Verify (on the bls12-381 curve) and bn256groth16Verify (on the bn254 curve).
- Added the ecrecover built-in function that recovers public key from the message hash and the ECDSA digital signature.
- Added the following built-in functions and operators:
- for lists operating: containsElement, indexOf, lastIndexOf, removeByIndex, min, max, median,
++
operator,:+
operator. - for strings operating: contains, makeString for concatenation.
- valueOrElse(t: T|Unit, t0: T) that returns a value from the union type if it's not unit.
- for lists operating: containsElement, indexOf, lastIndexOf, removeByIndex, min, max, median,
- Added the Tuple data type.
- Changed the maximum complexity to 2000 of an account script and verifier function of dApp script for new scripts, regardless of the Standard library version. The maximum complexity of an asset script and callable function of dApp script remains 4000.
- Changed the maximum data size:
- String: 32,767 bytes
- ByteVector: 32,767 bytes (except the
bodyBytes
field of the transaction structure).
REST API Updates
In the Node 1.2 release, we have some semantic and breaking changes in the API. Please read the following changes very attentively as it can affect your working application when migrating from Node 1.1 API to the Node 1.2 API.
Semantic
- As failed transactions can be saved in the blockchain so it's not enough to see presence of Invoke Script and Exchange transactions in the blockchain - user needs to check their status. Please see new field "applicationStatus" in methods listed in the full release notes.
- In the stateChanges of invoke Script transaction user now can find the reason of failure if transaction is failed in the "error" field in the following methods:
/debug/stateChanges/address/{address}/limit/{limit}
/debug/stateChanges/info/{id}
- There are new fields for stateChanges of Invoke Script transaction due to new script actions. Now it has the following structure:
"stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "error": {"code": number, "text": string} }
Affected methods:/debug/stateChanges/address/{address}/limit/{limit}
/debug/stateChanges/info/{id}
"reference"
field in Block v5 corresponds to"id"
of the previous block instead of"signature"
in Block v4.
Breaking changes
- Blocks now get by their
id
instead ofsignature
. Affected methods:/blocks/delay/{id}/{blockNum}
/blocks/height/{id}
/block/signature
/debug/rollback-to/{id}
/blocks/child
- Method
/consensus/generationsignature
deleted. - In
/addresses/scriptInfo/{address}/meta
agrument list is now listed as an object array.
Before:"meta": { "callableFuncTypes": { "funcName": { "arg1": string, "arg2": string } } }
Now:"meta": { "callableFuncTypes": { "funcName": [ { "name": string, "type": string }, { "name": string, "type": string } ] } }
- There is new transaction Update Asset Info.
- Invoke Script transaction now can have arguments of List type:
{ "call": { "function": string, "args": [ ["arg1-item1", "arg1-item2", "arg1-item3"] ] } }
- Data in accoun...
Version 1.2.9 (Stagenet)
In this release
Node
- Fixed account data by regex API
- /transactions/broadcast always validates Invokes and Exchanges, and discards if it's failed
- Changes in UTX synchronizer/cleanup behaviour with "failed" transactions
- Exchange matcher fee asset scripts don't count in block complexity and tx min fee requirement
- Custom min block interval for custom blockchains
- /debug/validate route made public, now works correctly with scripted Exchange transactions
- Some minor protobuf, REST API, importer fixes
RIDE Changes
- Free complexity limit (which will prevent some InvokeScript transactions from being failed) has been decreased to 1000.
- Minor improvements and bug fixes
Update Notes
There's no need to rebuild the state if you are updating from 1.2.7 or 1.2.8.
SHA256 Checksums
be8685d5fe0eb48dce76d96aa9e74d3b7d3607d1cdfa8295efa3c0575bd012b9 grpc-server-stagenet-1.2.9.tgz
1d953d2df64c01be4442a638f790c5bf170cd213a5a58771152788904f2f37f6 grpc-server-stagenet_1.2.9_all.deb
25578ddd91cfdf6caa207bc5998461160773a14b92f0b88caf7120bb4c76bfbc waves-all-1.2.9.jar
6d530bae83b244c61179fa190bf6709902a42a7b53e011ff3310e3053fff9d65 waves-stagenet_1.2.9_all.deb
Version 1.2.8 (Stagenet)
In this release
This is a hotfix release, which contains an important bugfix. We encourage all stagenet miners to update their nodes and re-import (or re-download) the blockchain.
Ride
- Fixed error occuring while using of state read functions
SHA256 Checksums
73743d8914bb79c2291f14e91f54a982a425e39f74bb57c54e89856b1949b0b7 grpc-server-stagenet-1.2.8.tgz
0ef5b0e57d580783704284cb54c97cf84d50cf39e3636217cc9bfd4ddac7672e grpc-server-stagenet_1.2.8_all.deb
d070d72388f42d3436e6aa32029795105c1d31984d76f63c4864b429dfbc169d waves-all-1.2.8.jar
f951bba38ca9e937a5336f5027a5e099344c3dcc8a2b566db586f5904e5ec2f2 waves-stagenet_1.2.8_all.deb