创建节点 - assetcloud/AssetChain GitHub Wiki

机器

推荐系统: centos/ubuntu

最低要求: cpu: 8核, 内存:16G,

存储: 1T (io 高性能 ), 网络至少 10M (存储和网络和业务量有关, 在业务大的情况下, 需要按实际增加)

性能

网络环境

  1. 普通节点: 能链接公网
  2. 共识节点: 提供公网ip, 开放下面端口 : 13801~13803, 10901, 33001
  3. 应用的服务节点: 提供公网ip, 开放下面端口 : 13801~13803, 10901, 33001, 8801 和8802

端口用途

  1. 13801~13803 用于p2p通信
  2. 8801 和8802 用于接口服务
  3. 10901 33001用于共识通信)

端口可以配置, 可以根据需要更改

创建节点步骤

  1. 同步系统时间
  2. 获得安装包: 自己编译和下载安装包
  3. 运行节点程序
  4. 在节点上创建钱包
  5. 如果参与共识, 向协同中心申请, 并开启共识.

下面介绍各个系统的如何创建节点

在windows 创建节点

1. 同步系统时间

以win10为例, 从 控制面板 -> 时钟,语言和区域 -> 日期和时间 -> Internet时间 -> 更改设置, 在 “Internet时间设置”,勾选“与Internet时间服务器同步”选项

2. 获得安装包: 自己编译和下载安装包

途径

  1. 在协同中心官网上下载 下载链接, 并将安装包放到指定机器
  2. 自己编译: 参考编译章节

3. 运行节点程序

  1. 解压安装包
  2. 配置数据存放目录, 配置文件为 assetchain.toml
# 默认配置的数据存放目录
dbPath = "/data/assetchaindatadir"
dbPath = "/data/assetchaindatadir/addrbook"
dbPath = "/data/assetchaindatadir/mavltree"

# 根据实际需要进行配置
# 如果改为和程序目录一致, 可以用相对目录, 如
dbPath = "datadir"
dbPath = "datadir/addrbook"
dbPath = "datadir/mavltree"
  1. 启动命令
# 1. 启动命令行
# 2. 进入程序所在目录, 假设 C:\Users\chen\Desktop\assetchain-pkg 为包所在目录
cd C:\Users\chen\Desktop\assetchain-pkg
# 3. 启动节点
assetchain -f assetchain.toml >log 2>&1

4. 在节点上创建钱包

  1. 使用 assetchain-cli 创建助记词
  2. 将助记词导入到钱包
  3. 如果需要生成公私钥
# 1. 启动命令行
# 2. 进入程序所在目录, 假设 C:\Users\chen\Desktop\assetchain-pkg 为包所在目录
cd C:\Users\chen\Desktop\assetchain-pkg
# 3. 生成助记词, -l 0 或 -l 1 可以调整 英文还是中文助记词
assetchain-cli seed generate -l 1
# 4. 将助记词导入到钱包, -p asset1314 是密码, 可以修改, -s 后面请使用上步骤生成的助记词
assetchain-cli seed save -p asset1314 -s "副 合 结 十 混 顺 巨 仓 浆 洛 抹 讼 碳 凭 晚"
# 5. 解锁钱包, 用密码解锁
assetchain-cli wallet unlock -p asset1314 -t 0
# 6. 生成公私钥,  -l 标签 ,  根据需要指定
assetchain-cli account create  -l  first
# 7. 锁住钱包
assetchain-cli wallet lock  

5. 如果参与共识, 向协同中心申请, 并开启共识.

  1. 在钱包中创建 label 为 mining的 公私钥 (必须为 mining)
  2. 向协同中心申请参与共识, 并提供 label 为 mining的 公私钥 对应的地址
  3. 协同中心同意, 并向 mining地址 发放共识积分
  4. 在机器上上开启共识
# 在钱包中创建 label 为 mining的 公私钥 (必须为 mining), 参考步骤4 
# 解锁钱包, 并创建label 为 mining的 公私钥
assetchain-cli wallet unlock -p asset1314 -t 0
assetchain-cli account create  -l  mining
# 查看地址, 下面可能显示实例, 1Vd9SWyoeULFJETNWKbXG683fM3CNvPAt 为地址
#                "addr": "1Vd9SWyoeULFJETNWKbXG683fM3CNvPAt"
#            },
#            "label": "mining"
assetchain-cli account list 

# 线下流程完成后
# 解锁钱包, 并创建label 为 mining的 公私钥
assetchain-cli wallet unlock -p asset1314 -t 0
# 开启共识, 使用 assetchain-cli account list 命令的mining 对应的地址
assetchain-cli pos33 consignee -a  地址参数


# 查看区块网络(直接相连的节点)
assetchain-cli  net peer
# 查看区块的高度
assetchain-cli  block last_header

liunx 环境

以 centos 为例

1. 同步系统时间

 yum -y install ntp 
 ntpdate 1.cn.pool.ntp.org 

2. 获得安装包: 自己编译和下载安装包

途径

  1. 在协同中心官网上下载 下载链接, 并将安装包放到指定机器
  2. 自己编译: 参考编译章节

3. 运行节点程序

  1. 解压安装包
  2. 配置数据存放目录, 配置文件为 assetchain.toml
# 默认配置的数据存放目录
dbPath = "/data/assetchaindatadir"
dbPath = "/data/assetchaindatadir/addrbook"
dbPath = "/data/assetchaindatadir/mavltree"

# 根据实际需要进行配置
# 如果改为和程序目录一致, 可以用相对目录, 如
dbPath = "datadir"
dbPath = "datadir/addrbook"
dbPath = "datadir/mavltree"
  1. 启动命令
# 1. 启动shell
# 2. 进入程序所在目录, 假设 /data/app/assetchain-pkg 为包所在目录
cd /data/app/assetchain-pkg
# 3. 启动节点
nohup ./assetchain -f assetchain.toml >log 2>&1 &

4. 在节点上创建钱包

  1. 使用 assetchain-cli 创建助记词
  2. 将助记词导入到钱包
  3. 如果需要生成公私钥
# 1. 启动命令行
# 2. 进入程序所在目录, 假设 /data/app/assetchain-pkg 为包所在目录
cd /data/app/assetchain-pkg
# 3. 生成助记词, -l 0 或 -l 1 可以调整 英文还是中文助记词
./assetchain-cli seed generate -l 1
# 4. 将助记词导入到钱包, -p asset1314 是密码, 可以修改, -s 后面请使用上步骤生成的助记词
./assetchain-cli seed save -p asset1314 -s "副 合 结 十 混 顺 巨 仓 浆 洛 抹 讼 碳 凭 晚"
# 5. 解锁钱包, 用密码解锁
./assetchain-cli wallet unlock -p asset1314 -t 0
# 6. 生成公私钥,  -l 标签 ,  根据需要指定
./assetchain-cli account create  -l  first
# 7. 锁住钱包
./assetchain-cli wallet lock  

5. 如果参与共识, 向协同中心申请, 并开启共识.

  1. 在钱包中创建 label 为 mining的 公私钥 (必须为 mining)
  2. 向协同中心申请参与共识, 并提供 label 为 mining的 公私钥 对应的地址
  3. 协同中心同意, 并向 mining地址 发放共识积分
  4. 在机器上上开启共识
# 在钱包中创建 label 为 mining的 公私钥 (必须为 mining), 参考步骤4 
# 解锁钱包, 并创建label 为 mining的 公私钥
./assetchain-cli wallet unlock -p asset1314 -t 0
./assetchain-cli account create  -l  mining
# 查看地址, 下面可能显示实例, 1Vd9SWyoeULFJETNWKbXG683fM3CNvPAt 为地址
#                "addr": "1Vd9SWyoeULFJETNWKbXG683fM3CNvPAt"
#            },
#            "label": "mining"
./assetchain-cli account list 

# 线下流程完成后
# 解锁钱包, 并创建label 为 mining的 公私钥
./assetchain-cli wallet unlock -p asset1314 -t 0
# 开启共识
assetchain-cli pos33 consignee -a  地址参数


# 查看区块网络(直接相连的节点)
assetchain-cli  net peer
# 查看区块的高度
assetchain-cli  block last_header

darwin 环境

运行需要 在"隐私安全" 中, 允许运行 非app store中下载软件 (anywhere 选项).

如果隐私和安全中没有anywhere 选项, 使用命令行: sudo spctl --master-disable

流程和 liunx 环境 一致.

编译打包

下载代码, 编译

make toolimport 
make build
make pkg
ls assetchain-pkg.tgz

交叉编译: linux-arm64, linux-amd64, darwin-amd64, windows-amd64

现在提供4种, 按需要选择.

其他相关操作

创建钱包

# centos
yum -y install ntp jq
bash ./wallet-init.sh

其他命令

  1. 查看节点同步的高度
# ./assetchain-cli  block last_header
{
    "version": 0,
    "parentHash": "0x3fd8f226547ef99a3cb9221b2786618b0922f5851d719c426cd7076f68bae22a",
    "txHash": "0xbcc277f5d2a995c939ae6e7d874bef61f98f76ef23c4f5ad3c024ebcc4baf634",
    "stateHash": "0x0844a901d7ae447d00a6e43ff1ffbcaacf440eea3acaca22dcec27cb18f348f1",
    "height": 2398,
    "blockTime": 1627896618,
    "txCount": 1,
    "hash": "0x4a0edfcb2dcae49220841fdc73deaa77ce8c89ba2c1c140c2c17ff3bc92fdf6d",
    "difficulty": 523239423
}

查看钱包

# ./assetchain-cli  account list
{
    "wallets": [
        {
            "acc": {
                "balance": "0.0000",
                "frozen": "0.0000",
                "addr": "1DKVsMo2ML2EVm6Gihzi7WdYRi4HwYjaN4"
            },
            "label": "airdropaddr"
        },
        {
            "acc": {
                "balance": "0.0000",
                "frozen": "0.0000",
                "addr": "1KxjQS7DddjMiuDNhadh3GHUJyo7h54Ywh"
            },
            "label": "mining"
        },
        {
            "acc": {
                "balance": "0.0000",
                "frozen": "0.0000",
                "addr": "1NxTz6J6ueoQNbFD6VbQFStane6hEjny2B"
            },
            "label": "dht node award"
        }
    ]
}

通过 ./assetchain-cli -h 可以看各种命令行的功能