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命令使用
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配置文件 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 = ""; }; slparser流程图 ![bpo][1]ol_local_stats_db数据库结构 bpool_local_stats_db.txt DROP TABLE IF EXISTS `stats_pool_day`; CREATE TABLE `stats_pool_day` ( `day` int(11) NOT NULL, `share_accept` bigint(20) NOT NULL DEFAULT '0', `share_reject` bigint(20) NOT NULL DEFAULT '0', `reject_rate` double NOT NULL DEFAULT '0', `score` decimal(35,25) NOT NULL DEFAULT '0.0000000000000000000000000', `earn` bigint(20) NOT NULL DEFAULT '0', `lucky` double NOT NULL DEFAULT '0', `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, UNIQUE KEY `day` (`day`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; DROP TABLE IF EXISTS `stats_pool_hour`; CREATE TABLE `stats_pool_hour` ( `hour` int(11) NOT NULL, `share_accept` bigint(20) NOT NULL DEFAULT '0', `share_reject` bigint(20) NOT NULL DEFAULT '0', `reject_rate` double NOT NULL DEFAULT '0', `score` decimal(35,25) NOT NULL DEFAULT '0.0000000000000000000000000', `earn` bigint(20) NOT NULL DEFAULT '0', `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, UNIQUE KEY `hour` (`hour`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; DROP TABLE IF EXISTS `stats_users_day`; CREATE TABLE `stats_users_day` ( `puid` int(11) NOT NULL, `day` int(11) NOT NULL, `share_accept` bigint(20) NOT NULL DEFAULT '0', `share_reject` bigint(20) NOT NULL DEFAULT '0', `reject_rate` double NOT NULL DEFAULT '0', `score` decimal(35,25) NOT NULL DEFAULT '0.0000000000000000000000000', `earn` bigint(20) NOT NULL DEFAULT '0', `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, UNIQUE KEY `puid_day` (`puid`,`day`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; DROP TABLE IF EXISTS `stats_users_hour`; CREATE TABLE `stats_users_hour` ( `puid` int(11) NOT NULL, `hour` int(11) NOT NULL, `share_accept` bigint(20) NOT NULL DEFAULT '0', `share_reject` bigint(20) NOT NULL DEFAULT '0', `reject_rate` double NOT NULL DEFAULT '0', `score` decimal(35,25) NOT NULL DEFAULT '0.0000000000000000000000000', `earn` bigint(20) NOT NULL DEFAULT '0', `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, UNIQUE KEY `puid_hour` (`puid`,`hour`), KEY `hour` (`hour`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; DROP TABLE IF EXISTS `stats_workers_day`; CREATE TABLE `stats_workers_day` ( `puid` int(11) NOT NULL, `worker_id` bigint(20) NOT NULL, `day` int(11) NOT NULL, `share_accept` bigint(20) NOT NULL DEFAULT '0', `share_reject` bigint(20) NOT NULL DEFAULT '0', `reject_rate` double NOT NULL DEFAULT '0', `score` decimal(35,25) NOT NULL DEFAULT '0.0000000000000000000000000', `earn` bigint(20) NOT NULL DEFAULT '0', `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, UNIQUE KEY `puid_worker_id_day` (`puid`,`worker_id`,`day`), KEY `day` (`day`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; DROP TABLE IF EXISTS `stats_workers_hour`; CREATE TABLE `stats_workers_hour` ( `puid` int(11) NOT NULL, `worker_id` bigint(20) NOT NULL, `hour` int(11) NOT NULL, `share_accept` bigint(20) NOT NULL DEFAULT '0', `share_reject` bigint(20) NOT NULL DEFAULT '0', `reject_rate` double NOT NULL DEFAULT '0', `score` decimal(35,25) NOT NULL DEFAULT '0.0000000000000000000000000', `earn` bigint(20) NOT NULL DEFAULT '0', `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, UNIQUE KEY `puid_worker_id_hour` (`puid`,`worker_id`,`hour`), KEY `hour` (`hour`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 欢迎继续关注兄弟连区块链教程分享!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 兄弟连区块链教程以太坊源码分析core-genesis创世区块源码分析
- 兄弟连区块链教程eth源码解析区块数据结构
- 【以太坊源码解析】-区块数据结构
- 兄弟连区块链入门教程以太坊源码分析hashimoto源码分析(一)
- 兄弟连区块链教程以太坊源码分析chain-indexer区块链索引二
- 以太坊源码分析:fetcher模块和区块传播
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
DOM Scripting
Jeremy Keith / friendsofED / 2010-12 / GBP 27.50
There are three main technologies married together to create usable, standards-compliant web designs: XHTML for data structure, Cascading Style Sheets for styling your data, and JavaScript for adding ......一起来看看 《DOM Scripting》 这本书的介绍吧!