比特币api不依赖于运行的比特币守护进程?

时间:2011-08-05 23:17:32

标签: php api json-rpc bitcoin

我正在尝试以比特币为中心的网站,我需要能够执行以下操作,而不会在任何服务器上运行比特币守护程序,因为我的主机有限制:

  1. 创建新的比特币地址(getnewaddress($account)
  2. 在该地址领取硬币;确定收到了多少(getreceivedbyaccount($account, $minconf=1)
  3. 将硬币发送到地址(sendfrom($fromaccount, $tobitcoinaddress, $amount, $minconf=1, $comment="", $comment-to="")
  4. 这些是现有json-rpc php客户端中存在的所有函数,但所有函数都依赖于服务器上运行的比特币守护程序。

    我也读过“懒惰api”的内容,但我宁愿不依赖其他服务来获取块数据或发送比特币。

    tl; dr:我需要一个版本的比特币php api,它不需要运行守护进程,至少具有上述功能。

6 个答案:

答案 0 :(得分:1)

Blockchain.info提供了与Bitcoind JSON rpc兼容的API。

http://blockchain.info/api/json_rpc_api

答案 1 :(得分:1)

TL; DR; :没有运行某种比特币客户不信任第三方。

虽然可以信任第三方告诉您帐户的余额,但是一旦您使用getnewaddress或{sendfrom或{outputs,您就必须信任第三方处理签署交易所需的私钥{1}},这可能不是你想要做的。

据我所知,一个可能的最小解决方案是使用第三方(例如http://blockchain.info)来跟踪余额(阅读发送时可以声明的可用费用{{1}}事务),并使用通知服务告诉您有关传入的事务(有些在此处列为替代事项https://en.bitcoin.it/wiki/BitcoinNotify)。

现在,只需创建一个新地址即可显示网站上的用户,以便能够接收交易。在PHP中创建这样的地址应该不难,只需看一下wiki

现在对于发送部分来说,这将会非常困难,因为它涉及:

  • 收集产出;
  • 通过提供匹配的签名来声明它们;
  • 创建所需地址的新输出;
  • 将事务中的所有内容组合在一起并将其序列化为P2P protocol specifications;
  • 连接到P2P网络并将交易发送给对等方。

因此,当您尝试发送交易时,您可以看到它变得很复杂。如果不是绝对需要发送事务,我建议只向服务器提供一个可以接收事务的地址列表BitAddress允许您为此目的创建私钥/地址对。

答案 2 :(得分:1)

如果您只想生成比特币地址和私钥,请尝试:

https://github.com/zamgo/PHPCoinAddress

也许我们可以构建一个脚本,只是为了找到20个比特币对等节点来广播我们的交易。

来自bitseed.xf2.org的

或chainparams.cpp中的硬编码对等列表源代码: https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery

答案 3 :(得分:1)

充其量,您需要来自服务提供商的API,该API允许创建钱包和交易查询。

正如您正在寻找:创建,发送,接收 - 这意味着您将需要一个托管此服务的服务:

Coinkite可能是一个不错的选择,因为大多数比特币操作都可以通过API完成:

  • 通过电子邮件,短信或比特币地址发送和请求比特币

  • 生成公钥(HD)

  • 检查余额并接收通知

  • 在HSM或多重签名帐户中安全存储比特币

  • 创建优惠券和纸币(已发布私钥)

  • 创建P2SH付款地址,通过M-of-N multisig撤销。

  • 导入和扫描私钥

https://coinkite.com/faq/developers

答案 4 :(得分:0)

目前,不存在此类功能。我听说过将bitcoind移植到原生PHP或可以在浏览器中运行的Java applet的谈话,但是没有比特币没有守护进程某处 - 尽管你可以用这个来管理这些基本功能MtGox Merchant API。

或者,如果您在家中拥有足够可靠的设置,您可以专门使用钻机来比特币并转发路由器设置中的相应端口。您通常不能在您的住宅互联网上托管网站的唯一原因是ISP阻止端口80;他们不阻止8337(如果他们这样做也可以配置)。 PHP API应该能够在网络上连接到bitcoind,就好像它在同一个盒子上一样。

答案 5 :(得分:0)

您可以使用开源GoUrl.io比特币-PHP支付库 -

https://github.com/cryptoapi/Payment-Gateway

    <?
        require_once( "cryptobox.class.php" );

        $options = array( 
        "private_key" => "",        // private key from gourl.io
        "orderID"     => "your_product1_or_signuppage1_etc",
        "amountUSD"   => 2          // 2 USD
        );  

        // Initialise Payment Class
        $box1 = new Cryptobox ($options);

        // Display Payment Box or successful payment result   
        $paymentbox = $box1->display_cryptobox();

        // A. Process Received Payment
        if ($box1->is_paid()) 
        { 
            // Your code here to handle a successful cryptocoin payment
            // ...
        }  
        else $message .= "The payment has not been made yet";
    ?>
    <!DOCTYPE html>
    <html><head></head>
    <body>
    <?= $paymentbox ?>
    <?= $message ?>
    </body>
    </html>