mirobit / bitcoin-node-manager
比特币节点的轻量级仪表板和控制系统
1.4.0
2023-07-27 14:28 UTC
Requires
- php: ^7.0
- ext-curl: *
README
Bitcoin Node Manager (BNM) 是比特币节点的轻量级仪表板和控制系统。
如果您运行 Electrumx 服务器,请查看 ElextrumX 仪表板。
功能
- 丰富的仪表板,包含有关节点、连接对等方和区块链的一般信息
- 创建规则以管理您的对等方
- 禁止、断开或记录浪费资源、速度慢或运行替代客户端(例如 BCash)的对等方
- 设置全局事件以触发规则的执行,手动运行规则或设置 cron 作业
- 包括国家、ISP、客户端、流量使用、支持的服务等在内的所有连接对等方的概述
- 禁止或断开对等方
- 管理网站托管商列表以检测对等方是否托管或私有
- 管理被禁止的对等方
- 解除特定对等方的禁止
- 导出/导入您的禁止列表
- 生成 iptables 规则(在操作系统级别拒绝被禁止的对等方)
- 最后接收到的区块信息
- 最后接收到的分叉(孤立区块/替代链)信息
- 内存池统计信息
- 钱包概述(无功能,仅信息)
要求
- Bitcoin Core 0.19.0.1+
- Web 服务器(Apache、Nginx、PHP 服务器)
- PHP 7.3.0+
- curl 扩展
- Docker(Web 服务器和 PHP 的替代方案)
安装
- 克隆存储库。
- 确保
bitcoind
(-daemon
)正在运行。如果您使用bitcoin-qt
,请将server=1
设置在bitcoin.conf
文件中。 - 复制
src/Config.sample.php
并删除.sample
。打开src/Config.php
并输入您的 Bitcoin Core RPC 凭证,并设置 BNM 密码。
手动设置
- 确保 BNM 文件夹位于您的 Web 服务器文件夹中(例如
/var/www/html/
)。如果服务器公开可访问,我建议将 BNM 文件夹重命名为独特名称。虽然 BNM 受密码保护并且访问可以限制为特定 IP,但仍然可能存在安全漏洞和错误。 - 请确保服务器(例如
www-data
)有权访问(读取和写入)数据文件夹(git 默认更改所有权)。 - 在浏览器中打开文件夹的 URL 并使用在
src/Config.php
中选择的密码登录。
Docker
BNM 文件夹作为卷挂载在 Docker 中。这样,您可以在任何时间编辑 src/Config.php
并更新 BNM(git pull
),而无需连接到容器。
- 将
src/Config.php
中的 RPC IP 更改为 docker 网络接口 IP。 - 在 BNM 文件夹中运行以下命令之一:
docker-compose up -d
或docker run -d -p 8000:80 --name bnm -v ${PWD}:/var/www/html php:7.4-apache
。 - 将以下内容添加到您的
bitcoin.conf
rpcbind=127.0.0.1
rpcbind=172.17.0.1
rpcallowip=0.0.0.0/0
- BNM 现在可以通过 http://server-ip:8000 访问。
安全
- 所有页面和控制功能仅供登录用户访问。唯一的例外是如果您使用规则 cron 作业功能。但需要基于密码的令牌,并且该功能只能应用规则。
- 默认情况下,对 BNM 的访问限制在 localhost。这可以扩展到特定的 IP 或禁用。如果禁用,请确保保护 BNM 文件夹(例如,.htaccess 或重命名为一个攻击者难以猜到的名称)。攻击者可能会“猜”到您的密码,因为没有内置的暴力破解保护。
data
文件夹包含您的规则、规则日志以及关于您的对等方的地理位置信息。如果您的 Web 服务器是公开可访问的,请确保保护(例如,chmod -R 700 data
)对等方信息。之前提到的 IP 保护在这里不起作用。如果您使用Apache
,那就没问题了,因为文件夹是用.htaccess
保护的(请确保在您的 Apache 配置文件中设置了AllowOverride All
)。
路线图
- 改进项目结构
- 改进面向对象编程(OOP)
- 改进错误处理
- 导入规则功能
- 更多帮助图标
- 显示扩展的对等方/区块信息(弹出窗口)