CLIでのBitcoin生成
シンプルなbitcoin用ウェブインターフェースを作ろうとしていて(本格的なwx/GTK GUIよりも軽量でステートレスなもの)、検証中の生成ブロックのステータスを確認する方法が見当たらない…残高が50ジャンプするのは見たが、もちろんそれはgetallreceivedには表示されない。
ヘッドレスのコイン生成マシンにとって、すぐにステータスを確認できると良い。少なくとも、確認待ちのブロックが30あるのか、まだ最初の1つを取得しようとしているのかが分かると良い…純粋に自動化されていて残高のチェックと転送だけなら、それは問題ではないが。
さらに、GUIクライアントではトランザクションは見つかった時点で表示されるが、getallreceivedはブロックが経過した後にのみトランザクションを表示する…しかし残高は適切な量だけすぐにジャンプする。
気の毒な神経質な顧客が支払いが通るかどうか心配して行ったり来たりしている姿が想像できるが、本当はその必要はない。悪意のあるマシンが勝利ブロックを生成して自分の支払いを除外すれば、これはシステムを騙すために使える可能性はあるが、確認がまだ0の段階でも何かが起きているという即座の表示があると良い。「確認がまだ0の間はトランザクションを受け入れるな」という警告タグ付きであっても…0確認のトランザクションを含む別の関数はどうだろうか? そのトランザクション後の最小ブロック数を指定するオプションパラメーターは? (getallreceived 1で現在の動作、またはただのgetallreceived、getallreceived 5は慎重派向け、getallreceived 0で即座の確認)
そのトランザクション後の最小ブロック数を指定するオプションパラメーターは? (getallreceived 1で現在の動作、またはただのgetallreceived、getallreceived 5は慎重派向け、getallreceived 0で即座の確認)
ああ、実際にそういう仕組みだ。getallreceived 0で望むことができるはずだ。(現在はlistreceivedbyaddress 0に名前が変更されている)デフォルトは1確認だが、実際にはほとんどのデジタル商品やサービスは0確認で問題ないと思う。その通り、0確認以上が必要な場合は、未確認と利用可能残高の2つの数字を表示すれば、トランザクションが通ったことをすぐに確認できる。
listreceivedbyaddress [minconf=1] [includeempty=false]
[minconf]は支払いが含まれる前の最小確認数だ。
[includeempty]はまだ支払いを受けていないアドレスを含めるかどうかだ。
以下を含むオブジェクトの配列を返す:
“address” : 受取アドレス
“label” : 受取アドレスのラベル
“amount” : アドレスが受け取った合計金額
“confirmations” : 含まれる最新トランザクションの確認数
アドレスにユーザー名でラベルを付けている場合はlistreceivedbylabelも使える。
今のところ、ウェブ加盟店向けの機能に集中しており、ヘッドレスコイン生成器のリモート管理用の機能にはまだあまり取り組んでいない。
へへ、r78に更新する際にrpc.cppを眺めていたら見つけた……ちなみに、debian lenny backportsのGCC 4.3.4ではちゃんとコンパイルできない。net.hのDEFAULT_PORTを#defineに変更しなければならなかった。なぜかhtons()が変数宣言で許可されなかったからだ……おそらく最良の解決策ではないが、短期的にはうまくいった 😉
ヘッドレスのコイン生成マシンにとって、すぐにステータスを確認できると良い。少なくとも、確認待ちのブロックが30あるのか、まだ最初の1つを取得しようとしているのかが分かると良い…純粋に自動化されていて残高のチェックと転送だけなら、それは問題ではないが。
+1この情報にアクセスする方法はあるだろうか?EDIT(2010年6月4日): まず最初に、自分はCプログラマではない。そう前置きした上で、自分用に極めて不格好でハック的なJSON-RPCメソッド “listgenerated” を書いた。基本的にはui.cppからトランザクション一覧を構築するコードを取って、RPCメソッドにコピーした。それから、コンパイルが通るまで部分的に削除した。正しく動作しないと確信しているが、ブロックを生成したことは表示してくれる、それが必要なすべてだ。パッチが欲しい人がいたらPMしてほしい。とはいえ、開発者からの本物の実装を待った方がいいだろう。