btctool是乙個基於第三方服務和離線裸交易實現的php位元幣應用開發包,適合不希望部署本地
節點旳php開發者,開發包主要包含以下特性:
btctool目前支援的第三方服務包括,並且可以非常簡單進行擴充套件:
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配置檔案
btctool的入口是wallet類,基本的使用步驟如下:
建立乙個wallet例項
將私鑰加入該wallet例項
使用wallet例項的sendtx()方法獲取編碼後的裸交易
使用wallet例項的broadcast()方法廣播裸交易
示例例**如下,說明見注釋:
<?php
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物件才能夠成功構造裸交易。
$rawtx = $wallet->sendtx($toaddr,$amount,$changeaddr,$fee);
如果未指定後面兩個引數,找零位址預設為錢包中第乙個私鑰對應的位址,手續費預設為
10000satoshi(高費率)。
轉賬目標位址應當與建立wallet物件時指定的鏈id一致,例如mainnet的p2pkh位址,字首應當為1
3.1 utxocollector介面
利用錢包位址列表,獲取候選utxo。
介面方法:
當前實現類:
3.2 utxoselector介面
根據目標金額從候選utxo中選擇可消費utxo
介面方法:
當前實現類:
3.3 broadcaster介面
裸交易廣播器
介面方法:
當前實現類:
3.4 wallet類
管理私鑰、位址和指令碼,同時提供構造和廣播裸交易的方法
主要方法:
位元幣PHP離線交易開發包
btctool是乙個基於第三方服務和離線裸交易實現的php位元幣應用開發包,適合不希望部署本地 節點旳php開發者,開發包主要包含以下特性 btctool目前支援的第三方服務包括,並且可以非常簡單進行擴充套件 btctool執行在 php 7.1 環境下,當前版本1.0.0,主要 檔案清單如下 檔案...
位元幣PHP離線交易開發包
btctool是乙個基於第三方服務和離線裸交易實現的php位元幣應用開發包,適合不希望部署本地 節點旳php開發者,開發包主要包含以下特性 btctool目前支援的第三方服務包括,並且可以非常簡單進行擴充套件 btctool執行在 php 7.1 環境下,當前版本1.0.0,主要 檔案清單如下 碼檔...
位元幣交易
位元幣交易是位元幣系統中最重要的部分。位元幣交易的本質是一種特殊設計的資料結構。而區塊鏈是記錄位元幣交易的總賬簿,每個位元幣交易都被記錄在區塊鏈上。這種資料結構的生命週期包括 被建立 被簽名加密 被廣播 被驗證 被新增到新建立的區塊。位元幣交易這種資料結構包含6個字段 版本 輸入數量 輸入 輸出數量...