Mac上用docker搭建Neo私鏈並調試

用虛擬機搭建私鏈的問題

上一篇Neo私鏈中使用四臺阿里雲的windows搭建了私鏈,看到了網絡創建的過程,但這樣子有不少問題。node

  1. 阿里雲跑了一天花了100塊,費錢。
  2. 手動搭建,下次又要重來。
  3. 我用的mac電腦,跑windows虛擬機很費勁。

總之,若是能夠腳本化,自動化就更好了。因此總結一下用docker搭建私鏈。linux

另外個人目的是研究代碼,而研究代碼光看不行,還要深刻細節,若是能夠調試就行了。調試通常分爲兩種,最簡單的是看log,這種方法其實已經很無敵了,加上時間能夠看性能,時序相關的問題;輸出到文件能夠調查長期運行後發生的錯誤。不過做爲一個工具控,我仍是要找到打斷點調試的方法,🙄,說白了,打斷點比在源碼中插入不少log要方便點,仍是人懶。git

建立私鏈並打斷點調試的方案

如今有如下幾個方案,我都試驗了,由於在mac上搞Neo,花了很多時間:github

  1. mac上用docker跑一個私鏈,用vs code遠程調試。
  2. mac上用docker跑一個私鏈,本身再開一個debug節點,調試本節點。
  3. 在windows虛擬機裏面用docker跑一個私鏈,本身在再一個debug節點,調試。

結論:
方法1:在mac中用vs code遠程調試老是失敗,不能獲取調試進程,獲取到了也調試不了,浪費了一天時間檢查各類問題,最終放棄。docker

方法2:在mac上用docker跑私鏈是沒問題,可是mac上調試neo-cli。。。會崩潰。。。緣由是須要leveldb,雖然mac能夠用brew安裝leveldb,可是好像要適配一下,我就不趟這水了,因此直接再windows上打開neo-cli,接上私鏈調試。json

方法3:windows上安裝docker也是有條件的:Docker for Windows requires Windows 10 Pro or Enterprise version 10586, or Windows server 2016 RTM to run。不巧的是個人windows虛擬機是家庭版,就不折騰了。上面裝個neo-gui玩玩得了。windows

因此,最後的結論是:在mac上用docker跑了一個私鏈,而後在windows虛擬機上調試和玩Neo-gui。反正能用就好,其實最好能夠全都在windows或者linux環境下玩,像我這樣插一個mac就是有點麻煩了。網絡

廢話少說,下面看看如何用docker創建私鏈並調試吧。app

使用docker建立私鏈

這個在Neo的一個國外社區CityOfZion中已經有人作了,clone下來按照步驟一步一步來就好CityOfZion/neo-privatenet-dockeride

docker的使用方法,這裏有一本好書docker_practice,能夠免費看,做者也是個大牛,也作區塊鏈,有興趣的能夠看看他的項目。

所須要的命令:

git clone https://github.com/CityOfZion/neo-privatenet-docker.git
cd neo-privatenet-docker
./docker_build.sh
./docker_run_and_create_wallet.sh

當執行成功後,就會產生一個私鑰,裏面就有提取好的Neo,惋惜是私鏈的,否則就發財了。看下圖就是成功後的打印。

clipboard.png
提取Neo和Gas成功

在Neo-gui裏面查看提取的Neo

咱們切回windows(注意虛擬機要是橋接模式),打開Neo-gui

1.注意copy正確的protocol.json到neo-gui的所在的目錄
注意下圖紅框,設置正確的公鑰和ip地址

clipboard.png
image.png

  1. 先建立一個無用的錢包

clipboard.png

  1. 右擊該錢包導入WIF

clipboard.png
再該錢包右擊,導入WIF,用戶體驗的設計很奇怪

4.看到提取的NEO和NeoGas
成功導入

clipboard.png

第二步就是爲了能夠右擊導入,neo-gui沒有別的入口提供導入功能

調試

  1. 下載neo-cli的代碼
  2. 切換到和docker同樣的版本,我這邊是v2.6.0
  3. copy libleveldb到neo-gui的目錄
  4. copy protocol.json
  5. copy config.json,注意修改一下端口,不要和docker中的節點使用同樣的
  6. 注意虛擬機要是橋接模式

clipboard.png
能夠調試了

總結

後面咱們能夠方便的玩代碼了,深刻代碼細節,能夠學到不少東西,有點興奮。

參考資料

CityOfZion/neo-privatenet-docker
Debugging .Net Core apps inside Docker container with VSCode
vs code: Attaching to remote processes
nodejs : LIVE DEBUGGING WITH DOCKER
Debug .NET Core with docker containers #130
vs code task
Guide: How to Import Private Key to NEO GUI

做者:沈寅
連接:https://www.jianshu.com/p/cd7...來源:簡書簡書著做權歸做者全部,任何形式的轉載都請聯繫做者得到受權並註明出處。

相關文章
相關標籤/搜索