Dear backers,
Last month we had our first "it works!" milestone for a toy app working with PPPPP. It was exciting, but we also uncovered a lot of bugs and crashes. The biggest problems were:
- Live updates weren't working, app restarts were needed
- Messages that shouldn't be deleted were being deleted
- Error popups were frequent
- An important replication corner case
I confess I was a bit clueless how to fix them in the beginning, but focusing on each issue systematically helped to slowly figure them all out. Here's a list of the most important fixes:
- ppppp-sync: add realtime replication
- ppppp-conductor: critical fixes
- ppppp-gc: do not redundantly erase msgs
- ppppp-db: refresh memory state after garbage collection
- ppppp-db: adding a dataful msg can replace a dataless msg
- ppppp-db: tangle msgs can be added in random order
- ppppp-net: scheduler updated
Since the PPPPP protocol allows deletions and erasures to happen anywhere in any tangle, it's more complex than SSB is. The replication protocol has to take into account that peers may have very different views of the same tangle, and it shouldn't matter what remote peer we synchronize with first, we should end up with the same tangle state.
After the above fixes were done, I updated our collaborative whiteboard app, and to my surprise was able to successfully connect two of my computers together and see whiteboard updates happen in realtime without crashes! The next test will be to try this over the internet with our friends in New Zealand.
Finally, an exciting update to our team is that Jacob Karlsson is joining to help with the JavaScript libraries! All your donations are going to go towards financially supporting Jacob working on this, until June. Mix and I gave him a tour of the project and he already started contributing, as of yesterday. Here's a happy screenshot of our video call:
Our roadmap hasn't changed since last month, so no need to include it here. But, if the whiteboard app works across the internet, then this month we'll just be focusing on documentation and packaging the libraries for launch!
Kind regards,
– @andrestaltz