/wallet
TensorCash Core.
کیفپولی دسکتاپ مبتنی بر Qt برای زنجیرهٔ TensorCash — برگرفته از Bitcoin Core، با پشتیبانی از داراییهای بومی و کنسولِ JSON-RPC تعبیهشده. خودتان آن را از درختِ سورسِ عمومی بسازید (با Docker یا بهصورتِ بومی)، یا در ادامه یکی از باینریهای آمادهای را که حامیانِ پروژه منتشر کردهاند بردارید.
تور
ساختاری شبیه به Bitcoin Core، با تبهای اختصاصیِ TensorCash برای داراییهای بومی و صدور. روی هر کادر کلیک کنید تا تصویر را با وضوحِ کامل ببینید.
ساختن از سورس
مرجعِ اصلی همان درختِ سورس در services/core-node/bcore/ است. کیفپولِ Qt از همان هدفِ CMakeِ دیمونِ headless ساخته میشود — کافی است در زمانِ پیکربندی -DBUILD_GUI=ON بدهید. دو مسیر در پیش است: یا یک Dockerfile که کلِّ پشته را یکجا میسازد (سادهتر و ایزولهتر)، یا نصبِ وابستگیها بهصورتِ بومی روی سیستمِ خودتان (چرخهٔ توسعهٔ سریعتر و ایمیجِ سبکتر).
مسیرِ اول · Docker (توصیهشده)
مخزن یک Dockerfile چندمرحلهای دارد که باینریِ Rust مربوط به cosign-bridge، wheelِ پایتونِ ChiaVDF و دیمونِ bcore کامل بهعلاوهٔ کیفپولِ Qt را یکجا میسازد. تنها به نصبِ Docker روی هاست نیاز دارید. کانتینر همچنین Tor برای شبکهسازیِ سرویسِ پنهان و یک سرورِ VNC دارد تا در صورتِ تمایل بتوانید GUI را داخلِ کانتینر اجرا کنید.
Dockerfile: services/core-node/tor.Dockerfile
git clone --recurse-submodules https://github.com/tensorcash/tensorcash.git
cd tensorcash
docker build \
-f services/core-node/tor.Dockerfile \
-t tensorcash-core:dev \
. پس از ساخت، کانتینر را با expose کردنِ پورتِ RPC کیفپول و (اختیاری) VNC برای دسترسیِ GUI اجرا کنید:
# Headless daemon, RPC reachable on host:18332.
docker run --rm -p 18332:18332 \
-v $HOME/.tensorcash-data:/data \
tensorcash-core:dev
# With the Qt GUI exposed via VNC on host:5900 (default password in the
# container's vnc.sh — change before any non-localhost binding).
docker run --rm -p 5900:5900 -p 18332:18332 \
-v $HOME/.tensorcash-data:/data \
tensorcash-core:dev مسیرِ دوم · بیلدِ بومی
اگر میخواهید باینریهای بومی روی هاستِ خود بدون کانتینر داشته باشید، از این مسیر استفاده کنید. روی macOS 13+ (arm64 / x86_64) و Ubuntu / Debian آزمایش شده است؛ Fedora و Arch درونِ doc/build-unix.md زیرماژولِ bcore مستند شدهاند.
Clone
git clone --recurse-submodules https://github.com/tensorcash/tensorcash.git
cd tensorcash/services/core-node/bcore نصبِ وابستگیها — macOS
ابتدا Xcode Command Line Tools، سپس پکیجهای Homebrew.
xcode-select --install # if not already installed
brew install \
cmake boost pkgconf libevent \
qt@6 qrencode \
zeromq \
capnp # optional, only if you want -DENABLE_IPC=ON نصبِ وابستگیها — Linux (Ubuntu / Debian)
همان ایده با مدیرِ پکیجِ متفاوت. Fedora و Arch در upstream doc/build-unix.md داخلِ مخزن قرار دارند.
sudo apt-get install -y \
build-essential cmake pkgconf python3 \
libevent-dev libboost-dev libsqlite3-dev libzmq3-dev \
qt6-base-dev qt6-tools-dev qt6-l10n-tools qt6-tools-dev-tools libgl-dev \
libqrencode-dev نصبِ وابستگیها — Windows (cross-compile)
بیلدهای بومیِ Windows از مسیرِ MSVC عبور میکنند (doc/build-windows-msvc.md را ببینید). مسیرِ سریعتری که اکثرِ مشارکتکنندگان از آن استفاده میکنند cross-compile از یک هاستِ Linux (یا WSL) با زنجیرهٔ ابزارِ Mingw-w64 بهعلاوهٔ سیستمِ وابستگیهای همراه است. NSIS فقط برای هدفِ نصبکنندهٔ exe. لازم است.
# On a Linux host (or WSL inside Windows):
sudo apt-get install -y g++-mingw-w64-x86-64-posix nsis
# Build the depends tree once.
gmake -C depends HOST=x86_64-w64-mingw32 -j$(nproc) پیکربندی + کامپایل
در macOS / Linux مرحلهٔ پیکربندی یک فراخوانیِ CMake است. در Windows فایلِ toolchain تولیدشده توسطِ درختِ وابستگیها را پاس دهید.
# macOS / Linux
cmake -B build -DBUILD_GUI=ON
cmake --build build -j$(getconf _NPROCESSORS_ONLN 2>/dev/null || nproc)
# Windows (cross-compile from Linux/WSL)
cmake -B build --toolchain depends/x86_64-w64-mingw32/toolchain.cmake -DBUILD_GUI=ON
cmake --build build -j$(nproc)
cmake --build build --target deploy # produces the .exe installer via NSIS فلگهای رایجِ پیکربندی: -DBUILD_GUI=ON (کیفپولِ Qt)، -DENABLE_WALLET=OFF (گرهِ chain-only)، -DWITH_ZMQ=ON (موضوعاتِ pub/sub در ZMQ). برای فهرستِ کامل cmake -B build -LH را اجرا کنید.
ساختنِ cosign bridge
ویژگیهای Cosign در کیفپول (امضایِ دستگاهِ جفتشده، multisig فدرال) از طریقِ یک سوکتِ محلی با یک باینریِ sidecar Rust به نامِ cosign-bridge ارتباط دارند. مسیرِ Docker آن را بهصورتِ خودکار میسازد؛ برای بیلدهای بومی با cargo آن را تولید کنید:
# Rust 1.85+ required.
cd services/core-node/cosign-bridge
cargo build --release --bin cosign-bridge --bin cosign-local-relay
# Binaries land in target/release/. Run cosign-bridge alongside the wallet. اجرا
باینریِ کیفپولِ Qt در build/bin/ قرار میگیرد. همگامسازیِ اولیه با mainnet چند ساعت طول میکشد و یک chainstate چندگیگابایتی مینویسد؛ برای تستِ سریع، بهجای آن به یک datadir در regtest اشاره کنید.
# Smoke test on a private chain — no real coins, no peers, no IBD.
build/bin/bitcoin-qt -regtest -datadir=$HOME/.tensorcash-regtest
# Production: starts initial block download against the live network.
build/bin/bitcoin-qt سرویسهای همراه
TensorCash Core یعنی همین کیفپول بهعلاوهٔ مجموعهای کوچک از سرویسهای sidecar که در کنارش کار میکنند. بیلدِ Docker بالا همهٔ آنها را یکجا بستهبندی میکند؛ اگر مسیرِ بومی را در پیش گرفتهاید، بسته به ویژگیهایی که میخواهید، اینها همان اجزاییاند که باید در کنارِ باینریِ Qt راه بیندازید.
| سرویس | مسیرِ سورس | کارِ آن | مورد نیاز برای |
|---|---|---|---|
| cosign-bridge | services/core-node/cosign-bridge/ | sidecar محلی Rust که جفتسازیِ cosign / امضایِ فدرال (SPAKE2 + Noise روی WebSocket) را مدیریت میکند. جریانهای دستگاهِ جفتشده از کیفپولِ Qt را front میکند. | ویژگیهای Cosign (امضایِ چنددستگاهی، multisig فدرال) |
| ChiaVDF | shared-utils/chiavdf/ | تابعِ تأخیرِ قابل تأیید (VDF) که در اعتبارسنجیِ زنجیره استفاده میشود. در حینِ بیلدِ دیمون بهصورتِ wheelِ پایتون ساخته میشود. | اعتبارسنجیِ هر بلاک (mainnet، testnet یا regtest) |
| core-node REST | services/core-node/src/ | یک سطحِ REST کوچک در کنارِ سرورِ JSON-RPC. متادیتای مدل و سنجههای گره را نمایش میدهد. | یکپارچهسازیهای ارائهدهنده؛ خودِ کیفپول به آن نیاز ندارد |
| verification-api | services/verification-api/ | سرویسِ تأییدِ OSS. کیفپول مستقیماً آن را فراخوانی نمیکند — bcore هنگامِ -validationapi=real این کار را میکند. | اعتبارسنجیِ واقعی (غیرِ mock) بلاک در محیطِ تولید |
| miner-api | services/miner-api/ | بینِ زنجیره و موتورِ استنتاج (llama.cpp / vLLM) پل میزند. تولیدکنندهٔ اثباتِ استنتاج که بخشی از یک بلاک میشود. | ماینینگ (ارائهٔ استنتاج + تولیدِ بلاک) |
باینریهای حامیان
ساختن از سورس مسیرِ اصلی است. برای راحتیِ شما، حامیانِ جامعه بیلدهای خود را از همان درختِ سورس منتشر میکنند. پروژه خودش هیچ باینریای تولید، امضا یا توزیع نمیکند — اینها انتشاراتِ مستقلِ شخصِ ثالثاند و صرفاً برای آشنایی اینجا فهرست شدهاند. هر بیلدِ حامی را یا با بیلدِ از سورسِ خودتان مقایسه کنید، یا با بیلدِ یک حامیِ دیگر.
| حامی | پلتفرمها | کلیدِ PGP | یادداشتها |
|---|---|---|---|
| TensorCash | macOS (arm64, x86_64) · Linux (x86_64) · Windows (x86_64) | pending | از درختِ سورسِ عمومی میسازد. هر انتشار یک مانیفستِ SHA-256 و یک امضایِ PGP جدا در کنارِ باینریها ارائه میدهد. |
برای درج بهعنوانِ حامی: از یک انتشارِ سورسِ تگشده بسازید، یک مانیفستِ SHA-256 از اثرهایتان و یک امضایِ PGP جدا منتشر کنید، و یک pull request برای افزودنِ یک ردیف به این جدول باز کنید.
تأییدِ بیلدِ یک حامی
دو بررسی. اولی ادعایِ حامی را به باینریِ دانلودشده متصل میکند؛ دومی باینری را به سورس.
هَش + امضا
هر حامی یک فایلِ SHA256SUMS و یک امضایِ جداگانهٔ SHA256SUMS.asc منتشر میکند. تأیید کنید که فایلِ دانلودشده با مانیفست مطابقت دارد، و مانیفست توسطِ کلیدِ PGP منتشرشدهٔ حامی امضا شده است.
# 1. Manifest matches the binary you have on disk.
shasum -a 256 -c SHA256SUMS --ignore-missing
# 2. Manifest is signed by the benefactor's key.
gpg --verify SHA256SUMS.asc SHA256SUMS مقایسهٔ متقاطع
امضایِ یک حامیِ واحد فقط ثابت میکند که آنها برای باینری ضمانت میکنند — نه اینکه باینری با سورس مطابقت دارد. دو راه برای بستنِ این شکاف: خودتان از سورس بسازید و هَشها را مقایسه کنید، یا با مانیفستِ حامیِ دوم برای همان تگِ انتشار مقایسه کنید. وقتی دو یا چند سازندهٔ مستقل SHA-256های یکسانی برای همان اثر منتشر کنند، شواهدی دارید که بیلد از سورسِ عمومی قابلِ تکثیر است.
قدمِ بعدی
- راهنمای regtest — سندباکسِ توسعهٔ محلی با اعتبارسنجیِ mock، و راهنماهایِ ثبتِ مدل و صدورِ دارایی.
- مرجع JSON-RPC — کنسولِ تعبیهشده در کیفپول هر متدِ این مرجع را پشتیبانی میکند.
- مشارکت کنید — هر راهِ دیگرِ مشارکت: نهادها، ارائهدهندگان، توسعهدهندگان، تأییدکنندگان، پژوهشگران.