IPFS+IPNS+個人博客搭建

目錄

  • 1. 如何在IPFS新增一個文件
    • 1.1 新建file.txt文件
    • 1.2 查看ipfs相關(guān)命令
    • 1.3 將file.txt添加到ipfs節(jié)點
  • 2. 通過ipfs創(chuàng)建目錄存儲文件
  • 3. 如何在IPFS新增一個目錄
    • 3.1 使用ipfs add -r可以上傳一整個目錄
    • 3.2 通過路徑訪問contactme.txt文件數(shù)據(jù)
    • 3.3 通過Hash查看數(shù)據(jù)IPFS網(wǎng)絡(luò)數(shù)據(jù)
  • 4. 創(chuàng)建簡易的網(wǎng)頁發(fā)布到IPFS
    • 4.1 創(chuàng)建一個index.html文件
    • 4.2 創(chuàng)建一個style.css文件
    • 4.3 添加到ipfs
    • 4.4 網(wǎng)絡(luò)同步
    • 4.5 訪問網(wǎng)站
    • 4.6 發(fā)布到IPNS
  • 5. 發(fā)布個人博客
    • 5.1 搭建靜態(tài)博客
    • 5.2 節(jié)點ID替換
    • 5.3 瀏覽博客
  • 6. 下篇預(yù)報
    • 6.1
      ipfs + ethereum``Dapp開發(fā)入門

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相關(guān)命令

localhost:1121 yuechunli$ ipfs help
USAGE
  ipfs - Global p2p merkle-dag filesystem.

  ipfs [--config=<config> | -c] [--debug=<debug> | -D] [--help=<help>] [-h=<h>] [--local=<local> | -L] [--api=<api>] <command> ...

SUBCOMMANDS
  BASIC COMMANDS
    init          Initialize ipfs local configuration
    add <path>    Add a file to IPFS
    cat <ref>     Show IPFS object data
    get <ref>     Download IPFS objects
    ls <ref>      List links from an object
    refs <ref>    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節(jié)點

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$ 

當(dāng)執(zhí)行完ipfs add file.txt這個命令以后肠骆,會將file.txt添加到ipfs當(dāng)前的節(jié)點中肺蔚,并且會對file.txt文件生成一個唯一的hash``QmbrevseVQKf1vsYMsxCscRf6D7S2dftYpHwxkYf94pc7T加矛,如果想查看本地ipfs節(jié)點的數(shù)據(jù)履婉,可以通過ipfs cat QmbrevseVQKf1vsYMsxCscRf6D7S2dftYpHwxkYf94pc7T進行查看煤篙。

??:當(dāng)我試圖通過http://ipfs.io/ipfs/QmbrevseVQKf1vsYMsxCscRf6D7S2dftYpHwxkYf94pc7T進行數(shù)據(jù)訪問時斟览,無法訪問,如下圖所示:

image

??:雖然數(shù)據(jù)已經(jīng)添加到當(dāng)前的你自己的IPFS節(jié)點中辑奈,但是并沒有同步到IPFS網(wǎng)絡(luò)苛茂,所以暫時在網(wǎng)絡(luò)上無法訪問。

??:重要:接下來執(zhí)行下面的命令同步節(jié)點數(shù)據(jù)到IPFS網(wǎng)絡(luò)鸠窗,再試圖在網(wǎng)絡(luò)上查看數(shù)據(jù)妓羊。

  • 同步節(jié)點

新建一個終端,執(zhí)行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網(wǎng)絡(luò)查看數(shù)據(jù)

瀏覽器訪問https://ipfs.io/ipfs/QmbrevseVQKf1vsYMsxCscRf6D7S2dftYpHwxkYf94pc7T

2. 通過ipfs創(chuàng)建目錄存儲文件

