最近因实际需要架设了一个门罗矿池,这里把过程大致整理记录一下。
首先从 https://getmonero.org/downloads/ 下载门罗币软件,我这里下载的是linux64位下的纯命令行版本。解压后包括5个文件,如图:
第一个文件和第二个文件是区块数据导出导入用的,格式是raw格式,可以在官方网站下载raw区块数据文件用第二个文件导入。第三个文件是门罗的守护进程,是门罗币的核心实现,第四个文件是门罗币钱包程序,可以用来打开钱包进行转账等各种操作。
这里我们先运行monerod守护进程,它会开始同步区块,数据量有点大,先耐心等待其同步完成。如图:
接下来运行monero-wallet-cli钱包程序,申请一个自己的钱包。如图:
申请好后,这个时候你就有了自己的门罗节点和自己的钱包了。接下来就开始配置矿池程序了。打开下面的网址按里面的说明进行配置,网址:
https://github.com/clintar/cryptonote-xmr-pool
此程序是用nodejs开发的,需要用到redis,nodejs等,请自行配置。
第一步是下载程序,用下面的命令:
git clone https://github.com/clintar/cryptonote-xmr-pool.git pool
cd pool
npm update
第二步将下载的软件目录下的config_example.json文件,改名为config.json,这是矿池的配置文件,然后用文本编辑器打开它,根据实际的情况修改相应的参数(比如你接收挖矿奖励的钱包地址,可以填写前面你自己申请的钱包地址),这个很简单,各种参数文件里面都有详细的说明。
第三步在命令行下执行命令:node init.js (前提是你的nodejs,redis等环境已经安装好),效果如图:
到此,矿池已经可以正常工作了,虽然可以正常工作但是感觉还少了些什么,要是有个图形界面可以查看矿池的各种数据多好,这就是接下来要做的事。
第四步配置矿池图形前端,矿池前端程序是个简单的web网站,都是静态页面组成,所以你只需要一个HTTP服务器就成,比如nginx,apache等。矿池程序主目录下有个website-example子目录就是这个前端网站了。如图:
然后编辑这个网站的配置文件,路径是website_example/config.js,这个配置文件也很简单,项目主页上都有详细说明,根据实际IP/域名的使用情况配置好就可以了。用浏览器打开效果如图:
前端网站上列出的支持的挖矿软件,如图:
至此,一个基本的矿池就已经架设完毕了,国内外很多门罗矿池都是用的这套矿池软件架设而成。
最后简单说一下它们之间的关系,整体架构如下:
挖矿软件 <==> 矿池 <==> 门罗节点(Daemon,Wallet)
其中挖矿软件和矿池之间用的是Stratum协议,参考地址:
https://en.bitcoin.it/wiki/Stratum_mining_protocol
矿池和门罗节点之间用的是JSON-RPC
https://getmonero.org/resources/developer-guides/daemon-rpc.html
https://getmonero.org/resources/developer-guides/wallet-rpc.html