區塊鏈教程btcpool礦池源碼分析slparser

來源:互聯網
上載者:User

標籤:礦池   檔案   uid   parser   href   -o   源碼   utf8   int   

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_dirslparser -c slparser.cfg -l log_dir2 -d 20160830slparser -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_xxxxpooldb = {host = "";port = 3306;username = "dbusername";password = "dbpassword";dbname = "";};
slparser流程圖

bpool_local_stats_db資料庫結構

bpool_local_stats_db.txt

``c++<br/>DROP TABLE IF EXISTSstats_pool_day;<br/>CREATE TABLEstats_pool_day(<br/>dayint(11) NOT NULL,<br/>share_acceptbigint(20) NOT NULL DEFAULT ‘0‘,<br/>share_rejectbigint(20) NOT NULL DEFAULT ‘0‘,<br/>reject_ratedouble NOT NULL DEFAULT ‘0‘,<br/>scoredecimal(35,25) NOT NULL DEFAULT ‘0.0000000000000000000000000‘,<br/>earnbigint(20) NOT NULL DEFAULT ‘0‘,<br/>luckydouble NOT NULL DEFAULT ‘0‘,<br/>created_attimestamp NULL DEFAULT NULL,<br/>updated_attimestamp NULL DEFAULT NULL,<br/>UNIQUE KEYday(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;

區塊鏈教程btcpool礦池源碼分析slparser

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.