I am starting to see Lightning wallets which backs up every state change to the cloud, which allows a complete recovery in the event the device is lost/unusable. While this is fine for consumer level wallets, service providing backends with higher volumes may need something more reliable/private. If i am to build a production service over lightning, i cannot rely on "shutdown node and hope other nodes will close my channels honestly" when there is an outage or disk failure/corruption.
My idea is to simply add an optional WAL(write-ahead) log file which is a technique used by many enterprise grade databases to commit updates to the DB to a log file before actually updating the actual tablespace on disk. In the event of a crash, the database is able to fully recover from a recent backup of the tablespace and the WAL file. Ideally, the WAL log file should be on a different disk(s) to reduce probability of total failure due to disk issues.
To be even more secure, multiple log files in different disks can be specified.
I am starting to see Lightning wallets which backs up every state change to the cloud, which allows a complete recovery in the event the device is lost/unusable. While this is fine for consumer level wallets, service providing backends with higher volumes may need something more reliable/private. If i am to build a production service over lightning, i cannot rely on "shutdown node and hope other nodes will close my channels honestly" when there is an outage or disk failure/corruption.
My idea is to simply add an optional WAL(write-ahead) log file which is a technique used by many enterprise grade databases to commit updates to the DB to a log file before actually updating the actual tablespace on disk. In the event of a crash, the database is able to fully recover from a recent backup of the tablespace and the WAL file. Ideally, the WAL log file should be on a different disk(s) to reduce probability of total failure due to disk issues.
To be even more secure, multiple log files in different disks can be specified.