ipfs(InterPlanetary File System,星際文件系統),本文介紹節點軟件ipfs環境搭建和使用方法,學習ipfs-api在nodejs代碼中訪問ipfs網絡。node
到官網下載windows版的ipfs節點軟件:32位,64位 若是你不能訪問官網,可使用百度雲盤鏡像:32位,64位git
下載後解壓到指定目錄,例如d:\go-ipfs,開一個控制檯窗口,測試:windows
D:\go-ipfs > ipfs version Ipfs version 0.4.14
能夠將該目錄加入環境變量PATH, 或者將d:\go-ipfs\ipfs.exe拷貝到windows系統目錄,以便在任何目錄中能夠啓動ipfs.exe。api
和git相似,ipfs節點也須要先初始化一個本地倉庫。執行init子命令來初始化本地倉庫:網絡
D:\go-ipfs> ipfs init Initializing IPFS node at C:\Users\hubwiz\.ipfs generating 2048-bit RSA keypair...done peer identity: QmQaTgU1TLNHPBEvLGgWK1G9FgVByyUZNVhDs789uWPtku to get started, enter: ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
默認狀況下,ipfs將在當前用戶主目錄(例如:對於hubwiz用戶,其主目錄就是C:\Users\hubwiz)下創建.ipfs子目錄,做爲本地倉庫的根目錄。ide
若是你的C盤空間不夠大,或者你就是但願使用其餘目錄做爲本地倉庫根目錄,能夠設置IPFS_PATH環境變量,使其指向目標路徑,例如D:\my_ipfs_root 學習
若是你指望從新初始化節點,會提醒你不能這麼作,不然會改寫你的密鑰:區塊鏈
D:\go-ipfs> ipfs init Initializing IPFS node at C:\Users\hubwiz\.ipfs Error: ipfs configuration file already exists! Reinitializing would overwrite your keys.
這擋不住咱們。若是你必須從新初始化的話,先刪除原來的倉庫根目錄便可:測試
D:\go-ipfs> del C:\users\hubwiz\.ipfs
使用add子命令將指定的文件添加到本地倉庫,例如將當前目錄的README.md文件添加到本地倉庫:編碼
D:\go-ipfs> ipfs add README.md 465 B / ? [-------------------------------------------------------=--] added QmXBpD37vBm5537pqHwyJRGSaX7hMrkHyp866wqEVU2BE8 README.md
ipfs會根據文件的內容生成一個哈希值,例如:
QmXBpD37vBm5537pqHwyJRGSaX7hMrkHyp866wqEVU2BE8
你須要記錄下這個編碼,由於須要使用它來訪問本地倉庫(或ipfs網絡)中的文件。 注意:ipfs並不會無節制地將你本地倉庫中的文件分佈到其餘ipfs節點中,若是沒有其餘的ipfs節點搜索你的文件(的哈希值),那麼你本地倉庫中的文件將始終只存在於本地。
Ipfs網絡中只能經過內容的哈希值來訪問文件,例如對於上面的README.md文件,咱們使用cat子命令經過其哈希值來查看其內容:
D:\go-ipfs> ipfs cat QmXBpD37vBm5537pqHwyJRGSaX7hMrkHyp866wqEVU2BE8
控制檯將輸出內容:
\# ipfs commandline tool This is the [ipfs](http://ipfs.io) commandline tool. It contains a full ipfs node. ......
執行daemon子命令將節點接入ipfs網絡:
D:\go-ipfs> ipfs daemon Initializing daemon... ...... Daemon is ready
只有當啓動監聽後,節點纔可以接受ipfs網絡中的內容檢索請求,參與內容的交換與分佈。
能夠按Ctrl+C退出監聽狀態。
?
推薦兩個以太坊相關的實戰教程:
1.區塊鏈初學者 :以太坊 DApp 實戰開發入門
2.區塊鏈開發進階:去中心化以太坊 DApp 電商平臺實戰開發
更多的內容能夠訪問博客: