本文是关于php中BtcTool的特性。我觉得边肖很实用,就和大家分享一下作为参考。让我们跟着边肖看一看。
BtcTool是一个基于第三方服务和线下裸交易的PHP比特币应用开发包。适合不想部署本地节点的PHP开发者。开发包主要包括以下功能:
使用第三方服务获取指定地址的utxo集
消费者裸交易的线下生成
使用第三方服务广播裸交易
BtcTool目前支持的第三方服务包括,并且可以轻松扩展:
blockchain.info
btc.com
下载地址:http://sc.hubwiz.com/codebag/btc-php-lib/
1. 代码清单
BTC tol在**Php 7.1 **环境下运行,当前版本为1.0.0,主要代码文件列表如下:
代码文件描述BTC tol/src/wallet . PHP脱机钱包类,开发包入口BTC tol/src/Uttxo . PHP未消耗事务输出类BTC tol/src/Uttxobag . phputxo收集类BTC tol/src/Uttxocollector . phputxo收集器接口BTC tol/src/Uttxoselector基于CloudUtxoCollector.php第三方服务的Uttxo收集器实现BTC tol/src/Uttxoselector . phputxo过滤器接口btch tool/src/defaultutxoselector
创建钱包实例
将私钥添加到钱包实例中。
使用Wallet实例的**sendTx()**方法获取编码的裸事务。
使用Wallet实例的**broadcast()**方法来广播裸事务。
示例代码如下,说明可在注释中找到:
?服务器端编程语言(Professional Hypertext Preprocessor的缩写)
要求('./vendor/autoload . PHP ');
使用BtcT
ool\Wallet; //引入开发包
$wallet = new Wallet('testnet'); //创建钱包,主网传入 mainnet
$prvKey = '...'; //向钱包中添加私钥,可添加多个
$wallet->addKey($prvKey);
$toAddr = 'mgYPLmNuZymK...e2XUNF6VFnT' //地址应当与testnet/mainnet保持一致
$amount = 10000; //单位:satoshi
$rawtx = $wallet->sendTx($toAddr,$amount); //构造裸交易,返回16进制字符串
$ret = $wallet->broadcast($rawtx); //广播裸交易
注意:
-
Wallet实例利用钱包中的私钥生成地址列表,并利用这些地址从第三方服务获取utxo信息。 因此需要钱包中的私钥对应地址在链上有utxo存在,Wallet对象才能够成功构造裸交易。
-
在调用Wallet对象的sendTx()方法构造裸交易时,可以指定找零地址和手续费,例如:
$rawtx = $wallet->sendTx($toAddr,$amount,$changeAddr,$fee);
如果未指定后面两个参数,找零地址默认为钱包中第一个私钥对应的地址,手续费默认为10000satoshi(高费率)。 3. 转账目标地址应当与创建Wallet对象时指定的链ID一致,例如mainnet的p2pkh地址,前缀应当为1
3. 主要模型
3.1 UtxoCollector接口
利用钱包地址列表,获取候选UTXO。
接口方法:
-
collect():提取候选UTXO,返回TUXO集合
当前实现类:
-
CloudUtxoCollector
3.2 UtxoSelector接口
根据目标金额从候选UTXO中选择可消费UTXO
接口方法:
-
select():选择可消费UTXO,返回UtxoBag对象
当前实现类:
-
DefaultUtxoSelector
3.3 Broadcaster接口
裸交易广播器
接口方法:
-
broadcast():广播裸交易
当前实现类:
-
CloudBroadcaster
3.4 Wallet类
管理私钥、地址和脚本,同时提供构造和广播裸交易的方法
主要方法:
-
::load(): 静态方法,利用硬盘的钱包文件构造Wallet对象
-
addKey():添加私钥
-
save():将Wallet对象保存到钱包文件
-
sendTx():构造裸交易,返回裸交易码流,该方法可自动搜索可用UTXO集合
-
broadcast():广播裸交易,调用Broadcaster完成
感谢各位的阅读!关于“php中BtcTool有哪些特性”这篇文章就分享到这里了,希望
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/117468.html