Hi Guest

More contents, please log on!

Bitmere.com 区块链技术 Content

Linux 环境搭建 NEO-CLI 2.9 私链

华胥
20 0 0
NEO 2.9 将 ApplicationLogs 等改为插件机制了,较以前的版本有较大改动,搭建私链时也有部分变化,这里就来详细介绍一下 2.9 的私链搭建过程。本次使用 CentOS 系统。
1、准备四台 Linux 环境、我这里用的是腾讯云的四台服务器、配置:CentOS7.4 系统 2 核 4G 内存 40G 硬盘 1M 带宽。
2、安装 dotnet core,使用命令:
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
sudo yum update
sudo yum install dotnet-sdk-2.1
3、其他必要的依赖:
安装 sqlite:
sudo yum install sqlite-devel
安装 leveldb:
sudo yum install leveldb-devel
安装 libunwind:
sudo yum install libunwind-devel
4、下载 neo-cli:
sudo wget https://github.com/neo-project/neo-cli/releases/download/v2.9.0/neo-cli-linux-x64.zip
解压:
sudo unzip neo-cli-linux-x64.zip
5、下载插件:
进入Plugins目录:
cd neo-cli/Plugins
下载 ApplicationLogs:
sudo wget https://github.com/neo-project/neo-plugins/releases/download/v2.9.0/ApplicationLogs.zip
下载 SimplePolicy.zip:
sudo wget https://github.com/neo-project/neo-plugins/releases/download/v2.9.0/SimplePolicy.zip
下载 StatesDumper.zip:
sudo wget https://github.com/neo-project/neo-plugins/releases/download/v2.9.0/StatesDumper.zip
6、解压插件到 Plugins 目录下:
sudo unzip ApplicationLogs.zip -d ..
sudo unzip SimplePolicy.zip -d ..
sudo unzip StatesDumper.zip -d ..
解压完成后删除 Plugins 下的压缩文件,不删也可以、反正留着没用了。
rm -f ApplicationLogs.zip SimplePolicy.zip StatesDumper.zip
7、使用 neo-cli 创建四个钱包文件 使用 PC 版钱包或其他 neo-cli 命令行钱包创建均可:
create wallet 1.json
password: ***   
password: ***   
address: AP3jypBzSmwWVy7QaaTUctBLpuMe9CoNDq   
pubkey:030add17e36aa72949cdeb3486021ff7bb621541af6680b1d7e2aaa6d991163a87
create wallet 2.json   
password: ***   
password: ***   
address: AVhFga7Angfmtb1zQXEgau8Pkh1zr6ZbdN   
pubkey:0331089290e5886d9fcf52f29d51d8a9f705bbdbe59b0dba8212611d771d127367
create wallet 3.json   
password: ***   
password: ***   
address: AU1r8zrqmNynqtpWMwZnBTWksp5fuKvyaA   
pubkey:021e67f86471a35ba4e0362e7eb246da28f7059298d768bc71e7de9cd908231591
create wallet 4.json   
password: ***   
password: ***   
address: APRyAAXy1y6upwjs4ijv6efts8PcnG5uWd   
pubkey:02fca1085da410796d7f3279660f52a92d216680060f1710c37f76e248f506cb91
创建好钱包后将 4 个钱包的公钥保存下来(保存到一个 txt 文件中即可)以备后用。直接复制上面的公钥或者用 CLI 命令 中的 list key 命令查看公钥再复制均可。
创建好的钱包 json 文件在 neo-cli 目录下 分别为 1.json,2.json,3.json,4.json
8、将 4 个钱包文件分别复制到 4 个节点的 neo-cli 目录下,这里要复制生成的 1.json 钱包源文件进去,如果只是新建 1.json 再复制内容的话会打开钱包失败。
9、修改节点配置文件:
在本地编辑好一份配置文件 protocol.json 。
首先修改 Magic 值,Magic 用于识别消息的来源网络,指定不同的 Magic 确保 NEO 区块链中的不同网络信息在传输过程中不会发送到其它网络。
Magic 的类型为 uint,所以注意所填写的数值要在 [0 - 4294967295] 区间内。
然后修改 StandbyValidators,将第三步记下来的 4 个公钥填写在这里。
最后修改 SeedList,将第一步记下来的 IP 地址填写在这里,端口号保持不变,例如我修改成下面的配置。
{
"ProtocolConfiguration": {
"Magic": 123456,
"AddressVersion": 23,
"SecondsPerBlock": 15,
"StandbyValidators": [
"03072384ece95c4febe7211ee4833cd36cdf0f255ec5263b28a4be1f2af7a3d7f3",
"0208da33cee651a4dc119654b5b8067ade533e39e63a8b4fdbd160d97f80c4cfb4",
"026f0af815d5c3895205e9f54b9402329f3ecc4d249fc0c8500e9b3ea8a3ec9d5b",
"03b4e070988627e2a5710b2c8c79f0f0be18821e1af5875b7beeb3fa8a921cde3f"
],
"SeedList": [
"13.75.112.62:10333",
"137.116.173.200:10333",
"168.63.206.73:10333",
"137.116.171.134:10333"
],
"SystemFee": {
"EnrollmentTransaction": 10,
"IssueTransaction": 5,
"PublishTransaction": 5,
"RegisterTransaction": 100
}
}}
10、将修改过的 protocol.json 复制到 4 个节点的客户端目录下,替换之前的 protocol.json 的文件。
这一步可以先删除每个节点的 protocol.json 文件,再创建、复制内容进去
为了更方便地打开钱包,开启共识,建议修改每个节点下的 config.json 文件,将 UnlockWallet 配置改为如下:
使用 vi 编辑每个节点的 config.json 文件:
  vi config.json
  
"UnlockWallet": {
"Path": "1.json",
"Password": "11111111",
"StartConsensus": true,
"IsActive": true
}
其中 Path 是钱包名称,Password 是钱包密码,修改成你自己的钱包名称和密码就可以,其余两个不变。然后在 4 台虚拟机上依次输入以下命令启动节点,这时程序会自动打开钱包并开启共识。
最后开启节点开始共识:
使用命令开启节点:dotnet neo-cli.dll
节点会自动开始共识:
show state 查看共识状态如下,说明私链搭建成功

提取NEO
安装 PC 版客户端(Neo-GUI),修改配置文件 protocol.json 与 4 个节点的配置文件相同,使其连接到私有链中。
打开钱包,如果左下角有连接数不为零,而且一直在同步区块,表示该客户端已经成功地连接到了私有链中。
在 PC 版客户端中打开钱包 1.json,添加多方签名地址,输入 protocol.json 中的 4 个公钥,设置最小签名数量为 3(共识节点数量 / 2 + 1),你就会看到在合约地址中有 1 亿的 NEO 了,分别打开 4 个钱包文件,进行同样的签名操作。
打开钱包 1.json,点击 交易 转账 输入一个标准地址,将 1 亿 NEO 转到这个地址中。
然后系统会提示“交易构造完成,但没有足够的签名”,然后将代码复制下来,打开第二个钱包,点击 交易 签名粘贴刚才复制的代码,点击 签名, 然后将代码复制下来,打开第三个钱包,点击 交易 签名 粘贴刚才复制的代码,点击 签名,这时你会发现窗口中出现了一个 广播 按钮,代表交易已经签名完成(达到多方签名合约要求的最少签名数量)可以广播,点击 广播 后转账交易开始广播,约 15 秒后转账成功。
大功告成,拥有了自己的链,还有 1 亿 NEO,可以愉快地玩耍了。
提取 GAS
在 NEO-GUI 中打开四个节点钱包中的任意一个,点击 高级 提取 NeoGas 提取,接下来的操作与转账 NEO 类似,将没有足够的签名的代码复制下来,打开第二个钱包,点击 交易 签名 粘贴刚才复制的代码,点击 签名, 然后将代码复制下来,打开第三个钱包,点击 交易 签名 粘贴刚才复制的代码,点击 签名,点击 广播 后提取 NeoGas 的交易开始广播,约 15 秒后提取成功。
BitMere.com is Information release platform,just provides information storage space services.
The opinions expressed are solely those of the author,Does not constitute advice, please treat with caution.
You have to log in before you can reply Login | 立即注册

Points Rules

Write the first review

华胥 初中生
  • Follow

    0

  • Following

    0

  • Articles

    13

Promoted