cuprated: delay Tor P2P zone start until after sync#576
Open
redsh4de wants to merge 8 commits intoCuprate:mainfrom
Open
cuprated: delay Tor P2P zone start until after sync#576redsh4de wants to merge 8 commits intoCuprate:mainfrom
redsh4de wants to merge 8 commits intoCuprate:mainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Delays the start of the Tor P2P zone until after the node has synchronized using clearnet
Closes #544
Why
Prevents deanonymization based on sync state
Where
cupratedmain.rs- Changed startup logic to initialize clearnet seperately. Creates the Tor router delivery channels. Sets up a task that starts Tor zone after receiving the sync notification from blockchain manager.p2p.rs- Splitinitialize_zones_p2pinto two seperate clearnet/Tor zone init functionsblockchainmanager.rs- Returns the notification channel to main, passes it to the syncer.syncer.rs- Changedcheck_behind_peerstocheck_sync_status, which now returns: no peers, behind peers, synced. On synced, fires the notification.txpooldandelion.rs- Receives Tor network interface via the tokio oneshot channelHow
Arc<Notify>instance is created and used between the syncer and the Tor startup taskinitialize_zones_p2pwas split into two per-zone functions to enable thistokio::oneshotchannel, checking for it inpoll_ready(). Transaction routing works over clearnet initially and then adds Tor routing once it is available