Skip to content

Conversation

divagant-martian
Copy link
Contributor

@divagant-martian divagant-martian commented Jun 24, 2023

Issue Addressed

Upgrade libp2p to v0.52

Proposed Changes

  • Workflows: remove installation of protoc
  • Book: remove installation of protoc
  • Dockerfiles and cross: remove custom base Dockerfile for cross since it's no longer needed. Remove protoc from remaining Dockerfiless
  • Upgrade discv5 to v0.3.1: we have some cool stuff in there: no longer needs protoc and faster ip updates on cold start
  • Upgrade prometheus to 0.21.0, now it no longer needs encoding checks
  • things that look like refactors: bunch of api types were renamed and need to be accessed in a different (clearer) way
  • Lighthouse network
    • connection limits is now a behaviour
    • banned peers no longer exist on the swarm level, but at the behaviour level
    • connection_event_buffer_size now is handled per connection with a buffer size of 4
    • mplex is deprecated and was removed
    • rpc handler now logs the peer to which it belongs

Additional Info

Tried to keep as much behaviour unchanged as possible. However, there is a great deal of improvements we can do after this upgrade:

  • Smart connection limits: Connection limits have been checked only based on numbers, we can now use information about the incoming peer to decide if we want it
  • More powerful peer management: Dial attempts from other behaviours can be rejected early
  • Incoming connections can be rejected early
  • Banning can be returned exclusively to the peer management: We should not get connections to banned peers anymore making use of this
  • TCP Nat updates: We might be able to take advantage of confirmed external addresses to check out tcp ports/ips

@divagant-martian
Copy link
Contributor Author

this now includes the libp2p release with the denial fixed. Can you guys redeploy please?

@AgeManning
Copy link
Member

This seems to be running fine to me on the testnets.

Keen to merge this down, to pave the way for some more 🌶️ upgrades!

@AgeManning AgeManning added the ready-for-merge This PR is ready to merge. label Aug 1, 2023
@AgeManning
Copy link
Member

bors r+

bors bot pushed a commit that referenced this pull request Aug 2, 2023
## Issue Addressed

Upgrade libp2p to v0.52

## Proposed Changes
- **Workflows**: remove installation of `protoc`
- **Book**: remove installation of `protoc`
- **`Dockerfile`s and `cross`**: remove custom base `Dockerfile` for cross since it's no longer needed. Remove `protoc` from remaining `Dockerfiles`s
- **Upgrade `discv5` to `v0.3.1`:** we have some cool stuff in there: no longer needs `protoc` and faster ip updates on cold start
- **Upgrade `prometheus` to `0.21.0`**, now it no longer needs encoding checks
- **things that look like refactors:** bunch of api types were renamed and need to be accessed in a different (clearer) way
- **Lighthouse network**
	- connection limits is now a behaviour
	- banned peers no longer exist on the swarm level, but at the behaviour level
	- `connection_event_buffer_size` now is handled per connection with a buffer size of 4
	- `mplex` is deprecated and was removed
	- rpc handler now logs the peer to which it belongs

## Additional Info

Tried to keep as much behaviour unchanged as possible. However, there is a great deal of improvements we can do _after_ this upgrade:
- Smart connection limits: Connection limits have been checked only based on numbers, we can now use information about the incoming peer to decide if we want it
- More powerful peer management: Dial attempts from other behaviours can be rejected early
- Incoming connections can be rejected early
- Banning can be returned exclusively to the peer management: We should not get connections to banned peers anymore making use of this
- TCP Nat updates: We might be able to take advantage of confirmed external addresses to check out tcp ports/ips


Co-authored-by: Age Manning <[email protected]>
Co-authored-by: Akihito Nakano <[email protected]>
@bors
Copy link

bors bot commented Aug 2, 2023

@bors bors bot changed the title upgrade to libp2p 0.52 [Merged by Bors] - upgrade to libp2p 0.52 Aug 2, 2023
@bors bors bot closed this Aug 2, 2023
@divagant-martian divagant-martian deleted the libp2p-0.52 branch August 2, 2023 02:00
bors bot pushed a commit that referenced this pull request Aug 24, 2023
## Issue Addressed

N/A

## Proposed Changes

In #4431 , we seem to have removed support for mplex as it is being deprecated in libp2p. See libp2p/specs#553 . Related rust-libp2p PR libp2p/rust-libp2p#3920
However, since this isn't part of the official [consensus specs](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#multiplexing), we still need to support mplex. 

