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

Draft of the Get Started page #27

Closed
wants to merge 3 commits into from
Closed

Draft of the Get Started page #27

wants to merge 3 commits into from

Conversation

nicola
Copy link
Member

@nicola nicola commented Dec 16, 2016

Tutorial for the get started, missing example and double check from the rest of the team

@nicola nicola changed the title Create Get-Started.md Draft of the Get Started page Dec 16, 2016
@RichardLitt RichardLitt self-assigned this Dec 16, 2016
@RichardLitt RichardLitt assigned nicola and unassigned RichardLitt Dec 23, 2016
@nicola nicola mentioned this pull request Jan 30, 2017
49 tasks
Get-Started.md Outdated
- This tutorial will guide you from the very basics to real example of IPLD.
- IPLD stands for the Inter Planetary Linked Data
- When we get data from the internet, we know it comes from the right place, if the URL is https (some times not even! TODO: add symantec & fake certificates), but we don’t know if it was the data we intended to get!
- The same problem is with links, we don’t know if a link is still linking to the right page
Copy link

@nginnever nginnever Jan 30, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The same problem exists with links

Get-Started.md Outdated
- When we get data from the internet, we know it comes from the right place, if the URL is https (some times not even! TODO: add symantec & fake certificates), but we don’t know if it was the data we intended to get!
- The same problem is with links, we don’t know if a link is still linking to the right page
- Finally, the general problem of the current web is that we trust the source to give us the right data, so other computers in the network cannot really help sharing the same data!
- These 3 properties are secure linking, distributed naming and immutable content!
Copy link

@nginnever nginnever Jan 30, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These 3 properties are secure linking, distributed naming, and immutable content!

Get-Started.md Outdated
- Alright, this is a JSON object, which is also a valid IPLD object.

### Naming things with hashes
- In IPLD, we refer to objects with their cryptographic hash.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In IPLD, we refer to objects by their cryptographic hash.

Get-Started.md Outdated
- The hash of object1 is XXXX (well, this is a multihash, read more here)
- if we remove the dot from Mr, the hash is YYYY.
- In IPLD cryptographic hashes ensure that the content cannot change.
- If we ask to a network (like the ipfs network) for a hash

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we query a network (like the ipfs network) for a hash

Get-Started.md Outdated
- In IPLD cryptographic hashes ensure that the content cannot change.
- If we ask to a network (like the ipfs network) for a hash
- then, they cannot lie about the content that they are giving
- since you can generate the hash of the content received and check if it is the same one to the one that you asked for!

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since you can generate the hash of the content received and check if it is the same one as the one that you asked for!

Get-Started.md Outdated
## Linking objects

- What about secure linking?
- Differently from standard JSON, we can link two objects by using a special keyword: “/“

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unlike standard JSON, we can link two objects by using a special keyword: “/“

Get-Started.md Outdated
```

- Links are cryptographic hashes, we often call those merkle links (in reference to Merkle Tree)
- Since we are using cryptographic hashes, then the links can only be one way (link to stackoverlow issue that mentions this)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we are using cryptographic hashes, the links can only be one way

Get-Started.md Outdated
# Dive deep into IPLD
- Let's move beyond toy examples and let's learn more about IPLD
## Path scheme
- An IPLD address is composed by a CID and a path.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An IPLD address is composed of a CID and a path.

Get-Started.md Outdated
- A multihash is not just a hash: it is the hash prefixed by the hashing function and the length of the hash. In this way we can decide to what cryptographic hash function we want to hash the content.
- A multicodec specifies the type of content we are addressing.
- In the examples above we used IPLD+CBOR
- Thanks for recent work in IPLD, we can address natively other type of content. For example, a format we recognize is an Ethereum block. So we can now content address an ethereum block and use our path scheme on it!

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks to recent work in IPLD, we can now address other types of content natively.

@nginnever
Copy link

Hey nicola! thanks for writing this. I have in the past found it hard to keep up with ipld bikeshedding discussions that seem to obfuscate what ipld actually is. This was much easier to follow. I added some simple comments along the way of reading this that I thought made it sound clearer. Feel free to use or not. Cheers!

@nicola
Copy link
Member Author

nicola commented Jan 30, 2017

@nginnever, thank you! I am sure in the minds of most of the guys behind IPFS is all still and clear, we just need to write it!

Feel free to send that as a PR of the PR, or maybe @RichardLitt we should just get this posted and add a "work in progress note"

@nicola
Copy link
Member Author

nicola commented Feb 1, 2017

Thank you @nginnever !

@daviddias
Copy link
Member

New website is now on this PR #30, closing this one.

@daviddias daviddias closed this May 25, 2017
@daviddias daviddias deleted the get-started-page branch May 25, 2017 13:11
@nicola
Copy link
Member Author

nicola commented May 27, 2017

@diasdavid the content for the tutorial is still valid though!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants