Skip to content

Fixing safety and liveness in consensus #1768

Closed

Description

@majecty

Problem 1 - safety: Header verifier does not verify any signatures in a header.
Problem 2 - liveness: A peer does not send its commit to other peers.

How to solve them.

  1. In Tendermint check a header's signatures when it is needed.
  2. When a header is imported, Tendermint checks the header and update the best block if needed.
  3. Add a message that contains a height's finalized block and precommits.

Activity

  1. self-assigned this
    on Sep 9, 2019
  2. majecty commented on Sep 9, 2019

    @majecty
    Author

    I found that Tendermint does not use the best proposal header. So safety does not have any problem.

    I'm implementing "Commit message" in Tendermint(#1770). It will fix the liveness issue.

    Scenario

    1. A's tendermint height is 17, B's tendermint height is 18.
    2. A sends "Commit request" to B
    3. B sends "Commit" to A
    4. A moves to height 17's Commit state.
  3. majecty commented on Sep 18, 2019

    @majecty
    Author

    Liveness fixed by #1770

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions