快速搭建私有云服務 go-btfs
快速搭建私有云服務 go-btfs
1. go-btfs 是什麼?
go-btfs go-btfs 是一個去中心化的檔案儲存平臺,無論圖片、檔案、視訊等等各類檔案。 每個人都可以在自己電腦上安裝部署 BTFS 節點,然後大家的節點相互連線,構成一個整體網路, 網路中某一個節點上傳檔案,其他節點就像訪問本地一樣直接下載使用。同時,它還支援冗餘備份,使用 reed-solomn 方案,這塊更加牛逼。
2. 怎麼使用
2.1 下載 github.com/tron-us/go-btfs
,並編譯
由於依賴第三方庫較多,需要 download 一下 然後進入指定目錄,進行編譯
$ git clone git@github.com:TRON-US/go-btfs.git
$ cd go-btfs
$ git checkout release
$ go mod download
$ cd cmd/btfs
$ go build
此處生成 btfs 可執行檔案,可以匯入到 /usr/local/bin 下面處理。
2.2 啟動本地 BTFS 節點
# 設定BTFS節點儲存地址空間,換一個就可以起一個新節點
$export BTFS_PATH=/Users/laocheng.cheng/.btfs.ll
$ btfs init
Generating TRON key with BIP39 seed phrase...
Master public key: xpub661MyMwAqRbcFYYeCS183yzjqyHjDAYMAdJ6oQPZNqwu3CyH6SgQ5FgvYYNWQA2v8gZWkZJ25Lr4gKuGHf21izyQ5s7aKjMuHGPRJ7AeGpq
initializing BTFS node at /Users/laocheng.cheng/.btfs.lll
generating btfs node keypair with TRON key...done
peer identity: 16Uiu2HAmCQadnAGfADbwi9DmdjZcHPzFNR3r72hfnMPrCEQKjN2k
to get started, enter:
btfs cat /btfs/QmZjrLVdUpqVU6Pnc8pBnyQxVdpn9J8tfcsycP84W6N93C/readme
$ btfs daemon
Initializing daemon...
go-btfs version: 1.5.3-17053fc
Repo version: 10
System version: amd64/darwin
Golang version: go1.15.15
Repo location: /Users/laocheng.cheng/.btfs.lll
Peer identity: 16Uiu2HAmCQadnAGfADbwi9DmdjZcHPzFNR3r72hfnMPrCEQKjN2k
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip4/192.168.106.19/tcp/4001
Swarm listening on /ip4/2.0.1.44/tcp/4001
Swarm listening on /ip6/::1/tcp/4001
Swarm listening on /p2p-circuit
Swarm announcing /ip4/127.0.0.1/tcp/4001
Swarm announcing /ip4/192.168.106.19/tcp/4001
Swarm announcing /ip4/2.0.1.44/tcp/4001
Swarm announcing /ip4/203.12.203.2/tcp/4001
Swarm announcing /ip4/219.143.35.171/tcp/4001
Swarm announcing /ip6/::1/tcp/4001
API server listening on /ip4/127.0.0.1/tcp/5001
WebUI: http://127.0.0.1:5001/webui
HostUI: http://127.0.0.1:5001/hostui
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Remote API server listening on /ip4/127.0.0.1/tcp/5101
Daemon is ready
# 配置為host儲存模式
$ btfs config profile apply storage-host
當btfs daemon
啟動後,
/Users/laocheng.cheng/.btfs.lll
這個是我們的地址空間,
16Uiu2HAmCQadnAGfADbwi9DmdjZcHPzFNR3r72hfnMPrCEQKjN2k
這個是節點 ID,其他節點就是通過節點 ID 和其溝通。
2.3 再次啟動一個新節點
新起一個終端,過程同上
# 設定BTFS節點儲存地址空間
$export BTFS_PATH=/Users/laocheng.cheng/.btfs.ggg
$ btfs init
......
$ btfs daemon
# 配置為host儲存模式
$ btfs config profile apply storage-host
......
2.4 組建本地私有網路
特別注意的問題,現在啟動的節點,是和 BTFS 真實網路連線,我們需要一些修改,變成本地網路方式。 此時,選中一個終端,即一個節點;先 bootstrap 設空,然後把自己建立的節點,全部加入(當然,不用加該終端節點)。
btfs config --json Bootstrap "[]"
btfs bootstrap add /ip4/127.0.0.1/tcp/54001/p2p/16Uiu2HAmCQadnAGfADbwi9DmdjZcHPzFNR3r72hfnMPrCEQKjN2k
btfs bootstrap add /ip4/127.0.0.1/tcp/54001/p2p/16Uiu2HAm3GdbCk6Uwst2t3zoYTrgHbifjqJTpLbHHUUPBcBT8oqC
btfs bootstrap add /ip4/127.0.0.1/tcp/54001/p2p/16Uiu2HAmCQadnAGfADbwi9DmdjZcHPzFNR3r72hfnMPrCEQKjN2k
此時,我們自己的節點,構成了一個私有云儲存網路。
2.5 上傳檔案 及 任意節點可檢視
開啟一個節點(終端),上傳檔案如下
$ btfs add s
added Qmefmseqwa8un9WXEfqb2GY2ncWmmB2BsAqtcjVJaHahL3 s
31 B / 31 B [================================================================] 100.00%
開啟另外一個節點(終端),下載檔案到本地
$ btfs get QmduujE1EgUajwCj2bxjdp4LWz62aameQJmQc7pcBbeAmC
Saving file(s) to QmduujE1EgUajwCj2bxjdp4LWz62aameQJmQc7pcBbeAmC
27 B / 27 B [================================================================] 100.00% 0s
如此一來,私有云的上傳下載就搞定了。
3.具體應用
上面我們就私有云的搭建,及上傳、下載操作搞定了。 那麼對應的應用方案就容易理解,比如你開發一個儲存網站。後端資料用我們們的私有云,上傳一個 key(檔名),對應一個 value(檔案 hash)。 然後我們把 key:value 記錄到 mysql or redis。一個儲存類網站的基礎功能就完成啦。
總結
go-btfs go-btfs 是一個去中心化的檔案儲存平臺,各種型別檔案都能上傳,並且安裝方便,經過基本配置,就可以快速搭建自己的私有云服務。 非常推薦大家使用,尤其企業內部雲平臺搭建使用。
以上所有內容均採用最新官方案例做示例
參考資料
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- 搭建私有云:OwnCloudCloud
- 使用 seafile搭建私有云盤
- 使用 baget 搭建 nuget 私有服務
- 使用Leanote搭建私有云筆記筆記
- 如何搭建自己的私有云盤
- 搭建私有的前端監控服務: sentry前端
- 快速搭建本地HTTP/2服務HTTP
- npm私有庫服務搭建及規範定製NPM
- 乾貨 | 4步帶你完成私有云盤搭建
- 建立私有云(Seafile)
- 神器:新手快速搭建MySQL服務MySql
- 使用OSS搭建私有云內網yum倉庫的方法內網
- 公有云高手UCloud如何玩轉私有云?Cloud
- 手把手教你使用樹莓派打造一站式監測服務+私有云服務+家庭影音服務(小白向教程)樹莓派
- 私有云能降低成本嗎?私有云有哪些優勢呢?
- 【雲端計算】什麼是私有云?可提供哪些服務?缺點是什麼?
- 私有云究竟有什麼優勢?為什麼要了解私有云呢?
- json-server 快速搭建介面服務 使用教程JSONServer
- 通過express快速搭建一個node服務Express
- 如何快速搭建Linux系統中Samba服務LinuxSamba
- 極光筆記丨搭建UMS私有云檔案伺服器筆記伺服器
- 視訊私有云實戰:基於Docker構建點播私有云平臺Docker
- 雲端計算、公有云、私有云、混合雲等
- 公有云服務對比IDC服務,有哪些優勢?
- 三十分鐘快速搭建serverless網盤服務Server
- 私有云化證件識別
- 混合雲、公有云、私有云具體是指什麼?
- 基於Docker快速搭建Gitlab與Gitlab CI/CD服務DockerGitlab
- 使用json-Server快速模擬服務環境搭建JSONServer
- 公有云專線直連服務-ElinkcloudCloud
- 基於VMWare構建私有云2019
- 虛擬私有云(Virtual Private Cloud,VPC)Cloud
- 使用Docker Swarm快速搭建與部署你的服務叢集DockerSwarm
- 使用 Nuxt.js 快速搭建服務端渲染(SSR) 應用UXJS服務端
- 華為關閉私有云?從華為內部的公有云私有云紛爭,到雲端計算市場的分水嶺
- NFS服務搭建NFS
- WebSocket服務搭建Web
- FTP服務搭建FTP