本篇內(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é)點的輕量級部署場景。
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ā)包的主要代碼文件清單見官網(wǎng)說明:http://sc.hubwiz.com/codebag/filecoin-php-lib/
在終端進(jìn)入演示代碼目錄,執(zhí)行如下命令:
~$ cd ~/filecoin.php/demo ~/filecoin.php/demo$ php NewAddressDemo.php
執(zhí)行結(jié)果如下:
在終端進(jìn)入演示代碼目錄,執(zhí)行如下命令:
~$ cd ~/filecoin.php/demo ~/filecoin.php/demo$ php RestoreAddressDemo.php
執(zhí)行結(jié)果如下:
在終端進(jìn)入演示代碼目錄,執(zhí)行如下命令:
~$ cd ~/filecoin.php/demo ~/filecoin.php/demo$ php FilTransferDemo.php
執(zhí)行結(jié)果如下:
在終端進(jìn)入演示代碼目錄,執(zhí)行如下命令:
~$ cd ~/filecoin.php/demo ~/filecoin.php/demo$ php demo-rpc-client.php
執(zhí)行結(jié)果如下:
FilKit是開發(fā)包的入口,使用這個類可以快速實現(xiàn)FIL轉(zhuǎn)賬、交易確認(rèn)等待和余額查詢等功能。
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)制字符串格式的私鑰 );
使用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地址
使用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秒鐘
使用getBalance()
方法查詢指定地址的FIL余額,例如:
$addr = 'f1saxri7cpyz2cm767q77u3mqumrggljrmi5iqdty'; // 要查詢的Filecoin地址 $balance = $kit->getBlanace($addr); // 查詢FIL余額,最小單位表示 echo 'balance => ' . $balance . PHP_EOL; // 顯示FIL余額
注意:返回的余額為最小單位表示,1 FIL = 10^18最小單位。
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)