Skip to content

Releases: LiskHQ/lisk-sdk

Version 0.6.0

22 Feb 08:51
6a0056f
Compare
Choose a tag to compare

Changelog

Backend

Frontend

Build

Version 0.5.2

08 Jan 21:53
8db20c4
Compare
Choose a tag to compare

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

08 Dec 14:28
da3e07f
Compare
Choose a tag to compare

Changelog

Backend

  • Closed #327. Fixing / improving fork cause 1/5 recovery.
  • Closed #328. Fixing invalid total supply calculation.
  • Replaced js-nacl with libsodium 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

  • Closed LiskHQ/lisk #331. Setting max memory for high mem systems. @Isabello
  • Closed #56. Changing installLisk.sh to use pwd for location. @Isabello
  • Closed #58. Adding support for compiling libsodium / node-sodium.
  • Updated node/lisk-node to 0.12.17.

Version 0.5.0

30 Nov 07:11
2d3d463
Compare
Choose a tag to compare

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.
  • 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
  • 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 and POST /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

02 Nov 21:47
Compare
Choose a tag to compare

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

  • Merged #79. Fixing cramped high page numbers on blockchain page. @slaweet

Build

  • Merged #49. Updating md5 command for macOS. @Doweig
  • Improving block height check in lisk.sh to show “Unavailable” when query is empty. @Isabello

Version 0.4.0

10 Oct 10:33
Compare
Choose a tag to compare

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 and POST /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.set and Account.prototype.merge.
  • Closed #266. Added virgin column to mem_accounts. Indicating whether an unconfirmed transaction sent from an account has been applied.
  • Closed #266. Added protect_mem_account database trigger. Making address, u_username, username, virgin, publicKey, and secondPublicKey columns immutable once written.
  • Closed #266. Added senderPublicKey exceptions to Transaction.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.
  • 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 and epoch properties to GET /api/blocks/getStatus.
  • Fixed orphan account check. Excluding mem_accounts with NULL blockId.
  • 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 release 2.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.
  • Checking nethash for all transport /peer requests.
  • Returning JSON response for POST /peer/blocks.
  • Returning success or error for GET /api/peers/get.
  • Added success property to GET /peer/transactions.
  • Ignoring already processed or confirmed transactions for POST /peer/transactions.
  • Added transactionId property to POST /peer/transactions.
  • Added success property to GET /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 from config.json.
  • Added maxUpdatePeers option to config.json.
  • Added trustProxy setting to config.json.

Dependencies

  • Updated all dependencies to latest compatible versions.
  • Replaced underscore, util-extend with lodash.

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 configuring lisk_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

17 Sep 16:16
Compare
Choose a tag to compare

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

03 Sep 18:20
Compare
Choose a tag to compare

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

10 Aug 17:12
Compare
Choose a tag to compare

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 specify config.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

29 May 14:05
Compare
Choose a tag to compare

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.