Skip to content

Persist payment info to disk #90

Closed
@alecchendev

Description

@alecchendev

I saw this was commented TODO in main.rs, but I wanted to open an issue to see if others think this would be valuable to implement before I start working on a PR for it.

Motivation

It seems this--keeping track of payment info between times that a node is on/offline--would be helpful to demonstrate to a user. I don't think this adds significant complexity compared to what's already here, but I'm open to what others have to say.

Implementing this

My initial thoughts for what needs to be done to implement this:

  • On startup, read inbound_payments and outbound_payments if they have been previously persisted.

  • Whenever inbound_payments or outbound_payments gets updated, persist payment info to disk.

  • Haven’t totally fleshed out what’s the best way to persist/update payment info, but considering some of the following:
    • Add custom read_payment_info and persist_payment_info functions to disk.rs.
    • Implement Writeable trait (and maybe Readable) on PaymentInfoStorage so that we can persist using FilesystemPersister similar to how other things are persisted.
    • Likely split up inbound_payments and outbound_payments into 2 different files to not complicate serializing payment info
  • Where does payment info get updated?
    • main.rs
      • inbound_payments | Event::PaymentClaimed
      • outbound_payments | Event::PaymentSent
      • outbound_payments | Event::PaymentFailed
    • cli.rs
      • inbound_payments | get_invoice
      • outbound_payments | send_payment
      • outbound_payments | keysend

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions