v0.4.7

NAJNOWSZE
2026-06-02

Mining w pulu na Macu jest teraz natychmiastowy, bez węzła do pobrania i bez synchronizacji.

Najważniejsza jest szybkość. W trybie puli easyBTX nie pobiera już ani nie uruchamia pełnego węzła BTX. Mining w pulu nigdy go nie potrzebował, a dokładał wielogigabajtowe pobieranie, długie synchronizacje "nadrabiania zaległości" i okazjonalne awarie. Teraz otwierasz aplikację, Twój adres wypłaty jest już wypełniony, a Mac od razu zaczyna kopać. Jeśli miałeś już easyBTX, Twój istniejący adres wypłaty przenosi się automatycznie, więc nie ma nic do ustawiania na nowo.

Zmieniono

  • Mining w pulu na Macu działa bez pełnego węzła BTX: uruchamia się natychmiast, bez łańcucha bloków do pobrania, bez niczego do synchronizacji i bez węzła, który mógłby ulec awarii. Mining solo na Macu jest na razie wstrzymany, gdy skupiamy się na miningu w pulu; wróci.
  • Twój adres wypłaty wypełnia się automatycznie z poprzedniej konfiguracji, więc aktualizacja nigdy nie zostawia pustego pola.
  • Szybkość miningu jest teraz podawana w N/s, w tej samej jednostce, której używa pul, więc liczba w aplikacji zgadza się z Twoim panelem pula.
  • Aplikacja zawsze otwiera się w swoim wysokim układzie, który pasuje do każdego ekranu.

Dodano

  • Zielony przycisk "Get the BTX Wallet" w Transakcjach i w ustawieniach wypłaty, prowadzący do samodzielnego portfela BTX.
  • Opcjonalna akcja odzyskania miejsca na dysku przez usunięcie starych danych węzła, których już nie potrzebujesz w trybie puli. Twoje portfele nigdy nie są tknięte.

v0.4.6

2026-06-01

Mining w pulu na Macu znów działa, plus panel statystyk GPU na żywo.

Najważniejsza jest poprawka. Mining w pulu na Macu, który przestał działać w 0.4.5, znów działa. Zmiana wprowadzona podczas przenoszenia easyBTX na Windows skierowała Maca do złego pomocnika miningu, więc mining się nie uruchamiał. To go przywraca. Jeśli zaktualizowałeś do 0.4.5 i nie mogłeś uruchomić miningu, to naprawia ten problem, a Mac zachowuje się dokładnie tak jak w 0.4.4.

Naprawiono

  • Mining w pulu znów działa na Macu. Zmiana z 0.4.5 dla wersji na Windows skierowała silnik miningu Maca do złego pomocnika, więc mining się nie uruchamiał. Przywrócono do tego, jak działał w 0.4.4.

Dodano

  • Panel statystyk GPU na żywo w ekranie O aplikacji: użycie, taktowania, moc, temperatura, pamięć i wentylator, aktualizowane gdy panel jest otwarty. Mac pokazuje użycie, moc i temperaturę; Windows pokazuje pełny zestaw odczytany z Twojej karty NVIDIA.

vWindows 0.4.4

2026-05-31

easyBTX trafia na Windows.

To pierwsze wydanie na Windows. easyBTX kopie teraz BTX na komputerach z Windows z kartą NVIDIA RTX serii 30 lub nowszą, korzystając z tego samego podejścia jedna aplikacja, jedno kliknięcie, niepowierniczo, co wersja na Maca. Bierzesz kartę NVIDIA, wybierasz adres wypłaty, a Twoje GPU dołącza do puli. Wersja na Maca (Apple Silicon, Metal, solo lub w puli) pozostaje bez zmian.

v0.4.4

2026-05-30

Wysyłanie znów działa, Twoje własne prywatne statystyki miningu i większe, spokojniejsze okna.

Skupione wydanie rozwijające 0.4.3. Najważniejsza jest poprawka: wysyłanie BTX z aplikacji znów działa, po tym jak ostatnia kompilacja mogła odrzucić wysyłkę z mylącym komunikatem. Obok tego ekran O aplikacji pokazuje teraz Twoje własne statystyki miningu, wszystkie popupy otwierają się w tym samym przestronnym kształcie, a skopiowanie linku transakcji do eksploratora to jedno kliknięcie.

Dodano

  • Twój mining: prywatny panel statystyk w O aplikacji, pokazujący jak długo łącznie kopałeś, Twoją średnią szybkość, Twoje zaakceptowane share i dzień, w którym zacząłeś. Pozostaje tylko na Twoim Macu i nigdy nie jest nigdzie wysyłany.
  • Przycisk "Kopiuj link" przy każdej transakcji, żebyś mógł skopiować jej link do eksploratora bloków i wkleić go gdziekolwiek.

Zmieniono

  • O aplikacji, Ustawienia, Transakcje i informacyjne popupy otwierają się teraz w jednym większym, spójnym oknie, które czyta się łatwiej.
  • Ustawienia mają czytelniejsze menu boczne. Sekcja Linki wskazuje teraz oficjalną stronę protokołu BTX oraz, osobno, stronę z ceną na żywo (podmiot zewnętrzny; to nie jest porada finansowa, a easyBTX jest od niej niezależny).

Naprawiono

  • Wysyłanie BTX z aplikacji znów działa. Ostatnia kompilacja mogła odrzucić wysyłkę z mylącym komunikatem "sprawdź adres", nawet gdy adres był poprawny; to zostało naprawione, a komunikaty o błędach opisują teraz prawdziwą przyczynę.

v0.4.3

2026-05-30

Pauza i wznowienie, spokojniejszy restart, więcej prywatności i Twój Mac na panelu pula.

To wydanie rozwija przeprojektowanie z 0.4.0 o porcję usprawnień ułatwiających codzienne użycie. Zatrzymanie utrzymuje teraz węzeł ciepłym i oferuje zielone Wznów, długie oczekiwanie "przygotowywanie" po restarcie samo się tłumaczy zamiast wyglądać na zawieszone, a saldo możesz ukryć jednym kliknięciem. Miner w pulu może teraz pokazać dane GPU swojego Maca na żywo oraz wybraną nazwę na panelu minebtx.

Dodano

  • Pauza i Wznów. Przycisk pokazuje "Pauza" podczas miningu, a potem zielone "Wznów" zamiast zimnego "Start". Twój węzeł pozostaje w międzyczasie ciepły, więc możesz od razu wrócić do działania.
  • Ikona prywatności (oko) obok salda ukrywa je za kropkami, dopóki go nie odsłonisz, przydatne gdy udostępniasz ekran albo jesteś w miejscu publicznym. Twój wybór jest zapamiętywany.
  • Miejsca dziesiętne salda: pokaż pełne 8 miejsc albo krótsze 3 na szybki rzut oka. Zmienia to tylko wyświetlanie, nigdy to, co trzymasz lub wysyłasz.
  • Wyraźny status na żywo, gdy węzeł przygotowuje się po restarcie. Zamiast zamrożonego "Pracuję...", wyjaśnia, że przebudowuje Twój prywatny indeks salda, pokazuje szacowany czas i czas, który upłynął, oraz zaznacza, że łańcuch bloków jest już aktualny.
  • Sprawdzenia CPU, GPU i pool-czy-solo na ekranie miningu, żebyś na pierwszy rzut oka widział, że Twój Mac kopie na GPU i jest połączony tak, jak się tego spodziewasz.
  • Odczyty GPU na żywo dla panelu pula minebtx. easyBTX raportuje do pula zużycie GPU i moc Twojego Maca (bez potrzeby praw administratora), więc Twój worker może pokazać prawdziwe liczby zamiast pustych pól, a nazwa, którą ustawisz w Ustawieniach, identyfikuje Twoją maszynę.
  • Ciche porządki w tle, które usuwają stare pozostałości po naprawach na instalacjach pozostawionych długo działającymi, żeby nie piętrzyły się na dysku.

Zmieniono

  • Ustawienia otwierają się teraz w Twoim bieżącym motywie. Wcześniej zawsze pokazywały się w jasnym, teraz dopasowują się do aplikacji, więc ciemna aplikacja utrzymuje też ciemne Ustawienia.
  • Ustawienia mają czytelniejszy układ paska bocznego, z kafelkami motywu i wyborem "ulubiony układ przy starcie".
  • Informacyjne popupy ("Jak działa mining" i pozostałe) pasują teraz do stylu Ustawień: przestronniejsze, spokojniejsze okno, które czyta się łatwiej.

Naprawiono

  • Panel źródeł upstream w Ustawieniach nie pokazuje już "Najnowsza niedostępna" w każdym wierszu. Znów pobiera prawdziwe najnowsze wersje.

v0.4.0

2026-05-29

Nowy wygląd, a Pool teraz wypłaca nagrody na Twój zewnętrzny portfel.

easyBTX ma nowy wygląd. Domyślny jest szerszy układ "centrum sterowania", który rozkłada wszystko na trzy spokojne kolumny, dzięki czemu nic nie ucieka poza dół ekranu, gdy węzeł napełni się informacjami na żywo. Jest też nowy przełącznik motywu: Ciemny pozostaje domyślny, Jasny dostępny jeśli wolisz, a Systemowy podąża za Makiem i sam się przełącza. Pool teraz honoruje Twój zewnętrzny adres wypłat, tak samo jak już robi to mining solo, więc możesz kopać na laptopie, który nigdy nie trzyma kluczy do Twoich coinów.

Dodano

  • Nowy szeroki układ "centrum sterowania" jako domyślny: ekran statusu po lewej, wyświetlacz miningu, moc i portfel pośrodku, a live dane sieci i pula po prawej. Starsze układy Wysoki, Kompaktowy i Mini wciąż dostępne jednym kliknięciem.
  • Motywy Ciemny, Jasny i Systemowy. Ciemny pozostaje domyślny. Wybierz Jasny, jeśli wolisz, albo Systemowy, żeby Mac przełączał sam. Zapamiętywane.
  • Szybki przycisk w Ustawieniach do każdej sekcji (Node, Mining, Wygląd, Lokalizacja danych, Portfele, Wypłaty, Kopia zapasowa, Aktualizacje, Konserwacja, Nowe konto, Upstream, Linki). Jedno kliknięcie przenosi prosto do niej.

Zmieniono

  • Pool teraz wysyła nagrody na Twój zewnętrzny adres wypłat, jeśli go masz ustawiony. Wcześniej dotyczyło to tylko solo miningu. W obu przypadkach coiny nigdy nie trafiają do portfela na tym Macu, więc przejęty laptop nigdy nie miał kluczy.
  • Opłata narzędziowa easyBTX wynosi teraz 4,99% wyminowanych nagród (było 3,5%). Nadal jest rozliczana czasowo i ujawniana z góry, a własna opłata pula (2,5%) pozostaje bez zmian, więc pool mining wynosi łącznie około 7,5%. Reszta trafia do Twojego portfela.
  • Ustawienia mają układ czystych kafli, które siedzą obok siebie gdy jest miejsce, i dobrze wyglądają zarówno w trybie Jasnym jak i Ciemnym.
  • "Audyt / Przegląd" to teraz po prostu "Transakcje".
  • Lista kontrolna konfiguracji jest wyraźniejsza. Każdy krok staje się zielonym haczykiem z prostym opisem tego, co się stało ("Węzeł BTX i łańcuch pobrane", "Węzeł zsynchronizowany do najnowszych bloków", "Mining"), zamiast pozostawać pomarańczowym zadaniem do wykonania.
  • Logotyp easyBTX w nagłówku jest trochę większy, na nieco smuklejszym pasku.

Naprawiono

  • "Odzyskaj miejsce na dysku" teraz raportuje prawdziwą zwolnioną ilość, w tym duży jednorazowy snapshot, zamiast zaniżać ją i cicho zwalniać resztę przy następnym starcie.
  • Węzeł nie wygląda już jakby zresetował się do "bloku 0 z 0" po odzyskaniu miejsca na dysku lub restarcie. Pamięta gdzie był i pokazuje to podczas potwierdzania, zamiast wyglądać jak świeża synchronizacja od zera.
  • Powracający, już zsynchronizowany węzeł nie czeka już długo przy starcie po naprawie lub restarcie.

v0.3.1

2026-05-29

Twój węzeł nigdy nie wygląda na uszkodzony podczas nadrabiania zaległości. Gdy easyBTX był zamknięty przez jakiś czas, albo wyłączył się gwałtownie (awaria, wymuszone zamknięcie lub zamiana aplikacji podczas działania), węzeł czasem potrzebuje kilku minut na nadrobienie zaległości przy następnym otwarciu. Wcześniej easyBTX mógł mylnie potraktować ten czas jako prawdziwy problem i pokazać błąd. Teraz czeka spokojnie, informuje co się dzieje i pozostawia portfel oraz coiny nienaruszone. Nigdy nie zaproponuje naprawy, gdy węzeł po prostu nadrabia zaległości. Nie musisz nic robić.

Naprawiono

  • easyBTX nie pokazuje już błędu przy starcie, gdy węzeł jedynie nadrabia zaległości. Teraz rozróżnia węzeł wciąż przetwarzający swoje dane od węzła, który rzeczywiście przestał działać.
  • Destrukcyjna akcja "Napraw węzeł" nie jest już oferowana, gdy węzeł nadrabia zaległości. Pojawia się teraz tylko gdy istnieje rzeczywisty sygnał uszkodzenia lub proces węzła rzeczywiście zakończył działanie.
  • Brak fantomowego kroku "Pobierz węzeł BTX i łańcuch" gdy odzyskany węzeł jedynie rozgrzewa się z łańcuchem już na dysku, więc lista kontrolna konfiguracji odpowiada rzeczywistości.
  • Usunięto stały limit czasu, który mógł odciąć zdrowy węzeł. Węzeł robiący rzeczywiste postępy dostaje teraz tyle czasu ile potrzebuje na zakończenie.

Ulepszone

  • Wyraźniejszy, spokojniejszy komunikat podczas nadrabiania zaległości przez węzeł, żeby normalny kilkuminutowy czas oczekiwania nie wyglądał jak awaria.
  • Portfel i coiny nigdy nie są tknięte podczas startu lub odzyskiwania. easyBTX odtwarza dane łańcucha z zapisanego snapshotu, nigdy nie dotyka kluczy.

Pod maską

Gdy węzeł restartuje po byciu offline przez jakiś czas lub po nieoczystym wyłączeniu, przebudowuje część swojego wewnętrznego stanu, zanim będzie mógł obsługiwać żądania. W tym oknie węzeł żyje i pracuje, ale odpowiada statusem "jeszcze się rozgrzewa" (kod RPC -28, zwracany z HTTP 500). Poprzednia wersja traktowała to jako twardy błąd i poddawała się po stałym limicie 360 sekund, co wpychało doskonale zdrowy węzeł w ekran błędu z dyndającym destrukcyjnym przyciskiem naprawy. 0.3.1 klasyfikuje każdą sondę startową w trzy stany: gotowy, rozgrzewający się lub niedostępny. Rozgrzewający się węzeł (status -28, lub log węzła pokazujący trwającą przebudowę) traktowany jest jako "czekaj dalej" i dostaje hojny backstop na zakończenie. Węzeł który w ogóle nie odpowiada nadal poddaje się w sensownym limicie. Destrukcyjna ścieżka naprawy pozostaje zamknięta za tym samym sygnałem potwierdzonego uszkodzenia, którego zawsze używała, więc może uruchomić się tylko gdy coś naprawdę jest nie tak, nigdy dlatego że start był wolny. Wszystkie zasady bezpieczeństwa odzyskiwania są niezmienione: portfel jest zawsze zachowany, uszkodzone dane są archiwizowane a nie usuwane, odzyskiwanie uruchamia się co najwyżej raz na uruchomienie i odmawia działania gdy dysk jest pełny.

Dystrybucja

Dostarczone do istniejących instalacji 0.3.0 automatycznie przez aktualizator wbudowany w aplikację. Zbudowane i opublikowane lokalnie. Niepodpisana aplikacja indie, notaryzacja Apple jest na liście planów.

v0.3.0

2026-05-28

Wydanie "zgodność z pulem i przejrzystość". Pul dexbtx shiba przeszedł na v5 w 2026-05-27 z obowiązkową bramką pre_hash_block_tier_v18 i nowym słownikiem rozszerzeń mining.subscribe zawierającym session_id oraz sprzętowy odcisk palca per rig. easyBTX v0.2.0 wysyłał tylko dwa z trzech wymaganych pól, przez co Mac workery łączyły się z pulem ale nigdy nie pojawiały się w panelu worker. v0.3.0 dostarcza pełny handshake v0.3.x, dodaje heartbeat worker.report_metrics odblokowujący wiersze panelu na żywo per rig, i pokazuje kanoniczną nazwę przypisaną przez pul każdemu rigowi, żeby użytkownicy mogli dopasować swój Mac do wiersza w /stats. Do tego pierwsza opcjonalna funkcja samoopieki: nagrody z solo miningu można teraz wypłacać na zewnętrzny adres BTX bez klucza na tym Macu, plus sporo pracy nad UX o którą prosili użytkownicy v0.2.0 na Telegramie. cargo test: 195/195. tsc --noEmit: czysty. cargo build --release + npm run build: oba zielone.

Krytyczne naprawienia

  • Rejestracja pula dexbtx dla Mac workerów przywrócona. mining.subscribe wysyła teraz pełny słownik rozszerzeń v0.3.x: protocol_compliant: ["pre_hash_block_tier_v18"], istniejący odcisk sprzętowy (rozszerzony o solver_env: {BTX_MATMUL_BACKEND: "metal"}), oraz session_id per sesję (32 małe litery hex pasujące do kształtu uuid.uuid4().hex referencyjnego minera, zbudowane z SHA256("easybtx-session:" || nanos || pid || counter) żeby kolejne sesje nigdy nie kolidowały). Bez session_id pul v5 po cichu wykluczał Mac workery z panelu i ze /stats bota Telegram. mining.set_canonical_name jest teraz obsługiwany a przypisanie jest zapisywane do ~/.easybtx/canonical_names.json żeby etykieta przyznana przez pul (np. M2_PRO-BRAVO-1) przeżyła ponowne połączenia. Wiersz "Worker tej maszyny:" w interfejsie pokazuje tę etykietę od razu po jej otrzymaniu.
  • Aktualizacje węzła nie trwają już 8 minut. NodeController::stop odpytuje Child::try_wait przez do 90 sekund przed cofnięciem się do SIGKILL. Wcześniej natychmiastowe zabicie trafiało w środek zapisu na LevelDB stanu shielded btx1z, pozostawiając marker trwającej mutacji wyzwalający EnsureShieldedStateInitialized: rebuilding full shielded state from chain przy następnym starcie (mierzony w naturze na 7 min 57 s). Czysty exit nie pozostawia markera a start wraca do około jednej sekundy.
  • Kwarantanny naprawy węzła nie blokują już gigabajtów na zawsze. Nowe prune_old_quarantines usuwa katalogi _corrupt-* i _preserve-* starsze niż 7 dni zachowując po jednym najnowszym z każdego wzorca jako materiał dowodowy. Uruchamia się przy starcie aplikacji (wykrywa przestarzałe kwarantanny z poprzednich sesji) i na końcu każdego repair_node (wykrywa przestarzałe kwarantanny z poprzednich napraw). Jedna przestarzała _corrupt-* blokowała 42 GB na maszynie maintainera. Zawiera 6 nowych testów jednostkowych dla logiki retencji.

Zewnętrzne wypłaty (opcjonalna samoopieka)

  • Nagrody z solo miningu można teraz wypłacać na zewnętrzny adres BTX bez klucza na tym Macu. Nowa sekcja Ustawienia - Wypłata z miningu: zachowaj domyślne (nagrody trafiają do lokalnego portfela tego Maca) lub kieruj je na adres, który kontrolujesz gdzie indziej, sprzętowy portfel, portfel na telefonie, zimny adres. Chodzi o samoopiękę. Realistyczne zagrożenie dla maszyny do miningu to wykonanie kodu przez tego samego użytkownika (stealer w stylu AMOS, na który użytkownik daje się nabrać), a maszyna kopająca 24/7, często stary laptop przeznaczony dokładnie do tego, jest łatwym celem. Kierowanie nagród na zewnętrzny adres oznacza, że zgromadzone coiny nigdy nie miały klucza na maszynie do miningu. Wklejone adresy są sprawdzane pod kątem formatu na granicy IPC (bech32, akceptuje kwantoodporny przedrostek btx1z...; wykrywa wklejenia z niewłaściwej sieci, spacje na początku i końcu, oraz homoglify jak b/i/o), z przyciskiem "Przetestuj format" na żywo. RPC validateaddress węzła wykonuje pełną weryfikację sumy kontrolnej gdy jest aktywny.
  • Ujawniona opłata deweloperska 3,5% pozostaje niezmieniona. Silnik wypłat został uogólniony ze starego binarnego FeeAccrual użytkownik/deweloper na ważony round-robin N-odbiorców (PayoutScheduler) z opłatą deweloperską jako jednym obowiązkowym odbiorcą. Test jednostkowy dowodzi, że zrealizowany udział dewelopera nadal zbiega do 3,5% przez 1000-2000 fragmentów niezależnie od konfiguracji użytkownika, więc dodanie zewnętrznej wypłaty nigdy nie przesuwa podziału.
  • Tylko solo w tym wydaniu, i aplikacja mówi o tym głośno. v0.3.0 kieruje zewnętrzną wypłatę tylko dla solo-wyminowanej coinbase, nagrody z pula nadal trafiają do lokalnego portfela (zewnętrzna wypłata z pula to v0.3.2). Jeśli zewnętrzna wypłata jest skonfigurowana i jesteś w trybie Pool, czerwony baner na głównym widoku wyjaśnia sytuację, a dialog przejścia Solo na Pool powtarza zastrzeżenie, więc dbający o bezpieczeństwo użytkownik nigdy nie może po cichu założyć, że zarobki z pula opuszczają maszynę.
  • Wybór "Lokalny portfel" cofa całkowicie. Wybranie domyślnego radia czyści teraz zapisany podział (clear_payout_split), nie tylko ukrywa formularz, więc mining wraca natychmiast do lokalnego portfela zamiast po cichu kontynuować wypłatę na wcześniej ustawiony adres zewnętrzny.

