這幾天應(yīng)該都被Libra刷屏了。FB的Libra在2020年底會(huì)推出。這里暫且不詳細(xì)來(lái)討論Libra的意義和階段性影響。目前來(lái)看Libra是區(qū)塊鏈一個(gè)階段性的需求,至于如何發(fā)展持續(xù)關(guān)注。?
筆者嘗試搭建Libra環(huán)境~
Libra資源相關(guān)
這里列舉相關(guān)Libra的相關(guān)資源鏈接,僅供參考:?
Libra官網(wǎng):?https://libra.org/en-US/?
白皮書:?https://libra.org/en-US/white-paper/?
Libra技術(shù)白皮書:?https://developers.libra.org/docs/assets/papers/the-libra-blockchain.pdf?
Libra-github:?https://github.com/libra/libra
Libra-基礎(chǔ)環(huán)境搭建
基于參考:https://developers.libra.org/docs/my-first-transaction?
來(lái)搭建Libra并連接到測(cè)試網(wǎng)絡(luò)。
實(shí)驗(yàn)環(huán)境
Centos7.5、16C、192G、1000G
系統(tǒng)安裝配置
基本的系統(tǒng)安裝,安裝好之后無(wú)外乎關(guān)閉selinux、防火墻這些基本的配置。?
這里建議安裝好之后設(shè)置阿里yum,設(shè)置完成后:
yum update
下載Libra及相關(guān)軟件安裝
下載Libra:
git clone https://github.com/libra/libra.git
在制定文件夾解壓:
cd libra 即可看到下載Libra的項(xiàng)目?jī)?nèi)容。
安裝Golang
安裝Golang?
如果單獨(dú)去下載安裝包麻煩的話,那么直接通過(guò)wget來(lái)下載解壓,配置環(huán)境變量。
wget https://studygolang.com/dl/golang/go1.12.5.linux-amd64.tar.gz
tar -xvf go1.12.5.linux-amd64.tar.gz
配置環(huán)境變量。修改/etc/profile文件,路徑根據(jù)下載安裝路徑來(lái)。
vim /etc/profile
添加
export GOROOT=/usr/go
export GOPATH=/usr/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
安裝Rust等相關(guān)
安裝rust
curl https://sh.rustup.rs -sSf | sh
rustup toolchain install nightly-2019-05-22-x86_64-unknown-linux-gnu
rustup override set nightly-2019-05-22
安裝完成后查看版本信息:
root@libra libra]# rustc --version
rustc 1.36.0-nightly (50a0defd5 2019-05-21)
[root@libra libra]# rustup --version
rustup 1.18.3 (435397f48 2019-05-22)
安裝cmake
在官網(wǎng):https://cmake.org/download/?
選擇對(duì)應(yīng)操作系統(tǒng)版本下載,下載后解壓:
tar -xvzf cmake-3.15.0-rc2.tar.gz
cd cmake-3.15.0-rc2/
./bootstrap
gmake
gmake install
以上步驟有點(diǎn)慢,耐心等待~
protocol安裝配置
文件下載地址:https://github.com/protocolbuffers/protobuf/releases/tag/v3.6.1
選擇對(duì)應(yīng)的版本:
tar -xvf protobuf-all-3.8.0.tar.gz
cd protobuf-3.8.0/
./configure
make
make check
sudo make install
protoc --version
顯示:libprotoc 3.8.0
安裝測(cè)試Libra環(huán)境
cd libra
./scripts/dev_setup.sh
顯示如下:
Installing CMake......
CMake is already installed
Installing Go......
Go is already installed
Installing Protobuf......
Protobuf is already installed
Finished installing all dependencies.
You should now be able to build the project by running:
? ? source /root/.cargo/env
? ? cargo build
測(cè)試網(wǎng)絡(luò)腳本運(yùn)行:
./scripts/cli/start_cli_testnet.sh
比較慢耐心等待~~~
完成后顯示如下:?

創(chuàng)建賬戶及賬戶狀態(tài)查看
根據(jù)官網(wǎng)的指導(dǎo),先查看account內(nèi)容:

創(chuàng)建賬戶 Alice、Bob
libra% account create
>> Creating/retrieving next account from wallet
Created/retrieved account #0 address c94d5411d85442374cc24c0eb0203f1666c9cd681eb4eeedf366905c950c20ee
libra% account create
>> Creating/retrieving next account from wallet
Created/retrieved account #1 address 39c0ff0bdc00b710599e6f4c8c32d2fa873ce360f20b100703eca748e0941f24
libra%
通過(guò)account list查看內(nèi)容:

將Libra Coins添加到Alice和Bob的賬戶。
根據(jù)之前的建account順序,那么0為Alice、1為Bob,110和50為L(zhǎng)ibra coin。
libra% account mint 0 110
>> Minting coins
Mint request submitted
libra% account mint 1 52
>> Minting coins
Mint request submitted
libra%
檢查下0、1account的余額:
libra% query balance 0
Balance is: 110
libra% query balance 1
Balance is: 52
libra%
查看賬戶序列:
ibra% query sequence 0
>> Getting current sequence number
Sequence number is: 0
libra% query sequence 1
>> Getting current sequence number
Sequence number is: 0
libra%
交易
根據(jù)例子,我們轉(zhuǎn)移10個(gè)Libra coin從Alice到Bob:
transfer 0 1 10
0是Alice的帳戶的索引。
1是Bob的帳戶索引。
10是從Alice的賬戶轉(zhuǎn)移到Bob的賬戶的Libra的數(shù)量。
transfer 0 1 10
下圖清晰顯示賬戶轉(zhuǎn)賬后的狀態(tài):

總結(jié)
大致搭建了Lbra的環(huán)境,根據(jù)官方開發(fā)文檔實(shí)現(xiàn)一些基本的功能。在搭建過(guò)程中我把相關(guān)軟件的版本都列舉出來(lái),可能會(huì)有一些軟件版本的問題導(dǎo)致在編譯的時(shí)候不通過(guò),建議按照列出的版本來(lái)安裝。有興趣可聯(lián)系我一塊交流~~?
(未完待續(xù))