Cum să obțineți adresa expeditorilor cu bitcoinj (fără duplicat)?

Folosesc bitcoinj (implementare java). Am citit multe răspunsuri aici, dar niciunul dintre ele nu răspunde la întrebarea mea. Cum să obțineți adresa expeditorilor folosind bitcoinj?

Am variabila de tranzacție tx. Îl pot obține „hash”, am folosit și acest lucru: https://blockchain.info/tx/myTXhash și mi-a arătat tranzacțiile. Problema nu este nici măcar faptul că web îmi arată expeditorul.

DAR: dacă folosesc a generat fișierul .wallet și deschideți-l cu multibit (portofel bitcoin). Pot vedea acolo, în cadrul tranzacțiilor, de la cine au fost banii trimiși. Asta înseamnă că există o modalitate de a obține adresa expeditorilor, dar CUM? EDIT: M-am înșelat, multibitul nu știe de la cine provin banii, doar am fost confuz pentru că mi-a arătat a fost trimis la adresa corectă (dar asta a fost configurat de mine în args).

Dar există vreo posibilitate de a primi mesajul cumva de la client la știți dacă el a trimis banii?

Comentarii

  • Adică să obțineți Adresa Bitcoin care a trimis lun Aveți sau cumva să primiți un nume?
  • Da, mă refer la adresa Bitcoin care a trimis banii. Sau un alt mod de a verifica dacă banii au venit de la acea persoană. Consideră-l ca un portofel care primește bani în mod constant, dar trebuie să verific dacă provin de la cei care doresc să acceseze pe un web.

Răspuns

Pentru referințe viitoare: În bitcoinJ (versiunea java) adresele de intrare / ieșire ale tranzacțiilor sunt situate în obiectele TransactionInput și TransactionOutput.

De exemplu: pentru Transaction tx :

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()); } 

Rețineți că este posibil ca unele tranzacții să nu aibă o adresă de intrare. Iată descrierea github a metodei getFromAddress ():

Metodă de comoditate care returnează adresa de la această intrare prin analizarea scriptSig. Conceptul de „de la adresă” nu este bine definit în Bitcoin și nu ar trebui să presupuiți că expeditorii unei tranzacții pot primi de fapt monede pe aceeași adresă pe care o semnau (de ex. Acest lucru nu este valabil pentru portofelele partajate).

Răspuns

Puteți vedea adresele care au trimis și au primit bani când priviți un tranzacție pe majoritatea serviciilor. De exemplu:

https://blockchain.info/tx/c6cb02e70442275ffb7b35cc8a9416323ff7e01b5378abc20ae7f5b6e7617884

Marea săgeată verde arată transferul de la o adresă (1B898F2tcWHX1LZWWfD21FRzqWrtXLocXN) la celelalte 2. Programatic, puteți utiliza un API care returnează JSON cu informații echivalente:

https://api.blockcypher.com/v1/btc/main/txs/c6cb02e70442275ffb7b35cc8a9416323ff7e01b5378abc20ae7f5b6e7617884

Cu toate acestea, nu este simplu să extrageți aceste informații atunci când priviți o tranzacție brută, deoarece adresele sunt încorporate în script.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *