乾貨|0基礎,開啓COS公鏈本地化運行

最爲領先的內容公鏈,COS公鏈的代碼所有開源免費。開源地址:https://github.com/coschain/node


「沒有基礎知識,不用擔憂!
零基礎,開啓COS公鏈本地化運行。」

本文從源代碼編譯開始,帶領你們一步步搭建一個可運行的環境,直到能夠正常運行COS公鏈並出塊。git

考慮到可能出現的編譯錯誤,咱們也提供了一個能正常運行本地鏈的 docker。不過,對於那些想要深刻理解本地鏈的編譯和運行原理的開發者來講,咱們強烈建議從源碼開始編譯哦~github

第一步:獲取源代碼

github 上獲取 master 分支的代碼golang

git clone git@github.com:coschain/contentos-go.git

第二步: 編譯

Go 的版本docker

內容公鏈 Contentos 的主要開發語言是 golang,而且使用了 golang 官方提供的 go modules 做爲管理工具。因此,必須使用 Go 1.11 以上支持go modules功能的版本。因爲 Go 1.12 對 modules 機制作出進一步的更新,推薦使用 Go 1.12 之後的版本(目前最標準的版本是 Go 1.11.4)。工具

編譯 cosdwalletui

contentos-go 能夠編譯出的可執行文件均在 cmd 文件夾裏,最重要的是 cosdwallet-cli 。前者是 contentos 主鏈,後者是與主鏈交互的命令行工具。spa

cd build
go build ../cmd/cosd
go build ../cmd/wallet-cli

固然,你也能夠經過 go build -o 指定名字和位置。命令行

第三步: 運行

初始化code

contentos 須要初始化 ~/.coschain 文件夾用於存放配置文件和數據,如下命令將會建立默認文件夾 ~/.coschain/cosd

cosd init

也能夠指定文件夾名字,如下命令將會建立文件夾 ~/.coschain/testnode

cosd init -n testnode

指定配置文件名字的意義在於,能夠經過這種方式實現本地同時運行多個節點。它們會讀取不一樣的配置文件,並建立互相獨立的 db 數據。

啓動

啓動 cosd 並完成正常出塊的流程較爲繁瑣,若是隻是須要啓動並快速繼續後面的操做,咱們提供了一鍵啓動的腳本,以便完成多個節點啓動而且正常出塊。固然,若是想要了解整個啓動流程,建議跳過「一鍵啓動」的方式。

單節點

初始化完成以後,經過執行 start 命令啓動 cosd

cosd start

上述命令會使用 ~/.coschain/cosd 下的配置文件,並寫入數據到該文件夾下。

一樣,也能夠指定配置文件夾。

cosd start -n testnode

會使用 ~/.coschain/testnode 下的配置文件,而且寫入數據到這個文件夾下。

執行後,cosd 節點就能夠正常啓動了。

多節點

雖然咱們能夠手動建立多個配置文件並啓動,可是這個過程比較繁瑣。對於此,咱們提供了 multinodetester 用於批量建立和啓動。

multinodetester 存儲在 cmd 文件下,須要編譯。

cd build
go build ../cmd/multinodetester

批量初始化

multinodetester init 4 能夠初始化 4 個配置文件夾。該命令能夠在 ~/.coschain 下找到,分別爲 testcosd_0testcosd_1testcosd_2testcosd_3, 對應 4 個節點。

批量啓動

multinodetester start path/to/cosd 4

path/to/cosd 是 cosd 可執行文件的路線,若是 mltinodetester 和 cosd 都在 build 文件夾下,那麼路徑就是 ./cosd

經過以上步驟,本地就會有 4 個節點運行啦。

手動選擇第一輪出塊節點

即便有多個節點在本地運行,但若是沒有選擇出塊節點,默認的只有 testcosd_0 這個特殊節點( 也就是initminer )出塊,其餘節點都處於同步模式。因此,咱們須要手動選擇出塊節點。

通常狀況下,節點須要經過 wallet 去註冊節點,節點投票以後才能成爲出塊節點,這個過程一樣繁瑣。在本地環境下,簡化了這個流程,在 wallet 下提供了同名 multinodetester 的方法來批量註冊和選舉出塊節點。

若是嚴格按照上文的流程,那麼如今本地應該有 wallet-cli 這個可執行文件。

執行wallet-cli文件,進入交互界面。輸入 multinodetester 4 來批量註冊選舉出塊節點。 也能夠經過非交互模式完成,執行:

wallet-cli multinodetester 4

通過以上操做步驟,contentos 主鏈就已經成功在本地運行起來了。

歡迎加入COS技術社羣,領取bounty獎勵!

telegram 技術羣.png

相關文章
相關標籤/搜索