5步構建私鏈,7步Neo過億

是否,參加了各類Neo活動,對Neo頗感興趣,但願從源頭瞭解這個世界上爲數很少的支持智能合約的公鏈?git

是否,老是想參照Neo文檔創建一個本身的私鏈,可是老是沒有那麼多時間去昨晚,抑或沒走幾步老是會遇到各類攔路虎?github

是否,想研究Neo智能合約,可是苦於主網(mainnet)gas太貴,測試網(testnet)申請又太麻煩(並且通常都不那麼慷慨)?docker

是否,但願給你們炫個富,「嘿,看,我有1億Neo!」?json

恭喜你,閱讀這篇文章就能解決以上問題。請跟隨筆者一步一步進行操做,每一步都是筆者的成功的操做記錄,請放心食用。本教程已經預設了多項參數,在通常狀況下,按照本教程操做就能當即坐擁1億Neo並供你盡情揮霍。api

本文面向私鏈體驗者,bash

5
步構建私鏈,
7
步Neo過億

若是大俠須要詳加參詳或者只是想體驗更簡單的快速搭建Cli節點,請詳閱github.com/NewEconoLab…服務器

如下操做以Linux指令爲主:工具

  • 第1步,創建Docker環境

建議參考Docker官網docs.docker.com/engine/inst…構建Docker環境,具體操做再也不贅述。post

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

進入第一個容器,其後一次爲cli一、cli二、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&params=[]&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,開始你的表演吧。

做者:青冥子

羣討論:795681763

轉自NEL經濟實驗室:mp.weixin.qq.com/s/H8tJuspiI…

相關文章
相關標籤/搜索