Introduce a sec.SecureMuxer interface which can select security protocols and open outbound connections with simultaneous open. It is a wrapper around the SecureTransport interface.
v0.8.0 introduces a BREAKING interface change: MuxedConn.OpenStream and Conn.NewStream now both take a context.Context. This allows stream multiplexer implementations to unblock OpenStream when requested to do so.
Release v0.7.0
This is release includes a significant BREAKING CHANGE to the stream interface.
Previously, Close() closed streams for writing, but left them open for reading. Unfortunately, this meant streams would not be garbage collected until either (a) an EOF had been read on the stream or (b) Reset had been called. While technically documented, this behavior was extraordinarily surprising and most libp2p applications end up misusing and leaking streams (leading to memory leaks).
A CloseRead function has been introduced to close a stream for reading only (writing is still allowed).
Any in-progress Read calls will be interrupted with a non-EOF error.
No further calls to Read will succeed.
The handling of new incoming data on the stream after calling close is implementation defined. Currently,
Yamux and Mplex will throw away incoming data on a closed stream.
QUIC will return an error to the sender.
Close now closes the stream for both reading and writing. Close is equivalent to calling CloseRead and CloseWrite. Importantly, Closewill not wait for any form of acknowledgment. If acknowledgment is required, the caller must call CloseWrite, then wait on the stream for a response (or an EOF), then call Close() to free the stream object.
When done with a stream, the user must call either Close() or Reset() to discard the stream, even after calling CloseRead() and/or CloseWrite().
v0.6.1
dependency upgrades.
v0.6.0
This release adds EXPERIMENTAL introspection support. See libp2p/go-libp2p#947 for more info.
New introspection package encapsulating all introspection abstractions.
Introspector: to be satisfied by components that are capable of spelunking the state of the system, and representing in accordance with the introspection schema.
IntrospectionEndpoint: interface to be implemented by introspection endpoints. An introspection endpoint makes introspection data accessible to external consumers, over, for example, WebSockets, or TCP, or libp2p itself.
New host.IntrospectableHost interface to be implemented by introspectable hosts.
Protobuf introspection schema under introspection/pb.
ID() string methods in network.Conn and network.Stream.
Opened field in network.Stat to track the opening timestamp of connections and streams.
v0.5.7
Extends the ConnectionManager interface to support querying for protected peers; see #158.
... (truncated)
Commits
ef6e277 fix: make timestamps strictly increasing (#201)
e5b6740 ci: use github-actions for compatibility testing (#200)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps github.com/libp2p/go-libp2p-core from 0.5.3 to 0.8.6.
Release notes
Sourced from github.com/libp2p/go-libp2p-core's releases.
... (truncated)
Commits
ef6e277
fix: make timestamps strictly increasing (#201)e5b6740
ci: use github-actions for compatibility testing (#200)aec4faa
sync: update CI config files (#189)d0fb9ba
remove minimum Go version from README (#199)525a0b1
remove flaky tests (#194)286b97a
reduce default timeouts to 15s (#192)becdcea
fix benchmark of key verifications (#190)ea8b369
fix staticcheck errors (#191)cfab100
doc: document Close on Transport (#188)11f3c3a
add a helper function to go directly from a string to an AddrInfo (#184)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)