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

Remove sc_network::NetworkService::register_notifications_protocol and partially refactor Grandpa tests #7646

Merged
14 commits merged into from
Dec 2, 2020

Conversation

tomaka
Copy link
Contributor

@tomaka tomaka commented Dec 1, 2020

polkadot companion: paritytech/polkadot#2048

Close #6827

This PR removes the register_notifications_protocol method from sc_network.
Instead of registering new protocols after the networking has started (like register_notifications_protocol allows), it is now mandatory to mention the protocol name in NetworkConfiguration.
This has never been done because Polkadot used to make use of this method as well, and getting rid of it would have been a bit tricky. This is no longer the case, and Polkadot does it through NetworkConfiguration.

This change is, in my opinion, not only more correct, but will also simplify the implementation of #7374, as it guarantees the possibility to know in advance the number of notifications protocols.

Consequently, I've also removed setup_disabled_grandpa whose only effect is to register the protocol.

This hack, where the network doesn't start until initialization of the service is complete, is still in place and is still necessary because we grab event streams (using NetworkService::events_stream()) during the service initialization. Calling events_stream() after the networking has started could lead to events being missed. This problem is covered by paritytech/polkadot-sdk#554.

@tomaka tomaka added A0-please_review Pull request needs code review. B0-silent Changes should not be mentioned in any release notes C1-low PR touches the given topic and has a low impact on builders. labels Dec 1, 2020
@tomaka
Copy link
Contributor Author

tomaka commented Dec 1, 2020

Grandpa tests are failing because the tests initialize Grandpa only half-way through the test, and thus miss messages.
The reason why they succeeded before is a hack in register_notifications_protocol that re-sends messages about substreams being established.

This is a bit infuriating.

@tomaka tomaka changed the title Remove sc_network::NetworkService::register_notifications_protocol Remove sc_network::NetworkService::register_notifications_protocol and partially refactor Grandpa tests Dec 1, 2020
@tomaka
Copy link
Contributor Author

tomaka commented Dec 1, 2020

Note for myself: tests::force_change_to_new_set is apparently also failing, but inconsistently.

@tomaka
Copy link
Contributor Author

tomaka commented Dec 2, 2020

bot merge

@ghost
Copy link

ghost commented Dec 2, 2020

Waiting for commit status.

@ghost
Copy link

ghost commented Dec 2, 2020

Head SHA changed; merge aborted.

@tomaka
Copy link
Contributor Author

tomaka commented Dec 2, 2020

bot merge

@ghost
Copy link

ghost commented Dec 2, 2020

Waiting for commit status.

@tomaka
Copy link
Contributor Author

tomaka commented Dec 2, 2020

Could someone also approve paritytech/polkadot#2048 ? 🙏

@ghost
Copy link

ghost commented Dec 2, 2020

Merge failed: "At least 2 approving reviews are required by reviewers with write access."

@andresilva
Copy link
Contributor

bot merge

@ghost
Copy link

ghost commented Dec 2, 2020

Trying merge.

@ghost ghost merged commit f4d4244 into paritytech:master Dec 2, 2020
@tomaka tomaka deleted the rm-register-notif branch December 2, 2020 16:37
@tomaka tomaka added B5-clientnoteworthy and removed B0-silent Changes should not be mentioned in any release notes labels Dec 7, 2020
darkfriend77 pushed a commit to mogwaicoin/substrate that referenced this pull request Jan 11, 2021
…d partially refactor Grandpa tests (paritytech#7646)

* Remove sc_network::NetworkService::register_notifications_protocol

* Missing calls to .into()

* Wrong crate name

* [WIP] Fix Grandpa tests

* One more passing

* One more. Two to go.

* This one was actually already passing 🎉

* Last one compiles

* Progress

* grandpa: fix voter_persists_its_votes test

* Restore other tests

* Try spawn future later

Co-authored-by: André Silva <andrerfosilva@gmail.com>
This pull request was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A0-please_review Pull request needs code review. C1-low PR touches the given topic and has a low impact on builders.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Figure out the situation with register_notifications_protocol
3 participants