Releases: LiskArchive/lisk-sdk
Version 0.6.0
Changelog
Backend
- Merged #343. Added delegate forging stats. Closes #318. @dakk
- Merged #344. Fixed incorrect
currentSlot
calculation ingetNextForgers
. @4miners - Merged #354. Added exception for invalid multi-sig creation tx. Closes #351. @4miners
- Merged #354. Added possibility to get account via publicKey. Closes #355. @4miners
- Merged #359. Improved consistency on fork 1 and 5 recovery. Closes #358. @4miners
- Merged #363. Redesigned /api/delegates/forging/status endpoint. Closes #338, #360. @4miners
- Merged #365. Added peers count to API. Closes #337. @dakk
- Merged #369. Passing debug status to dapp. Closes #368. @TheGoldenEye
- Merged #370. Added transactions count to API. Closes #341. @MaciejBaj
- Merged #371. Added latest commit hash to API. Closes #340. @MaciejBaj
- Merged #391. Fixed
BackwardTick
promise so it doesn't throw undefined error. Closes #390. @MaciejBaj - Merged #378. Ordering
null
values last for queries withORDER_BY
clause. Closes #356. @MaciejBaj - Merged #384. Fixed fee calculations in
getForgedByAccount
endpoint. Closes #396. @4miners - Merged #388. Ignoring
versionChar
in version check if no range specifier(^ ~ *)
is used. Closes #387. @TheGoldenEye - Merged #386. Preventing node from syncing with itself. Closes #336. @MaciejBaj
- Merged #395. Updated README to be verbose about dependencies. @Isabello
- Merged #397. Added unique address constraint for peers table. Closes #361. @MaciejBaj
- Merged #393. Enclosing column identifiers (fields) in double quotes. Closes #392. @TheGoldenEye
- Merged #399. Improved ban handling, added additional logs. Closes #334. @4miners
- Merged #401. Setup unit tests environment. @MaciejBaj
- Merged #404. Redesigned
/api/transactions
endpoint. Closes: #220, #265, #379, #380. @4miners - Merged #405. Checking if account is multisignature enabled. Closes #383. @MaciejBaj
- Merged #410. Parallelizing travis jobs. Closes #407. @MaciejBaj
- Merged #412. Fixed dirname in
applyRuntimeQueryFile
. @MaciejBaj - Merged #414. Fixed deleted
Gruntfile
dependencies. @MaciejBaj - Merged #421. Closes #418, #419, #420. @4miners
- Merged #424. Starting sync when peers ready, improved logging. Closes #422. @4miners
- Merged #436. Improved peers data acquisition, logging, tuned peer sweeper. Closes #435. @4miners
Frontend
- Merged https://github.com/LiskHQ/lisk-ui/pull/83. Allowing cookies to be set with passphrase and first state during development. @slaweet
- Merged https://github.com/LiskHQ/lisk-ui/pull/88. Adding delegate search. Closes #8. @slaweet
- Merged https://github.com/LiskHQ/lisk-ui/pull/89. Optimising images. @densmirnov
- Merged https://github.com/LiskHQ/lisk-ui/pull/90. Adding forging statistics. @dakk
- Merged https://github.com/LiskHQ/lisk-ui/pull/94. Updated copyright. @Isabello
- Merged https://github.com/LiskHQ/lisk-ui/pull/95. Limiting forged lisk to 2 decimal places. Closes #92. @mrv777
- Disabling applications directory LiskHQ/lisk-ui#78.
Build
- Merged LiskArchive/lisk-build#67. Updated to Node.js 6.9.4 LTS. Closes LiskArchive/lisk-build#65. @MaciejBaj
- Merged LiskArchive/lisk-build#68. Added shellcheck static code analysis of
bash
scripts. @Isabello - Merged LiskArchive/lisk-build#70. Added Travis badge to README.md. Closes LiskArchive/lisk-build#69. @Isabello
- Merged LiskArchive/lisk-build#71. Corrected fresh install issues in
installLisk.sh
. @Isabello - Merged LiskArchive/lisk-build#73 and LiskArchive/lisk-build#76. Improved robustness of
lisk_snapshot.sh
. @Gr33nDrag0n
Version 0.5.2
Changelog
Backend
- Closed #381. Verifying each vote in trs.asset.votes. Checking vote type, format and length.
Build
- Correcting help text for
installLisk.sh
.
Version 0.5.1
Changelog
Backend
- Closed #327. Fixing / improving fork cause 1/5 recovery.
- Closed #328. Fixing invalid total supply calculation.
- Replaced
js-nacl
withlibsodium
library. @4miners - Added broadhash & consensus % info to
/api/loaders/status/sync
. @4miners - Added
/api/delegates/getNextForgers
endpoint. @4miners - Added votes to
/api/transactions/get
endpoint. @4miners
Build
Version 0.5.0
Changelog
Backend
- Closed #104. Implementing peer sweeper. Collecting peer changes and sweeping in batches.
- Closed #294. Loading unconfirmed transactions from "good" peer.
- Closed #284. Emitting delegates/fork event after forking.
- Closed #255. Matching genesis block with database.
- Closed #141. Attempting to load delegates on each cycle.
- Closed #297. Improved peers/chain selection reliability thanks to new
broadhash
implementation. - Closed #298. Array items are not unique in Loader.prototype.onPeersReady.
- Closed #259. Mitigating against fork cause 2.
- Restoring sane API behaviour for
POST /peer/transactions
.- Returning error on already processed transaction.
- Returning error on already confirmed transaction.
- Restoring sane API behaviour for
- Fixed #253. Adding missing check on transaction.
- Closed #306. Implemented new transaction pool and broadcast queuing
- Adding new API endpoints:
GET /api/transactions/multisignatures/get
GET /api/transactions/multisignatures
GET /api/transactions/queued/get
GET /api/transactions/queued
- Adding new API endpoints:
- Rewrote and refactored multisignature module.
- Increased default database connection pool size to
95
. - Merged #314. Prevent "TypeError: Cannot read property 'network' of undefined @TheGoldenEye.
- Closed #51. Fixing invalid getGenesis parameter.
- Closed #244. Adding minimal client version parameter.
- Closed #91. Validating config.json according to schema.
- Do not remove peer on
ETIMEOUT
, only ban for 10 minutes. - Returning
500
status code upon incorrect network / version. - Correcting ban on peers returning invalid common block request to 10 minutes.
- Fixed incorrect math operator in
__private.checkDelegates
. - Disabling forced forging for known nethashes.
- Closed #316. Logging warning when delegate slot skipped.
- Increased gzip compression level on express middleware.
- Improved broadcast efficiency. Squashing queued broadcasts from many to one per route. Accepting collection or object on
POST /peer/transactions
andPOST /peer/signatures
. - Implemented bundled transaction processing. Dramatically speeding up response times for POST /peer/transactions.
- Closed #307. Implementing auto recovery from forks.
- Deleting last block on failed chain comparision and poor broadhash efficiency.
- Deleting losing block in case of received fork 1 and 5.
- Merged #320. Allowing "+" char in os version check @4miners.
- Closed #307. Fixing broken backwards round tick.
- Refactoring code. Adding __private.sumRound function.
- Fixing property typo in Rounds.prototype.backwardTick.
- Fixing property typo in Rounds.prototype.tick.
- Fixing broken round changes on backwards tick.
- Fixing broken missed blocks on backwards tick.
- Fixing broken Rounds.prototype.directionSwap.
- Summing round from blocks on forwards direction.
- Do not flush round on direction swap.
- Adding missing direction swaps.
- Before/after Blocks.prototype.deleteLastBlock.
- Before/after Blocks.prototype.deleteBlocksBefore.
- Marking undone blocks in mem_accounts.
- Excluding marked accounts from orphaned mem_accounts check.
- Closed #319. Fixing broadhash update reliability.
- Closed #323. Fixing bad
setInterval
strategy. - Shortening various peer ban times from 60 to 10 minutes.
- Closes #322. Fixing multisignature processing.
- Fixing incorrect message bus arguments.
- Resetting u_multimin, u_multilifetime on startup.
- Removing nested balancesSequence (causing timeouts).
- Updating ready state after processing signature.
- Fixing max keysgroup size check. Adding ability to add exceptions for existing transactions. @TheGoldenEye
- Fixing erroneous check on account.multisignatures.
- Determining multisignatures from sender or transaction asset.
- Pushing senderPublicKey onto multisignatures.
- Improving check on requester public key.
- Improving error messages.
Frontend
- Using jit-grunt to slightly speed up grunt. @Alevale
- Updating lisk-js dependency.
Build
- Added PostgreSQL 9.6.x support to
installLisk.sh
. - Added logrotation support for linux in
installLisk.sh
. - Implemented
updateConfig.js
for automated config.json updates. - Improved
installLisk.sh
installation efficiency. - Add rebuild/url support to
installLisk.sh
for upgrade and install functions.
Version 0.4.1
Changelog
Backend
- Do not apply or undo transaction when syncing (before processing).
- Fixed #293. Expected type string but found type null. @Isabello
- Closed #285. Moved TOP=true param. to config.json. @Isabello
- Fixed state filter on
GET /api/peers
endpoint. - Using extend consistently for all object extension.
- Handling NaN port in Peers.prototype.inspect.
- Revised and improved schema validations.
Frontend
Build
Version 0.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/open
andPOST /api/accounts/generatePublicKey
. New accounts are no longer written tomem_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.set
andAccount.prototype.merge
. - Closed #266. Added
virgin
column tomem_accounts
. Indicating whether an unconfirmed transaction sent from an account has been applied. - Closed #266. Added
protect_mem_account
database trigger. Makingaddress
,u_username
,username
,virgin
,publicKey
, and secondPublicKey columns immutable once written. - Closed #266. Added
senderPublicKey
exceptions 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
.
Blocks
- Closed #163. Adding default orderBy to
/api/blocks
(height:desc). - Merged #210. Block processing rewrite @fix.
- Verifying block and transactions before database writes.
- Eliminating duplicate logic, using
Blocks.prototype.processBlock
during rebuild.
- Preventing data corruption of memory tables after reload or shutdown #213.
- Tracking cleanup status through
__private.cleanup
. - Skipping blocks on cleanup for
Blocks.prototype.loadBlocksOffset
. - Skipping blocks on cleanup for
Blocks.prototype.loadBlocksFromPeer
. - Exiting
Blocks.prototype.processBlock
early on cleanup. - Cleaning up immediately on
Loader.prototype.cleanup
.
- Tracking cleanup status through
- Closed #222. Fixing block reward calculation within first few blocks after milestone.
- Closed #258. Detecting numericality of snapshot round. Allowing
node app.js —snapshot=foobar
to 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/ping
endpoint @34ro. - Added
GET /api/blocks/getEpoch
endpoint. - Added
nethash
andepoch
properties toGET /api/blocks/getStatus
. - Fixed orphan account check. Excluding
mem_accounts
with NULLblockId
. - Fixed invalid type comparison on unapplied rounds.
- Fixed reported block height when rebuilding blockchain.
- Improved error logging with JSON dump of affected block.
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.
Applications
- Closed #269. Fixed crash on 404 error for
POST /api/dapps/install
. - Downgraded
npm
to latest LTS release2.15.10
.
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
/api
and/peer
. Disabled by default. - Added
EHEADERS
,ERESPONSE
,ENETHASH
peer error codes, extending: https://github.com/blakeembrey/popsicle#error-handling. - Fixed timers in
Loader.prototype.onPeerReady
.- Only trigger
nextLoadBlock
if loaded and not already syncing. - Fixed halt to
nextLoadUnconfirmedTransactions
recursion when syncing. - Fixed halt to
nextLoadSignatures
recursion when syncing.
- Only trigger
- Checking
nethash
for all transport/peer
requests. - Returning JSON response for
POST /peer/blocks
. - Returning
success
orerror
forGET /api/peers/get
. - Added
success
property toGET /peer/transactions
. - Ignoring already processed or confirmed transactions for
POST /peer/transactions
. - Added
transactionId
property toPOST /peer/transactions
. - Added
success
property 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
,version
metadata. - Removed unnecessary peer loopback detection.
- Validating peer headers using zschema only.
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
async
for control flow, to remove deep nesting of code. - Fully linted code base using
jshint
to a strict standard. - Created database indexes on memory tables.
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.
Configuration
- Removed unimplemented
serveHttpAPI/Wallet
options fromconfig.json
. - Added
maxUpdatePeers
option toconfig.json
. - Added
trustProxy
setting toconfig.json
.
Dependencies
- Updated all dependencies to latest compatible versions.
- Replaced
underscore
,util-extend
withlodash
.
Frontend
- Added Polish language support.
- Fixating and updating dependency versions.
- Fixing calls to
null
u_multisignatures/multisignatures
. - Fixing call to
undefined
resp.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.sh
to 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.sh
for automated database backups. - Added
snapshot.json
for configuringlisk_snapshot.sh
backups.
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.
Version 0.3.4
IMPORTANT: This version is a mandatory update, and is being released due to a critical transaction signature malleability issue found in the ed25519 implementation previously used by Lisk. Please note, in order to protect the network, all active delegates were patched prior to this release. All node operators are encouraged to update immediately.
Changelog
- Backporting transaction signature malleability fix. Replacing ed25519 implementation with js-nacl version 1.2.1, a high level API to libsodium.
For further details, please read the accompanying release announcement on our blog.
Version 0.3.3
IMPORTANT: This version is a mandatory update, and is being released due to a critical bug encountered at block 808831. In order for all nodes to remain operative past this block, all node operators are required to update immediately.
Changelog
Backported inTransfer / outTransfer module fixes. Resolves critical issue when saving outTransfer (type 7) transactions, used to initiate LSK transfers between a sidechain and the mainchain. The supporting test-suite has been improved to ensure this basic functionality is maintained between releases.
For further details, please read the accompanying release announcement on our blog.
Version 0.3.2
Changelog
Backend
- Closed #110. Fixed fatal error when
tmp
directory does not exist. @m-schmoock. - Closed #119. Added snapshot functionality.
- Closed #140. Adjusting levels for various log messages @tharude.
- Closed #160. Preventing / gracefully handling 101 votes exceeded errors @karek314.
- Closed #161. Improving consistency of
GET /api/delegates?orderBy=
results @byronp. - Closed #166. Standardising
GET /api/transactions?orderBy=
field prefixing @byronp. - Closed #171. Snipping secrets from logs @cezarsn.
- Closed #191. Configuring CORS with pre-flight.
- Closed #192. Normalising address casing, upon setting and merging of accounts.
- Closed #198. Added
GET /api/delegates/search
endpoint. - Closed #201. Improving/log order and format @m-schmoock.
- Closed #203. Allowing local forging via config switch @m-schmoock.
- Closed #208. Fixed fatal error when trying to install a broken dapp link @m-schmoock.
- Closed #233. Improving efficiency of
GET /api/accounts/top
endpoint. - Closed #237. Fixed
PUT /api/multisignatures
endpoint, including test coverage @mongrim. - Closed #238. Fixed transaction broadcast reliability. Added unconfirmed transaction expiry @Crypto2.
- Merge #187. Fixed SQL errors in
DappsSql
module @TheGoldenEye. - Merge #189. Added whiteList / blackList extension allowing cidr subnets @TheGoldenEye.
- Merge #226. Using local mocha dependency for tests @mfressdorf.
- Merge #199. Do not leave loop early, if ip was not found yet @TheGoldenEye.
- Fixed
DApp#getWithdrawalLastTransaction
error. - Fixed invalid results yielded by
GET /api/delegates/count
endpoint. - Refactored
orderBy
parameter parsing for all endpoints. - Improved efficiency. Performing upsert when merging accounts.
- Fixed intermittent unnecessary rebuild of memory tables.
- Fixed inconsistent multisignature maximum lifetime (72 hours).
- Implemented chronological database migration system.
Frontend
- Closed #47. Replacing zeroclipboard with clipboard.js.
- Closed #50. Fixed
Invalid Lisk amount
error when sending fractional amount. - Closed #57. Updating bitcore-mnemonic to version 1.0.1.
- Closed #59. Checking for zero amount after building parts.
- Closed #67. Removing prefixes from
orderBy
parameters. - Fixed broken sync status indicator.
- Updated translations.
Build
- Updating node/lisk-node to 0.12.15.
lisk.sh
- Closed #31. Added
-s
flag to support new snapshot feature. - Closed #31. Added
-c
flag to specifyconfig.json
at runtime. - Closed #21. Adding prereq checks, correct md5 checks for bsd/darwin.
- Implemented standard location for PID and log files.
- Adjusted log naming based on DB instance Lisk is using.
- Determining whether Lisk is running based on PID and config.json input.
- Implemented new cases for independent management of Nodejs and PostgreSQL.
installLisk.sh
- Added flag options for batch and silent install @34ro.
Documentation
- Update binary installation to reflect new options available in
installLisk.sh
. - Added table of contents to API reference.
Version 0.3.1
Changelog
Frontend
- Fixed Lisk address validations.
Backend
- Fixed Lisk address validations.
- Fixing /apt/blocks/get?id= endpoint.
- Improved peers connectivity / preventing network partitioning.
- Improved logging when rebuilding chain.
- Set default loadPerIteration to 1000.
- Temporary extension of reward offset.
- Reverted forging timeout feature which was causing network to pause.