You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
a) she creates a new record feed which is writable for her. Let's say its key is A.
b) she creates a new local kappa scope kA and adds the feed A to it
c) she starts to swarm all feeds in kA under discoveryKey(A)
d) she puts some records to kA, which means they are putted into A
Bob receives A from Alice (outside of Sonar). Bob clones the island A. This means
a) he creates a local kappa scope kA
b) he joins discoveryKey(A) to ask for feed A, downloads it and adds it to kA
c) he creates a new writable feed B and adds it to kA
d) he puts some records to kA, which means they are putted into A
Claire does the same as Bob
Because Alice doesn't know about B her kA doesn't include B. What we currently do support is the following:
Bob sends Alice B
Alice adds a source record for B to her feed A. This causes B to be added for Alice's kA
. For Bob, this changes nothing because his kA already includes B
However, Bob could also send his key to Claire. Then, the following would happen:
Bob sends Claire B
Claire adds a source record for B to her feed C. This causes B to be added for Claire's kA
Because Claire syncs A in her kA, this will also add B to her kA
For Bob, this changes nothing because his kA already includes B
For Alice and everyone else syncing A this changes nothing because A doesn't have a record for either B or C
This model is interesting and might work out, however there's several challenges involved:
There's no definite notion what kAis, the only shared knowledge is that it includes A and all feeds authorized by A
At several times, we talked about making the "add a writable feed to my local kA" an explict action ("fork", "make writable", "enable edit") instead of it being automatic
This presents a challenge to the UI - it will be mandatory to, for each island, say includes unmerged changes or something like this. Once Alice authorizes a peer, the message would change to authorized writer
We currently wouldn't support to show an island in different states. This means that once Bob started making changes, he cannot view the island in the unchanged state (the UI could enable that, but only through manual filtering)
An alternative workflow look be more like git forking:
Bob clones A which creates kA for him and syncs A + referenced feeds
The island is readonly, Bob cannot make any changes
When Bob clicks Fork this island. This creates a new feed writable feed B, adds a source record for A to this feed B, creates a new local kappa scope kB, and starts offering B and A under discoveryKey(B)
Bob now has 2 local kappas: readonly kA and writable kB, where kB includes everything from kA
Bob can send B to Alice, and Alice can merge B into A
However, at least currently, if she wanted to "preview" kB, she'd first had to create kB, index it, then decide to merge, which would add B to Aand thuskB===kA`
This has the effect that now, for Bob, kA' and kBare identical. Therefore,iAandiBare also identical, apart from their swarm address:iAis swarmed underdiscoveryKey(A), iBis swarmed underdiscoveryKey(B)`
If he told others about iB he should likely continue swarming iA under iB.
An alternative would be that, when clicking fork, a new kB is created, but B is set to swarm on root address discoveryKey(A). To share his changes with others, he'd send a link that looks like sonar://discoveryKey(A)?include=B (or even sonar://A?branch=B)
Maybe it makes sense for us to pick up the fork/branch terminology. Not sure yet, will have to think all this through once more.
The text was updated successfully, but these errors were encountered:
Current state of things:
A
.kA
and adds the feedA
to itkA
underdiscoveryKey(A)
kA
, which means they are putted intoA
A
from Alice (outside of Sonar). Bob clones the islandA
. This meanskA
discoveryKey(A)
to ask for feedA
, downloads it and adds it tokA
B
and adds it tokA
kA
, which means they are putted intoA
Because Alice doesn't know about
B
herkA
doesn't includeB
. What we currently do support is the following:B
B
to her feedA
. This causesB
to be added for Alice'skA
. For Bob, this changes nothing because his
kA
already includesB
However, Bob could also send his key to Claire. Then, the following would happen:
B
B
to her feedC
. This causesB
to be added for Claire'skA
A
in herkA
, this will also addB
to herkA
kA
already includesB
A
this changes nothing becauseA
doesn't have a record for eitherB
orC
This model is interesting and might work out, however there's several challenges involved:
kA
is, the only shared knowledge is that it includesA
and all feeds authorized byA
kA
" an explict action ("fork", "make writable", "enable edit") instead of it being automaticincludes unmerged changes
or something like this. Once Alice authorizes a peer, the message would change toauthorized writer
An alternative workflow look be more like git forking:
A
which createskA
for him and syncsA
+ referenced feedsFork this island
. This creates a new feed writable feedB
, adds a source record forA
to this feedB
, creates a new local kappa scopekB
, and starts offeringB
andA
underdiscoveryKey(B)
kA
and writablekB
, wherekB
includes everything fromkA
B
to Alice, and Alice canmerge B into A
kB
, she'd first had to createkB
, index it, then decide to merge, which would addB to
Aand thus
kB===
kA`kA' and
kBare identical. Therefore,
iAand
iBare also identical, apart from their swarm address:
iAis swarmed under
discoveryKey(A),
iBis swarmed under
discoveryKey(B)`iB
he should likely continue swarmingiA
underiB
.fork
, a newkB
is created, butB
is set toswarm on root address discoveryKey(A)
. To share his changes with others, he'd send a link that looks likesonar://discoveryKey(A)?include=B
(or evensonar://A?branch=B
)Maybe it makes sense for us to pick up the
fork/branch
terminology. Not sure yet, will have to think all this through once more.The text was updated successfully, but these errors were encountered: