penumbra icon indicating copy to clipboard operation
penumbra copied to clipboard

Add viewing capability for extended transaction details

Open hdevalence opened this issue 2 years ago • 2 comments

Is your feature request related to a problem? Please describe.

Currently, the view service only scans the CompactBlocks, 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.

hdevalence avatar Jun 20 '22 22:06 hdevalence

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.

hdevalence avatar Jun 20 '22 23:06 hdevalence

To start, a basic MVP of the design sketched in #1053 is in #1057

hdevalence avatar Jun 22 '22 05:06 hdevalence