Completes the desktop feature surface ahead of the v2.2.0 tag. Only
auto-update + packaging remain.
Settings — now two-paned (nav on the left, pages on the right):
* NodePage — URL ping-on-commit + API token field.
* IdentityPage — pub key / X25519 pub, Export (safe-save dialog) /
Import (open dialog + wipe + replace) / Delete identity.
* DevicesPage — full multi-device UI: list every active device with
a THIS DEVICE badge; Unlink button on every other row submits
UNLINK_DEVICE + optimistic local remove; Link new device modal
takes {code, device key, name}, submits LINK_DEVICE, then ships
the handshake envelope (master Ed25519 priv encrypted for the
new X25519) — same protocol as mobile's primary-device modal.
* AboutPage — version, platform, Gitea links.
* store.settingsPage discriminated union keeps selection across
section switches.
Contacts section (now real):
* ContactsList — alphabetical, filter-as-you-type; each row shows
avatar letter + name + short address.
* ContactsDetail — profile card (username/alias/pub) + Open chat /
View posts / Copy address actions + stats grid
(Balance, Devices, Encryption, Added) + Identity card with
DC address, username, published X25519, device_count.
* store.selectedContact persists across navigation.
Profile section (expanded):
* ProfileList — big avatar + pub key + contacts count.
* ProfileDetail — balance hero, quick actions (My posts →
feed author wall, Manage devices → Settings→Devices, Copy
address), Identity card, inline Linked devices list with a
THIS DEVICE badge matching the Settings page.
Receive modal — canvas QR via `qrcode` (new dep, ~5 KB gzipped),
white-on-transparent so it sits inside the same black modal chrome.
Global keybinds (useGlobalKeybinds hook mounted in Shell):
* Ctrl/Cmd+W — close the current conversation (drops activeChat,
keeps section). Does NOT close the window.
* Ctrl/Cmd+K — jump to Contacts.
* Ctrl/Cmd+, — Settings.
Each guards against being in a text field so typing `k,` in a
composer / search doesn't hijack.
docs/ROADMAP.md — rc1 row flipped to done; v2.2.0 narrows to
auto-update + packaging + optional attachments in Compose.
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 |
Внешние ссылки из репо
- README.md — обзор проекта
- deploy/single/README.md — operator runbook для single-node
- deploy/prod/README.md — operator runbook для multi-validator
- deploy/UPDATE_STRATEGY.md — дизайн forward-compat обновлений (4 слоя)
Соглашения
- Единицы: микро-токены (
µ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).