中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Filecoin.PHP開發(fā)包怎么使用

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

為瓜州等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及瓜州網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、瓜州網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

Filecoin.PHP開發(fā)包適用于為PHP應(yīng)用快速增加對Filecoin/FIL數(shù)字資產(chǎn)的支持能力,即支持使用自有Filecoin區(qū)塊鏈節(jié)點的應(yīng)用場景,也支持基于第三方公共節(jié)點的輕量級部署場景。

1、Filecoin.PHP開發(fā)包概述

Filecoin.PHP開發(fā)包主要包含以下特性:

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

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

  • 自動估算Filecoin消息的GAS參數(shù),避免手工調(diào)整

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

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

Filecoin.PHP軟件包運行在 Php 7.1+環(huán)境下,當(dāng)前版本1.0.0,主要類/接口及關(guān)系如下圖所示:

Filecoin.PHP開發(fā)包怎么使用

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

2、使用示例代碼

2.1 創(chuàng)建新地址

在終端進(jìn)入演示代碼目錄,執(zhí)行如下命令:

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

執(zhí)行結(jié)果如下:

Filecoin.PHP開發(fā)包怎么使用

2.2 利用私鑰恢復(fù)地址

在終端進(jìn)入演示代碼目錄,執(zhí)行如下命令:

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

執(zhí)行結(jié)果如下:

Filecoin.PHP開發(fā)包怎么使用

2.3 FIL轉(zhuǎn)賬及余額查詢

在終端進(jìn)入演示代碼目錄,執(zhí)行如下命令:

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

執(zhí)行結(jié)果如下:

Filecoin.PHP開發(fā)包怎么使用

2.4 RPC客戶端調(diào)用示例

在終端進(jìn)入演示代碼目錄,執(zhí)行如下命令:

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

執(zhí)行結(jié)果如下:

Filecoin.PHP開發(fā)包怎么使用

3、使用Filecoin.PHP

FilKit是開發(fā)包的入口,使用這個類可以快速實現(xiàn)FIL轉(zhuǎn)賬、交易確認(rèn)等待和余額查詢等功能。

2.1 實例化FilKit

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

例如,下面的代碼創(chuàng)建一個接入Infura的Filecoin節(jié)點的FilKit實例,并使用指定的私鑰進(jìn)行交易簽名:

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

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

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

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

在創(chuàng)建FilKit實例時指定的Credential對象,將作為默認(rèn)身份憑證執(zhí)行后續(xù)的轉(zhuǎn)賬交易等操作。

  • RpcClient / RPC客戶端

如果使用的Filecoin節(jié)點無需身份認(rèn)證,那么在創(chuàng)建RpcClient時只需傳入RPC URL。例如使用本機(jī)的filecoin節(jié)點:

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

如果使用的Filecoin節(jié)點啟用了授權(quán)TOKEN的認(rèn)證機(jī)制,那么在創(chuàng)建RpcClient時需要傳入授權(quán)TOKEN,例如:

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

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

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

2.2 FIL轉(zhuǎn)賬交易

使用FilKit的transfer()方法進(jìn)行FIL轉(zhuǎn)賬,例如發(fā)送 1.23 FIL

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

注意

  • 轉(zhuǎn)賬數(shù)量應(yīng)轉(zhuǎn)換為最小單位計量的整數(shù)字符串,1 FIL = 10^18 最小單位。

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

    • f01729:ID地址:

    • f17uoq6tp427uzv7fztkbsnn64iwotfrristwpryy:SECP256K1地址

    • f24vg6ut43yw2h3jqydgbg2xq7x6f4kub3bg6as6i:ACTOR地址

    • f3q22fijmmlckhl56rn5nkyamkph4mcfu5ed6dheq53:BLS地址

2.3 等待Filecoin消息確認(rèn)

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

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

默認(rèn)的等待時間是60秒,在此時間內(nèi)沒有等到交易收據(jù)將提示錯誤??梢詡魅氲诙€參數(shù)修改這一默認(rèn)設(shè)置。例如等待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節(jié)點透過其RPC API接口提供了很多有用的功能,使用Filecoin.PHP開發(fā)包的RpcClient類可以訪問所有的Filecoin RPC API。

例如查詢當(dāng)前的鏈頭TipSet,對應(yīng)的RPC API為Filecoin.ChainHead,使用RpcClient對象的調(diào)用代碼如下:

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

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

從上面代碼容易理解:

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

如果RPC API的params數(shù)組包含多個參數(shù),那么依次傳入RpcClient的對應(yīng)方法即可。例如用Filecoin.ChainGetBlock調(diào)用查詢指定的區(qū)塊時,需要傳入?yún)^(qū)塊的CID,使用RpcClient的調(diào)用如代碼如下:

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

到此,相信大家對“Filecoin.PHP開發(fā)包怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

當(dāng)前文章:Filecoin.PHP開發(fā)包怎么使用
標(biāo)題來源:http://www.rwnh.cn/article44/jieoee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、移動網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、關(guān)鍵詞優(yōu)化、營銷型網(wǎng)站建設(shè)動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
兰西县| 宜宾县| 镇坪县| 库尔勒市| 闽清县| 遂宁市| 文安县| 祁连县| 巴东县| 乌拉特中旗| 台东市| 嘉祥县| 花莲县| 清水河县| 阜新市| 沂源县| 桃源县| 繁峙县| 高州市| 岳西县| 榆树市| 乌拉特后旗| 临武县| 沁源县| 卢龙县| 门源| 德钦县| 资源县| 达日县| 荣成市| 方正县| 房产| 襄汾县| 玉环县| 岐山县| 揭阳市| 古浪县| 兴安县| 海南省| 雷波县| 错那县|