学习IPFS
?
注:以下所有操作均在CentOS 6.8 x86_64位系統(tǒng)下完成。
?
IPFS(InterPlanetary File System)是一個點(diǎn)對點(diǎn)的分布式超媒體分發(fā)協(xié)議,被認(rèn)為是最有可能取代HTTP的新一代互聯(lián)網(wǎng)協(xié)議,關(guān)于IPFS的更多介紹可參考:IPFS官網(wǎng)。
#準(zhǔn)備工作#
在下載IPFS之前可能需要“***”,詳見:Centos安裝***+安裝Privoxy+配置SSH使用代理。
#安裝IPFS#
這里我們直接下載其官方編譯好的版本(Prebuilt Package)。
# wget https://dist.ipfs.io/go-ipfs/v0.4.14/go-ipfs_v0.4.14_linux-amd64.tar.gz # tar zxf go-ipfs_v0.4.14_linux-amd64.tar.gz # mv go-ipfs /usr/local/配置環(huán)境:
# vim /etc/profile ... export IPFS_HOME=/usr/local/go-ipfs export PATH=$PATH:IPFS_HOME ... # source /etc/profile # ipfs version ipfs version 0.4.14可以看到IPFS已經(jīng)安裝成功。
#使用IPFS#
一、創(chuàng)建IPFS節(jié)點(diǎn)
# ipfs init initializing IPFS node at /root/.ipfs generating 2048-bit RSA keypair...done peer identity: QmTW4AoQABDBxQwa4fn5yEqhAKXx2fyFXkksy6LQuDQWK1 to get started, enter:ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme這個時候默認(rèn)會在~/目錄下創(chuàng)建一個.ipfs的目錄,里面包含了配置文件信息等。可以自由進(jìn)行修改(比如可以把默認(rèn)的10GB存儲空間改小點(diǎn)):
# vim /root/.ipfs/config ..."Datastore": {"StorageMax": "10GB",...},"Addresses": {"Swarm": ["/ip4/0.0.0.0/tcp/4001","/ip6/::/tcp/4001"], ...} ...也可以自己選擇指定的IPFS目錄:
# mkdir -p /data/ipfs # vim /etc/profile ... export IPFS_PATH=/data/ipfs ... # source /etc/profile # ipfs init generating 2048-bit RSA keypair...done peer identity: QmQa7NH5w7pxz34Sme96GUM8dH14upF3H67PDCX8nKXp4T to get started, enter:ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme這里將IPFS目錄改為/data/ipfs。
二、查看節(jié)點(diǎn)ID
# ipfs id {"ID": "QmQa7NH5w7pxz34Sme96GUM8dH14upF3H67PDCX8nKXp4T","PublicKey": "CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDdpn...","Addresses": null,"AgentVersion": "go-ipfs/0.4.14/","ProtocolVersion": "ipfs/0.1.0" }這里可以看到QmQa7NH5w7pxz34Sme96GUM8dH14upF3H67PDCX8nKXp4T就是當(dāng)前節(jié)點(diǎn)的ID值,每個節(jié)點(diǎn)都有一個唯一的ID值。
三、跨域資源共享
# ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST", "OPTIONS"]' # ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'四、啟動服務(wù)器
當(dāng)前IPFS節(jié)點(diǎn)雖然創(chuàng)建成功,但還沒有啟動加入到IPFS網(wǎng)絡(luò),外面無法訪問,需要啟動服務(wù)器:
# ipfs daemon & Initializing daemon... Swarm listening on /ip4/127.0.0.1/tcp/4001 Swarm listening on /ip4/172.18.167.60/tcp/4001 Swarm listening on /p2p-circuit/ipfs/QmQa7NH5w7pxz34Sme96GUM8dH14upF3H67PDCX8nKXp4T Swarm announcing /ip4/127.0.0.1/tcp/4001 Swarm announcing /ip4/172.18.167.60/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ò)中:
# pwd /root # vim foo.txt ... # cat foo.txt Hello World# ipfs add foo.txt added QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u foo.txt # ipfs cat QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u Hello World這個時候我們已經(jīng)將一個文件foo.txt添加到當(dāng)前的IPFS節(jié)點(diǎn)中,并且可以通過生成的唯一哈希值QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u來查看該文件內(nèi)容,接下來我們需要將其同步到IPFS網(wǎng)絡(luò)中:
# ipfs daemon & Initializing daemon... ... Daemon is ready我們試著在本地瀏覽器打開地址(https://ipfs.io/ipfs/QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u)查看文件:
可以看到文件已經(jīng)成功地同步到了IPFS網(wǎng)絡(luò)中。
六、新增文件夾
接下來我們可以在IPFS的根目錄下創(chuàng)建文件夾,并且可以將foo.txt文件cp或mv到新創(chuàng)建的文件夾中。
# ipfs files mkdir /foo # ipfs files cp /ipfs/QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u /foo/foo.txt # ipfs files ls / foo # ipfs files ls /foo foo.txt # ipfs files read /foo/foo.txt Hello World可以看到我們已經(jīng)成功地將該文件cp到了一個foo的新建目錄下,接下來我們嘗試在本地創(chuàng)建一個目錄并將其上傳到IPFS網(wǎng)絡(luò)中:
# mkdir bar # vim bar/bar.txt # cat bar/bar.txt Hello World 2 # ipfs add -r bar/ added QmShGj2c1Qe2wQKMUNMx45EPoKsJmwewojrE1ETzXggUFG bar/bar.txt added QmepZ8kfqvfDgLtaA7jiCZowXsgn63bKxJLS5NPNiqU2A9 bar我們試著在本地瀏覽器打開地址(https://ipfs.io/ipfs/QmepZ8kfqvfDgLtaA7jiCZowXsgn63bKxJLS5NPNiqU2A9)查看文件夾:
?
轉(zhuǎn)載于:https://www.cnblogs.com/brishenzhou/p/8866941.html
總結(jié)
 
                            
                        - 上一篇: WPF学习—模板
- 下一篇: NumPy 基础用法
