Rand Wallet برای Android
یک اپلیکیشن بومی Java روی هستهٔ مشترک کیف پول به زبان Rust که بهصورت کتابخانهٔ بومی بارگذاری میشود. کلید خرج زیر کلیدی رمزگذاری میشود که Keystore اندروید نگه میدارد، پشتیبانگیری خاموش است و نسخههای منتشرشده فقط با HTTPS ارتباط برقرار میکنند.
فهرستشدن در Google Play هنوز در انتظار است. تا زمانی که بازبینی آن به پایان برسد، نسخهٔ 0.8.0 را از دانلود زیر نصب کنید یا آن را از سورس بسازید.
- ساختهشده با
- Java
- توزیع از طریق
- Google Play، ابتدا با آزمایش باز
- نیازمندیها
- Android 8 (API 26) یا جدیدتر، arm64 یا x86_64
- ارسال
- روی گوشی اثبات میسازد، یا از طریق اثباتگر RandProtocol
نسخهٔ 0.8.0
فایلها به انتشار v0.8.0 در GitHub پیوست شدهاند؛ دکمههای اینجا پیوند به آنها هستند و هیچ چیزی از این سایت ارائه نمیشود.
- فایل را روی گوشی باز کنید و وقتی Android پرسید نصب را مجاز کنید، یا از رایانه روی آن adb install اجرا کنید.
- بسته با کلید اختصاصی همین پروژه امضا شده است. برای بررسی، apksigner verify --print-certs باید 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 با کلید خودش امضا میکند؛ بنابراین وقتی فهرست آنجا فعال شود، Android از شما میخواهد پیش از نصب آن نسخه، این نسخه را حذف کنید. ابتدا فایل کلید خود را از تنظیمات صادر کنید.
# با SHA256SUMS که در همان پوشهای که فایل قرار دارد دانلود شده باشد
shasum -a 256 -c SHA256SUMS --ignore-missing # macOS
sha256sum -c SHA256SUMS --ignore-missing # Linux
# یا مجموعکنترلی یک فایل را چاپ کنید و آن را با مقدار بالا مقایسه کنید
shasum -a 256 rand-wallet-0.8.0-android.apk تطابق مجموعکنترلی نشان میدهد که فایل همان چیزی است که منتشر شده است. این نشان نمیدهد که فایل از روی سورس ساخته شده است: بیلدها هنوز بیتبهبیت بازتولیدپذیر نیستند، بنابراین اگر میخواهید این را بدانید، خودتان آن را بسازید.
روی گوشی اثبات میسازد، یا از طریق اثباتگر RandProtocol
روی گوشیای با حدود ۸ گیگابایت حافظه، اپلیکیشن اثبات انتقال را روی خود دستگاه میسازد، در یک سرویس پیشزمینه که تا پایان کار اعلانی نشان میدهد؛ بنابراین جابهجا شدن بین اپلیکیشنها آن را متوقف نمیکند.
اثبات یک بسته در اوج به حدود ۶٫۲ گیگابایت حافظه نیاز دارد. روی گوشیای با حافظهٔ کمتر، Android اپلیکیشن را در میانهٔ اثبات متوقف میکرد؛ از این رو مرحلهٔ بازبینی با اعداد خود دستگاه هشدار میدهد. در این حالت گوشی بهطور پیشفرض از اثباتگر RandProtocol یا از rand-prover خودتان روی https (تنظیمات ← اثباتگر) استفاده میکند و در حالی که اثباتگر اثبات را میسازد، انتقال را خودش میسازد.
دستگاهی که نتواند اثبات بسازد، بهطور پیشفرض از اثباتگرهای RandProtocol استفاده میکند: چند ماشین که اعتبارسنجها اداره میکنند (امروز چهار ماشین، زیر https://prover.randprotocol.org) و بدون کارمزد. از نسخهٔ 0.6.9 هر کدام کلید مخصوص خود را دارد که کیف پول آن را سنجاق میکند و کیف پول پیش از نخستین ارسال این را اعلام میکند. ماشینی که یک ارسال را اثبات میکند، کلید مشاهدهٔ کیف پول و یک سالت یکبارمصرف را دریافت میکند: اپراتور آن میتواند کل تاریخچهٔ کیف پول، یعنی هر پرداخت دریافتی و ارسالی را بخواند، اما نمیتواند خرج کند. کلید خرج هرگز دستگاه شما را ترک نمیکند و خود دستگاه اثبات کوچک مجوز را میسازد. برای حریم خصوصی بیشتر، اثباتگر خودتان را در تنظیمات ← اثباتگر انتخاب کنید؛ از آن پس همیشه همان ترجیح داده میشود. کیف پول هر اثبات را پیش از ارسال بررسی میکند.
جفتسازی یک prover، گامبهگام: docs/prover.md.
کلید کجا نگهداری میشود
کلید خرجکردن تنها رازِ کیفپول است. هیچ حساب کاربری یا سروری که نسخهای از آن را نگه دارد وجود ندارد: اگر کلید را گم کنید هیچکس نمیتواند آن را بازیابی کند؛ پس وقتی کیفپول آن را نشانتان میدهد، ذخیرهاش کنید.
مبادله، درون اپلیکیشن
از نسخهٔ 0.7.1 اپلیکیشنهای گوشی همان صفحهٔ مبادلهای را دارند که افزونهها و اپلیکیشن دسکتاپ دارند: RAND و توکنها را از طریق استخرهای durian.market بدون ترک کیف پول معامله کنید. گوشی اثبات فراخوانی برنامه و مجوز خرج را خودش میسازد که حدود ۱٫۵ گیگابایت حافظه میخواهد، و اثباتگرهای RandProtocol اثبات بزرگ را میسازند. مقداری که دریافت میکنید دقیق است؛ اگر استخر پیش از شما تغییر کند، چیزی ارسال نمیشود و قیمت تازهای دریافت میکنید.
یا خودتان بسازید
- یک APK اشکالزدایی از مخزن clients بسازید و با adb روی گوشی یا روی شبیهساز arm64 یا x86_64 (API 36) نصب کنید.
- از درون شبیهساز، نودی که روی رایانهٔ خودتان است http://10.0.2.2:8545 است؛ نسخههای اشکالزدایی فقط به آن نشانی و به localhost اجازهٔ ارتباط بدون رمزگذاری میدهند.
زنجیرهٔ ابزار: Rust 1.98.1، که در مخزن پین شده است و rustup آن را نصب میکند. راهنمای ساخت همهٔ کلاینتها را از یک دستگاه تمیز پوشش میدهد. پوشههای سورس: android/, core/.
git clone --recurse-submodules https://github.com/randprotocol/clients.git && cd clients
git checkout v0.8.0 && git submodule update --init # نسخهٔ نهایی؛ 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 کارهایی که انجام میدهد، روی هر پلتفرم
- ساخت کیفپول
- یک کلید خرجکردن که روی دستگاه تولید میشود و یک بار نشان داده میشود تا ذخیرهاش کنید، و نشانی rand1… که از آن مشتق میشود. یک کلید موجود را وارد کنید، یا یک wallet.key.json از CLI مربوط به rand؛ هر کلاینت همین فایل را صادر میکند.
- دریافت و ارسال
- موجودی شما مجموعهی noteهایی است که فقط کلید شما میتواند بازشان کند؛ کیفپول درخت تعهد را پویش میکند تا آنها را بیابد. انتقال RAND یا هر توکن RPL فهرستشده یک bundle چهار-ورودی چهار-خروجی است که یک اثبات آن را مجاز میکند. هیچکس فرستنده، گیرنده، مبلغ یا دارایی جابهجاشده را نمیفهمد.
- Faucet
- روی یک testnet با faucet باز، یک ضربه ۱۰۰ RAND را در یک note میریزد که فقط شما میتوانید بازش کنید.
- فقط آنچه میخواهید افشا کنید
- کلید مشاهدهی خود را کپی کنید و My history را در RandScan باز کنید تا هر note را که فرستاده یا دریافت کردهاید ببینید، یا کلید تراکنش یک پرداخت را کپی کنید تا دقیقاً همان پرداخت و هیچ چیز دیگر را افشا کنید. explorer در مرورگر شما رمزگشایی میکند و کلید را هرگز به جایی نمیفرستد.
کلیدهای مشاهده و کلیدهای تراکنش در randscan.org باز میشوند.
پیش از ارسال هر چیزی
- زنجیره
- نقطهٔ پایانی عمومی، زنجیرهٔ ۲۱ را سرویس میدهد که از 12 Oct 2026 10:31 UTC فعال است (بر پایهٔ fullnode v0.8.0 ساخته شده). هستهٔ کیف پول، fullnode v0.8.0 (c0878c3) را vendor میکند و هر زنجیرهٔ دیگری را رد میکند: زنجیرهٔ ۲۱ با مجموعهٔ قیود ۹ اجرا میشود، بنابراین کیف پول 0.7.x نمیتواند روی آن ارسال کند و این نسخه نمیتواند روی زنجیرهٔ ۲۰ ارسال کند. کلیدها و نشانیها منتقل میشوند؛ کیف پولی که زنجیرهٔ ۲۰ را اسکن کرده بود، یک بار بنر «زنجیرهٔ متفاوت» را نشان میدهد و از ژنزیس زنجیرهٔ ۲۱ دوباره اسکن میکند. واریزها و برداشتهای پل، کارمزد 0.1% به zUSD را حفظ میکنند که کیف پول پیش از برداشت نشان میدهد.
- نقطهی پایانی RPC
- Settings → Network. پیشفرض https://rpc.randprotocol.org است؛ هر RPC از rand-node که به آن دسترسی دارید کار میکند، و نشانی ذخیرهشده پیش از نگهداشتن بررسی میشود
- اثباتسازی
- اثبات یک bundle در اوج حدود ۶٫۲ گیگابایت حافظه مصرف میکند و روی پردازندهی یک لپتاپ حدود یک دقیقه طول میکشد
- وضعیت
- نرمافزار آزمایشی testnet. ممیزی نشده است. RAND روی testnet ارزش واقعی ندارد
- پروانه
- GPL-3.0-only، مانند crateهای full node که هر کلاینت به آنها پیوند میخورد
یک کیفپول، هر پلتفرم
همان فایل کلید، قالب نشانی و قواعد در همهجا: کیفپولی که اینجا ساخته شود در هر کلاینت دیگر و در CLI rand وارد میشود.