owned this note
owned this note
Published
Linked with GitHub
# rust-libp2p open maintainers call
## 2023-12-18
- Change in maintainers
- https://github.com/libp2p/rust-libp2p/discussions/5007
- https://blog.eizinger.io/48326/maintaining-rust-libp2p-beyond
- Gossipsub backpressure
- https://github.com/libp2p/rust-libp2p/pull/4914
- Bandwidth
- Yamux improvements https://github.com/libp2p/rust-yamux/pull/176
- Open maintainers call
- Next
- one after Thomas
- https://github.com/libp2p/rust-libp2p/issues/4912
- Autonatv2: https://github.com/umgefahren/rust-libp2p/pull/1
## 2023-12-05
- upcoming Yamux stream receive window auto-tuning implementation https://github.com/libp2p/rust-yamux/pull/176
- https://github.com/libp2p/test-plans/blob/master/perf/README.md
- https://github.com/libp2p/rust-libp2p/pull/4970/
- Gossipsub heads up
- https://github.com/libp2p/rust-libp2p/pull/4914
- https://github.com/libp2p/rust-libp2p/blob/0f98c98ca3aff66a2a53f8dfbe7106cf3e6fde1f/protocols/gossipsub/src/behaviour.rs#L257-L259
- validate PeerId in security handshake
- https://github.com/libp2p/rust-libp2p/pull/4864
- Andrew working on address sharing
- https://github.com/libp2p/rust-libp2p/pull/4371
- https://matrix.to/#/#libp2p-implementers:ipfs.io
- ConnectionHandler close
## 2023-11-21
- Developer experience around in-flight requests waiting for an outbound stream
- https://github.com/libp2p/rust-libp2p/pull/4901#pullrequestreview-1739662685
- https://github.com/libp2p/rust-libp2p/pull/4834
- Gossipsub backpressure and message priority
- https://github.com/libp2p/rust-libp2p/issues/4667
- https://github.com/libp2p/rust-libp2p/pull/4875
- https://github.com/libp2p/rust-libp2p/pull/4811
- https://docs.rs/futures/latest/futures/channel/mpsc/struct.Sender.html#method.try_send
- Autonat:
- "new public address" event
- "ExternalAddrExpired" event
- https://github.com/libp2p/rust-libp2p/issues/4863
- port-reuse
- https://github.com/libp2p/rust-libp2p/pull/4568/
- multiple addresses
- https://github.com/libp2p/rust-libp2p/issues/4873
- grant
- https://github.com/filecoin-project/devgrants/issues/1421
- PR:
- https://github.com/umgefahren/rust-libp2p/pull/1
- Screencast
- https://www.youtube.com/watch?v=bz4Y_HwyEqM&t=1837s
- Migration from 0.50 to 0.53
- https://github.com/n0-computer/beetle/blob/3e137cb2bc18e1d458c3f72d5e817b03d9537d5d/iroh-bitswap/src/protocol.rs#L207-L231
- https://github.com/n0-computer/beetle/blob/3e137cb2bc18e1d458c3f72d5e817b03d9537d5d/iroh-bitswap/src/handler.rs#L310
- https://docs.rs/futures_ringbuf/latest/futures_ringbuf/index.html
- https://docs.rs/libp2p-swarm-test/latest/libp2p_swarm_test/index.html
- Quic address translation
- https://github.com/libp2p/rust-libp2p/pull/4896
- Endpoint-independent NAT
## 2023-10-24
- automated hole punching
- https://github.com/libp2p/rust-libp2p/pull/4549
- SwarmBuilder
- https://docs.rs/libp2p/latest/libp2p/struct.SwarmBuilder.html
- stream muxer metrics
- jxs: [quic metrics improvement](https://github.com/sigp/lighthouse/pull/4870)
- SwarmBuilder::with_metrics?
- bootstrapping the network (Kademlia bootstrap())
- idle connection timeout
- https://docs.rs/libp2p/latest/libp2p/swarm/struct.Config.html#method.with_idle_connection_timeout
- https://github.com/libp2p/rust-libp2p/pull/4595
- https://github.com/libp2p/rust-libp2p/pull/4675/files
- AutoNat V1/V2 and DCUtR questions
- request response
- https://github.com/libp2p/rust-libp2p/pull/4701
- network bandwidth impacts of libp2p
- https://github.com/libp2p/test-plans/tree/master/perf
- https://observablehq.com/@libp2p-workspace/performance-dashboard
- https://github.com/libp2p/rust-yamux/issues/162
- https://en.wikipedia.org/wiki/Bandwidth-delay_product
- quic warning:
- quinn discarding possible duplicate packet
- parse multiaddr: https://github.com/multiformats/rust-multiaddr/pull/99
## 2026-10-10
- Write yamux header and body into single TCP packet where possible: https://github.com/libp2p/rust-yamux/pull/168:
- Thomas: Suggest `poll_write_vectored` credit to Hannes
- Discuss changes to the Transport trait: https://github.com/libp2p/rust-libp2p/pull/4568
- No heuristic in libp2p-swarm
- port-reuse by default
- PortUse::New is guaranteed
- PortUse::Reuse is best effort (e.g. can not happen if one does not have a listen or an ongoing dial yet)
- All transports need to create a dedicated dial socket if no listener is present and PortUse::Reuse is given (see QUIC for reference)
- Report in ConnectionEstablished whether connection was a port-reuse or not
- Remove address_translation in favor of emitting candidate in identify only if connection use PortUse::Reuse
- v0.53
- Get SwarmBuilder in first ✅️
-
## 2026-09-26
- litep2p, opinionated Rust libp2p implementation, https://github.com/altonen/litep2p
- QUIC on Ethereum Consensus network
- Automating point releases: https://github.com/libp2p/rust-libp2p/discussions/4541
- non_exhaustive: https://github.com/libp2p/rust-libp2p/discussions/4543
- Planning v0.53 release: https://github.com/libp2p/rust-libp2p/issues/4545
- Polkadot upgrading to v0.52 https://github.com/paritytech/polkadot-sdk/pull/1631
- New label-structure and "project management"
- Working hole-punch interop tests: https://github.com/libp2p/test-plans/pull/304
- Substrate performance
- Swarmbuilder https://github.com/libp2p/rust-libp2p/pull/4120
- ConnectionHandler refactorings https://github.com/libp2p/rust-libp2p/issues/2863
- Feature branch for AutoNATv2 and all the changes belonging to it
- Throughput tests
- TCP
- https://github.com/libp2p/rust-yamux/issues/162
- QUIC
- https://github.com/libp2p/rust-libp2p/pull/4382/files
- Perf
- https://github.com/libp2p/test-plans/tree/master/perf
- https://github.com/libp2p/test-plans/pull/276
## 2023-08-29
- Eiger
- Celestia
- https://openmina.com/
- Native WebTransport
- https://github.com/libp2p/rust-libp2p/pull/4348
- Poll style
- https://github.com/libp2p/rust-libp2p/blob/master/docs/coding-guidelines.md
- Upcoming events
- Protocol Berg https://protocol.berlin/
- IETF Prague https://www.ietf.org/how/meetings/118/
- Warsaw blockchain week
- devconnect
- Lab week 2023 https://23.labweek.io/
- Peer store
- Should it be a read-only interface for users to query connections and addresses?
- Or should it enrich dials?
- https://github.com/libp2p/rust-libp2p/issues/4103
- https://github.com/libp2p/rust-libp2p/issues/4302
- NAT testing: How important is running on non-Linux hosts?
- https://github.com/containernet/containernet ?
- Kademlia disjoint paths
- https://discuss.libp2p.io/t/s-kademlia-lookups-over-disjoint-paths-in-rust-libp2p/571/3
- Yamux (set_max_num_streams)
- Quic known bugs
- https://github.com/libp2p/rust-libp2p/issues/3419
- original comment: https://github.com/libp2p/rust-libp2p/pull/4262#issuecomment-1658132156
- QUIC in Ethereum
- https://github.com/sigp/lighthouse/pull/4577
- https://github.com/ethereum/consensus-specs/issues/3490
- https://github.com/libp2p/specs/issues/553
- UPnP PR branch
## 2023-08-15
- ed25519 RUSTSEC
- https://github.com/libp2p/rust-libp2p/issues/4327
- Promotion of `libp2p-quic` to stable release
- https://github.com/libp2p/rust-libp2p/pull/4325
- Let's test UPnP
- https://github.com/libp2p/rust-libp2p/pull/4156/
- Ethereum discv5 nat hole punching
- https://github.com/ethereum/devp2p/pull/231
- https://github.com/sigp/lighthouse/blob/stable/beacon_node/lighthouse_network/src/discovery/mod.rs#L925C1-L925C61
- Autonat
- how to select servers properly? connection limits per peer could prevent sending probes.
- connection limit per peer
- https://github.com/libp2p/rust-libp2p/pull/4224
- Bootstrap node
- how to prevent DDoS? Correct settings, machine resources for 20K connections.
- https://github.com/libp2p/rust-libp2p/tree/master/misc/memory-connection-limits
- Istanbul 2023
- https://devconnect.org/
- https://events.plnetwork.io/
-
## 2023-08-01
- Kademlia modes (Shamil)
- A lot of unexpected messages like "Remote {} now supports our kademlia protocol"
- Filecoin Grant of Hannes
- https://github.com/filecoin-project/devgrants/issues/1421
- AutoNATv2 implementation plans
- Fine by me. Though needs some refactorings within libp2p-core see https://github.com/libp2p/rust-libp2p/issues/3900 and https://github.com/libp2p/rust-libp2p/issues/4226.
- Milestones
- end-to-end PoC
- Adjust Transport::dial
- Implement AutoNATv2
- Adjust all Transport and NetworkBehaviour implementations
- WebTransport
- Kademlia improvements
- Relay modes similar to kademlia modes: https://github.com/libp2p/rust-libp2p/issues/4260
- Performance testing by Parity
- https://github.com/libp2p/rust-libp2p/discussions/3840
-
- QUIC via quinn in rust-libp2p :tada:
- https://observablehq.com/@libp2p-workspace/performance-dashboard
- WebRTC via web-sys in WASM: https://github.com/libp2p/rust-libp2p/pull/4248
- Tracing: https://github.com/libp2p/rust-libp2p/issues/1533
- Yamux PR is passing! https://github.com/libp2p/rust-libp2p/pull/3013
- NAT testing
- https://github.com/libp2p/go-libp2p/pull/2443
- https://github.com/mininet/mininet
- https://github.com/canndrew/netsim
## 2023-07-20
- Hole punching testing
- https://github.com/libp2p/test-plans/issues/116
-
- Dialing behavior https://github.com/libp2p/rust-libp2p/pull/4189
- Milestone https://github.com/libp2p/rust-libp2p/milestone/7
- Multiaddr without peerId? (Handshake) --> why isnt the pool exposed?
- https://github.com/libp2p/rust-libp2p/blob/b18c77e21c2f97f838ad48116df6cdd704388152/swarm/src/dial_opts.rs#L100-L106
- Pool connection info and ConnectionLimit behaviour discrepancies
- Kademlia:
- what are the pending addresses?
- how unreachable addresses are evicted?
- Is there something like "transport level ip block"?
- https://github.com/libp2p/rust-libp2p/pull/3814
- https://github.com/libp2p/rust-libp2p/issues/3669
- IPFS bootstrap node
- Transport::dial(DialConfig { port: NewPort | ReusePort, role_override: Listener|Dialer })
- rust-yamux
- https://github.com/libp2p/rust-yamux/pull/168
- asynchronous codec
- https://github.com/mxinden/asynchronous-codec/pull/7
- https://github.com/rust-lang/rust-clippy/issues/11190
## 2023-07-04
- WebRTC inside WASM: https://github.com/libp2p/rust-libp2p/issues/4111
- Universal connectivity: https://github.com/libp2p/universal-connectivity
- https://github.com/libp2p/rust-libp2p/tree/master/interop-tests
- Misunderstanding in libp2p
- Confusion between protocols and routes
- Thomas: hole punching tests
- boot up single docker container
- multiple network namespaces in one container
- "it seems quite easy!"
- UPnP
- would this also be useful for hole punching test suite
- mxinden: I can't make the next one (18th of July). Mind if we move it from the 18th (Tue) to the 20th (Thu)?
- openmina using rust-libp2p libp2p-wasm-ext to bind to browser webrtc stack https://github.com/libp2p/rust-libp2p/issues/4111#issuecomment-1619540111
- autonatv2
- specification
- implementation
- https://github.com/libp2p/rust-libp2p/issues/3900
- Consider providing the info on reuse on each call to Transport::dial
- QUIC quinn https://github.com/libp2p/rust-libp2p/pull/3454
- Nothing major apart from error handling and the change in DCUtR example
- https://github.com/libp2p/rust-libp2p/issues/2883
- https://github.com/quinn-rs/quinn/pull/1219
- lenient publishing
- https://observablehq.com/@libp2p-workspace/performance-dashboard
- https://github.com/sigp/gossipsub-testground/pull/15#issuecomment-1590178187
## 2023-06-20
- https://github.com/libp2p/rust-libp2p/pull/4093
- Automatically detecting idle connections: https://github.com/libp2p/rust-libp2p/discussions/3353#discussioncomment-6144804
- H2 roadmap
- QUIC
- QUIC in eth2
- 0RTT
- Maybe WebTransport
- circuit relay vs hole punching tests
- Release blog post: https://github.com/libp2p/blog/pull/84
## 2023-06-06
- GossipSub
- https://github.com/libp2p/rust-libp2p/pull/3666/files
- Impact of QUIC https://observablehq.com/@mxinden-workspace/libp2p-performance-dashboard
- v0.52
- WebTransport WASM tested via test-plans
- QUIC hole punching
- https://github.com/libp2p/rust-libp2p/pull/3964/
- How about deciding on the 5-tuple only? Not on the peerid
- Client mode and impact for Subspace
- Never say never
## 2023-05-23
- rust-yamux poll_flush https://github.com/libp2p/rust-yamux/pull/156
- IPFS Camp 2023, 3-5 November, Bengaluru https://www.youtube.com/watch?v=w2uguWM3Hp0
- IPFS Thing
- libp2p at IPFS Thing 2023 https://blog.libp2p.io/2023-libp2p-IPFS-Thing-recap/
- Universal connectivity https://github.com/libp2p/universal-connectivity/
- all talks https://www.youtube.com/@IPFSbot/videos
- We need a new primitive
- Map style operations like HashMap<Key, T: Stream>
- Implements Stream<Item = (Key, Option<T::Item>)>
- impl Stream<Item = (K, E)> for (K, S) where S: Stream<Item = E> { }
- SelectAll<(K, S)>
## 2023-05-09
- IPFS Thing 2023
- recordings https://www.youtube.com/@IPFSbot/videos
- we will publish a blog post soon
- libp2p workshop https://github.com/thomaseizinger/libp2p-workshop
- rust-libp2p v0.52.0
- https://github.com/libp2p/rust-libp2p/milestone/6
- multiformats is the only pending thing https://github.com/multiformats/rust-multiaddr/pull/83
- https://github.com/libp2p/rust-libp2p/pull/3656
- https://github.com/multiformats/rust-multiaddr/issues/71#issuecomment-1536232123
- yamux
- interop failure with JS https://github.com/libp2p/test-plans/
- split the pr into breaking bit
- libp2p and HTTP
- spec and most of the discussions https://github.com/libp2p/specs/pull/508
- AutoNAT and TCP / QUIC
- https://github.com/libp2p/rust-libp2p/issues/3900
- roadmap
- https://github.com/libp2p/rust-libp2p/blob/master/ROADMAP.md
- cross behaviour/handler communication is merged https://github.com/libp2p/rust-libp2p/issues/2680
- Kademlia client mode happening soon https://github.com/libp2p/rust-libp2p/pull/3877
- stable QUIC to be tackled next https://github.com/libp2p/rust-libp2p/issues/2883
- Potentially move to str0m https://github.com/libp2p/rust-libp2p/issues/3659
- rust-libp2p and WASM
- hole punching
- upnp
## 2023-04-25
- rust-libp2p community call organization
- feat: enforce protocols to always be valid utf8 strings https://github.com/libp2p/rust-libp2p/pull/3745
- feat: report changes in supported protocols to ConnectionHandler https://github.com/libp2p/rust-libp2p/pull/3651
- feat: perf
- Universal connectivity
- feat: add connectivity tests for circuit v2 https://github.com/libp2p/test-plans/pull/147
## 2023-04-11
- IPFS Thing
- Gossipsub close connection PR: https://github.com/libp2p/rust-libp2p/pull/3625
- Bugfixes for relay
- Missing flush in copyfuture
- Wrong PeerId reported
- libp2p perf protocol
- multistream-select: Treat protocols as strings
- kademlia client-mode
- Sync discussion about backpressure between Thomas and Max sometime this week
- Easier debugging through instrumentation: tracing vs metrics
## 2023-03-28
- Connection timeout related to connection limit?
- Substreams and messages in Kademlia
- One stream per message
- Backpressue (in Kademlia):
- https://github.com/libp2p/rust-libp2p/issues/3078
- Max to write up an issue for Kademlia specifically
## 2023-03-14
- Release went well v0.51.1
- https://github.com/libp2p/rust-libp2p/discussions/3532
- Holding back via milestone https://github.com/libp2p/rust-libp2p/milestone/6
- Likely have the cross behaviour be the motivation for the breaking change
- Default parameter kademlia queries
- strange error can not assign a valid address (AddrNotAvailable (Cannot assign requested address"))
- subspace scraping via kademlia exporter https://github.com/mxinden/kademlia-exporter/issues/274
- https://github.com/libp2p/rust-libp2p/blob/master/ROADMAP.md
- https://github.com/libp2p/rust-libp2p/discussions/3603
## 2023-02-28
- IPFS Thing https://discuss.ipfs.tech/t/pre-registration-is-open-for-ipfs-thing-april-2023/15707
- v0.51.0 release
- QUIC pull request for us to use quinn directly https://github.com/quinn-rs/quinn/pull/1219/
- https://github.com/webrtc-rs/webrtc/issues/413
- libp2p perf protocol implementation
- https://github.com/mxinden/libp2p-perf/
- https://github.com/libp2p/rust-libp2p/pull/3508
- docker run -ti --rm --entrypoint perf-client mxinden/libp2p-perf --server-address /dns4/libp2p-perf.max-inden.de/tcp/4001
- docker run -ti --rm --entrypoint perf-client mxinden/libp2p-perf --server-address /dns4/libp2p-perf.max-inden.de/udp/4001/quic
- results from Nazar:
nazar-pc@nazar-pc:~> docker run -ti --rm --entrypoint perf-client mxinden/libp2p-perf --server-address /dns4/libp2p-perf.max-inden.de/tcp/4001
Finished run: Sent 10 MiB in 7.8186759 s with 10.231911518419635 MiBit/s and received 10 MiB in 7.96460177 s with 10.04444444433284 MiBit/s
nazar-pc@nazar-pc:~> docker run -ti --rm --entrypoint perf-client mxinden/libp2p-perf --server-address /dns4/libp2p-perf.max-inden.de/udp/4001/quic
Finished run: Sent 10 MiB in 13.62913457 s with 5.869778421301478 MiBit/s and received 10 MiB in 0.771775652 s with 103.6570663931751 MiBit/s
- results from Bogdan:
- TCP: Finished run: Sent 10 MiB in 8.043945519 s with 9.945368204078212 MiBit/s and received 10 MiB in 8.248628169 s with 9.698582401938792 MiBit/s
- QUIC: Finished run: Sent 10 MiB in 5.521185882 s with 14.489640760115238 MiBit/s and received 10 MiB in 14.410963279 s with 5.551329113202162 MiBit/s
- https://number-zero.notion.site/Why-is-Iroh-moving-away-from-libp2p-57838618157f43c280b1fec381546604
-
- Learning resources
- https://github.com/libp2p/rust-libp2p/tree/master/src/tutorials
- Introduction to libp2p https://www.youtube.com/watch?v=Sbd7odDFT1w
- https://docs.libp2p.io/concepts/introduction/overview/
- https://kademlia-exporter.max-inden.de/d/-avwMhsik/kademlia-exporter?orgId=1
## 2023-02-14
- IPFS Thing https://discuss.ipfs.tech/t/pre-registration-is-open-for-ipfs-thing-april-2023/15707
- FOSDEM recordings are online
- https://fosdem.org/2023/schedule/event/network_hole_punching_in_the_wild/
- https://fosdem.org/2023/schedule/event/network_p2p_browser_connectivity/
- New rust-libp2p user https://github.com/fleek-network/ursa a content delivery network
- https://dl.acm.org/doi/pdf/10.1145/2504730.2504752
- https://fleek.network/fleek-network.pdf?202212011428
- https://github.com/n0-computer/sendme
- Roadmapping
- What do you need from rust-libp2p?
- Nazar
- Backpressure
- https://github.com/libp2p/specs/pull/478
- https://github.com/mxinden/libp2p-perf/
- Kademlia async record store
- Kademlia backpressure
- Migrate to QUIC
- Move from WebSocket to WebRTC
- https://github.com/paritytech/substrate/pull/12529
- Thomas
- Cut out abstractions that we don't need, e.g. in and outbound upgrade, simplifying errors on connectionhandlers
- libp2p + HTTP
- https://github.com/libp2p/specs/pull/508
- Should it be on the rust-libp2p roadmap
- Request response in subspace
- https://github.com/subspace/subspace/blob/d68ca70babf8432f9b5b5faaca79ea3a28f1b06f/crates/subspace-networking/src/request_handlers/generic_request_handler.rs#L29-L35
- https://github.com/subspace/subspace/blob/d68ca70babf8432f9b5b5faaca79ea3a28f1b06f/crates/subspace-networking/examples/requests.rs#L37-L40
- Axum is doing a great job on API design https://crates.io/crates/axum
## 2023-01-31
## 2023-01-15
- Secure web sockets: https://github.com/libp2p/rust-libp2p/issues/3330
- Tracking issue for Transport initialization example https://github.com/libp2p/rust-libp2p/issues/3143
- Suggestion, remove T in favor of depedency on libp2p-dns and libp2p-tcp
- WebRTC
- Resolved out-of-band. Required to poll the Swarm for connections to make progress.
- ProbeLab offsite in Engelberg (Switzerland), resources worth reading
- RFM-16: Effectiveness of Bitswap Discovery Process https://github.com/protocol/network-measurements/pull/25/
- TODO find notification mechanism
- IPFS Thunderdome https://github.com/ipfs-shipyard/thunderdome
- Other IPFS related measurements https://github.com/protocol/network-measurements/tree/master/results
- Design and Evaluation of IPFS: A Storage Layer for the Decentralized Web https://arxiv.org/pdf/2208.05877.pdf
- https://github.com/libp2p/rust-libp2p/issues/2632#issuecomment-1371505349
- QUIC updates
- Wake Transport on new dial https://github.com/libp2p/rust-libp2p/pull/3306
- Closing of streams lead to errors thus identify failing https://github.com/libp2p/rust-libp2p/issues/3298
- https://en.wikipedia.org/wiki/Two_Generals%27_Problem
- Continuously deploy our master branch to rust-libp2p based IPFS bootstrap node
- Also worth testing Yamux patch via that node https://github.com/libp2p/rust-yamux/pull/142
- How to deal with connection errors: https://github.com/libp2p/rust-libp2p/pull/3307#issuecomment-1384885564
- https://github.com/libp2p/rust-libp2p/issues/2722#issuecomment-1221248941
- Introduce new interoperability test suite.
- Should we do a rust-libp2p v0.51.0 release soonish?
- Would like to get QUIC hotfixes for rendezvous and identify in
- https://github.com/libp2p/rust-libp2p/issues/2902#issuecomment-1381213313
- Bitswap client implementation
- Shrink Swarm API and empower NetworkBehaviours https://github.com/libp2p/rust-libp2p/issues/3314
- New user of rust-libp2p https://github.com/fleek-network/ursa
## 2023-01-03
- Any wishes for rust-libp2p in 2023?
- feat(kad): Limit number of active outbound streams https://github.com/libp2p/rust-libp2p/pull/3287
- Progress on rust-libp2p punchr (~50% success rate)
- rust-libp2p
- flush instead of close, or even none of either https://github.com/libp2p/rust-libp2p/issues/3298
- fix(quic): Identify /quic as QUIC address #3288
- punchr
- use keep_alive::Behaviour to await identify.
- prioritize QUIC connections to bootstrap nodes to learn QUIC external addresses.
## 2022-12-20
- Max has pager setup, thus no need to be online over the break.
- CI failures due to protoc installation rate limiting are slowing us down. Any quick fix ideas?
- Just add a token: https://github.com/subspace/subspace/blob/bfda79167fe3fc83d60786b3f55f944a8915e6aa/.github/workflows/rust.yml#L42-L43
- https://github.com/libp2p/rust-libp2p/pull/3258
- Kademlia backpressure: https://github.com/libp2p/rust-libp2p/discussions/3235
- quick fix: buffer outbound messages if we have more than 32 in flight at the moment
- introduce jitter for announcements to prevent them all triggering at the same time
- kademlia: API consistency between PUT record/provider and queries: Should we also remove quorums from PUT and have the user "stop" propagation once enough PUTs have been successful?
- QUIC failures wrapping with DNS
- Show off Kademlia exporter metrics
- kademlia-exporter.max-inden.de/
- Protocol upgrades
- https://github.com/libp2p/rust-libp2p/issues/2863
- https://github.com/libp2p/rust-libp2p/issues/3268
- connection management: https://github.com/libp2p/rust-libp2p/pull/3254
- Release automation?
- can we apply
- New workspace/dependency structure: https://github.com/libp2p/rust-libp2p/discussions/3072#discussioncomment-4394785
- No cyclic dependencies: https://github.com/libp2p/rust-libp2p/pull/3023
- IPFS Thing
- https://discuss.ipfs.tech/t/pre-registration-is-open-for-ipfs-thing-april-2023/15707
## 2022-12-06
- v0.50.0
- Prometheus and tracing metrics
- Testground
- punchr
- Is the version reporting correct?
- ConnectionManagement
- End of the year blog post
- quic
- webrtc
- Refactorings
- New users
- iroh
- Hole punching (20%)
- Conventional commits, semver bumps
- Coding guidelines
- punchr
- Blog post: Guidelines on designing a new protocol
- Connection management discussion: https://github.com/libp2p/rust-libp2p/pull/3099
- FOSDEM 2023
## 2022-11-22
- Polish punchr client for punching-month.
- https://discuss.libp2p.io/t/call-for-participation-nat-hole-punching-measurement-campaign/1690
- https://www.youtube.com/watch?v=bzL7Y1wYth8
- `from_fn` aka "easy custom protocols" aka "streaming-response" Demo?
- https://github.com/libp2p/rust-libp2p/pull/2852/
- Discuss how this interoperates with libp2p HTTP effort https://github.com/libp2p/specs/pull/477
- Can one update the state of a stream while it is streaming?
- What if the information to respond to a request on a stream is outside of libp2p?
- rust-libp2p v0.50.0
- https://github.com/libp2p/rust-libp2p/issues/3144
- https://github.com/libp2p/rust-libp2p/pull/3154
- https://github.com/libp2p/rust-libp2p/pull/2972
- Remove IntoConnectionHandler
- https://github.com/libp2p/rust-libp2p/pull/3099
- Bitswap in rust-libp2p
- https://github.com/libp2p/rust-libp2p/issues/2632
-
## 2022-11-08
- libp2p-yamux fix
- Patch release?
- https://github.com/rust-lang/rust/pull/93966
- https://github.com/libp2p/rust-libp2p/pull/3071/
- Price goes to Elena
- Thomas to ping @kpp, @melekes, @divergent-martian
- WakingVec
- Max to open issue
- webrtc
- Deterministic cert gen
- https://github.com/libp2p/rust-libp2p/issues/3049
- Reading on stream without writing
- Backpressure
- https://hackmd.io/xoHKlFuER0OVj1DGDuFROw?edit
- https://github.com/libp2p/rust-libp2p/issues/3078
- bitswap
- Minimal version
- Spec compliance OR/AND go compliance?
- Update spec or go implementation
- https://github.com/n0-computer/iroh/tree/main/iroh-bitswap
- Moving the bytes WG
- new sync protocol with new protocol id
- https://lu.ma/8kk9i628
- User announce list / issue /
- rust-libp2p
- metrics
- More are always welcome
- kademlia-exporter.max-inden.de/
- inject replaced with on_
- https://github.com/libp2p/rust-libp2p/pull/2867
- Misc
- https://thume.ca/2019/07/14/a-tour-of-metaprogramming-models-for-generics/
## 2022-10-27
- WebRTC status
- Deterministic certificate generation: https://github.com/libp2p/rust-libp2p/issues/3049
- Project Management
- Project board
- Labels on GitHub issues
- ...
- mxinden suggestion
- Labels
- important
- urgent
- Everything > 1h needs an issue
- Stream limits https://github.com/libp2p/rust-libp2p/pull/2878
- See also https://hackmd.io/pRhSrlxzQ1SsknWSkfeJtw?edit
- I (mxinden) still have to distill the above into GitHub issues
- quick-protobuf vs rust-protobuf:
- https://github.com/libp2p/rust-libp2p/pull/3066
- https://github.com/libp2p/rust-libp2p/pull/3050
- Circular dependencies in our workspace: https://github.com/libp2p/rust-libp2p/issues/3053
- When mergify? https://github.com/libp2p/rust-libp2p/pull/3026
- a possible Kademlia bug: https://github.com/libp2p/rust-libp2p/issues/3048
## 2022-10-11
- João starting yesterday (35-40h)
- https://github.com/jxs
- Bevy-style NetworkBehaviours / plugins
- https://github.com/libp2p/rust-libp2p/discussions/2938
- Roadmap
- https://github.com/libp2p/rust-libp2p/pull/2997/
- https://github.com/libp2p/go-libp2p/pull/1784
- Testground multi-dimensions
- https://github.com/libp2p/test-plans/issues/53
## 2022-09-26
- Lab Week https://labweek22.plnetwork.io/
- libp2p day First ever libp2p day Oct 30 @ Lisbon, Portugal! https://discuss.libp2p.io/t/first-ever-libp2p-day-oct-30-lisbon-portugal/1582
- IPFS camp https://2022.ipfs.camp/
- Tweet announcement https://twitter.com/libp2p/status/1566488520583254019
- Everyone is welcome to join. Stay tuned.
- Release process automation / Version bumping / Changelog entries:
- https://github.com/libp2p/rust-libp2p/issues/2902
- https://github.com/libp2p/rust-libp2p/discussions/2930
- libp2p-tls
- https://github.com/libp2p/rust-libp2p/pull/2945
- WebRTC
- QUIC
- Hole punching test results
- https://www.notion.so/pl-strflt/NAT-Hole-punching-Success-Rate-2022-09-08-Data-Analysis-a67ab92efd6e43259da28a3c000a559d
- https://discuss.libp2p.io/t/decentralized-nat-hole-punching-measurement-campaign/1616
- https://github.com/dennis-tra/punchr
### Actions
- Do research on what other big workspaces do.
- @mxinden: Look at `cargo release`.
- @thomaseizinger: Look into conventional commits and covector.
- https://github.com/jbolda/covector
- @thomaseizinger: Add "automatic releases via CI" to requirements in GH discussion
- @thomaseizinger: Include Pierre and Dami
- @elena-f9 move ecn support and fixing local address on quic to long-term
- @elena-f9 call for reviews on third attempt (minus tls part)
## 2022-09-12
- Lab Week https://labweek22.plnetwork.io/
- libp2p day First ever libp2p day Oct 30 @ Lisbon, Portugal! https://discuss.libp2p.io/t/first-ever-libp2p-day-oct-30-lisbon-portugal/1582
- IPFS camp https://2022.ipfs.camp/
- Tweet announcement https://twitter.com/libp2p/status/1566488520583254019
- Everyone is welcome to join. Stay tuned.
- Interoperability tests
- Merged https://github.com/libp2p/rust-libp2p/pull/2835
- https://github.com/libp2p/test-plans/pull/41
- Release process
- Manual today
- Magic python script
- Many steps required by contributors and maintainers
- We are reinventing the wheel. Other projects must have the same issues and likely automated it all.
- rust-libp2p v0.48.0 released
- https://github.com/libp2p/rust-libp2p/pull/2869
- WebRTC
- Outstanding tasks
- noise
- message framing
- Proposal: Generic StreamMultiplexer test suite
- Read after closing write side
- Backpressure
- ...
- https://github.com/libp2p/rust-libp2p/issues/508
- NetworkBehaviour::on_event
- https://github.com/libp2p/rust-libp2p/pull/2867
- https://github.com/libp2p/rust-libp2p/issues/1522
- file sharing example but abstract to be re-used by any user
- Have user provide closure that takes an event and a &mut Swarm
- User gets a channel where it can pass the user provided events into.
- https://github.com/comit-network/xmr-btc-swap/blob/master/swap/src/asb/event_loop.rs
### Actions
- Thomas to open an issue about automating the release process
## 2022-08-29
- Lab Week
- https://labweek22.plnetwork.io/
- IPFS Camp
- libp2p day (date yet to be determined)
- Question:
- Is there an example for an IPv4 & IPv6 dual-stack listening?
- No example. Should work with two calls to `Swarm::listen_on`, one with a 4 and one with a 6 address.
- WebRTC transport
- https://github.com/libp2p/rust-libp2p/pull/2622
- https://github.com/melekes/rust-libp2p/pull/1
- Guidelines on async/await Rust https://github.com/libp2p/rust-libp2p/pull/2780
- https://signal.org/blog/how-to-build-encrypted-group-calls/
- WebRTC RS discord https://discord.gg/jGUPbs3p
- swarm/: Support generic connection management through NetworkBehaviour
- https://github.com/libp2p/rust-libp2p/pull/2828
- swarm/behaviour: Inject events via single method
- https://github.com/libp2p/rust-libp2p/issues/2832
- https://seanmonstar.com/post/693574545047683072/pattern-matching-and-backwards-compatibility
- Add FromFn ConnectionHandler
- https://github.com/libp2p/rust-libp2p/pull/2852/
## 2022-08-01
- StreamMultiplexing
- https://github.com/libp2p/rust-libp2p/issues/2722
- https://github.com/libp2p/rust-libp2p/pull/2724
- Kademlia features
- https://github.com/libp2p/rust-libp2p/pull/2712
- https://github.com/libp2p/rust-libp2p/issues/2032
- Dependent on https://github.com/libp2p/rust-libp2p/issues/2680
- https://www.notion.so/pl-strflt/DHT-Overview-e4bc573eaf094efc8a0781de47262db6
- Bulk operations
- Optimizing timeouts
- Crawling the network repeatadly
- Potential streaming response protocol
- https://github.com/libp2p/rust-libp2p/issues/2657
- Can we compose NetworkBehaviours using StreamResponse
- Bitswap
- https://github.com/libp2p/rust-libp2p/issues/2632
- The two upcoming new transports https://github.com/libp2p/rust-libp2p/pull/2289 https://github.com/libp2p/rust-libp2p/pull/2622
- Designs for connection management https://github.com/libp2p/rust-libp2p/discussions/2118#discussioncomment-3134752
- The proposal for coding guidelines https://github.com/libp2p/rust-libp2p/pull/2780
### Action points
- Elena & Thomas pairing on QuicMuxer
- Max organize every two weeks
- Section on spawn