-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: nomenclature #5
base: master
Are you sure you want to change the base?
Conversation
Good call. I share the question about registers. |
On that topic, I started to try to add some decision making criteria when deciding between a few possible words (realizing now I should make a section for this):
So, though register is more technically accurate it seems like feed or log may be preferred. |
Note to self from previous meeting:
|
Things I miss specified:
... and a link to the terminology used in the dat protocol book: https://github.com/datprotocol/book/blob/a3ca149853b9153c7140876d6f749ecad5c6edbb/src/ch03-01-terminology.md |
I'll offer some definitions here...
|
I would define a Checkout as a folder containing files from a dat/hyperdrive feed at a specific version (which could be the most recent version; doesn't need to be "previous"). This is distinct from having the same content stored locally in SLEEP files. The terminology comes from git and To clarify Version, it's the integer message number of a hypercore feed. These days, with multi-writer, the term gets a bit more ambiguous because there are multiple feeds, so the version of a hyperdb overall can be an array of (feed, integer) pairs. UX/nomenclature around this will probably need an update for dat-on-multiwriter-hyperdb. Sparse usually implies that not only is the dataset/feed only partially replicated, but that it's intentionally only partially replicated: the user only wanted, eg, a sub-directory, or only specific versions replicated. I don't think there is clarity/terminology around the case of having "the entire most recent version of a hyperdrive/hyperdb" (eg, full values for all keys/files at the most recent version) but not full history: is that considered Sparse? In conversation i've usually heard people refer to this as the default condition (just having the most recent version), and having the full history of the feed being a speciall "Full History" or "Archival" copy. I agree with pfrazee on Bootstrapping and Live. |
Suggestion regarding key naming, to strengthen the intent and usage of the keys and remove ambiguity about what abilities various keys grant:
This way, people new to the system will not be misled into thinking, for example, that the public key is public (where would they get such an idea?) ;P And the keys do exactly what they say on the tin. Example usage:
Thoughts? |
@aral I think that's a pretty reasonable suggestion that could remove some ambiguity. I also always mistake "secret key" with "private key", which this would also help solve. |
@aral I am considering working on an "encrypted DAT". :DATs that are additionally encrypted with yet another key in order to implement proxies/bridges that don't know about the content of a DAT. Do you have any idea how this Key should be called? ;) |
If you mean encrypting the contents of hypercores, I’d say “encryption key” does what it says on the tin. |
Thanks, naming is hard :-) |
What entails "sync" in |
Here’s the latest glossary for Hypha, in case it helps – please feel free to use the definitions that apply: https://ar.al/2019/02/18/hypha-glossary/ Regarding the last question in your latest comment, @martinheidegger, authorised vs unauthorised is what I’m using. |
"authorised" makes sense in a multiwriter context, but in a single-writer context (that will exist in future) it feels weird as there is no way how to every authorise another peer. |
|
@RangerMauve "pinning service" was also known as "publishing": https://github.com/datproject/dat/blob/master/src/commands/publish.js
|
@RangerMauve Do you think registry/publish is worse than "pinning service"/pinning? (is it the same thing?) |
I haven't seen I like pinning because it's more descriptive of what's actually happening. A registry/publishing implies some sort of centralization or control. Whereas pinning has more of a "Hey, I'm keeping this around for you" feeling where you're still in control and it's no big deal who's pinning it. I also like the term "Seeding" since it relates to the BitTorrent world |
Some of the pinning stuff may be addressed in https://www.datprotocol.com/deps/0003-http-pinning-service-api/ |
This DEP is still work-in-progress.
I've added the summary/motivation and Bryan's questions. I need to put a bit of thought in how to best organize this, in the case we have a lot of terms in here.
We also have existing terms in the Dat documentation: https://docs.datproject.org/terms. I can update/consolidate those to this DEP.
I will try to collect some good examples of other nomeclature/naming convention docs as motivation, if you have suggestions.