[TOC]
安裝
參考:
- IPFS Alpha Demo
- go-ipfs#build-from-source
- 安裝Go IPFS
如果沒有Go環境,首先需要安裝Go環境:
brew install go
配置Go環境變數:
執行sudo vi /etc/profile
加入
#go configexport PATH=$PATH:/usr/local/go/binexport PATH=$PATH:$GOPATH/bin
執行wq!
強制儲存退出。
下載並編譯IPFS
go get -u -d github.com/ipfs/go-ipfscd $GOPATH/src/github.com/ipfs/go-ipfsmake install
出現error
:
ERROR: from shell.Get(): Post https://ipfs.io/api/v0/get?arg=QmaPbCnUMBohSGo3KnxEa2bHqyJVVeEEcwtqJAYxerieBo&encoding=json&stream-channels=true: dial tcp 173.252.102.16:443: getsockopt: operation timed out
install from source #4851
️:如果gx (用於依賴關係管理)或其任何依賴關係崩潰,go get
則此進程可能會中斷,因為將始終選擇每個依賴關係的最新代碼,通常會導致API不匹配。
先行編譯安裝包安裝IPFS
上述這個問題暫時還沒解決,gx
依賴以及中國網關的問題。那麼通過安裝包的方式來安裝運行IPFS:
- 下載go-ipfs,Mac OS X 請下載
Darwin amd64
,Ubuntu 請下載Linux amd64
。
- 使用
tar xvfz go-ipfs_v0.4.14_darwin-amd64.tar.gz
解壓安裝包。
- 運行項目,通過
ipfs init
在本機電腦建立一個IPFS節點。
測試一下,使用ipfs id
查看節點id。
{"ID": "QmZXXApnUUTD75bph88eNii3Sc97fiumTX7AMBv5CKHGdf","PublicKey": "CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCmeja+Xls57HMzJdpyk2uutamqNf0zwKUIde6AmK/qtneFSszEr7fwPZ6lE2KUxlaIdDelBpYLWKgwnJA89vWVDcFElXbgmLEwjlWeAnjR3EWLSQcmVGifB7jKrSG0VNeZdRv4Pj/i75zSdxAujZ0EwY6TpN6ZNaXX3BI/8owLlZAVq2wAKjFhjOtSfdGd5Tm61tN4q0EfPPHnU/kC9kr+HQkJm9h71pIL2Uu6LhoRQNpx/ZTnTXm6L0pxzEQSzal7lYsBQGiBKzzaL7PhZtZ6kY6atALRiiFj7ID8rbE03LrOQw4xoFjo3UBardTy1gQVflyqsysCi1DIStzn8qKNAgMBAAE=","Addresses": null,"AgentVersion": "go-ipfs/0.4.14/","ProtocolVersion": "ipfs/0.1.0"}
- 使用
ipfs daemon
啟動節點伺服器
- 建立終端執行命令
ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme
。
- 瀏覽器輸入網址http://localhost:5001/webui出現一個漂亮的
UI
介面。
更新
IPFS有一個可以通過訪問的更新工具ipfs update
。該工具並不與IPFS一起安裝,以保持獨立於主程式碼程式庫的邏輯。要安裝ipfs update
,請在此處下載。
使用IPFS下載IPFS構建
列出go-ipfs
的可用版本:
ipfs cat /ipns/dist.ipfs.io/go-ipfs/versions
然後,查看以前命令($ VERSION)中版本的可用版本:
ipfs ls /ipns/dist.ipfs.io/go-ipfs/$VERSION
下載一個版本的給定版本:
ipfs get /ipns/dist.ipfs.io/go-ipfs/$VERSION/go-ipfs_$VERSION_darwin-386.tar.gz # darwin 32-bit buildipfs get /ipns/dist.ipfs.io/go-ipfs/$VERSION/go-ipfs_$VERSION_darwin-amd64.tar.gz # darwin 64-bit buildipfs get /ipns/dist.ipfs.io/go-ipfs/$VERSION/go-ipfs_$VERSION_freebsd-amd64.tar.gz # freebsd 64-bit buildipfs get /ipns/dist.ipfs.io/go-ipfs/$VERSION/go-ipfs_$VERSION_linux-386.tar.gz # linux 32-bit buildipfs get /ipns/dist.ipfs.io/go-ipfs/$VERSION/go-ipfs_$VERSION_linux-amd64.tar.gz # linux 64-bit buildipfs get /ipns/dist.ipfs.io/go-ipfs/$VERSION/go-ipfs_$VERSION_linux-arm.tar.gz # linux arm buildipfs get /ipns/dist.ipfs.io/go-ipfs/$VERSION/go-ipfs_$VERSION_windows-amd64.zip # windows 64-bit build
用法
ipfs - Global p2p merkle-dag filesystem. ipfs [<flags>] <command> [<arg>] ...SUBCOMMANDS BASIC COMMANDS init Initialize ipfs local configuration # 初始化ipfs本地配置 add <path> Add a file to ipfs # 向ipfs添加檔案 cat <ref> Show ipfs object data # 顯示ipfs object資料 get <ref> Download ipfs objects # 下載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 # 與原始dag節點互動 files Interact with objects as if they were a unix filesystem # 與objects互動,就好像它們是unix檔案系統一樣 ADVANCED COMMANDS daemon Start a long-running daemon process # 啟動一個長時間啟動並執行守護進程 mount Mount an ipfs read-only mountpoint # 安裝一個ipfs唯讀掛載點 resolve Resolve any type of name # 解析任何類型的名稱 name Publish or resolve IPNS names # 發布或解析IPNS名稱 dns Resolve DNS links # 解析DNS連結 pin Pin objects to local storage # 將object定位到本機存放區 repo Manipulate an IPFS repository # 操作一個ipfs倉庫 NETWORK COMMANDS id Show info about ipfs peers # 顯示ipfs 節點的資訊 bootstrap Add or remove bootstrap peers # 添加或刪除bootstrap節點 swarm Manage connections to the p2p network # 管理與p2p網路的串連 dht Query the DHT for values or peers # 為values或者節點查詢DHT ping Measure the latency of a connection # 測量串連的延遲 diag Print diagnostics # 列印診斷資訊 TOOL COMMANDS config Manage configuration # 管理配置 version Show ipfs version information # 顯示ipfs版本資訊 update Download and apply go-ipfs updates # 下載並應用go-ipfs更新 commands List all available commands # 所有可用的命令列表 Use 'ipfs <command> --help' to learn more about each command. ipfs uses a repository in the local file system. By default, the repo is located at ~/.ipfs. To change the repo location, set the $IPFS_PATH environment variable: export IPFS_PATH=/path/to/ipfsrepo
另見:ipfs getting-started
要開始使用IPFS,您必須首先在您的系統上初始化IPFS的設定檔,這是通過ipfs init
。查看ipfs init --help
它所需的選擇性參數的資訊。初始化完成後,就可以使用ipfs mount
,ipfs add
或其他任何命令來探索!
本地'ipfs working'基本使用:
echo "hello world" > helloipfs add hello# This should output a hash string that looks something like:# QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5oipfs cat <that hash>
使用Docker
IPFS的docker鏡像位於hub.docker.com/r/ipfs/go-ipfs。要在容器內部顯示檔案,您需要使用-v docker
選項安裝主機目錄。選擇一個您想用來從IPFS匯入/匯出檔案的目錄。您還應該選擇一個目錄來儲存IPFS檔案,這些檔案在重新啟動容器時將保留。
export ipfs_staging=</absolute/path/to/somewhere/>export ipfs_data=</absolute/path/to/somewhere_else/>
啟動運行ipfs的容器並公開連接埠4001
,5001
和8080
:
docker run -d --name ipfs_host -v $ipfs_staging:/export -v $ipfs_data:/data/ipfs -p 4001:4001 -p 127.0.0.1:8080:8080 -p 127.0.0.1:5001:5001 ipfs/go-ipfs:latest
觀看ipfs日誌:
docker logs -f ipfs_host
等待ipfs啟動。看到以下內容時,ipfs正在運行:
Gateway (readonly) serverlistening on /ip4/0.0.0.0/tcp/8080
現在可以停止觀看日誌。
運行ipfs命令:
docker exec ipfs_host ipfs <args...>
例如:串連到節點
docker exec ipfs_host ipfs swarm peers
添加檔案:
cp -r <something> $ipfs_stagingdocker exec ipfs_host ipfs add -r /export/<something>
停止正在啟動並執行容器:
docker stop ipfs_host
️:如果您之前已經安裝過IPFS,並且遇到了使新版本工作的問題,請嘗試刪除(或備份其他位置)IPFS配置目錄(預設為〜/ .ipfs)並重新運行ipfs init
。這會將設定檔重新初始化為其預設值,並清除任何錯誤條目的本機資料儲存區。
擴充連結
- IPFS 入門筆記
- IPFS 筆記和教學
- 如何使用星際檔案傳輸網路(IPFS)搭建區塊鏈服務