星鉴网>技术干货>IPFS入门教程:将内容添加到IPFS并检索它

IPFS入门教程:将内容添加到IPFS并检索它

2018/12/22 16:31:56 1649人阅读

【导读】 将文件的内容添加到IPFS,使用其哈希值从IPFS中读取内容。

  完成本课后,您将能够


  将文件的内容添加到IPFS


  使用其哈希值从IPFS中读取内容


  解释IPFS哈希值与您添加的内容之间的关系


  步骤


  步骤1:创建要添加到IPFS的文件


  您可以向IPFS添加任何类型的内容。在本课中,我们将一些文本内容放入“txt"”件中,但您可以对任何内容或任何文件执行相同的过程。


  为这个例子创建一个新目录是个不错的选择。导航到您可以轻松放置新文件夹(例如~/Desktop)的位置,然后创建一个新目录并进入该目录。这是一个示例命令:


  $ cd ~/Desktop

  $ mkdir ipfs-tutorial

  $ cd ipfs-tutorial


  现在,创建一个名为的文件mytextfile.txt,并将文本“version 1 of my text”放入其中。在命令行上执行此操作的一种简单方法是使用以下命令:


  $ echo "version 1 of my text" > mytextfile.txt


  您可以使用以下cat命令读取文件的内容:


  $ cat mytextfile.txt

  version 1 of my text


  第2步:将文件添加到IPFS


  $ ipfs add mytextfile.txt

  added QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy mytextfile.txt


  保存QmZtmD2qt...ipfs返回的哈希值。这是内容的加密哈希。如果文件的内容发生更改,则散列将更改,但如果文件的内容保持不变,则散列将始终相同。


  第3步:从IPFS中读取内容


  就像常规cat命令允许您读取文件的内容一样,该ipfs cat命令允许您读取已添加到ipfs的文件的内容。


  使用ipfs cat命令通过传递内容的加密哈希来读取内容 - 这是ipfs在您运行时返回的哈希值ipfs add mytextfile.txt。


  $ ipfs cat QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy

  version 1 of my text


  请注意,这会返回文件的内容,而不是文本文件本身。那是因为QmZtmD2qt...是内容的哈希,而不是文件本身。我们将在下一步测试。


  步骤4:确认哈希指向内容,而不是文件


  当我们使用ipfs cat读取文件的内容,它返回的内容的文件,而不是文本文件本身。那是因为哈希QmZtmD2qt...是内容的哈希值。我们可以通过直接将文本内容添加到IPFS来测试,而无需将其放在文件中。


  $ echo "version 1 of my text" | ipfs add

  added QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy


  哈希应该与添加mytextfile.txt时获得的哈希完全相同。如果要进行三重检查,可以根据需要多次运行这些命令。哈希值应始终相同。


  $ ipfs add mytextfile.txt

  added QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy mytextfile.txt

  $ echo "version 1 of my text" | ipfs add

  added QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy

  $ cat mytextfile.txt | ipfs add

  added QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy


  只要内容保持不变,您将始终获得相同的哈希值。就IPFS而言,它是相同的内容。


  第5步:更改内容并获取不同的哈希值


  现在将文本内容更改为“version 2 of my text”并将其添加到ipfs。你会得到一个不同的哈希。


  正如我们在上一步中确认的那样,您可以将新文本直接添加到IPFS,也可以修改mytextfile.txt并将其添加到IPFS。你会得到相同的哈希。


  $ echo "version 2 of my text" | ipfs add

  added QmTudJSaoKxtbEnTddJ9vh8hbN84ZLVvD5pNpUaSbxwGoa QmTudJSaoKxtbEnTddJ9vh8hbN84ZLVvD5pNpUaSbxwGoa


  步骤5:将IPFS中的内容管道传输到文件中


  您可以从ipfs中读取此内容(任何版本)并将其写入文件。例如,您可以将mytextfile.txt的内容从“版本1”切换为“版本2”,并根据需要返回多次:


  $ ipfs cat QmTudJSaoKxtbEnTddJ9vh8hbN84ZLVvD5pNpUaSbxwGoa > mytextfile.txt

  $ cat mytextfile.txt

  version 2 of my text

  $ ipfs cat QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy > mytextfile.txt

  $ cat mytextfile.txt

  version 1 of my text


  您还可以将ipfs中的内容写入一个全新的文件中。


  $ ipfs cat QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy > anothertextfile.txt

  $ cat anothertextfile.txt

  version 1 of my text


  说明


  IPFS根据其加密哈希跟踪内容。此哈希唯一地标识该内容。只要内容保持不变,散列保持不变,但如果内容发生变化,您将获得不同的散列。


  如果您有两个包含相同内容的不同文件,则IPFS将使用一个哈希跟踪该内容。即使文件名不同,但只要内容相同,内容的哈希值就相同。


15

参与讨论

登录后参加评论......

全部评论 0

作者

返回顶部