forked from UkoeHB/monero
-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
Wallet features
- Restore
- Sync
- Transfers
- Sweeps
- Support >8 input txs
- Needs faster FCMP++
prove()
- FCMP++: support up to 128 inputs per tx, and 8 inputs per FCMP++ proof #57
- Needs faster FCMP++
- Payments to integrated address
-
scan_tx
- fcmp++: scan_tx & RPC for path by global output id #49
- Consolidate paths in the response
- Background sync
- Hot/cold wallet integration
- HW wallet interface changes
- Tx proofs
- Multisig
- 3rd party HW wallet integrations
- Helpful link: Guide: How to implement HW devices for Carrot/FCMP++ [WIP] #63
- Trezor
- Ledger
- Clean up CLI references to rings in UI
- Clean up GUI references to rings
- Wallet RPC
describe_transfer
command for Carrot transaction proposals - Don't remove existing tx dests and tx privkeys when opening an old wallet with the new software
- See this section
- Don't need
simple_wallet::prompt_if_old
after fork - Remove block hashes download on restore
Daemon features
- Build FCMP++ tree
- DB migration for FCMP++ tree
- Validate FCMP++ txs
- Validate Carrot txs
- Include init sync data needed to restore a wallet from arbitrary restore height
- Include FCMP++ tree root and n tree layers in PoW hash
- Prohibit torsioned outputs at consensus
- Endpoint to get path by output id
- fcmp++: scan_tx & RPC for path by global output id #49
- Consolidate paths in response
- Hardened tx weight calculations (TODO: revisit FCMP++ transaction weight funcion #44)
- Dynamic block weight changes
- PoW-enabled relay (PoWER)
- RandomX commitments w/double hashing
Known bugs
- [BUG] error: m_blockchain <> m_tree_cache top block idx mismatch #45
- [BUG] node failed to verify FCMP++ proof #46
- @nahuhh reported a segfault in wallet, broken wallet state
- Sweep when some txs don't cover fees.
- Handle uncaught errors in tx construction (e.g. no unlocked outputs triggering "no input candidates provided" currently breaks the RPC wallet)
- Possibly carrot+fcmp: send to integrated address and fix transfer tests #61
- Add a functional test for error handling in the RPC wallet
- Sporadic failure in
k_anonymity
functional test (link)- Maybe this one is ok to leave for now since allowing >8 inputs per tx should solve it.
- Handle tx dests taking Carrot changes into account.
- Handle tx priv keys taking Carrot changes into account.
- Fee-included transfers.
-
wallet2::get_payment_id
updated for Carrot. - Blockchain import should add locked outputs and update FCMP++ tree
- Require new wallets point to updated daemon (required for building the tree from an arbitrary restore height)
- Creating watch-only wallet from full wallet,
wallet2::import_blockchain
has a FIXME for tree
Misc.
- FFI cleanup
- Destroy Rust FFI types correctly #39
- Remove unwraps and asserts
- fcmp++: faster & cleaner transparent amount commitment handling, and detangle deps #43
- fcmp++: avoid expensive inner proof_size calls #40
- Don't store output pubkeys and commitments in db twice
- Test pre-RCT to FCMP++
- Clean up compile warnings
- Block explorer
- LWS
- Updated documentation for the FCMP++ integration
- Carrot integration documentation
- Heuristics wallet implementers must keep in mind (e.g. zero-change dummies back to sender)
- New things users should understand (new priv keys, tx keys, tx proofs, view balance key)
- Document general wallet changes users should keep in mind
- Updated wallets must point to updated daemons, old wallets can point to updated daemons
- Deprecated
scan_tx
scanning future txs relative to wallet sync height, faster wallet restore at high height - Updated wallets re-sync from restore height (in order to sync tree)
- Document general daemon changes users should keep in mind
- Long migration
- Deprecated building on top of alt chains
- Make sure functional tests pass excluding the HF from
hardforks.cpp
too - Use optimized libs (https://github.com/j-berman/fcmp-plus-plus-optimization-competition)
- Integrate updated divisors re-implementation
On hold
-
Blinds cache (fcmp++: cache that blinds branches and outputs in the background #25)(no longer necessary thanks to contest success)
jeffro256, SyntheticBird45, tobtoht and chaserene
Metadata
Metadata
Assignees
Labels
No labels