百度超级链xuperchain初学笔记

目录

  • 百度超级链xuperchain初学笔记(一)
    • 实验环境
    • 问题情况
      • 超级链环境搭建
      • TDPOS提案、投票
      • 智能合约
    • 感想

百度超级链xuperchain初学笔记(一)

最近试用了一下百度开源的xuperchain,在环境搭建、TDPOS提案、投票的操作上遇到了一些问题,一直没法解决。我先把这些问题记录下来,留到以后解决。

实验环境

  • 操作系统:ubuntu 18.04.4-desktop-amd64
  • 超级链xuperchain版本:3.7(github链接https://github.com/xuperchain/xuperchain)
  • 参考文档与教程
    • 超级链学院视频教程
    • XuperChain文档

问题情况

由于是第一次使用XuperChain,所以只做了一些基础的账号操作、共识机制配置,并没有尝试智能合约的部署。尽管如此,依然遇到了不少问题。

超级链环境搭建

依据 超级链学院视频教程的操作,先将源代码git clone到本地,然后切换分支到最新版本v3.7,使用make编译。
创建node1,node2,node3三个节点,修改端口,修改yaml配置文件(具体操作不在赘述),初始化node1,node2成为矿工节点出块,当我在启动xchain的时候就遇到了问题,主要有以下几个问题

  1. 提示proposer_num不一致,导致xchain无法启动
  2. p2p网络连接有问题,导致xchain无法
  3. netURL无法获取

不知道为啥,我在边写博客边复现的过程,这些问题都没发生!!!,我的操作和之前完全相同!只能说是玄学。

关键是netURL的获取,需要先建链,并启动节点后才能获取netURL

root@ubuntu: ./xchain-cli createChain
root@ubuntu: .nohup /xchain &

root@ubuntu: ./xchain-cli netURL get
"ip4/127.0.0.1/tcp/4702/p2p/QM3JK23kafkIJmRE8PFDKNjiLI8"

使用默认配置的node1节点所有信息是硬编码的,netURL可以不用先启动节点再获取。但node2需要在重新生成密钥后,先启动一次获得netURL,再删除data/blockchain/目录下的全部内容
于是yaml配置文件中init_proposer_netURL就可以填入node的网络节点地址了。

至于问题一,在data/config/xuper.json中需要修改的地方有三处:

  • “proposer_num” 的值修改为2
  • 添加"init_proposer":{ “1”: [ node1的地址node2的地址 ]}
  • 添加"init_proposer_neturl":{ “1”: [ node1的netURLnode2的netURL ]}

全部节点配置文件改完后,能否生效,全靠玄学。写文章复现的时候我成功,那之后呢?我不清楚。

TDPOS提案、投票

这里 超级链学院视频教程和最新的官方文档(latest版本)就有了区别。前者使用的xuperchan是v3.1版本,发起提案只需要普通的transfer交易就可以,而后者需要多重签名。我是按照官方文档操作的,结果很失败,虽然交易信息可以在区块链上查到,但是执行xchain-cli tdpos的查询命令却始终找不到记录,一直没能解决。

智能合约

还没部署,等到我的第二篇笔记,在完成这部分内容的学习

感想

学习新工具、新语言、新技术的时候总会碰上玄学问题,明明操作步骤完全一致,却总会得到不一样的结果。xuperchain是我接触的第一个区块链产品,它的文档其实介绍地并不全面,各种配置文件的设置只能靠实验和猜测,尤其它的开放网络需要真金白银才能部署、运行智能合约,实在令人反感。
数字货币不等于区块链,但使用区块链技术要花费真正的人民币……

我真心觉得区块链技术没有人工智能、5G、大数据有前途。

你可能感兴趣的:(杂谈,区块链学习)