2014年12月27日土曜日

【Bitcoin】BtcboxのAPIを使う時に必要なnonceを生成する方法

Mt.Goxが倒産してしまってからというもの、日本円でbitcoinを入手種するのはちょっと面倒だった。方法がないわけではなかったが、一度リンテンドルを購入するなどの方法を取る必要があった。
これはこれでクレジットカードでbitcoinを入手できるなどの利点がったが、手数料も2回かかるためどうしても目減りが大きくなる。

Mt.Goxの一件以降、一通りの騒ぎがおさまってbitcoinの価値がある程度安定し、且つ適度な不安定さの幅に入ってくると、株やFXと同じような投機対象としてbitcoinを見ることができるようになる。そうなると手数料が2回取られるのは困る。
もちろん、そのようなことは既に皆考えており、すでに日本円から直接bitcoinを購入できる取引所がいくつかできはじめている。

しかし、時々刻々変化するbitcoinの価格に対してこまめに売り買いの注文を入れていこうとすると、ずっと人間が張り付きで売り買いの操作をするのはつらい。
できれば、ある程度自動化したい。
Mt.Goxでは、売買の注文に関するAPIが公開されており、ちょっとしたプログラムの知識があれば、そのあたりを自動化することは可能であった。
Mt.Goxに代わって、日本円からbitcoinを直接売買でき、取り引きで使えるAPIが公開されている取引所にBtcboxがある。
ヘルプページにAPIについての説明がある。
これを使えば、Btcboxのサーバーにアクセスして円/btcの自動売買が可能になる。

ただ、このAPIの説明、ちょっと不親切だ。必要最低限のことは書かれているということなのだろうが、もう少し丁寧にサンプルコードを示しながらの説明などがあってもいいように思う。
特に、nonceの生成に関しては、Wikipediaを参照URLに挙げているだけで、説明らしい説明が見当たらない。
しかも、説明の本文は英語なのにWikipediaはなぜか中国語版のページが挙げられている。
nonceの説明としては唯一"Can be understood as an increasing integer"という短い文がWikipediaのURLの前に添えられているのみだ。
直訳を試みれば「増加する整数として理解できる」というところか。

何のことだかさっぱりわからず、ネットで検索すればするほど訳がわからなくなっていた。
いろいろ調べた結果、どうやらBtcboxの場合、nonceは好きな整数をユーザー側で勝手に生成すれば良いようだ。
ただし、同じ整数は使えない。
つまり最も簡単にBtcboxのAPIで使用するnonceを生成する方法は、0から順に1ずつ使い捨てにしていけばよい。したがって、「増加する整数」と説明されているわけだ。
ただし、途中でどこまで使ったかわからなくなるとまずいので、Btcboxから示されるPHPの例では、そのときの時刻から数字を抜き出して整数になる文字列を生成している。

その他はそれなりに説明もされているので、それほど迷うこともないだろう。
これで円/btcの自動売買プログラムが作成できる。

0 件のコメント: