Skip to content

搭建比特元节点 自定义公链

QM edited this page Dec 21, 2020 · 1 revision

搭建比特元节点

比特元公链会在版本更新是发布安装包,可以用安装包部署。 也可以用源代码编译部署。

源代码在 https://github.com/bityuan/bityuan。

部署比特元公链节点不要修改配置, 才能保证创世区块和共识的一致。

源代码编译部署

# 需要 golang >=1.12, 
# make 是可能需要安装一些小工具。 make dep命令会安装需要的工具

$ git clone https://github.com/bityuan/bityuan $GOPATH/src/github.com/bityuan/bityuan
$ cd $GOPATH/src/github.com/bityuan/bityuan
$ git tag
$ git checkout $lastest_tag # 找到最新版本的tag,

$ make
$ ls bityuan*
bityuan # 节点
bityuan-cli # 节点客户端
bityuan.lite.toml  # 裁剪版本配置 , 硬盘占用比完整版本小
bityuan.toml # 完整版本配置

$ ./bityuan -f bityuan.toml # 启动, 也可以用 bityuan.lite.toml 启动,节省硬盘

使用节点包部署

  1. 安装带节点钱包: https://www.bityuan.com/wallet 找适合自己机器操作系统的安装安装包,进行下载安装
  2. 阿里云节点安装:https://dev.33.cn/linj/installChain33.git 根据 REAMME 安装

搭建基于chain33公链节点

chain33 作为公链开发框架, 大家可以根据自己的需要发布自己的公链

可以通过配置定义新的公链

  1. 公链的名字
  2. 公链主币的名称选择
  3. 配置开启某些合约
  4. 配置共识的类型
  5. 配置状态树的类型选择

具体的实践可以参考: git@github.com:bityuan/bityuan.git

比特元项目就是用了 chain33 公链框架, 用了 plugin里的合约 存储 共识等插件构建出来的。

基本配置

  1. 链的名字
  2. 主币的名字
Title=LinJChain # 链的名字
CoinSymbol=LJB # 主币的名字

p2p 配置

在初始节点要加上seeds, 在公链刚刚上线时, 初始参与节点搭建的人可以容易的加入到网络中。

共识选择

目前支持共识 ticket, solo, raft,tendermint, pbft, dpos

每种共识都有自己的配置,而且选项比较多, 需要参考 chain33项目types 和 plugin里面types 以及共识代码目录的types定义

状态树

现在支持mavl kvmvccmavl两种, 在store节name配置选择状态树种类。 里面的选项可以用默认的, 如果你对其细节有深入的了解可以通过参数调优。

[store]
name="kvmvccmavl"
driver="leveldb"
storedbVersion="2.0.0"
dbPath="paradatadir/mavltree"
dbCache=128

[store.sub.mavl]
enableMavlPrefix=false
enableMVCC=false
enableMavlPrune=false
pruneHeight=10000
enableMemTree=true
enableMemVal=true

[store.sub.kvmvccmavl]
enableMVCCIter=true
enableMavlPrefix=false
enableMVCC=false
enableMavlPrune=false
pruneHeight=10000
enableMemTree=true
enableMemVal=true


合约选择

公链可以根据自己的需要,确定是否开启那个合约。

每一个现有实现合约可以Enable选项是否开启。( 在需要的功能没有的话可以自己开发)

一般fork 分为开启新功能, 和fix bug, 没有特别的要求设置为0 就可以了。

[fork.sub.token]
Enable=0
ForkTokenBlackList= 0
ForkBadTokenSymbol= 0
ForkTokenPrice=0
ForkTokenSymbolWithNumber=0
ForkTokenCheck= 0