peer-base / peer-pad

📝 Online editor providing collaborative editing in really real-time using CRDTs and IPFS.
https://peerpad.net
MIT License
678 stars 58 forks source link

Report in the UI if the pinner is unhealthy #315

Open jimpick opened 5 years ago

jimpick commented 5 years ago

If the pinner is having trouble saving data to ipfs-cluster asynchronously, it would be good if it could report that it is in poor health, and display that in the PeerPad UI somehow.

There may be more than one pinner in a collaboration, so we'd need to figure out how to display that information.

parkan commented 5 years ago

we do currently have a bad status, right? should this be refined to "improve pinner error message in UI"?

jimpick commented 5 years ago

There are sort of multiple levels of pinning - the first stage is for the web browser to pin the peer-base collaboration via a websocket to peer-base-pinner, which is basically just another peer in the collaboration. When that succeeds, the UI will say that the content was pinned.

There's a second level of pinning which is basically peer-base-pinner saving a backup to ipfs-cluster. Conceptually it's a bit like how virtual memory swaps out to disk. That happens asynchronously, and could happen a minute or so later than when peer-base-pinner first synced the data from the web client. If bad things are happening at this stage, currently, the web client will not know that the pinner is in trouble, and will assume that the data they have pinned has been durably persisted, when in fact it hasn't been.

parkan commented 5 years ago

I wonder if the "real" way to do this is for the app itself to check that findProvs of the latest state shows the expected results?