操作視頻
本系列的內(nèi)容是參照Hyperledger Fabric 官方文檔,實(shí)際學(xué)習(xí)、操作后,編寫而成的。
我們最終目的是要搭建一個(gè)可以模擬真實(shí)網(wǎng)絡(luò)環(huán)境下的分布式環(huán)境,就需要模擬獨(dú)立的主機(jī)和IP。
一個(gè)較完備的分布式 HyperledgerFabirc 網(wǎng)絡(luò)需要如下節(jié)點(diǎn):
如果條件允許,可以直接用物理機(jī)來搭建。
如果僅做chaincode開發(fā),只部署dev節(jié)點(diǎn)即可。根據(jù)自己的情況來選擇。
文中的環(huán)境是用虛擬機(jī)以橋接的方式來模擬足夠數(shù)量的linux主機(jī),然后在此基礎(chǔ)上部署Hyperledger Fabric。操作環(huán)境 Windows10, 此文中用到的工具是跨平臺的,所以步驟基本適用于 Linux 和 Mac。
git, https://git-scm.com/一方面,可以做本地的代碼管理。另一方面,windows版的git安裝后提供類Linux的Bash命令行工具,如下圖:
對于習(xí)慣Linux命令操作的人來說比較親和。 也可以選擇使用windows自帶的 PowerShell 操作習(xí)慣接近于bash,個(gè)人喜好自由選擇。
VisualStudioCode, https://code.visualstudio.com/ 用做文本和代碼編輯
https://www.virtualbox.org/wiki/Downloads
需要下載 VirtualBox 安裝程序和 VirtualBox Extension Pack 包。
設(shè)置虛擬機(jī)創(chuàng)建后的存儲位置,確保磁盤空間足夠大
安裝擴(kuò)展,第一次安裝完VirtualBox后需要重啟主機(jī)才能安裝擴(kuò)展包。
https://www.vagrantup.com/downloads.html
下載對應(yīng)平臺的安裝程序,我們下載 Windows 64-bit 版本
安裝完成后便可以在命令行中直接使用 vagrant
創(chuàng)建original 文件夾,用于導(dǎo)入官方 CentOS8
mkdir original cd ./original vagrant init
vagrant init 用于生成 Vagrantfile 配置文件
https://app.vagrantup.com/centos/boxes/8
參照官方文檔導(dǎo)入 CentOS8的vagrant box,修改Vagrantfile 加入如下內(nèi)容
Vagrant.configure("2") do |config| config.vm.box="centos/8" config.vm.box_version="1905.1" end
在目錄下運(yùn)行 vagrant up 即可啟動(dòng)虛擬機(jī),
從上圖中的文字信息 "Box 'centos/8' could not be found. Attempting to find and install..."可以推測出, Vagrant先從本地找box鏡像,如果本地找不到則會從官方的鏡像倉庫中查找并下載。由于下載速度太慢,我們手動(dòng)導(dǎo)入box。
首先 直接從 http://cloud.centos.org/centos/8/vagrant/x86_64/images/ 下載對應(yīng)virtualbox的 box 鏡像。
$ vagrant box add centos/8 /d/work/virtualbox/CentOS-8-Vagrant-8.0.1905-1.x86_64.vagrant-virtualbox.box==> box: Box file was not detected as metadata. Adding it directly...==> box: Adding box 'centos/8' (v0) for provider: box: Unpacking necessary files from: file:///D:/work/virtualbox/CentOS-8-Vagrant-8.0.1905-1.x86_64.vagrant-virtualbox.box box:==> box: Successfully added box 'centos/8' (v0) for 'virtualbox'!
添加名為 centos/8 的box,box路徑為 /d/work/virtualbox/CentOS-8-Vagrant-8.0.1905-1.x86_64.vagrant-virtualbox.box
$ vagrant box list centos/8 (virtualbox, 0) original (virtualbox, 0) originalPeer (virtualbox, 0) workbench (virtualbox, 0)
名為 centos/8 已在本地添加成功
啟動(dòng)vagrant
$ vagrant up Bringing machine 'default' up with 'virtualbox' provider...==> default: Importing base box 'centos/8'...==> default: Matching MAC address for NAT networking...==> default: Setting the name of the VM: original_default_1575959324704_23159==> default: Clearing any previously set network interfaces...==> default: Preparing network interfaces based on configuration... default: Adapter 1: nat==> default: Forwarding ports... default: 22 (guest)=> 2222 (host) (adapter 1)==> default: Booting VM...==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2222 default: SSH username: vagrant default: SSH auth method: private key default: default: Vagrant insecure key detected. Vagrant will automatically replace default: this with a newly generated keypair for better security. default: default: Inserting generated public key within guest... default: Removing insecure key from the guest if it's present... default: Key inserted! Disconnecting and reconnecting using new SSH key...==> default: Machine booted and ready! [default] No Virtualbox Guest Additions installation found. . . . Copy iso file D:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso Mounting Virtualbox Guest Additions ISO to: /mnt mount: /mnt: WARNING: device write-protected, mounted read-only. Installing Virtualbox Guest Additions 6.0.14 - guest version is unknown Verifying archive integrity... All good. Uncompressing VirtualBox 6.0.14 Guest Additions for Linux........ VirtualBox Guest Additions installer Copying additional installer modules ... Installing additional modules ... VirtualBox Guest Additions: Starting. VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel modules. This may take a while. VirtualBox Guest Additions: To build modules for other installed kernels, run VirtualBox Guest Additions: /sbin/rcvboxadd quicksetup <version> VirtualBox Guest Additions: or VirtualBox Guest Additions: /sbin/rcvboxadd quicksetup all VirtualBox Guest Additions: Building the modules for kernel 4.18.0-80.el8.x86_64. Redirecting to /bin/systemctl start vboxadd.service Redirecting to /bin/systemctl start vboxadd-service.service Unmounting Virtualbox Guest Additions ISO from: /mnt vagrant_vbguest.machine_loop_guard==> default: Checking for guest additions in VM...==> default: Rsyncing folder: /cygdrive/d/work/SetupFabricDevEnv/vagrant/original/=> /vagrant
安裝vagrant-vbguest插件,自動(dòng)安裝 VBoxGuestAdditions.iso 實(shí)現(xiàn)宿主機(jī)與虛擬機(jī)文件同步
$ vagrant plugin install vagrant-vbguest Installing the 'vagrant-vbguest' plugin. This can take a few minutes... Installed the plugin 'vagrant-vbguest (0.22.0)'!
啟動(dòng)虛擬機(jī)
vagrant up
vagrant 常用命令
vagrant up vagrant halt vagrant reload vagrant suspend vagrant resume vagrant status vagrant destroy vagrant global-status vagrant box add vagrant box list vagrant package
后續(xù)介紹如何在虛擬環(huán)境中安裝Hyperledger Fabric的運(yùn)行環(huán)境
在程序開發(fā)過程linux環(huán)境對于程序員時(shí)必不可少的,想要在不同的操作系統(tǒng)下搭建統(tǒng)一的一套Linux系統(tǒng)環(huán)境,我們可以借助VirtualBox來安裝其他系統(tǒng)環(huán)境,只需導(dǎo)入相應(yīng)的系統(tǒng)鏡像即可搭建一套系統(tǒng)環(huán)境。下面是在Mac環(huán)境使用vbox安裝centos7系統(tǒng):
選擇VirtualBox -> 偏好設(shè)置 -> 擴(kuò)展
選中左上角Mac圖標(biāo)進(jìn)入偏好設(shè)置中進(jìn)入共享界面,并開啟文件共享和遠(yuǎn)程登錄權(quán)限:
自此我們完成了在Mac環(huán)境下安裝vbox以及通過配置centos來實(shí)現(xiàn)一臺pc上安裝多個(gè)操作系統(tǒng),將不再依賴其他服務(wù)器的同時(shí)可以直接在本機(jī)進(jìn)行不同操作系統(tǒng)的學(xué)習(xí),并通過ssh和scp命令實(shí)現(xiàn)服務(wù)器之間連接和文件上傳下載操作。在程序開發(fā)和環(huán)境部署過程中可以在本地輕松搭建服務(wù)器,包括對一些集群環(huán)境的模擬都可以部署到vbox進(jìn)行測試。
最后如果覺得對你在有一點(diǎn)點(diǎn)價(jià)值,可以點(diǎn)個(gè)關(guān)注或收藏,或者有任何疑問可以隨時(shí)私聊我,感謝您能閱讀到我的文章!