Skip to content
This repository has been archived by the owner on Jun 11, 2024. It is now read-only.

Version 4.0.0

Compare
Choose a tag to compare
@shuse2 shuse2 released this 11 Nov 11:33
d74fad8

Change Log

v4.0.0 (2020-11-11)

Full Changelog

This release implements 4 LIPs as part of the Network Economics and Network Consensus phases:

Network Economics
Network Consensus

Released packages

  • lisk-sdk@4.0.0
  • lisk-elements@4.0.0
  • lisk-commander@4.0.0
  • lisk-framework@0.6.0
  • @liskhq/lisk-api-client@4.0.0
  • @liskhq/lisk-client@4.0.0
  • @liskhq/lisk-cryptography@2.5.0
  • @liskhq/lisk-chain@0.1.0
  • @liskhq/lisk-bft@0.1.0
  • @liskhq/lisk-dpos@0.1.0
  • @liskhq/lisk-p2p@0.5.0
  • @liskhq/lisk-passphrase@3.0.1
  • @liskhq/lisk-transaction-pool@0.3.0
  • @liskhq/lisk-transactions@4.0.0
  • @liskhq/lisk-validator@0.4.0

LIPs

  • Network Economics - Implement transaction pool version 3 #4841
  • Network Economics - Implement dynamic fee system #4837
  • Network Economics - Improve multi-signature solution #4836
  • Network Consensus - Update DPoS voting system with BFT punishment #4915

Improvements

  • Remove BigNum from the dependency #4573
  • Migrate mocha unit test to jest #4892
  • Update to use yarn for the monorepo management #4828
All the issues ### Closed issues: - Update all readme to remove crypti license [#5950](https://github.com//issues/5950) - API /transactions and /node/transactions sort by nonce [#5710](https://github.com//issues/5710) - Transaction with higher nonce is removed from TxPool [#5657](https://github.com//issues/5657) - Fix npm audit and deep scan issues [#5433](https://github.com//issues/5433) - API Delegates endpoint asc sort returns error [#5318](https://github.com//issues/5318) - buffer.readBigUint64BE is not a function [#5305](https://github.com//issues/5305) - Unused payload properties can increase overall parsing of the messages [#5212](https://github.com//issues/5212) - Notification Events [#5162](https://github.com//issues/5162) - Add test case for same sender and delegate POM transaction [#5157](https://github.com//issues/5157) - Forging should not stop even when all hashOnion is used [#5154](https://github.com//issues/5154) - Invalid error from transaction pool in case of invalid account nonce [#5151](https://github.com//issues/5151) - Fix floating promise [#5147](https://github.com//issues/5147) - Inconsistent response for delegate information on `/api/accounts` endpoint [#5141](https://github.com//issues/5141) - Missing required validation for some attributes of block headers in PoM transaction [#5139](https://github.com//issues/5139) - Endpoint /api/blocks should include seed reveal [#5136](https://github.com//issues/5136) - PoM transaction is accepted but the pomHeights is not updated for an account in the DB [#5134](https://github.com//issues/5134) - Endpoint for votes not validating filter [#5128](https://github.com//issues/5128) - Wrong selection for top 101 delegates as active delegates [#5123](https://github.com//issues/5123) - Improve error message for Unlock transaction [#5122](https://github.com//issues/5122) - Invalid reference of old config structure [#5120](https://github.com//issues/5120) - Sync fails on the height 103 [#5116](https://github.com//issues/5116) - Fast chain switching does not work for the future rounds [#5115](https://github.com//issues/5115) - Transaction is rejected during broadcast with no info [#5114](https://github.com//issues/5114) - Complete alpha testing for Network Consensus - Quality assurance [#5111](https://github.com//issues/5111) - Delegate should not punished by DPoS violation for first rounds [#5110](https://github.com//issues/5110) - Synchronizer is calling removed function getForgerPublicKeysForRound [#5109](https://github.com//issues/5109) - Incorrect subscription of the channel event [#5108](https://github.com//issues/5108) - Incorrect error message on the unlock transaction [#5107](https://github.com//issues/5107) - Unlocking is not displayed in the account/delegate [#5106](https://github.com//issues/5106) - HTTP API endpoint /api/delegates/forgers is not working properly [#5105](https://github.com//issues/5105) - Votes doesn't take LSK as amount [#5104](https://github.com//issues/5104) - Username should not be part of delegate object in accounts [#5103](https://github.com//issues/5103) - Update swagger schemas [#5098](https://github.com//issues/5098) - Add seedReveal to the block header schema [#5096](https://github.com//issues/5096) - Cleanup code related to multi-signature and in-memory channel events [#5095](https://github.com//issues/5095) - Fix variable naming with spelling mistakes [#5093](https://github.com//issues/5093) - Add reward property in the chain state [#5091](https://github.com//issues/5091) - Vote transaction does not handle the self-vote properly [#5077](https://github.com//issues/5077) - Remove old vote transaction [#5074](https://github.com//issues/5074) - Update maxTransctionsPerBlock to maxPayloadSize [#5071](https://github.com//issues/5071) - Update devnet genesis block to have 103 delegates [#5070](https://github.com//issues/5070) - Use consistent naming format for key in key-value table [#5064](https://github.com//issues/5064) - Grammar and punctuation issues in swagger.yml [#5061](https://github.com//issues/5061) - last block header while deleting a block should consider 2 blocks before [#5054](https://github.com//issues/5054) - Update sorting logic to feePriorty than fee in forger strategy [#5053](https://github.com//issues/5053) - DEFAULT_REPLACEMENT_FEE_DIFF should default to 10 in TransactionList [#5047](https://github.com//issues/5047) - Add more test scenarios to TxPool [#5046](https://github.com//issues/5046) - Add unit tests for min fee per bytes and name fee [#5045](https://github.com//issues/5045) - Quality assurance - Alpha testing for Network Economics phase [#5044](https://github.com//issues/5044) - Add test for apply transactions in specific order [#5040](https://github.com//issues/5040) - Add more detailed logging for transaction pool [#5034](https://github.com//issues/5034) - Improve error messages [#5033](https://github.com//issues/5033) - Invalid value specified for MIN_REMAINING_BALANCE [#5030](https://github.com//issues/5030) - PeerId is undefined while banning a peer in some cases [#5028](https://github.com//issues/5028) - Could not respond to peer request getHighestCommonBlock [#5026](https://github.com//issues/5026) - Default min entrance fee priority for transaction pool should be zero [#5025](https://github.com//issues/5025) - Do not log private information for blocks in the logger [#5023](https://github.com//issues/5023) - Signatures property in transation not checked for empty signature [#5021](https://github.com//issues/5021) - Invalid error message in TxPool for per account limit [#5017](https://github.com//issues/5017) - Update API client with latest changes to endpoints [#5015](https://github.com//issues/5015) - signMultiSignatureTransaction should not fail due to missing transaction id [#5012](https://github.com//issues/5012) - Remove transaction ID validation [#5009](https://github.com//issues/5009) - Serialize block and transaction data when sending over the network [#5007](https://github.com//issues/5007) - Add multisignature information to account endpoint [#5005](https://github.com//issues/5005) - Commander sign transaction should take care empty signature space [#5004](https://github.com//issues/5004) - Commander transaction:sign does not produce signatures in correct order [#5002](https://github.com//issues/5002) - verifyMultiSignatureTransaction should check undefiend error [#5001](https://github.com//issues/5001) - Commander transaction:sign should expect empty mandatory or optional keys [#5000](https://github.com//issues/5000) - Transaction create command for multi-signature does not work with flag [#4999](https://github.com//issues/4999) - TypeError: Do not know how to serialize a BigInt [#4998](https://github.com//issues/4998) - P2P Error occurred during synchronisation [#4996](https://github.com//issues/4996) - API node/transactions gives invalid response [#4995](https://github.com//issues/4995) - Endpoint /api/accounts is broken [#4994](https://github.com//issues/4994) - Processable transaction is not sorted properly [#4984](https://github.com//issues/4984) - Account endpoint is not returning the result [#4983](https://github.com//issues/4983) - Account limit should be respected in transaction pool [#4982](https://github.com//issues/4982) - Transaction pool should not reject unprocessable transactions [#4981](https://github.com//issues/4981) - Transaction pool should accept unprocessable transactions [#4980](https://github.com//issues/4980) - Promote should take promotable transactions to apply [#4979](https://github.com//issues/4979) - Transaction pool should be started in the application [#4978](https://github.com//issues/4978) - Burnt fee is not calculated correctly for genesis block [#4976](https://github.com//issues/4976) - Increase transaction releaseLimit [#4974](https://github.com//issues/4974) - Create PoM transaction create command [#4973](https://github.com//issues/4973) - Add missing implementation of transaction pool [#4968](https://github.com//issues/4968) - Remove `git add` from lint-staged task [#4965](https://github.com//issues/4965) - Update config/constant to use camel case instead of capital snake case [#4963](https://github.com//issues/4963) - Fix flag description of commander [#4962](https://github.com//issues/4962) - Remove network identifier from the constructor of transaction [#4961](https://github.com//issues/4961) - Remove transaction store from the state store [#4960](https://github.com//issues/4960) - Update lisk-transaction helpers to use new sign interface [#4953](https://github.com//issues/4953) - Intermittent "Peer networkId did not match our own" error [#4952](https://github.com//issues/4952) - Update state store interface to support new information [#4951](https://github.com//issues/4951) - Typesafe StateStorePrepare [#4949](https://github.com//issues/4949) - Remove multiple input handling from commander [#4945](https://github.com//issues/4945) - Update delegate, votes and voters HTTP API endpoints [#4944](https://github.com//issues/4944) - Update BFT library not to include standby delegates for the calculation [#4943](https://github.com//issues/4943) - Update DPoS library to generate forger list from voteWeight list [#4941](https://github.com//issues/4941) - Update DPoS library to have shuffle function [#4940](https://github.com//issues/4940) - Update DPoS library to calculate random seed [#4939](https://github.com//issues/4939) - Update DPoS library to snapshot totalVotesReceived to voteWeight in consensus state [#4938](https://github.com//issues/4938) - Update DPoS library to validate seedReveal value [#4937](https://github.com//issues/4937) - Update DPoS library to provide information of an address is standby delegate or not [#4936](https://github.com//issues/4936) - Update delegate list to be based on address [#4933](https://github.com//issues/4933) - Add network identifier in block signature [#4932](https://github.com//issues/4932) - Add seedReveal to the block header [#4931](https://github.com//issues/4931) - Create hash onion creation command [#4930](https://github.com//issues/4930) - Create an unlocking transaction command [#4929](https://github.com//issues/4929) - Update create vote transaction command [#4928](https://github.com//issues/4928) - Create a PoM transaction and helper function [#4927](https://github.com//issues/4927) - Create an unlocking transaction and helper function [#4926](https://github.com//issues/4926) - Update the current vote transaction and a helper function to the new protocol [#4925](https://github.com//issues/4925) - Update account with new properties [#4924](https://github.com//issues/4924) - Create protocol spec for selection of delegates [#4923](https://github.com//issues/4923) - Create protocol spec for shuffling of delegate [#4922](https://github.com//issues/4922) - Create protocol spec for calculation of random seed [#4921](https://github.com//issues/4921) - Create protocol spec for proof of misbehavior transaction [#4920](https://github.com//issues/4920) - Create protocol spec for unlocking transaction [#4919](https://github.com//issues/4919) - Create protocol spec for vote transaction [#4918](https://github.com//issues/4918) - signData, signDataWithPassphrase throws invalid error when missing passphrase [#4917](https://github.com//issues/4917) - Network Consensus - Update DPoS voting system with BFT punishment [#4915](https://github.com//issues/4915) - Add feePriorityQueue to TxPool [#4914](https://github.com//issues/4914) - Add command to get fee estimation [#4910](https://github.com//issues/4910) - Update dependency for all the packages [#4909](https://github.com//issues/4909) - Create command to sign transaction for multi-signature and non-multisignature account [#4908](https://github.com//issues/4908) - DPoS module unit tests are unstable [#4907](https://github.com//issues/4907) - Update base transaction sign function [#4906](https://github.com//issues/4906) - Create Commander command for multisignatures [#4905](https://github.com//issues/4905) - BatchError: deadlock detected in Transaction entity tests [#4903](https://github.com//issues/4903) - Migrate mocha unit test to jest [#4892](https://github.com//issues/4892) - Migrate mocha integration tests to jest [#4891](https://github.com//issues/4891) - Wrong signature serialization in MultiSig Registration [#4890](https://github.com//issues/4890) - Update create register multisignature transaction and sign multisignature functionalities [#4889](https://github.com//issues/4889) - Update commander to create new transactions [#4888](https://github.com//issues/4888) - Dev chain cannot restart after SIGTERM [#4885](https://github.com//issues/4885) - Remove unused mocha tests [#4882](https://github.com//issues/4882) - commander: creation transaction for custom network (betanet) return error [#4873](https://github.com//issues/4873) - Add transaction verification in transport to check nonce and signatures before entering tx-pool [#4870](https://github.com//issues/4870) - Add functionality to replace transaction in tx-pool with same nonce but higher fee priority [#4869](https://github.com//issues/4869) - Create a job to promote and evict transactions [#4868](https://github.com//issues/4868) - Data access getAccount functions should return Account Class instance [#4867](https://github.com//issues/4867) - Create a job to verify and move transaction from received to pending list [#4865](https://github.com//issues/4865) - Create a new interface for transaction pool [#4864](https://github.com//issues/4864) - Add fill block functionality in forger module [#4862](https://github.com//issues/4862) - Create remove transactions functionality in the transaction pool [#4861](https://github.com//issues/4861) - Benchmark default parameters of transaction pool [#4860](https://github.com//issues/4860) - Create add transactions functionality in the transaction pool [#4859](https://github.com//issues/4859) - Integrate new transaction pool implementation and cleanup [#4856](https://github.com//issues/4856) - Create transaction list class [#4855](https://github.com//issues/4855) - Create priority queue structure with maxHeap and minHeap [#4854](https://github.com//issues/4854) - Create get all transactions from the transaction pool to provide to Actions and HTTP API [#4853](https://github.com//issues/4853) - Remove number of transactions per block validation from `lisk-chain` and update maxPayloadLength constant [#4851](https://github.com//issues/4851) - Add nonce in the account class, and add nonce verification in the base transaction [#4850](https://github.com//issues/4850) - Remove reward/fee destribution from the lisk-dpos library and move to the lisk-chain to calculate per block [#4849](https://github.com//issues/4849) - Add MIN_REMAINING_BALANCE static property in the base transaction, and verify after updating the account [#4848](https://github.com//issues/4848) - Add fee and nonce, and remove timestamp in the getBasicBytes calculation [#4847](https://github.com//issues/4847) - Update fee validation with new minFeePerByte and nameFee properties [#4846](https://github.com//issues/4846) - Remove transaction independent verify and total spending checks [#4845](https://github.com//issues/4845) - Remove HTTP API and socket.io endpoints for signatures and multi-signature [#4844](https://github.com//issues/4844) - Remove handling signatures from the transport and framework actions [#4843](https://github.com//issues/4843) - Remove multi-signature and signature handling from transaction-pool [#4842](https://github.com//issues/4842) - Network Economics - Implement transaction pool version 3 [#4841](https://github.com//issues/4841) - Remove second signature registration transaction [#4840](https://github.com//issues/4840) - Update multi-signature registration transaction [#4839](https://github.com//issues/4839) - Remove signature and signSignature, and multi-signature handling from Base Transaction, and replace with signatures verification [#4838](https://github.com//issues/4838) - Network Economics - Implement dynamic fee system [#4837](https://github.com//issues/4837) - Network Economics - Improve multi-signature solution [#4836](https://github.com//issues/4836) - Update to use yarn for the monorepo management [#4828](https://github.com//issues/4828) - Expose new actions from application/node [#4827](https://github.com//issues/4827) - Framework should emit an event on new block and delete block [#4826](https://github.com//issues/4826) - Emit event new block and delete block with accounts [#4825](https://github.com//issues/4825) - Emit account state change events from framework [#4824](https://github.com//issues/4824) - Invalid imports in p2p-lib [#4813](https://github.com//issues/4813) - Console logger should not require bunyan to parse [#4812](https://github.com//issues/4812) - Remove lodash dependency from chain library [#4810](https://github.com//issues/4810) - Remove direct storage dependency on synchronizer test [#4809](https://github.com//issues/4809) - Reduce technical debt before continuing with Network Economics/Consensus phase [#4806](https://github.com//issues/4806) - Block header cached should be refilled if goes over certain threshold [#4793](https://github.com//issues/4793) - Peer Banning is not executed correctly and related tests are outdated. [#4789](https://github.com//issues/4789) - Application errors during start [#4786](https://github.com//issues/4786) - Remove global reference [#4784](https://github.com//issues/4784) - Move loader to synchronizer [#4783](https://github.com//issues/4783) - Commander build fails with TypeError [#4781](https://github.com//issues/4781) - Remove logger and use debug in lisk libraries [#4774](https://github.com//issues/4774) - Replace the usage of _lastBlock with getter lastBlock [#4772](https://github.com//issues/4772) - Rename lisk-blocks library to lisk-chain [#4771](https://github.com//issues/4771) - Update framework node to use data access for read operation from blocks library [#4770](https://github.com//issues/4770) - Change lisk-blocks to lisk-chain [#4766](https://github.com//issues/4766) - Jest coverage path is not up to date [#4756](https://github.com//issues/4756) - Commander is not showing the coverage [#4753](https://github.com//issues/4753) - Adjust the framework structure for better organisation and seperation of concern [#4751](https://github.com//issues/4751) - Remove scope property from chain [#4748](https://github.com//issues/4748) - Locale should be specified when using toLocaleString [#4747](https://github.com//issues/4747) - Create Account class and consistently use outside of lisk-blocks [#4746](https://github.com//issues/4746) - Change state store account/chain state get and getOrDefault to async [#4745](https://github.com//issues/4745) - Lisk elements tests failing on development [#4743](https://github.com//issues/4743) - Create lisk-blocks data access layer function for `getFirstBlockIdOfLastRounds` [#4741](https://github.com//issues/4741) - Update BFT to use blocks instance to obtain block header data [#4737](https://github.com//issues/4737) - BFT fails, forging stops when restarting a node [#4727](https://github.com//issues/4727) - One usage of BigNum is still present [#4725](https://github.com//issues/4725) - Create DB read functions in lisk-blocks which are used in chain module [#4723](https://github.com//issues/4723) - Add badges to lisk sdk [#4720](https://github.com//issues/4720) - Move chain module to the application level [#4710](https://github.com//issues/4710) - Consolidate all the blocks/states data access to lisk-chain [#4709](https://github.com//issues/4709) - Migrate pending elements libraries to typescript and Jest [#4705](https://github.com//issues/4705) - Update lisk-bft to use lisk-dpos to require as module [#4701](https://github.com//issues/4701) - Add contribution guidelines to node logs [#4693](https://github.com//issues/4693) - Lisk-elements browsertests are not working [#4692](https://github.com//issues/4692) - Split Block slots implementation in correct domain [#4690](https://github.com//issues/4690) - Update lisk-client and lisk-elements to Jest and cleanup settings [#4683](https://github.com//issues/4683) - Convert lisk-passphrase mocha test to jest [#4682](https://github.com//issues/4682) - Convert lisk-transaction-pool mocha test to jest [#4681](https://github.com//issues/4681) - Convert lisk-validator mocha test to jest [#4680](https://github.com//issues/4680) - Convert lisk-transactions mocha test to jest [#4679](https://github.com//issues/4679) - Convert lisk-api-client mocha test to jest [#4678](https://github.com//issues/4678) - Convert lisk-cryptography mocha test to jest [#4677](https://github.com//issues/4677) - Convert lisk-constants mocha test to jest [#4675](https://github.com//issues/4675) - Update the specs of specs output format to be consistent [#4672](https://github.com//issues/4672) - Update lisk-bft to Typescript [#4670](https://github.com//issues/4670) - Update lisk-dpos to Typescript [#4669](https://github.com//issues/4669) - Remove nethash from the code [#4663](https://github.com//issues/4663) - P2P improve ban/unban and blacklisting functionalities [#4644](https://github.com//issues/4644) - P2P move PeerServer logic to it is own class [#4638](https://github.com//issues/4638) - Move blocks, bft and dpos submodules to elements [#4636](https://github.com//issues/4636) - Add multi signature protocol specs [#4604](https://github.com//issues/4604) - Remove BigNum from the dependency [#4573](https://github.com//issues/4573) - Missing declarations for npm modules [#4551](https://github.com//issues/4551) - Remove "delegateMinHeightActive" property from block headers [#4413](https://github.com//issues/4413) - Create blocks header cache in block module [#4318](https://github.com//issues/4318) - Update Dpos module to consistently use state store [#4136](https://github.com//issues/4136) - Refactor and clean the interfaces for BaseTransaction [#3867](https://github.com//issues/3867) - Refine the application config JSON structure [#3520](https://github.com//issues/3520) - Move network communication functionality to the application level [#3358](https://github.com//issues/3358) - Remove istanbul-middleware from the application [#2919](https://github.com//issues/2919)

Merged pull requests: