penumbra
penumbra copied to clipboard
Add viewing capability for extended transaction details
Is your feature request related to a problem? Please describe.
Currently, the view service only scans the CompactBlock
s, getting the minimal data required to update the spendable notes. However, it doesn't provide a way to see the full transaction details, like the memo fields, or a way to see what transactions relate to a specific user.
Describe the solution you'd like
We should extend the view service to do extended transaction scanning.
This involves:
- [x] #1053
- [x] Deciding how to fetch extended data (do we do this at transaction level? block level?);
- [x] #1057
- [x] Implement outgoing viewing key decryption;
- [ ] Modeling a view of a transaction: once we have a full transaction, how do we represent the parts of it we can see?
- [x] #1101
- [ ] Creating additional tables in the view service for recording extended transaction data.
We'd originally had an idea of fetching full transactions by note commitment, and including random note commitments as chaff to obscure exactly which transactions were fetched. But this has the same problem as described in #1039: if we detect two different notes, and the notes came from the same transaction, we'll leak information, because the base rate will be much lower.
Instead, it seems better to download the entire block, and then process all of the transactions internally.
To start, a basic MVP of the design sketched in #1053 is in #1057