Rand Protocol
افزونه‌ی مرورگر

Rand Wallet برای Firefox

همان افزونهٔ نسخهٔ Chrome، از همان کد، که برای Firefox بسته‌بندی شده است. هیچ بخشی از آن minify یا bundle نشده است؛ پس کدی که Mozilla بررسی می‌کند همان کدی است که شما اجرا می‌کنید.

فهرست‌شدن در Firefox Add-ons هنوز در انتظار است. تا زمانی که بازبینی آن به پایان برسد، نسخهٔ 0.8.0 را از دانلود زیر نصب کنید یا آن را از سورس بسازید.

آیکون Rand Wallet
ساخته‌شده با
JavaScript · Manifest V3
توزیع از طریق
addons.mozilla.org
نیازمندی‌ها
Firefox 140 یا بالاتر
ارسال
ارسال از طریق prover شبکهٔ RandProtocol یا prover خودتان
دانلود

نسخهٔ 0.8.0

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

  1. about:debugging را باز کنید، This Firefox → Load Temporary Add-on… را انتخاب کنید و فایل zip را برگزینید.
  2. افزونهٔ موقت با راه‌اندازی مجدد Firefox حذف می‌شود. نسخهٔ Release در Firefox فقط افزونه‌هایی را به‌طور دائمی نصب می‌کند که addons.mozilla.org امضا کرده باشد؛ پس تا زمانی که صفحهٔ افزونه فعال نشده، کار به همین شکل است.
  3. Firefox مجوزهای دسترسی افزونه به سایت‌ها را هنگام نصب می‌دهد. اگر randbridge.org را در آن لحظه رد کرده‌اید، بعداً در پنل مجوزهای افزونه آن را بدهید.
افزونهٔ Firefox (.zip)
Firefox 140 یا بالاتر · 2.7 MB
دانلود
rand-wallet-firefox-0.8.0.zip
SHA-256 2982e605ba06dfac9de02e67652e3afc6d8b4d4ce20cb17225fe5c8335a503c6
فایل دانلودشده را بررسی کنید
SHA256SUMS
# با SHA256SUMS که در همان پوشه‌ای که فایل قرار دارد دانلود شده باشد
shasum -a 256 -c SHA256SUMS --ignore-missing     # macOS
sha256sum -c SHA256SUMS --ignore-missing         # Linux

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

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

ارسال

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

اثبات یک بسته در اوج به حدود 6.2 GB حافظه نیاز دارد و مرورگر فقط 4 GiB به WebAssembly می‌دهد؛ بنابراین افزونه هرگز خودش اثبات نمی‌سازد. افزونه تراکنش را می‌سازد، اثبات را به یک prover می‌سپارد (به‌طور پیش‌فرض prover شبکهٔ RandProtocol یا proverی که شما جفت کرده‌اید)، اثبات را به‌صورت محلی وارسی می‌کند و آن را ارسال می‌کند.

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

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

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

کلیدهای شما

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

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

کلید خرج (spend key)
درون هستهٔ کیف پول، از تصادفی‌بودن سیستم‌عامل تولید می‌شود و فقط به‌صورت یک vault با AES-256-GCM زیر PBKDF2-SHA256 ذخیره می‌شود. تا زمانی که قفل آن باز است، در session storage مرورگر نگهداری می‌شود که با بسته‌شدن مرورگر خالی می‌شود و صفحه‌های وب نمی‌توانند آن را بخوانند.
نمایش کلیدها روی صفحه
نمایش viewing key و خروجی گرفتن از کلید خرج پشت یک بررسی تازهٔ گذرواژه قرار دارد که هزینه‌اش با باز کردن قفل برابر است. هیچ کلیدی هرگز در URL، کنسول یا حافظهٔ ماندگار افزونه قرار نمی‌گیرد.
قفل خودکار
یک زنگ هشدار (alarm) مرورگر، نه زمان‌سنج صفحه؛ بنابراین کیف پول حتی پس از بسته‌شدن پنجرهٔ بازشو و به خواب رفتن worker پس‌زمینه، به‌موقع قفل می‌شود.
شبکه
فقط RPC URL در Settings. تغییر آن به نشانی جدید، برای دسترسی به همان یک میزبان مجوز می‌خواهد. بدون تحلیل‌گر (analytics) و بدون کد از راه دور: افزونه فقط اسکریپت‌هایی را اجرا می‌کند که همراه آن نصب شده‌اند.
همچنین

مبادله، و window.rand برای سایت‌های Rand

صفحهٔ مبادلهٔ (Swap) خود کیف پول، RAND و توکن‌ها را از طریق استخرهای durian.market معامله می‌کند: مقدار دقیق را از استخر روی زنجیره استعلام می‌کند، سپس خودش مبادله را اثبات و ارسال می‌کند، و durian.market می‌تواند همان مبادله را از طریق window.rand.invoke درخواست کند.

randbridge.org افزونه را به‌صورت window.rand پیدا می‌کند و می‌تواند درخواست اتصال بدهد. اتصال به یک کیف پول بازشده و تأیید شما برای آن سایت نیاز دارد، و سایت متصل‌شده فقط نشانی شما و هش گیرندهٔ پل (bridge recipient hash) آن را می‌فهمد، نه چیزی بیشتر.

ساخت از سورس

یا خودتان آن را بسازید

  1. افزونه را از مخزن clients، در زیر، بسازید و بسته‌بندی کنید.
  2. about:debugging را باز کنید، This Firefox → Load Temporary Add-on… را انتخاب کنید و dist/firefox/manifest.json را برگزینید.

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

Rand Wallet برای Firefox
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)
core/scripts/build-wasm.sh   # → extension/shared/core/ (wasm-bindgen-cli را نصب می‌کند)
firefox/pack.sh   # → dist/firefox/ و dist/rand-wallet-firefox-<version>.zip
npx web-ext lint --source-dir dist/firefox
همهٔ کلاینت‌ها

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

ساخت کیف‌پول
یک کلید خرج‌کردن که روی دستگاه تولید می‌شود و یک بار نشان داده می‌شود تا ذخیره‌اش کنید، و نشانی 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 وارد می‌شود.