Closed adaburrows closed 1 year ago
Additionally, the slow gossiping bug in Holochain core exacerbates this issue. It's possible that upgrading to holochain-v0.0.166 (we're at v0.0.162) could fix that part of the issue:
I've upgraded to Holochain v0.0.173. It should have most of the fixes in. It seems there's still on issue with large blob gossip, but that shouldn't impact us.
The Problem
Currently, when someone installs the playspace a 'bug' manifests itself. Here's the causal chain of events:
profile
andproject
zomes. They become the first agent in existence in the network of cells that all share the same code.project
zome to retrieve theroot
object and see if there's aplanID
set. Since there is no data yet, the call returns no data since it hasn't been created yet.Plan
and a newroot
object with aplanId
set to the ID of the new Plan. It then makes a zome call to theproject
zome of Alice's cell to create those objects and the links between them.profile
andproject
zomes. This is now the second cell on the network and this cell needs to synchronize on the DHT through the gossip protocol. Until it synchronizes, Eve's frontend will react as though it is the first cell in the network.project
zome to retrieve theroot
object and see if there's aplanID
set. Since there is no data yet, the call returns no data since it hasn't synchronized.Plan
and a newroot
object with aplanId
set to the ID of the new Plan. It then makes a zome call to theproject
zome of Eve's cell to create those objects and the links between them.root.planId
is pointing.root.plan.*
index.The Solution
We should have the application show a list of Plans to select (for when plans have been synchronized between cells on the DHT). We should also allow creating a new Plan otherwise every UI will just sit there, waiting for something that will never happen.
This should happen after the Profiles dialog shows itself.