bitcoinj(Java実装)を使用しています。私はここで多くの答えを読みましたが、どれも私の質問に答えません。 bitcoinjを使用して送信者のアドレスを取得するにはどうすればよいですか?
トランザクション変数txがあります。ハッシュを取得できます。これも使用しました: https://blockchain.info/tx/myTXhash と、トランザクションが表示されました。問題は、ウェブに送信者が表示されていることすらありません。
しかし、それを使用する場合は生成された.walletファイルをマルチビット(ビットコインウォレット)で開くと、トランザクションの下で、誰から送金されたのかがわかります。つまり、送信者のアドレスを取得する方法はありますが、その方法は?
編集:私は間違っていました、マルチビットはお金が誰から来たのかわかりません、それが私にそれを示したので私はただ混乱しましたは正しいアドレスに送信されました(ただし、これは私が引数で設定しました)。
しかし、クライアントからに何らかの方法でメッセージを受け取る可能性はありますか?送金したのが彼かどうかわかりますか?
コメント
- 月を送ったビットコインアドレスええ、またはどういうわけか名前を取得しますか?
- はい、私はお金を送ったビットコインアドレスを意味します。または、お金がその人から来たかどうかを確認する他の方法。常にお金を受け取っているウォレットと考えてください。ただし、Webでアクセスしたい人からのものかどうかを確認する必要があります。
回答
今後の参照用:bitcoinJ(Javaバージョン)では、トランザクションの入出力アドレスはTransactionInputオブジェクトとTransactionOutputオブジェクトにあります。
例:Transactiontxの場合:
List<TransactionInput> inputs = tx.getInputs(); List<TransactionOutput> outputs = tx.getOutputs(); for(TransactionOutput out : outputs){ System.out.println(out.getAddressFromP2PKHScript(params)); System.out.println(out.getAddressFromP2SH(params)); } for(TransactionInput in : inputs){ System.out.println(in.getFromAddress()); }
一部のトランザクションには入力アドレスがない場合があることに注意してください。 getFromAddress()メソッドのgithubの説明は次のとおりです。
scriptSigを解析してこの入力のfromアドレスを返すコンビニエンスメソッド。 「差出人アドレス」の概念はビットコインでは十分に定義されておらず、トランザクションの送信者が署名に使用したのと同じアドレスで実際にコインを受け取ることができると想定しないでください(たとえば、これは共有ウォレットには当てはまりません)。
回答
を見ると、送金と受け取りのアドレスがわかります。ほとんどのサービスでのトランザクション。例:
https://blockchain.info/tx/c6cb02e70442275ffb7b35cc8a9416323ff7e01b5378abc20ae7f5b6e7617884
大きな緑色の矢印は1つのアドレス(1B898F2tcWHX1LZWWfD21FRzqWrtXLocXN)から他の2つのアドレスへの転送。プログラムで、同等の情報を持つJSONを返すAPIを使用できます:
ただし、アドレスがスクリプトに埋め込まれているため、生のトランザクションを確認するときにこの情報を抽出するのは簡単ではありません。