Skip to content

Releases: wavesplatform/Waves

Version 0.9.1 (Testnet Only)

25 Jan 16:17
v0.9.1
Compare
Choose a tag to compare
Pre-release

In this release

  • LevelDB supported on Windows
  • DEX Matcher fully implemented using LevelDB
  • DEX Matcher now has its own separate LevelDB storage

Changes to configuration file

  • New waves.leveldb-cache-size parameter. Use it to configure internal LevelDB cache, the value can be set as 200M or 1G. Defaults to 256M.
  • New parameter waves.matcher.data-directory that could be used to set the location of Matcher's LevelDB storage folder. Default value is ${waves.matcher.matcher-directory}"/data"
  • New waves.matcher.leveldb-cache-size the parameter could be used to set the size of LevelDB internal cache for Matcher's storage. By default, it has the same value as waves.leveldb-cache-size.

Installation the same as for version 0.9.0.

Version 0.9.0 (Testnet Only)

15 Jan 16:20
v0.9.0
Compare
Choose a tag to compare
Pre-release

In the release

In this TestNet release, we introduce new experimental LevelDB data backend. A node with LevelDB requires less RAM for operation and consumes less space on disk.
This version is fully compatible with version 0.8.12, except the configuration file and data folder.

Other changes

  • Utility to export existing blockchain to binary file
  • Utility to import blocks from binary file

Changes to configuration file

  • New waves.data-directory parameter. Use it to configure directory in which the node stores it's data. Defaults to ${waves.directory}"/data"
  • waves.mvstore-page-split-size parameter was removed
  • Default value for waves.network.file was changed to ${waves.directory}"/peers.dat". Peers file was moved out from LevelDB data folder
  • Parameters waves.blockchain.blockchain-file, waves.blockchain.state-file and waves.blockchain.checkpoint-file are no longer used
  • Parameter waves.blockchain.store-transactions-in-state is obsolete
  • Parameter waves.matcher.order-history-file is obsolete

System requirements

We recommend setting -Xmx parameter back to 2G.

Migration notes

  1. Stop the node

  2. Export existing blockchain to file by executing following command in your home directory:

sudo java -cp '/usr/share/waves-testnet/lib/*' -Dwaves.directory=/var/lib/waves-testnet com.wavesplatform.Exporter /etc/waves-testnet/waves.conf testnet

After execution of the command new file testnet-<current_height> will be created in the current folder.

  1. Remove folder data
sudo rm -rdf /var/lib/waves-testnet/data
  1. Install new version
sudo dpkg -i waves-testnet_0.9.0_all.deb
  1. Import the blockchain file (or just start the node)
sudo java -cp '/usr/share/waves-testnet/lib/*' -Dwaves.directory=/var/lib/waves-testnet com.wavesplatform.Importer /etc/waves-testnet/waves.conf testnet-<current_height>
  1. Change an owner of folder data
sudo chown -R waves-testnet:waves-testnet /var/lib/waves-testnet/data
  1. Start the node

Known issues

  • LevelDB on Windows does not work under heavy load which is the case
  • Matcher storage was not optimized, DEX can be slow and needs extensive testing
  • Rollback was not optimized, fails sometimes of OOM exception

Version 0.8.12 (Mainnet)

12 Jan 15:35
v0.8.12
dccf0db
Compare
Choose a tag to compare

In this release

This is the maintenance release. Update to this release from version 0.8.11 is optional.

  • Issue while synchronizing Mainnet blockchain from scratch was fixed
  • Some obscure error messages were changed or removed

Version 0.8.11 (Mainnet Bugfix Release)

05 Jan 16:39
8293aa6
Compare
Choose a tag to compare

Bugfix release

  • Base Target calculation error was fixed

Version 0.8.10 (Mainnet & Testnet)

26 Dec 09:40
a58fb50
Compare
Choose a tag to compare

Hotfix release

  • Transaction broadcast hotfix

Upgrade notes:

When updating from version 0.8.9, there's no need to delete blockchain or state files, just update executables. If you are updating from earlier versions, please be sure to read 0.8.9 release notes.

Version 0.8.9 (Mainnet & Testnet)

25 Dec 14:50
564d9c1
Compare
Choose a tag to compare

In this release:

  • Fixed transactions sometimes not being placed back to utx after rollback

New settings:

  • In waves.synchronization.utx-synchronizer, network-tx-cache-size and network-tx-cache-time define timeouts in order for transactions from network not to be processed multiple times, default values are 1000000 and 10s

API Changes:

  • /transactions/sign method for offline creation/signing of transaction of any type
  • /transactions/broadcast method to broadcast any json-formed transaction

Upgrade notes:

When updating from version 0.8.8, there's no need to delete blockchain or state files, just update executables. If you are updating from earlier versions, please be sure to read 0.8.8 release notes.

Version 0.8.8 (Mainnet & Testnet)

15 Dec 14:05
20df004
Compare
Choose a tag to compare

In the release

This is a bug fix release. Update from version 0.8.7 is inessential if you haven't experienced any difficulties.

  • Updated official peers list
  • New REST API endpoint: /node/status which returns heights (of state and blockchain) and the last time these heights were updated
  • The REST API method /blocks/height is reporting now the correct height during node's startup
  • Several NPE errors were fixed
  • DEB package installation scripts were updated

NOTE

When updating from version 0.8.7, there's no need to delete blockchain or state files, just update executables. If you are updating from earlier versions, please be sure to read 0.8.7 release notes.

Version 0.8.7 (Mainnet & Testnet)

07 Dec 16:14
de7f538
Compare
Choose a tag to compare

Release highlights

Other changes

  • Reimplemented and improved syncing mechanism to fix nodes getting stuck/ending up on a fork
  • UTX Pool maximum size increased to 100k txs
  • Acceptable block time drift reduced from -15 seconds to -100ms
  • Added Block Headers API methods available at /blocks/headers/ allowing to request block headers (i.e. block metadata w/o transactions)
  • Payment transaction has been deprecated and will not be accepted once block version 3 is activated
  • Payment-related API methods (/waves/externalPayment, /waves/signPayment, /waves/broadcastSignedPayment, /waves/createdSignedPayment) have
    been removed. /waves/payment now creates and broadcasts a Transfer transcation instead of Payment transaction
  • Lease transaction info via API now exposes the lease state (active/canceled)
  • peers.dat is now human-readable JSON file
  • wallet.dat is now encrypted JSON file

New settings

  • waves.logging-level is not used anymore. For details and configuring instructions, please refer to the next section
  • waves.blockchain.max-transactions-per-block-diff - Max transactions per block diff, affects size of atomic persistence, default value is 1000
  • waves.blockchain.min-blocks-in-memory - Amount of blocks in memory. Fast rollback is possible up to this value, default value is 100
  • waves.network.traffic-logger.ignore-tx-messages lists codes of incoming message types which should not be logged, defaults to 23 (Block) and 25 (Transaction)
  • waves.network.traffic-logger.ignore-rx-messages lists codes of incoming message types which should not be logged, defaults to 25 (Transaction)
  • waves.blockchain.store-transactions-in-state - allows to switch transactions storage in state, default value "on"
  • waves.blockchain.in-memory-chunk-size sets the size of in-memory blocks window, the smaller value reduces the memory footprint, default value is 5
  • waves.blockchain.in-mem-chunks-amount sets the number of in-memory windows, default value is 10, the fast rollback is possible up to
    in-memory-chunk-size * in-mem-chunks-amount blocks
  • waves.matcher.order-cleanup-interval sets the lean-up interval for expired orders on matcher, default value is 5m
  • waves.matcher.rest-order-limit limits amount of orders exposed via API, default value is 100
  • waves.mvstore-page-split-size allows changing the size of MVStore in-memory pages, default value 4096 bytes
  • waves.network.synchronization.invalid-block-storage section controls invalid block cache. If a block which has been loaded from a remote peer can not
    be appended to the blockchain, validation error is cached, so that no blocks with such signature are loaded from other peers. This helps improve sync process. max-size limits invalid block cache size and timeout limits invalid block cache residency time.
  • waves.utx.cleanup-interval defines an interval for utx to re-validate all transactions, default value is 5 min

New Mainnet peer list

If you have installed your node from DEB package, please update your waves.conf file to include the latest list of Waves Official Mainnet nodes:

waves.network.known-peers = [
      "13.228.86.201:6868"
      "13.229.0.149:6868"
      "18.195.170.147:6868"
      "34.253.153.4:6868"
      "35.156.19.4:6868"
      "52.50.69.247:6868"
      "52.52.46.76:6868"
      "52.57.147.71:6868"
      "52.214.55.18:6868"
      "54.176.190.226:6868"
    ]

Logging

We now separate what gets logged to files and what can be seen in STDOUT.
By default, node logs with INFO level to STDOUT and DEBUG in log file, which can be found at /var/log/waves if starting through systemd or upstart. Log-files are rotated, compressed, those older that 30 days are deleted, max size of all log files is 1Gb.

If you run a node with a JAR, you can easily change levels/output dir.

  • To change STDOOUT level, start the node with
    -Dlogback.stdout.level=TRACE
  • To change file log output level, start the node with
    -Dlogback.file.level=TRACE
  • To change file log output directory, start the node with
    -Dlogback.file.directory=/another/directory

System requirements

We recommend to set -Xmx parameter to 4G in case of transaction storage turned on, and 2G if you switched off transactions storage. With NG protocol activation, expect your node to consume significantly more disk space. Disabling transaction storage will reduce disk usage. However, if you need to retrieve transaction data via API, you'll need to keep transaction storage enabled.

TestNet 0.8.6

05 Dec 16:35
5449d67
Compare
Choose a tag to compare
TestNet 0.8.6 Pre-release
Pre-release

In this release:

  • Reimplemented and improved syncing mechanism to fix nodes getting stuck / end up on a fork
  • PaymentTransaction will be deprecated and will not be accepted after hardfork height = block version 3
  • peers.dat format is now human-readable json
  • wallet.dat format is now encrypted json
  • UTX Pool maximum size increased to 100k txs

New settings in waves.conf:

  • In section waves.network.traffic-logger, ignore-tx-messages and ignore-rx-messages declare ignored message types, e.g. data of these types will not be logged, default values are [23, 25] and [25].
  • waves.matcher.rest-order-limit limits amount of orders exposed via API, default value is 100
  • In section waves.synchronization.invalid-blocks-storage, max-size and and timeout declare amount and timeout for blockIds that have been discovered as invalid so they won't be requested again in the future, default values are 30000 and 1 day
  • waves.utx.cleanup-interval defines an interval for utx to re-validate all transactions, default value is 5 min

API Changes:

  • /waves/externalPayment, /waves/signPayment, /waves/broadcastSignedPayment, /waves/createdSignedPayment are now discontinued
  • /waves/payment now creates and broadcasts a TransferTranscation instead of PaymentTransaction
  • LeaseTransaction info via API now exposes the lease state(Active/Canceled)

UPGRADE NOTES

  • When updating from version 0.8.x, given the node is on a fork with height ~ 202K there's no need to delete blockchain or state files, just update the executables.
  • If you are on some other fork, it's best to drop all data, both blockchain.dat and state.dat.
  • If you are updating from earlier versions, be sure to read 0.8.0 release notes.

TestNet 0.8.5

07 Nov 16:52
971a744
Compare
Choose a tag to compare
TestNet 0.8.5 Pre-release
Pre-release

In this release:

  • optimizations to minimize memory footprint: we still keep at least 100 blocks in memory, but chunk sizes depend on amount of transactions.
  • various Block Headers api methods available at /blocks/headers/ allowing to request block headers(e.g. blocks w/o transaction bodies)
  • REST API availablility improvements
  • Various fixes, incl. node sometimes getting stuck

New settings in waves.conf:

  • waves.blockchain.max-transactions-per-block-diff - Max transactions per block diff, affects size of atomic persistence, default value is 1000

  • waves.blockchain.min-blocks-in-memory - Amount of blocks in memory. Fast rollback is possible up to this value, default value is 100

  • waves.matcher.order-cleanup-interval - Clean-up interval for expired orders on matcher, default value is 5m

  • waves.blockchain.in-memory-chunk-size and waves.blockchain.in-mem-chunks-amount are not used anymore
    We recommend to set Xmx parameter to 4G in case of transaction storage turned on, and 2G if you switched off transactions storage.

WARNING

Then transactions storage is turned off some API method calls could produce invalid results. We will fix it later.

NOTE

When updating from version 0.8.x, there's no need to delete blockchain or state files, just update executables. If you are updating from earlier versions, please be sure to read 0.8.0 release notes.