PHP developer intro

提供: tezos-wiki
移動先: 案内検索

'ySQL' P 'HP + Bitcoinチュートリアル。

この紹介では、ApacheとPHPを備えたGNU / Linuxサーバーがあり、WebアプリケーションからBitcoinネットワークと対話したいと考えています。私たちは、Bitcoinについての知識とPHPでの経験を前提としています。

これはPHPのために書かれていますが、他の言語にも同じ原則が適用されます。他の言語の情報については関連する APIリファレンスページを参照してください。

最も簡単な方法は、Bitcoinをデーモンモードで実行して、PHPがローカルのHTTPリクエストで通信する方法です。 JSON-RPCと呼ばれるライブラリは、ビットコインのさまざまな機能を呼び出すために使用され、JSONオブジェクトで返されます。

しかし、より洗練されているので、代わりに下記の代替ライブラリの1つを使用することをお勧めします。

Bitcoinを設定する[編集]

Bitcoinデーモンは、 homepageからダウンロードし、付属のバイナリを実行するか、含まれているソースコードからコンパイルしてください。ビットコインの設定の詳細については、Bitcoinの実行中を参照してください。

ビットコインを実行する前に、Bitcoinデータディレクトリ(Linuxでは〜/ .bitcoin / bitcoin.conf)に設定ファイルを作成する必要があります: <source lang = "bash"> rpcuser = user rpcpassword = {セキュアであるために一意のパスワードを選択する必要があります} </ source> このステップを逃すと、ビットコインがあなたに思い出させます。

今すぐbitcoindを実行してください: <source lang = "bash"> $ ./bitcoind #起動するまで数秒待つ $ ./bitcoin-cli getinfo #さまざまな情報が表示されます。エラーが発生した場合は、有用な出力が表示されるまで再試行してください。 $ ./bitcoin-cliヘルプ #コマンドのヘルプを得る、ヘルプの前にダッシュを書き込まない </ source>

Bitcoinは、ネットワークとの同期を開始し、ブロックチェーンの完全なコピーをダウンロードします。 2012年8月現在、このプロセス中に2GB以上のデータをダウンロードして確認する必要があります。完了するまでに2時間以上かかることがあります。ブロック数がcurrent countに達すると、いつ完了したかを知ることができます。

Getinfo(BitcoindのHello Worldバージョン)[編集]

Bitcoinが初期化プロセスを終了したと仮定します。 JSON-RPC PHPからjsonRPCClient.phpファイルをダウンロードし、Webアクセス可能な場所に置きます。

次に、PHPファイルを作成し、ブラウザでテストしてテストします。

<source lang = "php">   require_once 'jsonRPCClient.php';      $ bitcoin = new jsonRPCClient( 'http:// user:password@127.0.0.1:8332 /');    

  echo "
 \ n";
  print_r($ bitcoin-> getinfo());
  echo "</ pre>";
</ source>

   jsonRPCClientライブラリはfopen()を使用し、ビットコインドから404または500のエラーを受け取った場合、「Unable to connect」という例外をスローします。これにより、ビットコインによって生成されたエラーメッセージ(ステータス404または500で送信されるため)が表示されなくなります。下記の[#Alternative_Libs_For_RPC | Alternative Libraries]は、JSON-RPC PHPと機能は似ていますが、この問題はありません。

精度[編集]

Bitcoinの金額は、1 Satoshi(0.00000001 BTC)から2,100,000,000,000,000(21,000,000 BTC)までの範囲です。丸め誤差を避けるには、精度を損なうことなく、PHP実装がBitcoin値の全範囲をサポートしていることを確認する必要があります。ほとんどのPHP実装では、53ビット精度のIEEE 64ビット倍精度浮動小数点数が使用されています。これは、ビットコインの全範囲を正しく表すのに十分です。

詳細は、Proper Money Handling(JSON-RPC)を参照してください。

PHPの実装が64ビットの数値をサポートしていない場合(これは非常にまれです)、文字列として値を送るビットコインドのバージョンを使用する必要があります(genjixはhttp://github.com/genjix/bitcoinでフォークを維持します)関連するすべての計算にはGMPライブラリとBC Mathライブラリを使用してくださいビットコイン額。

アカウント[編集]

Bitcoinでは、お金が住所に送られ、多くの住所が1つの財布に保管されます。ビットコインにデフォルトで表示される残高は、ウォレット内のすべてのアドレスのビットコインの合計です。

Bitcoinはもう一歩を踏み出す。あなたは[[アカウント説明|アカウント]を持つことができます。各アカウントは複数のアドレスを保持し、ミニビットコアのように機能します。

<source lang = "bash"> $ ./bitcoin-cli listaccounts #アカウント一覧と各自のさまざまな情報を表示する $ ./bitcoin-cli getaccountaddress user889 #アカウントに固有の金額を受け取るアドレスを取得するuser889 $ ./bitcoin-cli getbalance user889 #アカウントによって所有されている住所のすべての金額の合計を取得するuser889 </ source>

アプリケーションでは、各ユーザーに固有のユーザー名が必要です。次に、$ bitcoin-> getaccountaddress( "user889")を使用して、ビットコインドに一意のアドレスを問い合わせることができます。 [user889の最初のアドレスを取得]または$ bitcoin-> getnewaddress( "user889"); [user889の新しいアドレスを作成します]。

顧客はこの住所に預金します。

$ bitcoin-> getbalance( "user889"、4);を実行すると、その顧客の資金を確認できます。 4は、この支払いが有効であることを前提として承認される最低確認数を示しています。

複数の預金と引き出しのアカウントを長期間使用する場合は、自分のデータベースでユーザー残高を追跡することを検討することをお勧めします。これにより、アプリケーションのアカウント間の転送が簡単になり、Bitcoinウォレットからアカウントを切り離すことができます。

getnewaddressとgetaccountaddressの比較[編集]

getnewaddressを使用すると、悪意のあるエージェントがアプリケーションを流れる支払いを追跡しにくくすることで、ユーザーの匿名性を高めることができます。ただし、getnewaddressを頻繁に実行すると、ウォレットに空のアドレスがいっぱいになることがあります。

したがって、何らかの方法で、各ユーザーが要求できる未使用アドレスの数を制限することをお勧めします。セッションを使用した例を次に示します。 <source lang = "php"> <?php     require_once( 'jsonRPCClient.php');     $ bitcoin = new jsonRPCClient( 'http:// root:root@127.0.0.1:8332 /');     #今すぐユーザーアカウントで適切な資金を確認する     試して{         $ username = ...         if(isset($ _ SESSION ['sendaddress']))             $ sendaddress = $ _SESSION ['sendaddress'];         else {             $ sendaddress = $ bitcoin-> getnewaddress($ username);             $ _SESSION ['sendaddress'] = $ sendaddress;         }         $ balance = $ bitcoin-> getbalance($ username);     }     catch(Exception $ e){

        死ぬ(「

サーバーエラー!管理者に連絡してください。</ p>」);     } ?> </ source> これにより、新しいセッションが始まるたびに新しいアドレスが作成され、セッション変数に格納されます。

RPCの代替ライブラリ[編集]

プレーンなjsonRPCClient.phpクラスを使用することより推奨されるビットコードRPCに接続するための代替PHPライブラリがあります。 彼らは魔法の__callに依存せず、fopenの代わりにcURLを使用し、エラー処理が優れています(そして作曲家を使ってインストールできます)。

関連項目[編集]

es:PHP導入の紹介 de:Einführung_für_PHP-Entwickler

Category:開発者