Skip to content

update adr-016#2435

Merged
ebuchman merged 1 commit intodevelopfrom
bucky/adr-016
Sep 19, 2018
Merged

update adr-016#2435
ebuchman merged 1 commit intodevelopfrom
bucky/adr-016

Conversation

@ebuchman
Copy link
Contributor

Changes to the ADR taken from #2160

@ebuchman ebuchman requested a review from zramsay as a code owner September 19, 2018 02:06
@codecov-io
Copy link

Codecov Report

Merging #2435 into develop will increase coverage by 0.07%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop    #2435      +/-   ##
===========================================
+ Coverage    61.28%   61.35%   +0.07%     
===========================================
  Files          198      198              
  Lines        16383    16376       -7     
===========================================
+ Hits         10040    10048       +8     
+ Misses        5508     5494      -14     
+ Partials       835      834       -1
Impacted Files Coverage Δ
blockchain/pool.go 65.73% <0%> (-0.7%) ⬇️
tools/tm-bench/transacter.go 8.9% <0%> (+0.4%) ⬆️
consensus/state.go 77.03% <0%> (+0.47%) ⬆️
consensus/reactor.go 73.55% <0%> (+0.53%) ⬆️
libs/autofile/autofile.go 77.46% <0%> (+2.81%) ⬆️

@ebuchman
Copy link
Contributor Author

Another question here is how, if at all, we inform peers that our AppVersion has upgraded (this could happen without a Tendermint restart according to current design)

Copy link
Contributor

@xla xla left a comment

Choose a reason for hiding this comment

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

👍 :octocat: :shipit: 🍡

Looks good from what I understand.

@xla
Copy link
Contributor

xla commented Sep 19, 2018

Another question here is how, if at all, we inform peers that our AppVersion has upgraded (this could happen without a Tendermint restart according to current design)

What behaviour would result from this? Are we disconnecting from peers with incompatible app versions? Are we foresee incompatible app versions? If it is a p2p concern it might be worth introduce that as part of the messages exchanged by the PEXs and consequently deciding if the peer should be kept around.

@ebuchman
Copy link
Contributor Author

ebuchman commented Sep 19, 2018

Are we disconnecting from peers with incompatible app versions?

Current thinking is no, under the assumption that we want to be able to sync a peer across multiple app versions. But this also means we don't know if we're actually compatible with a peer when we connect to them, since they could be on an old height/version, and we won't find out that we forked away from eachother until we actually disagree on blocks somewhere.

More prudent might be to consider tracking the correct version for each height, and enforcing that on peers, and having peers update each other when their version changes, and disconnecting if their version is wrong for their height.

Even better might be to include the list of (height, version) pairs as part of the NodeInfo, so you know if you have the same history of upgrades and can disconnect right away if not. In ADR-017 I suggest incorporating all of this into the ChainID, so a ChainID becomes a description of the chain's forks and of the peer compatibility, regardless of what height the peers are on (!)

@ebuchman ebuchman merged commit a045c56 into develop Sep 19, 2018
@ebuchman ebuchman deleted the bucky/adr-016 branch September 19, 2018 22:11
@xla xla mentioned this pull request Sep 19, 2018
2 tasks
@xla
Copy link
Contributor

xla commented Sep 19, 2018

@ebuchman Tried to capture the follow-up questions in #2448, please ammend/correct if necessary.

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.

3 participants