Q&A

よくある質問(Q&A)

着金トリガーサービスとはどんなサービスですか?

JavaScript(Node.js)を使ったプログラムにより仮想通貨の入金を監視することができます。当サービスは仮想通貨(リップル/XRP、ネム/XEM、そして、シンボル/XYM)の入金を監視し、通知があった場合に指定されたURLのプログラムにPOSTリクエストを送信するものです。
※この仕組みはwebhookやイベントトリガーなどと呼ばれています。

このサービスは有料ですか?

当サービスは仮想通貨のアドレスを1個まで無料で登録しご利用いただけます。2個以上の登録を望まれる場合には、会費(年額にして2,400円)をRipple(XRP)、NEM(XEM)、又は、Symbol(XYM)で支払うことにより5個(現在、キャンペーン中で10個)まで登録可能となります。日割り計算していますので、任意の金額をご送金でき、必要な日数だけご利用可能です。ただし、日額に満たない金額は切り捨てになりますことをご了承ください。詳しくは、こちらをご覧ください。⇒ 会費のお支払い

このサイトの利用の仕方を教えてください?

1.まず、会員登録(無料)が必要です。

2.着金トリガーの管理のページに全ての機能がまとめられています。

仮想通貨のアドレスと着金時に起動するプログラムのURLを登録すると、登録されているアドレスの一覧に表示され、始動/停止、更新、削除の操作ができるようになります。
更新/削除は停止後に利用できます。
赤字のアドレスは不正又は未使用のアドレスですので、更新ボタンで修正してから始動してください。
ON(稼働中)の状態で着金があると、指定したURLのプログラムにPOSTリクエストが送信されます。

3.アクセスログ一覧のページで、POSTリクエストの結果のログデータを確認できます。

4.監視用コードのページには、当サービスで用いているトランザクション監視用のプログラムコードがまとめられています。

5.トランザクション履歴のページには、入金のトランザクションの履歴を取得する方法がまとめられています。

6.マイページでは、アカウントの更新と削除(退会手続き)ができます。

7.会費のお支払いのページでは、会費を仮想通貨Ripple(XRP)、NEM(XEM)、又は、Symbol(XYM)によってお支払いができます。

このサービスを使うメリットは何ですか?

入金をリアルタイムに知るには通常JavaScript(Node.js)を使ったプログラムが必要となります。そのため、クラウドサービスやVPSを用意しなければならず、ハードルが高くなります。しかし、当サービスを利用することにより、通常のレンタルサーバーにUPされたphpやperlのプログラムを簡単に起動できます。
加えて、着金を確実に監視するには自前のノードを準備しなければなりません。ノードの状態によりトリガーが発生しない場合があるからです。これはさらにハードルを高くします。これも当サービスを利用する大きなメリットです。

このサービスを利用するためにはどんな準備が必要ですか?

着金のタイミングで起動させるプログラムを準備してそのURLを登録する必要があります。これはアイデア次第ですが、例えば次のようなプログラムです。
1.着金があった時、トランザクションを確認してそれに対応した処理をするプログラム。
2.着金と同時に動作させたいプログラム。
3.着金をメールで知らせる簡単なプログラム。
なお、下記のトランザクション解析用のテストプログラム(着金をメールで知らせる)をご利用になれます。
https://program.triggersv.com/ja/test.cgi
※このURLを登録すると、アカウントに登録されているメールアドレス宛に着金が通知されます。
※年会費をお支払いになられた方はこのテストプログラムを無料で入手できます(マイページの有料会員のその他の特典の所でダウンロードできます)。

CRONを用いたポーリングとどのように異なりますか?

CRONを1分ごとに動作させてトランザクションを定期的に確認する、いわゆる、ポーリングによっても、ほぼリアルタイムな処理を実現できます。しかし、やはり多少の遅れが生じます。それに対し、着金トリガーサービスは、着金との同時処理を可能にします。
一方、着金トリガーサービスは、失敗した場合、それを再度繰り返し実行することはできません。それに対して、CRONは何度でも繰り返し実行でき、その点でより確実であると言えます。
それで、両方を利用することによりリアルタイム性と確実性を実現できます。 例えば、着金トリガーサービスを利用し、同時にCRONで1分ごとに処理させるなどの利用ができます。この場合、CRONは着金トリガーが動作しなかった場合の保険となります。

トリガーの頻度とは何ですか?

