【IPFS + 區塊鏈 系列】 入門篇 - IPFS環境配置

孔壹學院:國內區塊鏈職業教育引領品牌。
作者:黎躍春,孔壹學院創始人,區塊鏈、高可用架構師
微信:liyc1215
區塊鏈博客:http://liyuechun.org

目錄

1. IPFS簡介

IPFS(InterPlanetary File System)是一個點對點的分佈式超媒體分發協議,它整合了過去幾年最好的分佈式系統思路,爲所有人提供全球統一的可尋址空間,包括Git、自證明文件系統SFSBitTorrentDHT,同時也被認爲是最有可能取代HTTP的新一代互聯網協議。

IPFS用基於內容的尋址替代傳統的基於域名的尋址,用戶不需要關心服務器的位置,不用考慮文件存儲的名字和路徑。我們將一個文件放到IPFS節點中,將會得到基於其內容計算出的唯一加密哈希值。哈希值直接反映文件的內容,哪怕只修改1比特,哈希值也會完全不同。當IPFS被請求一個文件哈希時,它會使用一個分佈式哈希表找到文件所在的節點,取回文件並驗證文件數據。

IPFS是通用目的的基礎架構,基本沒有存儲上的限制。大文件會被切分成小的分塊,下載的時候可以從多個服務器同時獲取。IPFS的網絡是不固定的、細粒度的、分佈式的網絡,可以很好的適應內容分發網絡的要求。這樣的設計可以很好的共享各類數據,包括圖像、視頻流、分佈式數據庫、整個操作系統、模塊鏈、8英寸軟盤的備份,還有靜態網站。

IPFS提供了一個友好的WEB訪問接口,用戶可通過http://ipfs.io/hash 獲取IPFS網絡中的內容,也許在不久的將來,IPFS協議將會徹底替代傳統的HTTP協議。

2. IPFS 本地環境安裝

2.1 下載ipfs壓縮包





2.2 安裝

liyuechun:Downloads yuechunli$ pwd
/Users/liyuechun/Downloads
liyuechun:Downloads yuechunli$ ls
go-ipfs_v0.4.10_darwin-amd64.tar.gz
liyuechun:Downloads yuechunli$ tar xvfz go-ipfs_v0.4.10_darwin-amd64.tar.gz 
x go-ipfs/build-log
x go-ipfs/install.sh
x go-ipfs/ipfs
x go-ipfs/LICENSE
x go-ipfs/README.md
liyuechun:Downloads yuechunli$ ls
go-ipfs                 go-ipfs_v0.4.10_darwin-amd64.tar.gz
liyuechun:Downloads yuechunli$ cd go-ipfs
liyuechun:go-ipfs yuechunli$ ls
LICENSE     README.md   build-log   install.sh  ipfs
liyuechun:go-ipfs yuechunli$ mv ipfs /usr/local/bin/ipfs

tar xvfz go-ipfs_v0.4.10_darwin-amd64.tar.gz文件解壓。

mv ipfs /usr/local/bin/ipfs,將已解壓的文件夾中的ipfs文件移動到/usr/local/bin/文件夾中。

3. 項目配置

3.1 創建ipfs節點

爲了運行項目,我們需要通過ipfs init在本地計算機建立一個IPFS節點。

localhost:.ipfs yuechunli$ cd ~/.ipfs
-bash: cd: /Users/liyuechun/.ipfs: No such file or directory
localhost:.ipfs yuechunli$ ipfs init
initializing IPFS node at /Users/liyuechun/.ipfs
generating 2048-bit RSA keypair...done
peer identity: QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP
to get started, enter:

    ipfs cat /ipfs/QmVLDAhCY3X9P2uRudKAryuQFPM5zqA3Yij1dY8FpGbL7T/readme

localhost:.ipfs yuechunli$ cd ~/.ipfs
localhost:.ipfs yuechunli$ ls
blocks      datastore   version
config      keystore
localhost:.ipfs yuechunli$ open ./
localhost:.ipfs yuechunli$ 

ipfs blockchain

3.2 修改節點默認存儲空間

