Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

buzz-pair: panics on wss:// relays — rustls CryptoProvider never installed

クローズ 初心者向け
#7,927 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@Bartok9 がすでに取り組んでいます。

2026年9月30日 から。

  • #7998 @Bartok9 による — オープン

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
92/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
rust
領域
cli, security

調査の方向性

crates/buzz-pairing-cli/Cargo.toml とメインエントリーポイントから始め、次に crates/buzz-cli/src/lib.rs の rustls の設定と、その依存関係に関するコメントを比較します。provider の設定が関連する crate と一致していることを確認し、その後、文書化されている source および target コマンドを wss:// リレーに対して実行して、panic なしに handshake が完了することを確認します。

索引モデルが issue の本文から書いたものです。

説明

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
主要言語
Rust
スター
35.9k
フォーク
4.8k
平均マージ
1日 13時間
マージ済み PR(30日)
254

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

block/buzz のほかの issue

block/buzz の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。