如何快速搭建区块链

发布时间:2019-06-18          作者:超哥


 
百度超级链Xuperchain开源之后,我们感受到了开发者伙伴们的热情关注,其中有不少朋友提到希望进一步了解百度超级链网络的搭建方法。 

今天,就由美丽的小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节点的高度。其实这个命令行非常的简单,用到的就是这个命令。