v0.4.7

最新
2026-06-02

Macのプールマイニングが、ノードのダウンロードも同期もなしで、すぐに使えるようになりました。

目玉はスピードです。プールモードでは、easyBTXがフルのBTX nodeをダウンロードしたり実行したりしなくなりました。プールマイニングにこれは必要なく、数ギガバイトのダウンロード、長い「準備中」の同期、そして時折のクラッシュを招くものでした。これからはアプリを開くと、支払いアドレスはすでに入力済みで、Macはすぐにマイニングを始めます。すでにeasyBTXをお使いの方は、これまでの支払いアドレスが自動で引き継がれるので、もう一度設定する必要はありません。

変更

  • MacのプールマイニングがフルのBTX nodeなしで動くようになりました。すぐに始まり、ダウンロードするブロックチェーンも、同期するものも、クラッシュするノードもありません。Macのソロマイニングは、プールマイニングに注力するため今はお休みしています。また戻ってきます。
  • 支払いアドレスがこれまでの設定から自動で入力されるので、アップデートで欄が空欄になることはありません。
  • マイニング速度がプールと同じ単位のN/sで表示されるようになり、アプリの数値がプールダッシュボードと一致します。
  • アプリは常に縦長のレイアウトで開くようになり、どの画面にも収まります。

追加

  • 取引履歴と支払い設定に、緑の「Get the BTX Wallet」ボタンを追加しました。単体のBTXウォレットへのリンクです。
  • プールモードでもう必要のない古いノードデータを削除して、ディスク容量を回復できるオプションの操作を追加しました。あなたのWalletに触れることはありません。

v0.4.6

2026-06-01

Macのプールマイニングがまた使えるように、そしてGPUのライブ統計パネル。

目玉は修正です。0.4.5で壊れたMacのプールマイニングがまた使えるようになりました。easyBTXをWindowsに対応させる過程で加えた変更が、Macを誤ったマイニングヘルパーに向けてしまい、マイニングが開始しなくなっていました。これでそれが元に戻ります。0.4.5にアップデートしてマイニングを開始できなかった方は、これで直り、Macは0.4.4とまったく同じように動作します。

修正

  • Macでプールマイニングがまた使えるようになりました。Windows版向けの0.4.5の変更が、Macのマイニングエンジンを誤ったヘルパーに向けてしまい、マイニングが開始しなくなっていました。0.4.4での動作に戻しました。

追加

  • About画面にGPUのライブ統計パネルを追加しました。使用率、クロック、電力、温度、メモリ、ファンを表示し、パネルを開いている間は更新され続けます。Macでは使用率、電力、温度を表示し、Windowsではお使いのNVIDIAカードから読み取った全項目を表示します。

vWindows 0.4.4

2026-05-31

easyBTXがWindowsに対応しました。

これは初めてのWindowsリリースです。easyBTXは、NVIDIA RTX 30シリーズ以降のGPUを搭載したWindows PCでBTXをマイニングできるようになりました。Mac版と同じ、ひとつのアプリ・ひとつのクリック・セルフカストディのやり方そのままです。NVIDIAのカードを用意し、受け取りアドレスを選べば、あなたのGPUがプールに加わります。Mac版(Apple Silicon、Metal、ソロまたはプール)はこれまでどおりです。

v0.4.4

2026-05-30

送金がまた使えるように、自分専用のマイニング統計、そしてより大きく落ち着いたウィンドウ。

0.4.3に続く的を絞ったアップデートです。目玉は修正です。直近のビルドで送金が誤解を招くメッセージとともに失敗することがありましたが、アプリからのBTX送金がまた使えるようになりました。あわせて、About画面に自分のマイニング統計が表示されるようになり、ポップアップウィンドウがすべて同じゆったりとした形で開き、取引のエクスプローラーリンクのコピーがワンタップになりました。

追加

  • あなたのマイニング:Aboutにプライベートな統計パネルを追加しました。これまでの合計マイニング時間、平均速度、承認されたShare、開始した日を表示します。あなたのMac上にのみ保存され、アップロードされることはありません。
  • 各取引に「リンクをコピー」ボタンを追加しました。ブロックエクスプローラーのリンクをコピーして、どこにでも貼り付けられます。

変更

  • About、設定、取引履歴、そして情報ポップアップが、より大きく統一された、読みやすいひとつのウィンドウで開くようになりました。
  • 設定のサイドメニューがすっきりしました。リンクのセクションから、公式のBTXプロトコルサイトと、別途ライブ価格サイト(第三者によるもので、投資助言ではありません。easyBTXはこれとは独立しています)にアクセスできるようになりました。

修正

  • アプリからのBTX送金がまた使えるようになりました。直近のビルドでは、アドレスに問題がなくても誤解を招く「アドレスを確認してください」というメッセージで送金が拒否されることがありましたが、これを修正し、エラーメッセージが実際の原因を伝えるようになりました。

v0.4.3

2026-05-30

一時停止と再開、より穏やかな再起動、プライバシーの向上、そしてあなたのMacをプールダッシュボードに。

