-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Closed as not planned
Labels
bountyHas bounty! See https://github.com/ipfs/devgrants/projects/1Has bounty! See https://github.com/ipfs/devgrants/projects/1epickind/enhancementA net-new feature or improvement to an existing featureA net-new feature or improvement to an existing feature
Description
The need in brief
Currently, the SECIO transport supports using OpenSSL for the RSA . This can significantly improve performance as OpenSSL is highly optimized.
Now that we're switching to TLS, it would be nice to explore OpenSSL support in go-libp2p-tls.
Deliverable
- A feature in go-libp2p-tls transport that enables OpenSSL support using go-openssl (behind an "openssl" build flag). See tls: support OpenSSL libp2p/go-libp2p#1539.
- Any additional unit tests needed to ensure that this feature actually works.
- Testground benchmarks comparing the OpenSSL implementation and the Go TLS implementation. Specifically, the benchmarks must compare:
- Handshake latency.
- Handshake throughput (how many handshakes can we complete in N second).
- Connection latency (ping time).
- Connection throughput.
Requirements
- This feature must be interoperable with go-libp2p's and rust-libp2p's current TLS transports.
- This feature must implement the libp2p TLS handshake as defined in the spec.
Non-requirement: While the described feature should be as fast as possible, it may not have higher overall throughput than go's built in TLS implementation, due to CGO overhead. If that turns out to be the case, but it looks like OpenSSL's handshake throughput is significantly higher than Go's, we may create an additional bounty to use OpenSSL for the handshake only.
Guidelines
- Please use the IPFS Go Contributing Guidelines as your north star — adherence to these guidelines are crucial when it comes to awarding a potential bounty!
- Please DO NOT bundle a general code refactor with the completion of this bounty!
Metadata
Metadata
Assignees
Labels
bountyHas bounty! See https://github.com/ipfs/devgrants/projects/1Has bounty! See https://github.com/ipfs/devgrants/projects/1epickind/enhancementA net-new feature or improvement to an existing featureA net-new feature or improvement to an existing feature