Skip to content

Commit

Permalink
fix(examples): call Swarm::add_external_address in dcutr and relay
Browse files Browse the repository at this point in the history
> Observed addresses (aka. external address candidates) of the local node, reported by a remote node
> via `libp2p-identify`, are no longer automatically considered confirmed external addresses, in
> other words they are no longer trusted by default. Instead users need to confirm the reported
> observed address either manually, or by using `libp2p-autonat`. In trusted environments users can
> simply extract observed addresses from a `libp2p-identify::Event::Received { info:
> libp2p_identify::Info { observed_addr }}` and confirm them via `Swarm::add_external_address`.

Follow-up to libp2p#3954.
  • Loading branch information
mxinden committed Jun 9, 2023
1 parent c2230f9 commit 5fc50d0
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 0 deletions.
1 change: 1 addition & 0 deletions examples/dcutr/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@ fn main() -> Result<(), Box<dyn Error>> {
..
})) => {
info!("Relay told us our public address: {:?}", observed_addr);
swarm.add_external_address(observed_addr);
learned_observed_addr = true;
}
event => panic!("{event:?}"),
Expand Down
8 changes: 8 additions & 0 deletions examples/relay-server/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,14 @@ fn main() -> Result<(), Box<dyn Error>> {
loop {
match swarm.next().await.expect("Infinite Stream.") {
SwarmEvent::Behaviour(event) => {
if let BehaviourEvent::Identify(identify::Event::Received {
info: identify::Info { observed_addr, .. },
..
}) = &event
{
swarm.add_external_address(observed_addr.clone());
}

println!("{event:?}")
}
SwarmEvent::NewListenAddr { address, .. } => {
Expand Down
7 changes: 7 additions & 0 deletions protocols/identify/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
## 0.43.0 - unreleased

- Observed addresses (aka. external address candidates) of the local node, reported by a remote node via `libp2p-identify`, are no longer automatically considered confirmed external addresses, in other words they are no longer trusted by default.
Instead users need to confirm the reported observed address either manually, or by using `libp2p-autonat`.
In trusted environments users can simply extract observed addresses from a `libp2p-identify::Event::Received { info: libp2p_identify::Info { observed_addr }}` and confirm them via `Swarm::add_external_address`.
See [PR 3954] and [PR XXX].

- Remove deprecated `Identify` prefixed symbols. See [PR 3698].
- Raise MSRV to 1.65.
See [PR 3715].
Expand All @@ -17,7 +22,9 @@
[PR 3698]: https://github.com/libp2p/rust-libp2p/pull/3698
[PR 3715]: https://github.com/libp2p/rust-libp2p/pull/3715
[PR 3876]: https://github.com/libp2p/rust-libp2p/pull/3876
[PR 3954]: https://github.com/libp2p/rust-libp2p/pull/3954
[PR 3980]: https://github.com/libp2p/rust-libp2p/pull/3980
[PR XXX]: https://github.com/libp2p/rust-libp2p/pull/XXX

## 0.42.2

Expand Down

0 comments on commit 5fc50d0

Please sign in to comment.