このリリースは0.4.0のデザイン刷新を土台に、使い勝手を高める改善をまとめたものです。停止してもノードは温まったままで緑の「再開」が用意され、再起動後の長い「準備中」の待ち時間は止まっているように見えるのではなく自ら状況を説明するようになり、ワンタップで残高を隠せます。プールでマイニングしている方は、MacのライブなGPUの数値と設定した名前をminebtxダッシュボードに表示できるようになりました。

追加

  • 一時停止と再開。マイニング中はこのボタンが「一時停止」と表示され、その後は冷たい「開始」ではなく緑の「再開」になります。その間ノードは温まったまま保たれるので、そのまますぐに続けられます。
  • 残高の隣にプライバシー用の目のアイコンが付き、表示するまで残高をドットで隠します。画面共有中や人前にいるときに便利です。選択内容は記憶されます。
  • 残高の小数表示:8桁すべてを表示するか、ひと目で確認できる短い3桁にするかを選べます。これは表示が変わるだけで、保有額や送金額が変わることはありません。
  • 再起動後にノードが準備を整える間の、わかりやすいライブステータス。固まった「処理中…」の代わりに、プライベートな残高インデックスを再構築中であることを説明し、見込み時間と経過時間を表示し、ブロックチェーンはすでに最新であることを示します。
  • マイニング画面にCPU、GPU、プールかソロかのチェックを追加。MacがGPUでマイニングしていて、想定どおりに接続できているかをひと目で確認できます。
  • minebtxプールダッシュボード向けのライブなGPU読み取り値。easyBTXがMacのGPU使用率と電力をプールに報告するので(管理者権限は不要)、ワーカーが空欄ではなく実際の数値を表示でき、設定で付けた名前があなたのマシンを示します。
  • 長く起動し続けたインストール環境で、古い修復の残りファイルを片付ける静かなバックグラウンド処理。ディスク上に溜まらないようにします。

変更

  • 設定が現在のテーマで開くようになりました。以前は常にライトで表示されていましたが、今はアプリに合わせるので、ダークのアプリでは設定もダークのままです。
  • 設定のサイドバーレイアウトがすっきりし、テーマカードと「起動時のお気に入りレイアウト」の選択肢が付きました。
  • 情報ポップアップ(「マイニングの仕組み」など)が設定のスタイルに合わせて、よりゆったりとした落ち着いた、読みやすいウィンドウになりました。

修正

  • 設定のアップストリームソースパネルが、すべての行で「最新版を取得できません」と表示されなくなりました。再び実際の最新バージョンを取得します。

v0.4.0

2026-05-29

新しいデザインとなり、プールマイニングも外部ウォレットに報酬を支払うようになりました。

easyBTXのデザインが刷新されました。デフォルトは広い「コントロールルーム」ウィンドウで、すべての情報が3つの落ち着いたカラムに配置されます。ノードがライブ情報で満たされても、画面下部に表示が溢れることはありません。新しいテーマ切り替えも追加されました。ダークがデフォルトのままで、お好みでライトを選択でき、システムを選ぶとMacの設定に従って自動で切り替わります。またプールマイニングでも外部支払いアドレスが有効になり、ソロマイニングと同様に使えるようになりました。コインの鍵を持たないノートPCでもマイニングが可能です。

追加

  • 新しい広い「コントロールルーム」レイアウトがデフォルトに。左にステータス画面、中央にマイニング表示・電力・Wallet、右にライブネットワークとプールの数値。従来のTall、Compact、Miniの各レイアウトは引き続きワンクリックで利用できます。
  • ダーク、ライト、システムの3テーマを搭載。ダークがデフォルトです。ライトを好む場合はそちらを選択でき、システムを選ぶとMacの設定に合わせて自動切り替えします。選択内容は記憶されます。
  • 設定内の各セクション(Node、Mining、外観、データ保存先、Wallets、支払い、バックアップ、アップデート、メンテナンス、新しいアカウント、アップストリーム、リンク)へのクイックボタンを追加。タップするだけでそのセクションに直接ジャンプできます。

変更

  • プールマイニングでも、外部支払いアドレスを設定している場合は報酬がそのアドレスに送られるようになりました。以前はソロマイニングのみ対応していました。いずれの場合も、コインがこのMacのWalletに触れることはないため、ノートPCが侵害されても鍵が漏洩することはありません。
  • easyBTXのツール手数料がマイニング報酬の4.99%になりました(以前は3.5%)。引き続き時間分割で徴収され、事前に開示されます。プール自身の手数料(2.5%)は変わらないため、プールマイニングの合計は約7.5%となります。残りはすべてあなたのWalletに入ります。
  • 設定画面がすっきりとしたタイル形式になり、スペースがある場合は横並びで表示されます。ライト・ダーク両モードで読みやすいレイアウトです。
  • 「Audit / Overview」の名称が「Transactions(取引履歴)」に変わりました。
  • セットアップチェックリストがより明確になりました。各ステップは、完了したことを示す緑のチェックマークと明確なラベル(「BTX nodeとチェーンをダウンロード済み」「ノードを最新ブロックに同期済み」「マイニング中」など)で表示されます。オレンジのTOD表示のままではなくなりました。
  • ヘッダーのeasyBTXのワードマークが少し大きくなり、バーが若干スリムになりました。