Pul / protokół miningu

  • Heartbeaty worker.report_metrics co 60 sekund. Nowa gałąź tokio::time::interval w pętli select stratum wysyła {session_id, timestamp, cpu_util_pct, ram_gb_used, gpus: [{gpu_uuid, util_pct, power_w, temp_c}], solver_nps, shares_session_total} żeby panel pula mógł renderować liczniki CPU / RAM / share per rig. CPU% i zużycie RAM pochodzą z jednego wywołania top -l 1 -n 0 uruchamianego na asynchronicznym subprocesie z prawdziwym 4-sekundowym tokio::time::timeout, żeby zawieszony top nie mógł nigdy zablokować czytnika stratum, zarządzania potomkiem solvera ani przesyłania do pula. Utylizacja GPU / moc / temperatura są raportowane jako JSON null na macOS, bo powermetrics wymaga roota (zgodnie z uwagą shiba o metrykach macOS). Wiersz nadal pojawia się w panelu, pola z instrumentami na żywo pokazują tylko myślnik.
  • Jednym kliknięciem "Otwórz tę maszynę w panelu pula." Istniejący przycisk panelu pula zapisuje teraz ?worker=<canonical_name> w URL w momencie gdy pul przypisze kanoniczną nazwę. Panel jest dziś SPA więc parametr query jest kompatybilny w przód. Jeśli dexbtx doda później routing per worker, zacznie działać bez aktualizacji aplikacji.
  • solver_env: {BTX_MATMUL_BACKEND: "metal"} w odcisku sprzętowym, żeby silnik rekomendacji pula wiedział, żeby nie sugerować knobów tylko dla CUDA (BTX_MATMUL_GPU_INPUTS, BTX_MATMUL_SOLVE_BATCH_SIZE, itp.) Mac rigom. Kompatybilny w przód: pul umieszcza klucze na białej liście po stronie serwera, więc aktualna deklaracja tylko Metal jest bezpieczna.

UX

  • Aktualizacje są teraz niemożliwe do przeoczenia. Widoczny pomarańczowy baner na górze panelu pojawia się w momencie gdy sprawdzanie aktualizacji przy starcie znajdzie nowszą wersję, obok istniejącej wskazówki w rogu. Kliknięcie Instaluj uruchamia jednorazowy monit: "Instalować też przyszłe aktualizacje automatycznie przy starcie?" Pytanie w momencie największej chęci działa znacznie lepiej niż pole wyboru w Ustawieniach gdzie nikt nie zagląda. Flaga easybtx-autoupdate-asked gwarantuje, że nigdy nie zapytamy ponownie jeśli użytkownik odmówił. Sprawdzanie aktualizacji przy starcie uruchamia się teraz przed first_run_setup, żeby baner mógł pojawić się w około 300 ms zamiast po wolnym uruchamianiu węzła.
  • easyBTX jasno pokazuje, że zawiera własny węzeł BTX. Użytkownik Telegrama obserwujący "Postęp synchronizacji 98,5%" nadal zapytał na kanale "jak skonfigurować węzeł?". Trzy małe punkty styczne teraz odpowiadają na pytanie zanim zostanie zadane: modal "Jak działa mining" otwiera się słowami "easyBTX uruchamia dla Ciebie pełny węzeł BTX, żadna oddzielna konfiguracja nie jest potrzebna". Lista kontrolna etapów konfiguracji brzmi teraz "Pobierz węzeł BTX i łańcuch" / "Zsynchronizuj węzeł do najnowszych bloków". Sekcja Ustawienia - Status węzła zaczyna się od "to są odczyty na żywo z tego węzła, nie usługi zdalnej."
  • Delikatne przypomnienie o kopii zapasowej portfela. Trwały bursztynowy baner nad saldem pojawia się w momencie gdy naprawdę wyminowałeś trochę BTX i nadal nie masz kopii zapasowej. "Zapisz teraz" otwiera Ustawienia i przewija do "Zapisz plik odzyskiwania". "Później" zamyka tylko na bieżące uruchomienie (monit wraca przy następnym starcie, bo utrata portfela z powodu jednorazowego odrzucenia nie jest w porządku). Niezależne od istniejącej jednorazowej bramki konfiguracji, która uruchamiała się zanim użytkownik miał cokolwiek do stracenia.
  • Suwak mocy miningu w jednym wierszu. Etykieta, suwak, przycisk MAX i wartość na żywo złożone z dwuwierszowego układu w jeden wiersz flex. Oszczędza około 28 px wysokości. Ten sam pomarańczowy akcent Bitcoin.
  • "Ostatni share" tyka na żywo. Sekundowy setInterval ponownie renderuje czas względny na liczniku share zamiast zamrażać go między 3-sekundowymi sondami statusu. Pomijany gdy document.hidden, żeby aplikacja w tle nie spalała baterii na niewidoczne aktualizacje.
  • Panel Ustawienia - Źródła upstream. Wyświetla komponenty open-source na których zbudowany jest easyBTX (węzeł BTX btxchain/btx przypięty do v0.30.1, MineBTX dexbtx/minebtx, Tauri v2, publiczne repozytorium EasyBTX-releases). Każdy wiersz pokazuje przypiętą wersję względem najnowszego tagu pobranego na żywo z API GitHub oraz odznakę Aktualny / Dostępna aktualizacja. Panel dla maintainera do śledzenia kiedy upstreamy nas przerosną. Buforowane przez 5 minut. Przycisk Odśwież pomija bufor.
  • Sygnały społeczności w modalu O aplikacji. Live kafle dla instalacji easyBTX (suma liczby pobrań zasobów GitHub Releases), minerów pula online teraz, bloków znalezionych w ciągu ostatnich 24 godz., i szybkości sieci. Odświeżane przy otwarciu modalu, buforowane przez 60 s. Uczciwy opis: kafel "minerów online" jest oznaczony "w tym easyBTX + inne klienty", bo API pula nie dzieli jeszcze workerów według miner_version.

Marka

  • easyBTX jest teraz konsekwentnie pisane małymi literami w tekście. 17 zamian w README, CHANGELOG, NOTICE i folderze docs/. Ścieżki URL (MendeMatthias/EasyBTX-releases), typ Rust EasyBtxState, i nazwy artefaktów pipeline wydania (EasyBTX.dmg, EasyBTX.app) zostały celowo zachowane.

Konserwacja

  • Baner ostrzegawczy o małej ilości miejsca na dysku. Pobiera wolne miejsce co 3 s przy tym samym odświeżaniu statusu które napędza resztę interfejsu. Poniżej 1 GB pokazuje bursztynowe powiadomienie. Poniżej 500 MB czerwone z szybszym miganiem. Oba pojawiają się nawet gdy RPC jest niedostępne, co jest dokładnie wtedy gdy ostrzeżenie jest najważniejsze (btxd właśnie uległ awarii z powodu Fatal LevelDB error: No space left on device, RPC jest nieosiągalne, użytkownik nie ma pojęcia dlaczego).
  • Ustawienia - Konserwacja - Odzyskaj miejsce na dysku. Jednokliktowe odzyskiwanie zwalniające nieużywane indeksy blockfilter/coinstats btxd, snapshot assumeutxo po załadowaniu, i obcina debug.log jeśli przekroczył 50 MB. Dla przypadku gdy potrzebujesz miejsca na dysku ale nie jesteś gotowy przenieść datadir na zewnętrzny wolumin.

Hartowanie przed wydaniem

  • Zbieranie worker.report_metrics jest asynchroniczne. Synchroniczne std::process::Command::output() (bez timeoutu, blokuje worker runtimeu tokio tak długo jak trwa top) zostało zastąpione przez tokio::process::Command z prawdziwym 4-sekundowym tokio::time::timeout. Zawieszony top nie blokuje teraz czytnika stratum, zarządzania potomkiem solvera ani przesyłania do pula.
  • Odczyt statusu pula z jednym strażnikiem w takcie metryk. Dwuetapowe lock/unlock status.lock().await złożone w jeden chroniony zakres, żeby shares_accepted i hashps były zawsze obserwowane przy tej samej generacji taktu statusu.

Dokumentacja

  • docs/2026-05-28-btx-qid-self-custody.md. Badania i plan 4-fazowy dla zakorzenienia kwantoodpornego, samoodpowiedzialnego "qID" (passkey + podział Shamir/MPC 2-z-3) w ziarnie BTX, żeby zewnętrzny adres wypłat powyżej mógł później być adresem który użytkownik trzyma na telefonie/passkey zamiast kolejnego gorącego portfela. Planowanie perspektywiczne dla strony bonuz HQ. Żaden kod aplikacji od tego nie zależy.

v0.2.0

2026-05-28

Wydanie "mega audyt". Audyt bezpieczeństwa /cso oraz audyt błędów funkcjonalnych z 3 agentami znalazły 4 KRYTYCZNE, 10 WYSOKICH, 13 ŚREDNICH i kilka NISKICH problemów w v0.1.13. To wydanie zamyka wszystkie jednym przejściem. cargo test: 149/149. tsc --noEmit: czysty. Żadne publiczne IPC nie zostało usunięte, ale send_btx zyskał jawny parametr subtract_fee: bool (przycisk Max frontendu go przekazuje). EasyBtxState zyskał trzy pola #[serde(default)] (starsze pliki stanu nadal się wczytują).

Krytyczne naprawienia (utrata danych / osierocone procesy / wymuszona resynchronizacja)

  • Kasowanie wielu portfeli zablokowane podczas przenoszenia datadir. relocate_datadir teraz wylicza każdy portfel pod src (każdy katalog zawierający wallet.dat) i kończy się zamknięciem, chyba że KAŻDY jest obecny i niepusty w dest przed uruchomieniem remove_dir_all(src). Poprzednie sprawdzenie rozmiaru 97% sprawdzało tylko miner/wallet.dat, co tolerowałoby cichą utratę mniejszego portfela pomocniczego.
  • Pool i solver Metal są teraz poprawnie zamykane przy wychodzeniu z aplikacji. stop_node_blocking sygnalizuje pool_stop, oczekuje na pool_handle z 3-sekundowym timeoutem (przerywając JoinHandle przy przekroczeniu) i czyści status pula. Solver Command zyskał .kill_on_drop(true), żeby upuszczony JoinHandle pożnął subproces zamiast zostawiać go przypiętego przy 100% GPU po wyjściu.
  • Snapshot.dat nie jest już usuwany zanim loadtxoutset faktycznie się powiedzie. Nowa trwała flaga EasyBtxState.snapshot_loaded jest ustawiana TYLKO gdy loadtxoutset się powiedzie (lub gdy getchainstates już zgłasza chainstate snapshotu). Wszyscy wywołujący disk::reclaim_disk teraz czytają tę prawdziwą flagę zamiast setup_complete (która przełącza się przy bindzie RPC, przed ładowaniem snapshotu w tle). Zamknięcie aplikacji w trakcie ładowania nie kasuje już snapshotu i nie wymusza pełnej resynchronizacji od genezy.
  • Strażnik wyjścia solvera zapobiega zapaści kursora nonce. solve_next_nonce teraz przesuwa się tylko gdy tries_used > 0 ORAZ nonce64_end >= solve_next_nonce (monotonicznie). Zdegenerowane {"found":false} z brakującym nonce64_end resetowało kursor do 1, powodując duplikaty zgłoszeń share (kod 22).

Naprawienia o dużym wpływie

  • repair_node nie przełącza już po cichu na portfel "miner". Teraz czyta state.active_wallet (odzwierciedlając wzorzec reclaim_disk_now) przed przebudowaniem wallet_rpc. To naprawa H1 z PR #12, która nie była jeszcze tu zastosowana.
  • move_datadir_to odrzuca woluminy exFAT / FAT. Ostrzeżenie list_external_volumes jest teraz egzekwowane na granicy przenoszenia, nie tylko pokazywane jako tooltip.
  • apply_node_update faktycznie zamienia na nowy binarny plik btxd. Wcześniej był no-op (nowa instalacja nigdy nie była ponownie używana). Teraz zapisuje nowy tag (EasyBtxState.btx_release_tag), zatrzymuje działający kontroler i restartuje go względem nowych plików binarnych. check_node_update/get_node_status honorują zapisany tag, więc baner aktualizacji przestaje się przyklejać.
  • Zmiana ntime w trakcie rozwiązywania resetuje kursor nonce. Gdy nieczyste powiadomienie zmienia ntime lub merkleroot, następne rozwiązywanie restartuje od początku naszego okna nonce (zamiast mijać niskie nonce nowego nagłówka).
  • clean_jobs=true nie ściga już właśnie wyjętego solvera w starym przesłaniu. Ścieżka czystego zabicia opróżnia stdout martwego potomka i czyści solving_job, więc spóźniony o mikrosekundę wynik solvera kończy się niepowodzeniem przy bramce przesyłania.
  • Kolizja archiwum _corrupt-<ts> nie może już trwale usunąć łańcucha. Znaczniki czasu poniżej mikrosekundy i licznik -N zapobiegają kolizji. Przy nieudanym rename archiwum teraz zwracamy Err i zostawiamy src na miejscu (wcześniej remove_dir_all(src) w fallbacku trwale usuwało uszkodzony łańcuch, łamiąc obietnicę "nigdy nie usuwaj na twardo").
  • Rozliczenie opłat w pulu odpowiada dyscyplinie solo. Granice stop/clean-kill/deadline nie zapisują już upływu czasu zabicia jako mined_secs dewelopera. Naliczanie teraz następuje tylko w gałęzi wait-for-solver przy dających się przetworzyć wyjściach z tries_used > 0. Udział dewelopera 3,5% nie może już rosnąć w górę przy stop-churn.
  • Utrata share przy rozłączeniu jest widoczna w interfejsie. Błąd zapisu mining.submit teraz ustawia last_event = "share lost (disconnect)..." i zwiększa licznik nieaktualnych przed powrotem do pętli ponownego połączenia.
  • Niestabilna sieć nie może już utkwić "developer fee window..." na stałe. Limit skumulowanego czasu prób (300 s) wymusza przejście następnej sesji na wypłatę użytkownika, jeśli pojedyncze okno opłat nie może nawiązać połączenia.
  • Przy starcie następuje powrót do domyślnego datadir gdy wskaźnik zewnętrznego dysku wskazuje donikąd. Wcześniej wyjęty dysk między zapisem wskaźnika a usunięciem src pozostawiał aplikację utknąłą na nieistniejącej ścieżce.

Poprawność miningu i pula

  • Błędy subskrypcji i autoryzacji są teraz logowane i pokazywane w last_event (wcześniej po cichu ignorowane. Zmiana schematu po stronie pula mogła wyłączyć cały pool mining bez żadnego sygnału w interfejsie).
  • submit_id inicjalizowany z mikrosekundowej epoki czasu połączenia, żeby identyfikatory nie powtarzały się między ponownymi połączeniami.
  • Solo: po takcie Paused następna iteracja pomija burst opłaty i kopie dla użytkownika (deficyt nadrabiany w następnym niepauzowaym takcie). Zapobiega trafieniu pojedynczego bloku solo na adres dewelopera podczas flappingu pauzy synchronizacji.
  • Idempotentność snapshotu teraz weryfikuje SHA każdy istniejący snapshot.dat o pasującym rozmiarze (wcześniej plik o błędnej zawartości i dokładnie właściwym rozmiarze był akceptowany bez weryfikacji).

Portfel / wysyłanie / polishing audytu

  • Stabilny adres odbiorczy per portfel. EasyBtxState.wallet_addresses zapamiętuje adres każdego portfela. do_switch_wallet używa go ponownie przez address_is_mine zamiast bić nowy przy każdym przełączeniu.
  • Eksporty audytu / CSV do 10 000 transakcji. (Poprzedni limit 1 000 po cichu pomijał starsze wpisy długo działających minerów.)
  • Wysyłanie "Max" to teraz jawna flaga, nie heurystyka tolerancji satoshi. Frontend śledzi kliknięcie Max. Backend send_btx(.., subtract_fee) je honoruje. Wysyłanie dokładnie salda ręcznie nie zmniejsza już go po cichu.
  • Backend send_btx weryfikuje kwotę i odrzuca przekroczenia salda. Nieskończone, zerowe, ujemne i amount > spendable są odrzucane na granicy IPC (nie dopiero w btxd).
  • backup_wallet_cmd odrzuca ścieżki, których nie może skanonicalizować, i odrzuca każdą ścieżkę zawierającą komponenty ... Poprzednia luka "pomiń przy błędzie kanonikalizacji" jest zamknięta.
  • Europejskie przecinki dziesiętne przy wysyłaniu. parseFloat jest poprzedzony przez replace(/,/g, ".") w obu miejscach wywołania Send. 1,5 BTX jest teraz parsowane jako 1,5 a nie 1.
  • Sprawdzanie prefiksu btx1 w linkach eksploratora. addrExplorerUrl teraz pasuje do regex wejścia Send (^btx1[a-z0-9]{20,90}$/i), więc wiersze audytu nie mogą linkować do nieistniejących stron eksploratora.
  • Wypłata z pula ponownie weryfikuje zbuforowany adres przez address_is_mine przed przekazaniem do stratum. Bije nowy przy niezgodności.
  • Task pula jest poprawnie zatrzymywany podczas repair_node i relocate_datadir (wcześniej kontynuował przesyłanie share względem kasowanego/przenoszonego łańcucha).
  • persist_active_wallet jest zablokowane. Nowy STATE_FILE_LOCK serializuje sekwencję wczytaj - zmień - zapisz, żeby podwójne kliknięcie nie mogło tracić aktualizacji.

Bezpieczeństwo (audyt /cso)

  • Log pula przeniesiony z /tmp i zabezpieczony. Logi są teraz w $HOME/.easybtx/pool.log (fallback /tmp gdy HOME jest nieustawione), otwierane z mode(0o600) i O_NOFOLLOW. Powierzchnia world-readable / podatna na symlinki zamknięta.
  • gpu_uuid wysyłane do pula to teraz solony SHA-256, nie surowy IOPlatformUUID. Hash jest stabilny per instalacja (żeby korelacja worker pula nadal działała), ale surowy identyfikator sprzętu już nie opuszcza maszyny.
  • RpcClient::for_wallet percent-koduje nazwę portfela do ścieżki. Obecnie bezpieczne z konwencji (wszyscy wywołujący walidują). Teraz egzekwowane na poziomie funkcji zamiast przez dyscyplinę recenzenta.

Wewnętrzne / porządki

  • Wersja: 0.1.13 do 0.2.0 (package.json, tauri.conf.json, Cargo.toml).
  • EasyBtxState zyskał snapshot_loaded, btx_release_tag i wallet_addresses (wszystkie #[serde(default)]; starsze pliki stanu nadal się wczytują).
  • STATE_FILE_LOCK wprowadzony w state.rs do serializacji wzorca wczytaj - zmień - zapisz. Zapisy stanu przez reset_account / restore_wallet / first_run_setup teraz przechodzą przez niego.
  • Jeden znany przestarzały link dokumentacji TODO(H3-followup) w apply_node_update wskazujący na bezproblemowy ponowny uzbrojenie RPC w sesji (ścieżka z zapisanym tagiem i restartem jest dostarczona. Oczekiwanie na cookie w sesji to follow-up).

v0.1.13

2026-05-28

Dodano

  • Wiersz salda przychodzącego. Otrzymana płatność, która jeszcze nie potwierdziła (untrusted_pending), pojawia się teraz jako wyraźny wiersz "Przychodzące ... potwierdzanie" zamiast wyglądać na zaginioną aż do potwierdzenia. Dostępne saldo pozostaje tylko z zaufanych środków, więc Wysyłanie nigdy nie może go przekroczyć.
  • Linki do eksploratora bloków. Identyfikatory transakcji i adresy w Wysyłaniu, Odbieraniu i Audycie/Przeglądzie otwierają się na explorer.minebtx.com (skrócone, z możliwością kopiowania i otwierania). Ekran potwierdzenia wysyłania pokazuje pełny adres odbiorcy, żebyś mógł go zweryfikować.
  • Wysyłanie: przycisk "Max" i bezpieczne pełne wysyłanie. Przycisk Max wypełnia pełne dostępne saldo, a wysyłanie całego salda odejmuje teraz opłatę sieciową z kwoty zamiast kończyć się "niewystarczające środki". Adres odbiorcy jest też sprawdzany przed krokiem potwierdzenia.
  • Odzyskaj miejsce. Przycisk Ustawienia - Przechowywanie (i automatyczne przejście przy starcie) zwalnia miejsce na dysku przez usunięcie nieużywanych blockfilterindex/coinstatsindex, snapshotu assumeutxo po załadowaniu i zbyt dużego debug.log. Łańcuch bloków i portfel nigdy nie są tknięte.

Pul

  • Popup informacji o wypłatach z pula teraz pokazuje prawdziwą politykę (co tydzień w piątki o 18:00 UTC, minimum 0,0001 BTX, opłata pula 2,5%) zamiast niejasnych sformułowań.
  • easyBTX identyfikuje się teraz w pulu jako easybtx/<version>, żeby pul mógł segmentować minerów eBTX do statystyk. Informacje sprzętowe dają Twojemu workerowi kanoniczną nazwę w panelu.

Naprawiono

  • Pre_hash bloku pula. Metal share-solver teraz egzekwuje bramkę pre_hash bloku (sigma <= block_target << epsilon) zamiast jej omijać dla share'ów, żeby share'y na poziomie bloku były prawidłowymi blokami a submitblock pula przestał kończyć się błędem "matmul phase2 proof of work failed". easyBTX deklaruje zdolność pre_hash_block_tier_v18 w mining.subscribe. (Zmiana solvera znajduje się w btx-main. Patrz docs/patches/btx-prehash-block-tier.patch.)

Zmieniono

  • Moc miningu to teraz suwak na żywo na górze karty statystyk. Rozgrzewa się z zielonego do pomarańczowo-czerwonego w miarę jak go przesuwasz (kroki 5%, przycisk Max), i pozostaje zsynchronizowany z suwakiem Ustawień. Stare wiersze odczytu szybkości/mocy zniknęły, więc karta jest krótsza. Znak informacyjny na suwaku wyjaśnia dobre praktyki (ok. 50% przy lekkich zadaniach utrzymuje Maca chłodnym i cichym; 100% jest najszybsze ale gorące i rozładowuje baterię).
  • Aktywny portfel jest teraz pobierany wyłącznie z backendu (jedyne źródło prawdy). Frontend nie stosuje już portfela z localStorage, więc chip portfela i adres nie mogą chwilowo się rozjechać.
  • Karta zarobków pula jest krótsza: wyjaśnienie wypłat przeniesione do popupu ze znakiem informacyjnym obok "Zaakceptowane share'y", a worker siedzi obok linku "Otwórz panel pula", żeby czytały się jako para.