主页 > imtoken正版下载 > PHP 比特币开发入门指南

PHP 比特币开发入门指南

imtoken正版下载 2023-12-13 05:08:15

Linux Apache MySQL PHP + 比特币教程。

在本介绍中,我们假设您有一个带有 Apache 和 PHP 的 GNU/Linux 服务器用U盘做比特币冷钱包教程,并且您希望通过 Web 应用程序与比特币网络进行交互。 我们假设您对比特币有一定的了解并且有使用 PHP 的经验。

尽管这是为 PHP 编写的,但相同的原则也适用于其他语言。 有关其他语言的信息,请参阅相关的 API 参考页面。

最简单的入门方法是以守护进程模式运行比特币,PHP 通过本地 HTTP 请求进行通信。 名为 JSON-RPC 的库用于调用 bitcoind 的各种函数,这些函数将使用 JSON 对象进行响应。

但是,建议使用列出的替代库之一,因为它们更复杂。

设置比特币

用U盘做比特币冷钱包教程_比特币冷钱包哪个好_用手机可以下载比特币钱包吗

您可以从主页下载比特币守护进程并运行包含的二进制文件之一,或者从包含的源代码编译您自己的守护进程。 有关配置 bitcoind 的详细信息,请参阅运行比特币。

在运行 bitcoind 之前,您需要在比特币数据目录(Linux 上为 ~/.bitcoin/bitcoin.conf)中创建一个配置文件:

rpcuser=user
rpcpassword={you MUST pick a unique password to be secure}

如果你错过了这一步,bitcoind 会提醒你。

现在运行比特币:

$ ./bitcoind
# wait a few seconds for it to start up
$ ./bitcoin-cli getinfo
# various information will be shown. If you get an error, try again until you see some useful output.
$ ./bitcoin-cli help
# get help on commands, note no dash before help

比特币将开始与网络同步并下载区块链的完整副本。 截至 2012 年 8 月,在此过程中必须下载和验证超过 2GB 的数据。 可能需要两个小时或更长时间才能完成。 当块计数达到当前计数时,您就会知道它何时完成。

Getinfo(比特币版本的 Hello World)

假设比特币已经完成了初始化过程; 从 JSON-RPC PHP 下载文件 jsonRPCClient.php 并将其放置在 Web 可访问的位置。

其次,创建一个包含以下内容的 PHP 文件,并使用浏览器访问它并进行测试。

  require_once 'jsonRPCClient.php';
  
  $bitcoin = new jsonRPCClient('http://user:password@127.0.0.1:8332/');
   
  echo "
\n";
  print_r($bitcoin->getinfo());
  echo "

";

注意:jsonRPCClient 库使用 fopen(),如果它从 bitcoind 收到 404 或 500 错误,它将抛出一个异常,提示“无法连接”。 这可以防止您看到 bitcoind 生成的错误消息(因为它们以状态 404 或 500 发送)。 下面列出的替代库在功能上类似于 JSON-RPC PHP,但不存在此问题。

精确

比特币的数量从 1 聪(0.00000001 BTC)到近 2,100,000,000,000,000(21,000,000 BTC)不等。 为避免舍入错误,您必须确保您的 PHP 实现支持所有比特币值而不损失精度。 大多数 PHP 实现使用具有 53 位精度的 IEEE 64 位双精度浮点数,这足以正确表示完整的比特币值。

有关详细信息用U盘做比特币冷钱包教程,请参阅适当的资金处理 (JSON-RPC)。

如果您的 PHP 实现不支持 64 位数字(同样,这种情况非常少见),您将不得不使用将值作为字符串发送的 bitcoind 版本(genjix 维护一个分支)并使用 GMP 和 BC涉及比特币金额的所有计算的数学库。

账号

在比特币中,钱被发送到地址,一个钱包可以容纳多个地址。 比特币默认显示的余额是钱包中所有地址的比特币总和。

用U盘做比特币冷钱包教程_用手机可以下载比特币钱包吗_比特币冷钱包哪个好

更进一步,你可以拥有一个比特币账户。 每个账户都有多个地址,就像一个迷你比特币。

$ ./bitcoin-cli listaccounts
# show list of accounts and various info for each one
$ ./bitcoin-cli getaccountaddress user889
# get an address to receive money to that is unique for the account user889
$ ./bitcoin-cli getbalance user889
# get the sum of all the money in the addresses owned by the account user889

在您的应用程序中,每个用户都应该有一个唯一的用户名。 然后,可以使用$bitcoin->getaccountaddress("user889");,查询bitcoind的唯一地址; 获取user889的首地址。 或 $bitcoin->getnewaddress("user889");,为 user889 创建一个新地址。

客户然后存款到这个地址。

您可以通过 $bitcoin->getbalance("user889", 4); 查看客户的资金。 4 表示在假定此付款有效之前我们将接受的最少确认数。

如果您将在一段时间内使用多个存款和取款账户,您可能需要考虑在您自己的数据库中跟踪用户余额。 这简化了应用程序帐户之间的转账,并将您的帐户与您的比特币钱包分开。

获取新地址与获取帐户地址

使用 getnewaddress 可以帮助提高用户的匿名性,因为恶意代理很难跟踪流经该应用程序的付款。 但是,频繁运行 getnewaddress 会导致你的钱包被许多空地址填满。

因此,建议以某种方式限制每个用户可以请求的未资助地址的数量。 下面是一个使用会话的例子:

getnewaddress($username);
            $_SESSION['sendaddress'] = $sendaddress;
        }
        $balance = $bitcoin->getbalance($username);
    }
    catch (Exception $e) {
        die("

Server error! Please contact the admin.

"); } ?>

这会在每个新会话开始时创建一个新地址,并将其存储在会话变量中。

RPC 的替代库

有一些替代的 PHP 库可以连接到 bitcoind RPC,推荐使用普通的 jsonRPCClient.php 类。 它们不依赖于 magic__call,使用 cURL 而不是 fopen 并且具有更好的错误处理能力(并且可以与 composer 一起安装)。