Skip to content

Feature/no block response#714

Merged
ebuchman merged 2 commits intounstablefrom
feature/no-block-response
Oct 5, 2017
Merged

Feature/no block response#714
ebuchman merged 2 commits intounstablefrom
feature/no-block-response

Conversation

@ebuchman
Copy link
Contributor

@ebuchman ebuchman commented Oct 4, 2017

replaces #648

Fixes #514
Replaces #540

If a peer requests a block with a height that we don't have
respond with a bcNoBlockResponseMessage.
However, according to the Tendermint spec, if all nodes are honest
this condition shouldn't occur, so this is a possible hint of an
dishonest node.
value := peer.lastValue()

if tt.existent {
if _, ok := value.(struct{ BlockchainMessage }).BlockchainMessage.(*bcBlockResponseMessage); !ok {
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't think this test confirms that the block received is actually for that exact same height in tt.height, the code in BlockchainReactor can literally send any height that it wants and this test will still pass. That was the purpose of the height tallying.

Copy link
Contributor Author

@ebuchman ebuchman Oct 5, 2017

Choose a reason for hiding this comment

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

Whoops! Thanks, forgot that check - force pushed

@ebuchman ebuchman force-pushed the feature/no-block-response branch from 5b9b6ed to 6597687 Compare October 5, 2017 02:26
@ebuchman ebuchman changed the base branch from develop to unstable October 5, 2017 02:26
@ebuchman ebuchman merged commit 765c325 into unstable Oct 5, 2017
@ebuchman ebuchman deleted the feature/no-block-response branch October 5, 2017 02:27
cmwaters pushed a commit to cmwaters/tendermint that referenced this pull request Dec 12, 2022
* add missing ProcessProposal handlers for the socket client

* disable test_apps
firelizzard18 pushed a commit to AccumulateNetwork/tendermint that referenced this pull request Nov 24, 2023
This is backport of three PRs originally merged against main:

* spec/p2p: Specify the operation of a Reactor (tendermint#714)
* spec/p2p: document the p2p API used by Reactors (tendermint#851)
* spec/p2p: new structure for the p2p specification (tendermint#966)

Co-authored-by: Josef Widder <44643235+josef-widder@users.noreply.github.com>
Co-authored-by: Lasaro <lasaro@informal.systems>
Co-authored-by: Sergio Mena <sergio@informal.systems>
firelizzard18 pushed a commit to AccumulateNetwork/tendermint that referenced this pull request Feb 1, 2024
* spec/p2p: starting the specification of a Reactor

* spec/p2p: generic service modelled in Quint

* spec/p2p: minimal/initial reactor model in Quint

* spec/p2p: P2P -> reactor interaction grammar

* spec/p2p: routines modeled in reactor.qnt

* spec/p2p: reactor.Receive) modeled in Quint

* spec/p2p: reactor types moved to the beginning

* spec/p2p: reactor Quint state encapsulated

* spec/p2p: reactor with actions and defintions

* spec/p2p: reactor SetSwitch() method modeled

* spec/p2p: reactor Service interface modeled

* spec/p2p: reactor setup action added

* spec/p2p: reactor Quint spec cleanup

* spec/p2p: reactor InitPeer spec updated

* spec/p2p: reactor Quint simulation support

* spec/p2p: reactor Quint spec refactored

* spec/p2p: reactor grammar added to a rephrased README

* spec/p2p: README structure reorganized

* spec/p2p: reactor registration, overview

* spec/p2p: reactor implements a service (start/stop)

* spec/p2p: reactor peer management, overview

* spec/p2p: reactor receive message method documented

* spec/p2p: renamed to registration/register reactor

* spec/p2p: reactor grammar refactoring, part I

* spec/p2p: reactor grammar refactoring, part II

* spec/p2p: reactor grammar refactoring, part III

* spec/p2p: reactor grammar refactoring, part IV

* spec/p2p: removing Quint model used as an example

* spec/p2p: reactor grammar refactoring, part V

* spec/p2p: reactor grammar refactoring, part VI

* spec/p2p: reactor grammar refactoring, part VII

* Apply suggestions from code review

Co-authored-by: Josef Widder <44643235+josef-widder@users.noreply.github.com>

* spec/p2p: reactor Quint model, some comments added

* Update spec/p2p/reactor/reactor.qnt

Co-authored-by: Lasaro <lasaro@informal.systems>

* spec/p2p: syntax HL for Quint files

Co-authored-by: Josef Widder <44643235+josef-widder@users.noreply.github.com>

* spec/p2p: suggestions from code review

Co-authored-by: Sergio Mena <sergio@informal.systems>

* spec/p2p: reactor Quint model, channel ID as str

* spec/p2p: applying suggestions from code review

* spec/p2p: API methods first, then actions on Quint

* spec/p2p: reactor Quint model, minor code cleanup

* spec/p2p: reactor README intro slightly rephrased

* spec/p2p: reactor grammar intro slightly rephrased

* spec/p2p: some reactor "should" replaced by "must"

* spec/p2p: Quint model reference on README updated

* spec/p2p: minor fixes on reactor's README

---------

Co-authored-by: Daniel Cason <cason@lausanne.local>
Co-authored-by: Josef Widder <44643235+josef-widder@users.noreply.github.com>
Co-authored-by: Lasaro <lasaro@informal.systems>
Co-authored-by: Sergio Mena <sergio@informal.systems>
cboh4 pushed a commit to scrtlabs/tendermint that referenced this pull request Apr 7, 2025
This is backport of three PRs originally merged against main:

* spec/p2p: Specify the operation of a Reactor (tendermint#714)
* spec/p2p: document the p2p API used by Reactors (tendermint#851)
* spec/p2p: new structure for the p2p specification (tendermint#966)

Co-authored-by: Josef Widder <44643235+josef-widder@users.noreply.github.com>
Co-authored-by: Lasaro <lasaro@informal.systems>
Co-authored-by: Sergio Mena <sergio@informal.systems>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants