I propose reworking the rebroadcast logic to
- Significantly improve privacy
- Create a cleaner divide between wallet & node responsibilities
Background: Currently, a node will only rebroadcast a transaction if it is the originating wallet. This is awful for privacy.
- Instead of the wallet directly relaying transactions to peers, the wallet will submit unconfirmed txns to the node, and the node will apply logic to trigger txn rebroadcasts.
- The node will not keep track of “my” transactions but instead, apply rebroadcast conditions to all transactions.
- The wallet will attempt to resubmit unconfirmed transactions to the node on a scheduled timer. This is to ensure the txn is not dropped from the local mempool.