查看: 61|回复: 0

[互联网技术] 兄弟连区块链教程btcpool矿池源码分析slparse

发表于 2018-10-26 11:57:49
  兄弟连区块链教程btcpool矿池源码分析slparser2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。
# btcpool矿池-slparser(share log parser)模块解析
## 核心机制总结
* 支持三种功能:
  * 指定Date和UID,将打印指定日期指定用户的share信息到stdout
    * UID=0时,将打印指定日期所有用户的share信息
  * 指定Date但未指定UID,读取指定日期sharelog,统计数据并写入数据库
    * 按Worker、user、pool三个维度统计:Accept1h、Accept1d、score1h、score1d、Reject1h、Reject1d
    * 数据库仅保留最近3个月统计数据
  * 如果Date和UID均未指定,将监听文件变化,读取share并统计数据,每15秒写入数据库
    * 同时启动Httpd服务,开放ServerStatus和WorkerStatus
## slparser命令使用
```shell
slparser -c slparser.cfg -l log_dir
slparser -c slparser.cfg -l log_dir2 -d 20160830
slparser -c slparser.cfg -l log_dir3 -d 20160830 -u puid
#-c指定slparser配置文件
#-l指定日志目录
#-d指定日期
#-u指定PUID(即userId),userId为0时dump all, >0时仅输出指定userId的sharelog
```
## slparser.cfg配置文件
```shell
slparserhttpd = {
#指定IP和端口
ip = "0.0.0.0";
port = 8081;
#每间隔15s写库
flush_db_interval = 15;
};
#指定sharelog文件路径
sharelog = {
data_dir = "/data/sharelog";
};
#数据库配置,表为table.stats_xxxx
pooldb = {
host = "";
port = 3306;
username = "dbusername";
password = "dbpassword";
dbname = "";
};
```

欢迎继续关注兄弟连区块链教程分享:http://bbs.itxdl.cn/read-htm-tid-242409-page-1.html



回复

使用道具 举报