Skip to content

Releases: wavesplatform/Waves

Version 1.3.4 (Testnet + Stagenet)

14 May 14:32
9011b93
Compare
Choose a tag to compare
Pre-release

In this release

This is the first release of 1.3 series intended for both Testnet and Stagenet (however, it is not ready for Mainnet just yet). Please vote for feature 16 on Testnet!

The following issues have been fixed since 1.3.3:

  • Fixed liquid block rollbacks in Blockchain Updates extension.

SHA256 Checksums

c35b97d5e7e842ba7ed14dbca663d89452cfe78ef0802a0669f8d470eedc2491  grpc-server-stagenet-1.3.4.tgz
2d891990360b654a26e20fae85d709f2ff9d1db5fae4cf6a4fa0d5c00fd0881f  grpc-server-stagenet_1.3.4_all.deb
c550927f681cdedd0c6047e1203d8de29b981ac298bdaae4fb9a28aaa6517ec9  grpc-server-testnet-1.3.4.tgz
c82a99252aebb1511843ee6e2b6fd8026640b8a1a980e71e6def2f040059d634  grpc-server-testnet_1.3.4_all.deb
169401cf4d81aa99ffc936b3de36bed61c7d499dd12218635ba7f6a9360ea912  waves-all-1.3.4.jar
4783b334f08151b2c89f0762de4e86720288911266f0dc08e121f6b84ccba78b  waves-stagenet_1.3.4_all.deb
ef304c7f0412d3e0127f468f6ee043aa773d84b071410ec845d9772d7d4b813a  waves-testnet_1.3.4_all.deb

Version 1.2.21 (Mainnet + Testnet)

13 May 14:52
050da90
Compare
Choose a tag to compare

In this release

This release fixes an issue which could prevent the node from successfully completing blockhain import. All miners are advised to update their nodes. A bug which prevented Blockchain Updates extension from properly handling certain types of microblock rollbacks has also been fixed.

There is no need to rebuild state when updating from version 1.2.20.

SHA256 Checksums

3d5e98bc15dec945c3925e7e430240a9dde47961c4c8f91dfca4e45284f849dc  grpc-server-1.2.21.tgz
70193a320a7f41b80ea84644daf9eab3e8aae9e50359337da1e7829465903bd4  grpc-server-testnet-1.2.21.tgz
e123842f551ceb802e4db6c3341d3f53a1ef3bdbc7b1832eda29db569c6660cd  grpc-server-testnet_1.2.21_all.deb
ade342d99951383084743d30875dc5c34c9666ccfe36df88d950e7720dee0bd2  grpc-server_1.2.21_all.deb
9e074f65338ee74c171b591354080ebee4274f9d231f66886df9a7e26cc8e753  waves-all-1.2.21.jar
4afa8bc74e7fe9420b716550117a255bbc9542552d4bbeff8c81f7c37e54f258  waves-testnet_1.2.21_all.deb
190c7cfb303bd933a5a1df8e6255ae662b95bd51a65314cc392326332a2e2c6d  waves_1.2.21_all.deb

Version 1.3.3 (Stagenet)

30 Apr 15:09
26a34d2
Compare
Choose a tag to compare
Pre-release

In this release

This release is intended for Stagenet only. There's no need to rebuild state when updating from 1.3.2

This release includes the following improvements:

  • Added the reentrantInvoke function for dApp-to-dApp invocation. The only difference from the invoke function is that there is no reentrancy restriction for the parent dApp that uses reentrantInvoke.
  • The maximum complexity of a callable function of a dApp script is changed to 10,000.
  • Blockchain Updates stream no longer freezes upon microblock rollbacks.
  • Updated nested invocation lease state changes format to be consistent with /leasing/info/{id} endpoint.

SHA256 Checksums

4851a8c950fb08e3a42a191d8bb313afc21ca0a20c2317b385e0a40b9bd775fc  grpc-server-stagenet-1.3.3.tgz
0ef5fed6a84029d41e1e939ac1822d6780815470121265ac5442ee53a742d740  grpc-server-stagenet_1.3.3_all.deb
ef099346d232a976f9d858cf4ead88bf286359cdfb8135f3eb13dca05dd0e530  waves-all-1.3.3.jar
3fa8b99760ab5752a86eb80aa2725773789c1915dabc8745579da92b7b83372a  waves-stagenet_1.3.3_all.deb

Version 1.3.2 (Stagenet)

16 Apr 10:54
74c3719
Compare
Choose a tag to compare
Pre-release

In this release

This release is intended for Stagenet only. There's no need to rebuild state when updating from 1.3.1

RIDE Improvements

  • Misc BigInt implementation fixes.
  • Invocation structure has been enhanced with two additional fields: originCaller and originCallerPublicKey.

Node Improvements

  • Fixed smart asset script estimation errors which could cause the eviction of valid transactions from UTX pool during cleanup.
  • Active leases created by a nested invocation are returned by the /leasing/active/{address} method.
  • New /blocks/height/{timestamp} method returns actual blockchain height at the given timestamp.
  • New /leasing/info/{id} returns lease details for the given lease ID (even for those issued via invocations).
  • State changes JSON has been tweaked to include invocation tree even for failed transactions, and also to make lease action details JSON consistent with lease info route response.
  • The node will check if the newly received extension increases local score before attempting to append it.

SHA256 Checksums

d07bcd2ff542dbfaf556732b576685c24896a6bddc12ec4e98d80b0ea618392a  grpc-server-stagenet-1.3.2.tgz
ba5bed1f39ac5564ea8678153cdcdac3ff7b54c1294f3fe842620f6ae3e0802d  grpc-server-stagenet_1.3.2_all.deb
5064bab6f8f6972c0402748e18617633f7725b7b0fc84bdf70c6e19b338b41bd  waves-all-1.3.2.jar
b638fb679b260c7bc1214e6e0517067df00ad2e647ce9e7697104b0777c1af7c  waves-stagenet_1.3.2_all.deb

Version 1.3.1 (Stagenet)

31 Mar 12:53
dc13d67
Compare
Choose a tag to compare
Pre-release

In this release

This release refines functionality introduced with release 1.3.0. Being intended for Stagenet only, it still has some known issues described below. To find out more about new functionality in series 1.3, head over to release notes.

Protocol Enhancements

  • Increased block complexity limit from 1M to 2.5M, changed overall (including nested) invocation limits:
    • complexity can not exceed 26000
    • action limit has been increased to 30
    • data entry limit has been increased to 100
  • Fixed complexity estimation for dApp-to-dApp calls.
  • When dApp does not have enough balance to cover transfer actions produced by an invocation, such invocations are no longer discarded, and are included in the block as failed instead.
  • Attached payment limit has been increased from 2 to 10 for invocations targeting dApps using RIDE V5.
  • When account's @Verifier script complexity does not exceed 200, outgoing transactions from such accounts will not require additional fee.
  • Continued сomputations have been pushed to release 1.4. All continuations-related functionality has been removed from this release.

RIDE

In addition to the features from v1.3.0, he following changes have been introduced with RIDE V5:

  • New BigInt type widens built-in integer type to 512 bits.
  • Invocation structure has been extended with originalCaller and originalCallerPublicKey fields which contain original InvokeScript transaction's sender address and public key.
  • Added new functions:
    • isDataStorageUntouched that checks if the data storage of a given account never contained any entries.
    • hashScriptAtAddress that returns BLAKE2b-256 hash of the script assigned to a given account.
  • Non-standard rounding modes HALFDOWN and UP have been removed.

Node

  • Leases produced from nested dApp invocation will not be returned by /leasing/active/{address} API. This is a known issue which will be fixed in the upcoming version.
  • Upon successful rollback completion, only those transactions which are not present in the blockchain will be returned to UTX pool.
  • All fixes from 1.2.x series (up to [release 1.2.20]) have been backported to this series, which includes the new Blockchain Updates extension.

SHA256 Checksums

c50cad467603dbedeb2dbed4183dcc80675125b5c34b01ebba66b98aa5eb2410  grpc-server-stagenet-1.3.1.tgz
91ebade64a49c4183025a5b2f86a03c78620bab39f1faf11c56a585b6e922351  grpc-server-stagenet_1.3.1_all.deb
02b30d0316612776022eb1f89b032897806c2adaf35fdaff0fccd4cb8b86c997  waves-all-1.3.1.jar
1bce131015342bf74e64994f54160ef7e74a11bd641d7f8c76684cf4690d6c58  waves-stagenet_1.3.1_all.deb

Version 1.2.20 (Mainnet + Testnet)

24 Mar 11:52
cba985f
Compare
Choose a tag to compare

In this release

This release includes the new and improved version of the Blockchain Updates extension. If you are not using the extension with your node, or if you prefer to continue using the previous version, you may skip this version.

  • The new updates stream enhances StateUpdate messages with the before values (e.g. BalanceUpdate message has a new amount_before field which contains the address balance preceding update application).
  • Additional TransactionMetadata is supplied for each transaction. This message contains resolved recipient addresses for transfers directed to aliases, function invocation details and some other data which can not be retrieved from the transaction itself.
  • Rollback messages are enhanced with state updates and transaction IDs which are being reverted. These fields contains the data which helps consumers more easily handle rollbacks.
    For more information on the new extension, see documentation.

Update notes

Please note that this Blockchain Updates extension version is incompatible with the previous versions (consumers working with previous extension versions will not be able to connect to this version). You will need to re-generate client stubs from schemas version 1.2.11 to use the new stream. We will be updating our Mainnet pool to the new version on Monday, March 29th.

Please also note that updating your extension from previous versions requires re-importing blockchain. This requirement is caused by redesigned extension data storage which no longer stores blocks in its own LevelDB, using the ones stored by the node itself. This greatly reduces storage space requirement for this extension (by as much as raw blockchain size — almost 43GB for Mainnet as of height 2515000). The extension itself consumes 32GB of storage space, in addition to the node's 55GB.

SHA256 Checksums

89377c7bdfbf8d35600be6c0fedacba5a4a53f0af5349ad72fb491fb893d4a64  grpc-server-1.2.20.tgz
16d5bb38d6e1c5c8203b5fa01a121428d2cbc2bd0de5b6b463206a06ceb11ac1  grpc-server-testnet-1.2.20.tgz
5700e689225d735d66d294f8e0c70256abedf1889a54e36fc84543713035c124  grpc-server-testnet_1.2.20_all.deb
27e41fee7bf79f6ad79a65051c09c90f68ac027a421acc7231786fd2dde025c3  grpc-server_1.2.20_all.deb
9d34f3a41932b070b48931219118d941c14e2d2052be415ec6dc4f0eba323611  waves-all-1.2.20.jar
d559ed4609a556691710955e36b4264bfdd813a699c6c4942709bf1a99bf97e2  waves-testnet_1.2.20_all.deb
0c67481f04a6c3a5106f0ad8c4ba86adaea8b581976738becfbee64aae3d1652  waves_1.2.20_all.deb

Version 1.2.19 (Mainnet + Testnet)

23 Mar 14:13
7f83b02
Compare
Choose a tag to compare

In this release

This release contains several bugfixes.

  • Fixed an issue with Blockchain Updates extension which resulted in intermittent connectivity issues.
  • Fixed /debug/validate method to respect priority pool when validating transactions.
  • Fixed an off-by-one error in blocks/delay method.
  • Changed the way docker images are built. See README for more info.

This is a maintenance release, you only need to update your node if any of the issues mentioned above affects you. There's no need to reimport state when updating from 1.2.18.

SHA256 Checksums

69b2b4c8271f0e550b030fc90d541e1c61976edf6c6cfa8fd8e958414b57596f  grpc-server-1.2.19.tgz
d925169d4b6891e8b33bc3218305a1bd0f2be306a8e02562d83ea0bacefcc3eb  grpc-server-testnet-1.2.19.tgz
203733e026ea471074404a1c9a8bd00c9779d40348816ee90964a8dc79b0de71  grpc-server-testnet_1.2.19_all.deb
3b51d34128a3a37d2eeac75149ba360d5b5efe9a9cddc28eed323b743beda95d  grpc-server_1.2.19_all.deb
9bbc8d82d138183ffe35cb337c536b526e1c554ab6ffcedef30b7ab9970bf39e  waves-all-1.2.19.jar
031000d228e8c2a3fba2396ed4347e312b045bba703a3036b2cb19693188e97e  waves-testnet_1.2.19_all.deb
3d1a61a21cdc4156d7ac1ac1fc9fc5561aa38b42fba73af9a22e5cb65c25ee38  waves_1.2.19_all.deb

Version 1.2.18 (Mainnet + Testnet)

25 Feb 19:25
2909f6d
Compare
Choose a tag to compare

In this release

This is a mandatory release for all miners on Mainnet and Testnet.

This release fixes a bug in transactions validation which was encountered on Testnet. The Mainnet is not affected.

Node Changes

  • Fixed error of not validating proofs' sizes in some cases.

There's no need to rebuild state when updating to this release.

SHA256 Checksums

b2b6ef8573f94371477f1b5c8642c28449d5812ab8ed1d6eb1da927832ea3fe6  grpc-server-1.2.18.tgz
a4bd6ac3c4e0fc6b901be2adeb8a0ce88e3194b42a1ab7891eeda3cae24d2d50  grpc-server-testnet-1.2.18.tgz
2d49ff51da872ed2b1039dba2dda46f035c6073280753bbcc76f2cfe0134717b  grpc-server-testnet_1.2.18_all.deb
16ca08f2680e5dd092beb812aad3c12efe50be49062b8d8864e9fa20105c6815  grpc-server_1.2.18_all.deb
360392e6f0b94babe0e8e6802dcdd0e99b78302f7fc4526eeacdaf83264bbc66  waves-all-1.2.18.jar
b83e4b4a6b1abe524f627b8ec5c9f23f115bd03da2356bce66249fe93b092cdc  waves-testnet_1.2.18_all.deb
1f3cc566dd7a0dff48729a44e9ed6eba254cbaa59ea154b2033141b327048561  waves_1.2.18_all.deb

Version 1.3.0 (Stagenet)

29 Dec 11:50
57d7dcc
Compare
Choose a tag to compare
Pre-release

Attention! This release is for stagenet only! Not for mainnet/testnet.

In this release

Protocol Enhancements

  • dApp-to-dApp invocation. A dApp callable function can invoke a callable function of another dApp, or another callable function of the same dApp, or even itself. All invoked functions are executed within a single Invoke Script transaction. The total complexity is limited. More about dApp-to-dApp invocation
  • Continued сomputations.
    • Added support for dApp scripts with complexity over 4000. The execution of such a script is split into several stages. The first stage of calculations is performed within the Invoke Script transaction. The further stages are performed within Continuation transactions. More about continued сomputations
    • Implemented the new transaction type: Continuation. A block generator creates the Continuation transaction if there is an incomplete calculation sequence. A user cannot send a Continuation transaction.
    • Added version 3 for the Invoke Script transaction that can invoke a script with complexity over 4000.

Ride

  • Issued version 5 of the Ride Standard library.

  • Added the Invoke function for dApp-to-dApp invocation.

  • Added strict variables that are evaluated before the next expression to ensure executing callable functions and applying their actions in the right order.

  • Modified the callable function result by adding a return value.

  • Added script actions that the callable function can perform:

    Using these actions, you can change the amount of the lease, in particular, withdraw a part of the leased funds. If you cancel a lease for a larger amount and create a new lease for a smaller amount with the same recipient in the same script invocation, the recipient's generating balance decreases by the difference. Otherwise, if you send two separate transactions: a Lease Cancel transaction and a Lease transaction, they can be added to a different blocks and therefore generating balance decreases by the amount of the canceled lease immediately and increases by the amount of the new lease after 1000 blocks.

  • Added the function calculateLeaseId that calculates ID of the lease formed by the Lease structure.

  • Added the following account data storage functions that allow the dApp script to read entries of its own data storage at any stage of the calculations:

    • getBinary(key: String): ByteVector|Unit
    • getBinaryValue(key: String): ByteVector
    • getBoolean(key: String): Boolean|Unit
    • getBooleanValue(key: String): Boolean
    • getInteger(key: String): Int|Unit
    • getIntegerValue(key: String): Int
    • getString(key: String): String|Unit
    • getStringValue(key: String): String
  • Added an arbitrary data type — Any.

Node REST API

Breaking Changes

  • Added the new transaction type: Continuation.

  • A lease can be created both as a result of a Lease transaction and as a result of an Invoke Script transaction via a Lease script action. Therefore, the response of the following endpoints has been changed:

    • In the response of /transactions/address/{address}/limit/{limit} and /transactions/info/{id} endpoints for Lease Cancel transaction, the lease structure now contains lease parameters instead of Lease transaction fields.
    • /leasing/active/{address} returns an array of structures containing lease parameters instead of array of Lease transactions.
    Format
    "lease":
       {
         "leaseId": "4AZU8XPATw3QTX3BLyyc1iAZeftSxs7MUcZaXgprnzjk",
         "originTransactionId": "4AZU8XPATw3QTX3BLyyc1iAZeftSxs7MUcZaXgprnzjk",
         "sender": "3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo",
         "recipient": "3PMj3yGPBEa1Sx9X4TSBFeJCMMaE3wvKR4N",
         "amount": 1000000000000,
         "height": 2253315
       }

Semantic Changes

  • For Invoke Script transaction version 3 the fields extraFeePerStep and continuationtransactionIds and the script_execution_in_progress value for the applicationStatus field added to the output of the endpoints providing transaction info.

  • dApp-to-dApp invocation results are added as the invokes array to the stateChanges structure returned by the following endpoints:

    • /transactions/info/{id}
    • /transactions/address/{address}/limit/{limit}

    Each element of invokes array, in turn, also contains stateChanges.

    Format
    "stateChanges": {
      "data": [],
      "transfers": [],
      "issues": [],
      "reissues": [],
      "burns": [],
      "invokes": [
        {
          "dApp": "3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo",
          "payment": [
            {
              "amount": 50000000,
              "assetId": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
            }
          ],
          "call": {
            "function": "swapNeutrinoToWaves",
            "args": [
              {
                "type": "string",
                "value": "EUR"
              },
              {
                "type": "integer",
                "value": 843699
              },
              {
                "type": "binary",
                "value": "base64:OK+armP11YmAyoQOwl8jLDLi2dK2sRc1Ue2QzZX1wgRmwGASLhllv1iKg2fRKS8cAlSDrfMYPb6374WMC9gFgA=="
              }
            ]
           },
          "stateChanges": {
             "data": [],
             "transfers": [],
             "issues": [],
             "reissues": [],
             "burns": [],
             "sponsorFees": [],
             "invokes": []
           }
        }
       ]
    }
  • Results of the Lease and LeaseCancel script actions are added to the The stateChanges structure.

    Format
    "stateChanges": {
       "leases": [
         {
           "leaseId": "5fmWxmtrqiMp7pQjkCZG96KhctFHm9rJkMbq2QbveAHR",
           "recipient": "3PLosK1gb6GpN5vV7ZyiCdwRWizpy2H31KR",
           "amount": 500000
         }
       ],
       "leaseCancels": [
          {
             "leaseId": "4iWxWZK9VMZMh98MqrkE8SQLm6K9sgxZdL4STW8CZBbX"
          }
       ]
    }
  • Results of Lease and LeaseCancel script actions are also added to the trace structure returned by the following endpoints:

    • /transactions/broadcast
    • /debug/validate
    Format
    "trace": [
       {
          "id": "3MosFNQAFGskNDnYzRBgMbfod6xXPdG96ME",
          "type": "dApp",
          "vars": [
             {
                "name": "amount",
                "type": "integer",
                "value": 12345
             }
         ],
         "result": {
             "leases": [
                {
                   "leaseId": "5fmWxmtrqiMp7pQjkCZG96KhctFHm9rJkMbq2QbveAHR",
                   "recipient": "3PLosK1gb6GpN5vV7ZyiCdwRWizpy2H31KR",
                   "amount": 500000
                }
             ],
             "leaseCancels": [
                {
                   "leaseId": "4iWxWZK9VMZMh98MqrkE8SQLm6K9sgxZdL4STW8CZBbX"
                }
             ]
          }
       }
    ]

SHA256 Checksums

69617f5ab0516957a4b75c3e59bbd7ed7f457418fe328d70becc0214ced80e57  grpc-server-stagenet-1.3.0.tgz
ae9c994f1a3adfab87b68e8ba2e406fb1292cc06edd0d0888975ea6b4ea93663  grpc-server-stagenet_1.3.0_all.deb
8dba1fc8b4cca59ebae68b46b2ad4e0ff471a2e7b2fd6d0bbf155fe8e66c6e8e  waves-all-1.3.0.jar
ef2f3e1de0af3927809d9d74970fb634c0d42000166545e9560d7c3b28e1d515  waves-stagenet_1.3.0_all.deb

Version 1.2.17 (Mainnet + Testnet + Stagenet)

25 Dec 14:37
e3d5bd8
Compare
Choose a tag to compare

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