php比特币rpc

比特币核心客户端实现了 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

发表评论