Jak uzyskać adres nadawcy za pomocą Bitcoinj (bez duplikatów)?

Używam bitcoinj (implementacja java). Przeczytałem tutaj wiele odpowiedzi, ale żadna z nich nie odpowiada na moje pytanie. Jak uzyskać adres nadawcy za pomocą bitcoinj?

Mam zmienną transakcyjną tx. Mogę uzyskać to „hash”, użyłem też tego: https://blockchain.info/tx/myTXhash i pokazał mi transakcje. Problem nie polega nawet na tym, że sieć pokazuje mi nadawcę.

ALE: jeśli tego używam wygenerowany plik .wallet i otwieram go za pomocą multibit (portfela bitcoin). Widzę tam, pod transakcjami, od kogo zostały wysłane pieniądze. Oznacza to, że jest sposób na uzyskanie adresu nadawcy, ale JAK?

EDYCJA: Pomyliłem się, multibit nie wie, od kogo pochodzą pieniądze, byłem po prostu zdezorientowany, ponieważ mi to pokazał został wysłany pod właściwy adres (ale został on ustawiony przeze mnie w argumentach).

Ale czy jest jakaś możliwość, aby wiadomość od klienta czy to on wysłał pieniądze?

Komentarze

  • Czy masz na myśli otrzymanie Adres Bitcoin, z którego wysłano mon ey czy w jakiś sposób zdobywasz imię?
  • Tak, mam na myśli adres Bitcoin, na który wysłano pieniądze. Lub w inny sposób, jak sprawdzić, czy pieniądze pochodzą od tej osoby. Potraktuj to jako portfel, który stale otrzymuje pieniądze, ale muszę sprawdzić, czy pochodzą od tych, którzy chcą uzyskać dostęp do sieci.

Odpowiedź

Na przyszłość: W bitcoinJ (wersja java) adresy wejścia / wyjścia transakcji znajdują się w obiektach TransactionInput i TransactionOutput.

Na przykład: dla 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()); } 

Należy pamiętać, że niektóre transakcje mogą nie mieć adresu wejściowego. Oto opis metody getFromAddress () na githubie:

Wygodna metoda, która zwraca adres z tego wejścia, analizując skrypt scriptSig. Pojęcie „adresu nadawcy” nie jest dobrze zdefiniowane w Bitcoin i nie należy zakładać, że nadawcy transakcji mogą faktycznie otrzymać monety na ten sam adres, którego użyli do podpisania (np. Nie jest to prawdą w przypadku wspólnych portfeli).

Odpowiedź

Możesz zobaczyć adresy, z których wysłano i odebrano pieniądze, patrząc na transakcji na większość usług. Na przykład:

https://blockchain.info/tx/c6cb02e70442275ffb7b35cc8a9416323ff7e01b5378abc20ae7f5b6e7617884

Duża zielona strzałka pokazuje transfer z jednego adresu (1B898F2tcWHX1LZWWfD21FRzqWrtXLocXN) na dwa inne. Programowo można by użyć API, które zwraca JSON z równoważnymi informacjami:

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

Jednak nie jest łatwo wyodrębnić te informacje, patrząc na surową transakcję, ponieważ adresy są osadzone w skrypcie.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *