3

私はビットコイン中心のウェブサイトを立ち上げようとしていますが、ホストによる制限により、サーバーでビットコインデーモンを実行せずに次のアクションを実行できるようにする必要があります。

  1. 新しいビットコインアドレスを作成する ( getnewaddress($account))
  2. そのアドレスでコインを受け取ります。受け取った金額を確認する ( getreceivedbyaccount($account, $minconf=1))
  3. sendfrom($fromaccount, $tobitcoinaddress, $amount, $minconf=1, $comment="", $comment-to="")アドレス ( )にコインを送る

これらはすべて、既存のjson-rpc php クライアント内に存在する関数ですが、すべてサーバー上で実行中のビットコイン デーモンに依存しています。

「lazy api」も読みましたが、別のサービスに依存してブロック データを取得したり、ビットコインを送信したりしたくありませんでした。

tl;dr: デーモンの実行を必要としないバージョンの bitcoin php API が必要です。最低限、上記の機能が必要です。

4

6 に答える 6

0

TL;DR; : ある種のビットコイン クライアント実行せず、サード パーティを信頼しないことは不可能です。

サードパーティがアカウントの残高を教えてくれることを信頼することは可能ですが、getnewaddressまたはを使用するとすぐにトランザクションに署名するために必要な秘密鍵をサードパーティが処理することを信頼する必要がありますsendfrom。これはおそらくあなたが望むものではありません行う。

私が見る限り、可能性のある最小限の解決策は、http://blockchain.infoなどのサードパーティを使用して残高を追跡し (outputsトランザクションを送信するときに請求できる支出可能額を読み取ります)、着信トランザクションについて通知する通知サービス (いくつかはこちらの代替としてリストされていますhttps://en.bitcoin.it/wiki/BitcoinNotify )。

トランザクションを受信できるようにするには、Web サイトでユーザーを表示するための新しいアドレスを作成するだけです。PHP でこのようなアドレスを作成することは難しくありません。wiki を参照してください

送信部分については、以下が含まれるため、かなり難しくなります。

  • 出力の収集;
  • 一致する署名を提供することにより、それらを主張します。
  • 目的のアドレスへの新しい出力を作成します。
  • トランザクション内のすべてを組み合わせて、P2P プロトコル仕様にシリアル化します。
  • P2P ネットワークに接続し、トランザクションをピアに送信します。

ご覧のとおり、トランザクションを送信しようとすると、すぐに複雑になります。トランザクションの送信が絶対に必要でない場合は、トランザクションを受信できるアドレスのリストをサーバーに提供することをお勧めしますBitAddressを使用すると、この目的のためだけに秘密鍵とアドレスのペアを作成できます。

于 2013-01-05T13:17:25.993 に答える
0

Blockchain.info は、Bitcoinand JSON rpc 互換の API を提供します。

http://blockchain.info/api/json_rpc_api

于 2012-08-23T03:06:42.213 に答える
0

現在、そのような機能はありません。bitcoind がネイティブ PHP やブラウザで実行できる Java アプレットに移植されたという話を聞いたことがありますが、どこかにデーモンのないビットコインは存在しません。

あるいは、自宅で十分に信頼できるセットアップがあれば、リグをビットコイン専用にして、ルーター設定で適切なポートを転送することができます. 通常、住宅用インターネットでサイトをホストできない唯一の理由は、ISP がポート 80 をブロックしているからです。彼らは 8337 をブロックしません (ブロックする場合はとにかく設定可能です)。PHP API は、あたかも同じボックス上にあるかのように、ネット上で同じように bitcoind に接続できる必要があります。

于 2011-08-11T04:55:28.010 に答える
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 に答える
-1

オープン ソースの GoUrl.io Bitcoin-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 に答える