在著上面的步驟走躁绸,我們可以通過ipfs cat QmbrevseVQKf1vsYMsxCscRf6D7S2dftYpHwxkYf94pc7T liyc1215查看添加到ipfs網(wǎng)絡(luò)的file.txt文件的內(nèi)容,如下:

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

當(dāng)然臣嚣,我們也可以通過ipfs的相關(guān)命令在ipfs的根目錄下面創(chuàng)建文件夾净刮,并且將file.txt文件移動或者拷貝到我們創(chuàng)建的文件夾中。

??: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文件數(shù)據(jù)

如果我們上傳的是目錄,那么可以通過下面幾種方式訪問到contactme.txt文件的數(shù)據(jù)怎虫。

localhost:1121 yuechunli$ ipfs cat QmYx4BnhnLXeMWF5mKu16fJgUBiVP7ECXh7qcsUZnXiRxc

localhost:1121 yuechunli$ ipfs cat /ipfs/QmYx4BnhnLXeMWF5mKu16fJgUBiVP7ECXh7qcsUZnXiRxc

localhost:1121 yuechunli$ ipfs cat /ipfs/QmSsjQDVw1fvmG5RsZMgp2GjihiXn2zDv64mfHZN3AREek/contactme.txt

localhost:1121 yuechunli$ 

3.3 通過Hash查看數(shù)據(jù)IPFS網(wǎng)絡(luò)數(shù)據(jù)

image
image

4. 創(chuàng)建簡易的網(wǎng)頁發(fā)布到IPFS

在這里我先自己寫一個簡單的網(wǎng)頁給大家演示暑认,先在桌面新建一個site文件夾困介,然后按照下面的步驟在site文件夾中建立index.htmlstyle.css文件。

4.1 創(chuàng)建一個index.html文件

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Hello IPFS!</title>
  <link rel="stylesheet" href="./style.css" />
</head>
<body>
  <h1>Hello IPFS!</h1>
</body>
</html>

4.2 創(chuàng)建一個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同步網(wǎng)絡(luò)座哩,然后可以通過https://ipfs.io/ipfs/<你的項目根目錄hash>,即https://ipfs.io/ipfs/QmdVEGkT5u7LtzzatTrn8JGNEF3fpuMPVs2rPCfvqRykRp訪問項目捡鱼。

4.4 網(wǎng)絡(luò)同步

localhost:Desktop yuechunli$ ipfs daemon

4.5 訪問網(wǎng)站

瀏覽器打開https://ipfs.io/ipfs/QmdVEGkT5u7LtzzatTrn8JGNEF3fpuMPVs2rPCfvqRykRp八回,效果圖如下:

image

4.6 發(fā)布到IPNS

