DigiCurrency 板


LINE

最近架了 Electroneum (ETN) 的矿池,有监於算力还是不太够, 只好再写一些废话业配自己的矿池了,矿池网站 : https://omine.ga - 网志好读版 : https://goo.gl/dzQ5rP - 文内有些不太重要的连结就没有搬过来,有兴趣再去看就好 - PTT 网页版 : https://webptt.com/cn.aspx?n=bbs/DigiCurrency/M.1521619008.A.F72.html ------------------------------------------------------------------------------ Outline 架设一个「Functionable」的矿池其实很简单,到 GitHub 把别人写好的 Node.js Mining Pool 直接搬回家装一装马上就能上线了,但实际上运行起来还是有很多「眉眉 角角」的存在,不过这些细节未必是别人不会跟你讲,有时候反而是「别人觉得你应该 知道」。如果对於有相关经验的人来说这些可能都只是常识,对我来讲并不是,所以我 也会假设其他人都跟我一样因而写了这篇「图解矿池架设」(https://goo.gl/QPn5tg), 就是想让同样有兴趣架设矿池的新手能用比较熟悉的图形介面去操作。 目前各个加密货币占全网算力 10% 以上的矿池不在少数,我完全能理解大家喜欢在几分 钟就出块的矿池挖矿 (实际上我也是),但这种超大型矿池的存在一方面也就违反的去中 心化的初衷,完全的去中心化是不可能也不合理的,不过能有更多的矿池来维护整体网 路的节点也绝非坏事,所以才会想从粗浅的技术面向去讨论矿池架设,让有兴趣的人能 了解更多细节,也从完全 Newbie 的角度去谈谈「那些别人不会跟你讲的事」。 ------------------------------------------------------------------------------ 而这篇会以「CryptoNight」算法的矿池为例,代表的加密货币包括「门罗币」Monero (XMR)、Electroneum (ETN)、Bytecoin (BCN) ...等。这个算法的特性在於可以使用 CPU 挖矿、硬体门槛低、抗 ASIC 设计,可以说是对实现去中心化的作法比较具体而 且严格。 ------------------------------------------------------------------------------ Chapter 1 矿池选择 这边讲的并不是选择要挖哪个币,CryptoNight 算法的货币都可以通用同一个矿池架构 。实际上困难的部分都有个中翘楚先帮你做好了,光在 GitHub 上就能看到好几十个版 本的 CryptoNight 矿池,就我所了解所有的分支都是从 @zone117x 的 node-cryptonote-pool 分叉而来的,这个最原始的版本即使在现在还是非常轻便好用, 并不占据太多的伺服器资源。同类型我看到功能最完善的大概是 @SadBatman 的版本, 但很可惜它的有些功能是只设计给 Sumokoin 使用的,很多新部件都直接在 Javascript 内写死,并不会自动抓取 Config 档,为了把它套用在 ETN 上也是花了我不少脑细胞。 https://i.imgur.com/LaFIIrb.jpg 还有另一个赫赫有名的分支就是 @Snipa22 的版本,大家最熟悉的 SupportXMR 就是使 用这个版本架设而成的,但因为它多了注册登入的功能 (这部分会用到 MySQL Database ),对我来说管理上比较麻烦也消耗更多的资源而因此作罢,何况我自己也是非常讨厌注 册会员的人,更不要说去管理了。 目前看到最完整的矿池版本包括以下额外功能 : - TLS/SSL 连线 - 健康状态监控 - Email 通知 - 自订起付额 - 自订矿工名称 - 个别矿工图表 - 出块奖励预测 其实这些也都不是多瞎趴的功能,但当别人的矿池有你却没有那差距就出来了,都已经 没巨量算力吸引人了细节总要加减顾一下。 ------------------------------------------------------------------------------ Chapter 2 技术困难 矿池的运作逻辑其实很简单,单纯就是一架一个节点 (Node) 和随时可以转帐的钱包然 後让别人连线进来挖矿,每个人上缴的 Shares 都纪录在 Redis 资料库里,有出块就按 照比例大家一起分赃,所有数据再输出成 API 从网页介面呈现出来让矿工可以查看。我 原本想更有条理的去讨论每一个环节遇到的问题,但发现其实问题就是莫名其妙一大堆 根本没有条理,所以只会大概提几个代表。 Section 1 作业系统 在架设矿池的作业系统大概分成两种,分别是 Linux 和 Windows Server,Windows Server 我没用过但听说是微软出的整人道具所以不讨论。而且目前大部分网路上能 找到的资料也都是基於 Linux 系统或 Docker 的环境,所以一定是推荐用 Linux 啦 ,但要用哪个发行版呢?其实我觉得没什麽差,矿池并不是真的会让伺服器附载量超 大或完全不能接受断线的进程 (可能掉一两个 Shares),但如果你到网路上去找推荐 的作业系统多半得到的结果就轻量稳定选 Debian 或 CentOS、专业选 Red Hat、新潮 选 Ubuntu Server,当然这些都是很主观 (甚至很固着) 的评价,也像我说的矿池并 不是对伺服器环境要求很严苛的进程所以可以选择自己习惯的作业系统就好了。 https://i.imgur.com/OecECZX.jpg 那我选择 Ubuntu Server 主要是社群中新的资料比较完备 (虽然大部分是 Desktop 版本的但都通用),加上本身也比较熟悉 Ubuntu 的操作 (不过在 SSH 里其实也都是 一个样)。当然如果你是租用 GCP 或 AWS 等云端主机可能没这麽多选择,而且它们 提供的也都是已经虚拟化的机器所以也不适合再去用 ESXi 做虚拟化管理,那就只好 有什麽 Linux 就用什麽罗。 Section 2 TLS/SSL 矿工跟矿池的连线需要加密,矿池网站连线也需要加密,API 也要加密,基本上现在 什麽都需要 TLS/SSL,尤其是网站架设的部分,Google 搜寻引擎已经确认了会优先 收录 HTTPS 安全连线的网页,而大部分的挖矿程式也早已开始支援 TLS/SSL 的连线 。 https://i.imgur.com/fHXdHdD.png 这部分会先从矿池埠口 (Port) 的加密连线开始说起,在我一开始安装的矿池版本是 没有这个功能的所以我一直很鬼打墙的想要靠 Reverse Proxy 来达成,其实 Proxy 本身并没有问题但我一直把他想成熟悉的 HTTP Protocol,一直想靠 Nginx 做一个 反向代理来加密挖矿埠口,这个想法就跟想把一台汽车开在水上一样蠢,因为不同的 传输协定就像讲着不同的语言,就算成功传了过去对方的接口也是听不懂。所以最後 还是去找比较新版本的矿池来将功能移植过来再加上「Let's Encrypt」的 SSL 凭证 才完成的。 而网页伺服器大部分人应该都会想到使用 Apache、Nginx 加上凭证就可以成功升级 HTTPS,但我真的对写落落长的 Config 档很感冒,所以推荐一个会自动签发凭证、 设定档简短的的伺服器「Caddy」,它会将架设的网站直接预设为 SSL 连线 (自动帮 你用 Certbot) 而且 Config 档只要一行就可以正确运行了,大部分的功能也都算完 备 (Proxy、Gzip、Cache ...等),但需要注意的是伺服器端的 Cache 是需要额外装 插件的,如果懒得用可以用 Cache-Control 开启浏览器端快取的控制就好。 而网页介面会抓取 API 提供的数据加以图形化,所以 API 也得要用 SSL 传输才可 以,不然在以加密的连线中呼叫未加密的物件会被浏览器拒绝,作法其实是和矿池本 体一样的就不多赘述。 Section 3 网站优化 这部分其实并不困难,单纯是因为矿池为了让你可以随装即用写了非常多 Javascript 去抓取 Config 档,所以你只要改好 Config 档矿池网站几乎就可以直接上线了,以 及外连了不少 JS 脚本和 CSS 样式表,这两部分对 SEO (搜寻引擎最佳化) 都是不太 友善的做法,所以我们要做的事就是尽可能把不必要的 JS 删掉改成更容易检索的元 素,以及自己 Host 所有的外连档案并且把同类型的档案合并,我做的更绝一点就是 直接给它一个 <script> 或 <style> 然後全部塞进去,这样连外连都免了。 写程式要做 Code Beautify (排版),但网页要上线却刚好相反,最好的情况就是原始 码都挤在一起想看都看不懂,这样才能将网页大小降到最低、浏览器解析速度提升到 最快,所以要善用「JS Compressor」和「CSS Compressor」来将程式码压缩。 以及所有静态元素都要快取 (Cache),可以将「JS、CSS、IMG」全部整理在一个资料 夹内然後用你习惯的架站伺服器针对这个资料夹设定一个礼拜以上的浏览器快取。 https://i.imgur.com/pS83ZVN.jpg 可以藉由 Google PageSpeed Insights 来看看你的网站目前优化的如何,也可以根据 Google 所提供的建议来去修正网站,虽然并不是每一个项目都会直接影响到 SEO 但 绝对会反应在使用者的感官上,如果矿池网站载入速度慢人家可能就会觉得伺服器品 质不好所以不挖了 (虽然根本是两个不同的系统)。 ------------------------------------------------------------------------------ Chapter 3 算力告急 这大概是所有刚起步的矿池都会遇到的问题吧,我目前也是非常烦恼算力不够导致出块 频率低的情况,毕竟要好几天才能出一个区块对矿池来说真的是一点都不讨喜,那目前 唯一能做的就是尽量完善矿池的功能和一直到 PTT 业配自己的矿池。其实光从矿池选 择上就反应了去中心化是一件很难达成的事,大家都会想十分钟出一次区块、每天收一 次付款,而且经营已久的大矿池 (Nanopool、Mining Pool Hub) 又提供超多货币的矿 池,造成不少新兴小币的挖矿事业都被固定大户给包走了。 https://i.imgur.com/Y2R8eg6.jpg 出块频率低就有点像抽乐透,如果小於理论时间就出块那等於是大赚,像我一开始去 Nicehash 买算力来挖,因为运气好的关系最後的收益是花费的两倍,但一定就会有相反 的情况,可能挖了半天就是不出块,大家也分不到钱。因此在矿池中加了「预估下次出 块奖励」让大家可以看到下一次能拿到多少,也算是一种挖矿动力吧。 ------------------------------------------------------------------------------ Chapter 4 待解的问题 其实最初会想要架矿池是为了 Bypass Coinhive,我本身应该可以算是奈米户里面的重 度使用者了,在 Coinhive 的平均算力可以达到 2000 H/s 以上,所以就想架一个矿池 让所有 JS Miner 连线到自己的矿池,一来避掉了三成手续费,二来我想靠超低难度的 挖矿埠口让收益最大化,但现实往往没我想的顺利,我所说的其实我都做到了,但在超 低难度的情况下会很平凡的出 Shares 对矿池来说是不小的附载,如果改成浮动难度又 非常容易被 Timeout (实际上可能是对方已经跳出网页),种种的因素造成附载量最小 化和收益最大化无法兼顾,可能会需要一个更好的矿池机制来去针对网页挖矿优化,所 以这部分就暂时告吹了。 https://i.imgur.com/11xvRyv.jpg 也不得不说 Coinhive 收三成手续费其实有它的道理在,第一它是用 Hashes 计算收益 并不是 Shares,在浏览器挖矿时其实算力非常低 (Ryzen5 1600 只能跑 100H/s),要挖 到出 Share 其实是有点难度的,它直接以 Hashes*0.7 计价我个人认为是合理的,这部 分我也曾经写信去靠北过怎麽收这麽多,当时它回应我它们其实赚的没有大家想像的多 甚至有时会赔本经营,我现在开始有点相信它了,但那 Coinhive 到底赚什麽?由於 Monero 手续费非常高,大部分矿池也都有设定较高的起附门槛甚至得自行负担转帐费, Coinhive 也不例外,要达到 0.5 XMR 才能免手续费,我猜它就是赚那些永远领不出来 的 Dust,光用想的就觉得很可怕,因为要靠网页挖矿挖到 0.5 XMR 可不是简单事啊。 ------------------------------------------------------------------------------ P.S. 有关於矿池架设的资源在网路上其实一点都不少,只是多半都是英文的资料,我自己习 惯要查什麽也都是用英文来找,有遇到任何问题其实可以翻一翻 GitHub 的 Issues, 里面往往有不少前人也可能遇过同样的困难。 再讲一些废话,其实整个币圈的中文资源一点都不少,技术向的文章可以说是写的会让 人看到痛哭流涕那种,但不知道为何从 Google 搜寻非常多关键字最後跳出来的都是那 几个专 PO 拔辣新闻的媒体网站,好的文章反而都被埋没了,这点真的是满让人不解的 ,如果想找有内容的文章可以上 Medium 这个平台逛逛,有满多不错的资源。 - 最後还是广告一下自己的矿池 : 台湾 Electroneum 矿池 (https://omine.ga) --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.238.107.163
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DigiCurrency/M.1521619008.A.F72.html ※ 编辑: JHBC (36.238.107.163), 03/21/2018 15:58:01
1F:推 dsa452632002: 实作推 03/21 16:10
2F:推 leftc: 推 03/21 16:26
3F:→ leftc: 起始算力真的是新矿池最大痛点XD 03/21 16:31
市值前 50 的币真的不用想了,除非矿池自己就是矿场
4F:推 zhucc: 推 03/21 16:37
5F:推 a1u1usul3: 推,fb经营专页或社团感觉比较吸的到人 03/21 17:27
现在是都用自己 Blog 的专页来广告,不过有 Telegram 群 : https://t.me/etnpool_tw
6F:推 superjeff: good job 03/21 17:42
不过这篇文应该又可以再多加一项了,刚刚被人指控说人数造假, 在昨天为了让矿池无缝更新所以我直接开了另一个矿池但使用完 全一样的 Port 跟资料库,但造成 Redis 在人数的统计上等於被 多算了一次所以会卡不少人数在矿池介面 (实际上是没有影响), 而对方指控的依据是直接看网站的原始码然後说矿池的人数是写 死在 73 人,下面是它的证据 (?) https://i.imgur.com/yDCbwCa.jpg https://i.imgur.com/Rq6kW2r.jpg 如果自己架矿池应该也很清楚矿池网站是用 Javascript 抓取 API 的资料来呈现的才对,被这麽有创意的方式指控我也是满惊讶的... ※ 编辑: JHBC (36.238.107.163), 03/21/2018 17:46:32 ※ 编辑: JHBC (36.238.107.163), 03/21/2018 18:25:01
7F:→ iceyang: 哈哈哈哈哈 03/21 18:27
8F:→ JoyRex: 表示你的矿池对某族群是个威胁才会被无中生有的指控吧? 03/21 18:27
※ 编辑: JHBC (36.238.107.163), 03/21/2018 18:36:06
9F:推 jixian: 推 03/21 19:01
10F:推 leftc: 造假哪招XDD 所以同理原po还要一直去改区块高度 好忙XD 03/21 19:09
11F:→ robrob99: 事实上 很多奈米户想跳池也有难度 要跳也要等出奖励後 03/21 20:20
12F:推 evilplayer: 推分享~~ 03/21 22:11
13F:推 applesck: 已加入 03/21 22:32
14F:推 ryokoon: 同为矿池主,加油! 03/21 23:06
15F:推 Ashaku: 算力真的好惨 QQ 03/21 23:28
16F:→ yzfr6: CentOS 03/22 00:27
17F:推 kckckckc: 好精实! 03/22 15:56
18F:推 tcn1john: 推 03/22 17:10
19F:推 there801021: 纯推 03/23 13:16
20F:推 dk4xu3n: 我也是矿池经营者,很棒的文章加油罗! 03/26 23:01







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP