3

I'm trying to get a bitcoin-centric website going, and I need to be able to perform the following actions without having a bitcoin daemon running on any server due to limitations in place by my host:

  1. Create a new bitcoin address (getnewaddress($account))
  2. Receive coins at that address; determine how much was received (getreceivedbyaccount($account, $minconf=1))
  3. Send coins to an address (sendfrom($fromaccount, $tobitcoinaddress, $amount, $minconf=1, $comment="", $comment-to=""))

These are all functions that exist within the existing json-rpc php client, but all of which depend on a running bitcoin daemon on a server.

I did read through the "lazy api" stuff as well, but I would rather not depend on another service to get the block data or send the bitcoins.

tl;dr: I need a version of the bitcoin php api which does not need the daemon running, with at a bare minimum the functions described above.

4

6 回答 6

0

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

http://blockchain.info/api/json_rpc_api

于 2012-08-23T03:06:42.213 回答
0

TL;博士; :不运行某种比特币客户端并且不信任第三方是不可能的。

虽然可以信任第三方告诉您帐户余额,但您必须信任第三方来处理签署交易所需的私钥,只要您使用getnewaddresssendfrom,这可能不是您想要的做。

据我所知,一个可能的最小解决方案是使用第三方,例如http://blockchain.info来跟踪余额(阅读outputs您在发送交易时可以申请的可花费),并使用通知服务来告诉你传入的交易(有些被列为替代品在这里https://en.bitcoin.it/wiki/BitcoinNotify)。

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

现在对于发送部分,这将变得更加困难,因为它涉及:

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

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

于 2013-01-05T13:17:25.993 回答
0

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

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

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

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

  • 生成公钥 (HD)

  • 检查余额并接收通知

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

  • 创建凭证和纸质钱包(已发布私钥)

  • 创建 P2SH 支付地址,通过 M-of-N 多重签名提款。

  • 导入和扫描私钥

https://coinkite.com/faq/developers

于 2014-12-17T00:31:49.127 回答
0

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

https://github.com/zamgo/PHPCoinAddress

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

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

于 2013-06-21T06:17:22.690 回答
0

目前还没有这样的功能。我听说将 bitcoind 移植到本地 PHP 或可以在浏览器中运行的 Java 小程序,但是没有某个地方没有守护程序的比特币- 尽管您可能可以使用 MtGox Merchant API 管理这些基本功能。

或者,如果您在家中有足够可靠的设置,您可以专门为 bitcoind 配备一个钻机,并在您的路由器设置中转发适当的端口。您通常不能在住宅互联网上托管站点的唯一原因是 ISP 阻止了端口 80;他们不会阻止 8337(如果他们这样做,无论如何都是可配置的)。PHP API 应该能够通过网络连接到 bitcoind,就像它在同一个盒子上一样。

于 2011-08-11T04:55:28.010 回答
-1

您可以使用开源 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>
于 2014-10-30T15:37:46.653 回答