quarkchain 高级挖矿

96
小幻兽
2018.12.03 21:20* 字数 362

一、介绍

如果一个局域网有多台物理机,并不需要每台都安装quarkchain进行同步。

二、External_miner解析

External_miner.py 是挖矿入口,ExternalMiner类的get_work函数,其实是执行了RPC(远程过程调用),具体如下:

work = get_work_rpc(shard_id, host=cluster_host)

success = submit_work_rpc(shard_id, res, host=cluster_host)

从这两个函数可以看出,挖矿的具体任务是通过RPC向cluster_host询问,也就是集群的master节点。成功之后也是通过RPC向master节点进行报告。

从External_miner可以看出,如果我们在一个局域网内有多个节点,并不需要每个节点都运行一个完成的cluster, 只需要运行有一个cluster,其余作为矿工节点,向这个节点询问任务。

三、具体过程

由于目前测试网络只有8个分片,我们可以在一个节点中运行一个cluster,也可以进行分布式部署,具体可以看TPS比赛时的配置。

配置各个节点的docker跨主机访问,可以使用--network host,高级设置查看其他教程。

一个cluster启动后,master的IP地址为IP_master, 可以在其他节点通过运行

pypy3 quarkchain/tools/external_miner.py --config /code/pyquarkchain/testnet/2/cluster_config_template.json --worker 1 --shard<shard ID> --host IP_master


注:以上为原理分析,暂未实践。

quarkchain mining
Web note ad 1