Skip to content

FireCash v0.2.1 — critical wallet update

Choose a tag to compare

@firecash firecash released this 12 Jul 13:16

Critical wallet-correctness and performance update. All users should upgrade. The chain itself is unaffected (no fork; consensus unchanged). Wallets rescan automatically on first start and then show correct balances.

Fixed

  • Wallet balances could differ between devices / miss coins. Wallets scanned raw DAG blocks; consensus applies shielded state per chain block. The node now serves the exact per-chain-block shielded stream (new GetShieldedBlocks RPC); firecash-walletd and shielded-pay sync from it. Old scan state is auto-invalidated and rebuilt.
  • A payment could show up twice in the recipient's wallet (and silently corrupt later spend witnesses) when the same transaction was carried by two parallel DAG blocks: wallets now apply the same nullifier drop rule as consensus. Found by live testing on mainnet.
  • Sends of many notes took hours and were then rejected on transaction mass. Sends are planned against the standard mass cap before proving (max 6 spent notes per tx); walletd splits large payments across several transactions automatically. New POST /api/wallet/consolidate merges small mining-reward notes.
  • Payments no longer rebuild the Halo 2 proving key each time and prove multi-core — a real mainnet payment proof now takes ~7 seconds (measured; previously reported up to 106 minutes).
  • Node: a holed local database could crash-loop the node via the get_blocks RPC. It now returns an RPC error and stays up.
  • Wallet tools work against pruned nodes: the shielded signature domain comes from network parameters, and full scans anchor at the pruning-point frontier. Older wallet builds stop working as pruning advances; upgrading is required.
  • Hosted wallet: sends are always signed on-device (the server never holds spend authority), the seed is remembered per device, and multi-wallet sync shares one chain stream. Explorer: deduplicated feed, honest block-rate stat, public "Network nodes" stat.

⚠ New nodes: bootstrap datadir currently required

Pruning has advanced past genesis, and shielded-state import at the pruning point is not yet part of sync — a brand-new node cannot yet validate the chain from the network alone. Until that ships in the next release, start new nodes from the firecash-bootstrap-datadir.tar.gz asset below: extract it into your --appdir before first start. Existing synced nodes are unaffected.

Upgrade

Stop your node + wallet daemon, replace the binaries, restart the node first, then the wallet daemon. First wallet start performs one automatic rescan.