首页 » SEO优化 » php发送Btc技巧_PHP比特币开拓入门指南

php发送Btc技巧_PHP比特币开拓入门指南

访客 2024-11-27 0

扫一扫用手机浏览

文章目录 [+]

在本简介中,我们假设你拥有Apache和PHP的GNU/Linux做事器,并且你希望从Web运用程序与比特币网络进行交互。
我们假设你有一些比特币的知识和PHP履历。

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

php发送Btc技巧_PHP比特币开拓入门指南

最大略的入门方法是在守护进程模式下运行比特币,PHP通过本地HTTP要求进行通信。
一个名为JSON-RPC的库用于调用bitcoind的各种函数,这些函数将利用JSON工具进行相应。

php发送Btc技巧_PHP比特币开拓入门指南
(图片来自网络侵删)

但是,建议利用列出的替代库之一,由于它们更繁芜。

设置比特币

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

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

rpcuser=userrpcpassword={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版本)

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

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

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

把稳:jsonRPCClient库利用fopen(),如果从bitcoind收到404或500缺点,将抛出一个非常,说“Unable to connect”即无法连接。
这可以防止你看到bitcoind天生的缺点(由于它们以状态404或500发送)。
下面列出的替代库在功能上与JSON-RPC PHP类似,但没有此问题。

精度

比特币金额范围从1 Satoshi(0.00000001 BTC)到近2,100,000,000,000,000(21,000,000 BTC)。
为避免舍入缺点,你必须确保PHP实现支持所有比特币值而不会丢失精度。
大多数PHP实现利用具有53位精度的IEEE 64位双精度浮点数,这足以精确表示全部比特币值。

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

如果你的PHP实现不支持64位数字(再次,这是非常罕见的),你必须利用一个版本的bitcoind,它将值作为字符串发送(genjix在http://github.com/genjix/bitcoin掩护一个分支)并利用GMP和BC Math库进行涉及比特币金额的所有打算。

帐号

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

再进一步,你可以拥比特币账户。
每个帐户都拥有多个地址,其行为类似于迷你比特币。

$ ./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 vs getaccountaddress

利用getnewaddress可以使恶意代理难以跟踪流经运用程序的付款,从而有助于提高用户的匿名性。
但是,常常运行getnewaddress会导致你的钱包充满许多空地址。

因此,建议以某种办法限定每个用户可以要求的未供应资金的地址的数量。
以下是利用会话的示例:

<?php require_once('jsonRPCClient.php'); $bitcoin = new jsonRPCClient('http://root:root@127.0.0.1:8332/'); # now check for appropriate funds in user account try { $username = ... if(isset($_SESSION['sendaddress'])) $sendaddress = $_SESSION['sendaddress']; else { $sendaddress = $bitcoin->getnewaddress($username); $_SESSION['sendaddress'] = $sendaddress; } $balance = $bitcoin->getbalance($username); } catch (Exception $e) { die("<p>Server error! Please contact the admin.</p>"); }?>

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

RPC的替代Libs

有一些替代的PHP库可以连接到bitcoind RPC,建议利用普通的jsonRPCClient.php类。
他们不依赖于magic__call,利用cURL而不是fopen并且有更好的缺点处理(并且可以利用composer安装)。

NboBTC Bitcoind-PHPEasyBitcoin-PHP

作者:编程狂魔链接:https://www.jianshu.com/p/3b649a008832来源:简书著作权归作者所有。
商业转载请联系作者得到授权,非商业转载请注明出处。

标签:

相关文章

今日头条算法岗三面算法工程师的面试之路

大数据和人工智能技术逐渐成为各行各业的热门话题。今日头条作为中国领先的资讯平台,其算法岗位一直是求职者争相竞逐的焦点。本文将针对今...

SEO优化 2025-01-31 阅读0 评论0

今日头条算法如何打造个化内容推荐

在移动互联网时代,信息爆炸已成为常态。如何在海量信息中找到自己感兴趣的内容,成为了一个亟待解决的问题。今日头条作为一款备受瞩目的新...

SEO优化 2025-01-31 阅读0 评论0

今日头条算法推荐其弊端与反思

算法推荐已经成为各大平台的核心竞争力。今日头条作为国内领先的资讯平台,凭借其强大的算法推荐系统,吸引了大量用户。在享受算法带来的便...

SEO优化 2025-01-31 阅读0 评论0

今日头条算法思维导图信息推荐的奥秘

信息传播速度越来越快,用户对信息的需求也越来越多样化。今日头条作为一款备受关注的新闻资讯平台,其背后的算法推荐机制一直是业界关注的...

SEO优化 2025-01-31 阅读0 评论0