当サービスではトリガーの頻度を計算して、制限を設けています。それはサーバーの負荷を軽減し、正常な動作を保つためです。
トリガーの頻度は、単位時間あたりに何回トリガーが発生したか、つまり、着金があったかを示します。これは直近のデータに基づき、通貨ごとに計算されます。その値はアクセスログ一覧のページで確認できます。
その値が大きい場合、それに関係したアドレスが自動的に停止されます。停止されたアドレスはトリガーの管理のページでオレンジ色のアドレスで示されます。この制限の値に関しては、アクセスログ一覧のページで確認できます。この制限値は変更されることがあります。

POSTリクエストでどんなデータがポストされるのですか?

POSTされるデータは、POSTされるデータのところにまとめられています。例えば、キー「data」はトランザクションデータです。
着金をメールで知らせる下記のトランザクション解析用のテストプログラムでは、取得したトランザクションデータがそのメールに記されていますので、それにより確認することをお勧めいたします。
https://program.triggersv.com/ja/test.cgi
※このURLを登録すると、アカウントに登録されているメールアドレス宛にトランザクションデータが通知されます。
※年会費をお支払いになられた方はこのテストプログラムを無料で入手できます(マイページの有料会員のその他の特典の所でダウンロードできます)。

アクセスログ一覧のHTTPレスポンスについて説明してください。

アクセスログ一覧のHTTPレスポンスは、指定されたURL(プログラム)に対してHTTPリクエストしたときのレスポンスを表しています。それで、表示されるステータスコード(statusCode)を調べるならプログラムの動作などを確認できます。代表的なものを上げておきます。
ESOCKETTIMEDOUT (3s)
目的はPOST送信することだけなので、タイムアウトを3秒に設定して、POSTリクエストを送信後に3秒で処理を中断してログを保存しています。それで、この場合、応答に3秒以上かかっているだけで異常ではありません。POST送信した時間とログを保存した時間のずれは通常最大で約3秒となります。
500 Internal Server Error
POST送信は実行されましたが、プログラムが実行できません。
200 OK
プログラムの応答時間は3秒以内で、動作も問題ありません。
ECONNRESET (接続リセット)
指定されたURLにPOSTリクエストしましたが、接続がリセットされました。この場合、適度な間隔で再試行を5回繰り返しますが、それでも成功しない場合にこのメッセージが表示されます。それで、POSTリクエストに失敗している可能性があります。逆に、POSTリクエストが複数回行われている場合もあります。
ETIMEDOUTECONNREFUSEDの場合も同様です。

トリガーが発生しないことがあるのはなぜですか?

ノードの状態などによりトリガーが発生しないことがあります。それで、自前のノードを準備して、できるだけ確実にトリガーが発生するように管理しています。しかし、それでもトリガーが発生しない場合があります。そのようないくつかの場合について取り上げます。
※承認数(0)又は承認数(1)については、こちらをご覧ください。⇒ 承認数について
Rippleの承認数(0)のトリガーが発生しない場合:
Rippleの場合、承認数(0)のトリガーが発生しないことがあります。しかし、これは異常ではありません。すべての承認数(0)のトリガーが発生する訳ではないのです。⇒ Listening to streams
NEMの承認数(0)のトリガーが発生しない場合:
ノードの状態により全く発生しないことがあります。それで、できるだけ確実にトリガーが発生するように管理しています。また、ネットワークの状態によっても発生しない場合があるようです。
Symbolの承認数(0)のトリガーが発生しない場合:
当サービスでは、Symbolノード(API&PEERノード)の設定をminFeeMultiplier=25にしています。それで、手数料が0.0044(最遅)未満のトランザクションの承認数(0)は発生しません。しかし、通常、送金時にはこれ以上の手数料を設定するはずですから、低手数料でない限りは承認数(0)のトリガーは発生します。⇒ トリガーの発生条件

その他のいくつかの場合について記します。
Rippleの承認数(1)のトリガーが発生しない場合:
Rippleの場合、承認数(0)のトリガーが発生したときでも、承認数(1)のトリガーが発生しないことがあります。そのような場合の例として、資金が十分でない場合などがあります。こうした原因は、承認数(0)のトランザクションデータで確認できます。
Symbolの承認数(1)のトリガーが発生しない場合:
トランザクションの手数料が少ない場合には、承認数(1)のトリガーの発生が遅延するか、場合によっては発生しないかもしれません。しかし、当サービスではノードの設定をminFeeMultiplier=25にしていますので、承認数(0)のトリガーが発生した場合は、通常は約30秒で、遅くても約2分程度で承認数(1)のトリガーが発生します。

このサービスを使ったプログラムにはどのようなものがありますか?

当社で開発のショッピングカートではRipple、NEM、及びSymbolによる決済ができますが、当サービスを利用することによりリアルタイムな着金の処理が可能となります。ご利用方法はこちらをご覧ください。⇒ 仮想通貨による決済システム