当前位置: 首页 > Linux

Linux安装BTCPayServer设置比特币和闪电支付网关

时间:2023-04-06 11:42:02 Linux

最大的比特币支付提供商之一BitPay长期以来一直受到比特币支持者的困扰。社区呼吁抵制,开发商NicolasDorier巧妙地利用了这一点。Nicolas创建了一个开源和自托管的BitPay兼容支付网关,称为BTCPayServer,受到了社区的好评。虽然有很多关于如何使用Docker和其他方法进行设置的指南,但我喜欢控制我在服务器上安装的内容,同时也了解它是如何工作的。如果出于某种原因您更喜欢手动安装BTCPayServer,我将编写有关如何执行此操作的分步指南。本教程是为Ubuntu18.04编写的,但它也适用于旧版本和其他基于Debian的发行版。在开始之前,请确保您正在运行比特币核心和闪电网络节点。安装依赖项要运行BTCPayServer,您需要安装.NETCoreSDK、NBXplorer和PostgreSQL。安装.NETCoreSDK进入Downloads文件夹或任何其他存放临时文件的文件夹:cd~/Downloads并下载.NETCoreSDK所需的Microsoft包:wget-qO-https://packages.microsoft.com/键/微软.asc|gpg--dearmor>microsoft.asc.gpgsudomvmicrosoft.asc.gpg/etc/apt/trusted.gpg.d/wget-qhttps://packages.microsoft.com/config/ubuntu/$(lsb_release-sr)/prod.listsudomvprod.list/etc/apt/sources.list.d/microsoft-prod.list更新包缓存并安装.NETCore:sudoapt-getinstallapt-transport-httpssudoapt-getupdatesudoapt-getinstalldotnet-sdk-2.1安装NBXplorer我们需要安装NBXplorer以跟踪传入的链上交易。如果尚未创建源文件夹并打开它:mkdir~/sourcecd~/source克隆存储库并构建代码:gitclonehttps://github.com/dgarage/NBXplorercdNBXplorer./build.sh创建数据文件夹:mkdir-p~/.nbxplorer/Maincd~/.nbxplorer/Main新配置文件:touchsettings.config使用您选择的编辑器打开文件并添加以下行:btc.rpc.auth=:port=24445mainnet=1确保使用您的bitcoindrpc登录凭据。你可以通过以下方式找到它们:cat~/.bitcoin/bitcoin.conf|greprpc测试是否一切设置正确:/usr/bin/dotnet~/source/NBXplorer/NBXplorer/bin/Release/netcoreapp2.1/NBXplorer.dll-c~/.nbxplorer/Main/settings.config如果是这样,输入ctrl+c终止进程并下载Systemd服务:cd/usr/lib/systemd/systemsudowgethttps://gist.githubusercontent.com/mariodian/de873b969e70eca4d0a7673efd697d0a/raw/acfc70c5694cd53d8a3df7ff54a35ff2caba7532/nbxplorer.service根据你的文件编辑环境。要启用该服务,请启动它并检查状态:sudosystemctlenablenbxplorer.servicesudoservicenbxplorerstartsudoservicenbxplorerstatus如果没有发现错误,请转到下一步。安装PostgreSQL我无法使用MySQL/MariaDB设置BTCPayServer,所以我不得不使用PostgreSQL。首先安装它,以新创建的系统用户打开一个shell提示符:sudoaptinstallpostgresqlpostgresql-contribsudo-i-upostgres创建一个新的数据库用户:createuser--pwprompt--interactive输入以下内容(你可以把satoshi改成到你喜欢的任何用户名):创建一个新数据库:createdb-Osatoshibtcpayserver如果你没有看到错误退出shell:exitinstallBTCPayServer克隆存储库并构建代码:cd~/sourcegitclonehttps://github。com/btcpayserver/btcpayserver.gitcdbtcpayserver./build.sh创建数据文件夹:mkdir-p~/.btcpayserver/Maincd~/.btcpayserver/Main新建配置文件:touchsettings.config获取LND的证书指纹并粘贴它进入下面的配置文件。opensslx509-noout-fingerprint-sha256-informpem-in~/.lnd/tls.cert打开settings.config并添加以下行:network=mainnetport=23001bind=0.0.0.0chains=btcBTC.explorer.url=http://127.0.0.1:24445BTC.lightning=type=lnd-rest;server=https://127.0.0.1:8080/;macaroonfilepath=~/.lnd/data/chain/bitcoin/mainnet/admin.macaroon;certthumbprint=<指纹>postgres=UserID=<你的数据库用户>;Password=<你的数据库密码>;Host=localhost;Port=5432;Database=btcpayserver;根据您的设置更改突出显示的变量。检查一切正常。/usr/bin/dotnetrun-p~i/source/btcpayserver/BTCPayServer/BTCPayServer.csproj-c~/.btcpayserver/Main/settings.config--network=mainnet如果是,输入ctrl+c终止进程,下载Systemd服务:cd/usr/lib/systemd/systemsudowgethttps://gist.githubusercontent.com/mariodian/07bb13da314e2a321784b380f543651a/raw/6cef554d9e8311e683a017d5e63a07822dee7642/btcpayserver.service根据您的环境编辑文件。要启用该服务,请启动它并检查它是否正在运行:sudosystemctlenablebtcpayserver.servicesudoservicebtcpayserverstartsudoservicebtcpayserverstatus恭喜,您刚刚完成了最困难的部分!允许传入连接(可选)如果您想远程运行服务器,则必须打开端口23001。首先,转到路由器设置并找到虚拟服务器或端口转发端口转发部分,并在上述端口上设置端口转发。然后返回到您的Linux机器并使用iptables打开端口:sudoiptables-AINPUT-ptcp--dport23001-jACCEPT如果您使用iptables-save还运行以下命令:sudoiptables-save>/etc/iptables/规则。v4您现在应该能够从另一台计算机连接到您的服务器。设置BTCPayServer转到您的BTCPayServer管理,注册一个新的管理员帐户并登录。现在,转到Stores并单击Createanewstore。完成后,转到存储设置并向下滚动到派生方案。点击BTC下的编辑,在电脑或手机上打开一个支持BIP32的钱包。出于本教程的目的,我将使用Electrum。建议您创建一个新钱包而不是使用旧钱包,这样您就不必费心重新扫描地址上的余额。完成后点击Wallet->Information,复制主公钥,粘贴回BTCPayServer管理,勾选Enabled,保存。接下来,向下滚动到Lightning节点(实验性)并单击修改。您的连接字符串应该已设置,但如果没有,请粘贴以下内容:type=lnd-rest;server=https://127.0.0.1:8080/;macaroonfilepath=/home/satoshi/.lnd/data/chain/bitcoin/mainnet/admin.macaroon;certthumbprint=请记住添加您之前获得的LND证书指纹并将主目录更改为您自己的。点击测试连接,如果一切正常,勾选启用并点击提交。在这种情况下,服务器运行在您要通过域名访问的单独计算机上,转到服务器设置->维护,然后在更改域名中添加您的名字(当然,您必须购买)。您还必须根据您的设置向您的域提供商添加CNAME或ADNS记录。对不起,我帮不了你,供应商太多了。您现在应该能够使用您的新域名访问BTCPayServer管理,如下所示:http://domain.ltd:23001。要创建POS终端,请转至应用程序->创建新应用程序并填写简短表格。然后您将转到应用程序设置,您可以在其中通过模板更改项目列表。您还可以在您的网站上添加一个简单的付款按钮,您可以在Stores->Settings->PayButton中对其进行配置,或者在Stores->Invoices->Createanewinvoice中手动创建发票。然后,您可以发送给客户端。当然,支付网关的前端设计是完全可定制的,所以你可以设置自己的标志和颜色。设置SSL加密证书(可选)首先让我们安装将用作反向代理的Apache2。sudoapt-getinstallapache2启用所需的模块:sudoa2enmodrewritesudoa2enmodproxysudoa2enmodproxy_httpssudoa2enmodproxy_ajpsudoa2enmoddeflatesudoa2enmodheaderssudoa2enmodproxy_balancerssudoa2enmodproxy_connectsudoa2enmodproxy_html重新启动服务器:sudosystemctl为您的加密域安装重新启动apache证书.但您可以使用任何其他证书颁发机构。将/etc/apache2/sites-enabled/000-default.conf的内容替换为以下内容:ServerAdminwebmaster@localhostServerNamebtcpay.freedomnode.comRewriteEngineonRewriteCond%{SERVER_NAME}=btcpay.freedomnode。comRewriteRule^https://%{SERVER_NAME}%{REQUEST_URI}[END,NE,R=permanent]ErrorLog${APACHE_LOG_DIR}/error.logCustomLog${APACHE_LOG_DIR}/access.log合并根据你的需要更改服务器名称。然后,将/etc/apache2/sites-enabled/000-default-le-ssl.conf的内容替换为以下内容:ServerAdminwebmaster@localhostServerNamebtcpay.freedomnode.comErrorLog${APACHE_LOG_DIR}/error.logCustomLog${APACHE_LOG_DIR}/access.log合并ProxyPass"/""http://127.0.0.1:23001/"ProxyPassReverse/"http://127.0.0.1:23001/"ProxyPreserveHost在SSLCertificateFile/etc/letsencrypt/live/btcpay.freedomnode.com/fullchain.pemSSLCertificateKeyFile/etc/letsencrypt/live/btcpay.freedomnode.com/privkey.pem包括/etc/letsencrypt/options-ssl-apache.conf同样,编辑ServerName并确保SSLCertificateFile和SSLCertificateKeyFile指向正确的文件。重新加载服务器:sudosystemctlreloadapache2现在回到~/.btcpayserver/Main/settings.config并添加:externalurl=HTTPS://btcpay.freedomnode.com再次将服务器名称更改为您自己的。您还可以从配置中删除bind=0.0.0.0,因为从现在开始远程连接将通过Apache代理。重新启动BTCPayServer:sudoservicebtcpayserverrestart打开浏览器并检查新安装的SSL证书是否正常工作。========================================================================分享一些与比特币、以太坊、EOS、Fabric等区块链相关的交互式在线编程教程:Java比特币开发教程,本课程面向初学者,涵盖了比特币的核心概念,如区块链存储、去中心化共识机制、密钥和脚本、交易和UTXO等,还详细讲解了如何在Java代码中集成比特币支持功能,如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。Php比特币开发教程,本课程面向初学者,内容涵盖了比特币的核心概念,如区块链存储、去中心化共识机制、密钥和脚本、交易和UTXO等,同时还详细讲解了如何使用PhpIntegrating比特币在代码中的支持功能,如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习教程。c#比特币开发教程,本课程面向初学者,内容涵盖了比特币的核心概念,如区块链存储、去中心化共识机制、密钥和脚本、交易和UTXO等,还详细讲解了如何使用C#集成比特币在代码中的支持功能,如创建地址、管理钱包、构造裸交易等,是C#工程师不可多得的比特币开发学习教程。Java以太坊开发教程,主要为java和android程序员讲解区块链以太坊开发的web3j详解。PythonEthereum,主要供python工程师使用web3.py详细开发区块链以太坊。PHPEthereum主要介绍使用PHP进行智能合约开发交互、账户创建、交易、转账、代币开发、过滤器和交易等。以太坊入门教程,主要介绍智能合约和dapp应用开发,适合入门。以太坊开发进阶教程,主要介绍使用node.js、mongodb、blockchain、ipfs实现去中心化电商DApp实战,适合进阶。ERC721EthereumPassDemonstration,课程着重于一个数字艺术品创作和分享DApp的实际开发,深入讲解以太坊非同质化通证的概念、标准和开发方案。内容包括独立实现ERC-721标准,讲解OpenZeppelin合约代码库的二次开发,以及使用Truffle、IPFS的实际项目,实现通证和去中心化通证交换。C#以太坊主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器与交易等。EOS入门教程,本课程帮助您快速上手EOS区块链去中心化应用开发,涵盖EOS工具链、账户和钱包、发行代币、智能合约开发和部署等核心知识,使用代码和智能合约交互要点,最后利用所有知识点完成一个粘性的开发注意DApp。本课程着重讲述手机EOS钱包的完整开发过程,深入学习EOS区块链应用开发。课程内容涵盖账户、计算资源、智能合约、动作和交易等核心概念,同时讲解如何使用eosjs和eosjs-ecc开发包接入EOS区块链,以及如何集成对EOS的支持React前端应用程序中的区块链。课程内容简单易懂,非常适合前端工程师深入学习EOS区块链应用开发。HyperledgerFabric区块链开发详解。本课程针对初学者。内容包括HyperledgerFabric身份证书和MSP服务、权限策略、通道配置和启动、链码通信接口等核心概念。还包括Fabric网络设计、nodejs链代码和应用开发的操作实践,是Nodejs工程师学习Fabric区块链开发的最佳选择。HyperledgerFabricjava区块链开发详解,课程面向初学者,内容包括HyperledgerFabric身份证书和MSP服务、权限策略、通道配置和启动、链码通信接口等核心概念,还包括Fabric网络设计、javachain代码和应用开发的操作实践,是Java工程师学习Fabric区块链开发的最佳选择。tendermint区块链开发详解。本课程适合想要使用tendermint进行区块链开发的工程师。课程内容包含了tendermint应用开发模型中的核心概念,如ABCI接口、Merkle树、多版本状态库等,包含了丰富的代币发行等实用代码,是go语言工程师快速上手的最佳选择开始区块链开发。汇智网原创翻译,转载请注明出处。下面介绍如何在Linux上手动安装BTCPayServer并设置比特币BTC和闪电网络支付网关