yeah, a tags, and d tags they refer to are a kind of virtual reference like a symlink. the rest of the namespace is just a flat one because there's a squillion possible "filenames" thanks to the sha256 hash.
"replaceable events" use the kind as a filename
"parameterized replaceable events" are actually the combination of a kind, pubkey and arbitrary unique identifier. this identifier can be re-pointed at anything
really symlink isn't the technical right word because event IDs are like ... the actual file, the data blob. replaceable events give you 10k "names" you can point at new things, and the 30k namespace gives you 10k namespaces you can put infinity names into.
I decided to stick with symlink, cuz it sounds cool, but I differentiated harder and softer ones.
hard links are actually not a real concept in the FS
it is basically 2 different file entries pointing to the same data, say the same file event
it's a kinda artificial distinction but the filesystem behaves differently in that it treats soft links like some kind of file in itself, where the hard links ARE the file itself, but deleting it doesn't affect the other reference, writing it does.
if an event has a d tag on it, and you make two events that point at it with an a tag, then that's really just like a hard link... IF the "file" is a replaceable event, so the reference to it is not to the event ID but to the kind/pubkey/identifier
the analogy breaks down at this point
Thread collapsed
Thread collapsed
Yeah, it means symbolic link, but it always refers to soft links. But I lumped the hard link into the same event, as we have the ability to list either e (hard) or a (soft) tags.
Maybe I need a different name, but symlink sounds cool, and this whole topic is incredibly dull and nerdy, and I want to be cool.
yeah, the distinction is that events are immutable, that's the hardest part of it. d tags give you a handle to point a tags at so then you have a kind of mutability. the relay is supposed to recognise this and return the newest (or even delete old versions) when it gets an event with a d tag on it.
Thread collapsed
Thread collapsed
Thread collapsed
Thread collapsed