Rand Protocol
له سرچینې څخه جوړول

پخپله یې کمپایل کړئ

د Rand Wallet هر پیرودونکی پروګرام له یوې عامې زېرمې، randprotocol/clients، څخه د GPL-3.0-only جواز لاندې جوړېږي. خپاره شوي ډاونلوډونه یوازې د همدې پاڼې په کمانډونو جوړېږي، نو تاسو کولای شئ همدا بستې په خپل ماشین جوړې کړئ. نسخه 0.8.0 د v0.8.0 ټګ ده.

مخکې له پیله

څه نصب کړئ

یوازې هغه قطارونه چې د غوښتل شوي پیرودونکي پروګرام لپاره دي. د هر پیرودونکي پروګرام لومړی جوړښت ثبوت جوړوونکی کمپایلوي او څو دقیقې نیسي؛ له هغه وروسته بیا جوړول چټک وي.

هر پیرودونکی پروګرام
git، rustup او Node 22 یا وروسته. rustup هغه وخت Rust 1.98.1 نصبوي، چې زېرمه یې ټاکلې نسخه ده، کله چې cargo په لومړي ځل په چیک‌اوټ کې چلېږي.
ډیسکټاپ، هر عامل سیستم
tauri-cli 2: cargo install tauri-cli --version "^2" --locked
ډیسکټاپ په Linux کې
sudo apt install build-essential libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev patchelf rpm file (د Debian او Ubuntu نومونه؛ نورې توزیع ګانې یې معادل لري)
ډیسکټاپ په Windows کې
Visual Studio Build Tools د “Desktop development with C++” سره، او Git for Windows، چې Git Bash یې سکرېپټونه چلوي
ډیسکټاپ په macOS کې
Xcode Command Line Tools: xcode-select --install
Chrome، Firefox، ویب والټ
نور هېڅ نه. جوړښت پخپله wasm-bindgen-cli نصبوي.
Android
JDK 17 یا وروسته، او Android SDK د platform 36، build-tools 36 او NDK 27 سره
iOS
یو Mac د Xcode 16 یا وروسته سره

1. سرچینه ترلاسه کړئ

زېرمه د هغې د یوې فرعي ماډیول سره کلون کړئ، چې بشپړ نوډ دی او کوډ یې د والټ کریپټوګرافي ده. د خپرونې ټګ چیک‌اوټ کړئ ترڅو دقیقاً هغه څه جوړ کړئ چې خپاره شوي، یا د وروستي حالت لپاره په main پاتې شئ. GitHub حساب یا SSH کیلي ته اړتیا نشته.

سرچینه ترلاسه کړئ
bash
git clone --recurse-submodules https://github.com/randprotocol/clients.git
cd clients
git checkout v0.8.0 && git submodule update --init   # خپرونه، نه main

له git پرته: rand-wallet-0.8.0-source.tar.gz له خپرونې څخه ډاونلوډ او خلاص کړئ. فرعي ماډیول په کې شامل دی، چې د GitHub خپل “Source code” آرشیفونه یې پرېږدي.

2. هسته وازمویئ (اختیاري)

هسته د Rust هغه کتابتون دی چې هر پیرودونکی پروګرام یې رانغاړي. د هغې ازموینې یو ریښتینی ثبوت جوړوي او د چین د خپل تاییدوونکي په مرسته یې تاییدوي، چې له لومړي کمپایل وروسته شاوخوا یوه دقیقه نیسي.

هسته وازمویئ (اختیاري)
bash
cd core && cargo test --release && cd ..

3. ډیسکټاپ: Linux، Windows، macOS

یو سکرېپټ د هغه عامل سیستم بستې جوړوي چې پرې چلېږي، د هغو نومونو لاندې چې خپرونې یې کاروي. په Linux کې: AppImage، .deb، .rpm او په .tar.gz کې خالص باینري. په Windows کې، له Git Bash څخه: .msi او -setup.exe. په macOS کې: .dmg. هر پلاتفورم یوازې خپلې بستې جوړوي.

نور د دې په اړه Linux, Windows, macOS.

ډیسکټاپ: Linux، Windows، macOS
bash
cargo install tauri-cli --version "^2" --locked   # یو ځل
scripts/release/build-desktop.sh   # → dist/release/v<version>/
scripts/release/build-desktop.sh --target x86_64-apple-darwin   # د Intel .dmg، له Apple-silicon Mac څخه

cd desktop/src-tauri && cargo tauri dev   # یا یې یوازې وچلوئ، له بسته کولو پرته

لومړی جوړښت ثبوت جوړوونکی کمپایلوي او څو دقیقې نیسي.

4. د Chrome او Firefox توسیعونه

هسته WebAssembly ته کمپایلېږي، بیا د هر براوزر د بسته کولو سکرېپټ فایلونه dist/ ته کاپي کوي او zip کوي یې. هېڅ bundler او minifier نشته: د WebAssembly ماډیول پرته، هغه فایلونه چې تاسو یې باروئ همغه د زېرمې فایلونه دي.

نور د دې په اړه Chrome, Firefox.

د Chrome او Firefox توسیعونه
bash
core/scripts/build-wasm.sh   # → extension/shared/core/
chrome/pack.sh   # → dist/chrome/ او dist/rand-wallet-chrome-<version>.zip
firefox/pack.sh   # → dist/firefox/ او dist/rand-wallet-firefox-<version>.zip

Chrome: chrome://extensions → Developer mode → Load unpacked → dist/chrome. Firefox: about:debugging → This Firefox → Load Temporary Add-on… → dist/firefox/manifest.json.

5. Android

هسته د arm64 او x86_64 لپاره د اصلي کتابتون په توګه جوړېږي، بیا Gradle اپلیکېشن د هغې شاوخوا جوړوي. د debug جوړښت په هر تلیفون یا ایمولېټر نصبېږي؛ د release جوړښت په هغې کیلي لاسلیک کېږي چې تاسو یې پخپله جوړوئ.

نور د دې په اړه Android.

Android
bash
core/scripts/build-android.sh   # → android/app/src/main/jniLibs/
cd android
echo "sdk.dir=$HOME/Android/Sdk" > local.properties   # هر چېرې چې ستاسو SDK وي
./gradlew assembleDebug   # → app/build/outputs/apk/debug/app-debug.apk
adb install -r app/build/outputs/apk/debug/app-debug.apk

6. iOS

هسته د وسیلې او سمولېټر لپاره د XCFramework په توګه جوړېږي، او اپلیکېشن یوه عادي Xcode پروژه ده. په خپل iPhone یې چلول دې ته اړتیا لري چې ستاسو Apple ID په Xcode → Settings → Accounts کې وي او ستاسو ټیم د Signing & Capabilities لاندې غوره شوی وي.

نور د دې په اړه iOS.

iOS
bash
core/scripts/build-ios.sh   # → ios/Frameworks/RandWalletCore.xcframework
open ios/RandWallet.xcodeproj   # سمولېټر یا خپله وسیله وټاکئ، بیا Run

7. ځایي ویب والټ

همدا والټ د براوزر په یوه ټب کې، چې تاسو ته یې یو کوچنی سرور وړاندې کوي چې یوازې په 127.0.0.1 اورېدنه کوي.

نور د دې په اړه Web.

ځایي ویب والټ
bash
web/wallet/serve.sh   # جوړوي، بیا http://127.0.0.1:8787/ وړاندې کوي

8. ازموینې وچلوئ

ګډ انٹرفېس، ویب والټ او توسیع یوه JavaScript ازموینیزه ټولګه لري؛ ډیسکټاپ اپلیکېشن او Android اپلیکېشن خپلې ځانګړې لري.

ازموینې وچلوئ
bash
npm ci --prefix ui
node --test "ui/test/**/*.test.mjs" "web/wallet/test/**/*.test.mjs" "extension/test/*.test.mjs"
( cd desktop/src-tauri && cargo test )
( cd android && ./gradlew testDebugUnitTest )
خپرونې

خپاره شوي فایلونه څنګه جوړېږي

د خپرونې په ټګ، د GitHub چلوونکي همدا سکرېپټونه چلوي: ډیسکټاپ اپلیکېشن په macOS، Windows او Linux کې، د توسیع دواړه zip فایلونه، او د سرچینې آرشیف، چې د SHA256SUMS سره خپرونې ته نښلول کېږي. کاري بهیر .github/workflows/release.yml دی، او یو Jenkinsfile همدا پایپ لاین بل ځای چلوي. د Android بسته د یو ساتونکي په ماشین جوړېږي او لاسلیک کېږي، ځکه چې د هغې د لاسلیک کیلي په هېڅ CI کې نشته.

چیک‌سم تاسو ته څه وايي

او څه نه وايي

هغه ډاونلوډ چې له خپل SHA-256 سره سمون ولري، همغه فایل دی چې خپور شوی. جوړښتونه لا تر اوسه بټ په بټ بیا تولیدېدونکي نه دي، نو ستاسو خپل جوړښت به د خپاره شوي په څېر ورته سم ونلري، او سمون لرونکی سم د دې ثبوت نه دی چې فایل له کومې سرچینې راغلی. که پوښتنه دا وي، ځواب همدا پاڼه ده: جوړ یې کړئ، او هغه وچلوئ چې تاسو جوړ کړی.