v0.4.7

TERBARU
2026-06-02

Pool mining di Mac kini langsung jalan, tanpa node yang perlu diunduh dan tanpa sinkronisasi.

Sorotannya adalah kecepatan. Dalam mode pool, easyBTX tidak lagi mengunduh atau menjalankan node BTX lengkap. Pool mining tidak pernah membutuhkannya, dan itu menambah unduhan bergiga-giga, sinkronisasi "menyusul" yang lama, dan sesekali crash. Kini kamu buka app, alamat pembayaran kamu sudah terisi, dan Mac kamu langsung mulai mining. Jika kamu sudah punya easyBTX sebelumnya, alamat pembayaran kamu yang ada terbawa otomatis, jadi tidak ada yang perlu diatur lagi.

Diubah

  • Pool mining di Mac berjalan tanpa node BTX lengkap: ia mulai seketika, tanpa blockchain yang perlu diunduh, tidak ada yang perlu disinkronkan, dan tidak ada node yang bisa crash. Solo mining di Mac dijeda untuk saat ini selagi kami berfokus pada pool mining; ia akan kembali.
  • Alamat pembayaran kamu terisi otomatis dari pengaturan kamu sebelumnya, sehingga pembaruan tidak pernah membiarkan kolomnya kosong.
  • Kecepatan mining kini terbaca dalam N/s, unit yang sama yang dipakai pool, sehingga angka di app cocok dengan dashboard pool kamu.
  • App selalu terbuka dalam layout tingginya, yang muat di setiap layar.

Ditambahkan

  • Tombol hijau "Get the BTX Wallet" di Transaksi dan di pengaturan pembayaran, menautkan ke dompet BTX mandiri.
  • Tindakan opsional untuk memulihkan ruang disk dengan menghapus data node lama yang tidak lagi kamu butuhkan dalam mode pool. Dompet kamu tidak pernah disentuh.

v0.4.6

2026-06-01

Pool mining di Mac berfungsi lagi, plus panel statistik GPU langsung.

Sorotannya adalah sebuah perbaikan. Pool mining di Mac, yang rusak di 0.4.5, berfungsi lagi. Sebuah perubahan yang dibuat saat membawa easyBTX ke Windows mengarahkan Mac ke helper mining yang salah, sehingga mining tidak mau mulai. Ini memulihkannya. Jika kamu memperbarui ke 0.4.5 dan tidak bisa memulai mining, ini memperbaikinya, dan Mac berperilaku persis seperti di 0.4.4.

Diperbaiki

  • Pool mining berfungsi lagi di Mac. Sebuah perubahan 0.4.5 untuk versi Windows mengarahkan mesin mining Mac ke helper yang salah, sehingga mining tidak mau mulai. Dipulihkan ke cara kerjanya di 0.4.4.

Ditambahkan

  • Panel statistik GPU langsung di layar Tentang: penggunaan, clock, daya, suhu, memori, dan kipas, diperbarui selagi panel terbuka. Mac menampilkan penggunaan, daya, dan suhu; Windows menampilkan set lengkap yang dibaca dari kartu NVIDIA kamu.

vWindows 0.4.4

2026-05-31

easyBTX hadir di Windows.

Ini adalah rilis Windows pertama. easyBTX kini menambang BTX di Windows PC dengan GPU NVIDIA RTX seri 30 atau yang lebih baru, memakai pendekatan satu app, satu klik, kustodi mandiri yang sama seperti versi Mac. Kamu cukup membawa kartu NVIDIA, pilih alamat pembayaran, dan GPU kamu bergabung ke pool. Versi Mac (Apple Silicon, Metal, solo atau pool) tidak berubah.

v0.4.4

2026-05-30

Pengiriman berfungsi lagi, statistik mining pribadi kamu sendiri, dan jendela yang lebih besar dan tenang.

Tindak lanjut yang terfokus dari 0.4.3. Sorotannya adalah sebuah perbaikan: mengirim BTX dari app berfungsi lagi setelah build belakangan ini bisa membuat pengiriman gagal dengan pesan yang menyesatkan. Selain itu, layar Tentang kini menampilkan statistik mining kamu sendiri, jendela-jendela popup semuanya terbuka dalam bentuk lapang yang sama, dan menyalin tautan explorer sebuah transaksi cukup satu ketukan.

Ditambahkan

  • Mining kamu: panel statistik pribadi di Tentang yang menampilkan sudah berapa lama kamu mining secara total, kecepatan rata-rata kamu, share yang diterima, dan hari kamu memulai. Ia hanya tinggal di Mac kamu dan tidak pernah diunggah.
  • Tombol "Salin tautan" di setiap transaksi, sehingga kamu bisa menyalin tautan block-explorer-nya dan menempelkannya di mana saja.

Diubah

  • Tentang, Pengaturan, Transaksi, dan popup info kini terbuka dalam satu jendela yang lebih besar dan konsisten yang lebih mudah dibaca.
  • Pengaturan punya menu samping yang lebih bersih. Bagian Tautan kini menunjuk ke situs BTX protocol resmi dan, terpisah, sebuah situs harga langsung (pihak ketiga; bukan saran finansial, dan easyBTX independen darinya).

Diperbaiki

  • Mengirim BTX dari app berfungsi lagi. Build belakangan ini bisa menolak pengiriman dengan pesan "periksa alamatnya" yang menyesatkan bahkan ketika alamatnya baik-baik saja. Itu sudah diperbaiki, dan pesan galatnya kini menjelaskan penyebab yang sebenarnya.

v0.4.3

2026-05-30

Jeda dan lanjutkan, restart yang lebih tenang, lebih banyak privasi, dan Mac kamu di dashboard pool.

Rilis ini melanjutkan desain ulang 0.4.0 dengan sekumpulan pekerjaan yang membuat hidup lebih nyaman. Berhenti kini menjaga node kamu tetap hangat dan menawarkan tombol Lanjutkan hijau, penantian "bersiap-siap" yang lama setelah restart menjelaskan dirinya sendiri alih-alih terlihat macet, dan kamu bisa menyembunyikan saldo dengan satu ketukan. Miner pool kini bisa menampilkan angka GPU langsung Mac mereka dan nama yang mereka pilih di dashboard minebtx.

Ditambahkan

  • Jeda dan Lanjutkan. Kontrolnya berbunyi "Jeda" saat mining, lalu "Lanjutkan" hijau setelahnya alih-alih "Mulai" yang dingin. Node kamu tetap hangat di antaranya, jadi kamu bisa langsung menyambungnya kembali.
  • Ikon privasi di sebelah saldo kamu menyembunyikannya di balik titik-titik sampai kamu memunculkannya, berguna saat kamu berbagi layar atau di tempat umum. Pilihan kamu diingat.
  • Desimal saldo: tampilkan 8 angka penuh, atau 3 angka yang lebih singkat untuk lirikan cepat. Ini hanya mengubah tampilan, tidak pernah jumlah yang kamu pegang atau kirim.
  • Status langsung yang jelas selagi node bersiap setelah restart. Alih-alih "Bekerja..." yang membeku, ia menjelaskan bahwa ia sedang membangun ulang indeks saldo pribadi kamu, menampilkan perkiraan dan waktu yang telah berlalu, serta mencatat bahwa blockchain sudah mutakhir.
  • Pemeriksaan CPU, GPU, dan pool-atau-solo di layar mining, sehingga sekilas kamu bisa melihat Mac kamu sedang mining di GPU dan terhubung sesuai harapanmu.
  • Pembacaan GPU langsung untuk dashboard pool minebtx. easyBTX melaporkan penggunaan dan daya GPU Mac kamu ke pool (tidak perlu akses root), sehingga worker kamu bisa menampilkan angka nyata alih-alih kosong, dan nama yang kamu atur di Pengaturan mengidentifikasi mesinmu.
  • Pembersihan latar belakang yang tenang yang menghapus sisa perbaikan lama pada instalasi yang dibiarkan berjalan dalam waktu lama, sehingga sisa itu tidak menumpuk di disk.

Diubah

  • Pengaturan kini terbuka dalam tema kamu saat ini. Dulu selalu tampil terang. Kini ia mengikuti app, sehingga app gelap menjaga Pengaturan tetap gelap pula.
  • Pengaturan punya layout sidebar yang lebih bersih, dengan kartu tema dan pilihan "layout favorit saat startup".
  • Popup info ("Cara kerja Mining" dan yang lainnya) kini selaras dengan gaya Pengaturan: jendela yang lebih lapang dan tenang yang lebih mudah dibaca.

Diperbaiki

  • Panel Sumber upstream di Pengaturan tidak lagi menampilkan "Versi terbaru tidak tersedia" di setiap baris. Ia mengambil versi terbaru yang sebenarnya lagi.

v0.4.0

2026-05-29

Tampilan baru, dan pool mining kini membayar ke dompet eksternal kamu.

easyBTX punya desain baru. Tampilan default kini berupa jendela "ruang kontrol" yang lebih lebar, menyebarkan semua elemen ke tiga kolom yang tenang, sehingga layar tidak penuh sesak begitu node kamu terisi informasi langsung. Ada juga tombol ganti tema baru: Gelap tetap jadi default, Terang tersedia jika kamu lebih suka, dan Sistem yang mengikuti Mac kamu dan berganti sendiri. Pool mining kini menghormati alamat pembayaran eksternal kamu, sama seperti solo mining yang sudah melakukan itu sejak dulu, sehingga kamu bisa mining di laptop yang tidak pernah menyimpan kunci koin kamu.

Ditambahkan

  • Layout "ruang kontrol" lebar yang baru, kini jadi default: layar status di kiri, tampilan mining, daya, dan dompet di tengah, serta angka jaringan dan pool langsung di kanan. Layout Tinggi, Kompak, dan Mini yang lama masih bisa diakses dengan satu klik.
  • Tema Gelap, Terang, dan Sistem. Gelap tetap jadi default. Pilih Terang jika lebih kamu sukai, atau Sistem agar Mac berganti otomatis. Pilihan disimpan.
  • Tombol cepat di Pengaturan untuk setiap bagian (Node, Mining, Tampilan, Lokasi data, Dompet, Pembayaran, Cadangan, Pembaruan, Pemeliharaan, Akun baru, Upstream, Tautan). Ketuk satu untuk langsung melompat ke sana.

Diubah

  • Pool mining kini mengirim hadiah ke alamat pembayaran eksternal kamu jika kamu telah mengaturnya. Sebelumnya, hanya solo mining yang melakukan itu. Bagaimanapun juga, koin tidak pernah menyentuh dompet di Mac ini, sehingga laptop yang diretas tidak pernah memegang kuncinya.
  • Biaya alat easyBTX kini 4,99% dari hadiah yang ditambang (sebelumnya 3,5%). Masih dihitung berdasarkan irisan waktu dan diungkapkan di awal. Biaya pool sendiri (2,5%) tidak berubah, sehingga pool mining secara total sekitar 7,5%. Semua sisanya masuk ke dompet kamu.
  • Pengaturan ditata sebagai ubin bersih yang berdampingan jika ada ruang, dan terbaca baik di Terang maupun Gelap.
  • "Audit / Ikhtisar" kini cukup disebut "Transaksi".
  • Daftar periksa setup lebih jelas. Setiap langkah berubah menjadi tanda centang hijau dengan label sederhana tentang apa yang telah terjadi ("Node dan chain BTX diunduh", "Node disinkronkan ke blok terbaru", "Mining"), bukan tetap berwarna oranye sebagai tugas yang belum selesai.
  • Wordmark easyBTX di header sedikit lebih besar, dalam bilah yang sedikit lebih tipis.

Diperbaiki

  • "Pulihkan ruang disk" kini melaporkan jumlah sebenarnya yang dibebaskan, termasuk snapshot satu kali yang besar, bukan meremehkannya dan membebaskan sisanya secara diam-diam saat startup berikutnya.
  • Node kamu tidak lagi terlihat seolah kembali ke "blok 0 dari 0" setelah kamu memulihkan ruang disk atau memulai ulang. Node mengingat posisinya dan menampilkan itu sembari melakukan konfirmasi, bukan terlihat seperti sinkronisasi baru dari awal.
  • Node yang sudah tersinkronisasi dan kembali aktif tidak lagi menunggu lama saat startup setelah pemulihan atau restart.

v0.3.1

2026-05-29

Node kamu tidak pernah terlihat rusak selagi menyusul. Setelah easyBTX ditutup cukup lama, atau dihentikan paksa (crash, force quit, atau mengganti app saat masih berjalan), node kamu kadang butuh beberapa menit untuk menyusul saat kamu membuka app berikutnya. Sebelumnya, easyBTX bisa salah mengira waktu menyusul itu sebagai masalah nyata dan menampilkan galat. Kini ia menunggu dengan tenang, memberi tahu apa yang terjadi, dan membiarkan dompet serta koin kamu tidak tersentuh. Ia tidak akan pernah menawarkan perbaikan selagi node hanya sedang menyusul. Tidak ada yang perlu kamu lakukan.

Diperbaiki

  • easyBTX tidak lagi menampilkan galat startup ketika node hanya sedang menyusul. Ia kini membedakan antara node yang masih memproses datanya dan node yang benar-benar berhenti.
  • Tindakan destruktif "Perbaiki node" tidak lagi ditawarkan selagi node sedang menyusul. Tindakan itu kini hanya muncul ketika ada sinyal kerusakan nyata atau proses node benar-benar telah keluar.
  • Tidak ada langkah "Unduh node dan chain BTX" palsu selagi node yang sudah dipulihkan hanya sedang pemanasan dengan chain yang sudah ada di disk, sehingga daftar periksa setup sesuai dengan kenyataan.
  • Batas waktu tetap yang bisa memotong node yang sehat telah dihapus. Node yang benar-benar menunjukkan kemajuan kini diberi waktu yang dibutuhkan untuk selesai.

Ditingkatkan

  • Pesan yang lebih jelas dan tenang selagi node menyusul, sehingga penantian beberapa menit yang normal tidak terlihat seperti kegagalan.
  • Dompet dan koin kamu tidak pernah tersentuh selama startup atau pemulihan. easyBTX memulihkan data chain dari snapshot yang tersimpan, bukan kunci kamu.

Di balik layar

Ketika node dimulai ulang setelah offline sebentar atau setelah penghentian yang tidak bersih, ia membangun ulang sebagian status internalnya sebelum bisa melayani permintaan. Selama jendela itu node aktif dan bekerja, tetapi ia menjawab dengan status "masih pemanasan" (kode RPC -28, dikembalikan dengan HTTP 500). Versi sebelumnya memperlakukan itu sebagai kegagalan keras dan menyerah setelah batas waktu tetap 360 detik, yang membuang node yang sepenuhnya sehat ke layar galat yang juga menggantungkan tombol perbaikan destruktif. 0.3.1 mengklasifikasikan setiap probe startup ke dalam tiga status: siap, pemanasan, atau tidak tersedia. Node yang sedang pemanasan (status -28, atau log node yang menunjukkan pembangunan ulang sedang berlangsung) diperlakukan sebagai "terus menunggu" dan diberi batas akhir yang cukup longgar untuk selesai. Node yang tidak pernah menjawab sama sekali tetap menyerah pada batas yang wajar. Jalur perbaikan destruktif tetap terkunci di balik sinyal kerusakan yang sudah dikonfirmasi seperti sebelumnya, sehingga hanya bisa dipicu ketika ada yang benar-benar salah, bukan karena startup lambat. Semua aturan keamanan pemulihan tidak berubah: dompet selalu disimpan, data yang rusak diarsipkan bukan dihapus, pemulihan berjalan paling banyak sekali per launch, dan ia menolak berjalan jika disk penuh.

Pengiriman

Dikirim ke instalasi 0.3.0 yang ada secara otomatis melalui pembaruan dalam app. Dibangun dan diterbitkan secara lokal. Build indie yang tidak ditandatangani, notarisasi Apple ada di roadmap.

v0.3.0

2026-05-28

Rilis "kepatuhan pool dan transparansi". Pool dexbtx milik shib berpindah ke v5 pada 2026-05-27 dengan gerbang kapabilitas wajib pre_hash_block_tier_v18 dan dict ekstensi mining.subscribe baru yang membawa session_id beserta sidik jari hardware per rig. easyBTX v0.2.0 hanya mengirim dua dari tiga bidang yang diperlukan, yang berarti Mac worker terhubung ke pool tetapi tidak pernah muncul di dashboard worker. v0.3.0 mengirimkan handshake v0.3.x lengkap, menambahkan heartbeat worker.report_metrics yang membuka baris dashboard langsung per rig, dan menampilkan nama kanonik yang ditetapkan pool ke setiap rig agar pengguna bisa mencocokkan Mac mereka dengan baris di /stats. Selain itu, fitur self-custody opt-in pertama: hadiah yang ditambang secara solo kini bisa dibayarkan ke alamat BTX eksternal yang tidak menyimpan kunci di Mac ini. Serta banyak pekerjaan UX yang diminta pengguna v0.2.0 di Telegram. cargo test: 195/195. tsc --noEmit: bersih. cargo build --release + npm run build: keduanya hijau.

Perbaikan kritis

  • Registrasi pool dexbtx untuk Mac worker dipulihkan. mining.subscribe kini mengirim dict ekstensi v0.3.x lengkap: protocol_compliant: ["pre_hash_block_tier_v18"], sidik jari hardware yang ada (diperluas dengan solver_env: {BTX_MATMUL_BACKEND: "metal"}), dan session_id per sesi (32 karakter hex huruf kecil yang cocok dengan bentuk uuid.uuid4().hex dari miner referensi, dibangun dari SHA256("easybtx-session:" || nanos || pid || counter) sehingga sesi berurutan tidak pernah bertabrakan). Tanpa session_id, pool v5 secara diam-diam mengecualikan Mac worker dari dashboard dan /stats bot Telegram. mining.set_canonical_name kini ditangani dan penugasan disimpan ke ~/.easybtx/canonical_names.json agar label yang ditetapkan pool (misalnya M2_PRO-BRAVO-1) bertahan saat reconnect. Baris "Worker mesin ini:" di UI kini menampilkan label itu segera setelah diterima.
  • Pembaruan node tidak lagi memakan 8 menit. NodeController::stop melakukan polling Child::try_wait hingga 90 detik sebelum beralih ke SIGKILL. Sebelumnya, kill langsung mengenai LevelDB status shielded btx1z di tengah flush, meninggalkan penanda mutasi yang memicu EnsureShieldedStateInitialized: rebuilding full shielded state from chain saat startup berikutnya (diukur 7 menit 57 detik di lapangan). Exit yang bersih tidak meninggalkan penanda dan startup kembali ke sekitar satu detik.
  • Karantina Repair Node tidak lagi bocor gigabyte selamanya. prune_old_quarantines baru menghapus direktori _corrupt-* dan _preserve-* yang lebih dari 7 hari, sambil tetap menyimpan satu yang terbaru dari setiap pola sebagai forensik. Berjalan saat startup app (menangkap karantina lama dari sesi sebelumnya) dan di akhir setiap repair_node (menangkap karantina lama dari perbaikan sebelumnya). Satu _corrupt-* yang usang menyandera 42 GB di mesin maintainer. Mencakup 6 unit test baru untuk logika retensi.

Pembayaran eksternal (self-custody opt-in)

  • Hadiah yang ditambang secara solo kini bisa dibayarkan ke alamat BTX eksternal yang tidak menyimpan kunci di Mac ini. Bagian Pengaturan baru, Mining payout: pertahankan default (hadiah masuk ke dompet lokal Mac ini) atau arahkan ke alamat yang kamu kendalikan di tempat lain, seperti hardware wallet, dompet ponsel, atau alamat cold. Inti persoalannya adalah self-custody. Ancaman realistis bagi mesin mining adalah eksekusi kode oleh pengguna yang sama (stealer bergaya AMOS yang ditipu untuk dijalankan oleh pengguna), dan mesin yang ditinggal mining 24/7, sering kali laptop lama yang didedikasikan untuk itu, adalah target yang empuk. Mengarahkan hadiah ke alamat eksternal berarti koin yang terkumpul tidak pernah menyimpan kunci di mesin mining sama sekali. Alamat yang ditempelkan diperiksa formatnya di batas IPC (bech32, menerima awalan pasca-kuantum btx1z...; menangkap paste jaringan yang salah, spasi di awal dan akhir, serta homoglyph seperti b/i/o) dengan tombol "Uji format" langsung. RPC validateaddress dari node melakukan pemeriksaan checksum penuh saat node aktif.
  • Biaya dev 3,5% yang diungkapkan tidak berubah. Mesin pembayaran digeneralisasi dari FeeAccrual biner pengguna/dev yang lama ke round-robin berbobot N penerima (PayoutScheduler) dengan biaya dev sebagai satu penerima wajib. Unit test membuktikan pangsa dev yang terealisasi tetap konvergen ke 3,5% selama 1000 hingga 2000 potongan terlepas dari konfigurasi pengguna, sehingga menambahkan pembayaran eksternal tidak pernah menggeser pembagian.
  • Hanya Solo di rilis ini, dan app menyatakannya dengan jelas. v0.3.0 mengarahkan pembayaran eksternal hanya untuk coinbase yang ditambang secara solo. Hadiah pool masih masuk ke dompet lokal (pembayaran pool eksternal ada di v0.3.2). Jika pembayaran eksternal dikonfigurasi dan kamu berada dalam mode Pool, banner merah di tampilan utama menjelaskannya, dan dialog perpindahan Solo ke Pool mengulang catatannya, sehingga pengguna yang berpikiran keamanan tidak pernah bisa diam-diam berasumsi penghasilan pool mereka meninggalkan mesin.
  • Memilih "Dompet lokal" sepenuhnya dikembalikan. Memilih radio default kini menghapus pembagian yang tersimpan (clear_payout_split), bukan hanya menyembunyikan formulir, sehingga mining langsung kembali ke dompet lokal alih-alih diam-diam terus membayar ke alamat eksternal yang sebelumnya diatur.

Pool / protokol mining

  • Heartbeat worker.report_metrics setiap 60 detik. Branch tokio::time::interval baru dalam stratum select loop mengirim {session_id, timestamp, cpu_util_pct, ram_gb_used, gpus: [{gpu_uuid, util_pct, power_w, temp_c}], solver_nps, shares_session_total} agar dashboard pool bisa merender penghitung CPU / RAM / share per rig. CPU% dan RAM yang digunakan berasal dari satu panggilan top -l 1 -n 0 yang dijalankan pada subprocess async dengan tokio::time::timeout 4 detik nyata, sehingga top yang macet tidak pernah bisa menghentikan stratum reader, manajemen solver child, atau pengiriman pool. Utilitas GPU / daya / suhu dilaporkan sebagai JSON null di macOS karena powermetrics memerlukan akses root (sesuai catatan shib tentang metrik macOS). Baris tetap muncul di dashboard, field instrumen langsung hanya menampilkan tanda hubung.
  • Satu klik "Buka mesin ini di dashboard pool". Tombol dashboard pool yang ada kini menulis ?worker=<nama_kanonik> ke URL-nya begitu pool menetapkan nama kanonik. Dashboard adalah SPA saat ini sehingga query param kompatibel ke depan. Jika dexbtx menambahkan routing per worker nanti, itu langsung berfungsi tanpa pembaruan app.
  • solver_env: {BTX_MATMUL_BACKEND: "metal"} dalam sidik jari hardware agar mesin rekomendasi tuning pool tahu untuk tidak menyarankan knob khusus CUDA (BTX_MATMUL_GPU_INPUTS, BTX_MATMUL_SOLVE_BATCH_SIZE, dll.) ke rig Mac. Kompatibel ke depan: pool melakukan whitelist key di sisi server, sehingga deklarasi Metal-only saat ini aman.

UX

  • Pembaruan sekarang mustahil terlewatkan. Banner oranye menonjol di bagian atas dashboard muncul seketika saat pemeriksaan pembaruan saat launch menemukan versi yang lebih baru, bersama dengan isyarat sudut yang sudah ada. Mengklik Instal memunculkan satu prompt: "Instal pembaruan mendatang secara otomatis saat launch?" Menanyakan saat paling bersedia jauh lebih efektif dibanding kotak centang di Pengaturan yang tidak pernah ada yang buka. Flag easybtx-autoupdate-asked memastikan tidak pernah ditanya ulang jika pengguna menolak. Pemeriksaan pembaruan saat launch kini berjalan sebelum first_run_setup sehingga banner bisa tampil dalam sekitar 300 ms alih-alih setelah startup node yang lambat dimulai.
  • easyBTX memperjelasnya bahwa ia menyertakan node BTX-nya sendiri. Pengguna Telegram yang melihat "Progres sinkronisasi 98,5%" masih bertanya ke channel "bagaimana cara menyiapkan node?" Tiga titik sentuh kecil kini menjawab pertanyaan itu sebelum ditanyakan: modal "Cara kerja Mining" terbuka dengan "easyBTX menjalankan node BTX lengkap untukmu, tidak perlu setup terpisah". Daftar periksa tahap setup kini berbunyi "Unduh node dan chain BTX" / "Sinkronkan node ke blok terbaru". Bagian Pengaturan, status Node dimulai dengan "ini adalah pembacaan langsung dari node itu, bukan layanan jarak jauh."
  • Dorongan halus untuk backup dompet. Banner kuning persisten di atas saldo muncul begitu kamu benar-benar telah menambang beberapa BTX dan belum melakukan backup. "Simpan sekarang" membuka Pengaturan dan menggulir ke "Simpan file pemulihan". "Nanti" menutupnya hanya untuk launch saat ini (dorongan kembali di startup berikutnya, karena kehilangan dompet karena sekali menolak notifikasi tidak bisa diterima). Terpisah dari gerbang sekali-saat-setup yang ada, yang dipicu sebelum pengguna memiliki sesuatu untuk hilang.
  • Slider daya Mining dalam satu baris. Label, slider, tombol MAX, dan nilai langsung digabung dari layout dua baris menjadi satu baris flex. Menghemat sekitar 28 px ruang vertikal. Aksen oranye Bitcoin yang sama.
  • "Share terakhir" berdetak langsung. setInterval 1 detik merender ulang waktu relatif pada penghitung share alih-alih membiarkannya membeku di antara polling status 3 detik. Dilewati saat document.hidden agar app yang berada di latar belakang tidak menguras baterai untuk pembaruan yang tidak terlihat.
  • Panel Pengaturan, Sumber upstream. Mencantumkan komponen open-source yang dibangun easyBTX (node BTX btxchain/btx ditambatkan ke v0.30.1, MineBTX dexbtx/minebtx, Tauri v2, repo EasyBTX-releases publik). Setiap baris menampilkan versi yang ditambatkan vs tag terbaru yang diambil langsung dari API GitHub beserta lencana Terkini / Pembaruan tersedia. Dashboard maintainer untuk melacak kapan upstream melampaui kita. Disimpan cache 5 menit. Tombol Segarkan melewati cache.
  • Sinyal komunitas di modal Tentang. Ubin langsung untuk instalasi easyBTX (jumlah unduhan aset GitHub Releases), miner pool yang online sekarang, blok yang ditemukan dalam 24 jam terakhir, dan kecepatan jaringan. Diperbarui saat modal dibuka, disimpan cache 60 detik. Framing yang jujur: ubin "miner online" diberi label "termasuk easyBTX + klien lain" karena API pool belum memisahkan worker berdasarkan miner_version.

Brand

  • easyBTX kini secara konsisten ditulis huruf kecil dalam prosa. 17 penggantian di README, CHANGELOG, NOTICE, dan folder docs/. Jalur URL (MendeMatthias/EasyBTX-releases), tipe Rust EasyBtxState, dan nama artefak pipeline rilis (EasyBTX.dmg, EasyBTX.app) sengaja dipertahankan.

Pemeliharaan

  • Banner peringatan disk rendah. Mengambil disk bebas setiap 3 detik pada refresh status yang sama yang menggerakkan UI lainnya. Di bawah 1 GB menampilkan pemberitahuan kuning. Di bawah 500 MB menampilkan pemberitahuan merah dengan kedipan lebih cepat. Keduanya muncul bahkan saat RPC tidak aktif, yang justru saat itu paling penting (btxd baru saja crash dari Fatal LevelDB error: No space left on device, RPC tidak dapat dijangkau, pengguna tidak tahu kenapa).
  • Pengaturan, Pemeliharaan, Pulihkan ruang disk. Satu klik untuk mendapatkan kembali ruang yang menjatuhkan indeks btxd blockfilter / coinstats yang tidak digunakan, snapshot assumeutxo pasca-load, dan memotong debug.log jika sudah melampaui 50 MB. Untuk saat kamu butuh ruang disk kembali tetapi belum siap memindahkan datadir ke volume eksternal.

Penguatan pra-rilis

  • Pengumpulan worker.report_metrics bersifat async. std::process::Command::output() yang sinkron (tanpa timeout, memblokir worker runtime tokio selama top berjalan) diganti dengan tokio::process::Command ditambah tokio::time::timeout 4 detik nyata. top yang macet tidak lagi menghentikan stratum reader, manajemen solver child, atau pengiriman pool.
  • Pembacaan satu guard status pool dalam metrics tick. Lock/unlock dua langkah dari status.lock().await digabung menjadi satu scope terjaga agar shares_accepted dan hashps selalu diamati pada generasi status-tick yang sama.

Dokumentasi

  • docs/2026-05-28-btx-qid-self-custody.md. Riset dan rencana 4 fase untuk menautkan "qID" pasca-kuantum yang self-custodial (passkey ditambah pembagian Shamir/MPC 2-dari-3) ke seed BTX, sehingga alamat pembayaran eksternal di atas nantinya bisa menjadi alamat yang pengguna pegang di ponsel/passkey daripada hot wallet lain. Perencanaan ke depan untuk halaman bonuz HQ. Tidak ada kode app yang bergantung padanya.

v0.2.0

2026-05-28

Rilis polish "mega audit". Audit keamanan /cso ditambah audit bug fungsional 3 agen menemukan 4 masalah KRITIS, 10 TINGGI, 13 SEDANG, dan beberapa RENDAH di v0.1.13. Rilis ini menutup semuanya sekaligus. cargo test: 149/149. tsc --noEmit: bersih. Tidak ada IPC publik yang dihapus, tetapi send_btx mendapatkan parameter subtract_fee: bool yang eksplisit (tombol Max frontend meneruskannya). EasyBtxState mendapatkan tiga field #[serde(default)] (file state lama tetap dimuat).

Perbaikan kritis (kehilangan data / proses yatim / sinkronisasi ulang paksa)

  • Penghapusan multi-dompet diblokir saat relokasi datadir. relocate_datadir kini menghitung setiap dompet di bawah src (direktori manapun yang berisi wallet.dat) dan gagal tertutup kecuali MASING-MASING ada dan tidak kosong di dest sebelum remove_dir_all(src) berjalan. Pemeriksaan ukuran 97% sebelumnya hanya memvalidasi miner/wallet.dat, yang bisa mentoleransi kehilangan diam-diam dari dompet sekunder yang lebih kecil.
  • Pool dan Metal solver kini dimatikan dengan benar saat app ditutup. stop_node_blocking memberi sinyal pool_stop, menunggu pool_handle dengan timeout 3 detik (membatalkan JoinHandle jika terlewat), dan membersihkan status pool. Perintah solver mendapatkan .kill_on_drop(true) sehingga JoinHandle yang dijatuhkan menyingkirkan subprocess alih-alih membiarkannya terpaku di 100% GPU setelah Keluar.
  • Snapshot.dat tidak lagi dihapus sebelum loadtxoutset benar-benar berhasil. Flag persisten baru EasyBtxState.snapshot_loaded hanya diatur KETIKA loadtxoutset berhasil (atau ketika getchainstates sudah melaporkan snapshot chainstate). Semua pemanggil disk::reclaim_disk kini membaca flag yang benar itu alih-alih setup_complete (yang berubah saat RPC bind, sebelum pemuatan snapshot di latar belakang). Menutup app di tengah pemuatan tidak lagi menghapus snapshot dan memaksa sinkronisasi ulang genesis penuh.
  • Guard output solver mencegah keruntuhan kursor nonce. solve_next_nonce kini hanya maju jika tries_used > 0 DAN nonce64_end >= solve_next_nonce (monoton). {"found":false} yang degeneratif dengan nonce64_end yang hilang sebelumnya mereset kursor ke 1, menyebabkan pengiriman share duplikat (kode 22).

Perbaikan berdampak tinggi

  • repair_node tidak lagi diam-diam beralih ke dompet "miner". Ia kini membaca state.active_wallet (mencerminkan pola reclaim_disk_now) sebelum membangun ulang wallet_rpc. Ini adalah perbaikan H1 dari PR #12 yang belum diterapkan di sini.
  • move_datadir_to menolak volume exFAT / FAT. Peringatan list_external_volumes kini diterapkan di batas pemindahan, bukan hanya ditampilkan sebagai tooltip.
  • apply_node_update benar-benar beralih ke binary btxd baru. Sebelumnya no-op (instalasi baru tidak pernah digunakan ulang). Ia kini mempertahankan tag baru (EasyBtxState.btx_release_tag), menghentikan controller yang berjalan, dan menjalankan ulang terhadap binary baru. check_node_update/get_node_status menghormati tag yang tersimpan, sehingga banner pembaruan berhenti menempel.
  • Perubahan ntime di tengah solve mereset kursor nonce. Ketika notif yang tidak bersih mengubah ntime atau merkleroot, solve berikutnya dimulai ulang di awal jendela nonce kita (alih-alih melewati nonce rendah dari header baru).
  • clean_jobs=true tidak lagi melewatkan submit dari solver yang baru saja keluar ke job yang usang. Jalur clean-kill menguras stdout anak yang mati dan membersihkan solving_job, sehingga hasil solver yang terlambat sedetik menutup diri di gerbang submit.
  • Tabrakan arsip _corrupt-<ts> tidak lagi bisa menghapus chain secara permanen. Timestamp sub-mikrodetik ditambah counter -N mencegah tabrakan. Saat rename arsip gagal, kini dikembalikan Err dan src dibiarkan di tempatnya (sebelumnya fallback remove_dir_all(src) menghapus chain yang rusak secara permanen, melanggar janji "tidak pernah hapus permanen").
  • Akuntansi biaya pool sesuai dengan disiplin solo. Batas stop / clean-kill / deadline tidak lagi mencatat waktu kill yang berlalu sebagai dev mined_secs. Akrual kini hanya terjadi di cabang wait-for-solver pada output yang bisa di-parse dengan tries_used > 0. Pangsa dev 3,5% tidak lagi bisa merayap naik di bawah stop-churn.
  • Share yang hilang saat disconnect ditampilkan di UI. Galat tulis mining.submit kini menetapkan last_event = "share lost (disconnect)..." dan menaikkan counter stale sebelum kembali ke loop reconnect.
  • Jaringan yang tidak stabil tidak lagi bisa membuat "developer fee window..." terjebak. Batas waktu percobaan kumulatif (300 detik) memaksa sesi berikutnya ke pembayaran pengguna jika satu jendela biaya terus gagal terhubung.
  • Startup beralih ke datadir default ketika pointer ke drive eksternal tidak menuju ke mana-mana. Sebelumnya, drive yang dicabut antara penulisan pointer dan penghapusan src membuat app terjebak di jalur yang tidak ada.

Kebenaran mining dan pool

  • Kegagalan subscribe / authorize kini dicatat dan ditampilkan di last_event (sebelumnya diabaikan diam-diam. Perubahan skema dari sisi pool bisa mematikan semua pool mining tanpa umpan balik UI).
  • submit_id diinisialisasi dari epoch mikrodetik saat koneksi agar id tidak berulang lintas reconnect.
  • Solo: setelah tick Paused, iterasi berikutnya melewatkan lonjakan fee dan menambang untuk pengguna (defisit mengejar pada tick berikutnya yang tidak di-pause). Mencegah satu blok solo mendarat di alamat dev selama flapping jeda sinkronisasi.
  • Idempotency snapshot kini melakukan verifikasi SHA pada snapshot.dat yang ada berukuran kebetulan cocok (sebelumnya file dengan konten salah berukuran tepat sama diterima tanpa verifikasi).

Dompet / kirim / polish audit

  • Alamat terima yang stabil per dompet. EasyBtxState.wallet_addresses mengingat alamat setiap dompet. do_switch_wallet menggunakannya kembali via address_is_mine alih-alih mencetak yang baru setiap kali beralih.
  • Ekspor Audit / CSV hingga 10.000 transaksi. (Batas sebelumnya 1.000 diam-diam menghapus entri lama dari miner yang sudah lama berjalan.)
  • Kirim "Max" kini merupakan flag eksplisit, bukan heuristik toleransi sat. Frontend melacak klik Max. Backend send_btx(.., subtract_fee) menghormatinya. Mengirim tepat saldo kamu secara manual tidak lagi diam-diam berkurang.
  • Backend send_btx memvalidasi jumlah dan menolak overdraft. Nilai tidak terbatas, nol, negatif, dan amount > spendable ditolak di batas IPC (bukan hanya di btxd).
  • backup_wallet_cmd menolak jalur yang tidak dapat dikanonikalisasi, dan menolak jalur yang mengandung komponen ... Celah "lewati jika gagal kanonisasi" sebelumnya sudah ditutup.
  • Koma desimal Eropa dalam Kirim. parseFloat didahului oleh replace(/,/g, ".") di kedua titik panggilan Kirim. 1,5 BTX kini diurai sebagai 1,5, bukan 1.
  • Pemeriksaan awalan btx1 pada tautan explorer. addrExplorerUrl kini cocok dengan regex input Kirim (^btx1[a-z0-9]{20,90}$/i), sehingga baris audit tidak bisa menautkan ke halaman explorer yang tidak ada.
  • Pembayaran pool memvalidasi ulang alamat yang disimpan cache dengan address_is_mine sebelum menyerahkannya ke stratum. Mencetak yang baru jika tidak cocok.
  • Task pool dihentikan dengan benar selama repair_node dan relocate_datadir (sebelumnya terus mengirim share terhadap chain yang sedang dihapus/dipindah).
  • persist_active_wallet dikunci. STATE_FILE_LOCK baru menyerialisasi urutan muat, ubah, simpan agar double-click tidak bisa kehilangan pembaruan.

Keamanan (audit /cso)

  • Log pool dipindahkan keluar dari /tmp dan diamankan. Log kini berada di $HOME/.easybtx/pool.log (fallback /tmp jika HOME tidak diatur), dibuka dengan mode(0o600) ditambah O_NOFOLLOW. Permukaan yang bisa dibaca semua orang dan rentan symlink ditutup.
  • gpu_uuid yang dikirim ke pool kini merupakan SHA-256 yang diberi garam, bukan IOPlatformUUID mentah. Hash-nya stabil per instalasi (sehingga korelasi worker pool masih berfungsi), tetapi identifier hardware mentah tidak lagi meninggalkan mesin.
  • RpcClient::for_wallet melakukan percent-encode nama dompet ke dalam jalur. Saat ini aman berdasarkan konvensi (semua pemanggil memvalidasi). Kini diterapkan di fungsi alih-alih dengan disiplin reviewer.

Internal / chores

  • Versi: 0.1.13 ke 0.2.0 (package.json, tauri.conf.json, Cargo.toml).
  • EasyBtxState mendapatkan snapshot_loaded, btx_release_tag, dan wallet_addresses (semua #[serde(default)]. File state lama tetap dimuat).
  • STATE_FILE_LOCK diperkenalkan di state.rs untuk menyerialisasi pola muat, ubah, simpan. Penulisan state reset_account / restore_wallet / first_run_setup kini melaluinya.
  • Satu tautan dokumentasi yang usang TODO(H3-followup) di apply_node_update menunjuk ke re-arm RPC dalam sesi yang mulus (jalur tag persisten dan restart sudah dikirim. Cookie wait dalam sesi adalah tindak lanjutnya).

v0.1.13

2026-05-28

Ditambahkan

  • Baris saldo masuk. Pembayaran yang diterima tetapi belum dikonfirmasi (untrusted_pending) kini muncul sebagai baris "Masuk ... sedang dikonfirmasi" yang jelas, bukan terlihat hilang sampai dikonfirmasi. Saldo yang bisa dibelanjakan tetap hanya yang terpercaya, sehingga Kirim tidak pernah bisa overdraft.
  • Tautan block explorer. ID transaksi dan alamat di Kirim, Terima, dan Audit/Ikhtisar dibuka di explorer.minebtx.com (dipotong, bisa disalin, bisa dibuka). Layar konfirmasi Kirim menampilkan alamat penerima lengkap agar kamu bisa memverifikasinya.
  • Kirim: tombol "Max" dan pengiriman penuh yang aman. Tombol Max mengisi saldo yang bisa dibelanjakan penuh, dan pengiriman saldo penuh kini mengurangi biaya jaringan dari jumlahnya alih-alih gagal dengan "dana tidak cukup". Alamat penerima juga diperiksa sebelum langkah konfirmasi.
  • Klaim ruang. Tombol Pengaturan, Penyimpanan (dan proses otomatis saat launch) membebaskan disk dengan menghapus blockfilterindex/coinstatsindex yang tidak digunakan, snapshot assumeutxo pasca-load, dan debug.log yang terlalu besar. Blockchain dan dompet kamu tidak pernah disentuh.

Pool

  • Popup info pembayaran pool kini menampilkan kebijakan sesungguhnya (setiap Jumat pukul 18:00 UTC, minimum 0,0001 BTX, biaya pool 2,5%) alih-alih kata-kata yang samar.
  • easyBTX kini mengidentifikasi diri ke pool sebagai easybtx/<version> agar pool bisa mensegmentasi miner eBTX untuk statistik. Info hardware memberi worker kamu nama kanonik di dashboard.

Diperbaiki

  • Block-tier pre_hash pool. Metal share-solver kini menerapkan gerbang block-tier pre_hash (sigma <= block_target << epsilon) alih-alih melewatinya untuk share, sehingga share block-tier adalah blok yang valid dan submitblock pool berhenti gagal dengan "matmul phase2 proof of work failed". easyBTX mendeklarasikan kapabilitas pre_hash_block_tier_v18 di mining.subscribe. (Perubahan solver ada di btx-main. Lihat docs/patches/btx-prehash-block-tier.patch.)

Diubah

  • Daya Mining kini merupakan slider langsung di bagian atas kartu statistik. Ia memanas dari hijau ke oranye-merah saat kamu mendorongnya (langkah 5%, tombol Max), dan tetap sinkron dengan slider Pengaturan. Baris pembacaan kecepatan/daya lama sudah hilang, sehingga kartu lebih pendek. Ikon info pada slider menjelaskan praktik terbaik (sekitar 50% untuk pekerjaan ringan menjaga Mac tetap dingin dan senyap. 100% paling cepat tetapi panas dan menguras baterai).
  • Dompet aktif kini bersumber hanya dari backend (satu sumber kebenaran). Frontend tidak lagi menerapkan ulang dompet dari localStorage, sehingga chip dompet dan alamat tidak bisa sesaat berbeda.
  • Kartu penghasilan pool lebih pendek: penjelasan pembayaran dipindahkan ke popup info di sebelah "Share yang diterima", dan worker kini duduk di sebelah tautan "Buka dashboard pool" agar terbaca sebagai pasangan.