主页 > imtoken钱包下载2.0安卓版 > PHP 程序员介绍比特币开发

PHP 程序员介绍比特币开发

imtoken钱包下载2.0安卓版 2023-06-11 06:50:10

Linux Apache MySQL PHP + 比特币教程。

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

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

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

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

设置比特币

您可以从主页下载比特币守护进程并运行包含的二进制文件之一,或者从包含的源代码编译您自己的守护进程。 有关配置 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 位双精度浮点数,这足以正确表示完整的比特币值。

有关详细信息,请参阅适当的资金处理 (JSON-RPC)。

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

账号

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

中国比特币合法吗_中国买卖比特币合法吗_比特币开发合法吗

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

$ ./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 一起安装)。

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

这里是原文