中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Filecoin.PHP開發包怎么使用

發布時間:2021-11-25 15:22:31 來源:億速云 閱讀:453 作者:iii 欄目:互聯網科技

本篇內容主要講解“Filecoin.PHP開發包怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Filecoin.PHP開發包怎么使用”吧!

Filecoin.PHP 開發包適用于為PHP應用快速增加對Filecoin/FIL數字資產的支持能力,即支持使用自有Filecoin區塊鏈節點的應用場景,也支持基于第三方公共節點的輕量級部署場景。

1、Filecoin.PHP開發包概述

Filecoin.PHP開發包主要包含以下特性:

  • 支持離線生成Filecoin地址,方便管理維護

  • 支持Filecoin消息的離線簽名,有利于更好地保護私鑰

  • 自動估算Filecoin消息的GAS參數,避免手工調整

  • 支持使用自有節點或第三方節點,例如使用Infura提供的公共節點

  • 完善的Filecoin節點API封裝,支持全部RPC API調用,例如查詢地址地歷史消息等

Filecoin.PHP軟件包運行在 Php 7.1+ 環境下,當前版本1.0.0,主要類/接口及關系如下圖所示:

Filecoin.PHP開發包怎么使用

Filecoin.PHP開發包的主要代碼文件清單見官網說明:http://sc.hubwiz.com/codebag/filecoin-php-lib/

2、使用示例代碼

2.1 創建新地址

在終端進入演示代碼目錄,執行如下命令:

~$ cd ~/filecoin.php/demo
~/filecoin.php/demo$ php NewAddressDemo.php

執行結果如下:

Filecoin.PHP開發包怎么使用

2.2 利用私鑰恢復地址

在終端進入演示代碼目錄,執行如下命令:

~$ cd ~/filecoin.php/demo
~/filecoin.php/demo$ php RestoreAddressDemo.php

執行結果如下:

Filecoin.PHP開發包怎么使用

2.3 FIL轉賬及余額查詢

在終端進入演示代碼目錄,執行如下命令:

~$ cd ~/filecoin.php/demo
~/filecoin.php/demo$ php FilTransferDemo.php

執行結果如下:

Filecoin.PHP開發包怎么使用

2.4 RPC客戶端調用示例

在終端進入演示代碼目錄,執行如下命令:

~$ cd ~/filecoin.php/demo
~/filecoin.php/demo$ php demo-rpc-client.php

執行結果如下:

Filecoin.PHP開發包怎么使用

3、使用Filecoin.PHP

FilKit是開發包的入口,使用這個類可以快速實現FIL轉賬、交易確認等待和余額查詢等功能。

2.1 實例化FilKit

FilKit實例化需要傳入RpcClient對象和Credential對象,這兩個參數分別封裝了Filecoin節點提供的API,以及進行交易簽名的用戶身份信息。

例如,下面的代碼創建一個接入Infura的Filecoin節點的FilKit實例,并使用指定的私鑰進行交易簽名:

use Filecoin\FilKit;
use Filecoin\RpcClient;
use Filecoin\Credential;

$client = new RpcClient(                          // 創建RPC客戶端實例
  'https://filecoin.infura.io',                   // INFURA的filecoin節點URL    
  ['PROJECT_ID', 'PROJECT_SECRET']                // INFURA分配的項目ID和密碼
);

$credential = Credential::fromKeyBase64(          // 利用已有私鑰創建身份憑證
  'AacNySnfq9cdInB1ZUUvJJVTeqaI7LOW9EcX3UEDFfE='  // base64編碼的私鑰
);

$kit = new FilKit($client, $credential);          // 創建FilKit實例

在創建FilKit實例時指定的Credential對象,將作為默認身份憑證執行后續的轉賬交易等操作。

  • RpcClient / RPC客戶端

如果使用的Filecoin節點無需身份認證,那么在創建RpcClient時只需傳入RPC URL。例如使用本機的filecoin節點:

$client = new RpcClient('http://127.0.0.1/rpc/v0');  // 連接本機節點

如果使用的Filecoin節點啟用了授權TOKEN的認證機制,那么在創建RpcClient時需要傳入授權TOKEN,例如:

$client = new RpcClient(
  'http://234.10.58.147/rpc/v0',                // 節點RPC API URL
  'Ynl0ZSBhcnJheQ=='                            // 節點分配的授權TOKEN
);
  • Credential / 身份憑證

如果已有的私鑰是16進制字符串形式,那么使用Credential類的靜態方法fromKey()來創建實例對象,例如:

$credential = Credential::fromKey(
  '01a70dc929dfabd71d22707565452f2495537aa688ecb396f44717dd410315f1'  // 16進制字符串格式的私鑰
);

2.2 FIL轉賬交易

使用FilKit的transfer()方法進行FIL轉賬,例如發送 1.23 FIL

$to = 'f1saxri7cpyz2cm767q77u3mqumrggljrmi5iqdty';          // 轉賬目標地址
$amount = '1230000000000000000';                            // 最小單位的轉賬數量,1 FIL = 10^18 UNIT
$cid = $kit->transfer($to,$amount);                         // 提交Trx轉賬交易
echo 'txid => ' . $cid->{'/'} .  PHP_EOL;                   // 顯示交易ID

注意

  • 轉賬數量應轉換為最小單位計量的整數字符串,1 FIL = 10^18 最小單位。

  • 支持各種類型的接收地址,例如:

    • f01729:ID地址:

    • f17uoq6tp427uzv7fztkbsnn64iwotfrristwpryy:SECP256K1地址

    • f24vg6ut43yw2h3jqydgbg2xq7x6f4kub3bg6as6i:ACTOR地址

    • f3q22fijmmlckhl56rn5nkyamkph4mcfu5ed6dheq53:BLS地址

2.3 等待Filecoin消息確認

使用FilKit的waitForReceipt()方法等待交易確認,例如:

$receipt = $kit->waitForReceipt($cid);                      // 等待消息收據
echo 'exit code => ' . $receipt->ExitCode . PHP_EOL;        // 顯示消息執行結果代碼,0表示成功

默認的等待時間是60秒,在此時間內沒有等到交易收據將提示錯誤。可以傳入第二個參數修改這一默認設置。例如等待10秒鐘:

$receipt = $kit->waitForReceipt($cid, 10);                  // 等待10秒鐘

2.4 指定地址的FIL余額查詢

使用getBalance()方法查詢指定地址的FIL余額,例如:

$addr = 'f1saxri7cpyz2cm767q77u3mqumrggljrmi5iqdty';        // 要查詢的Filecoin地址
$balance = $kit->getBlanace($addr);                         // 查詢FIL余額,最小單位表示
echo 'balance => ' . $balance . PHP_EOL;                    // 顯示FIL余額

注意 :返回的余額為最小單位表示,1 FIL = 10^18最小單位。

2.5 使用RPC客戶端

Filecoin節點透過其RPC API接口提供了很多有用的功能,使用Filecoin.PHP開發包的RpcClient類可以訪問所有的Filecoin RPC API。

例如查詢當前的鏈頭TipSet,對應的RPC API為Filecoin.ChainHead,使用RpcClient對象的調用代碼如下:

// $client = $kit->getClient();                           // 從FilKit得到RpcClient實例 
// or                                                     // 或者
// $client = new Client('http://127.0.0.1:1234/rpc/v0');  // 單獨創建一個RpcClient對象

$ret = $client->chainHead();                              // 調用Filecoin.ChainHead API
echo 'height => ' . $ret->Height . PHP_EOL;               // 顯示Height字段的值

從上面代碼容易理解:

Filecoin的RPC API名稱去掉Filecoin.前綴,然后將剩余部分的首字符小寫,就得到RpcClient的方法名。

如果RPC API的params數組包含多個參數,那么依次傳入RpcClient的對應方法即可。例如用Filecoin.ChainGetBlock調用查詢指定的區塊時,需要傳入區塊的CID,使用RpcClient的調用如代碼如下:

$cid = [                                                     // 要查詢區塊的CID               
  '/' => 'bafy2bzacea3wsdh7y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4'
];                                                        
$block = $client->chainGetBlock($cid);                       // 調用 Filecoin.ChainGetBlock API    
echo 'miner => ' . $block->Miner . PHP_EOL;                  // 顯示該區塊的礦工地址

到此,相信大家對“Filecoin.PHP開發包怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

贵定县| 吉林市| 邹城市| 青神县| 闽清县| 霍邱县| 梁山县| 朝阳市| 辛集市| 镇安县| 万载县| 通榆县| 桦南县| 盈江县| 吉林市| 绵竹市| 阿克苏市| 石首市| 娱乐| 金湖县| 马山县| 平果县| 武威市| 北辰区| 富川| 内丘县| 朝阳县| 商河县| 南靖县| 阿尔山市| 庄河市| 万荣县| 岚皋县| 社旗县| 苍山县| 阜平县| 洛南县| 光泽县| 宁陕县| 苏州市| 从化市|