mirobit/bitcoin-node-manager

比特币节点的轻量级仪表板和控制系统

安装: 1

依赖项: 0

建议者: 0

安全: 0

星标: 123

关注者: 10

分支: 62

开放问题: 12

语言:CSS

类型:项目

1.4.0 2023-07-27 14:28 UTC

This package is auto-updated.

Last update: 2024-09-13 13:35:57 UTC


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 的替代方案)

安装

  1. 克隆存储库。
  2. 确保 bitcoind-daemon)正在运行。如果您使用 bitcoin-qt,请将 server=1 设置在 bitcoin.conf 文件中。
  3. 复制 src/Config.sample.php 并删除 .sample。打开 src/Config.php 并输入您的 Bitcoin Core RPC 凭证,并设置 BNM 密码。

手动设置

  1. 确保 BNM 文件夹位于您的 Web 服务器文件夹中(例如 /var/www/html/)。如果服务器公开可访问,我建议将 BNM 文件夹重命名为独特名称。虽然 BNM 受密码保护并且访问可以限制为特定 IP,但仍然可能存在安全漏洞和错误。
  2. 请确保服务器(例如 www-data)有权访问(读取和写入)数据文件夹(git 默认更改所有权)。
  3. 在浏览器中打开文件夹的 URL 并使用在 src/Config.php 中选择的密码登录。

Docker

BNM 文件夹作为卷挂载在 Docker 中。这样,您可以在任何时间编辑 src/Config.php 并更新 BNM(git pull),而无需连接到容器。

  1. src/Config.php 中的 RPC IP 更改为 docker 网络接口 IP。
  2. 在 BNM 文件夹中运行以下命令之一:docker-compose up -ddocker run -d -p 8000:80 --name bnm -v ${PWD}:/var/www/html php:7.4-apache
  3. 将以下内容添加到您的 bitcoin.conf
rpcbind=127.0.0.1 
rpcbind=172.17.0.1 
rpcallowip=0.0.0.0/0
  1. BNM 现在可以通过 http://server-ip:8000 访问。

安全

  • 所有页面和控制功能仅供登录用户访问。唯一的例外是如果您使用规则 cron 作业功能。但需要基于密码的令牌,并且该功能只能应用规则。
  • 默认情况下,对 BNM 的访问限制在 localhost。这可以扩展到特定的 IP 或禁用。如果禁用,请确保保护 BNM 文件夹(例如,.htaccess 或重命名为一个攻击者难以猜到的名称)。攻击者可能会“猜”到您的密码,因为没有内置的暴力破解保护。
  • data 文件夹包含您的规则、规则日志以及关于您的对等方的地理位置信息。如果您的 Web 服务器是公开可访问的,请确保保护(例如,chmod -R 700 data)对等方信息。之前提到的 IP 保护在这里不起作用。如果您使用 Apache,那就没问题了,因为文件夹是用 .htaccess 保护的(请确保在您的 Apache 配置文件中设置了 AllowOverride All)。

路线图

  • 改进项目结构
  • 改进面向对象编程(OOP)
  • 改进错误处理
  • 导入规则功能
  • 更多帮助图标
  • 显示扩展的对等方/区块信息(弹出窗口)