Rand Protocol
மூலக் குறியீட்டிலிருந்து உருவாக்குதல்

நீங்களே தொகுத்துக்கொள்ளுங்கள்

ஒவ்வொரு Rand Wallet கிளையன்டும் GPL-3.0-only உரிமத்தின் கீழ் உள்ள randprotocol/clients என்ற ஒரே பொதுக் களஞ்சியத்திலிருந்து உருவாக்கப்படுகிறது. வெளியிடப்பட்ட பதிவிறக்கங்கள் இந்தப் பக்கத்திலுள்ள கட்டளைகளால் மட்டுமே உருவாக்கப்படுகின்றன; எனவே அதே தொகுப்புகளை உங்கள் சொந்தக் கணினியிலும் உருவாக்கலாம். பதிப்பு 0.8.0 என்பது v0.8.0 என்ற குறிச்சொல் ஆகும்.

தொடங்குவதற்கு முன்

நிறுவ வேண்டியவை

நீங்கள் விரும்பும் கிளையன்டுக்கான வரிசைகள் மட்டும் போதும். எந்தக் கிளையன்டின் முதல் உருவாக்கமும் நிரூபிப்பானைத் தொகுப்பதால் பல நிமிடங்கள் ஆகும்; அதன் பிறகு மீண்டும் உருவாக்குவது விரைவாக முடியும்.

ஒவ்வொரு கிளையன்டும்
git, rustup, Node 22 அல்லது அதற்குப் பிந்தைய பதிப்பு. களஞ்சியம் நிர்ணயித்துள்ள Rust 1.98.1 பதிப்பை, checkout-இல் cargo முதன்முறையாக இயங்கும்போது rustup நிறுவுகிறது.
டெஸ்க்டாப், எந்த இயக்க முறைமையும்
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-இல் டெஸ்க்டாப்
“Desktop development with C++” உடன் Visual Studio Build Tools, மேலும் Git for Windows; அதன் Git Bash ஸ்கிரிப்டுகளை இயக்குகிறது
macOS-இல் டெஸ்க்டாப்
Xcode Command Line Tools: xcode-select --install
Chrome, Firefox, வலை வாலெட்
வேறெதுவும் தேவையில்லை. உருவாக்கச் செயல்முறையே wasm-bindgen-cli-ஐ நிறுவிக்கொள்கிறது.
Android
JDK 17 அல்லது அதற்குப் பிந்தைய பதிப்பு, மேலும் platform 36, build-tools 36, NDK 27 உடன் Android SDK
iOS
Xcode 16 அல்லது அதற்குப் பிந்தைய பதிப்பு கொண்ட ஒரு Mac

1. மூலக் குறியீட்டைப் பெறுங்கள்

களஞ்சியத்தை அதன் ஒரே துணைத்தொகுதியான முழு முனையுடன் சேர்த்து clone செய்யுங்கள்; வாலெட்டின் குறியாக்கவியல் அந்த முழு முனையின் குறியீடே. வெளியிடப்பட்டதையே துல்லியமாக உருவாக்க வெளியீட்டுக் குறிச்சொல்லை checkout செய்யுங்கள், அல்லது சமீபத்தியதற்காக 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-இல் வெறும் binary. 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   # Apple-silicon Mac-இலிருந்து Intel .dmg

cd desktop/src-tauri && cargo tauri dev   # அல்லது தொகுக்காமல் நேரடியாக இயக்குங்கள்

முதல் உருவாக்கம் நிரூபிப்பானைத் தொகுப்பதால் பல நிமிடங்கள் ஆகும்.

4. Chrome, Firefox நீட்டிப்புகள்

மையம் WebAssembly-க்குத் தொகுக்கப்படுகிறது; பின்னர் ஒவ்வொரு உலாவியின் pack ஸ்கிரிப்டும் கோப்புகளை 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 ஆகியவற்றுக்கான native நூலகமாக உருவாக்கப்படுகிறது; பின்னர் Gradle அதைச் சுற்றிச் செயலியை உருவாக்குகிறது. debug உருவாக்கம் எந்தத் தொலைபேசியிலும் emulator-இலும் நிறுவப்படும்; 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

மையம் சாதனத்துக்கும் simulator-க்குமான XCFramework ஆக உருவாக்கப்படுகிறது; செயலி ஒரு சாதாரண Xcode திட்டம். உங்கள் சொந்த iPhone-இல் இயக்க, Xcode → Settings → Accounts-இல் உங்கள் Apple ID-யும், Signing & Capabilities-இன் கீழ் உங்கள் குழுவும் தேர்ந்தெடுக்கப்பட்டிருக்க வேண்டும்.

மேலும் விவரங்கள்: iOS.

iOS
bash
core/scripts/build-ios.sh   # → ios/Frameworks/RandWalletCore.xcframework
open ios/RandWallet.xcodeproj   # ஒரு simulator அல்லது உங்கள் சாதனத்தைத் தேர்ந்தெடுத்து, 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-இன் runner-கள் அதே ஸ்கிரிப்டுகளை இயக்குகின்றன: macOS, Windows, Linux-இல் டெஸ்க்டாப் செயலி, இரண்டு நீட்டிப்பு zip-கள், மூலக் குறியீட்டுக் காப்பகம் ஆகியவை SHA256SUMS உடன் வெளியீட்டில் இணைக்கப்படுகின்றன. பணிப்பாய்வு .github/workflows/release.yml ஆகும்; ஒரு Jenkinsfile அதே pipeline-ஐ வேறிடத்தில் இயக்குகிறது. Android தொகுப்பின் கையொப்ப விசை எந்த CI-யிலும் இல்லாததால், அது ஒரு பராமரிப்பாளரின் கணினியில் உருவாக்கப்பட்டுக் கையொப்பமிடப்படுகிறது.

சரிபார்ப்புத் தொகை உங்களுக்குச் சொல்வது

சொல்லாதது

தனது SHA-256 உடன் பொருந்தும் ஒரு பதிவிறக்கம், வெளியிடப்பட்ட அதே கோப்பு. உருவாக்கங்கள் இன்னும் பிட்டுக்குப் பிட் மீளுருவாக்கக்கூடியவை அல்ல; எனவே உங்கள் சொந்த உருவாக்கத்தின் தொகை வெளியிடப்பட்டதன் தொகையுடன் ஒன்றாக இருக்காது, மேலும் பொருந்தும் தொகை ஒரு கோப்பு எந்த மூலக் குறியீட்டிலிருந்து வந்தது என்பதற்குச் சான்றாகாது. அதுதான் கேள்வி என்றால், அதற்கான பதில் இந்தப் பக்கமே: அதை உருவாக்குங்கள், நீங்கள் உருவாக்கியதை இயக்குங்கள்.