是否,參加了各類Neo活動,對Neo頗感興趣,但願從源頭瞭解這個世界上爲數很少的支持智能合約的公鏈?git
是否,老是想參照Neo文檔創建一個本身的私鏈,可是老是沒有那麼多時間去昨晚,抑或沒走幾步老是會遇到各類攔路虎?github
是否,想研究Neo智能合約,可是苦於主網(mainnet)gas太貴,測試網(testnet)申請又太麻煩(並且通常都不那麼慷慨)?docker
是否,但願給你們炫個富,「嘿,看,我有1億Neo!」?json
恭喜你,閱讀這篇文章就能解決以上問題。請跟隨筆者一步一步進行操做,每一步都是筆者的成功的操做記錄,請放心食用。本教程已經預設了多項參數,在通常狀況下,按照本教程操做就能當即坐擁1億Neo並供你盡情揮霍。api
本文面向私鏈體驗者,bash
若是大俠須要詳加參詳或者只是想體驗更簡單的快速搭建Cli節點,請詳閱github.com/NewEconoLab…。服務器
如下操做以Linux指令爲主:工具
建議參考Docker官網docs.docker.com/engine/inst…構建Docker環境,具體操做再也不贅述。post
Docker支持全部系統,包括Linux、Windows、Mac,Linux爲原生支持。測試
筆者以CentOS 7.4 x64爲實驗環境,可是其餘系統亦可,最終Docker層都是用CentOS的。
服務器或虛擬機建議不要低於2u4G。
打開CentOS終端或使用SSH遠程,輸入並運行以下命令:
docker build -t neo-cli:v0.3 https://github.com/NewEconoLab/neo-cli-docker.git#:dockerfile/privatenet複製代碼
這條命令會從NEL的github自動應用私鏈鏡像構建腳本,主要進行以下操做:
輸入並運行:
sudo pip install -U docker-compose
pipuninstall urllib3
pipuninstall chardet
pip install requests
docker-compose –version複製代碼
輸入並運行:
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個記帳人節點的容器已經成功啓動(此時節點還未啓動)
輸入並運行:
docker attach cli0
這裏開始是容器內部環境:
cd /home/cli && dotnet neo-cli.dll /rpc
open wallet ./docs/neo_private_net_0.json
錢包密碼123456
start consensus
最後
其餘3個節點容器相似依次操做,不在贅述
最後一個節點啓動後,稍等片刻,能夠看到私鏈已近開始運行:
能夠看出,主記帳人角色是交替承擔的
至此,私鏈已經搭建完成,後面2步是私鏈的應用。
安裝postman等api測試程序
使用get方式請求:
其中IP部分要替換成你的電腦或虛擬機的實際ip。
而後就能看到當前私鏈總的區塊數,要查看其它信息,可參考NeoCli api文檔
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能夠找到相關文件
能夠看到一個合約地址中有1億Neo(是否是有點小興奮啊),這個合約地址是由4個記帳人公鑰構造的多重簽名地址合約,須要至少3個記帳人錢包簽名才能轉出。
新建一個新的非記帳人錢包,好比neo_private_net_test_0.json
記住它的地址,好比AWSuQXpjuY3v22gCbEFL2vHbSLMMVK1QD6
打開0號記帳人錢包,並【交易】-【轉帳】到上面地址
肯定後會提示簽名不足
沒事,咱們先把整個內容複製出來,而後打開1號記帳人錢包,【交易】-【簽名】對這筆轉帳交易進行第二人簽名。
複製輸出,而後打開2號記帳人錢包,【交易】-【簽名】對這筆轉帳交易進行第三人簽名。
此時,左下角出現【廣播】按鈕,表明交易簽名已經完備。
點擊【廣播】將交易發送到私鏈上進行共識
等到15秒左右,1億Neo就到你創建的那個AWSuQXpjuY3v22gCbEFL2vHbSLMMVK1QD6地址中了。
GAS是經過生成區塊,按照Neo持有量,不斷產生的。
經過對本身地址轉帳,而後【高級】-【提取NeoGas】就能將GAS提取到本身地址。
做者:青冥子
羣討論:795681763
轉自NEL經濟實驗室:mp.weixin.qq.com/s/H8tJuspiI…