php中BtcTool有哪些特性

技术php中BtcTool有哪些特性这篇文章给大家分享的是有关php中BtcTool有哪些特性的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。BtcTool是一个基于第三方服务和离线裸交易实现的

本文是关于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);   //广播裸交易

注意:

  1. Wallet实例利用钱包中的私钥生成地址列表,并利用这些地址从第三方服务获取utxo信息。 因此需要钱包中的私钥对应地址在链上有utxo存在,Wallet对象才能够成功构造裸交易。

  2. 在调用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

(0)

相关推荐

  • 飞机舱位等级代码分别代表什么,飞机座位等级p和y是什么意思

    技术飞机舱位等级代码分别代表什么,飞机座位等级p和y是什么意思不一样的。航空公司票价一般分为头等舱、公务舱和经济舱三种等级.每种等级又按照正常票价和多种不同特殊优惠票价划分为不同的舱位代号。头等舱代号一般为F,A,P;公

    生活 2021年10月23日
  • Python相对导入报错怎么解决

    技术Python相对导入报错怎么解决本篇内容主要讲解“Python相对导入报错怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python相对导入报错怎么解决”吧!相对

    攻略 2021年11月25日
  • 三个向造句,用“向”“向”“向”三个词造句

    技术三个向造句,用“向”“向”“向”三个词造句在大会上我们向英雄致敬,向英雄献花,还宣誓要向英雄学习三个向造句。花儿向太阳微笑,向风儿点头,向蜜蜂问好。我向小猫学喵喵叫,向袋鼠学跳跃,向猴子学爬树。向前、向前,向前,我们

    生活 2021年10月21日
  • 绿可以组什么词,绿可以组什么颜色词两个字的词

    技术绿可以组什么词,绿可以组什么颜色词两个字的词豆绿 pea green;bean green   橄榄绿 olive green;olive   茶绿 tea green; plantation   葱绿 onion

    生活 2021年10月21日
  • 怎么配置Magento2 system.xml dateTime时间

    技术怎么配置Magento2 system.xml dateTime时间这篇文章主要讲解了“怎么配置Magento2 system.xml dateTime时间”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小

    攻略 2021年11月12日
  • thinkphp api开发教程(thinkphp怎么设置api)

    技术ThinkPHP如何搭建API服务这篇文章将为大家详细讲解有关ThinkPHP如何搭建API服务,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1 下载ComposerCompose

    攻略 2021年12月20日