Rand Wallet na Androida
Natywna aplikacja w Javie oparta na wspólnym rdzeniu portfela w Rust, ładowanym jako biblioteka natywna. Klucz wydatkowania jest szyfrowany kluczem przechowywanym w Android Keystore, kopia zapasowa jest wyłączona, a wersje wydaniowe łączą się wyłącznie przez HTTPS.
Wpis w Google Play oczekuje na publikację. Do czasu zakończenia weryfikacji zainstaluj wersję 0.8.0 z pliku poniżej albo zbuduj ją ze źródeł.
- Zbudowano w
- Java
- Dystrybucja przez
- Google Play, najpierw otwarte testy
- Wymaga
- Android 8 (API 26) lub nowszy, arm64 lub x86_64
- Wysyłanie
- Dowód powstaje na telefonie lub za pośrednictwem provera RandProtocol
Wersja 0.8.0
Pliki są dołączone do wydania v0.8.0 na GitHub; przyciski tutaj są odnośnikami do nich, a z tej witryny nie jest serwowany żaden plik.
- Otwórz plik na telefonie i zezwól na instalację, gdy Android o to zapyta, albo uruchom na nim adb install z komputera.
- Pakiet jest podpisany kluczem własnym tego projektu. Aby to sprawdzić, apksigner verify --print-certs powinno wypisać SHA-256 75:22:2E:BF:22:D3:95:80:A5:11:2A:AC:B7:EC:2E:03:93:91:07:77:96:E0:45:1D:7B:CF:E3:7E:FA:06:53:52.
- Google Play podpisuje własnym kluczem, więc gdy wpis będzie aktywny, Android poprosi o usunięcie tej kopii przed zainstalowaniem tamtej. Najpierw wyeksportuj plik z kluczem w Ustawieniach.
# z plikiem SHA256SUMS pobranym do tego samego folderu co plik
shasum -a 256 -c SHA256SUMS --ignore-missing # macOS
sha256sum -c SHA256SUMS --ignore-missing # Linux
# albo wypisz sumę jednego pliku i porównaj ją z podaną powyżej
shasum -a 256 rand-wallet-0.8.0-android.apk Zgodna suma oznacza, że plik jest tym, który został opublikowany. Nie oznacza, że plik zbudowano z kodu źródłowego: kompilacje nie są jeszcze odtwarzalne bit po bicie, więc jeśli właśnie to chcesz wiedzieć, zbuduj go samodzielnie.
Dowód powstaje na telefonie lub za pośrednictwem provera RandProtocol
Na telefonie z około 8 GB pamięci aplikacja generuje dowód przelewu na urządzeniu, w usłudze działającej na pierwszym planie z powiadomieniem na czas pracy, więc przełączenie aplikacji jej nie zatrzymuje.
Dowód pakietu osiąga szczyt około 6,2 GB. Na telefonie z mniejszą ilością pamięci Android zatrzymałby aplikację w trakcie generowania dowodu, dlatego krok przeglądu ostrzega, podając wartości z samego urządzenia. Telefon korzysta wówczas domyślnie z providera RandProtocol albo z własnego rand-prover przez https (Ustawienia → Prover) i buduje przelew, podczas gdy prover generuje dowód.
Urządzenie, które nie potrafi wygenerować dowodu, domyślnie korzysta z proverów RandProtocol: kilku maszyn prowadzonych przez walidatorów (obecnie czterech, pod adresem https://prover.randprotocol.org), bez opłat. Od wersji 0.6.9 każdy z nich ma własny klucz, który portfel przypina, a portfel informuje o tym przed pierwszym wysłaniem. Maszyna, która generuje dowód wysyłki, otrzymuje klucz podglądu portfela oraz jednorazową sól: jej operator może odczytać całą historię portfela, każdą płatność otrzymaną i wysłaną, ale nie może niczego wydać. Klucz wydatkowania nigdy nie opuszcza Twojego urządzenia, które samo generuje niewielki dowód autoryzacji. Aby zyskać większą prywatność, wybierz własnego provera w Ustawienia → Prover; jest on wtedy zawsze preferowany, a portfel sprawdza każdy dowód przed jego przesłaniem.
Parowanie provera, krok po kroku: docs/prover.md.
Gdzie przechowywany jest klucz
Klucz wydawania (spend key) to jedyny sekret portfela. Nie ma konta ani serwera przechowującego jego kopię: po utracie klucza nikt go nie odtworzy, więc zapisz go, gdy portfel go wyświetli.
Swap w aplikacji
Od wersji 0.7.1 aplikacje na telefony mają ekran Swap, który znają rozszerzenia i aplikacja na komputer: handluj RAND i tokenami przez pule durian.market, nie opuszczając portfela. Telefon samodzielnie generuje dowód wywołania programu i autoryzację wydatku, co wymaga około 1,5 GB pamięci, a duży dowód generują provery RandProtocol. Otrzymywana kwota jest dokładna; jeśli pula zmieni się wcześniej, nic nie zostaje wysłane i otrzymasz nową wycenę.
Albo zbuduj ją samodzielnie
- Zbuduj debugowy plik APK z repozytorium clients i zainstaluj go za pomocą adb, na telefonie lub na emulatorze arm64 albo x86_64 (API 36).
- Z emulatora węzeł na Twoim komputerze jest dostępny pod adresem http://10.0.2.2:8545; wersje debugowe dopuszczają niezaszyfrowane połączenia tylko z tym adresem i z localhost.
Zestaw narzędzi: Rust 1.98.1, przypięty w repozytorium i instalowany przez rustup. Przewodnik budowania obejmuje każdego klienta, zaczynając od czystej maszyny. Katalogi ze źródłami: android/, core/.
git clone --recurse-submodules https://github.com/randprotocol/clients.git && cd clients
git checkout v0.8.0 && git submodule update --init # wydanie; core/vendor/fullnode @ v0.8.0 (c0878c3)
core/scripts/build-android.sh # → android/app/src/main/jniLibs/ (JDK 17, SDK 36, NDK 27)
cd android && ./gradlew assembleDebug # → app/build/outputs/apk/debug/app-debug.apk
adb install -r app/build/outputs/apk/debug/app-debug.apk Co robi na każdej platformie
- Utwórz portfel
- Klucz wydawania generowany na urządzeniu, pokazany jednorazowo do zapisania, oraz wyprowadzony z niego adres rand1…. Zaimportuj istniejący klucz lub wallet.key.json z rand CLI; każdy klient eksportuje ten sam plik.
- Odbieraj i wysyłaj
- Twoje saldo to zbiór notatek, które może otworzyć tylko Twój klucz; portfel skanuje drzewo zobowiązań, aby je znaleźć. Transfer RAND lub dowolnego tokena RPL z listy to jeden pakiet 4-in-4-out autoryzowany dowodem. Nikt nie dowiaduje się, kto jest nadawcą, kto odbiorcą, jaka kwota ani który składnik majątku został przesłany.
- Faucet
- W testnet z otwartym faucetem jedno dotknięcie wybija 100 RAND do notatki, którą może otworzyć tylko Ty.
- Ujawniaj tylko to, co wybierzesz
- Skopiuj swój klucz podglądu i otwórz My history w RandScan, aby zobaczyć każdą notatkę wysłaną lub otrzymaną, albo skopiuj klucz transakcji jednej płatności, aby ujawnić dokładnie tę płatność i nic więcej. Eksplorator odszyfrowuje w Twojej przeglądarce i nigdzie nie wysyła klucza.
Klucze podglądu i klucze transakcji otwierają się w randscan.org.
Zanim cokolwiek wyślesz
- Łańcuch
- Publiczny punkt końcowy obsługuje chain 21, działający od 12 Oct 2026 10:31 UTC (wydany na fullnode v0.8.0). Rdzeń portfela dołącza fullnode v0.8.0 (c0878c3) jako zależność vendorowaną i odrzuca każdy inny chain: chain 21 działa na zestawie ograniczeń 9, więc portfel 0.7.x nie może na nim wysyłać, a to wydanie nie może wysyłać na chain 20. Klucze i adresy są przenoszone; portfel, który skanował chain 20, raz wyświetla baner o innym chain i ponownie skanuje od bloku genezy chain 21. Wpłaty i wypłaty przez most mają opłatę 0,1% w zUSD, którą portfel pokazuje przed wypłatą.
- Endpoint RPC
- Settings → Network. Domyślnie https://rpc.randprotocol.org; działa każdy rand-node RPC, do którego masz dostęp, a zapisany adres URL jest sprawdzany, zanim zostanie zachowany
- Dowodzenie
- Dowód pakietu osiąga szczyt około 6,2 GB pamięci i trwa około minuty na procesorze laptopa
- Status
- Eksperymentalne oprogramowanie testnet. Bez audytu. RAND w testnet nie ma realnej wartości
- Licencja
- GPL-3.0-only, tak jak crate'y pełnego węzła, które linkuje każdy klient
Jeden portfel, każda platforma
Ten sam plik klucza, ten sam format adresu i te same zasady wszędzie: portfel utworzony tutaj importuje się do każdego innego klienta i do CLI rand.