主页 > imtoken官方app > 如何在 Linux 上手动安装 BTCPayServer 并设置比特币 BTC 和 Light

如何在 Linux 上手动安装 BTCPayServer 并设置比特币 BTC 和 Light

imtoken官方app 2023-09-10 05:09:12

BitPay 是最大的比特币支付提供商之一,长期以来一直受到比特币爱好者的困扰。社区呼吁抵制,开发者 Nicolas Dorier 巧妙地利用了这一点。

Nicolas 创建了一个开源且自托管的 BitPay 兼容支付网关,称为 BTCPayServer,受到社区的好评。虽然有很多关于如何使用 Docker 和其他方法进行设置的指南,但我喜欢控制我在服务器上安装的内容比特币软件下载安装,同时也了解它是如何工作的。

如果由于某种原因您更喜欢手动安装 BTCPayServer,我已经编写了有关如何执行此操作的分步指南。

本教程是为 Ubuntu 18.04 编写的,但也适用于旧版本和其他基于 Debian 的发行版。在开始之前,请确保运行比特币核心和闪电网络节点。

安装依赖

要运行 BTCPayServer,您需要安装 .NET Core SDK、NBXplorer 和 PostgreSQL。

安装 .NET Core SDK

转到下载文件夹或用于存储临时文件的任何其他文件夹:

1

p>

cd ~/Downloads

并下载 .NET Core SDK 所需的 Microsoft 包:

1
2
3
4

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget -q https://packages.microsoft.com/config/ubuntu/$(lsb_release -sr)/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list

更新包缓存并安装 .NET Core:

1
2
3

sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.1

安装 NBXplorer

我们需要安装 NBXplorer 来跟踪传入的链上交易。

如果您还没有创建源文件夹并打开它:

1
2

mkdir ~/source
cd ~/source

克隆存储库并构建代码:

1
2
3

git clone https://github.com/dgarage/NBXplorer
cd NBXplorer
./build.sh

创建数据文件夹:

1
2

mkdir -p ~/.nbxplorer/Main
cd ~/.nbxplorer/Main

比特币软件下载安装

新的个人资料:

1

touch settings.config

使用您选择的编辑器打开文件并添加以下行:

1
2
3

btc.rpc.auth=:
port=24445
mainnet=1

确保使用您的 bitcoind rpc 登录凭据。您可以使用以下命令找到它们:

1

cat ~/.bitcoin/bitcoin.conf | grep rpc

测试所有设置是否正确:

1

/usr/bin/dotnet ~/source/NBXplorer/NBXplorer/bin/Release/netcoreapp2.1/NBXplorer.dll -c ~/.nbxplorer/Main/settings.config

如果是这样,键入 ctrl+c 以终止进程并下载 Systemd 服务:

1
2

cd /usr/lib/systemd/system
sudo wget https://gist.githubusercontent.com/mariodian/de873b969e70eca4d0a7673efd697d0a/raw/acfc70c5694cd53d8a3df7ff54a35ff2caba7532/nbxplorer.service

根据您的环境编辑文件。

启用服务,启动它并检查状态:

1
2
3

sudo systemctl enable nbxplorer.service
sudo service nbxplorer start
sudo service nbxplorer status

如果您没有,如果您看到错误,请转到下一步。

安装 PostgreSQL

我无法使用 MySQL/MariaDB 设置 BTCPayServer,所以我不得不使用 PostgreSQL。

先安装并以新创建的系统用户身份打开shell提示符:

1
2

sudo apt install postgresql postgresql-contrib
sudo -i -u postgres

创建一个新的数据库用户:

1

比特币软件下载安装

createuser --pwprompt --interactive

输入以下内容(您可以将 satoshi 更改为您喜欢的任何用户名):

创建一个新的数据库:

1

createdb -O satoshi btcpayserver

如果您没有看到错误,请退出 shell:

1

exit

p>

安装 BTCPayServer

克隆存储库并构建代码:

1
2
3
4

cd ~/source
git clone https://github.com/btcpayserver/btcpayserver.git
cd btcpayserver
./build.sh

创建数据文件夹:

1
2

mkdir -p ~/.btcpayserver/Main
cd ~/.btcpayserver/Main

一个新的配置文件:

1

touch settings.config

获取 LND 的证书指纹并将其粘贴到下面的配置文件中。

1

openssl x509 -noout -fingerprint -sha256 -inform pem -in ~/.lnd/tls.cert

打开 settings.config 并添加以下行:

1
2
3
4
5
6
7

network=mainnet
port=23001
bind=0.0.0.0
chains=btc
BTC.explorer.url=http://127.0.0.1:24445
BTC.lightning=type=lnd-rest;server=https://127.0.0.1:8080/;macaroonfilepath=~/.lnd/data/chain/bitcoin/mainnet/admin.macaroon;certthumbprint=
postgres=User ID=;Password=;Host=localhost;Port=5432;Database=btcpayserver;

根据您的设置更改突出显示的变量变量。

比特币软件下载安装

检查一切是否正常。

1

/usr/bin/dotnet run -p ~i/source/btcpayserver/BTCPayServer/BTCPayServer.csproj -c ~/.btcpayserver/Main/settings.config --network=mainnet

如果是这样,键入 ctrl+c 以终止进程并下载 Systemd 服务:

1
2

cd /usr/lib/systemd/system
sudo wget https://gist.githubusercontent.com/mariodian/07bb13da314e2a321784b380f543651a/raw/6cef554d9e8311e683a017d5e63a07822dee7642/btcpayserver.service

根据您的环境编辑文件。

启用服务,启动它并检查它是否有效:

1
2
3

sudo systemctl enable btcpayserver.service
sudo service btcpayserver start
sudo service btcpayserver status

恭喜,您已经通过了最难的部分!

允许传入连接(可选)

如果要远程运行服务器,必须打开23001端口。

首先,进入路由器设置,找到虚拟服务器或端口转发部分,并在上述端口上设置端口转发。

然后回到你的linux机器,用iptables打开端口:

1

sudo iptables -A INPUT -p tcp --dport 23001 -j ACCEPT

如果您使用的是 iptables-save,还请运行以下命令:

1

sudo iptables-save > /etc/iptables/rules.v4

您现在应该能够将一台计算机连接到您的服务器。

设置 BTCPayServer

转到您的 BTCPayServer 管理员,注册一个新的管理员帐户并登录。

现在,转到商店并点击创建新商店。完成后,转到商店设置并向下滚动到派生方案。

点击BTC下的Edit,然后在电脑或手机上打开一个支持BIP32的钱包。

出于本教程的目的,我将使用 Electrum。

比特币软件下载安装

建议您创建一个新钱包而不是使用旧钱包,这样您就不必费心重新扫描地址上的余额。

完成后,点击钱包->信息,复制主公钥,粘贴回BTCPayServer管理,勾选启用,保存。

接下来,向下滚动到 Lightning 节点(实验)并点击修改。

应该设置您的连接字符串,但如果没有,请粘贴以下内容:

1

p>

type=lnd-rest;server=https://127.0.0.1:8080/;macaroonfilepath=/home/satoshi/.lnd/data/chain/bitcoin/mainnet/admin.macaroon;certthumbprint=

请记得添加您之前获得的 LND 证书的指纹,并将主目录更改为您自己的。

点击测试连接,如果一切正常,勾选启用并点击提交。

在这种情况下,服务器运行在您要通过域名访问的单独计算机上,进入服务器设置->维护,并在更改域名中添加您的名称(当然,您必须购买它)。

您还必须根据您的设置将 CNAME 或 A DNS 记录添加到您的域提供商。抱歉我帮不了你,提供者太多了。

您现在应该可以使用新域名访问 BTCPayServer 管理,如下所示::23001。

要创建 POS 终端,请转到应用程序 -> 创建新应用程序并填写简短表格。然后比特币软件下载安装,您将进入应用设置,您可以在其中通过模板更改项目列表。

您还可以在您的网站上添加一个简单的付款按钮,您可以在商店 -> 设置 -> 付款按钮中进行配置,或在商店 -> 发票 -> 创建新发票中手动创建发票。然后,您可以发送给客户端。

当然,支付网关的前端设计是完全可定制的,因此您可以设置自己的标志和颜色。

设置 SSL 加密证书(可选)

首先让我们安装将用作反向代理的 Apache 2。

1

sudo apt-get install apache2

启用所需模块:

1
2
3
4
5
6
7
8
9

比特币软件下载安装

p>

sudo a2enmod rewrite
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_ajp
sudo a2enmod deflate
sudo a2enmod headers
sudo a2enmod proxy_balancer
sudo a2enmod proxy_connect
sudo a2enmod proxy_html

重启服务器:

1

sudo systemctl restart apache2

为您的域名安装 Let's Encrypt 证书。但您可以使用任何其他证书颁发机构。

将 /etc/apache2/sites-enabled/000-default.conf 的内容替换为以下内容:

1
2
3
4
5
6
7
8
9


ServerAdmin webmaster@localhost
ServerName btcpay.freedomnode.com
RewriteEngine on
RewriteCond %{SERVER_NAME} =btcpay.freedomnode.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

根据您的需要更改服务器名称。

然后,将 /etc/apache2/sites-enabled/000-default-le-ssl.conf 的内容替换为以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14



ServerAdmin webmaster@localhost
ServerName btcpay.freedomnode.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyPass "/" "http://127.0.0.1:23001/"
ProxyPassReverse / "http://127.0.0.1:23001/"
ProxyPreserveHost On
SSLCertificateFile /etc/letsencrypt/live/btcpay.freedomnode.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/btcpay.freedomnode.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf


再次,编辑 ServerName 并确保 SSLCertificateFile 和 SSLCertificateKeyFile 指向正确的文件。

重新加载服务器:

1

sudo systemctl reload apache2

现在回到 ~/.btcpayserver/Main/settings.config 并添加:

1

externalurl=HTTPS://btcpay.freedomnode.com

再次将服务器名称更改为您自己的名称。

您还可以从配置中删除 bind=0.0.0.0,因为从现在开始远程连接将通过 Apache 进行代理。

重启 BTCPayServer:

1

sudo service btcpayserver restart

打开浏览器检查新安装的SSL证书是否正常工作。

================================================ ==========================

分享一些区块链相关问题,如比特币、以太坊、EOS、Fabric等。交互式在线编程实战教程:

汇智网原创翻译,转载请注明出处。这是在 Linux 上手动安装 BTCPayServer 并设置比特币 BTC 和闪电支付网关的方法