如何快速搭建区块链
发布时间:2019-06-18 作者:超哥
今天,就由美丽的小X姐姐和百度资深研发工程师静姐姐,为大家带来“百度超级链学院系列视频课程——如何快速部署超级链”。
视频课程共分为三讲,第一讲:如何快速建链;第二讲:TDPOS共识机制;第三讲:智能合约的开发。
先奉上视频课程第一讲《如何快速建链》
快来一睹为快吧!
---不方便看视频的小伙伴,欢迎阅读文字内容---
大家好,今天教大家如何快速的搭建和使用区块链网络。环境要求 go版本在1.12以上;gcc版本在4.8.2以上。我们从github上下载开源的代码,下载完成之后,进入xuperunion目录,进行编译。编译完成之后,编译产出在output包中。
下面,我们以3个节点为例,搭建TDPOS网络。
首先,在机器上创建3个节点,将刚才的产出分别拷贝到这3个节点上面,使output包中的内容分别到了node1,node2,node3当中。
其次,我们需要对node2,node3当中的节点信息进行重新的配置。
第一,对node2进行操作,将data目录下的keys和netkeys文件删除,并重新生成,然后修改配置文件,主要���修改端口号。为了操作方便,惯常在同一台机器上面进行节点搭建,容易出现节点之间端口号被占用的问题,所有3个节点需要拥有不同的port。
第二,删除data目录下的keys和data目录下的netkeys,进行重新创建。
第三,修改配置文件,将端口号进行更改;bootNode url由node1生成。
第四,操作3节点,同样的删除data下的keys文件,重新生成;修改配置文件node3的端口号全部改成3,这个配置在后面node1生成之后,直接放过来。
再次,更改完node2,node3相关配置之后,操作node1节点。创建链之前,先修改data/config目录下的json文件。config表示时间戳,包括每一轮矿工的数目,矿工出块的时间间隔,矿工和矿工之间切换的时间间隔,每个矿工出块时连续出块的数目,init_proposer第一轮矿工是初始化tdpos网络时,由我们来指定的,后续轮的矿工是网络中投票来产生的。
最后,更改node1节点的相关配置,init_proposer指定了两个矿工,因为网络一共是有3个节点,所以将node1节点和node2节点的地址作为矿工,先获得一node1节点的地址,node2节点的地址。再更改其他配置,时间戳由当前创建链的时间戳即可。时间戳是10位的,而json文件里面是19位,缺少的位数用0来补齐。每一轮出块的矿工的数目等配置出块时间间隔和数目的值,保持默认不变。只需将配置文件替换进node2和node3当中。
现在开始创建链,进入并启动node1节点,获得node1节点的netUrl,将地址改成本机地址,为了防止在不同的节点在不同的机器上面访问不到,而无法获得neturl。我们将neturl进行记录,待会向node2和node3当中填写。
操作完node1节点,再操作node2和node3节点。进入node2节点创建一条链,将上一步node1节点获得的neturl写入到node2节点的配置文件中。完成后,就可以启动node2节点了。开始修改node3节点。同样,先创建一条链,创建成功,再修改node3节点的neturl。启动node3节点成功之后,我们查看一下网关的状态,查看网络高度可以通过status命令。现在peer节点是2和3,本节点是我们访问的节点,高度是317,说明网络是启动成功的。
那么我们得知这几个节点高度是否完全一致呢?可以使用脚本文件来看到node1节点、node2、node3节点的高度。其实这个命令行非常的简单,用到的就是这个命令。