Browser de documentație
Feather are acum un browser de documentație offline. Acesta este accesibil prin apăsarea butonului "Ajutor" din vrăjitor sau accesând Ajutor → Documentație.
Introduceți un cuvânt cheie în bara de căutare pentru a filtra lista de articole și a evidenția corespondențele.
Dacă observați o eroare sau nu găsiți ceea ce căutați, luați în considerare deschiderea unei probleme pe pană-documente repo.
Mesaje de eroare îmbunătățite
În unele cazuri, mesajele de eroare furnizează prea puține informații pentru a fi utile sau prea multe și devin confuze. Am întâlnit recent acest post, care a evidențiat această problemă și m-a determinat să fac o schimbare.
Majoritatea mesajelor de eroare provin de la biblioteca wallet. Aceasta nu se sfiește să utilizeze terminologia internă și adesea include informații inutile, cum ar fi trimiteri la codul sursă. Acest lucru este util pentru dezvoltatori, dar nu atât de mult pentru utilizatorii care încearcă să înțeleagă ce a mers prost și ce să facă în legătură cu asta.
Pentru a rezolva această problemă, multe mesaje de eroare au fost rescrise pentru a fi mai clare și mai ușor de aplicat. Acestea ar trebui să respecte acum un format care urmărește să răspundă la următoarele întrebări:
- Ce acțiune a mers prost?
- De ce a mers prost?
- [Ce pot să fac în această privință?]
- [Unde pot afla mai multe?]
De exemplu, încercarea de a trimite o tranzacție atunci când portofelul nu a terminat încă sincronizarea arată acum:
Apăsând "Ajutor" se deschide browserul de documente cu mai multe informații despre sincronizarea portofelului pentru a ajuta un utilizator curios să înțeleagă de ce portofelul trebuie să fie sincronizat pentru a putea trimite o tranzacție.
Scrierea unei documentații bune pentru fiecare caz este o muncă în progres. Dacă vedeți un mesaj de eroare confuz, luați în considerare raportarea acesteia.
Recuperarea semințelor
A fost adăugat un instrument de recuperare a semințelor care poate ajuta la recuperarea semințelor Polyseeds deteriorate sau parțiale.
Ocazional, primesc un e-mail de la cineva care încearcă să restaureze un portofel dintr-o copie de rezervă, dar nu poate descifra unele dintre cuvinte. Scris de mână prost, o pată de cafea, o imagine care a fost tăiată prost etc. Lipsesc prea multe informații pentru a fi practică parcurgerea manuală, dar nu suficiente pentru a face recuperarea imposibilă din punct de vedere computațional.
Instrumentul vă permite să introduceți toate informațiile pe care le dețineți despre fraza de semințe. Regex este acceptat pentru cuvintele parțiale. Acesta va trece prin toate frazele posibile având în vedere cuvintele (întregi, parțiale sau goale) furnizate. Polyseeds include o sumă de control pe 11 biți, astfel încât numai un subset de fraze de semințe este valabil. O adresă asociată cu portofelul poate fi furnizată opțional pentru a verifica automat dacă oricare dintre frazele valide produce un portofel care conține adresa respectivă.
Pentru informații despre cum să accesați și să utilizați instrumentul, consultați documentația aici.
Mașina timpului bump
Eliberările pană sunt bootstrappable. Acest lucru înseamnă că instrumentele utilizate pentru a construi Feather sunt construite din sursă, iar instrumentele care construiesc aceste instrumente sunt, de asemenea, și instrumentele care construiesc cele instrumentele sunt, de asemenea, și așa mai departe.
Dar, cu siguranță, acest lucru nu poate continua la nesfârșit și ceva nu poate veni din nimic. La rădăcina graficului de pachete se află un semințe binare, un set minim de binare care nu pot fi compilate din sursă. Acesta obișnuia să fie ~60 MB Semințe binare reduse suplimentar.
Cu această versiune, sistemul nostru Guix mașină de timp a fost actualizat la un commit pe 15 mai. Construcțiile Feather beneficiază acum de Bootstrap full-source. Rădăcina grafului pachetului este acum un graf puternic adnotat 357-byte program, cunoscut sub numele de hex0.
Este cod sursă până la capăt! Fiecare pas al procesului de construcție este auditabil și nu trebuie să avem încredere în potențial rău intenționat binare.
Un avertisment important este că, deși toate pachetele sunt construite din sursă, driverul care este utilizat pentru a construi pachetele inițiale nu este. Eliminarea acestui driver este următorul pas în construcțiile bootstrappable.
(Lucrarea este în curs de desfășurare pentru a aduce compilații bootstrappable în nucleul Monero repo.)
Eliberarea atestatului
Lansările Feather sunt reproductibile. Oricine are o mașină Linux x64 și Guix (managerul de pachete) instalat poate crea o copie identică bit pentru bit a tuturor artefactelor de lansare prin rularea o singură comandă.
Singura modalitate de a verifica dacă o versiune este de fapt reproductibilă este de a o construi de mai multe ori, pe sisteme diferite. În timp ce compilările se fac în interiorul unui container cu un mediu de compilare normalizat, nedeterminismul încă se poate strecura (printre altele) din proprietățile mașinii de compilare, cum ar fi nucleul, arhitectura CPU sau sistemul de fișiere montat prin bind. Cu cât setul de mașini pe care este construit software-ul este mai divers, cu atât putem fi mai siguri că nu există cerințe nedocumentate pentru reproducere.
Această versiune adaugă atestarea versiunii, denumită uneori reproducere verificată. Dacă sunteți familiarizați cu procesul de construcție reproductibil al Monero, acesta funcționează la fel ca gitian.sigs
. Oricine poate construi Feather, semna hașurile ieșirilor și le poate depune la un depozit comun. Hașurile pot fi apoi în comparație cu verificarea că construcțiile sunt reproductibile.
Cu atestarea versiunii, utilizatorii care nu construiesc de la sursă pot fi mai siguri că versiunile sunt reproductibile, deoarece mai mulți contribuitori vor fi produs în mod independent binari identici. În cazul în care apare nedeterminismul, acesta poate fi remediat înainte de lansare.
Mulțumiri speciale lui /u/MoneroArbo pentru că a ajutat la verificarea reproducerii acestei versiuni. Prima lor compilare (pentru 2.5.0) a dezvăluit o presupunere nedocumentată cu privire la umask
, care se scurge în container și poate introduce non-determinism atunci când fișierele nou create sunt arhivate.
Dacă doriți să contribuiți la verificarea acestei versiuni, urmați instrucțiunile aici pentru a construi Feather și a crea un atestat. Vă recomandăm să utilizați o mașină cu cel puțin 8 nuclee și 32 GB de memorie, deși aceasta nu este o cerință.
Lansare oficială Flatpak
Feather are acum un Flatpak oficial.
Au fost depuse multe eforturi pentru a ne asigura că are aceleași garanții de securitate a construcției ca și celelalte versiuni ale noastre. Flatpak este bootstrappabil și reproductibil. Nu are dependență de niciun runtime terț și nu necesită încredere în infrastructura Flathub.
Depozitul este găzduit pe feather-wallet.org și toate comenzile sunt semnate cu eliberare cheie de semnare, permițând utilizatorilor să verifice autenticitatea.
Este, de asemenea, mic în comparație cu majoritatea Flatpaks, cântărind doar ~30 MB (comprimat). Acesta este timpul de execuție (gol) + aplicația. Acesta include numai fișierele necesare pentru ca aplicația să ruleze, nici măcar un shell sau coreutils.
Pentru mai multe informații despre considerentele care au stat la baza acestei decizii, consultați postarea aici.
Pentru a instala Flatpak-ul oficial, pur și simplu rulați:
flatpak install --from https://feather-wallet.org
și urmați instrucțiunile aici pentru a vă verifica descărcarea.
Corecții de erori și îmbunătățiri
- Feather pornește acum cu exact o secundă mai repede
- Primește: a adăugat o opțiune pentru a afișa schimbarea adreselor
- Asistent: selectează automat primul portofel, dacă acesta există
- Ledger: cheia de vizualizare privată este acum disponibilă în Portofel -> Chei
- Numele de utilizator/parola nodului nu mai sunt uitate la repornire
- Minerit: permite adăugarea de opțiuni suplimentare în linia de comandă
- Toate fișierele pot fi selectate acum la importul de tranzacții (ne)semnate
- Instalatorul Windows va abandona acum dacă rulează pe o versiune nesuportată a sistemului de operare
- A fost rezolvată o problemă care putea cauza neactualizarea filei Istoric la o tranzacție primită
- Trimite: șterge descrierea donației dacă adresa a fost schimbată
- S-a rezolvat o problemă care putea duce la o blocare
- S-a rezolvat o problemă de construcție pe platformele musl
- Unele îmbunătățiri cosmetice pentru macOS
Alte modificări
Multe dependențe (legate static) au fost actualizate în această versiune. Inclusiv Monero la v0.18.3.1, Qt la 6.6.0, OpenSSL la 3.1.3, Boost la 1.83.0 și Tor la 0.4.7.15.
În anticiparea codurilor QR animate pentru semnarea tranzacțiilor offline, biblioteca ZBar, utilizată pentru scanarea codurilor QR, a fost înlocuită cu biblioteca mai rapidă și întreținută activ ZXing-cpp bibliotecă.
noastre tip2 Runtime-ul AppImage a fost actualizat la cea mai recentă versiune și utilizează acum fuse3. Acest lucru nu rezolvă problema o problemă cu AppImageLauncher, care produce o eroare atunci când încearcă să instaleze AppImage. Utilizatorilor li se recomandă să dezinstaleze AppImageLauncher sau să elimine .AppImage
din fișier.
Această versiune renunță la suportul pentru Qt 5, care a fost EOL de la 26 mai și nu mai primește actualizări publice de securitate. Versiunea minimă Qt necesară pentru a construi Feather este acum 6.3. Versiunile oficiale au trecut deja la Qt 6 în ianuarie.
Două documente au fost adăugate la repo:
- RELEASE.md descrie procesul de eliberare.
- MAINTENANCE.md definește prioritățile de întreținere și obiectivele de dezvoltare.
Consultați ultimul document dacă sunteți interesat să aflați mai multe despre direcția în care se îndreaptă proiectul.
Cerințe de semnare a codurilor macOS
Este din ce în ce mai dificil să livrați aplicații necodate pentru macOS.
Aplicații pentru Apple Silicon care vizează macOS 10.15 sau o versiune ulterioară nu va porni dacă sunt descărcate pe internet, chiar dacă sunt codate ad-hoc, ceea ce Feather face acum.
O soluție implică eliminarea unui xattr folosind terminalul, dar acest lucru nu este ceva ce putem cere în mod rezonabil de la utilizatorii non-tehnici.
Din păcate, nu este posibil să obțin un certificat Developer ID emis de Apple fără a-mi pune în pericol identitatea, ceea ce nu mă simt confortabil să fac în acest moment.
Dacă puteți obține un certificat de codeigning emis de Apple și sunteți dispus să îmi acordați acces la acesta, vă rugăm să contactați [email protected]. Toate cheltuielile și timpul alocat vor fi compensate în XMR.
Notă: deși versiunile actuale nu sunt "codate" în conformitate cu definiția Apple, toate versiunile sunt semnate GPG cu cheia noastră de semnare a versiunilor. Pentru a verifica autenticitatea unei versiuni, urmați instrucțiunile din ghid de instalare.