主页 > imtoken钱包国际版下载 > PHP程序员开发比特币简介

PHP程序员开发比特币简介

imtoken钱包国际版下载 2023-01-16 22:44:31

Linux Apache MySQL PHP + 比特币教程。

在本介绍中,我们假设您有一个带有 Apache 和 PHP 的 GNU/Linux 服务器,并且您希望通过 Web 应用程序与比特币网络进行交互。我们假设您具有一定的比特币知识和 PHP 经验。

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

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

但是,建议使用列出的其中一种,因为它们更复杂。

设置比特币

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

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

nbo新比特币如何交易

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

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

现在正在运行 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 版本)

nbo新比特币如何交易

假设比特币已经完成了初始化过程;从 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 类似,但没有这个问题。

准确度

nbo新比特币如何交易

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

有关详细信息nbo新比特币如何交易,请参阅正确的资金处理 (JSON-RPC)。

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

帐户

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

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

nbo新比特币如何交易

$ ./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 的第一个地址。或 $ 比特币->getnewaddress("user889");为 user889 创建一个新地址。

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

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

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

getnewaddress 与 getaccountaddress

nbo新比特币如何交易

使用 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 一起安装)。

如果你想快速掌握使用php连接比特币钱包的方法,可以访问:php比特币开发教程

这是原文

本作品采用《CC协议》,转载须注明作者及本文链接