You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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!
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
Requirements
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