Releases: wavesplatform/Waves
Version 0.9.1 (Testnet Only)
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 to256M
. - 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 aswaves.leveldb-cache-size
.
Installation the same as for version 0.9.0.
Version 0.9.0 (Testnet Only)
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
andwaves.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
-
Stop the node
-
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.
- Remove folder
data
sudo rm -rdf /var/lib/waves-testnet/data
- Install new version
sudo dpkg -i waves-testnet_0.9.0_all.deb
- 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>
- Change an owner of folder
data
sudo chown -R waves-testnet:waves-testnet /var/lib/waves-testnet/data
- 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)
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)
Bugfix release
- Base Target calculation error was fixed
Version 0.8.10 (Mainnet & Testnet)
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)
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
andnetwork-tx-cache-time
define timeouts in order for transactions from network not to be processed multiple times, default values are1000000
and10s
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)
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)
Release highlights
- Block version 3 will be activated on height 795000 (~Fri 2017-12-15 ) - update required before this date
- NG Protocol
- Feature activation protocol
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 filewallet.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 sectionwaves.blockchain.max-transactions-per-block-diff
- Max transactions per block diff, affects size of atomic persistence, default value is 1000waves.blockchain.min-blocks-in-memory
- Amount of blocks in memory. Fast rollback is possible up to this value, default value is 100waves.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 5waves.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 5mwaves.matcher.rest-order-limit
limits amount of orders exposed via API, default value is 100waves.mvstore-page-split-size
allows changing the size of MVStore in-memory pages, default value 4096 byteswaves.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 andtimeout
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
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 3peers.dat
format is now human-readable jsonwallet.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
andignore-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 andtimeout
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 aTransferTranscation
instead ofPaymentTransaction
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
andstate.dat
. - If you are updating from earlier versions, be sure to read 0.8.0 release notes.
TestNet 0.8.5
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
andwaves.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.