【IPFS + 区块链 系列】 入门篇 IPFS+IPNS+个人博客搭建

区块链技术巴比特2017-11-25 07:01:33  阅读 -评论 1

在阅读这篇文章之前,你需要先学习【IPFS + 区块链 系列】 入门篇 – IPFS环境配置这篇文章。

目录 1. 如何在IPFS新增一个文件 1.1 新建file.txt文件 1.2 查看ipfs相关命令 1.3 将file.txt添加到ipfs节点 2. 通过ipfs创建目录存储文件 3. 如何在IPFS新增一个目录 3.1 使用ipfs add -r可以上传一整个目录 3.2 通过路径访问contactme.txt文件数据 3.3 通过Hash查看数据IPFS网络数据 4. 创建简易的网页发布到IPFS 4.1 创建一个index.html文件 4.2 创建一个style.css文件 4.3 添加到ipfs 4.4 网络同步 4.5 访问网站 4.6 发布到IPNS 5. 发布个人博客 5.1 搭建静态博客 5.2 节点ID替换 5.3 浏览博客 6. 下篇预报 6.1 ipfs + ethereumDapp开发入门 1. 如何在IPFS新增一个文件 1.1 新建file.txt文件

打开终端,切换到桌面,新建一个文件夹1121,切换到1121中,通过vi新建一个文件file.txt,文件里面输入春哥微信号liyc1215保存并且退出。

localhost:Desktop yuechunli$ pwd /Users/liyuechun/Desktop localhost:Desktop yuechunli$ mkdir 1121 localhost:Desktop yuechunli$ cd 1121/ localhost:1121 yuechunli$ vi file.txt localhost:1121 yuechunli$ cat file.txt liyc1215 localhost:1121 yuechunli$ 1.2 查看ipfs相关命令 localhost:1121 yuechunli$ ipfs help USAGE ipfs - Global p2p merkle-dag filesystem. ipfs [--config= | -c] [--debug= | -D] [--help=] [-h=] [--local= | -L] [--api=] ... SUBCOMMANDS BASIC COMMANDS init Initialize ipfs local configuration add Add a file to IPFS cat Show IPFS object data get Download IPFS objects ls List links from an object refs List hashes of links from an object DATA STRUCTURE COMMANDS block Interact with raw blocks in the datastore object Interact with raw dag nodes files Interact with objects as if they were a unix filesystem dag Interact with IPLD documents (experimental) ADVANCED COMMANDS daemon Start a long-running daemon process mount Mount an IPFS read-only mountpoint resolve Resolve any type of name name Publish and resolve IPNS names key Create and list IPNS name keypairs dns Resolve DNS links pin Pin objects to local storage repo Manipulate the IPFS repository stats Various operational stats p2p Libp2p stream mounting filestore Manage the filestore (experimental) NETWORK COMMANDS id Show info about IPFS peers bootstrap Add or remove bootstrap peers swarm Manage connections to the p2p network dht Query the DHT for values or peers ping Measure the latency of a connection diag Print diagnostics TOOL COMMANDS config Manage configuration version Show ipfs version information update Download and apply go-ipfs updates commands List all available commands 1.3 将file.txt添加到ipfs节点 localhost:1121 yuechunli$ ls file.txt localhost:1121 yuechunli$ ipfs add file.txt added QmbrevseVQKf1vsYMsxCscRf6D7S2dftYpHwxkYf94pc7T file.txt localhost:1121 yuechunli$ cat file.txt liyc1215 localhost:1121 yuechunli$ ipfs cat QmbrevseVQKf1vsYMsxCscRf6D7S2dftYpHwxkYf94pc7T liyc1215 localhost:1121 yuechunli$

当执行完ipfs add file.txt这个命令以后,会将file.txt添加到ipfs当前的节点中,并且会对file.txt文件生成一个唯一的hashQmbrevseVQKf1vsYMsxCscRf6D7S2dftYpHwxkYf94pc7T,如果想查看本地ipfs节点的数据,可以通过ipfs cat QmbrevseVQKf1vsYMsxCscRf6D7S2dftYpHwxkYf94pc7T进行查看。

⚠️:当我试图通过http://ipfs.io/ipfs/QmbrevseVQKf1vsYMsxCscRf6D7S2dftYpHwxkYf94pc7T进行数据访问时,无法访问,如下图所示:

【IPFS + 区块链 系列】 入门篇  IPFS+IPNS+个人博客搭建

⚠️:虽然数据已经添加到当前的你自己的IPFS节点中,但是并没有同步到IPFS网络,所以暂时在网络上无法访问。

⚠️:重要:接下来执行下面的命令同步节点数据到IPFS网络,再试图在网络上查看数据。

同步节点

新建一个终端,执行ipfs daemon。

localhost:.ipfs yuechunli$ ipfs daemon Initializing daemon... Adjusting current ulimit to 2048... Successfully raised file descriptor limit to 2048. Swarm listening on /ip4/111.196.246.151/tcp/3637 Swarm listening on /ip4/127.0.0.1/tcp/4001 Swarm listening on /ip4/169.254.170.167/tcp/4001 Swarm listening on /ip4/192.168.0.107/tcp/4001 Swarm listening on /ip6/::1/tcp/4001 API server listening on /ip4/127.0.0.1/tcp/5001 Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080 Daemon is ready 从IPFS网络查看数据

浏览器访问https://ipfs.io/ipfs/QmbrevseVQKf1vsYMsxCscRf6D7S2dftYpHwxkYf94pc7T

【IPFS + 区块链 系列】 入门篇  IPFS+IPNS+个人博客搭建

2. 通过ipfs创建目录存储文件

在着上面的步骤走,我们可以通过ipfs cat QmbrevseVQKf1vsYMsxCscRf6D7S2dftYpHwxkYf94pc7T
liyc1215查看添加到ipfs网络的file.txt文件的内容,如下:

localhost:1121 yuechunli$ ipfs cat QmbrevseVQKf1vsYMsxCscRf6D7S2dftYpHwxkYf94pc7T liyc1215 localhost:1121 yuechunli$

当然,我们也可以通过ipfs的相关命令在ipfs的根目录下面创建文件夹,并且将file.txt文件移动或者拷贝到我们创建的文件夹中。

⚠️:cp不会改变文件hash,mv会改变hash寻址。

localhost:1121 yuechunli$ ipfs cat QmbrevseVQKf1vsYMsxCscRf6D7S2dftYpHwxkYf94pc7T liyc1215 localhost:1121 yuechunli$ ipfs files mkdir /LiYueChun localhost:1121 yuechunli$ ipfs files cp /ipfs/QmbrevseVQKf1vsYMsxCscRf6D7S2dftYpHwxkYf94pc7T /LiYueChun/file.txt localhost:1121 yuechunli$ ipfs files ls / LiYueChun localhost:1121 yuechunli$ ipfs files ls /LiYueChun/ file.txt localhost:1121 yuechunli$ ipfs files read /LiYueChun/file.txt liyc1215 localhost:1121 yuechunli$ 3. 如何在IPFS新增一个目录 3.1 使用ipfs add -r可以上传一整个目录 localhost:1121 yuechunli$ ipfs add -r ipfs-tutorial/ added QmYx4BnhnLXeMWF5mKu16fJgUBiVP7ECXh7qcsUZnXiRxc ipfs-tutorial/contactme.txt added QmfKdWsguobA3aDPvSxLB3Bq4HMKyqKSgFr2NFUuVH8n31 ipfs-tutorial/eth-fabric.png added QmXe8jTxTh5MZP6BK5cnj19mXNTKVMzNyUJZUHuYyr5dk1 ipfs-tutorial/gongzhonghao.png added QmSsjQDVw1fvmG5RsZMgp2GjihiXn2zDv64mfHZN3AREek ipfs-tutorial 3.2 通过路径访问contactme.txt文件数据

如果我们上传的是目录,那么可以通过下面几种方式访问到contactme.txt文件的数据。

localhost:1121 yuechunli$ ipfs cat QmYx4BnhnLXeMWF5mKu16fJgUBiVP7ECXh7qcsUZnXiRxc 微信:liyc1215 区块链技术交流群:348924182 公众号:区块链部落 localhost:1121 yuechunli$ ipfs cat /ipfs/QmYx4BnhnLXeMWF5mKu16fJgUBiVP7ECXh7qcsUZnXiRxc 微信:liyc1215 区块链技术交流群:348924182 公众号:区块链部落 localhost:1121 yuechunli$ ipfs cat /ipfs/QmSsjQDVw1fvmG5RsZMgp2GjihiXn2zDv64mfHZN3AREek/contactme.txt 微信:liyc1215 区块链技术交流群:348924182 公众号:区块链部落 localhost:1121 yuechunli$ 3.3 通过Hash查看数据IPFS网络数据 访问目录:https://ipfs.io/ipfs/QmSsjQDVw1fvmG5RsZMgp2GjihiXn2zDv64mfHZN3AREek

【IPFS + 区块链 系列】 入门篇  IPFS+IPNS+个人博客搭建

通过目录访问文件:https://ipfs.io/ipfs/QmSsjQDVw1fvmG5RsZMgp2GjihiXn2zDv64mfHZN3AREek/contactme.txt
【IPFS + 区块链 系列】 入门篇  IPFS+IPNS+个人博客搭建 通过文件hash直接访问:https://ipfs.io/ipfs/QmYx4BnhnLXeMWF5mKu16fJgUBiVP7ECXh7qcsUZnXiRxc

【IPFS + 区块链 系列】 入门篇  IPFS+IPNS+个人博客搭建

4. 创建简易的网页发布到IPFS

在这里我先自己写一个简单的网页给大家演示,先在桌面新建一个site文件夹,然后按照下面的步骤在site文件夹中建立index.html和style.css文件。

4.1 创建一个index.html文件 DOCTYPE html> Hello IPFS!

Hello IPFS!

4.2 创建一个style.css文件 h1 { color: green; } 4.3 添加到ipfs localhost:Desktop yuechunli$ ipfs add -r site/ added QmWG5rbgT9H77TGq49RXNoqN8M7DNKMnMX425nkmCB6BjS site/index.html added QmfGLJ3mryLvicQqzdsghq4QRhptKJtBAPe7yDJxsBGSuy site/style.css added QmdVEGkT5u7LtzzatTrn8JGNEF3fpuMPVs2rPCfvqRykRp site

最后一行是项目根目录的hash,你先通过ipfs daemon同步网络,然后可以通过https://ipfs.io/ipfs/<你的项目根目录hash>,即https://ipfs.io/ipfs/QmdVEGkT5u7LtzzatTrn8JGNEF3fpuMPVs2rPCfvqRykRp访问项目。

4.4 网络同步 localhost:Desktop yuechunli$ ipfs daemon 4.5 访问网站

浏览器打开https://ipfs.io/ipfs/QmdVEGkT5u7LtzzatTrn8JGNEF3fpuMPVs2rPCfvqRykRp,效果图如下:

【IPFS + 区块链 系列】 入门篇  IPFS+IPNS+个人博客搭建

4.6 发布到IPNS

