比特币核心客户端实现了 JSON-RPC 接口,这个接口也可以通过命令行帮助程序 bitcoin-cli 访问。命令行可以使用 API 进行编程,让我们有能力进行交互实验。
php-bitcoinrpc的git地址https://github.com/denpamusic/php-bitcoinrpc
在composer.json中加入包后composer install
{
"require": {
"denpa/php-bitcoinrpc": "^2.0"
}
}
在工程入口处引入autoload.php,就可以使用btcRpc api,参照api列表可以进行相应的功能开发。
demo.php
<?php
require 'vendor/autoload.php';
use Denpa\Bitcoin\Client as BitcoinClient;
class BtcRpcApi{
private $bitcoind;
public function __construct(){
$this->bitcoind = new BitcoinClient([
'scheme' => 'http',
'host' => '127.0.0.1',
'port' => 18332,
'user' => 'rpcuser',
'password' => 'rpcpwd',
]);
}
public function getBlock($blockHash)
{
$block = $this->bitcoind->getBlock($blockHash);
$result = $block->getContainer();
if($result['result']){
return $result['result'];
}
return false;
}
public function getTxDetail($txid)
{
$tx = $this->bitcoind->getrawtransaction($txid, 1);
$result = $tx->getContainer();
if($result['result']){
return $result['result'];
}
return false;
}
public function getBlockHash($blockNumber)
{
$hash = $this->bitcoind->getblockhash($blockNumber);
$result = $hash->getContainer();
if($result['result']){
return $result['result'];
}
return false;
}
}
$btc = new BtcRpcApi();
$block = $btc->getBlockHash(1);
var_dump($block);
config中输入rpcuser和rpcpassword