Skip to content
This repository has been archived by the owner on Jun 20, 2023. It is now read-only.

Background Concepts and Definitions #13

Closed
schomatis opened this issue Jun 20, 2018 · 5 comments
Closed

Background Concepts and Definitions #13

schomatis opened this issue Jun 20, 2018 · 5 comments

Comments

@schomatis
Copy link

So, in order to do any meaningful review I need to ask a lot of boring questions (@Stebalien you knew what you singed up for when you asked me to review), I can't find much information about any of this, I'm reading the README,

Utilities for creating, parsing, and validating IPNS records

What is an IPNS record? (I should even ask what IPNS really is.)

Once you have the record, you’ll need to use IPFS to publish it.

What does it mean to publish it?

The documentation posted is just a GoDoc link with not much meaningful information.

Feel free to reply with just a link where I can read about all of this (please don't let it be a 3 year old closed issue like the one google throws when asking it).

@Stebalien
Copy link
Member

Hm. Unfortunately, I don't know of any good "what is IPNS" resources and this is not the first time I've needed one. I should probably write one...

@schomatis
Copy link
Author

Yes, any information you could provide me will be extremely valuable, I know nothing about IPNS besides what I've seen in a presentation or two about being able to generate mutable content (in my head I think of it as the DNS of the IPFS world, although I'm aware that is not correct), but I have no idea about how it is technically implemented, and without that I don't think I can be of much use here.

@Stebalien
Copy link
Member

Basically, it allows users to map a public key to some path (e.g., an IPFS path) by creating an IPNS record signed by the public key in question. The mapping is generally ephemeral and expires after a period of time to reduce the window for replay attacks.

An IPNS record has:

  • A value: the current value of the IPNS entry.
  • A validity data and type: Together, these describe under what conditions the IPNS record is valid. Currently, we only support an expiration time. (type = EOL, value = $someDate).
  • A sequence number. IPNS records are orderd first by sequence number, then by EOL.
  • A signature over the above fields.
  • (optionally) An embedded public key so DHT nodes can verify the IPNS record without having to fetch it.

@dirkmc
Copy link

dirkmc commented Jun 29, 2018

I think it would also be helpful for anyone who is considering using IPFS to store name records, to understand the current, theoretical and expected performance limits, so they can answer questions about whether to use IPFS or eg BitTorrent DHT etc for their project.

My questions would be along the lines of

  • How long does it currently typically take to store / retrieve a record?
  • What is the theoretical minimum / average / maximum time?
  • What is the expected minimum / average / maximum time (and when will IPNS be stable enough to consistently hit these benchmarks)?
  • How much data can I store in a record?
  • etc

Because IPFS / IPNS are improving rapidly it would be good to have a public roadmap and an indication of where we are on it, and where we expect to be in terms of performance

@hacdias
Copy link
Member

hacdias commented Jun 6, 2023

This repository is no longer maintained and has been copied over to Boxo. We are now in the process of reviewing issues and PRs and moving the ones that are still relevant. This issue has been moved to ipfs/boxo#335.

@hacdias hacdias closed this as not planned Won't fix, can't repro, duplicate, stale Jun 6, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
No open projects
Archived in project
Development

No branches or pull requests

4 participants