当我们修改网站内容重新添加到ipfs时,hash会发生变化,当我们网站更新时,我们可以将网站发布到IPNS,在IPNS中,允许我们节点的域名空间中引用一个IPFS hash,也就是说我们可以通过节点ID对项目根目录的IPFS HASH进行绑定,以后我们访问网站时直接通过节点·ID访问即可,当我们更新博客时,重新发布到IPNS`即可。

localhost:~ yuechunli$ ipfs name publish QmdVEGkT5u7LtzzatTrn8JGNEF3fpuMPVs2rPCfvqRykRp Published to QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP: /ipfs/QmdVEGkT5u7LtzzatTrn8JGNEF3fpuMPVs2rPCfvqRykRp localhost:~ yuechunli$ ipfs id { "ID": "QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP" }

当我们执行ipfs name publish命令时,会返回我们的节点ID,你可以通过ipfs id进行查看验证是否是你的节点ID。

⚠️:验证

$ ipfs name resolve <peerId> localhost:~ yuechunli$ ipfs name resolve QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP /ipfs/QmdVEGkT5u7LtzzatTrn8JGNEF3fpuMPVs2rPCfvqRykRp localhost:~ yuechunli$

⚠️:当然我们现在就可以通过IPNS进行访问了。

https://ipfs.io/ipns/QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP

⚠️⚠️⚠️:注意上面是ipns而不是ipfs。

⚠️:如果你网站数据修改,需要重新发布到IPNS。

5. 发布个人博客

你可以通过Hugo按照官方文档创建一个漂亮的静态博客Hugo官方网站,当然你也可以自己编写,或者使用其他开源项目搭建。

5.1 搭建静态博客

大家可以自己搭建,也可以直接下载我的博客源码直接搭建。

源码地址:http://github.com/liyuechun/ipfs_blogger

5.2 节点ID替换 查看你的节点ID localhost:ipfs_pin yuechunli$ ipfs id { "ID": "《your peer id》" } localhost:ipfs_pin yuechunli$

在上面的源码中全局搜索将源码里面的QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP替换成你自己的ID。

接下来重复4. 创建简易的网页发布到IPFS的操作步骤即可。

5.3 浏览博客

浏览器打开https://ipfs.io/ipns/QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP/查看项目效果。

【IPFS + 区块链 系列】 入门篇  IPFS+IPNS+个人博客搭建

6. 下篇预报 6.1 ipfs + ethereumDapp开发入门 7. 技术交流 区块链技术交流QQ群:348924182 进微信群请加微信:liyc1215 「区块链部落」官方公众号

声明:链世界登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。此文如侵犯到您的合法权益,请联系我们100@7234.cn

    参与讨论 (1 人参与讨论)

    相关推荐

    区块链投资趋势报告:巨头入场布局行业趋于成熟

    区块链投资趋势报告:巨头入场布局行业趋于成熟

    来自:https://mp.weixin.qq.com/s?__biz=MzI4NzIxOTY1NA==&amp;mid=2650632639&amp;idx=1&amp;sn=e6d1c29731d992a80410aaee82ec3ea6&amp;chksm=f3d8db16c4af520097e4a64a71b1d4743ac326b9f027

    重新发明货币

    重新发明货币

    一、货币的演化过程 先简单回顾一下人类货币的演化过程,大概有以下阶段: a. 1.0版本:自然货币(贝壳、牲口、金银……) 这个阶段,货币基于一般等价物的稀有性或者实用性,货币不可能出现人为操纵的超发。 b. 2.0版本:早期纸币、银票到本位纸币 当贸易量越来越大,实物货币太不方便了,而且大家发现其实并不在意货币本身有什么价值,在意的只是这么多的货币能不能交换到足够的物品,于是纸币这种信用货

    从比特币交易看欧洲央行虚拟货币分类

    从比特币交易看欧洲央行虚拟货币分类

      互联网对传统社会的颠覆从未停止,在其完成对信息流、商流、物流、资金流的初步改造之后,或将以虚拟货币的形式打破现有货币体系   4月18日,在中国极客张沈鹏创办的比特币交易平台(42BTC.com)上,比特币对人民币的平均交易价为576元。当天,该平台完成了100个比特币的交易量。仅仅过去一周,4月25日上午,比特币对人民币的平均交易价已达到906元。据42BTC网站统计:在过去的32个月

    欧洲央行-比特币报告

    3.1 比特币 3.1.1 基本特征          比特币可能是最成功的,也可能是最有争议的虚拟货币方案,由日本程序员中本聪(译者注:事实上,中本聪是不是日本人,甚至是不是单个人无从考证)在2009年设计并实现。该计划基于一个类似于BitTorrent的P2P网络。BitTorrent是互联网上著名的共享文件协议,应用在电影,游戏和音乐领域。比特币在全球层面上运作,可用于各类货币交易(虚

    彻底玩转比特币地址和私匙

    彻底玩转比特币地址和私匙

    比特币地址和私匙是所有比特币初学者面对的一大难题,再加上那一串超长的字符串,让人更是摸不到头脑。 现在编者以问答的形式,带你一步步的揭开比特币地址和私匙的面纱。 还不知道什么是比特币地址和私匙的同学请点这里 问题一、比特币钱包由什么组成? 答 我们知道,比特币地址和私匙组成了比特币钱包,而私匙则决定了比特币地址上比特币的归属。 地址和私匙 问题二、如果只记得私匙我们还能还原比特币地址么? 答

    用GO语言实现比特币算法

    用GO语言实现比特币算法

    本节的这个例子展示一点点高精度数学包math/big、一点点散列包hash、一点点加密包crypto,还有一点点测试包testing的知识。这里不介绍bitcoin协议和算法——尽管它们很有趣,而是试图指出,Go对多种操作系统的支持,是实现这种跨平台应用的理想语言。 位钱(bitcoin)是一种使用加密手段制作的分布式电子货币。它最初于1998年由Wei Dai提出,并由中本聪(Satoshi

    详解比特币的找零机制

    详解比特币的找零机制

    比特币的找零机制一直让人有些迷惑,明明只向一个地址发送了比特币为什么 blockchain 上面的显示的有时是1个地址对多个地址,有时是多个地址对1个地址,有时又显示多个地址对多个地址? 为什么比特币资深用户要提醒大家当比特币钱包交易100次以上时再次交易后要重新备份钱包,恢复以前的钱包备份有可能会遭遇损失? 是的,这一切都是因为比特币的找零(Change)机制。本文参考 Bitcoin的维

    玩转比特币客户端之一:C盘转移和加速下载

    玩转比特币客户端之一:C盘转移和加速下载

    C盘空间不足?交易数据下载速度太慢?别着急,乐享比特币教你轻松玩转比特币官方客户端。 所有新人开始接触比特币时做的第一件事情大多数是安装比特币的官方客户端。 安全起见大家最好直接访问官方发布渠道sourceforge的地址进行下载:http://sourceforge.net/projects/bitcoin/files/Bitcoin/ 该网页列出了各版本的官方比特币客户端,目前

    麦妖榜
    更新日期 2019-03-19
    排名用户贡献值
    1BitettFan23752
    2等待的宿命23696
    3六叶树20309
    4天下无双16192
    5区块大康15902
    6lizhen00214889
    7让时间淡忘14246
    8linjm122712255
    9冷风大q11188
    10momo11174
    返回顶部 ↑