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

Version 5.0.0

Compare
Choose a tag to compare
@shuse2 shuse2 released this 02 Dec 11:11
· 4936 commits to development since this release
eebe4d6

Change Log

v5.0.0 (2020-12-01)

Full Changelog

This release implements 12 LIPs as part of the Network Longevity phase:

Network Longevity

Released Packages

  • lisk-sdk@5.0.0
  • lisk-elements@5.0.0
  • lisk-framework@0.7.0
  • lisk-commander@5.0.0
  • @liskhq/lisk-cryptography@3.0.0
  • @liskhq/lisk-db@0.1.0
  • @liskhq/lisk-passphrase@3.0.1
  • @liskhq/lisk-utils@0.1.0
  • @liskhq/lisk-transaction-pool@0.4.0
  • @liskhq/lisk-tree@0.1.0
  • @liskhq/lisk-validator@0.5.0
  • @liskhq/lisk-codec@0.1.0
  • @liskhq/lisk-chain@0.2.0
  • @liskhq/lisk-p2p@0.6.0
  • @liskhq/lisk-transactions@5.0.0
  • @liskhq/lisk-api-client@5.0.0
  • @liskhq/lisk-bft@0.2.0
  • @liskhq/lisk-genesis@0.1.0
  • @liskhq/lisk-client@5.0.0
  • @liskhq/lisk-framework-forger-plugin@0.1.0
  • @liskhq/lisk-framework-http-api-plugin@0.1.0
  • @liskhq/lisk-framework-monitor-plugin@0.1.0
  • @liskhq/lisk-framework-report-misbehavior-plugin@0.1.0

Improvements

All the issues

Closed issues:

  • Update lisk-sdk README #6032
  • Lisk Commander build contains npm-shrinkwrap with dev dependencies #6030
  • Report misbehavior fails when delegate has zero balance #6027
  • Unformatted JSON-RPC request crashes the application #6026
  • Update sodium native and buffer packages #6024
  • APIClient event is outdated and type in incorrect #6021
  • when using app:network:event, the content must be validated #6019
  • Update default nodejs version to 12.20.0 #6018
  • Use api-client in framework plugins #6016
  • Fix inconsistency in base32 address function #6014
  • Update action and event handler to simplify the interface #6012
  • lisk-api-client does not resolve asset name #6006
  • Framework IPC channel action invoke missing check in error handling #6002
  • Fix codec to be able to decode/encode empty object #6000
  • Framework readme has non-existing event information #5999
  • Update lisk-transaction readme #5997
  • When action fails it doesn't return the actual error #5996
  • Lisk Commander cannot find module 'globby' #5995
  • Timeout for action "monitor:getForkStats" in API Client when node is syncing #5986
  • Wrong logic for nonce validation on transaction.create #5983
  • Add functional test for actions and events using APIClient #5979
  • IPCClient should be able to connect to running node #5975
  • Export api client from elements, client and sdk #5971
  • Remove ipc property from config #5965
  • Remove unused event declaration from application #5963
  • Remove peers HTTP API functional test #5958
  • Complete alpha testing for SDK 5.0 #5957
  • Add JSON format conversion function to APIClient #5955
  • Update getForgers endpoint to include full validator properties #5954
  • Update Pom plugin to expose endpoint in action and remove http server #5945
  • Update monitor plugin to expose all non-prometheus endpoints to actions #5944
  • Update forger plugin to use action and events #5943
  • Fix prometheus api data #5941
  • Rename transaction fee util names #5938
  • Scope globally declared variables to root describe #5934
  • Rename non constructor variables to camelCase #5933
  • Implement WSClient connection for APIClient #5928
  • Implement account namespace for APIClient #5927
  • Implement block namespace for APIClient #5926
  • Implement node namespace for APIClient #5925
  • Implement transaction namespace for APIClient #5924
  • Implement IPCClient connection and base functions for APIClient #5923
  • Add basic scaffold and types for APIClient #5922
  • Integrate WS server with controller and enable channel communication #5921
  • Add WS server on framework and update application config #5920
  • Improve tool sets for UI development #5919
  • Update actions/events communication format to JSON-RPC #5918
  • Exported configuration file is missing few required TS attributes. #5907
  • Export monitoring and report misbehavior plugins from sdk #5900
  • Add shared state to Monitor Plugin #5898
  • Refactor BFT to expose a function to check contradicting block header #5894
  • BFT should initialize maxHeightPrevoted to genesis block height #5893
  • Test PoM plugin to detect forks in network #5890
  • Loading a plugin as child process failed which is not exported from an npm package #5888
  • Create API endpoint for Prometheus (api/prometheus/metrics) #5887
  • Create GET (api/stats/forks) for forks events with block header #5886
  • Create GET api/stats/network for Peer connection statistics #5885
  • GET /api/stats/transactions propagation endpoint #5884
  • Create report misbehavior plugin #5883
  • Create periodic job to clean up old blockheaders in PoM plugin #5881
  • Create API endpoint for submitting password to PoM plugin #5880
  • Create PoM transaction with conflicting blockheaders in PoM plugin #5879
  • Add functionality to find conflicting block for new blocks in PoM plugin #5878
  • Add functionality for adding new blocks in PoM plugin #5877
  • Create package for the PoM plugin and setup default configs #5876
  • Update nodejs version to use LTS (12.19.0) #5874
  • Use codec to encode and decode previously forged info #5873
  • Remove unused custom diff logic #5865
  • Include meta property in HTTP api response #5864
  • Reject outbound connection if it sends unexpected messages #5861
  • Message validation required when handling incoming payload #5857
  • ReadError: Database is not open #5851
  • Remove unnecessary senderAddress from asset apply interface #5850
  • Invalid module id validation error message #5849
  • Validate module asset at the time of registration #5848
  • Validate module at the time of registration #5847
  • Application should start with minimum configuration possible #5846
  • Genesis block and config is not up-to-date #5845
  • Add rate limit on getLastBlock, getBlocksFromId and getHighestCommonBlock #5844
  • Add getUnlockings action on dpos module #5843
  • Create base32 and binary address conversion functions #5842
  • hash-onion and passphrase:encrypt and passphrase:decrypt should also exist in commander #5840
  • Update updateForgerStatus to be more safe #5839
  • Save diff every block and when deleting block throw error if diff does not exist #5837
  • Block synchronizer should validate block when received #5835
  • Chain state is not rollbacked correctly #5833
  • Synchronizer can run twice at the same time #5828
  • Update framework readme #5827
  • getTransaction endpoint returns invalid amount of transactions #5824
  • Remove unused roundLength from lisk-genesis #5821
  • Validate module id when registration #5815
  • Hash-onion config should be validated #5813
  • Fix DPoS error messages and remove unwanted validation #5809
  • Error: 'The value of "value' is out of range" when querying HTTP API for large block height #5808
  • Error Failed to restore blocks from blocks temp table when starting fresh node #5807
  • RateLimit counter for getPeers should be reset #5804
  • Non existing event from peers are not banned #5801
  • lisk-genesis create genesis block function does not order address by length #5800
  • Controller.pid is not deleted #5798
  • Error log for transaction verification should show internal error #5797
  • Error getting transactions from network at new node start #5796
  • Update asset names #5795
  • Deleting blocks while syncing happen in incorrect order #5794
  • Delegate without valid hash onion is unable to forge #5793
  • Error transaction id string is unreadable format #5786
  • DPoS should not ban or accept punishment during bootstrap period #5780
  • SDK package is not exporting correct config #5775
  • Chain module is not emitting updated account on delete #5774
  • Next forging time is shown in ms #5773
  • chain library should sort the genesis account considering the length #5768
  • Update README for all packages #5766
  • Allow signing with same passphrase multiple times #5762
  • Missing peer banning for a few scenarios #5761
  • Add TxPool config options to the app config #5760
  • Tests missing in network related to banning and previous peers #5759
  • PoM transaction for delegate with balance lower than block reward is not accepted #5758
  • Swagger spec for BlockHeader does not match with response #5757
  • Unlock transaction with invalid unlock height should fail with correct error #5755
  • Vote transaction does not affect the voter balance #5751
  • Remove "LSK" from balance error message #5749
  • Spellcheck and fix the grammatical errors #5746
  • Error occurred during synchronization #5742
  • Consistently use networkIdentifier instead of networkID #5739
  • Update senderID to senderAddress #5738
  • Delegate already registered error for non-delegate accounts #5734
  • Complete alpha testing for SDK 5.0 #5732
  • Swagger schema validation failure for plugin apis #5730
  • Fix duplicate entries in configuration #5727
  • Extend DPoS module tests coverage #5726
  • API api/delegates does not show registered delegates #5723
  • API api/voters does not capture the votes received #5722
  • Get api/forgers meta data should show count #5721
  • Extend Keys module test coverage #5720
  • Return readable error message format KVStore #5718
  • Unnecessary username validation for delegate registration #5717
  • Remove baseFee property from base asset #5715
  • Test Lisk client compatibility with client-side environments #5714
  • HTTP Plugin validation rejects valid transaction #5713
  • Submitting a transaction with below minFee requirement gives txPool feePriority error #5712
  • Rename validateTransactionSchema to validateTransaction #5708
  • Buffer JSON format is written in file log #5707
  • Update to use hex for representation of buffer in string #5706
  • Fee not collected from sender for any transaction #5704
  • Check all TODO and FIXME comments #5701
  • Add missing consensus related tests #5700
  • P2P throws unhandled error with invalid data #5699
  • Fastchain switching fails to process block #5698
  • Processor should check block version statically #5691
  • Remove redundant checks from lisk-chain #5690
  • Framework folder structure should follow class structure #5689
  • BFT property is not calculated #5688
  • Call stack error while processing large number of accounts in genesis block #5687
  • Keys module validation errors for genesis block provide wrong account index #5685
  • Endpoint /api/blocks returns invalid error message #5684
  • Cleanup commander pallets #5682
  • Add support to export JSON object for genesis block in lisk-genesis #5680
  • Add optional flag in MerkleTree to use pre-hashed leaf values #5675
  • Add utility function getMinFee to lisk-transactions library #5673
  • StateStoreMock should be defined in lisk-chain for testing #5672
  • Add action to return registered module and assets along with name #5671
  • Update rootPath in controller config to dataPath #5667
  • Expose essential schema from framework #5665
  • Improve coverage and tests in general for token module #5663
  • Transaction with higher nonce is removed from TxPool #5657
  • Create a new event VALIDATOR_CHANGED in lisk-chain #5656
  • Improve coverage and tests in general for keys module #5653
  • Type of genesis block is not consistent #5649
  • Fix outdated lisk-coded protocol spec #5647
  • Initial min active height for validator should be genesisBlockHeight + 1 #5646
  • Add support for module action and events #5645
  • Update network identifier to use block id instead of transaction root #5644
  • Update lisk-genesis to support on-chain architecture #5640
  • Update variable names of module interface #5639
  • Add del on state store account #5631
  • Expose legacy address from cryptography #5625
  • Expose required interface for module development #5623
  • Update transaction-pool to support on-chain architecture #5619
  • Update nvm version to use LTS #5616
  • Update protocol spec to support on-chain architecture #5615
  • Cleanup unused code and integration tests #5614
  • Update lisk-bft to support on-chain architecture #5613
  • Update framework/node to support on-chain architecture #5612
  • Update application to support on-chain architecture #5611
  • Update processor to handle on-chain architecture hooks #5610
  • Update lisk-chain to support the on-chain architecture #5609
  • Create DPoS module #5608
  • Create Keys module #5607
  • Create Sequence module #5606
  • Create Token module #5605
  • Create BaseModule and BaseAsset with module skeletons #5604
  • Introduce on-chain architecture #5603
  • Transaction validate function should decode asset before validating #5601
  • Plugins data should be associated to the data path of the application #5598
  • HTTP Plugin error handling incorrect for POST /api/transactions #5594
  • Add interface startAndListen to IPCChannel #5585
  • /api/peers should not include Buffer result #5583
  • isEncryptedPassphrase does not accept all valid bip39 passwords #5582
  • Move /api/forgers to HTTP API plugin #5576
  • Wrong calculation for votesReceived forging info #5574
  • Update transaction create, sign, signature functions #5571
  • Add an action to calculate next forging time for delegates #5570
  • Add Stop function in job queue #5567
  • Remove duplicate lisk-utils functionalities #5566
  • Add validator, utils, codec and tree to lisk-client package and db, utils, p2p from SDK and elements #5565
  • /api/blocks?height=10 should return data as an array #5564
  • Remove lodash from framework #5563
  • unload() not being called in plugins when running plugins as child process #5562
  • Cleanup round calculation in forger plugin #5559
  • Fix unlock transaction validate asset error path #5557
  • Add an action to expose all the delegates #5556
  • Invalid BigInt check for uint32 #5554
  • Save forgers missed block information #5552
  • External types d.ts is not published to the repo #5551
  • lastBlockId should be type bytes #5544
  • Expose decodeBlock from base plugin #5541
  • Fast chain switching fails on the common block #5531
  • Higher nonce transactions are rejected by pool #5529
  • Update application state to have only fields that are required in framework #5528
  • Rename wsPort -> port in framework for websocket port #5527
  • Add temporal complete diff save #5522
  • Update genesis block and config reading to use fromJSON function #5513
  • Update child process IPC communication integration test #5512
  • Update P2P examples #5511
  • Remove all references of public actions feature from controller #5509
  • Restarting the synchronization should successfully restart the synchronization #5508
  • Fail to reload temp blocks because of maxPrevoteHeight #5507
  • While syncing it fails to process block because of maxHeightPrevoted #5506
  • Remove diff stored on finality and not store when equal #5505
  • Update SDK exported libraries #5501
  • Schema issue with protocol-spec generator for multisignature #5498
  • Add getSchema action on framework #5497
  • Block synchronization mechanism error #5496
  • Add index file to application and controller #5494
  • Remove usage of treeStructure in Merkle Tree #5491
  • Node should restart without error #5490
  • Consolidate devnet config and place it in lisk-sdk root folder #5488
  • Synchronization should end successfully #5486
  • Peer should not be banned by getTransactions endpoint #5484
  • Apply format (prettier) for all the files #5478
  • Remove modules/http_api and enable eslint rules on framework #5477
  • Update eslint version #5476
  • Create and export toJSON and toObject from lisk-codec #5473
  • Rename protocolVersion to networkVersion #5472
  • Remove public key from account state and all the usage of public key #5471
  • Add functional test setup for http api plugin #5460
  • Define and update swagger.yml #5459
  • Codec should be able to encode/decode genesis block asset #5454
  • Use lastBlockHeaders from state store in bft #5453
  • Update dev-dependencies for all the packages #5449
  • Move communityIdentifier from genesis block to configuration #5447
  • Update jest coverage setting #5446
  • Redefine exposed actions from the framework #5440
  • Fix npm audit and deep scan issues #5433
  • Improved and more readable validation error format from Lisk SDK #5432
  • Expose data access accounts interface to return buffer #5428
  • Decode fail when fieldNumber and type are identical in the nested case #5426
  • Getting multiple data using data access should not throw #5425
  • Decode fail with optional fields #5420
  • Redefine P2P communication and message formats after using lisk-codec #5419
  • Update all regexpr to be valid and match valid data #5418
  • Update the regex for application version to be flexible and just follow semantic versioning #5416
  • Update diff data structure to comply with lisk-codec #5411
  • Refactor code and improve unit/integration tests #5404
  • Make all lisk-cryptography functions to consistently use Buffer for keys #5403
  • Possible issue in transaction ordering or test setup #5400
  • Update lisk-codec interface type #5395
  • Add validation keyword for data type #5394
  • Create lisk-utils package #5392
  • Update SDK badge style #5391
  • Update all config and logs to use Base64 instead of hex #5390
  • Update event name to be consistent across SDK #5389
  • Implement genesis block validation function in lisk-genesis #5386
  • Update framework to use updated schema #5378
  • Update commander to use updated cryptography and block header schema #5377
  • Update BFT to use updated block header schema #5376
  • Update DPoS library to use new block header schema #5375
  • Update transaction pool to adapt to the new schema #5373
  • Update generic and specific schema validation in lisk-transactions #5370
  • Update all transaction related protocol spec #5368
  • Improve diff function performance #5364
  • Add extra protocol-spec and tests for lisk-codec #5360
  • Update lisk-cryptography to treat address, public/private key as buffer #5358
  • Update lisk-db to use value as Buffer #5357
  • Add schema validation on lisk-codec #5356
  • Add JSON decode and encode for the lisk-codec #5354
  • Benchmark lisk-tree performance #5349
  • Update database key constant usage to unified format #5345
  • Update reader/writer interface to support the decode #5343
  • Implement constructor for Merkle Tree Class #5340
  • Update all protocol-specs to follow new address format #5335
  • Refactor remaining tests in the framework #5331
  • Update configurator not to use stdin and stdout #5330
  • Logs are not saved under the rootPath #5329
  • Remove crypti copyright from readme for new packages #5325
  • Remove rebuild module from the framework #5320
  • Improve framework/controller code base to better adopt typescript #5312
  • Transport has wrong constructor interface #5306
  • Benchmark encode/decode performance #5303
  • Update lisk-validator to check the new address format #5301
  • Create protocol spec for Base32 address format #5300
  • Create GET /api/stats/blocks propagation endpoint #5295
  • Create package for the monitor plugin and setup default configs #5291
  • Send notification on missedBlock, createdBlock and node start and node stop #5290
  • Create GET /api/voters #5289
  • Create PATCH /api/forging endpoint #5288
  • Create GET /api/forging/info endpoint #5287
  • Add synchronization mechanism with framework #5286
  • Add event listers to keep track of registered forger information #5285
  • Create package for the forging helper plugin and setup default configs #5284
  • Update genesis block for devnet #5283
  • Update lisk-bft to handle bootstrap period #5282
  • Update lisk-dpos to handle bootstrap period #5281
  • Replace epochTime with genesis block timestamp #5280
  • Remove current genesis block specific handling from the framework and lisk-chain #5279
  • Create BlockProcessorV0 which handles the genesis block #5278
  • Implement genesis block creation function in lisk-genesis #5277
  • Create lisk-genesis package in elements #5276
  • Implement diff calculation function in the lisk-chain #5275
  • Remove undo steps from everywhere #5274
  • Save the calculated BFT properties on the consensus state #5273
  • Use the diff stored in the database when deleting the block #5272
  • Take the diff from the StateStore of lisk-chain and store them in the database #5271
  • Update lisk-transactions to use encoded data #5270
  • Update lisk-p2p to communicate with encoded data #5269
  • Update framework transport to return and receive encoded data #5268
  • Update lisk-bft to use encoded data #5267
  • Update lisk-dpos to use encoded data #5266
  • Update framework forger to store encoded data #5265
  • Update lisk-chain to use encoded data to store #5264
  • Update lisk-validator to check against dataType #5263
  • Measure embedded database performance #5261
  • Remove postgresql related code and tests #5260
  • Update delegate registration to save and use username and address in blockchain.db #5259
  • Update network module to use node.db #5258
  • Update lisk-chain data_access layer #5257
  • Update GET /api/forgers endpoint #5256
  • Update GET /api/delegates?limit=xxx&offset=yyy endpoint #5255
  • Update GET /api/peers?limit=xxx&offset=yyy&state=zzz endpoint #5254
  • Update GET /api/node/transactions?limit=xxx&offset=yyy endpoint #5253
  • Add GET /api/node/info endpoint #5252
  • Update GET /api/transactions/:id and POST /api/transactions endpoints #5251
  • Update GET /api/accounts/:address endpoint #5250
  • Update GET /api/blocks?height=x and GET /api/blocks/:id endpoints #5249
  • Setup new plugin structure for HTTP API plugin #5248
  • Remove lisk-core specific commands and move to core #5245
  • Create database instances and save them in one folder #5243
  • Create utility to get a range pointer #5242
  • Create lisk-db package in elements #5241
  • Create protocol spec for lisk-codec #5240
  • Create function to read array #5239
  • Change to embedded database system #5238
  • Create function to write array #5237
  • Support recursive decoding of objects #5236
  • Support recursive encoding of objects #5235
  • Network Longevity - Define new block schema and processing for genesis block #5234
  • Create function to read keys #5233
  • Remove undo steps #5232
  • Create signedVarInt reader #5230
  • Create signedVarInt writer #5229
  • Create function to write keys #5228
  • Create string reader #5227
  • Create string writer #5226
  • Create bytes reader #5225
  • Create bytes writer #5224
  • Create boolean writer #5223
  • Create boolean reader #5222
  • Create VarInt reader #5221
  • Create VarInt writer #5219
  • Create function to traverse buffer for decoding #5218
  • Create function to traverse the object for encoding #5217
  • Create monitor plugin #5216
  • Create forger plugin #5215
  • Create Codec library in Elements #5214
  • Simplify HTTP API module and separate from framework #5213
  • Update commander to be network agnostic #5211
  • Update block schema to include transactionRoot #5210
  • Update PoM protocol-specs to include transactionRoot #5209
  • Create protocol-specs to verify transactionRoot of blocks #5208
  • Implement verifyProofOfInclusion for Merkle Tree #5207
  • Implement generateProofOfInclusion for Merkle Tree #5206
  • Implement Merkle Tree append method #5205
  • Network Longevity - Implement merkle tree library, lisk-tree #5204
  • Implement Merkle Tree Class with interface #5203
  • Implement Codec class with interface #5201
  • Network Longevity - Implement generic serialization library, lisk-codec #5200
  • Update application root files to be typescript #5197
  • Update application/schema to be typescript #5196
  • Update application/node root files to be typescript #5195
  • Update application/utils to be typescript #5194
  • Update application/node/transport to be typescript #5193
  • Update application/node/synchronizer to be typescript #5192
  • Update application/node/processor to be typescript #5191
  • Update application/node/forger to be typescript #5190
  • Update application/network to be typescript #5189
  • Update controller to be typescript #5188
  • Update to only use 1 IPC socket file #5187
  • Expose IPCChannel from the framework and SDK #5186
  • Fix cleanup socket files after application stop #5185
  • Unify all generated files to specific folder #5184
  • Support IPC communication to framework #5183
  • Migrate framework to be TypeScript #5182
  • Support UI encoded Base32 address format #5177
  • Update blockID to use full SHA-256 hash #5176
  • Update transactionID to use full SHA-256 hash #5175
  • Update Lisk address calculation and its references #5171
  • Remove pre-hashing for block and transaction signatures #5170
  • Network Longevity - Implement new address and ID system #5167
  • Issues after adding typescript configuration to framework #5158
  • Add typescript setup for framework #5145
  • Broken links in the project readme file #5144
  • Update transactions to be first order function #5088
  • Add fail safe delegate banning mechanism #5058
  • Update DPoS library to ban when conditions are met #4942
  • Update DPoS library to calculate last forged height #4935
  • Update DPoS library to calculate consecutiveMissedBlocks #4934
  • Add tests for application actions and events #4894
  • Add integration test for lisk-chain library #4791
  • Remove tslint and use typescript-eslint #4696
  • Replace controller/validator with lisk-validator #4610
  • Cleanup lisk-validator #3825
  • Improve validator in framework to separate default and validation #3815
  • ChildProcessChannel can not subscribe #3674
  • Missing events for module unloading lifecycle as specified in LIP #3632
  • Fix plugin loading in child process and prevent application from crash if child process crashes #3142
  • Integration test ChildProcessChannel class and InMemoryChannel class #3118

Merged pull requests: