【備忘録】【ビットコイン】PHPでコマンド打てるようにしてみた

www.meinashi.info

 

 

前回、BitcoinCoreを入れてみたのはいいものの、phpで関数呼び出しても結果が帰ってこないというところまでやったわけですが……

もうね……原因がさっぱりわからん

ビットコイン PHPで検索したら

BTC/PHPが出てくるんだもんよ

そんなわけでわかるところから調べるしかなかったわけですが

 

qiita.com

Bitcoin Coreで調べたら出てきたサイト

このサイト見るに、こっちが使用したい操作はbitcoin-cliなるものを使ってやってるっぽい

で、このbitcoin-cli

Bitcoin Coreをインストールしたフォルダにdaemonフォルダがあるわけですが、そのなかにbitcoin-cli.exeなるものがあるわけですよ

これはもうピンときましたね

cmd起動して該当フォルダに移動して 

 

bitcoin-cli.exe getnetworkinfo

 

と入力してやれば情報が表示……されない!

それもそのはず、今回立ち上げてるのはtestnetなんで、ちゃんとtestnetにつないであげないといけない

 

bitcoin-cli.exe -testnet getnetworkinfo

 

というかんじで-testnetを追加したらうご……かない!

何やらnameとpassを設定してくれよーみたいな感じでエラーが出るんですが、いやいやbitcoin.confに書いたやん?

デモなんかよく見てみると前から出てきてたAppData下に用意してくれよ、みたいなのが書いてあった気がしたので行ってみたらフォルダができあがってたので、前に作ったbitcoin.confをコピペ

改めて試してみたら、ネットワークの情報が表示されました! やったね!

 

……で?

いやいや別にbitcoin-cliをたたきたかったわけじゃないですし……

ただまあこれでBitcoin Coreが正常に動いてるっぽいことは確認できました

しかしphpの方を動かしても帰ってくるのはfalseだけ……

利用してるライブラリが古いのか……?

というかそもそも、このソースコード、サンプルだと$bitcoin->getinfo()って関数呼び出してるけど、ファイルの中身見たらそんな関数ないじゃん?

__call関数があるだけじゃん

っていうか__call関数ってなんだよ?

と思って調べてみたら

 

hensa40.cutegirl.jp

どうもprotectedやらprivateやらの関数を呼び出すためのものらしい

いやprotectedもprivateもそもそも関数が何もないんですがそれは……

と、思いながらページの中を読んでたら……これあれか、メソッドを呼び出すんじゃなくて、呼び出そうとした関数の名前を取得できるのか……

で、その名前から判断して内部でメソッドを呼び出すよっていう仕組みなのね

じゃあ今使ってるeasybitcoin.phpの中身はどうなってんの?

と思って見てみたら……

メソッド名と引数がそのままリクエストパラメータに設定されて、testnetのアドレスに送信されていると

うーん……これだけ見るとちゃんと動くはずなんだけどな……

と思って、試しに$bitcoin->getbalance()と宣言して、残高撮ってみようと試してみたら……

返って来たよ!

これは……つまり……あれか?

環境が悪かったんじゃなくて、サンプルで使われてたgetinfoのコマンドがバージョンアップか何かで使えなくなったと……そういうことですか……?

もう……あれだ……

それに気づくまでめっちゃ時間かかったよ!

ツラタン過ぎる……

 

 

超ど素人がはじめる仮想通貨投資

超ど素人がはじめる仮想通貨投資

  • 作者:seiya
  • 発売日: 2019/02/21
  • メディア: Kindle版
 
仮想通貨3.0

仮想通貨3.0