執行完ipfs init命令後,會在根目錄生成一個.ipfs的文件夾存儲節點數據。.ipfs節點默認存儲空間爲10個G

如果你自己想修改節點默認存儲空間,可打開終端執行下面的命令。

localhost:.ipfs yuechunli$ export EDITOR=/usr/bin/vim
localhost:.ipfs yuechunli$ ipfs config edit

執行完ipfs config edit命令後會打開一個文件,在這個文件中找到下圖中春哥「微信:liyc1215」繪製紅線的位置,將10GB修改成你自己想要的存儲空間。修改完畢,保存退出。(PS:輸入i可以開始編輯,編譯完畢後按esc鍵,再輸入:,再次輸入wq保存並且退出)。

修改ipfs默認存儲空間大小

3.3 查看節點id

localhost:.ipfs yuechunli$ ipfs id 
{
    "ID": "QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP",
    "PublicKey": "CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDqJlLivZerwIYTI5K8pEzbRnmNti3rObvpa17AixKpgTPnWAvPmZr1SLBzYUjpy3coymLHkNldcEZixnWTIihKIF1pVhxJG2MzFg8vHnG7uF8vxyYE4wOZ6V4rTauYbGau1Tj/TSjzI9oKOoezitTn6ggD3p2Y6Y1/FWGRfAvG7UUBFXSMtwVkwM/F0aaP2k8vHgsZDeYLY8UCpq67dC+AgbVNieLrX/tht6D7iTYS5Ch5dMIpwxMdRLkrNx8k9CVFgvnILhdTJL4QfdNA4L5FnWJy3axhj6bRdVkBpcdgn2WAHxYW6FwkB/eFSKxwNCKsO2/C52mUNNMouN2XlObTAgMBAAE=",
    "Addresses": null,
    "AgentVersion": "go-ipfs/0.4.10/",
    "ProtocolVersion": "ipfs/0.1.0"
}
localhost:.ipfs yuechunli$ 

QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP爲你的節點ID每個節點都會有一個唯一的ID

3.4 啓動節點服務器

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.241.208/tcp/7723
Swarm listening on /ip4/127.0.0.1/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

3.5 跨域資源共享CORS配置

爲了後續的開發方便,我們還需要對跨域資源共享( CORS )進行配置,ctrl- c退出ipfs,然後按照下面的步驟進行跨域配置。

  • ctrl- c退出ipfs
  • ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST", "OPTIONS"]'
  • ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'

3.6 驗證

  • 啓動服務器
$ ipfs daemon
  • 新建終端執行下面的命令
ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme
localhost:~ yuechunli$ ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme
Hello and Welcome to IPFS!

██╗██████╗ ███████╗███████╗
██║██╔══██╗██╔════╝██╔════╝
██║██████╔╝█████╗  ███████╗
██║██╔═══╝ ██╔══╝  ╚════██║
██║██║     ██║     ███████║
╚═╝╚═╝     ╚═╝     ╚══════╝

If you're seeing this, you have successfully installed
IPFS and are now interfacing with the ipfs merkledag!

 -------------------------------------------------------
| Warning:                                              |
|   This is alpha software. Use at your own discretion! |
|   Much is missing or lacking polish. There are bugs.  |
|   Not yet secure. Read the security notes for more.   |
 -------------------------------------------------------

Check out some of the other files in this directory:

  ./about
  ./help
  ./quick-start     <-- usage examples
  ./readme          <-- this file
  ./security-notes
localhost:~ yuechunli$ 
  • 瀏覽器輸入下面的網址

打開http://localhost:5001/webui會看到一個漂亮的UI界面。

4. 下篇預告

本篇文章爲IPFS + Blockchain第一篇文章。

下一篇內容:

  • 如何在IPFS新增一個文件
  • 新增一個目錄
  • 如何在IPSF部署博客
  • 如何訪問博客
  • 如何申請IPNS
  • 如何將IPNS對博客hash進行解析
  • 如何新增給博客新增文章

5. 技術交流

  • 區塊鏈技術交流QQ羣:348924182
  • 進微信羣請加微信:liyc1215
  • 「區塊鏈部落」官方公衆號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章