Avalon v1.5.2
Mainly non-consensus update containing performance and memory optimizations for node operation. Also contains most HF6 code but with the relevant config commented out so that it does not activate in this release. Recommended for all nodes.
New features
API documentation generator
A static webpage documenting Avalon API endpoints may be generated by running npm run apidoc
. The output may be found in the apidoc
folder which can be served as a static website. Such website has been made available at https://avalon.oneloved.tube.
Skip validations on rebuild
If you know what you are doing, you can skip all validations to speed up rebuilds by specifying REBUILD_NO_VALIDATE=1
env var. Such rebuild would only execute block transactions.
Blocks BSON indexer and appender
To optimize MongoDB memory usage and improve indexing efficiency, the blockchain data has been taken out of the database and would instead read and append to/from the blocks.bson
file. For more info and upgrade instructions, please refer to the v1.5.2 upgrade doc.
Breaking changes
Transaction history indexing
Due to the changes required to take the blockchain data off the mongo database, a new env var TX_HISTORY
has been introduced to allow indexing of transaction history separately, which is also more efficient than previous versions.
In addition, TX_HISTORY_ACCOUNTS
may be specified to only index a comma-separated list of relevant accounts.
For example:
export TX_HISTORY=1
export TX_HISTORY_ACCOUNTS=ionomy,ionomycold
/history
API
Due to the above changes, the /history
API will now return an array of transactions in the same format as /tx
, instead of an array of blocks containing the relevant transactions.
Support discontinuation of NodeJS v12 or below
Due to the new dependencies used in this update, NodeJS v12 or below will no longer work on this release. NodeJS v14 and v16 remains the supported versions.
Other changes
Removal of REBUILD_RESUME_BLK
The env var REBUILD_RESUME_BLK
has been removed so that rebuilds can resume by reading the head state block number from the state
collection in the database.
Reindexing
A rebuild is only required for nodes that require the use of /tx
and /history
APIs. Otherwise, following the upgrade instructions should suffice.