Commit graph

12 commits

Author SHA1 Message Date
Digibyte.X
0a35657669 ops: comment fix (Angie) 2026-10-12 00:48:27 +02:00
Digibyte.X
c46de58e87 ops: the vhost is served by Angie (/etc/angie/http.d/digibyte-x.conf); blockbook-upstream targets it, docs updated 2026-10-12 00:48:17 +02:00
Digibyte.X
649a256a02 ops: blockbook-upstream — remote part in its own file, PowerShell entry point (bash in PowerShell is the WSL launcher) 2026-10-12 00:18:16 +02:00
Digibyte.X
51862f5299 daemon: a repeat /balance request for a script set attaches to its running scan instead of starting a competing copy 2026-10-12 00:10:08 +02:00
Digibyte.X
b46e202a17 web-ui: star button in the sidebar makes a wallet the default (moves it to the top of the order) 2026-10-11 23:59:45 +02:00
Digibyte.X
690959a983 p2p: BIP158 matching in WebAssembly (gcs.c), Number-based JS fallback; Blockbook upstream → Atomic
The daemon's wallet scan hashed every watched script against every block
filter with a BigInt SipHash: ~3 filters/s on the VPS once the gap limits
went to 200/100 (~3,300 scripts), i.e. days for a one-year window. The
matcher now lives in dgbpow.wasm next to the PoW hashes — scripts are
uploaded once per scan, each filter is one call, the set is decoded once
and each target binary-searched — ~5,500 filters/s locally, ~2,000/s on
the VPS with block fetches. The JS path was rewritten with uint32 lanes
and exact 32×32 partial products as a fallback (module missing or filter
beyond its buffers). scripts/gcs-check.ts cross-checks both against a
BigInt reference on random filters; `npm run gcs:test -w @dgb-wallet/p2p`.

NOWNodes stopped accepting the proxy's API key ("Unknown API_key" on every
endpoint), which is why the wallet showed "Blockbook HTTP 401" for every
path. The vhost mirror now proxies /blockbook/ to Atomic Wallet's public
Blockbook; ops/blockbook-upstream.sh switches the live vhost either way.
2026-10-11 23:37:28 +02:00
Digibyte.X
93cd8b4bf4 daemon: verify proof-of-work on every synced header; fork choice by work
DigiByte is multi-algorithm, so this brings in six hash functions:
SHA256d and Scrypt in JS, and Qubit, Skein, Groestl and Odocrypt from
DigiByte Core's own C sources compiled to WebAssembly (packages/p2p/native,
emscripten via docker). Each header is checked against its nBits target and
the network powLimit before it can enter the chain; a peer serving an
invalid or future-dated header is benched. Competing branches are accepted
only when they carry more accumulated work than what they replace.

npm run pow:test -w @dgb-wallet/p2p verifies real mainnet headers of all
six algorithms and that a tampered header fails.
2026-10-02 18:37:31 +02:00
Digibyte.X
0a5d7ade28 scan gap 200/100 (DigiScope parity); trim decimals only on the main balance; price feed on by default
Receive-chain gap 200 and change-chain gap 100 everywhere a chain is
walked: daemon /balance (new gapInternal, cap 200), Blockbook xpub
queries, history ownership set, and the signing-key derivation in Send so
anything the scan finds is spendable.

Trailing-zero trimming now applies to the hero balance and assets row
only; history, details and the send review keep eight decimals. The hero
number no longer wraps — long balances step down in size.

Price feed defaults on; existing configs flipped once via the v3 marker.
2026-10-02 18:13:07 +02:00
Digibyte.X
a965a09b40 web-ui: full history on by default; trim trailing zeros on amounts
Blockbook history is enabled by default (existing configs migrated once
via a v2 marker; a later deliberate opt-out sticks). The in-panel opt-in
prompt is replaced by a one-line note when it is off.

All displayed DGB amounts go through one formatter: thousands separators,
trailing zeros trimmed, never fewer than two decimals (3,811.32468574,
5.00, 0.0003345). Amount-field values keep full precision.
2026-10-02 17:55:08 +02:00
Digibyte.X
989a2696c9 recovery: official 2018-19 DigiByte mobile wallets derived the master key with HMAC "DigiByte seed"
The BreadWallet-based DigiByte Android/iOS apps used HMAC-SHA512 key
"DigiByte seed" (not BIP32's "Bitcoin seed") when turning the BIP39 seed
into the master node, so the same 12 words give a different key tree and
a standard m/0' scan finds nothing. rootFromSeed() takes an optional HMAC
key; balance scan, history, send and the derivation-path search now
cover m/0' under both keys, and user-added extra paths carry the key.
2026-10-02 17:44:16 +02:00
Digibyte.X
ad3923c18c web-ui: top-align single-column views; reveal toggle on password and PIN fields
Login / Import / Create / Settings were vertically centred in the content
column (align-self: center), which on tall screens left a dead band above
the page heading. Now top-aligned; horizontal centring unchanged.

New PasswordInput component wraps every password / PIN / passphrase field
with an eye button that toggles the text. Also: wallet-order drag&drop,
path-search sweep, settings panel sections, change-address policy.
2026-10-02 17:33:02 +02:00
Digibyte.X
d50286a9a5 DigiByte.X Wallet — recovery-first web wallet monorepo
Packages: core (BIP39/32/44/49/84/86 derivation, WIF), keystore (PBKDF2 +
AES-GCM), psbt, p2p (BIP157/158 SPV daemon, Dandelion++ broadcast with
relay-echo verification), blockbook, rpc, electrum, net, bns, web-ui
(React/Vite), mobile (Expo). ops/ holds the nginx vhost, systemd unit and
push.sh deploy script for digibyte.x/web.
2026-09-20 20:16:52 +02:00