【faucet開発】JSON-RPCでmonacoindを操作してみる – その1

monacoindとは

monacoind はウォレットやfaucetアプリを開発するための基盤となるソフトウェアです。前回の記事に構築手順を記載していますので、詳しくはそちらをご参照ください。

今回は、このmonacoindを使ってモナーコインアドレスを作ったり入金したりなど色々と遊んでみます。

JSON-RPCリクエスト

monacoindはphpやらpythonやらrubyやら様々な言語で操作することができますが、今回は特定の言語に依存せず汎用的に使えるJSON-RPCを使ってみます。基本的にはbitcoindと同じAPIが使えるようですので、こちらのリファレンスを参考に叩いてみます。

getinfo

まずは前回やったgetinfoです。これはmonacoindの状態を調べるAPIです。

引数

なし

実行例:

返り値: ネットワークやクライアントの情報が返る

getnewaddress

モナーコインアドレスを新規発行するAPIです。引数にアカウント名を指定します。リクエストを投げる度に新しいアドレスが発行されます。

引数

1: str,アドレスに紐付けるアカウント名(デフォルト:””)

実行例: masakiというアカウントにモナーコインアドレスを発行する

返り値: 発行したモナーコインアドレスが返る

listaccounts

monacoindに登録されているアカウントとその残高を取得するAPIです。ちょっとクセがあるのですが、このAPIはリクエストを投げた時点での残高を返すので、実際の残高とはタイムラグが生じます。例えば、10MONAを持っていて、誰かに8MONAを送金した直後にこのAPIを叩くと、期待される返り値は2MONAですが、承認までに時間がかかるため0MONAが返る可能性があります。

引数

1: int,残高として計上する最低承認数(デフォルト:1)
2: bool,読み込み専用アドレスを含むか否か(デフォルト:false)

実行例: 全アカウントの情報を取得する

返り値: アカウント毎の残高が返る

getbalance

対象のアカウントに紐付くアドレスの残高の総額を取得するAPIです。

引数

1: str,取得対象のアカウント名(デフォルト:””)
2: int,残高として計上する最低承認数(デフォルト:1)

実行例: 承認回数6回以上のmasakiの残高を表示する

返り値: 残高が返る

getaddressesbyaccount

対象のアカウントに紐付くモナーコインアドレスを取得するAPIです。

引数

1: str,取得対象のアカウント名(デフォルト:””)

実行例: masaki に紐付くモナーコインアドレスを取得する

返り値: モナーコインアドレスが返る

getaccount

getaddressesbyaccountの逆で、アドレスからアカウントを逆引きするAPIです。

引数

1: str,アカウントを逆引きしたいMONAコインアドレス(デフォルト:””)

実行例: MTSE9MeWDc19EDZK4wT4hkxcgi6BbuZYbw に紐付くアカウントを取得する

返り値: アカウント名が返る

encryptwallet

monacoindにパスフレーズを設定して送金処理をロックするAPIです。セキュリティを厳重にするためにも、monacoindは基本的にロックしておいて、送金時のみ一時的に解除する運用が望ましいです。このAPIを叩くと、monacoindは強制的に停止されますので実行するタイミングには注意してください。再起動後からロックが有効となります。ロックを解除するには walletpassphrase を使用します。

引数

1: str,ロックパスワード

実行例: passというパスフレーズでロックする

返り値: 再起動後からロックが有効となる旨メッセージが返る

walletpassphrasechange

encryptwalletで設定したパスフレーズを変更するAPIです。

引数

1: str,現在のパスワード
2: str,新しいパスワード

実行例:

返り値: 正常時はnullが返る

返り値: パスフレーズを間違えるなど異常時はエラーが返る

walletpassphrase

ロックを解除して送金可能な状態にするAPIです。第2引数でロックを解除する期間を秒数で指定します。

引数

1: str,ロックを解除するためのパスフレーズ
2: int,ロックを解除する秒数

実行例:

返り値: 正常時はnullが返る

返り値: パスフレーズを間違えるなど異常時はエラーが返る

walletlock

walletpassphrase のロック解除期間内でも、強制的に再ロックをかけるAPIです。送金処理が完了したら直ちに再ロックをかけるよう心がけましょう。

引数

なし

実行例: ロックをかける

返り値: nullが返る

いったんおわり

送金処理まで試してみようと思ったのですが、まとめるのに思いのほか時間がかかってしまったので今日はここまでにします。続きはまた次回に書きます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする