LiskArchive / lisk-engine

:bullettrain_front: Lisk blockchain engine
https://lisk.com
Apache License 2.0
0 stars 0 forks source link

Implement a new `testplan` for `gossipsub` #107

Closed hrmhatef closed 1 year ago

hrmhatef commented 1 year ago

What was the problem?

This PR resolves #42

How was it solved?

How was it tested?

Additional Info

Some parts of tests which are mentioned in the issue are not tested with the new testplan. In this repo we have three time of tests which are explained in the following table:

Name Unitest Demo App Testground Description
Connecting/disconnecting from peers
Connecting to a seed peer(s) it is already tested by chat app but, we can make a new testplan for this test
Fixed Peers we can make a new testplan for this test
Disallow incoming connections
Blacklisting peers because we use IP and all tests are run in local machine with IP local so it is not possible to test this part, maybe we can check it in docker or in other way, so this should be done in the future
Sending direct message
Responding to a direct messages
Broadcasting message with gossipsub this is the main part of this testplan
NAT connections
Relay service/connection
Hole punching
matjazv commented 1 year ago
Some parts of tests which are mentioned in the issue are not tested with the new testplan. In this repo we have three time of tests which are explained in the following table: Name Unitest Demo App Testground Description
Connecting/disconnecting from peers
Connecting to a seed peer(s) it is already tested by chat app but, we can make a new testplan for this test
Fixed Peers we can make a new testplan for this test
Disallow incoming connections
Blacklisting peers because we use IP and all tests are run in local machine with IP local so it is not possible to test > this part, maybe we can check it in docker or in other way, so this should be done in the future
Sending direct message
Responding to a direct messages
Broadcasting message with gossipsub this is the main part of this testplan
NAT connections
Relay service/connection
Hole punching

While this table is surely valid we should anyway still mention that unit tests, demo app and Testground test/checks different things and they are not 100% comparable.

With Testground testplan we are not as much interested in correctness and valid implementation of a new P2P module as we are in its performance. So at the moment we can only check performance of Broadcasting message with gossipsub.

We would probably also want to check the performance of other new P2P module features but for that we need a new strategy as currently it's not possible to test any other feature with a testplan.