Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: when creating dial targets, encapsulate PeerIds last #1389

Merged
merged 1 commit into from Sep 23, 2022

Conversation

achingbrain
Copy link
Member

It turns out because Multiaddr.encapsulate stringifies the Multiaddr it's a suprisingly expensive operation so here we switch the order of our Multiaddr pipeline around so we filter undialable addresses (e.g. unsupported transports etc) before encapsulating the PeerId onto a Multiaddr we'd then just ignore.

It turns out because `Multiaddr.encapsulate` stringifies the `Multiaddr`
it's a [suprisingly expensive operation](multiformats/js-multiaddr#275 (comment))
so here we switch the order of our `Multiaddr` pipeline around so
we filter undialable addresses (e.g. unsupported transports etc) before
encapsulating the `PeerId` onto a `Multiaddr` we'd then just ignore.
@achingbrain
Copy link
Member Author

CPU usage before (left hand side) and after (right hand side) running locally with this change:

image

@mpetrunic mpetrunic merged commit ec02351 into master Sep 23, 2022
@mpetrunic mpetrunic deleted the fix/encapsulate-peer-id-last branch September 23, 2022 08:33
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.

None yet

2 participants