
Обновление клиента Lisk v0.4.0 было успешно выпущено и теперь доступно для загрузки на нашем сервере.
Работая над текущим майлстоуном "Стабилизация основной сети", недавно выделенного в дорожной карте Lisk, мы прилагаем максимальные усилия для эффективного рефакторинга существующего кода.
Lisk v0.4.0 это огромный шаг к завершению майлстоуна и включает в себя огромное количество исправлений багов, а также улучшений в скорости и стабильности. Всем делегатам в листе ожидания, а также операторам серверов крайне рекомендуется обновиться ASAP!
Для установки или обновления до Lisk v0.4.0 обратитесь к нашей официальной документации.
v0.4.0 Changelog
Backend — Accounts
- Closed #197. Improving error messages when account does not have enough funds. Yielding sender address and account balance.
- Closed #266. Changed behavior of
POST /api/accounts/openandPOST /api/accounts/generatePublicKey. New accounts are no longer written to mem_accounts. Added one-time migration to delete dormant accounts which have never received or sent funds. - Closed #266. Verifying public key type, length and format in
Account.prototype.setandAccount.prototype.merge. - Closed #266. Added
virgincolumn tomem_accounts. Indicating whether an unconfirmed transaction sent from an account has been applied. - Closed #266. Added
protect_mem_accountdatabase trigger. Makingaddress,u_username,username,virgin,publicKey, andsecondPublicKeycolumns immutable once written. - Closed #266. Added
senderPublicKeyexceptions toTransaction.prototype.verify. - Added missing address validation to
GET /accounts?address=. - Fixed error on
GET /api/delegates?orderBy=unknown:asc. - Fixed error on
GET /api/delegates?limit=0.
Backend — Blocks
- Closed #163. Adding default orderBy to
/api/blocks(height:desc). - Merged #210. Block processing rewrite @fix.
- Preventing data corruption of memory tables after reload or shutdown #213.
- Closed #222. Fixing block reward calculation within first few blocks after milestone.
- Closed #258. Detecting numericality of snapshot round. Allowing
node app.js —snapshot=foobarto default to the highest round. - Closed #260. Removing infinite recursion in
Loader.prototype.getNetwork. - Closed #276. Finishing snapshot within
__private.applyBlock. - Closed #289. Prevent sync slowdown after receiving unconfirmed transactions.
- Conditionally loading blocks from network; when there has been no block “receipts” over network transport, or when last receipt was over 120 seconds ago.
- Added
GET /api/loader/status/pingendpoint @34ro. - Added
GET /api/blocks/getEpochendpoint. - Added nethash and epoch properties to
GET /api/blocks/getStatus. - Fixed orphan account check. Excluding
mem_accountswith NULLblockId. - Fixed invalid type comparison on unapplied rounds.
- Fixed reported block height when rebuilding blockchain.
- Improved error logging with JSON dump of affected block.
Backend — Transactions
- Closed #265. Fixing “Account not found” error when sending transactions to virgin account using POST /api/transactions.
- Fixed #279. Removing erroneous unconfirmed transactions.
- Fixed #279. Removing redundant double spend collection.
- Fixed undefined is not a function error. After error thrown while verifying transaction bytes.
- Added verification of transaction assets for all transaction types.
- Improved error logging with JSON dump of affected transaction.
- Improved logging of apply / undo of transactions at debug level.
- Performing sender balance checks using bignum arithmetic.
Backend — Applications
- Closed #269. Fixed crash on 404 error for POST /api/dapps/install.
- Downgraded
npmto latest LTS release 2.15.10.
Backend — Peers
- Improving peers db efficiency #104. Sequencing peers updates.
- Improving peers db efficiency #104. Replacing insert / update with single upsert.
- Improving peers db efficiency #104. Chaining database queries when adding dapp peer.
- Closed #147. Replacing request with popsicle. Fixing memory leak on large request bodies, e.g. loading blocks from peer.
- Merged #227. Improved peer discovery using histogram cut selection of “good” peers @fix.
- Closed #231. Implementing API rate limiter. Individually configurable for both
/apiand/peer. Disabled by default. - Added
EHEADERS,ERESPONSE,ENETHASHpeer error codes, extending: https://github.com/blakeembrey/popsicle#error-handling. - Fixed timers in
Loader.prototype.onPeerReady. - Only trigger
nextLoadBlockif loaded and not already syncing. - Fixed halt to
nextLoadUnconfirmedTransactionsrecursion when syncing. - Fixed halt to
nextLoadSignaturesrecursion when syncing. - Checking nethash for all transport /peer requests.
- Returning JSON response for
POST /peer/blocks. - Returning success or error for
GET /api/peers/get. - Added
successproperty toGET /peer/transactions. - Ignoring already processed or confirmed transactions for
POST /peer/transactions. - Added
transactionIdproperty toPOST /peer/transactions. - Added
successproperty toGET /peer/height. - Removing peers which return bad response code.
- Removing peers with invalid request headers.
- Removing peers with invalid nethash.
- Improved logging of peer changes at debug level.
- Increased default peer timeout to 5000 ms.
- Fixed unwanted rejection of seed peers due to lack of
os,versionmetadata. - Removed unnecessary peer loopback detection.
- Validating peer headers using zschema only.
Backend — Refactoring
- Closed #147. Dramatically improved CPU and memory efficiency.
- Moved schema validations into separate modules, to eliminate unnecessary continous object creation.
- Added unique ids to schema validations, to better utilize z-schema schema caching.
- Nullifying any large objects identified by memory profiling at the earliest opportunity.
- Decoupled transaction types from modules into separately addressed modules.
- Defining functions on constructor prototype where possible.
- Using
asyncfor control flow, to remove deep nesting of code. - Fully linted code base using
jshintto a strict standard. - Created database indexes on memory tables.
Backend — Tests
- Complete rewrite and abstraction of API tests, for cleaner tests.
- Massively expanded API test coverage, resulting in many fixes.
- Added initial unit test coverage, e.g. for block rewards.
Backend — Configuration
- Removed unimplemented
serveHttpAPI/Walletoptions fromconfig.json. - Added
maxUpdatePeersoption toconfig.json. - Added
trustProxysetting toconfig.json.
Backend — Dependencies
- Updated all dependencies to latest compatible versions.
- Replaced
underscore,util-extendwithlodash.
Frontend
- Added Polish language support.
- Fixating and updating dependency versions.
- Fixing calls to
nullu_multisignatures/multisignatures. - Fixing call to
undefinedresp.data.account.
Build
- Closed #44. Added timestamp to postgresql logs.
- Added empty blockchain.db.gz to allow for starting the blockchain from 0.
- Updating node/lisk-node to 0.12.16.
lisk.sh
- Implemented url flag for
lisk.shto allow remote snapshots to be used with rebuild. - Updated rebuild logic to allow for local backups to be reused and to specify file name.
- Improved lisk startup to display current block height after start or status is issued.
- Implemented new logic for interactive snapshotting.
- Added progress bar when downloading snapshots.
lisk_snapshot.sh
- Implemented
lisk_snapshot.shfor automated database backups. - Added
snapshot.jsonfor configuringlisk_snapshot.shbackups.
installLisk.sh
- Removed duplicated block height check already present in
lisk.sh. - Changed coldstart to use empty blockchain.db.gz.
Documentation
- Updated upgrade instructions to use automated upgrade.
- Updated testnet installation instructions.
Окей, обновился, сидим ждем дальше...