> Clients MUST support [mplex](https://github.com/libp2p/specs/tree/master/mplex) and MAY support [yamux](https://github.com/hashicorp/yamux/blob/master/spec.md).

This PR adds back mplex support as before.
bors bot pushed a commit that referenced this pull request Aug 24, 2023
## Issue Addressed

N/A

## Proposed Changes

In #4431 , we seem to have removed support for mplex as it is being deprecated in libp2p. See libp2p/specs#553 . Related rust-libp2p PR libp2p/rust-libp2p#3920
However, since this isn't part of the official [consensus specs](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#multiplexing), we still need to support mplex. 

> Clients MUST support [mplex](https://github.com/libp2p/specs/tree/master/mplex) and MAY support [yamux](https://github.com/hashicorp/yamux/blob/master/spec.md).

This PR adds back mplex support as before.
bors bot pushed a commit that referenced this pull request Aug 24, 2023
## Issue Addressed

N/A

## Proposed Changes

In #4431 , we seem to have removed support for mplex as it is being deprecated in libp2p. See libp2p/specs#553 . Related rust-libp2p PR libp2p/rust-libp2p#3920
However, since this isn't part of the official [consensus specs](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#multiplexing), we still need to support mplex. 

> Clients MUST support [mplex](https://github.com/libp2p/specs/tree/master/mplex) and MAY support [yamux](https://github.com/hashicorp/yamux/blob/master/spec.md).

This PR adds back mplex support as before.
Woodpile37 pushed a commit to Woodpile37/lighthouse that referenced this pull request Jan 6, 2024
Upgrade libp2p to v0.52

- **Workflows**: remove installation of `protoc`
- **Book**: remove installation of `protoc`
- **`Dockerfile`s and `cross`**: remove custom base `Dockerfile` for cross since it's no longer needed. Remove `protoc` from remaining `Dockerfiles`s
- **Upgrade `discv5` to `v0.3.1`:** we have some cool stuff in there: no longer needs `protoc` and faster ip updates on cold start
- **Upgrade `prometheus` to `0.21.0`**, now it no longer needs encoding checks
- **things that look like refactors:** bunch of api types were renamed and need to be accessed in a different (clearer) way
- **Lighthouse network**
	- connection limits is now a behaviour
	- banned peers no longer exist on the swarm level, but at the behaviour level
	- `connection_event_buffer_size` now is handled per connection with a buffer size of 4
	- `mplex` is deprecated and was removed
	- rpc handler now logs the peer to which it belongs

Tried to keep as much behaviour unchanged as possible. However, there is a great deal of improvements we can do _after_ this upgrade:
- Smart connection limits: Connection limits have been checked only based on numbers, we can now use information about the incoming peer to decide if we want it
- More powerful peer management: Dial attempts from other behaviours can be rejected early
- Incoming connections can be rejected early
- Banning can be returned exclusively to the peer management: We should not get connections to banned peers anymore making use of this
- TCP Nat updates: We might be able to take advantage of confirmed external addresses to check out tcp ports/ips

Co-authored-by: Age Manning <[email protected]>
Co-authored-by: Akihito Nakano <[email protected]>
Woodpile37 pushed a commit to Woodpile37/lighthouse that referenced this pull request Jan 6, 2024
N/A

In sigp#4431 , we seem to have removed support for mplex as it is being deprecated in libp2p. See libp2p/specs#553 . Related rust-libp2p PR libp2p/rust-libp2p#3920
However, since this isn't part of the official [consensus specs](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#multiplexing), we still need to support mplex.

> Clients MUST support [mplex](https://github.com/libp2p/specs/tree/master/mplex) and MAY support [yamux](https://github.com/hashicorp/yamux/blob/master/spec.md).

This PR adds back mplex support as before.
Woodpile37 pushed a commit to Woodpile37/lighthouse that referenced this pull request Jan 6, 2024
Upgrade libp2p to v0.52

- **Workflows**: remove installation of `protoc`
- **Book**: remove installation of `protoc`
- **`Dockerfile`s and `cross`**: remove custom base `Dockerfile` for cross since it's no longer needed. Remove `protoc` from remaining `Dockerfiles`s
- **Upgrade `discv5` to `v0.3.1`:** we have some cool stuff in there: no longer needs `protoc` and faster ip updates on cold start
- **Upgrade `prometheus` to `0.21.0`**, now it no longer needs encoding checks
- **things that look like refactors:** bunch of api types were renamed and need to be accessed in a different (clearer) way
- **Lighthouse network**
	- connection limits is now a behaviour
	- banned peers no longer exist on the swarm level, but at the behaviour level
	- `connection_event_buffer_size` now is handled per connection with a buffer size of 4
	- `mplex` is deprecated and was removed
	- rpc handler now logs the peer to which it belongs

Tried to keep as much behaviour unchanged as possible. However, there is a great deal of improvements we can do _after_ this upgrade:
- Smart connection limits: Connection limits have been checked only based on numbers, we can now use information about the incoming peer to decide if we want it
- More powerful peer management: Dial attempts from other behaviours can be rejected early
- Incoming connections can be rejected early
- Banning can be returned exclusively to the peer management: We should not get connections to banned peers anymore making use of this
- TCP Nat updates: We might be able to take advantage of confirmed external addresses to check out tcp ports/ips

Co-authored-by: Age Manning <[email protected]>
Co-authored-by: Akihito Nakano <[email protected]>
Woodpile37 pushed a commit to Woodpile37/lighthouse that referenced this pull request Jan 6, 2024
N/A

In sigp#4431 , we seem to have removed support for mplex as it is being deprecated in libp2p. See libp2p/specs#553 . Related rust-libp2p PR libp2p/rust-libp2p#3920
However, since this isn't part of the official [consensus specs](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#multiplexing), we still need to support mplex.

> Clients MUST support [mplex](https://github.com/libp2p/specs/tree/master/mplex) and MAY support [yamux](https://github.com/hashicorp/yamux/blob/master/spec.md).

This PR adds back mplex support as before.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-for-merge This PR is ready to merge.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants