Files
vsecoder 6b7cb1c5a9 feat(desktop): contact requests, auto-update banner, packaging polish (v2.2.0)
Closes the v2.2.0 roadmap. Desktop client is feature-complete and
ready for first installer builds.

Contact request flow (fills a real gap flagged by the user):
  * lib/tx.ts grows buildContactRequestTx / buildAcceptContactTx /
    buildBlockContactTx with canonical bytes matching mobile.
  * lib/api.ts: fetchContactRequests + ContactRequestRaw.
  * New contact modal — sections/contacts/NewContactModal.tsx — resolves
    @username / DC-address / hex pub via resolveAccount, shows identity
    preview (incl. "has encryption key / key not published" hint),
    fee tier picker (5k / 10k / 50k µT), optional 280-char intro,
    balance guard.
  * Requests inbox — sections/contacts/RequestsList.tsx — polled every
    15 s via /relay/contacts, filters pending, Accept submits
    ACCEPT_CONTACT + adds the peer to local contacts with their
    identity.x25519_pub pre-cached, Block submits BLOCK_CONTACT.
  * ContactsList grows a two-tab header (Contacts / Requests with a
    pending-count badge) + "+ New" button next to the filter input.

Auto-update:
  * hooks/useUpdateCheck.ts — polls /api/update-check on mount and
    every 6 hours; loose semver compares the Gitea release tag
    against this build's app.version (from Electron IPC), ignores
    the node's own update_available flag (it compares vs. the node,
    not the desktop).
  * shell/UpdateBanner.tsx — thin strip above the status bar with
    the new tag, Download button (opens the release URL in the
    default browser), and a dismiss-for-this-tag × so once-seen
    updates don't nag.

Packaging — electron-builder config tightened:
  * artifactName pattern includes version + os + arch.
  * Mac: hardenedRuntime on, dmg + zip outputs, social-networking
    category.
  * Windows: NSIS (full installer, per-user or per-machine) +
    portable exe.
  * Linux: AppImage + deb.
  * Strip source maps and test folders from the asar.
  * publish: null — no auto-publisher yet; Gitea releases are
    uploaded manually for now.
  * directories.output = release/, directories.buildResources =
    resources/ so icons land in a predictable place once we add them.

Version bumped to 2.2.0 in package.json. docs/ROADMAP.md marks
v2.2.0 row complete; remaining work (attachments, code signing,
group chats) moved to a post-v2.2.0 bucket.
2026-04-22 18:47:19 +03:00
..
2026-04-17 14:16:44 +03:00

DChain documentation

Справочник по блокчейн-ноде DChain. Читается в любом порядке, но если в первый раз — идите по разделам сверху вниз.

Оглавление

Документ О чём
quickstart.md Поднять ноду локально за 5 минут
architecture.md 4 слоя стека: network / chain / transport / app
node/README.md Запуск ноды (docker, native, deployment)
update-system.md Версионирование, /api/update-check, auto-update от Gitea
api/README.md REST + WebSocket API endpoints
cli/README.md CLI client — команды, флаги, примеры
contracts/README.md Системные контракты (native + WASM)
development/README.md SDK для написания своих контрактов (TinyGo)
node/governance.md On-chain governance, голосование параметров
node/multi-server.md Multi-validator federation deploy

Внешние ссылки из репо

Соглашения

  • Единицы: микро-токены (µT). 1 T = 1,000,000 µT. MinFee = 1000 µT = 0.001 T.
  • Pubkey: 32-байтный Ed25519 (hex, 64 символа).
  • Address: DC + первые 24 hex-символа SHA-256(pubkey).
  • ChainID: dchain- + первые 12 hex-символов SHA-256 genesis-блока.
  • Времена: RFC 3339 (UTC) везде, кроме internal-счётчиков в Prometheus (unix seconds).