日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

比特币 交易程序 php,比特币PHP离线交易开发包

發布時間:2024/9/3 php 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 比特币 交易程序 php,比特币PHP离线交易开发包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

BtcTool是一個基于第三方服務和離線裸交易實現的PHP比特幣應用開發包,適合不希望部署本地

節點旳PHP開發者,開發包主要包含以下特性:

利用第三方服務獲取指定地址的utxo集合

離線生成消費裸交易

利用第三方服務廣播裸交易

BtcTool目前支持的第三方服務包括,并且可以非常簡單進行擴展:

blockchain.info

btc.com

1. 代碼清單

BtcTool運行在Php 7.1+環境下,當前版本1.0.0,主要代碼文件清單如下:

碼文件

說明

btctool/src/Wallet.php

離線錢包類,開發包入口

btctool/src/Utxo.php

未消費交易輸出類

btctool/src/UtxoBag.php

Utxo集合類

btctool/src/UtxoCollector.php

Utxo收集器接口

btctool/src/CloudUtxoCollector.php

基于第三方服務的Utxo收集器實現

btctool/src/UtxoSelector.php

Utxo篩選器接口

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.json

composer配置文件

2. 使用說明

BtcTool的入口是Wallet類,基本的使用步驟如下:

創建一個Wallet實例

將私鑰加入該Wallet實例

使用Wallet實例的sendTx()方法獲取編碼后的裸交易

使用Wallet實例的broadcast()方法廣播裸交易

示例例代碼如下,說明見注釋:

require('../vendor/autoload.php');

use BtcTool\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(高費率)。

轉賬目標地址應當與創建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完成

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的比特币 交易程序 php,比特币PHP离线交易开发包的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。