位元幣PHP離線交易開發包

2021-09-03 07:20:11 字數 2256 閱讀 1431

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

3. 轉賬目標位址應當與建立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個字段 版本 輸入數量 輸入 輸出數量...