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

libp2phttp: Integrate with the connection gater and resource manager #2511

Open
MarcoPolo opened this issue Aug 23, 2023 · 0 comments
Open
Labels
effort/days Estimated to take multiple days, but less than a week exp/intermediate Prior experience is likely helpful kind/maintenance Work required to avoid breaking changes or harm to project's status quo libp2phttp

Comments

@MarcoPolo
Copy link
Collaborator

The experimental libp2phttp api does not yet integrate with the connection gater and the resource manager. It should to allow users to leverage their existing logic here with this new transport.

Originally posted by @marten-seemann in #2438 (comment)

MarcoPolo added a commit that referenced this issue Aug 24, 2023
Covered by #2511
MarcoPolo added a commit that referenced this issue Aug 28, 2023
Covered by #2511
MarcoPolo added a commit that referenced this issue Aug 29, 2023
Covered by #2511
MarcoPolo added a commit that referenced this issue Aug 29, 2023
* Add SNI and HTTP_libp2p_token to Noise extensions

* Initial libp2phttp work

* Remove custom response writer

* Initial self review

* Add client for PingHTTP

* Support using a different sni from host

* Add WIP auth support

* Revert "Add WIP auth support"

This reverts commit 8a648d9. Since
current spec doesn't use libp2p-noise-?X auth anymore.

* Remove libp2p-noise auth (removed from spec)

* wip notes

* Fix ordering of header writes

* Change api to have the host do more

* Add options

* Use stream host from option instead of parameter

* Nits

* Add AddPeerMetadata

* Add CustomRootHandler option

* Remove old todos

* Undo Noise changes

* Add comments

* Implement CloseIdleConnections to protect from surprising behavior

* Add todo

* Add ServerMustAuthenticatePeerID option

* WIP work on recent roundtripper logic

* Remove recentHTTPAddrs. We don't need it

* Move http ping to separate package

* Hide internal constants

* HTTPHost has a valid zero-value. Remove constructor and options

* Add https test

* Rename to following naming convention

* Add flag for insecure http

* Return after error

* Rename Rm to Remove

* Rename

* Refactor to always call closeAllListeners

* Rename

* Rename

* Automatically strip prefix when using SetHTTPHandler*

* Hide streamHostListen

* Cleanup public types and add docs

* Fix interface rename

* Remove debug

* PR comments

* Add examples

* Fix example name

* Cleanup unused example

* Add more examples

* Add well known handler example

* Handle empty path

* Fix typo

* Make RoundTripperOption public so users can allocate a slice of options

* Rename HTTPHost to Host

* Make the host.WellKnownHandler public

* Make Add merge PeerMetadata. Introduce SetPeerMetadata

* Rename AddProtocolMapping to AddProtocolMeta. Expand comment

* Expand comment on DefaultClientRoundTripper

And don't use the http.DefaultRoundTripper and cast

* Remove todo

Covered by #2511

* Fix comment typo

* Fix comment typo

* Create helper init fn

* Rename NewRoundTripper to NewConstrainedRoundTripper

* Use pointer for Host.ServeMux

* Don't ignore err

* json decode from reader

* Nits

* Move setupListeners to method

* Add comment for streamReadCloser

* Add more comments

* Add todo

* Defer connect until the round trip

* Rebase gostream

* Update p2p/http/libp2phttp.go

Co-authored-by: Andrew Gillis <[email protected]>

---------

Co-authored-by: Andrew Gillis <[email protected]>
@marten-seemann marten-seemann added kind/maintenance Work required to avoid breaking changes or harm to project's status quo exp/intermediate Prior experience is likely helpful effort/days Estimated to take multiple days, but less than a week labels Dec 7, 2023
gts2030 pushed a commit to superblock-dev/go-libp2p that referenced this issue May 23, 2024
* Add SNI and HTTP_libp2p_token to Noise extensions

* Initial libp2phttp work

* Remove custom response writer

* Initial self review

* Add client for PingHTTP

* Support using a different sni from host

* Add WIP auth support

* Revert "Add WIP auth support"

This reverts commit 8a648d94f7cd8707e10626a3333e99d6dad99c21. Since
current spec doesn't use libp2p-noise-?X auth anymore.

* Remove libp2p-noise auth (removed from spec)

* wip notes

* Fix ordering of header writes

* Change api to have the host do more

* Add options

* Use stream host from option instead of parameter

* Nits

* Add AddPeerMetadata

* Add CustomRootHandler option

* Remove old todos

* Undo Noise changes

* Add comments

* Implement CloseIdleConnections to protect from surprising behavior

* Add todo

* Add ServerMustAuthenticatePeerID option

* WIP work on recent roundtripper logic

* Remove recentHTTPAddrs. We don't need it

* Move http ping to separate package

* Hide internal constants

* HTTPHost has a valid zero-value. Remove constructor and options

* Add https test

* Rename to following naming convention

* Add flag for insecure http

* Return after error

* Rename Rm to Remove

* Rename

* Refactor to always call closeAllListeners

* Rename

* Rename

* Automatically strip prefix when using SetHTTPHandler*

* Hide streamHostListen

* Cleanup public types and add docs

* Fix interface rename

* Remove debug

* PR comments

* Add examples

* Fix example name

* Cleanup unused example

* Add more examples

* Add well known handler example

* Handle empty path

* Fix typo

* Make RoundTripperOption public so users can allocate a slice of options

* Rename HTTPHost to Host

* Make the host.WellKnownHandler public

* Make Add merge PeerMetadata. Introduce SetPeerMetadata

* Rename AddProtocolMapping to AddProtocolMeta. Expand comment

* Expand comment on DefaultClientRoundTripper

And don't use the http.DefaultRoundTripper and cast

* Remove todo

Covered by libp2p/go-libp2p#2511

* Fix comment typo

* Fix comment typo

* Create helper init fn

* Rename NewRoundTripper to NewConstrainedRoundTripper

* Use pointer for Host.ServeMux

* Don't ignore err

* json decode from reader

* Nits

* Move setupListeners to method

* Add comment for streamReadCloser

* Add more comments

* Add todo

* Defer connect until the round trip

* Rebase gostream

* Update p2p/http/libp2phttp.go

Co-authored-by: Andrew Gillis <[email protected]>

---------

Co-authored-by: Andrew Gillis <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
effort/days Estimated to take multiple days, but less than a week exp/intermediate Prior experience is likely helpful kind/maintenance Work required to avoid breaking changes or harm to project's status quo libp2phttp
Projects
None yet
Development

No branches or pull requests

2 participants