earthstar-project / willowprotocol.org

The Willow Protocol website.
https://willowprotocol.org
22 stars 2 forks source link

Clarify rationale for definition of `Area.subspace_id` overlap #73

Closed DerickEddington closed 4 months ago

DerickEddington commented 4 months ago

Hi, it's not clear to me why overlap of Areas has its particular definition for the subspace_id dimension:

  • subspace_id is any, if a2.subspace_id is any, or a1.subspace_id, otherwise

IIUC, it's not normal intersection. That definition means it's abnormal in:

But normal intersection would instead be:

I'm guessing the definition was chosen to facilitate something like the PAI, but I don't understand that nor other aspects of Willow well enough yet to see why, how, or where exactly.

At first, I thought it was a typo. If it's not a typo, I might suggest changing its term from "intersection" to something else, because, with normal intersection being the case in the definitions of other things, like for the Ranges, that are termed "intersection", it's strange for the Area.subspace_id definition to use that term but not follow the normal meaning. Maybe "overlap" should be the official term for it, which the document is already partially calling it.

Please correct me if I'm misunderstanding anything. I've started implementing basic aspects of Willow and reached this point (after having read all the webpages twice) and want to get it right.

(The website's content is very well done so far, and Willow is looking awesome!)

AljoschaMeyer commented 4 months ago

Hi @DerickEddington,

thank you so much for catching this. It is indeed a basic mistake — I also messed that one up here, and I have no idea why I apparently wildly mix up intersection and union =S

Will fix post-haste. Great to hear of another implementation, feel free to join the Earthstar Discord if you want to showcase anything or have more questions.