This repository has been archived by the owner on Jun 11, 2024. It is now read-only.
Version 3.0.0
Change Log
v3.0.0 (2020-01-17)
This release implements 4 LIPs as part of the Security and Reliability phase:
- Introduce BFT consensus protocol
- Introduce robust peer selection and banning mechanism
- Mitigate transaction replay on different chains
- Remove redundant properties in transactions
Released packages
- lisk-sdk@3.0.0
- lisk-elements@3.0.0
- lisk-commander@3.0.0
- lisk-framework@0.5.0
- @liskhq/lisk-api-client@3.0.0
- @liskhq/lisk-client@3.0.0
- @liskhq/lisk-constants@1.3.0
- @liskhq/lisk-cryptography@2.4.0
- @liskhq/lisk-p2p@0.4.0
- @liskhq/lisk-passphrase@3.0.0
- @liskhq/lisk-transaction-pool@0.2.0
- @liskhq/lisk-transactions@3.0.0
- @liskhq/lisk-validator@0.3.0
LIPs
- Introduce BFT consensus protocol #3555
- Remove redundant properties from transaction objects #4038
- LIPS:0004 Introduce robust peer selection and banning mechanism #3328
- Mitigate transaction replay on different chains #4039
Improvements
- Inefficient blocks transmission between peers #2424
- Do not include nonce when broadcasting #3702
- Remove NewRelic integration #4141
- Remove broadhash consensus #4265
- Add filter to Accounts entity to allow searching in account.asset field #3990
- Upgrade to NodeJS 12 #4392
Bugs
- isNullByteIncluded mismatch regex #2907
- Setting LISK_REDIS_HOST leads to unexpected logging behaviour #4630
- HTTP API whitelists do not always work as expected #4629
- LISK_API_PUBLIC=false does not work #4631
- P2P: Peer ban expires before 24 hours #4561
All the issues
Closed issues:
- Allow /delegates endpoint to accept voteWeight as sort parameter #4715
- Allow lisk-api-client to have configureable sort parameter for delegates resource #4716
- Upgrade dependencies for http-api module #4699
- Protocol Spec for vote transactions generate different output #4686
- Duplicate key value violates unique constraint error #4668
- TypeError: Converting circular structure to JSON with Node 12.14.1 #4667
- Fix lodash vulnerability #4656
- Chain state store finalize () does not return the promise #4652
- Fix all the fragile P2P test for consistant result #4651
- Rename database table "temp_block" to "temp_blocks" #4648
- Update term nethash to networkId in the p2p library #4647
- Set the path parameter to the websocket server #4646
- P2P migrating tests from Mocha to Jest #4642
- Update to Node.js v12.14.0 #4640
- P2P remove 'type:' value from 'rpc-request' messages payload #4639
- Setting LISK_REDIS_HOST leads to unexpected logging behaviour #4630
- LISK_API_PUBLIC=false does not work #4631
- HTTP API whitelists do not always work as expected #4629
- Integration test for genesis_block.spec.js does not terminated correctly #4627
- Cleanup test utilities for framework #4626
- Handle usage of async and await expression #4619
- Prettier fails to apply format for lisk-sdk #4614
- Remove jsdoc dev dependency from framework #4612
- P2P PeerBook newPeers and tiredPeers lists should be disjoint #4609
- Backup and use complete tried peers data #4607
- P2P selectPeersForConnection unit test fails randomly #4599
- Application state not updated at initialization #4594
- Replace blacklistedPeers by blacklistedIPs #4586
- fixedPeers still being evicted #4581
- bestPeer.id returns
undefined:4000
#4580 - Violation of fork choice rule error #4579
- Remove validator from lisk-transactions and use lisk-validator #4572
- Remove function signatures #4571
- Fill-pool shouldn't be called when delegate is not enabled to forge or if node is syncing #4569
- P2P: Peer ban expires before 24 hours #4561
- Commander: generate network identifier #4559
- Network module use deprecated P2P config values #4549
- Storage component not parsing Dapp transfer transactions correctly #4547
- Finalized height is not being updated #4546
- API: Node status remove network height and loaded #4543
- Update readme for P2P library with instructions and example #4542
- Remove unused dependency from package.json #4539
- Refactor log level, code and variable shadowing #4534
- BFT: Error occurred during synchronization #4532
- Test that transaction replay is not possible among networks #4530
- Node should not apply penalty while processing transaction #4528
- Append last block info to "Synchronization finished" log #4522
- Broadcaster should not send transaction Ids if the size is zero #4521
- Add limit to BSM FCS get queries #4518
- Improve logging when receiving common block on FCS #4514
- Elements library show throw informative errors #4512
- BFT compliance should not checked on detached block #4511
- API transactions by default should display latest transactions #4510
- Node info is not injected into the inbound peer #4509
- API peers should hide internal state information #4508
- Node should not update application state while syncing #4505
- Amount and recipientId is invalid in transaction schema #4504
- Revisit Peer discovery threshold test #4503
- Invalid transaction payload during RPC causes network isolation #4501
- Add more test coverage for logic that uses delegateMinHeightActive value #4499
- Remove cache from the chain module #4487
- Update app label to use WSPort #4486
- Update Typescript version to 3.7 #4485
- Move modules/migrations to modules/components/storage/migrations #4483
- Remove ip field from P2P ProtocolPeerInfo interface #4475
- Ban peer if applying a block fails on FCS (_switchChain method) #4474
- Change prevotedConfirmedUptoHeight -> maxHeightPrevoted #4471
- Move new Fork Choice Rule logic to BFT folder and call it from Block Processor V2 and V1 #4470
- Add BFT height finalized information to HTTP API #4463
- transaction.id should not be used before assignment #4461
- Update broadcaster to store transaction and signature separately #4460
- Update transport module to use consistent naming and returning schema #4459
- Peer state is not updated after the node is restarted #4454
- Block synchronisation, fast chain switching and p2p issues #4453
- Update transaction library to remove old transaction and export more functions #4451
- Version 3.0.0 - QA #4450
- Show BFT properties in api/blocks response #4449
- Fix fragile max payload test in p2p #4447
- Peer not found to apply penalty #4446
- Lisk-sdk folder requires index.d.ts #4438
- Add network identifier in the framework #4435
- Add postTransactionAnnouncement #4434
- Check all of the exceptions related tests are covered #4433
- Update producedBlocks for genesis block #4429
- Cover Synchronizer class with unit tests #4428
- Reject unnecessary messages and ban a peer #4424
- Request and apply blocks in chunks for BSM #4412
- Get rid of Storage.RoundDelegates.summedRound #4407
- To many properties within Peer Class and redundant fields #4401
- Add peerId on Message and Response packet #4395
- Audit SQL queries and SQL indexes #4394
- Upgrade to NodeJS 12 #4392
- Validate Asset should return full path on error #4388
- Introduce functional test suite into lisk-p2p library #4387
- Cover fast chain switch mechanism with unit/integration tests #4376
- Cover block synchronisation mechanism with unit/integration tests #4375
- http server should be created when start() is called #4371
- Refactor
blocks
endpoint to retrieve blocks from a peer #4369 - Apply penalty on sending malformed peerInfo or peerList > 1000 #4363
- Adding an incoming peer even when it is a duplicate connection #4362
- Improve network actions to expose connectedPeers and disconnectedPeers #4361
- Discover from seed peer when triedPeers < 100 #4360
- Disconnect from seed peers after initial discovery #4359
- Should save triedPeers in DB during network cleanup #4358
- Add block announcement after processing a block #4356
- Error Plugin: lisk-commander: files attribute must be specified #4355
- Add incentivizing Lisk-BFT Protocol Participation #4354
- Always allow fixed/whitelist incoming connections #4353
- Incoming connections from fixed peers should never be closed similar to whitelist #4352
- Missing a condition for selecting peers for connection when having low triedPeers #4351
- Discover peers through seed peers when not enough outbound connections #4350
- Add delegateMinHeightActive needs to be included in calculation of prevote and precommit #4349
- Decide to restore blocks upon startup when temp_block table is not empty #4348
- Jest Integration tests are failing randomly #4343
- Investigate slow sync on introduce_bft_consensus-dpos branch #4340
- Switch to Different Chain via FCS #4339
- Query all blocks from common block for peer and validate for FCS #4338
- Implement finding common block for FCS #4337
- Update commander transaction commands to accept network identifier #4336
- Update sign function to include network identifier #4335
- Update getBasicBytes and getAssetBytes in transaction library #4334
- Add getNetworkIdentifier function #4333
- Update commander related to transaction schema #4332
- Update genesis block format #4331
- Update API to be compatible with the updated transaction schema #4330
- Update transaction pool not to use senderId and update usage of recipientId #4328
- Check all of the RPC endpoint related transaction #4327
- Update storage to store updated transaction schema #4326
- Update transaction schema without changing the byte array #4325
- Latest Transactions from Testnet API are not consistent #4323
- Call delete block for the BFT module #4320
- Use state store for updating finalizedHeight #4316
- Do not connect to a peer if we already have an outbound peer with that IP #4315
- Backup and restore peer reputation and productivity to and from the PeerBook #4314
- More detailed P2PPeerInfo #4313
- Return full common block instead of only ID property #4307
- Integrate swagger-stats APM #4300
- BFT module should be initialized in the block processor #4297
- Inconsistent use of previousBlock and previousBlockId #4295
- API node status separate transactions from node status endpoint #4294
- Improve log message and format #4285
- Do not allow id property in PeerInfo provided by a peer #4284
- Full peers list growing excessively large (> 100K) #4279
- Remove vote column from mem_accounts #4274
- Remove loading signatures and providing signature endpoint #4268
- Fix forging_statistics endpoint #4267
- Create genesis block for v2 protocol #4266
- Remove broadhash consensus #4265
- Emit rounds change event when round finishes in Dpos module #4264
- Request nodeInfo from outbound peers before adding to peer lists #4260
- The nodeInfo was removed from _peerSelectForConnection again #4253
- Integrate usage of
computeHeadersForNewBlock
oncreate
pipeline in BlockProcessorV2 #4247 - Unstable peers functional http tests #4243
- Add default implementation for assetFromSync and verifyAgainstTransactions in BaseTransaction #4238
- Register Block Processor V2 and make it default #4235
- Create function to compute BFT headers on block creation #4233
- Add unit test coverage for P2P request file #4230
- Add unit test coverage for P2P peer pool file #4229
- Add unit test coverage for P2P peer directory folder #4227
- Add unit test coverage for P2P peer_book file #4226
- Add unit test coverage for P2P outbound peer file #4225
- Add unit test coverage for P2P inbound peer file #4224
- Add unit test coverage for P2P base peer file #4223
- p2p integration tests fail sometimes and are unstable #4219
- Move generating delegate list logic into Dpos.apply and Dpos.undo #4218
- Delete caching mechanism in Dpos #4217
- Extract the common integration tests setup/configs to a central place to allow tests to share the default topology/config #4200
- Add integration test for P2P library events #4199
- Improve syncing logging #4195
- Write integration test coverage for DPOS module #4192
- JavaScript heap out of memory error #4183
- Alternative for getUniqueOutboundConnectedPeersCount and consensus calculation #4178
- Remove old rounds related logic #4168
- Wrong attribute description in app config schema #4167
- Replace rounds.backwardTick by dpos.undo #4158
- Replace rounds.tick by dpos.apply #4157
- Replace rounds.validateBlockSlotAgainstPreviousRound by dpos.verifyBlockForger #4156
- Replace rounds.validateBlockSlot by dpos.verifyBlockForger #4155
- Replace rounds.generateDelegateList by dpos.getRoundDelegates #4152
- Protocol-spec second signature #4148
- Dpos.getRoundDelegates returns outdated list #4147
- Implement verifyBlockForger in Dpos module #4144
- Remove NewRelic integration #4141
- Merge child tables of mem_accounts #4139
- Move transaction module in framework to inside of blocks module #4138
- Update transaction module to consistently use state store #4137
- Define serialisation and deserialisation of blocks in interface adapters #4131
- Unable to understand the use and relevance of reloadRequired function in blocks/verify.js file #4130
- Create protocol-spec json for all fork choice patterns #4129
- Functional GET tests taking too long on Jenkins #4124
- Separate P2P integration tests into multiple files and improve naming and test descriptions #4121
- Sync error on testnet #4119
- Merge development into feature-bft #4098
- README Set up new a blockchain application does not include configDevnet #4096
- Framework should handle the cleanup successfully when failed on initialization #4093
- Create protocol-spec json for Transaction replay specification #4092
- API node/status/forging filter doesn't work as expected #4091
- Create protocol-spec json for BFT specification #4088
- Create protocol-spec json for basic current specification #4087
- When a peer asks us for our peer list, we should not report the state property #4073
- Create base class for peer list for peer directory #4048
- Unit tests for eviction of peers from peer buckets #4045
- Implement block processor #4041
- Persist P2P secret to DB #4040
- Mitigate transaction replay on different chains #4039
- Remove redundant properties from transaction objects #4038
- Don't use hardcode config options in the jest tests #4028
- Add jest config clearMocks: true and remove jest.clearAllMocks() in tests #4026
- Replace the usage of verify* with validate* for in-memory checks defined for block object #4025
- Remove block dependency from blocks/utils #4012
- Update delegates ranks at the end of the round #4006
- Update vote weight of delegates #4005
- Update rewards & fees at the end of the round #4004
- Update missed Round #4002
- Update Produce Block #4001
- Add filter to Accounts entity to allow searching in account.asset field #3990
- Fix and unskip the tests for applyTransaction function defined in transactionHandler #3987
- Use consistently flat structures for asset property objects #3980
- Add util functions to be used in integration test #3955
- Target specific peers in Block Sync Mechanism #3916
- Emit event when a block is finalized from the bft module #3908
- Improve finality manager performance and add more test simulations #3894
- Split block processing steps into separate functions and expose them from module/blocks #3869
- Fix cyclomatic complexity in P2P constructor #3859
- Check and Update NodeJS versions in Readme files #3852
- Create ChainMeta entity to persist BFT information #3832
- Move BlockSlots class into Dpos Module #3789
- Create constants.js in Chain Module #3788
- Create compontents/index.js in Chain Module #3787
- Epic: Fast Chain Switcher Task List #3777
- Implement functionality for removing blocks stored in temp table #3776
- Blocks need to be restored from temporary table upon failure or application restart #3775
- Update Application State interface to include prevotedConfirmedUptoHeight #3774
- Block Synchronizer class to combine Block Synchronizaton Mechanism logic #3773
- Blocks need to be stored in temporary table on block deletion #3772
- Implement request and apply blocks of new chain step for Block Sync Mechanism #3771
- Implement reverting to last common block step for Block Sync Mechanism #3770
- Implement mechanism for finding commonBlock #3769
- Implement obtain tip of chain step for Block Sync Mechanism #3768
- Implement peer selection algorithm step for Block Sync Mechanism #3767
- Do not include nonce when broadcasting #3702
- Update the block processing to persist maxHeightPreviouslyForged #3696
- Persist BFT attribute heightFinalized as part of atomic block write #3695
- Load minimum block headers on block deletion #3694
- Create submodule/bft to initiate the BFT logic at application startup #3693
- Implement BFT LIP logic to add/remove headers as logic/bft.js #3692
- Create data structure to store block headers for BFT #3691
- Replace the previous Rounds module with the new Dpos module #3686
- Remove previous Round implementation #3685
- Update API /delegates/forgers endpoint to be BFT compliant #3684
- Automatically cleanup round_delegates table #3683
- Make usage of delegate list BFT compliant #3681
- Add Round.undo function #3680
- Reorganise P2P library folders and files #3678
- Invoke
applyPenalty
network actions in framework #3672 - Introduce advertiseAddress flag for peers #3661
- Typo in the blocks RPC response #3644
- Add Round.apply function #3633
- Generate delegate list using
round_delegates
table #3631 - Implement steps pertaining to BFT consensus protocol introduced in block reverting mechanism #3571
- Implement steps pertaining to BFT consensus protocol introduced block processing mechanism #3570
- Rounds module should support rolling back indefinite (until finality) number of rounds in the blockchain #3568
- Add waiting threshold before forging block if node did not receive the block from previous slot #3564
- Implement block synchronization mechanism introduced in the Introduce BFT consensus protocol LIP. #3563
- Implement Fast chain switching mechanism as per the specifications in Introduce BFT consensus protocol LIP #3562
- Implement method to identify chain recovery mode with BFT #3561
- Introduce BFT module as described in the "Introduce BFT consensus protocol" LIP. #3560
- Implement the fork choice rules described in "Introduce BFT consensus protocol" LIP #3559
- Include height property in calculating the signature of the block #3558
- The received time of the most recent block in the blockchain should be maintained #3557
- Introduce heightPrevious and heightPrevoted properties in block headers #3556
- Introduce BFT consensus protocol #3555
- Improve the logger name for JSON logger #3532
- Update eslintrc.json files #3468
- Ignore typescript projects from eslint #3411
- LIPS:0004 Introduce robust peer selection and banning mechanism #3328
- Add missing unit test for transactions library #3331
- Remove unwanted old database functions #2954
- isNullByteIncluded mismatch regex #2907
- Add missing unit tests for p2p #3338
- Add lazy push mechanism to reduce overall bandwidth consumption in the network #3344
- Add eager push mechanism to ensure that blocks and transactions propagate quickly #3345
- Inefficient blocks transmission between peers #2424
- Fix the number accuracy of vote calculations in round #2423
Merged pull requests:
- Allow /delegates endpoint to accept voteWeight as sort parameter - Closes #4715, #4716 #4717 (nazarhussain)
- Upgrade dependencies for http-api module - Closes #4699 #4700 (nazarhussain)
- Protocol Spec for vote transactions generate different output - Closes #4686 #4687 (pablitovicente)
- TypeError: Converting circular structure to JSON with Node 12.14.1 - Closes #4667 #4676 (nazarhussain)
- Fix processor block save ordering - Closes #4668 #4674 (mitsuaki-u)
- Fix NaCL slow/fast module loading #4673 (valamidev)
- Create protocol-spec for all fork choice patterns - Closes #4129 #4671 (nazarhussain)
- Fix P2P endpoint path - Closes #4646 #4664 (shuse2)
- Rename nethash to networkId in lisk-p2p - Closes #4647 #4661 (ishantiw)
- Accept blacklistedIps instead of blacklisted peer objects - Closes #4586 #4660 (ishantiw)
- P2P update rpc-request procotol - Closes #4639 #4659 (valamidev)
- Fix loadash vulnerability - Closes #4656 #4657 (ManuGowda)
- Migrate P2P tests under Jest framework - Closes #4642 & #4651 #4654 (valamidev)
- Chain state store finalize () does not return the promise - Closes #4652 #4653 (pablitovicente)
- Rename database table "temp_block" to "temp_blocks" - Closes #4648 #4649 (ManuGowda)
- Cleanup test utilities for framework - Closes#4626 #4645 (nazarhussain)
- Update to Node.js v12.14.0 #4640 - Closes #4640 #4643 (ManuGowda)
- Integration test for genesis_block.spec.js does not terminated correctly - Closes#4627 #4641 (nazarhussain)
- Setting LISK_REDIS_HOST leads to unexpected logging behaviour - Closes #4630 #4635 (nazarhussain)
- LISK_API_PUBLIC=false does not work - Closes#4631 #4634 (nazarhussain)
- HTTP API whitelists do not always work as expected - Closes #4629 #4633 (nazarhussain)
- P2P add protocol message limit and improved message limit penalty #4628 (valamidev)
- Jest Integration tests are failing randomly - Closes # 4343 #4625 (nazarhussain)
- Handle usage of async and await expression - Closes #4619 #4621 (ManuGowda)
- Add examples to lisk-p2p library and update readme #4618 (ishantiw)
- Check all of the exceptions related tests are covered - Closes #4433 #4617 (nazarhussain)
- P2P peerBook disjoint fix and test improvements - Closes #4609 & #4599 #4616 (valamidev)
- Prettier fails to apply format for lisk-sdk - Closes #4614 #4615 (ManuGowda)
- Remove jsdoc dev dependency from framework - Closes #4612 #4613 (ManuGowda)
- Add jest config clearMocks: true and remove jest.clearAllMocks() in tests - Closes #4026 #4611 (yatki)
- Improve Chain/Transport unit test coverage - Closes #4595 #4603 (valamidev)
- Wrong attribute description in app config schema #4167 #4602 (ManuGowda)
- Application state not updated at initialization - Closes #4594 #4596 (lsilvs)
- Remove internal peer info from API get peers' output - Closes #4508 #4593 (diego-G)
- Prevent application crashing if there is a fork choice rule violation - Closes #4579 #4584 (limiaspasdaniel)
- Use
peerId
instead of constructing it on Block Synchronization Mechanism - Closes #4580 #4583 (limiaspasdaniel) - P2P avoid fixedPeer eviction - Closes #4581 #4582 (valamidev)
- Update & Enable eslint-plugin-jest - Closes #3992 #4578 (yatki)
- Add P2P condition to select peers for connection - Closed #4351 #4577 (diego-G)
- Remove state from Network module - Closes #4073 #4576 (valamidev)
- Remove function signatures - Closes #4571 #4575 (ManuGowda)
- Remove validator from transaction - Closes #4572 #4574 (shuse2)
- Fill-pool shouldn't be called when delegate is not enabled to forge or if node is syncing - Closes #4569 #4570 (ManuGowda)
- Add missing unit test for transactions library - Closes #3331 #4568 (pablitovicente)
- Ignore some files in SonarCloud that should not be checked - Closes #4566 #4567 (pablitovicente)
- Commander: generate network identifier - Closes #4559 #4565 (ManuGowda)
- Remove test databases #4564 (fchavant)
- Create protocol-spec for all fork choice patterns - Closes #4129 #4563 (MaciejBaj)
- P2P update DEFAULT_BAN_TIME in ms #4562 (valamidev)
- Fix logic not try to add to peer book if it already exist - Closes #4362 #4560 (shuse2)
- Fix not to evict the fixed peer - Closes #4352 #4558 (shuse2)
- Enable SonarCloud #4557 (fchavant)
- P2P rediscovery seedPeers interval - Closes #4350 & #4549 & #4503 #4556 (valamidev)
- Backup and restore peerInfo in p2p lib - Closes #4314 #4555 (ishantiw)
- wait_for helper not updated when changing status endpoint - Closes #4553 #4554 (pablitovicente)
- Add more test coverage for logic that uses delegateMinHeightActive value - Closes #4499 #4552 (yatki)
- isNullByteIncluded mismatch regex - Closes #2907 #4550 (pablitovicente)
- Storage component not parsing Dapp transfer transactions correctly - Closes #4547 #4548 (lsilvs)
- P2P Update peer buckets with source_group bytes - Closes #4488 #4545 (mitsuaki-u)
- API: Node status remove network height and loaded - Closes #4543 #4544 (ManuGowda)
- Remove unused dependencies - Closes #4539 #4540 (shuse2)
- Fix merging default options on entities - Closes #4532 #4537 (limiaspasdaniel)
- Update BFT to use state store - Closes #4316 #4536 (shuse2)
- Refactor log level, code and variable shadowing - Closes #4534 #4535 (ManuGowda)
- Update typescript - Closes #4485 #4533 (shuse2)
- Test that transaction replay is not possible among networks - Closes #4530 #4531 (pablitovicente)
- Fix applying penalty on transaction processing error - Closes #4528 #4529 (shuse2)
- Update producedBlocks for genesis block - Closes #4429 #4526 (lsilvs)
- Remove redundant P2P interfaces - Closes #4493 #4525 (diego-G)
- Fix broadcasting order - Closes #4521 #4524 (shuse2)
- Improve logging when syncing finishes - Closes #4522 #4523 (limiaspasdaniel)
- Update devnet genesis block - Closes #4266 #4520 (shuse2)
- Add limit to bsm fcs get queries - Closes #4518 #4519 (limiaspasdaniel)
- Elements library show throw informative errors- Closes #4512 #4517 (pablitovicente)
- P2P Disconnect from seed peers after initial discovery - Closes #4359 & #4360 #4516 (valamidev)
- Improve logging and error handling when receiving common block on FCS - Closes #4514 #4515 (limiaspasdaniel)
- Remove BFT headers validation from validate detached - Closes #4511 #4513 (limiaspasdaniel)
- Inject nodeInfo to InboundPeer - Closes #4509 #4507 (mitsuaki-u)
- Remove unnecessary update status - Closes #4505 #4506 (shuse2)
- Update chain loader to call action with correct param - Closes #4501 #4502 (shuse2)
- Validate Asset should return full path on error - Closes #4388 #4500 (pablitovicente)
- P2P Disconnect from seed peers after initial discovery - Closes #4359 #4498 (valamidev)
- Remove summedrounds and do in the application - Closes #4407 #4497 (shuse2)
- Add basic type definitions to SDK - Closes #4496 #4495 (limiaspasdaniel)
- Save tried peers in db - Closes #4358 #4494 (shuse2)
- Save P2P secret in the database - Closes #4040 #4492 (shuse2)
- Ban peer if block processing fails on FCS - Closes #4474 #4491 (limiaspasdaniel)
- Remove cache from the chain module - Closes #4487 #4490 (ManuGowda)
- Rename prevotedConfirmedUptoHeight -> maxHeightPrevoted - Closes #4471 #4489 (limiaspasdaniel)
- Move modules/migrations to modules/components/storage/migrations - Closes #4483 #4484 (ManuGowda)
- Add missing apply penalty from LIP-0004 - Closes #3672 #4482 (shuse2)
- Reject invalid messages from incoming connections - Closes #4424 #4481 (ishantiw)
- Investigate slow sync on introduce_bft_consensus-dpos branch - Closes #4340 #4480 (lsilvs)
- Update broadcaster to send transactionIds - Closes #4460 #4479 (shuse2)
- Request node info from Outbound peers - Closes #4260 #4478 (mitsuaki-u)
- Move fork choice rule logic to BFT folder - Closes #4470 #4477 (limiaspasdaniel)
- Implement unit tests for Block Synchronization Mechanism - Closes #4375 #4476 (limiaspasdaniel)
- Add delegateMinHeightActive needs to be included in calculation of prevote and precommit - Closes #4349 #4473 (yatki)
- Remove nonce from framework chain submodule - Closes #3702 #4472 (diego-G)
- Move transactions into block - Closes #4138 #4469 (shuse2)
- Update transport module to use consistent naming and returning schema - Closes #4459 #4468 (pablitovicente)
- Update transaction processing to consistently use state store - Closes #4137, #3987 #4467 (shuse2)
- Introduce advertiseAddress flag for peers - Closes #3661 #4466 (ManuGowda)
- Add BFT height finalized information to HTTP API - Closes #4463 #4465 (lsilvs)
- API node/status/forging filter doesn't work as expected - Closes #4091 #4464 (ManuGowda)
- transaction.id should not be used before assignment - Closes #4461 #4462 (pablitovicente)
- Update previousBlock to previousBlockId - Closes #4295 #4458 (shuse2)
- Lazy push for transactions - Closes #4434 #4457 (diego-G)
- Show BFT properties in api/blocks response - Closes #4449 #4456 (lsilvs)
- Solve multiple issues on Synchronizer #4455 (limiaspasdaniel)
- Remove transactions 0 - 4 - Closes #4451 #4452 (shuse2)
- Upgrade to NodeJS 12 - Closes #4392 #4448 (pablitovicente)
- Update forgers endpoint - Closes #3684 #4445 (shuse2)
- Remove unnecessary reload check - Closes #4130 #4443 (shuse2)
- Add incentivizing Lisk-BFT Protocol Participation - Closes #4354 #4441 (lsilvs)
- Update eager push to only send to 16 peers - Closes #3345 #4440 (shuse2)
- Add index.d.ts file for lisk-sdk - Closes #4438 #4439 (shuse2)
- Implement Unit tests for Fast Chain Switching - Closes #4376 #4437 (limiaspasdaniel)
- Add network identifier in framework - Closes #4435 #4436 (shuse2)
- Implement penalty for malformed peerList response - Closes #4363 & #4475 & #4447 #4432 (valamidev)
- Change protocol format and RPC procedure names to match LIP - Closes #4118 #4431 (ManuGowda)
- Add protocol specs for LIP-0009 and LIP-0012 - Closes #4092 #4430 (shuse2)
- Implement unit tests for Synchronizer class - Closes #4428 #4427 (limiaspasdaniel)
- Reject unnecessary messages - Closes #4424 #4426 (ishantiw)
- Add IP limit for P2P Outbound connections - Closes #4315 #4425 (valamidev)
- Create P2P broadcast method - Related to #3344 #4423 (diego-G)
- Fix forging_statistics endpoint - Closes #4267 #4422 (lsilvs)
- Update commander network identifier - Closes #4336 #4421 (shuse2)
- Merge dpos improvments into introduce bft #4419 (lsilvs)
- Improve performance on vote weight calculation - Closes #4340 #4415 (shuse2)
- Request and apply blocks in chunks for BSM - Closes #4412 #4414 (limiaspasdaniel)
- Bubble up the peerId when a P2P message packet is received - Closes #4395 #4411 (diego-G)
- P2P introduce Functional testing - Closes #4387 #4410 (valamidev)
- Reuse PeerLists inside P2Pconfig - Closes #4405 #4406 (diego-G)
- Update sign network identifier - Closes #4335 #4404 (mitsuaki-u)
- Introduce functional test suite into lisk-p2p library Closes - #4387 #4403 (valamidev)
- Remove broadhash consensus - Closes #4625 #4402 (shuse2)
- Remove typo from response - Closes #3644 #4400 (shuse2)
- Remove vote column - Closes #4274 #4399 (shuse2)
- Add network identifier to cryptography - Closes #4333 #4398 (mitsuaki-u)
- Make usage of delegate list BFT compliant - Closes #3681 #4397 (lsilvs)
- Implement Fast Chain Switching mechanism - Closes #3562 #4337 #4338 #4339 #4396 (limiaspasdaniel)
- Add default implementation for verifyAgainstTransactions - Closes #4238 #4393 (michielmulders)
- Add consistent deserialization and serialization - Closes #4131 #4391 (shuse2)
- Update transaction pool not to use senderId and update usage of recipientId - Closes #4328 #4390 (pablitovicente)
- Remove delegate rank - Closes #4006 #4389 (shuse2)
- Update genesis block format - Closes #4331 #4386 (shuse2)
- Restore blocks upon startup - Closes #4348 #4385 (michielmulders)
- Fix build and test for the new transaction schema - Closes #4332 #4382 (shuse2)
- Improve log message and format - Closes #4285 #4381 (ManuGowda)
- Update storage to store updated transaction schema - Closes #4326 #4380 (pablitovicente)
- Investigate slow sync on introduce_bft_consensus-dpos.1 branch - Closes #4340 #4379 (lsilvs)
- Request and apply blocks of new chain [BSM] - Closes #3771 #4378 (limiaspasdaniel)
- Increase unit test coverage across P2P peer book - Closes #4227 #4377 (diego-G)
- Use new data structure to capture peer info to handle internal parameters - Closes #4313 #4374 (ishantiw)
- Emit rounds change event when round finishes in Dpos module - Closes #4264 #4373 (lsilvs)
- Refactor blocks endpoint - Closes #4369 #4372 (limiaspasdaniel)
- Expose BaseModule from framework and SDK - Closes #3826 #4365 (alepop)
- Improve isValidNumber function validation - Closes #3902 #4364 (alepop)
- Add unit test coverage for P2P PeerPool - Closes #4229 #4357 (mitsuaki-u)
- Remove transactions data from node status endpoint - Closes #4294 #4347 (alepop)
- Jest Integration tests are failing randomly (Not Solved) #4344 (yatki)
- Update transaction schema on transactions - Closes #4325 #4342 (shuse2)
- Revert to last common block in BSM - Closes #3770 #4341 (limiaspasdaniel)
- Undo did not call bft module to delete block - Closes #4320 #4324 (shuse2)
- Make usage of delegate list BFT compliant - Closes #3681 #4322 (lsilvs)
- Merge child tables of mem_accounts - Closes #4139 #4321 (pablitovicente)
- State store inconsistent return value - Closes #4317 #4319 (JesusTheHun)
- Update inbound peer eviction and add advanced test coverage - Closes #4280 #4311 (mitsuaki-u)
- Integrate swagger-stats APM - Closes #4300 #4310 (ManuGowda)
- Restore blocks from temp_block table - Closes #3775 #4309 (michielmulders)
- Return full common block instead of ID property - Closes #4307 #4308 (limiaspasdaniel)
- Update max height previously forged - Closes #3696 #4304 (shuse2)
- Save height finalized when apply - Closes #3695 #4303 (shuse2)
- Integrate swagger-stats APM - Closes #4300 #4302 (ManuGowda)
- Move init steps to responsible files - Closes #4297 #4298 (shuse2)
- Add unit tests for P2P Inbound peer class - Closes #4224 #4296 (diego-G)
- Remove inefficient sync - Closes #2424 and #2954 #4293 (shuse2)
- Full peers list growing excessively large (> 100K) - Closes #4279 #4292 (jondubois)
- Remove signature loading - Closes #4268 #4290 (shuse2)
- Add bft header - Closes #4247 #4289 (shuse2)
- Change v2 as default - Closes #4235 #4287 (shuse2)
- Implement obtain tip of chain step for Block Sync Mechanism - Closes #3768 #4286 (pablitovicente)
- Add unit tests for P2P Outbound peer class - Closes #4225 #4277 (diego-G)
- Update community links #4275 (shuse2)
- Write integration test coverage for DPOS module - Close #4192 #4269 (yatki)
- Remove previous Round implementation - Closes #3685 #4259 (lsilvs)
- Add unit test for P2P base peer file - Closes #4223 #4258 (diego-G)
- Extract and use common setup for integration tests - Closes #4200 #4257 (ishantiw)
- The nodeInfo was removed from _peerSelectForConnection again - Closes #4253 #4254 (jondubois)
- Add event integration test coverage - Closes #4199 #4252 (mitsuaki-u)
- Move generate delegate list to dpos apply and undo - Closes #4218 #4251 (michielmulders)
- Add unit test coverage for P2P request file - Closes #4230 #4248 (jondubois)
- Create function to compute BFT headers on block creation - Closes #4233 #4246 (limiaspasdaniel)
- Replace rounds.backwardTick by dpos.undo - Closes #4158 #4245 (lsilvs)
- Remove id field of a peer coming from the database - Closes #4243 #4244 (ishantiw)
- Removing newrelic integration - Closes #4141 #4242 (ManuGowda)
- Update eslint version - Closes #3468 #4239 (shuse2)
- Protocol-spec generator should not generate different JSON on each run - Closes #4193 #4237 (pablitovicente)
- Split block processing steps - Closes #3869 #4234 (limiaspasdaniel)
- Add JSDocs for filters for Transaction Entity - Closes #4231 #4232 (michielmulders)
- Fix cyclomatic complexity across P2P Library - Closes #3859 #4222 (diego-G)
- Delete caching mechanism in Dpos - Closes #4217 #4220 (yatki)
- Protocol-spec votes - Closes #4182 #4215 (pablitovicente)
- Replace rounds.tick by dpos.apply - Closes #4157 #4191 (lsilvs)
- Protocol-spec multi-signature registration - Closes #4185 #4190 (pablitovicente)
- Solve JavaScript heap out of memory - Closes #4183 #4188 (michielmulders)
- Refactor integration tests - Closes #4121 #4187 (mitsuaki-u)
- Protocol-spec transfer - Closes #4181 #4186 (pablitovicente)
- Make /delegates/forgers BFT compliant - Closes #3684 #4172 (michielmulders)
- Protocol-spec delegate registration - Closes #4159 #4166 (pablitovicente)
- Fix the number accuracy of vote calculations in round - Closes #2423 #4165 (nazarhussain)
- Replace rounds.validateBlockSlot with dpos.verifyBlockForger - Closes #4155, #4156 #4164 (michielmulders)
- Implement verify blockslot forger - Closes #4144 #4162 (michielmulders)
- Dpos.getRoundDelegates returns outdated list - Closes #4147 #4161 (yatki)
- Create base class peer list - Closes #4048 #4160 (ishantiw)
- Replace rounds.generateDelegateList by dpos.getRoundDelegates - Closes #4152 #4154 (lsilvs)
- Protocol-spec second signature - closes #4148 #4151 (pablitovicente)
- Reorganise p2p library - Closes #3678 #4150 (diego-G)
- Protocol-spec second signature - closes #4148 #4149 (pablitovicente)
- Functional GET tests taking too long on Jenkins - Closes #4124 #4145 (pablitovicente)
- Create protocol-spec json for BFT specification - Closes #4088 #4123 (nazarhussain)
- Sync error on testnet - Closes #4119 #4120 (lsilvs)
- Load minimum block headers on block deletion - Closes #3694 #4112 (nazarhussain)
- Dpos undo produce block - Closes #4001 #4002 #4004 #4005 #4110 (pablitovicente)
- Merge development into feature-bft - Closes #4098 #4099 (pablitovicente)
- Fix readme code snippet #4096 #4097 (RachBLondon)
- Implement isEmpty and truncate for temp_block - Closes #3776 #4085 (michielmulders)
- Add filter to Accounts entity to allow searching in account.asset field - Closes #3990 #4078 (pablitovicente)
- Improve logger naming for components - Closes #3532 #4075 (michielmulders)
- Add initial setup for Spec of Specs generator #4063 (limiaspasdaniel)
- Emit event when a block is finalized from the bft module - Closes #3908 #4061 (pablitovicente)
- Move BlockSlots class into Dpos Module - Closes #3789 #4059 (lsilvs)
- Update broken link in Readme, Closes #4056 #4058 (Tschakki)
- Remove block dependency from block/utils - Closes #4012 #4055 (michielmulders)
- Update sodium-native to latest version (includes libsodium 1.0.17) - Closes #3414 #4053 (pablitovicente)
- Improve finality manager performance and add more test simulations - Closes #3894 #4050 (nazarhussain)
- Add Round.apply function - Closes #3633 #4047 (yatki)
- Add util functions to be used in integration test - Closes #3955 #4046 (SargeKhan)
- Add block processor - Closes #4041 #4043 (shuse2)
- Merge development into bft branch #4034 (shuse2)
- Merge development to feature/introduce_bft_consensus branch #4020 (SargeKhan)
- Store deleted block in temp table - Closes #3772 #4019 (SargeKhan)
- Add Round.apply function - Closes #3633 #3934 (yatki)
- Implement peer selection algorithm for block sync mechanism - Closes #3767 #3900 (limiaspasdaniel)
- Implement method to identify chain recovery mode with BFT - Closes #3561 #3891 (nazarhussain)
- Update peer selection method for fetchPeers response - Closes #3333 #3883 (mitsuaki-u)
- Maintain received time of last received applied block - Closes #3557 #3882 (limiaspasdaniel)
- Update application state structure to include prevotedConfirmedUptoHeight - Closes #3774 #3865 (limiaspasdaniel)
- Automatically cleanup round_delegates table - Closes #3683 #3853 (SargeKhan)
- Create submodule/bft to initiate the BFT logic at application startup - Closes #3693 #3851 (nazarhussain)
- Synchronizer design proposal - Closes #3773 #3846 (limiaspasdaniel)
- Merge development to feature/bft branch #3836 (nazarhussain)
- Create ChainMeta entity to persist BFT information - Closes #3832 #3833 (nazarhussain)
- Implement procedure to return the highest common block id - Closes #3769 #3816 (limiaspasdaniel)
- Generate delegate list using
round_delegates
table - Closes #3631 #3782 (yatki) - Implement BFT LIP logic to add/remove headers as logic/bft.js - Closes #3692 #3758 (nazarhussain)
- Implement BFT fork choice rules #3725 (limiaspasdaniel)
- Updated signature and heightPrevious / heightPrevoted with support old implementation - Closes #3558, #3556 #3722 (michielmulders)
- Create data structure to store block headers for BFT - Closes #3691 #3709 (nazarhussain)
- Add waiting threshold before forging block if node did not receive the block from previous slot - Closes #3564 #3569 (nazarhussain)