Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 比特币api不依赖于正在运行的比特币守护进程?_Php_Api_Json Rpc_Bitcoin - Fatal编程技术网

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

Php 比特币api不依赖于正在运行的比特币守护进程?,php,api,json-rpc,bitcoin,Php,Api,Json Rpc,Bitcoin,我正在尝试建立一个以比特币为中心的网站,由于主机的限制,我需要能够执行以下操作,而无需在任何服务器上运行比特币守护程序: 创建新的比特币地址(getnewaddress($account)) 在该地址接收硬币;确定收到的金额(GetReceivedByaAccount($account,$minconf=1)) 将硬币发送到某个地址(sendfrom($fromcount,$tobitcoinaddress,$amount,$minconf=1,$comment=“”,$comment to=“

我正在尝试建立一个以比特币为中心的网站,由于主机的限制,我需要能够执行以下操作,而无需在任何服务器上运行比特币守护程序:

  • 创建新的比特币地址(
    getnewaddress($account)
  • 在该地址接收硬币;确定收到的金额(
    GetReceivedByaAccount($account,$minconf=1)
  • 将硬币发送到某个地址(
    sendfrom($fromcount,$tobitcoinaddress,$amount,$minconf=1,$comment=“”,$comment to=“”))
  • 这些都是存在于现有php客户端中的函数,但它们都依赖于服务器上运行的比特币守护进程


    我也读过“lazyapi”的内容,但我不希望依赖其他服务来获取块数据或发送比特币


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

    目前,不存在这样的功能。我听说比特币被移植到本机PHP或可以在浏览器中运行的Java小程序,但没有比特币没有守护进程——尽管你可能可以用MtGox Merchant API管理这些基本功能


    或者,如果您在家里有足够可靠的设置,您可以将一个装备专用于比特币,并在路由器设置中转发适当的端口。你通常不能在你的住宅互联网上托管站点的唯一原因是ISP阻止端口80;他们不会阻止8337(如果他们阻止了,无论如何都是可配置的)。PHP API应该能够通过“网络”连接到Bitcoin,就像它在同一个框中一样。

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


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

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

    据我所知,一个可能的最低解决方案是使用第三方,例如,跟踪余额(阅读发送交易时您可以申请的可支出
    输出
    ),并使用通知服务告诉您有关传入交易的信息(此处列出了一些备选方案)

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

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

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

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

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

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

    从bitseed.xf2.org或chainparams.cpp源代码中的硬编码对等列表:

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


    充其量,您需要一个服务提供商提供的API,该API允许创建钱包和进行交易查询

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

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

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

    • 生成公钥(HD)

    • 检查余额并接收通知

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

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

    • 创建P2SH付款地址,通过M-of-N multisig提取

    • 导入和扫描私钥


    我想现在就要一个PHP端口。如果不是因为他们最近被黑客攻击的事实,我会使用MtGox API。“但我不想依靠其他服务来获取区块数据或发送比特币。”我不会-1,因为我有点含糊不清,但我知道并知道blockchain.info API,但这根本不能回答我的问题。
        <?
            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>