千家信息网

php中BtcTool有哪些特性

发表于:2025-01-26 作者:千家信息网编辑
千家信息网最后更新 2025年01月26日,这篇文章给大家分享的是有关php中BtcTool有哪些特性的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。BtcTool是一个基于第三方服务和离线裸交易实现的PHP比特币应用
千家信息网最后更新 2025年01月26日php中BtcTool有哪些特性

这篇文章给大家分享的是有关php中BtcTool有哪些特性的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

BtcTool是一个基于第三方服务和离线裸交易实现的PHP比特币应用开发包,适合不希望部署本地 节点旳PHP开发者,开发包主要包含以下特性:

  • 利用第三方服务获取指定地址的utxo集合

  • 离线生成消费裸交易

  • 利用第三方服务广播裸交易

BtcTool目前支持的第三方服务包括,并且可以非常简单进行扩展:

  • blockchain.info

  • btc.com

BtcTool下载地址:http://sc.hubwiz.com/codebag/btc-php-lib/

1. 代码清单

BtcTool运行在**Php 7.1+**环境下,当前版本1.0.0,主要代码文件清单如下:

码文件说明
btctool/src/Wallet.php离线钱包类,开发包入口
btctool/src/Utxo.php未消费交易输出类
btctool/src/UtxoBag.phpUtxo集合类
btctool/src/UtxoCollector.phpUtxo收集器接口
btctool/src/CloudUtxoCollector.php基于第三方服务的Utxo收集器实现
btctool/src/UtxoSelector.phpUtxo筛选器接口
btchtool/src/DefaultUtxoSelector.php默认的Utxo筛选器实现
btctool/src/Broadcaster.php交易广播器接口
btctool/src/CloudBroadcaster.php基于第三方服务的交易广播器实现
btctool/src/Utils.php常用辅助函数
demo/wallet-init.php本地钱包初始化
demo/wallet-demo.php钱包载入、裸交易构造和广播
vendor第三方依赖包目录
composer.jsoncomposer配置文件

2. 使用说明

BtcTool的入口是Wallet类,基本的使用步骤如下:

  1. 创建一个Wallet实例

  2. 将私钥加入该Wallet实例

  3. 使用Wallet实例的**sendTx()**方法获取编码后的裸交易

  4. 使用Wallet实例的**broadcast()**方法广播裸交易

示例例代码如下,说明见注释:

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有哪些特性"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

交易 地址 方法 广播 接口 钱包 第三方 服务 对象 实例 文件 开发 消费 特性 代码 开发包 一致 入口 内容 手续 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络技术给我们带来的便捷 计算机网络技术成绩 怀旧服服务器最低多少级 三级网络技术要看多久 网络安全攻防大赛 需要掌握 西安坐标医信软件开发有限公司 做网络安全的股票有哪些 实例与数据库的关系通俗解释 天呈网络技术有限公司 阳江监控服务器散热器供应 上海红色文化数据库 巨头科技互联网公司 公司用的数据库是哪个版本 宜宾软件开发公司明细 广东电子软件开发资格 中国网络技术的 对网络安全与计算机的认知 数据库t-sql语句修改 平安银行数据库运维工程师 魔兽世界 哪个服务器 湖南潮流软件开发过程品质保障 四年级网络安全教育手册小报 天津常规软件开发制造价格 新疆 软件开发有限公司 提高网络安全意识的公文 徐汇区品质软件开发销售电话 金蝶账套号的数据库实体更改 厦门保利网络技术 上市 数据库中的码是数字吗 盐城城投集团评标专家数据库
0