修正

  • 「ディスク容量を回復」が解放した実際の容量を正しく報告するようになりました。大きな一回限りのスナップショット分も含まれます。以前は過少報告し、残りを次回起動時に静かに解放していました。
  • ディスク容量の回復や再起動後に、ノードが「ブロック0/0」にリセットされたように見える問題を修正しました。確認中も元の位置を記憶して表示するようになり、最初から同期し直しているように見えることはなくなりました。
  • 回復済みの同期完了ノードが、回復または再起動後の起動時に長時間待機する問題を修正しました。

v0.3.1

2026-05-29

ノードが追いつき中でも壊れているように見えることはありません。easyBTXをしばらく閉じていたり、強制終了(クラッシュ、強制終了、実行中のアプリの置き換えなど)した後、次回アプリを開いたときにノードが追いつくまで数分かかることがあります。以前はその追いつき時間を実際の問題と誤認してエラーを表示することがありました。現在は落ち着いて待機し、状況を表示しながら、WalletとコインはそのままにしておきT。ノードが追いつき中の間は、修復を提案することはありません。特に何もする必要はありません。

修正

  • ノードが追いつき中のときに起動エラーが表示されなくなりました。データを処理中のノードと実際に停止したノードを区別するようになりました。
  • ノードが追いつき中の間は、破壊的な「ノードを修復」アクションが表示されなくなりました。本物の破損シグナルがあるか、ノードプロセスが実際に終了した場合のみ表示されます。
  • 回復済みノードがチェーンをディスク上にすでに持った状態でウォームアップ中の場合、「BTX nodeとチェーンをダウンロード」という幽霊ステップが表示されなくなりました。セットアップチェックリストが実態と一致するようになりました。
  • 正常なノードを打ち切ることのある固定タイムリミットを削除しました。実際に進捗しているノードには、完了するのに必要な時間が与えられます。

改善

  • ノードが追いつき中の間、より明確で落ち着いたメッセージを表示するようになりました。通常の数分間の待機が障害のように見えないようになっています。
  • 起動時や回復時にWalletとコインが変更されることはありません。easyBTXは保存済みスナップショットからチェーンデータを復元するものであり、鍵には触れません。

内部の変更

ノードがしばらくオフラインだった後や、クリーンでないシャットダウン後に再起動する場合、リクエストに応答できるようになる前に内部状態の一部を再構築します。その間、ノードは起動して動作していますが、「まだウォームアップ中」というステータス(RPCコード-28、HTTP 500で返される)で応答します。以前のバージョンはこれを完全な障害として扱い、固定の360秒後に諦めていました。これにより、まったく正常なノードがエラー画面に追い込まれ、破壊的な修復ボタンまで表示されていました。0.3.1では、起動プローブを3つの状態に分類します。準備完了、ウォームアップ中、または利用不可です。ウォームアップ中のノード(-28ステータス、またはノードログが再構築中を示す場合)は「待機継続」として扱われ、完了するための十分な猶予時間が与えられます。まったく応答しないノードは引き続き適切な時間で諦めます。破壊的な修復パスは、常に使用していたのと同じ破損確認シグナルの背後に保たれるため、本当に問題があるときのみ実行され、起動が遅かっただけで実行されることはありません。すべての回復安全ルールは変更なし。Walletは常に保持され、損傷したデータは削除ではなくアーカイブされ、回復は起動ごとに最大1回のみ実行され、ディスクがいっぱいの場合は実行を拒否します。

配信

既存の0.3.0インストール環境に、アプリ内アップデーターを通じて自動配信されます。ローカルでビルドおよび公開されています。未署名のインディービルドです。AppleによるNotarizationはロードマップに含まれています。

v0.3.0

2026-05-28

「プールコンプライアンスと透明性」リリース。shibs dexbtxプールが2026-05-27にv5へ移行し、必須のpre_hash_block_tier_v18ケイパビリティゲートと、session_idおよびリグごとのハードウェアフィンガープリントを持つ新しいmining.subscribe拡張dictが追加されました。easyBTX v0.2.0は必要な3フィールドのうち2つのみを送信していたため、MacワーカーはプールにはTできましたが、ワーカーダッシュボードには表示されませんでした。v0.3.0では完全なv0.3.xハンドシェイクを実装し、リグごとのライブダッシュボード行を解除するworker.report_metricsハートビートを追加しました。またプールが各リグに割り当てる正式名称も表示されるようになり、ユーザーが/statsで自分のMacの行を確認できます。さらに最初のオプトインセルフカストディ機能として、ソロマイニングの報酬をこのMacに鍵を持たない外部BTXアドレスに支払えるようになりました。加えて、v0.2.0ユーザーからTelegramで寄せられた要望に応えた多くのUX改善も含まれています。cargo test: 195/195。tsc --noEmit: クリーン。cargo build --release + npm run build: 両方グリーン。

重大な修正

  • Macワーカーのdexbtxプールへの登録が復元されました。 mining.subscribeが完全なv0.3.x拡張dictを送信するようになりました。protocol_compliant: ["pre_hash_block_tier_v18"]、既存のハードウェアフィンガープリント(solver_env: {BTX_MATMUL_BACKEND: "metal"}を含む拡張版)、およびセッションごとのsession_id(32文字の小文字16進数で、参照マイナーのuuid.uuid4().hex形式に準拠、SHA256("easybtx-session:" || nanos || pid || counter)で生成されるため連続セッションで衝突しない)が含まれます。session_idがない場合、v5プールはMacワーカーをダッシュボードとTelegramボットの/statsから静かに除外していました。mining.set_canonical_nameが処理されるようになり、割り当て結果が~/.easybtx/canonical_names.jsonに保存されます。プールが割り当てたラベル(例:M2_PRO-BRAVO-1)は再接続後も保持されます。UIの「このマシンのワーカー:」の行には、ラベルが届いた直後に表示されます。
  • ノードのアップデートに8分かかる問題が解消されました。 NodeController::stopが最大90秒間Child::try_waitをポーリングしてから、フォールバックとしてSIGKILLを送るようになりました。以前は即時のkillがbtx1zシールド状態LevelDBのフラッシュ中に実行されていたため、フライト中のミューテーションマーカーが残り、次回起動時にEnsureShieldedStateInitialized: rebuilding full shielded state from chainが発生していました(実測で7分57秒)。クリーンな終了ではマーカーが残らず、起動は約1秒に戻ります。
  • 「ノードを修復」の隔離フォルダが際限なく肥大化する問題が修正されました。 新しいprune_old_quarantinesが7日以上経過した_corrupt-*および_preserve-*ディレクトリを削除します。各パターンの最新のものは1つだけフォレンジクス用に残されます。アプリ起動時(過去のセッションから残った隔離フォルダを処理)と、各repair_node終了時(以前の修復から残った隔離フォルダを処理)に実行されます。メンテナーのマシンでは1つの古い_corrupt-*フォルダが42 GBを占有していました。保持ロジックのユニットテストを6件追加しました。

外部支払い(オプトインのセルフカストディ)

  • ソロマイニングの報酬を、このMacに鍵を持たない外部BTXアドレスに支払えるようになりました。 設定の「Miningの支払い先」セクションが新設されました。デフォルト(報酬はこのMacのローカルWalletに入る)のままにするか、ハードウェアウォレット、スマートフォンウォレット、コールドアドレスなど、ほかで管理しているアドレスに転送するかを選択できます。目的はカストディです。マイニングボックスへの現実的な脅威は同一ユーザーコードの実行(ユーザーが騙されて実行してしまうAMOS型スティーラーなど)であり、24時間365日マイニングし続けるマシン(多くは旧ノートPCを流用)はソフトターゲットです。報酬を外部アドレスに転送することで、積み上がったコインはマイニングマシンに最初から鍵を持たずに済みます。貼り付けられたアドレスはIPCバウンダリでフォーマット検証されます(bech32、btx1z...ポスト量子プレフィックスに対応。ネットワーク間違いの貼り付け、前後の空白、b/i/oなどの同形文字を検出)。ライブ「フォーマットをテスト」ボタンも利用できます。ノードが起動中であれば、validateaddress RPCが完全なチェックサム検証を行います。
  • 開示済みの3.5%開発手数料は変わりません。 支払いエンジンは、旧来の二値ユーザー/開発者FeeAccrualから、開発手数料を必須の受取人として持つN受取人加重ラウンドロビン(PayoutScheduler)に刷新されました。1000~2000チャンクにわたって実際の開発手数料シェアが3.5%に収束することをユニットテストで確認済みです。外部支払いを追加しても分割比率は変わりません。
  • このリリースではソロのみ対応、アプリがその旨を明示します。 v0.3.0では外部支払いのルーティングはソロマイニングのコインベースのみです。プール報酬は引き続きローカルWalletに入ります(外部プール支払いはv0.3.2で対応予定)。外部支払いが設定されていてかつプールモードの場合、メインビューに赤いバナーが表示されます。また「ソロからプールへ」の切り替えダイアログでも注意事項が繰り返されるため、セキュリティ意識の高いユーザーがプール収益もマシン外に出ていると誤解することはありません。
  • 「ローカルWallet」を選択すると完全に元に戻ります。 デフォルトのラジオボタンを選択すると、保存された分割設定(clear_payout_split)がクリアされます。フォームを非表示にするだけでなく、マイニングが以前に設定された外部アドレスへの支払いを続けることなく、即座にローカルWalletに戻ります。

プール / マイニングプロトコル

  • worker.report_metricsが60秒ごとにハートビートを送信します。 stratumのselectループに新しいtokio::time::intervalブランチが追加され、{session_id, timestamp, cpu_util_pct, ram_gb_used, gpus: [{gpu_uuid, util_pct, power_w, temp_c}], solver_nps, shares_session_total}を送信します。これにより、プールダッシュボードでリグごとのCPU、RAM、Share数がレンダリングされます。CPU%とRAM使用量は、実際の4秒間のtokio::time::timeoutを持つ非同期サブプロセスで実行されるtop -l 1 -n 0の1回の呼び出しから取得されます。そのためハングしたtopがstratumリーダー、ソルバー子プロセス管理、またはプールsubmitを停止させることはありません。macOSではpowermetricsにrootが必要なため(shibのmacOSメトリクスに関する注記より)、GPU使用率・電力・温度はJSON nullとして報告されます。ダッシュボードの行自体は表示され、ライブ計測フィールドのみダッシュが表示されます。
  • 「このマシンをプールダッシュボードで開く」をワンクリックで。 プールが正式名称を割り当てた直後から、既存のプールダッシュボードボタンがURLに?worker=<canonical_name>を付加するようになりました。現在ダッシュボードはSPAのため、クエリパラメータは前方互換性があります。dexbtxが後でリグごとのルーティングを追加した場合、アプリを更新しなくても機能します。
  • ハードウェアフィンガープリントにsolver_env: {BTX_MATMUL_BACKEND: "metal"}を追加。 これにより、プールのチューニング推奨エンジンがMacリグにCUDA専用のノブ(BTX_MATMUL_GPU_INPUTSBTX_MATMUL_SOLVE_BATCH_SIZEなど)を提案しないようになります。前方互換性あり。プールがサーバー側でキーをホワイトリスト管理しているため、現在のMetalのみの宣言は安全です。

UX

  • アップデートを見逃すことがなくなりました。 起動時のアップデートチェックで新しいバージョンが見つかった瞬間、ダッシュボード上部に目立つオレンジのバナーが表示されます。既存の隅のキューと並行して表示されます。「インストール」をクリックすると一度だけ確認が表示されます。「今後も起動時に自動的にアップデートをインストールしますか?」という質問です。誰も訪れない設定のチェックボックスより、意欲が高いタイミングで聞く方が効果的です。easybtx-autoupdate-askedフラグにより、ユーザーが断った場合は再度確認しません。起動時のアップデートチェックはfirst_run_setupの前に実行されるため、バナーは低速なノード起動が始まる前の約300ミリ秒で表示されます。
  • easyBTXが独自のBTX nodeを同梱していることが明確になりました。 「同期進捗98.5%」を見ながらTelegramチャンネルで「nodeはどうやって設定するの?」と質問したユーザーがいました。3つの小さなタッチポイントで、質問される前に答えられるようになりました。「マイニングの仕組み」モーダルが「easyBTXがBTX nodeを内部で実行します。別途セットアップは不要です」で始まるようになりました。セットアップステージのチェックリストが「BTX nodeとチェーンをダウンロード」「ノードを最新ブロックに同期」と表示されます。設定のNodeステータスセクションが「これらはそのnodeからのライブ読み取り値であり、リモートサービスではありません」という説明から始まります。
  • Walletのバックアップについて穏やかに促すようになりました。 BTXを実際にマイニングしており、かつまだバックアップしていない場合、残高の上に常設のアンバーバナーが表示されます。「今すぐ保存」をクリックすると設定が開き、「回復ファイルを保存」までスクロールされます。「後で」はその起動限りで非表示になります(次回起動時には再表示されます。一度の非表示でWalletを失うのは問題があるためです)。これは既存の初回セットアップ時のゲートとは別のもので、ユーザーが失うものを持つ前に発動していました。
  • マイニング電力スライダーが1行に。 ラベル、スライダー、MAXボタン、ライブ値が2行レイアウトから1行のflexレイアウトに統合されました。縦方向に約28px節約されます。ビットコインオレンジのアクセントカラーはそのままです。
  • 「最後のShare」がリアルタイムで更新されます。 Shareカウンターの相対時間が1秒ごとのsetIntervalで再レンダリングされます。3秒ごとのステータスポーリングの間でも止まらなくなりました。バッテリーの無駄な消費を防ぐため、document.hiddenの間は更新をスキップします。
  • 設定のアップストリームソースパネル。 easyBTXが基盤とするオープンソースコンポーネントの一覧(BTX node btxchain/btxv0.30.1にピン留め、MineBTX dexbtx/minebtx、Tauri v2、公開EasyBTX-releasesリポジトリ)が表示されます。各行には固定バージョンとGitHub APIからリアルタイムで取得した最新タグ、および「最新版」「アップデートあり」のバッジが表示されます。アップストリームの状況を把握するためのメンテナーダッシュボードです。5分間キャッシュされ、「更新」ボタンでキャッシュをバイパスできます。
  • Aboutモーダルにコミュニティシグナルを表示。 easyBTXのインストール数(GitHub Releasesのアセットダウンロード数の合計)、現在オンラインのプールマイナー数、過去24時間で見つかったブロック数、ネットワーク速度のライブタイルを表示します。モーダルを開いたときに更新され、60秒キャッシュされます。正直な表示として、「オンラインのマイナー」タイルには「easyBTX + 他のクライアントを含む」と表示されます。プールAPIがまだminer_versionでワーカーを区別していないためです。

ブランド

  • easyBTXの表記が散文中で一貫して小文字になりました。 README、CHANGELOG、NOTICE、docs/フォルダ全体で17箇所を修正しました。URLパス(MendeMatthias/EasyBTX-releases)、RustのEasyBtxState型、リリースパイプラインの成果物名(EasyBTX.dmgEasyBTX.app)は意図的にそのまま保持されています。

