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.
See libp2p/specs#285 and #361
The problem is that many people implementing a protocol will not look at the specs, but grab the proto definition from the most mature impl, which is go-libp2p. But most languages, including rust, produce protobuf that rejects non-utf8 strings, leading to issues like libp2p/rust-libp2p#1671 .
Ideally, in the long term this should be changed to bytes here as well. Bytes is just the better choice for an opaque id, where you might want to use compact random data and/or hashes.