Rand Protocol
وب

Rand Wallet روی وب

همان کیف‌پول در یک زبانه‌ی معمولی مرورگر، که یک سرور کوچک فقط-loopback آن را از دستگاه خودتان سرو می‌کند. عمداً در هیچ جا میزبانی نمی‌شود: یک کیف‌پول وب فقط به اندازه‌ی مبدأیی که آن را سرو می‌کند قابل اعتماد است، و این یکی را خود شما سرو می‌کنید.

در هیچ‌جا میزبانی نشده است. آن را از یک کپی از مخزن کلاینت‌ها یا از آرشیو سورس، در پایین، اجرا کنید.

آیکون Rand Wallet
ساخته‌شده با
JavaScript · هسته‌ی WebAssembly
توزیع از طریق
یک checkout از مخزن clients که روی دستگاه خودتان سرو می‌شود
نیازمندی‌ها
Node 20 یا جدیدتر؛ یک مرورگر به‌روز
ارسال
از طریق prover شبکه‌ی RandProtocol یا prover خودتان ارسال می‌کند
دانلود

نسخهٔ 0.8.0

فایل‌ها به انتشار v0.8.0 در GitHub پیوست شده‌اند؛ دکمه‌های اینجا پیوند به آن‌ها هستند و هیچ چیزی از این سایت ارائه نمی‌شود.

  1. آن را از حالت فشرده خارج کنید و web/wallet/serve.sh را درون آن اجرا کنید، دقیقاً مانند یک checkout از git. این آرشیو زیرماژول full node را در خود دارد، همان چیزی که آرشیوهای «Source code» خود GitHub آن را کنار می‌گذارند.
سورس (.tar.gz)
مخزن clients و زیرماژول آن، در یک آرشیو · 13.2 MB
دانلود
rand-wallet-0.8.0-source.tar.gz
SHA-256 91f765f8cb6853914b49b26c1ba76d467c6e02d63a3f590acac3a155b977328d
فایل دانلودشده را بررسی کنید
SHA256SUMS
# با SHA256SUMS که در همان پوشه‌ای که فایل قرار دارد دانلود شده باشد
shasum -a 256 -c SHA256SUMS --ignore-missing     # macOS
sha256sum -c SHA256SUMS --ignore-missing         # Linux

# یا مجموع‌کنترلی یک فایل را چاپ کنید و آن را با مقدار بالا مقایسه کنید
shasum -a 256 rand-wallet-0.8.0-source.tar.gz

تطابق مجموع‌کنترلی نشان می‌دهد که فایل همان چیزی است که منتشر شده است. این نشان نمی‌دهد که فایل از روی سورس ساخته شده است: بیلدها هنوز بیت‌به‌بیت بازتولیدپذیر نیستند، بنابراین اگر می‌خواهید این را بدانید، خودتان آن را بسازید.

ارسال

از طریق prover شبکه‌ی RandProtocol یا prover خودتان ارسال می‌کند

اثبات یک bundle در اوج حدود ۶٫۲ گیگابایت حافظه مصرف می‌کند و مرورگر ۴ GiB به WebAssembly می‌دهد، پس کیف‌پول وب هرگز برای خودش اثبات نمی‌سازد. این کیف‌پول انتقال را می‌سازد، از یک prover می‌خواهد اثبات را تولید کند (به‌طور پیش‌فرض prover شبکه‌ی RandProtocol، یا proverی که شما جفت کرده باشید)، اثبات را به‌صورت محلی وارسی می‌کند و آن را ثبت می‌کند.

برای اینکه تاریخچه‌ی شما نزد prover شبکه‌ی RandProtocol نماند، برنامه‌ی دسکتاپ Rand Wallet را روی همان رایانه جفت کنید (Settings → Prove for my other devices) یا rand-prover خودتان را. اثبات در حال انجام فقط در حافظه‌ی زبانه می‌ماند؛ بارگذاری دوباره‌ی صفحه در میانه‌ی اثبات‌سازی آن را فراموش می‌کند و چیزی ارسال نمی‌شود.

دستگاهی که نمی‌تواند اثبات بسازد، به‌طور پیش‌فرض از proverهای RandProtocol استفاده می‌کند: چند ماشین که validatorها اداره می‌کنند (امروز چهار ماشین، زیر https://prover.randprotocol.org)، بدون کارمزد. از نسخه‌ی 0.6.9 هر کدام کلید جداگانه‌ی خود را دارند که کیف‌پول آن را پین می‌کند، و کیف‌پول پیش از نخستین ارسال این را اعلام می‌کند. ماشینی که یک ارسال را اثبات می‌کند، کلید مشاهده‌ی کیف‌پول و یک salt یک‌بارمصرف را دریافت می‌کند: اپراتور آن می‌تواند کل تاریخچه‌ی کیف‌پول را بخواند، یعنی هر پرداخت دریافتی و ارسالی را، اما نمی‌تواند خرج کند. کلید خرج‌کردن هرگز دستگاه شما را ترک نمی‌کند و خود اثبات کوچک تأیید اجازه را می‌سازد. برای حریم خصوصی بیشتر، prover خودتان را در Settings → Prover برگزینید؛ در آن صورت همواره ترجیح داده می‌شود، و کیف‌پول هر اثبات را پیش از ثبت وارسی می‌کند.

جفت‌سازی یک prover، گام‌به‌گام: docs/prover.md.

کلیدهای شما

کلید کجا نگهداری می‌شود

کلید خرج‌کردن تنها رازِ کیف‌پول است. هیچ حساب کاربری یا سروری که نسخه‌ای از آن را نگه دارد وجود ندارد: اگر کلید را گم کنید هیچ‌کس نمی‌تواند آن را بازیابی کند؛ پس وقتی کیف‌پول آن را نشانتان می‌دهد، ذخیره‌اش کنید.

کلید خرج‌کردن
در حالت ذخیره، در IndexedDB رمزگذاری می‌شود: AES-256-GCM با PBKDF2-SHA256 در ۶۰۰٬۰۰۰ تکرار. تا وقتی قفل باز است، فقط در حافظه‌ی صفحه می‌ماند، پس بارگذاری دوباره کیف‌پول را قفل می‌کند. هرگز در localStorage، یک URL یا یک پیام خطا قرار نمی‌گیرد.
بازکردن قفل
گذرواژه‌های نادرست با انتظاری فزاینده پیش از هر تلاش کند می‌شوند، و شمارش آن پس از بارگذاری دوباره نیز حفظ می‌شود.
سرور
فقط به 127.0.0.1 متصل می‌شود، هر سرآیند Host دیگری را رد می‌کند، فقط فایل‌های ایستا را سرو می‌کند و هیچ چیز دیگر، و این کار را تحت یک Content-Security-Policy سخت‌گیرانه انجام می‌دهد: بدون اسکریپت درون‌خطی و بدون اسکریپت از راه دور.
زبانه‌ها
دو زبانه از کیف‌پول یک ذخیره‌گاه را با امنیت مشترک به کار می‌برند: هر بار یکی پویش می‌کند و بقیه آنچه را نوشته است می‌خوانند.
اجرا

آن را از یک checkout اجرا کنید

  1. مخزن clients را کلون کنید و web/wallet/serve.sh را اجرا کنید، سپس http://127.0.0.1:8787/ را باز کنید. نخستین اجرا هسته‌ی WebAssembly را می‌سازد که چند دقیقه طول می‌کشد؛ پس از آن، راه‌اندازی فقط یک کپی فایل است.
  2. اگر Rand Wallet را در یک URL راه دور یافتید، دقیقاً به همان اندازه که به کسی که آن سرور را اداره می‌کند اعتماد دارید به آن اعتماد کنید. برای هر چیزی که اهمیت دارد، از برنامه‌ی دسکتاپ یا افزونه‌ی مرورگر استفاده کنید.

زنجیرهٔ ابزار: Rust 1.98.1، که در مخزن پین شده است و rustup آن را نصب می‌کند. راهنمای ساخت همهٔ کلاینت‌ها را از یک دستگاه تمیز پوشش می‌دهد. پوشه‌های سورس: web/wallet/, ui/, core/.

Rand Wallet روی وب
bash
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)
web/wallet/serve.sh   # ساخت، سپس سرو در http://127.0.0.1:8787/
RAND_WALLET_PORT=9000 web/wallet/serve.sh   # روی درگاهی دیگر
همهٔ کلاینت‌ها

کارهایی که انجام می‌دهد، روی هر پلتفرم

ساخت کیف‌پول
یک کلید خرج‌کردن که روی دستگاه تولید می‌شود و یک بار نشان داده می‌شود تا ذخیره‌اش کنید، و نشانی rand1… که از آن مشتق می‌شود. یک کلید موجود را وارد کنید، یا یک wallet.key.json از CLI مربوط به rand؛ هر کلاینت همین فایل را صادر می‌کند.
دریافت و ارسال
موجودی شما مجموعه‌ی note‌هایی است که فقط کلید شما می‌تواند بازشان کند؛ کیف‌پول درخت تعهد را پویش می‌کند تا آن‌ها را بیابد. انتقال RAND یا هر توکن RPL فهرست‌شده یک bundle چهار-ورودی چهار-خروجی است که یک اثبات آن را مجاز می‌کند. هیچ‌کس فرستنده، گیرنده، مبلغ یا دارایی جابه‌جاشده را نمی‌فهمد.
Faucet
روی یک testnet با faucet باز، یک ضربه ۱۰۰ RAND را در یک note می‌ریزد که فقط شما می‌توانید بازش کنید.
فقط آنچه می‌خواهید افشا کنید
کلید مشاهده‌ی خود را کپی کنید و My history را در RandScan باز کنید تا هر note را که فرستاده یا دریافت کرده‌اید ببینید، یا کلید تراکنش یک پرداخت را کپی کنید تا دقیقاً همان پرداخت و هیچ چیز دیگر را افشا کنید. explorer در مرورگر شما رمزگشایی می‌کند و کلید را هرگز به جایی نمی‌فرستد.

کلیدهای مشاهده و کلیدهای تراکنش در randscan.org باز می‌شوند.

نکات testnet

پیش از ارسال هر چیزی

زنجیره
نقطهٔ پایانی عمومی، زنجیرهٔ ۲۱ را سرویس می‌دهد که از 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 وارد می‌شود.