メンテナンス

  • ディスク容量不足の警告バナー。 UIの他の部分を動かすのと同じステータス更新で、3秒ごとに空きディスクを取得します。1 GB未満でアンバーの通知、500 MB未満で点滅の速い赤い通知が表示されます。どちらもRPCがダウンしているときでも表示されます。これが最も重要なタイミングです(btxdがFatal LevelDB error: No space left on deviceでクラッシュし、RPCに到達できず、ユーザーは理由を把握できません)。
  • 設定のメンテナンス「ディスク容量を回復」。 未使用のblockfiltercoinstats btxdインデックス、ポストロードのassumeUtxoスナップショットを削除し、debug.logが50 MBを超えていれば切り詰める、ワンクリックの容量回復機能です。データディレクトリを外部ボリュームに移動する準備ができていないときに使えます。

リリース前の強化

  • worker.report_metricsの収集が非同期になりました。 同期的なstd::process::Command::output()(タイムアウトなし、topの所要時間だけtokioランタイムワーカーをブロック)をtokio::process::Command + 実際の4秒間のtokio::time::timeoutに置き換えました。ハングしたtopがstratumリーダー、ソルバー子プロセス管理、またはプールsubmitを停止させることはありません。
  • メトリクスticでのプールステータスの単一ガード読み取り。 status.lock().awaitの2段階のlock/unlockを1つのガードスコープに統合しました。shares_acceptedhashpsは常に同じステータスtick世代で観測されます。

ドキュメント

  • docs/2026-05-28-btx-qid-self-custody.md. BTXシードに量子耐性を持つセルフカストディ型「qID」(パスキー + 2-of-3 Shamir/MPC分割)を根付かせるための調査と4段階計画書。上記の外部支払いアドレスを、後にユーザーがスマートフォンやパスキーで管理できるものにするためのものです。bonuz HQページのための将来計画であり、アプリのコードは依存していません。

v0.2.0

2026-05-28

「大規模監査」ポリッシュリリース。/csoセキュリティ監査と3エージェントによる機能バグ監査で、v0.1.13に4件のCRITICAL、10件のHIGH、13件のMEDIUM、および少数のLOW問題が発見されました。このリリースで一括修正しています。cargo test: 149/149。tsc --noEmit: クリーン。公開IPCは削除されていませんが、send_btxに明示的なsubtract_fee: boolパラメータが追加されました(フロントエンドのMaxボタンがこれを使用)。EasyBtxStateに3つの#[serde(default)]フィールドが追加され、旧来の状態ファイルも引き続き読み込めます。

重大な修正(データ消失・孤立プロセス・強制再同期)

  • データディレクトリ移動時の複数Walletの消去をブロックしました。 relocate_datadirsrc以下のすべてのWallet(wallet.datを含むディレクトリ)を列挙し、remove_dir_all(src)が実行される前に各Walletがdestに存在かつ空でないことを確認するようになりました。以前の97%サイズチェックはminer/wallet.datのみを検証しており、小さなセカンダリWalletの静かな消失を許容していました。
  • プールとMetalソルバーがアプリ終了時に適切にシャットダウンするようになりました。 stop_node_blockingpool_stopをシグナルし、3秒のタイムアウト付きでpool_handleを待機し(タイムアウト時はJoinHandleをabort)、プールステータスをクリアするようになりました。ソルバーCommand.kill_on_drop(true)が追加され、JoinHandleがドロップされたときに終了後にGPU 100%の状態を残さずにサブプロセスを回収します。
  • snapshot.datloadtxoutsetの成功前に削除されなくなりました。 新しい永続フラグEasyBtxState.snapshot_loadedは、loadtxoutsetが成功したとき(またはgetchainstatesがすでにスナップショットのchainstateを報告しているとき)のみ設定されます。すべてのdisk::reclaim_diskの呼び出し元は、setup_complete(RPC bindでフリップし、バックグラウンドのスナップショット読み込み前)の代わりにこの正確なフラグを読み取るようになりました。読み込み中にアプリを閉じてもスナップショットが消えてフルgenesisから再同期する事態は発生しなくなりました。
  • ソルバー出力ガードがnonceカーソルの崩壊を防ぎます。 solve_next_noncetries_used > 0 かつ nonce64_end >= solve_next_nonce(単調増加)の場合のみ進むようになりました。以前はnonce64_endが欠落した縮退した{"found":false}によりカーソルが1にリセットされ、重複Shareの送信(コード22)が発生していました。

高影響修正

  • repair_nodeが静かに「miner」Walletに切り替わる問題を修正しました。 wallet_rpcを再構築する前にstate.active_walletを読み取るようになりました(reclaim_disk_nowのパターンを踏襲)。PR #12でまだ適用されていなかったH1修正です。
  • move_datadir_toがexFAT / FATボリュームを拒否するようになりました。 list_external_volumesの警告がツールチップとしてのみ表示されるのではなく、移動の境界で強制されるようになりました。
  • apply_node_updateが実際に新しいbtxdバイナリに切り替えるようになりました。 以前は何もしていませんでした(新しいインストールが再利用されなかった)。新しいタグを永続化し(EasyBtxState.btx_release_tag)、実行中のコントローラーを停止して新しいバイナリで再起動します。check_node_updateget_node_statusが永続化されたタグを参照するため、アップデートバナーが貼り付いたままになることはなくなりました。
  • 解決中のntime変更によってnonceカーソルがリセットされます。 クリーンでないnotifyがntimeまたはmerklerootを変更した場合、次のsolveは新しいヘッダーの低nonceを読み飛ばすことなく、nonceウィンドウの先頭から再開されます。
  • clean_jobs=trueが終了直後のソルバーを古いsubmitに競合させることがなくなりました。 クリーンkillパスが死んだ子プロセスの標準出力を排出してsolving_jobをクリアするため、マイクロ秒遅れのソルバー結果はsubmitゲートで正常に失敗します。
  • _corrupt-<ts>のアーカイブ衝突によるチェーンの完全削除が不可能になりました。 マイクロ秒以下のタイムスタンプ + -Nカウンターが衝突を防ぎます。アーカイブのリネームに失敗した場合はErrを返してsrcをそのままにします(以前はフォールバックのremove_dir_all(src)が破損チェーンを永久に削除し、「決してハード削除しない」という約束を破っていました)。
  • プール手数料の計算がソロと同じ基準になりました。 停止・クリーンkill・期限切れの境界で、経過したkill時間が開発者のmined_secsとしてカウントされなくなりました。計上は、tries_used > 0の解析可能な出力があるソルバー待機ブランチでのみ行われます。停止チャーン下で3.5%の開発手数料が増大することはなくなりました。
  • 切断時のShare消失がUIに表示されます。 mining.submitの書き込みエラーがlast_event = "share lost (disconnect)..."を設定し、staleカウンターをインクリメントしてから再接続ループに戻るようになりました。
  • 不安定なネットワークで「developer fee window...」が固まる問題が修正されました。 累積試行時間の上限(300秒)により、1つの手数料ウィンドウが接続に失敗し続ける場合は、次のセッションをユーザーの支払いに強制切り替えします。
  • 外部ドライブのポインタが存在しない場合、起動時にデフォルトのデータディレクトリにフォールバックします。 以前は、ポインタ書き込みからソース削除の間にドライブが抜かれると、アプリが存在しないパスで固まっていました。

マイニング・プールの正確性

  • Subscribe / authorizeの失敗をログに記録してlast_eventに表示するようになりました(以前は静かに無視されており、プール側のスキーマ変更でUIフィードバックなしにプールマイニングが完全に停止することがありました)。
  • submit_idが接続時のエポックマイクロ秒から初期化されるため、再接続をまたいでIDが重複しなくなりました。
  • ソロ:Pausedtickの後、次のイテレーションは手数料バーストをスキップしてユーザーにマイニングします(不足分は次の一時停止解除tickに補われます)。同期一時停止のフラッピング中に単一のソロブロックが開発者アドレスに入ることを防ぎます。
  • スナップショットのidempotencyが、サイズが一致する既存のsnapshot.datをSHA検証するようになりました(以前は同じサイズの誤コンテンツファイルが検証なしに受け入れられていました)。

Wallet・送金・取引履歴のポリッシュ

  • Walletごとの受信アドレスが安定しました。 EasyBtxState.wallet_addressesが各WalletのアドレスをTし、do_switch_walletが切り替えのたびに新しいアドレスを生成する代わりにaddress_is_mineでそれを再利用します。
  • 監査・CSVエクスポートが最大10,000件のトランザクションに対応しました。 (以前の上限1,000件は、長期間使用したマイナーの古いエントリーを静かに切り捨てていました。)
  • 送金の「Max」が明示的なフラグになりました。 以前のsat許容ヒューリスティックではありません。フロントエンドがMaxクリックを追跡し、バックエンドのsend_btx(.., subtract_fee)がそれを尊重します。手動で残高ちょうどを送金しても静かに減額されることはなくなりました。
  • バックエンドのsend_btxが金額を検証して超過出金を拒否します。 有限でない値、ゼロ、負の値、amount > spendableはbtxdだけでなくIPCバウンダリで拒否されます。
  • backup_wallet_cmdが正規化できないパスを拒否します。 ..コンポーネントを含むパスも拒否します。以前の「正規化失敗時にスキップ」のギャップが解消されました。
  • 送金画面でヨーロッパ式小数点(カンマ)に対応しました。 両方の送金呼び出し箇所でparseFloatの前にreplace(/,/g, ".")が実行され、1,5 BTXが1ではなく1.5として正しく解析されます。
  • エクスプローラーリンクのbtx1プレフィックスチェック。 addrExplorerUrlが送金入力の正規表現(^btx1[a-z0-9]{20,90}$/i)に一致するようになり、監査行が存在しないエクスプローラーページにリンクすることがなくなりました。
  • プールの支払いアドレスがstratumに渡す前にキャッシュされたアドレスをaddress_is_mineで再検証します。 不一致の場合は新しいアドレスを生成します。
  • repair_noderelocate_datadirの実行中にプールタスクが適切に停止されます。 (以前は消去・移動中のチェーンに対してsubmitを継続していました。)
  • persist_active_walletがロックされました。 新しいSTATE_FILE_LOCKがload → mutate → saveのシーケンスをシリアライズするため、ダブルクリックによって更新が失われることがなくなりました。

セキュリティ(/cso監査)

  • プールログが/tmpの外に移動し、アクセス制限されました。 ログは$HOME/.easybtx/pool.logHOMEが未設定の場合のフォールバックは/tmp)に保存され、mode(0o600) + O_NOFOLLOWで開かれます。全ユーザー読み取り可能な / シンボリックリンクスプーフィング可能なリスクが解消されました。
  • プールに送信されるgpu_uuidが生のIOPlatformUUIDではなくソルト済みSHA-256になりました。 ハッシュはインストールごとに安定しているため(プールワーカーの相関が引き続き機能します)、生のハードウェア識別子がマシン外に出ることはなくなりました。
  • RpcClient::for_walletがWallet名をパスにパーセントエンコードするようになりました。 現在は慣例によって安全ですが(すべての呼び出し元が検証します)、レビュアーの規律ではなく関数レベルで強制されるようになりました。

内部・チョア

  • バージョン:0.1.13 → 0.2.0(package.jsontauri.conf.jsonCargo.toml)。
  • EasyBtxStatesnapshot_loadedbtx_release_tagwallet_addressesが追加されました(すべて#[serde(default)]。旧来の状態ファイルも引き続き読み込めます)。
  • load → mutate → saveパターンをシリアライズするためにSTATE_FILE_LOCKstate.rsに導入されました。reset_accountrestore_walletfirst_run_setupの状態書き込みがこれを通るようになりました。
  • apply_node_updateに既知の古いドキュメントリンクTODO(H3-followup)が1件残っています。セッション内のRPC再アーム(永続タグ + 再起動パスは実装済み。セッション内のcookie待機がフォローアップ)を指しています。

v0.1.13

2026-05-28

追加

  • 受信残高の表示。 まだ確認されていない受信支払い(untrusted_pending)が、確認されるまで消えて見える代わりに「入金中…確認待ち」と明確に表示されるようになりました。使用可能残高は信頼済みのみに限定されているため、送金で残高を超えることはありません。
  • ブロックエクスプローラーリンク。 送金、受取、監査・Overviewのトランザクションとexplorer.minebtx.comのアドレスに(省略表示 + コピー + 開くの形式で)リンクできるようになりました。送金確認画面には完全な受取アドレスが表示され、確認できます。
  • 送金:「Max」ボタンと安全なフル送金。 Maxボタンで使用可能な残高全体が入力され、フル残高の送金ではネットワーク手数料が「残高不足」で失敗するのではなく金額から差し引かれます。受取アドレスも確認ステップの前にサニティチェックされます。
  • 容量の回復。 設定の「ストレージ」ボタン(起動時の自動パスを含む)で、未使用のblockfilterindexcoinstatsindex、ポストロードのassumeUtxoスナップショット、肥大化したdebug.logを削除してディスクを解放できます。ブロックチェーンとWalletには触れません。

プール

  • プール支払い情報ポップアップが、漠然とした文言の代わりに実際のポリシー(毎週金曜18:00 UTC、最低0.0001 BTX、手数料2.5%)を表示するようになりました。
  • easyBTXがプールにeasybtx/<version>として識別されるようになりました。プールがeBTXマイナーの統計を分けて集計できます。ハードウェア情報によりワーカーにダッシュボードの正式名称が付けられます。

修正

  • プールのブロックティアpre_hash。 MetalのShare解決ソルバーがShareに対してブロックティアのpre_hashゲート(sigma <= block_target << epsilon)を回避する代わりに強制するようになりました。これによりブロックティアのShareが有効なブロックになり、プールのsubmitblockが「matmul phase2 proof of work failed」で失敗することがなくなりました。easyBTXはmining.subscribepre_hash_block_tier_v18ケイパビリティを宣言します。(ソルバーの変更はbtx-mainに含まれています。docs/patches/btx-prehash-block-tier.patchを参照してください。)

変更

  • マイニング電力がライブスライダーになりました。 統計カードの上部にあります。押すほど緑からオレンジ・赤に変化します(5%ステップ、Maxボタン)。設定のスライダーと同期しています。旧来の速度・電力の行はなくなり、カードが短くなりました。スライダーのⓘでベストプラクティスが説明されています(軽作業では約50%でMacが冷静で静かに保たれます。100%が最速ですが熱くなりバッテリーを消耗します)。
  • アクティブなWalletがバックエンドのみから取得されるようになりました(単一の情報源)。フロントエンドがlocalStorageからWalletを再適用しなくなったため、WalletチップとアドレスがT時的に不一致になることがなくなりました。
  • プール収益カードが短くなりました。支払い説明が「承認済みShare」の隣のⓘポップアップに移動し、ワーカーが「プールダッシュボードを開く」リンクの隣に配置され、対として読めるようになりました。