當(dāng)我們修改網(wǎng)站內(nèi)容重新添加到ipfs時,hash會發(fā)生變化驾诈,當(dāng)我們網(wǎng)站更新時缠诅,我們可以將網(wǎng)站發(fā)布到IPNS,在IPNS中乍迄,允許我們節(jié)點的域名空間中引用一個IPFS hash管引,也就是說我們可以通過節(jié)點ID對項目根目錄的IPFS HASH進行綁定,以后我們訪問網(wǎng)站時直接通過節(jié)點·ID訪問即可闯两,當(dāng)我們更新博客時褥伴,重新發(fā)布到IPNS`即可。

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

當(dāng)我們執(zhí)行ipfs name publish命令時漾狼,會返回我們的節(jié)點ID重慢,你可以通過ipfs id進行查看驗證是否是你的節(jié)點ID

??:驗證

$ ipfs name resolve <peerId>

localhost:~ yuechunli$ ipfs name resolve QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP
/ipfs/QmdVEGkT5u7LtzzatTrn8JGNEF3fpuMPVs2rPCfvqRykRp
localhost:~ yuechunli$ 

??:當(dāng)然我們現(xiàn)在就可以通過IPNS進行訪問了逊躁。

https://ipfs.io/ipns/QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP

??????:注意上面是ipns而不是ipfs似踱。

image

??:如果你網(wǎng)站數(shù)據(jù)修改,需要重新發(fā)布到IPNS稽煤。

5. 發(fā)布個人博客

你可以通過Hugo按照官方文檔創(chuàng)建一個漂亮的靜態(tài)博客Hugo官方網(wǎng)站核芽,當(dāng)然你也可以自己編寫,或者使用其他開源項目搭建酵熙。

5.1 搭建靜態(tài)博客

大家可以自己搭建轧简,也可以直接下載我的博客源碼直接搭建。

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

5.2 節(jié)點ID替換

  • 查看你的節(jié)點ID
localhost:ipfs_pin yuechunli$ ipfs id
{
    "ID": "《your peer id》"
}
localhost:ipfs_pin yuechunli$ 

在上面的源碼中全局搜索將源碼里面的QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP替換成你自己的ID匾二。

接下來重復(fù)4. 創(chuàng)建簡易的網(wǎng)頁發(fā)布到IPFS的操作步驟即可哮独。

5.3 瀏覽博客

瀏覽器打開https://ipfs.io/ipns/QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP/查看項目效果。

IPFS 博客項目效果圖

6. 下篇預(yù)報

6.1

ipfs + ethereum``Dapp開發(fā)入門

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末察藐,一起剝皮案震驚了整個濱河市皮璧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌转培,老刑警劉巖恶导,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異浸须,居然都是意外死亡惨寿,警方通過查閱死者的電腦和手機邦泄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來裂垦,“玉大人顺囊,你說我怎么就攤上這事〗堵#” “怎么了特碳?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長晕换。 經(jīng)常有香客問我午乓,道長,這世上最難降的妖魔是什么闸准? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任益愈,我火速辦了婚禮,結(jié)果婚禮上夷家,老公的妹妹穿的比我還像新娘蒸其。我一直安慰自己,他們只是感情好库快,可當(dāng)我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布摸袁。 她就那樣靜靜地躺著,像睡著了一般义屏。 火紅的嫁衣襯著肌膚如雪靠汁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天湿蛔,我揣著相機與錄音膀曾,去河邊找鬼县爬。 笑死阳啥,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的财喳。 我是一名探鬼主播察迟,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼耳高!你這毒婦竟也來了扎瓶?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤泌枪,失蹤者是張志新(化名)和其女友劉穎概荷,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體碌燕,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡误证,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年继薛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片愈捅。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡遏考,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蓝谨,到底是詐尸還是另有隱情灌具,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布譬巫,位于F島的核電站咖楣,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏芦昔。R本人自食惡果不足惜截歉,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望烟零。 院中可真熱鬧瘪松,春花似錦、人聲如沸锨阿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽墅诡。三九已至壳嚎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間末早,已是汗流浹背烟馅。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留然磷,地道東北人郑趁。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像姿搜,于是被迫代替她去往敵國和親寡润。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理舅柜,服務(wù)發(fā)現(xiàn)梭纹,斷路器,智...
    卡卡羅2017閱讀 134,702評論 18 139
  • 第一章 Nginx簡介 Nginx是什么 沒有聽過Nginx致份?那么一定聽過它的“同行”Apache吧变抽!Ngi...
    JokerW閱讀 32,700評論 24 1,002
  • 第一章 安裝Git工具 下載GitHub for Windows,直接點擊安裝,安裝完成后,可以看到“Git Sh...
    不圓的石頭閱讀 11,878評論 5 63
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法绍载,類相關(guān)的語法太伊,內(nèi)部類的語法,繼承相關(guān)的語法逛钻,異常的語法僚焦,線程的語...
    子非魚_t_閱讀 31,664評論 18 399
  • 前天終于下定決心報了個人品牌線上課,說來慚愧曙痘,這算是給自己最大的一筆投資了芳悲。 我2017年的一...
    瞳小甜Rosie閱讀 269評論 0 0