用户登陆
正在加载
用 NEO 节点搭建私有链
互联网 · 2019-02-26 14:01:41

本篇教程会教你如何用 NEO 节点搭建私有链,并且如何从自己的私有链中提取 NEO 和 NeoGas。NEO 私有链的部署至少需要 4 台服务器才能取得共识,每台服务器对应一个共识节点,每台服务器上有一个 NEO 钱包文件。

配置虚拟机

NEO 私有链的部署至少需要 4 台服务器才能取得共识,每台服务器对应一个共识节点。为了演示,我在 Azure 上创建了 4 台 Windows 虚拟机,大小为 Standard DS1 v2 (1 核心,3.5 GB 内存),你也可以在局域网中或虚拟机中部署私有链。

创建好后,要开通 10331-10334 端口,具体方法为在系统的

防火墙 高级设置 入站规则

中新建规则,然后添加端口 10331-10334。NOTE如果你在云服务器上创建的虚拟机,还要登录虚拟机的管理后台,设置网络安全组 Azure 上的设置方法为:

网络 入站端口规则

添加端口 10331-10334。创建好虚拟机后,将四台虚拟机的 IP 地址保存下来以备后用。

安装 NEO 节点

参考 NEO

节点的安装部署

安装NEO节点。

安装插件

要使节点达成共识,需要安装

SimplePolicy

插件启用共识策略,详细信息请参考

安装插件

创建钱包

我们首先创建 4 个钱包文件,依次为 1.json - 4.json,这一步在 PC 版钱包和命令行钱包都可以创建,下图是在命令行客户端创建钱包文件的截图。

创建好钱包后将 4 个钱包的公钥保存下来(保存到一个 txt 文件中即可)以备后用。直接复制上面的公钥或者用 CLI 命令 中的 list key 命令查看公钥再复制均可。然后将 4 个钱包分别复制到 4 个虚拟机的节点目录下。

修改节点的配置文件

打开节点的配置文件 protocol.json 。首先修改 Magic 值,Magic 用于识别消息的来源网络,指定不同的 Magic 确保 NEO 区块链中的不同网络信息在传输过程中不会发送到其它网络。NOTEMagic 的类型为 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 } }}

最后将修改过的 protocol.json 复制到 4 个节点的客户端目录下,替换之前的 protocol.json 的文件。为了更方便地打开钱包,开启共识,建议修改每个节点下的 config.json 文件,替换其中的这一部分

"UnlockWallet": { "Path": "1.json", "Password": "11111111", "StartConsensus": true, "IsActive": true}

其中 Path 是钱包名称,Password 是钱包密码,修改成你自己的钱包名称和密码就可以,其余两个不变。然后在 4 台虚拟机上依次输入以下命令启动节点,这时程序会自动打开钱包并开启共识。启动节点:dotnet neo-cli.dll如果上述操作成功,可以运行show state来查看节点状态。若高度发生变化,则说明共识过程正常。4个节点的共识过程如图所示

4 个节点即使关掉一台依然可以达成共识,如图所示

提取 NEO、NeoGas

安装 PC 版客户端(Neo-GUI),修改配置文件 protocol.json 使其连接到私有链中。打开钱包,如果左下角有连接数不为零,而且一直在同步区块,表示该客户端已经成功地连接到了私有链中。在 PC 版客户端中打开钱包 wallet1.db3,添加多方签名地址,输入 protocol.json 中的 4 个公钥,设置最小签名数量为 3(共识节点数量 / 2 + 1),你就会看到在合约地址中有 1 亿的 NEO 了,如图所示。

NOTE4 个钱包都要添加多方签名地址,否则下一步会提示签名失败下面我们要将该 NEO 从合约地址转到标准地址中,打开 4 个钱包中的任意一个,点击

交易 转账

输入一个标准地址,将 1 亿 NEO 转到这个地址中。然后系统会提示“交易构造完成,但没有足够的签名”,然后将代码复制下来,打开第二个钱包,点击

交易 签名

粘贴刚才复制的代码,点击

签名

, 然后将代码复制下来,打开第三个钱包,点击

交易 签名

粘贴刚才复制的代码,点击

签名

,这时你会发现窗口中出现了一个

广播

按钮,代表交易已经签名完成(达到多方签名合约要求的最少签名数量)可以广播,点击

广播

后转账交易开始广播,约 15 秒后转账成功。

提取 NeoGas 的操作方法也类似,

点击 高级 提取

NeoGas 提取 ,(记得这时所在的钱包 X,下文会用到),如图所示

接下来的操作与转账 NEO 类似,将没有足够的签名的代码复制下来,打开第二个钱包,点击

交易 签名

粘贴刚才复制的代码,点击

签名

, 然后将代码复制下来,打开第三个钱包,点击

交易 签名

粘贴刚才复制的代码,点击

签名

,点击

广播

后提取 NeoGas 的交易开始广播,约 15 秒后提取成功。提取成功后 NeoGas 会进入到你发起提取 NeoGas 的交易所在的钱包(即上方的 X 钱包)的第一个标准地址,如图所示

免责声明:
本网站所提供的所有信息仅供参考,不构成任何投资建议。用户在使用本网站的信息时应自行判断和承担风险。币界网不对用户因使用本网站信息而导致的任何损失负责。用户在进行任何投资活动前应自行进行调查和研究,并谨慎决策。币界网不对用户基于本网站信息做出的任何投资决策负责。用户在本网站发布的任何内容均由其个人负责,与币界网无关。
免责声明:本网站、超链接、相关应用程序、论坛、博客等媒体账户以及其他平台和用户发布的所有内容均来源于第三方平台及平台用户。币界网对于网站及其内容不作任何类型的保证,网站所有区块链相关数据以及其他内容资料仅供用户学习及研究之用,不构成任何投资、法律等其他领域的建议和依据。币界网用户以及其他第三方平台在本网站发布的任何内容均由其个人负责,与币界网无关。币界网不对任何因使用本网站信息而导致的任何损失负责。您需谨慎使用相关数据及内容,并自行承担所带来的一切风险。强烈建议您独自对内容进行研究、审查、分析和验证。
s_logo
App内打开