5步構建私鏈,7步Neo過億
是否,參加了各種Neo活動,對Neo頗感興趣,希望從源頭瞭解這個世界上為數不多的支援智慧合約的公鏈?
是否,總是想參照Neo文件建立一個自己的私鏈,但是總是沒有那麼多時間去昨晚,抑或沒走幾步總是會遇到各種攔路虎?
是否,想研究Neo智慧合約,但是苦於主網(mainnet)gas太貴,測試網(testnet)申請又太麻煩(而且一般都不那麼慷慨)?
是否,希望給大家炫個富,“嘿,看,我有1億Neo!”?
恭喜你,閱讀這篇文章就能解決以上問題。請跟隨筆者一步一步進行操作,每一步都是筆者的成功的操作記錄,請放心食用。本教程已經預設了多項引數,在一般情況下,按照本教程操作就能立即坐擁1億Neo並供你盡情揮霍。
本文面向私鏈體驗者,5步構建私鏈,7步Neo過億。
以下操作以Linux指令為主:
- 第1步,建立Docker環境
Docker支援所有系統,包括Linux、Windows、Mac,Linux為原生支援。
筆者以CentOS 7.4 x64為實驗環境,但是其他系統亦可,最終Docker層都是用CentOS的。
伺服器或虛擬機器建議不要低於2u4G。
- 第2步,引用筆者編制好的dockerfile構建Neo Cli Docker映象,後面將以次為依託派生容器。
開啟CentOS終端或使用SSH遠端,輸入並執行如下命令:
docker build -t neo-cli:v0.3 https://github.com/NewEconoLab/neo-cli-docker.git#:dockerfile/privatenet
這條命令會從NEL的github自動應用私鏈映象構建指令碼,主要進行如下操作:
- 構建CentOS Docker映象
- 安裝dotnet sdk環境
- 安裝Neo必須的leveldb-devel庫
- 安裝git
- 從Neo官方github克隆neo-cli專案最新程式碼
- 使用dotnet sdk編譯neo-cli
- 從NEL官方github克隆neo-cli-docker專案
- 將neo-cli-docker專案中預先配置好的私鏈版config.json和protocol.json檔案替換到neo-cli根目錄
- 第3步,安裝Docker官方容器編排工具docker-compose,為後面一鍵派生4個記賬人節點容器做準備。
輸入並執行:
sudo pip install -U docker-compose
pipuninstall urllib3
pipuninstall chardet
pip install requests
docker-compose –version
- 第4步,引用筆者預先設定好的容器編排模板一鍵生成Neo鏈最小規模的4個記賬人節點容器(實際最少3個仍能繼續共識出塊)
輸入並執行:
cd /home
sudo yum -y install git
git clone https://github.com/NewEconoLab/neo-cli-docker.git
cp neo-cli-docker/dockerfile/privatenet/docker-compose.ymldocker-compose.yml
docker-compose up -d
docker-compose ps
看到這個樣子就表示4個記賬人節點的容器已經成功啟動(此時節點還未啟動)
- 第5步,分別進入容器,啟動節點,開啟記賬人錢包,啟動共識
輸入並執行:
docker attach cli0進入第一個容器,其後一次為cli1、cli2、cli3
這裡開始是容器內部環境:
cd /home/cli && dotnet neo-cli.dll /rpc啟動Cli節點
open wallet ./docs/neo_private_net_0.json開啟記賬人錢包,其後依次為neo_private_net_1.json、neo_private_net_2.json、neo_private_net_3.json
錢包密碼123456
start consensus啟動共識
最後切記使用特別的組合鍵【Ctrl】+ (【P】->【Q】),即按住【Ctrl】再依次按【P】、【Q】,退出並不停止當前容器。
其他3個節點容器類似依次操作,不在贅述
最後一個節點啟動後,稍等片刻,可以看到私鏈已近開始執行:
可以看出,主記賬人角色是交替承擔的
至此,私鏈已經搭建完成,後面2步是私鏈的應用。
- 第6步,通過Cli jsonRPC api檢視私鏈執行狀態
安裝postman等api測試程式
使用get方式請求:
http://116.62.160.38:10332/?jsonrpc=2.0&method=getblockcount¶ms=[]&id=1
其中IP部分要替換成你的電腦或虛擬機器的實際ip。
然後就能看到當前私鏈總的區塊數,要檢視其它資訊,可參考NeoCli api文件
- 第7步,從記賬人多重簽名合約中取出初始塊中的1億Neo轉到一個非記賬人錢包中
- 構建能夠連線當前私鏈的config.json和protocol.json檔案
config.json參考:
{
"ApplicationConfiguration": {
"Paths": {
"Chain":"ChainPrivate",
"Notifications":"NotificationsPrivate"
},
"P2P": {
"Port": 10333,
"WsPort": 10334
},
"RPC": {
"Port": 10332,
"SslCert": "",
"SslCertPassword": ""
}
}
}
protocol.json參考:
{
"ProtocolConfiguration": {
"Magic": 9726190,
"AddressVersion": 23,
"StandbyValidators": [
"0249b419692a17fb519c3b42ffbe82ae34855a45e54783a9bc940135b1c2753ece",
"03298a54cdfb2b5ffae0638c60633de24e3956b76a44867475e81db5ce87b2a16b",
"02b795b3322f0a171c7e7658371131c0caa77a9279818b85b9d0728a5a63452ff8",
"0366440bd2a1fe4e0d1dcb9bf35995c5c6e858af846abef145064ab2b5e8ebfce8"
],
"SeedList": [
"seed0.nel.group:10333",
"seed0.nel.group:20333",
"seed0.nel.group:30333",
"seed0.nel.group:40333",
],
"SystemFee": {
"EnrollmentTransaction": 1000,
"IssueTransaction": 500,
"PublishTransaction": 500,
"RegisterTransaction": 10000
}
}
}
seed0.nel.group需要替換成你的電腦或虛擬機器的實際ip
- 下載筆者預製好的記賬人錢包和非記賬人錢包
下載 https://github.com/NewEconoLab/neo-cli-dockerZIP
在/dockerfile/privatenet/docs可以找到相關檔案
- 下載Neo官方GUI錢包,建議是2.6.0.0以上將其中config.json和protocol.json替換成以上內容,然後執行。開啟neo_private_net_0.json 0號記賬人錢包,密碼123456
可以看到一個合約地址中有1億Neo(是不是有點小興奮啊),這個合約地址是由4個記賬人公鑰構造的多重簽名地址合約,需要至少3個記賬人錢包簽名才能轉出。
- 最終轉出
新建一個新的非記賬人錢包,比如neo_private_net_test_0.json
記住它的地址,比如AWSuQXpjuY3v22gCbEFL2vHbSLMMVK1QD6
開啟0號記賬人錢包,並【交易】-【轉賬】到上面地址
確定後會提示簽名不足
沒事,我們先把整個內容複製出來,然後開啟1號記賬人錢包,【交易】-【簽名】對這筆轉賬交易進行第二人簽名。
複製輸出,然後開啟2號記賬人錢包,【交易】-【簽名】對這筆轉賬交易進行第三人簽名。
此時,左下角出現【廣播】按鈕,代表交易簽名已經完備。
點選【廣播】將交易傳送到私鏈上進行共識
等到15秒左右,1億Neo就到你建立的那個AWSuQXpjuY3v22gCbEFL2vHbSLMMVK1QD6地址中了。
GAS是通過生成區塊,按照Neo持有量,不斷產生的。
通過對自己地址轉賬,然後【高階】-【提取NeoGas】就能將GAS提取到自己地址。
好了,至此你有用了一條新的Neo鏈、1億Neo、無數Gas,開始你的表演吧。
作者:青冥子