Releases: wavesplatform/Waves
Version 1.2.2 (Stagenet)
In this release
This is a maintenance release which changes the way VRF is used in block consensus validation. The changes it introduces are not compatible with previous 1.2.x releases, so the blockchain has been rolled back to height 264700. You will also need to re-import blockchain when updating your node.
Other notable changes:
- For v5 blocks VRF is now accessible in RIDE's
BlockInfo
structure, as well as in REST API - Order v4 price calculation rules have changed
SHA256 Checksums
d81861c0be17b49fa4944a9ef0a9a286c8e453a96b64a67f29d427ffcd1a7778 grpc-server-stagenet-1.2.2.tgz
be8e8a83d39fc1396d80051714cfcc05d91a8e8a6f74461b56abc6e51035023a grpc-server-stagenet_1.2.2_all.deb
dc4f51cf397a2daea9c3524f74c56050659bd437ad18d72a6bcdb1590fe4c341 waves-all-1.2.2.jar
14c86deb02eac62aecb1f8f69d2c18b1d98e5411ca23187f286507e6e0b5e8e1 waves-stagenet_1.2.2_all.deb
Version 1.1.7 (Mainnet + Testnet)
In this release
This release contains an important fix and is highly recommended for all miners and those who broadcast transactions via their node's REST API. However, it does not contain any consensus changes, so it is not required to update your node. There's no need to rebuild state when upgrading from 1.x.
UTX Synchronization Fix
This release fixes an issue with unconfirmed transaction synchronizer, which sometimes caused the node not to include any transactions or include little amount of transactions in the blocks it forges. Most of the recent empty blocks on the blockchain were caused by this issue.
REST API Improvements
- the above issue also caused sporadic "Error is unknown" errors when broadcasting transactions via REST API. Since the root issue has been fixed, transaction broadcast reliability should improve
- Swagger documentation for
/transactions/status
method has been fixed, which makes it usable via the web interface.
SHA256 Checksums
fa4024802a0655a425fe3a5ed7f3bae5dc9db694c307f39d5a3ad097ebd7f75f grpc-server-1.1.7.tgz
661278946f929b76f89391bc367cd32a9e691661672217f5ecff4d15e0d1115d grpc-server-testnet-1.1.7.tgz
f558a5ab524efb1adbb936e2e30b91b9b21f99257920beb0776a5aabb3a1ee37 grpc-server-testnet_1.1.7_all.deb
81e3d71d65111bdacce36513dfbe8bb0db42264ddef62ae56cc21d85eda81a75 grpc-server_1.1.7_all.deb
8194570393ed531721e66a5a99097e52f9e2505ec9ea0bef6a795744e28935a3 waves-all-1.1.7.jar
a1bc494f122464bd77ce2267354344405e05997ac9d850ff12947985078e794b waves-testnet_1.1.7_all.deb
dc10ee35a1403a2df3422c3bb866cc4e7b63006c2d53bc32c2a77e9fac02e2b8 waves_1.1.7_all.deb
Version 1.2.1 (Stagenet)
Note. This release is for Stagenet only
In this release
This release contains several important improvements:
- Fixed microblock exchange between peers.
- Custom networks launching with pre-activated
BlockV5
feature no longer stall after the first block had been generated. - Fixed script and function call serialization in new transactions.
Due to changes in InvokeScriptTransaction serialization, stagenet blockchain has been reset to height 245781. Please re-import blockchain from file.
SHA256 Checksums
f6c69a4cb9a5cdfdcf3e2e500ef5cd83754dda376facabbfffbf5c9427f2f998 grpc-server-stagenet-1.2.1.tgz
e4cf7344ec9f8070558e0c982ea50f32d6312280a89c30661cc8f7d1607584f8 grpc-server-stagenet_1.2.1_all.deb
8ae6f4e4324fac69244c7bce5b7d317f06036b2286a4ab298da611e9e2ceb62a waves-all-1.2.1.jar
63c73158f67b6c50a0894946ccd58be8413f79b31d37f2dfa58ebcea71c215f7 waves-stagenet_1.2.1_all.deb
Version 1.1.6 (Mainnet + Testnet)
In this release
This is a mandatory release, as it contains several security fixes, as well as other improvements. However, there's no need to rebuild state when upgrading from 1.x.
UTX Pool Improvements
- Invoke script transactions count towards size limit.
waves.utx.max-scripted-size
is set to 5000 by default. - To reduce the amount of logs the node produces under heavy load, execution traces are no longer written to
waves.log
by default. If you need the traces, definelogback.utx-trace.enabled
system property either inapplication.ini
, on the command line or inlogback.xml
to save traces toutx-trace.log
. Alsowaves.log
is now rotated when size limit is reached (100 mb by default), in addition to daily rotation. - When microblock is appended, transactions it contains are removed from pessimistic portfolio.
Miner Improvements
- To improve mining performance, the miner packs unconfirmed transactions in several passes. This ensures that non-scripted transactions are included in the microblock even when scripted transactions pool size limit is reached.
- Default
waves.miner.min-micro-block-age
has been reduced from 6 seconds to 4 seconds. This will likely reduce the number of orphaned transactions during microforks.
API Changes
- New API has been added which allows requesting transaction statuses in batches. It supports both
GET
andPOST
methods:
GET /transactions/status?id=3qsBVPVRzyfityEo4cpL6ZyAZdXyJ5YQfR2vSeRbvxNy&id=CyvroiVc46ekEtVksmWndS99QSgddMEJozArXEHqKP5r
POST /transactions/status {"ids": ["3qsBVPVRzyfityEo4cpL6ZyAZdXyJ5YQfR2vSeRbvxNy", "CyvroiVc46ekEtVksmWndS99QSgddMEJozArXEHqKP5r"]
See documentation for more info.
- The node can now render numbers which can potentially have large significand (e.g. balances, amounts, quantites etc.) as strings. To request custom JSON serialization, clients must include the following header in their requests:
Accept: application/json;large-significand-format=string
See documentation for more info.
- Transactions for address from liquid block are returned in the same order as they were mined.
- Fix callable functions arguments types fetching via
/addresses/scriptInfo/{address}/meta
. - Fix decompilation of native function names.
- Add optional receiving of script result trace on transaction broadcast by specifying additional
trace=yes
parameter. - Fixed an issue where the node API returned incorrect generating balance
Misc Improvements
- Importer/Exporter shut down gracefully even when metrics are enabled
- Reduced systemd stop timeout
- Improved locking mechanism
SHA256 Checksums
ce795f969c2dc2015ef0edc1d80a89e30803a17bb6352260655b1bd4f2ed1dd4 grpc-server-1.1.6.tgz
8b5957df32e744c41e3b72aeadabbd652fa38ecc128db1093f59134805aa1da6 grpc-server-testnet-1.1.6.tgz
611906590a0396679fc79bb76c4e79169486bdd4ece36d3ee7fbecad1d9381c9 grpc-server-testnet_1.1.6_all.deb
0dd991caa0af2f4d165544f4c0fb091652aa62c48738d95890b530745c719f8c grpc-server_1.1.6_all.deb
c6cbee4b206bbc796b597f6f5d991373825469d20fae63a7662e37b51aba9eb4 waves-all-1.1.6.jar
f9d30a2ea6e7ef9c1f184f3ea4cc5449d4ec8746ef2fcae1f0894f7484af91f0 waves-testnet_1.1.6_all.deb
7858bcd075c3901ca0f3c684d977bae41dd1af10ff4ae841123d9a4d9a2d1651 waves_1.1.6_all.deb
Version 1.2.0 (Stagenet)
Attention! This release is for stagenet only! Not for mainnet/testnet.
In this release
Node improvements
- Improved block generation signature by implementing VRF (A Verifiable Random Function with Short Proofs and Keys). VRF is a pseudo-random function that uses a message and the private key of an account to provide a non-interactively verifiable proof for the correctness of its output. The use of VRF makes signature generation unpredictable because of the need to know the private key for calculation.
- Added MerkleRootHash of block's transactions to the header, so that now it is sufficient to sign only the block header. Earlier, the miner node signed each block's transactions and its header. Read more about block generation.
- Implemented account data storage records deletion by data transaction.
- Implemented update asset info transaction. Now users can update names and descriptions of their issued assets.
- Reduced the minimum transaction fee for reissue transaction from 1 to 0.001 WAVES.
Internal storage structure has changed in this release. You will need to rebuild the state.
REST API updates
GET /assets/details/{assetId}
returns issued/reissued/burnt asset details. This endpoint also accepts multiple asset IDs.GET /assets/nft/{address}/limit/{limit}
returns assetDetails array of NFT assets which belong to address.GET /transactions/merkleProof?id=some1&id=some2
returns merkle proofs for requested transactions.
Ride improvements
- Issued fourth version of the Ride standard library.
- Added built-in math
median
function. The function calculates the median of a list of integers. - Added
DeleteEntry
structure for implementing the deletion of records in the account data storage. - Implemented feature of using of issue, reissue and burn transactions in dApps.
- Divided DataEntry structure on following structures:
- BinaryEntry structure. The structure implements a binary data record of the account data storage.
- BooleanEntry structure. The structure implements a boolean data record of the account data storage.
- IntegerEntry structure. The structure implements an integer data record of the account data storage.
- StringEntry structure. The structure implements a string data record of the account data storage.
- Implemented processing in dApp up to two payments attached to invoke script transaction.
- Added built-in zero-knowledge proof verifier function
groth16verify
- Added convenient option value handling function
valueOrElse
SHA256 Checksums
13c63f89a47751823ef76bc778b55b2c385af4e90ff36f361cdfc2cb9f79c763 grpc-server-stagenet-1.2.0.tgz
80b9909d0d54fb668bec450354b3a27d432feda33b2da30a52c1bb3a426569c1 grpc-server-stagenet_1.2.0_all.deb
50db7a2908c37de2ee0b45712f9154f13310b2ef6beb547200a141668f227571 waves-all-1.2.0.jar
b2d528beea4d0de151a2e6b4465c2a31ad13b623171f0561899ca7f91c66b24d waves-stagenet_1.2.0_all.deb
Version 1.1.5 (Mainnet + Testnet + Stagenet)
Security Fix
This release contains a security fix which has been released with version 1.1.4. The only difference is that this release is built from github sources after the fix had been published. If you have already updated to 1.1.4, you can skip this release. However, if you have not updated yet, make sure to update both the node and gRPC server extension to 1.1.5.
An issue in gRPC server extension allowed signing transactions with node's private key via gRPC without requiring API key (or any other authentication token). This issue only affects the nodes which expose gRPC interface to a third party (by default, the server binds to local address only). The method has been disabled in the extension, it will respond with NOT_IMPLEMENTED to all requests. We might re-enable this method when we find a viable gRPC equivalent of an API key.
Node Improvements
- Improved
/addresses/data/{address}
now accepts the list of keys to retrieve values for. These keys can be specified as:- repeated query params in a
GET
request:key=first_key&key=second_key
- JSON object with the
keys
field in aPOST
body:{"keys": ["first_key", "second_key"]}
multipart/form-data
orapplication/x-www-form-urlencoded
in aPOST
body.
Please note that appropriate content types and param encoding is required.
- repeated query params in a
- A hard time limit has been imposed on UTX transaction validation duration. All transactions which are received from network or API and take longer than 5 seconds to validate are rejected. This rule is not a part of consensus and only affects unconfirmed transactions.
- NFT list API endpoint has been fixed to return only tokens which are currently in posession of the specified address
- Smart contract execution has been sped up thanks to Waves context reuse
- gRPC Server can now be built on Windows hosts
- Posting account data via
/addresses/data
has been deprecated and will be removed in one of the future releases. Please explicitly broadcast signed Data Transactions byPOST
ing to/transactions/broadcast
instead.
Update Notes
If you are running version 1.1.4, you may skip this release, because it has been built from the same source. Also there's no need to rebuild state if you are updating from 1.1.3. Please make sure to update both the node and gRPC server extension.
SHA256 Checksums
c01c126577dc15c2446b93f3b02c0b4b8f38f52bfa59cabcd24b7d8c9993640d grpc-server-1.1.5.tgz
f76a73d737ce05dbeaa7e9708ea56908311d3939cad457fadfd99a8f150127f9 grpc-server-stagenet-1.1.5.tgz
73e610d2156ffa3f19844985ac14ae0b5114c7dcb7bd70d9e6a57a0e23488cfb grpc-server-stagenet_1.1.5_all.deb
602e60a3579b3678cff5a71d9c4bca7b86879e02c70e1edb42cab024cb402746 grpc-server-testnet-1.1.5.tgz
233fb007d5fb3178c66993e051f0c04fc27e8582e16e0ee6be9fe937cfe9eb10 grpc-server-testnet_1.1.5_all.deb
9b186c450aecad9aaad8a7b74bb716f14508053a0e62aa4062daf815e8442b90 grpc-server_1.1.5_all.deb
1ddea4c72e512f71feb2c70b3aee286c4a0ff66126214c7c49f43e617add1240 waves-all-1.1.5.jar
9503d8e739c42402796920adedc448074d17c22f04ff4e8ddfcba9bfcfbdfbbf waves-stagenet_1.1.5_all.deb
2edffbcf3441cd2d9a25ae2d3a45e924037f624a451273d45c53d05be0769bb7 waves-testnet_1.1.5_all.deb
a2d81613d98f733aa5c41167719f21a211ba8f64f97bca3f2e958eff6f365da9 waves_1.1.5_all.deb
Version 1.1.4 (Mainnet + Testnet + Stagenet)
This release has been superseded by v1.1.5
Node Improvements
- Improved
/addresses/data/{address}
now accepts the list of keys to retrieve values for. These keys can be specified as:- repeated query params in a
GET
request:key=first_key&key=second_key
- JSON object with the
keys
field in aPOST
body:{"keys": ["first_key", "second_key"]}
multipart/form-data
orapplication/x-www-form-urlencoded
in aPOST
body.
Please note that appropriate content types and param encoding is required.
- repeated query params in a
- A hard time limit has been imposed on UTX transaction validation duration. All transactions which are received from network or API and take longer than 5 seconds to validate are rejected. This rule is not a part of consensus and only affects unconfirmed transactions.
- NFT list API endpoint has been fixed to return only tokens which are currently in posession of the specified address
- Smart contract execution has been sped up thanks to Waves context reuse
- gRPC Server can now be built on Windows hosts
- Posting account data via
/addresses/data
has been deprecated and will be removed in one of the future releases. Please explicitly broadcast signed Data Transactions byPOST
ing to/transactions/broadcast
instead.
Security Fix
This release fixes a security issue. If you have gRPC Server extension installed, please make sure to update it along with the node.
To avoid premature disclosure and allow some time for node owners to update, we will publish the fix to github on Monday, October 28 at 13:00 UTC. Binaries for this release were built from our private repo.
Update: the fix has been published and released as v1.1.5
Update Notes
There's no need to rebuild state if you are updating from 1.1.3.
SHA256 Checksums
7f04b4c47aebbe1f929bc34484cb759617d52fbde93603b2cc32229fa33f0cb7 grpc-server-1.1.4.tgz
f0932785b74d79dcb7fd924796909dc240a91f74eb01fba90303f86be1fe85ff grpc-server-stagenet-1.1.4.tgz
8896a2c979f3475cf7ca3c64b4e741529e32fc56a43880cc311e13f31558378a grpc-server-stagenet_1.1.4_all.deb
d56d04998504b8175e2b98cfcf169317ba0dbd439467a97fdbf577cb902cb6bf grpc-server-testnet-1.1.4.tgz
35e68d9552ace23a9e714b225792b9fddab5532f3cc6b718955890393fa4ab75 grpc-server-testnet_1.1.4_all.deb
b3dd664e1e4fab9f0a0746e15d3d3aa1264b0c9f150b78adfd3ee51d1558d5b6 grpc-server_1.1.4_all.deb
a956535c39437168c7e04e8a2498abb3627caac437b1f1cbb6050e7382cc0b5d waves-all-1.1.4.jar
5f1368913e2c105591569b0b39c8470feb2e3dc6fbaaf9aa5581af3c80476dd6 waves-stagenet_1.1.4_all.deb
035feb9f273913cb65cf760eabfeeaeb5611773cc88b6c0a79997d7bac9daa72 waves-testnet_1.1.4_all.deb
397ab384b0d51f250c963afb99590cea2565265e6e14d9b87c66e8e1f0d444d5 waves_1.1.4_all.deb
Version 1.1.3 (Mainnet + Testnet + Stagenet)
This is an optional release, however, we encourage all miners to update their nodes to improve miner performance.
In This Release
- Reduced the amount of empty blocks.
Miner will continue mining microblocks even when UTX pool temporarily becomes empty after all transactions had been removed due to validation errors. - All DB-related errors are treated as fatal and cause the node process to be terminated (see below).
- Fixed an issue when Explorer, Importer and Exporter never exited when metrics were enabled.
Known Issues
In some cases DB-related errors (e.g. writes failures caused by the lack of free space) were silently discarded by prior node versions, which made it appear as though the node has forked from the rest of the network for no apparent reason. This release introduces some additional tweaks to make these errors more apparent. If your node stops with exit code 74
, please file a bug.
Update Notes
There's no need to rebuild state if you are updating from 1.1.2.
SHA256 Checksums
5e3ca8a951e8e9bb52616ff3b62c123e2d213a4e4baa3b460f47f50a7f174adf grpc-server-1.1.3.tgz
334073565a84c50ef9e0ac4316e4d8f0addc733d72ecf700c5e22766ff9e7e04 grpc-server-stagenet-1.1.3.tgz
dc16bd133dec0a7138d4d5e7149c033d309f827be2467c93203277db82a3b5ed grpc-server-stagenet_1.1.3_all.deb
3dc9070cd2e9e772d4dabe36c45c1b926a1849ded62ceeb2b832a5b49d47de8c grpc-server-testnet-1.1.3.tgz
ca0e0e2bd02d2dfb8e2778c5503d7351509e8acd31d867e37d64dd7efe7befe2 grpc-server-testnet_1.1.3_all.deb
c7a0a99c6af97718815009cabae3d165f22ed2859193f625b5bef5468a71e85b grpc-server_1.1.3_all.deb
6ac9777dd3da8f9bfed56f07dbaaff12f32b1e08f7ec24c9be459def3abc7e4e waves-all-1.1.3.jar
dfa9112db6792724ebffeac0ef5d0b71d2af597891af7683fff34f7cb17f99d2 waves-stagenet_1.1.3_all.deb
31195fb3e8959f8c004fae3c41fe04a3b23e77b774dcc70c52620b186f2d9b89 waves-testnet_1.1.3_all.deb
3816001dd2e49633db3fc48dcf5dcf725f6512e4444f825b785af6f549c2deff waves_1.1.3_all.deb
Version 1.1.2 (Mainnet + Testnet + Stagenet)
In This Release
Stagenet
In order to test new functionality without affecting projects on the testnet we represent new blockchain — stagenet. The testnet from now on becomes stable. The Waves testnet and mainnet will have the same versions and will be updated simultaneously. There is a separate .deb file for the stagenet in the release artifacts.
Please join the stagenet as a miner!
WEP 4: Block Reward and Community Driven Monetary Policy
Generators will receive additional WAVES with each generated block. The amount of the reward will be regulated by miners’ voting. WEP 4 is published here.
BlockReward
is implemented as Feature 14. Please vote!
RIDE improvements
- Fixed complexity estimator returning incorrect values in some cases
- Decompiler improvements
- Callable function signatures exposed via REST API at
/utils/script/meta
and/addresses/scriptInfo/{address}/meta
.
Node updates
- Protobuf schemas have moved to a dedicated repository, which also includes instructions on how to add them to your project. This release also includes numerous fixes and improvements in gRPC server extension.
- Added support for Java 11.
- As long as there are no established connections to other peers, the node will more aggressively attempt to establish a new connection, which should improve the startup process.
- When DEB package is reinstalled during updates, the Node process will be restarted automatically.
- The node will stop on a disk-related exception (e.g. when there's no space left on the device)
- Due to scheduling issues, previous node versions could mine microblocks less often than specified in miner config. This is no longer the case: this version improves mining accuracy ensuring that microblocks are mined as often as specified.
REST API changes
- API key which was previously used for all networks by default has been removed from default configuration files and banned from use. If you rely on API key protected methods, read the docs to find out how to adjust your node's configuration.
/assets/broadcast/*
routes have been removed for good. They have been hidden from Swagger for a long time, and now their time has come. Please use/transactions/broadcast
instead.
Update Notes
There's no need to rebuild state when updating from v1.0.2.
Docker image
From now on, node releases will be published to Docker Hub. Read more about running a container here.
APT repository
We are now providing an APT repository to make it easier for node operators to install and update their deployments. The repo provides mainnet, testnet and stagenet packages. To install the latest version of a package for mainnet from the repo, run the following commands:
curl -sL http://apt.wavesplatform.com/apt-key.gpg | sudo apt-key add -
add-apt-repository "deb https://apt.wavesplatform.com/ xenial mainnet"
apt update
apt install waves
Note: don't worry about the 'xenial' part in the repo name: Waves package should work on Debian jessie+, Ubuntu xenial+, and their forks.
Note: If this is a fresh install, APT will also pull all required dependencies (namely OpenJDK 8). Once the new version is released, you can easily update the package:
apt update
apt upgrade
SHA256 Checksums
ef52f2e2e6aeba7750ff9187e48029fa77c08024cf06a09a08e364410e07c8a3 grpc-server-1.1.2.tgz
1b3b8c50785f8b6daca96e25888f2cbd5bafe0011057e35174861b200d9ce2c5 grpc-server-stagenet-1.1.2.tgz
4f65e37701b8e195b8bb20a1d69829c1cea20267c4f22938f174609e0925ddfa grpc-server-stagenet_1.1.2_all.deb
23cc50f81a5e25c385ea0ab6fcf6fda1af3b1e3fb7a517f45aaeb2032b604e21 grpc-server-testnet-1.1.2.tgz
c85ebd352313f171a3ac77b5daf4dd401ee27cab42a8fba7b68f10d8d53309e6 grpc-server-testnet_1.1.2_all.deb
61a3ce6bf46d7dd3844b47ad7828c1ea2468345eeb7af1a997e1a42b7df60f1a grpc-server_1.1.2_all.deb
bc3dcd6744945d14bb16e3b0e663238d8a12d33d77aa304902dc67952cabebf8 waves-all-1.1.2.jar
0dbd0ecaf9dad1c04ffd75c3840c3d3df2e1a1aa30646838f1cafbe7940d4494 waves-stagenet_1.1.2_all.deb
e7e1c51db6dd618798871ceef7358b8384d5077368d931f516a6ecb13005231d waves-testnet_1.1.2_all.deb
bd042183ee1bae1d69170602bdb2471cc267611787cfb31bd87082ed2435c938 waves_1.1.2_all.deb
Version 1.1.1 (Stagenet)
In this release
- Fixed several issues with Block Reward feature. Unfortunately, if you are updating from v1.1.0, you will have to manually rebuild the state.
- Minor improvements and performance optimisations in complexity Estimator
- Callable function signatures can be directly received by account address at
/addresses/scriptInfo/{address}/meta
For more information on 1.1.x series, see 1.1.0 release notes.
SHA256 Checksums
7a5e6b892233cfcbf828b56bf30d76f0acb1fba3702bc217ce8f7d5f54eba50e grpc-server-stagenet-1.1.1.tgz
3167fd74227dab1f8b058ee71c3aac59a5551cfc0057a873f593504753c0c93f grpc-server-stagenet_1.1.1_all.deb
0d4c0293c84ec2a9e687f0a96d9860f94e3ab55ca4cdb9ebea0028ffda54673a waves-all-1.1.1.jar
281ef7e3068eeb445ced9d80f36e15d0bc0a9b691f34863d23e4decb723ace51 waves-stagenet_1.1.1_all.deb