Skip to content
This repository has been archived by the owner on Nov 7, 2023. It is now read-only.

Semi-automated view-change test #246

Merged
merged 1 commit into from
Apr 3, 2022

Conversation

sergefdrv
Copy link
Contributor

This pull request resolves #243.

@sergefdrv sergefdrv added this to the v0.1.0 milestone Mar 28, 2022
@sergefdrv sergefdrv self-assigned this Mar 28, 2022
@sergefdrv sergefdrv requested a review from ynamiki as a code owner March 28, 2022 20:21
@sergefdrv sergefdrv marked this pull request as draft March 29, 2022 12:40
@sergefdrv
Copy link
Contributor Author

The test sometimes fails. One issue is that clients continue submitting requests when replicas are stopped, so some replicas get stopped before they have chance to deliver all the requests being processed. I have a fix for that. But the test also happen to fail from time to time because it takes too long to handle messages communicated during view change. Remember that checkpoints are not implemented yet to limit the size of the protocol history (#218). Implementation of ViewChange and NewView messages is also simple, but inefficient (#216).

The script starts replicas, as well as clients submitting requests,
and periodically suspends some of them, thus triggering view changes.
It checks that all replica processes stay alive and finally compares
if they produced the same sequence of blocks.

Signed-off-by: Sergey Fedorov <[email protected]>
@sergefdrv
Copy link
Contributor Author

Summary of changes:

  • reduced default number of rounds
  • stopping clients before replicas

@sergefdrv
Copy link
Contributor Author

The test is much more stable with lower number of rounds. It may still fail because view-change messages sometimes get too big and exceed gRPC limit. We may want to increase that limit in our sample application.

@sergefdrv sergefdrv marked this pull request as ready for review March 29, 2022 15:55
Copy link
Contributor

@nhoriguchi nhoriguchi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. And I ran the script and confirmed to pass. This is also a good demonstration of view-change process.

@nhoriguchi nhoriguchi merged commit 4e8eb3e into hyperledger-labs:main Apr 3, 2022
@sergefdrv sergefdrv deleted the view-change-test branch April 5, 2022 11:07
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add semi-automated view-change test
2 participants