buzz-pair: panics on wss:// relays — rustls CryptoProvider never installed
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 92/100
Hướng nghiên cứu
Bắt đầu với crates/buzz-pairing-cli/Cargo.toml và điểm vào chính, sau đó so sánh cấu hình rustls trong crates/buzz-cli/src/lib.rs với comment về dependency của nó. Xác minh rằng cấu hình provider khớp với các crate cùng nhóm, rồi chạy các lệnh source và target đã được ghi rõ đối với một relay wss:// và xác nhận handshake hoàn tất mà không xảy ra panic.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
buzz-pair panics on any wss:// relay because no rustls CryptoProvider is installed. Since the subcommand defaults to wss://relay.damus.io, the documented quick-start fails out of the box.
Repro
cargo build --release -p buzz-pairing-cli
./target/release/buzz-pair source --relay wss://relay.damus.io
Actual
The QR URI prints, then:
Waiting for target to scan QR code...
thread 'main' panicked at rustls-0.23.42/src/crypto/mod.rs:249:14:
Could not automatically determine the process-level CryptoProvider from Rustls crate features.
Call CryptoProvider::install_default() before this point to select a provider manually, or make
sure exactly one of the 'aws-lc-rs' and 'ring' features is enabled.
ws:// URLs are unaffected, so it reproduces only against TLS relays — i.e. every real one.
Cause
The sibling binaries install the provider explicitly; buzz-pairing-cli does not. Compare crates/buzz-cli/src/lib.rs:
let _ = rustls::crypto::ring::default_provider().install_default();
and the comment on buzz-cli's own rustls dependency explaining why a direct dep with the ring feature is needed (feature unification across the workspace otherwise leaves rustls unable to pick a provider).
Fix
Same two changes as the sibling crates — add to crates/buzz-pairing-cli/Cargo.toml:
rustls = { version = "0.23", default-features = false, features = ["ring", "std"] }
and at the top of main():
let _ = rustls::crypto::ring::default_provider().install_default();
Verified locally: after this, source/target complete a full handshake over wss://.
Environment
- Commit
4cd82f5(main, 2026-09-13) - macOS 26.6.2, arm64, toolchain via hermit
- Ngôn ngữ chính
- Rust
- Star
- 36.2k
- Fork
- 4.8k
- Merge trung bình
- 1 ngày 11 giờ
- Pull request đã merge (30 ngày)
- 249
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của block/buzz
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
block/buzz#8492 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Mobile: show Topic, then Purpose, when a channel has no DescriptionCó thể đã có người làm @chkdesign đã nhận 6 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
FavioVazquez/mollify#62 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 61/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
fendouai/awesome-deepseek-harness#125 ·
Maintainer thường phản hồi trong vòng 4 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
rust-embedded/heapless#694 ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày