Author

Topic: Recuperare l'indirizzo di chi ha inviato via console RPC o c# (Read 1594 times)

full member
Activity: 212
Merit: 100
Non è una questione di dipendenza, ma semplicemente ogni transazione ricevuta si porta dietro i dati della precedente. Quindi interrogando l' output avrai i dati di chi ti ha spedito i bitcoin, e interrogando l' input saprai anche dove li ha presi 

spero che tu accetti l'ironia.

Sembra un messaggio ZEN Cheesy
hero member
Activity: 658
Merit: 502
Non è una questione di dipendenza, ma semplicemente ogni transazione ricevuta si porta dietro i dati della precedente. Quindi interrogando l' output avrai i dati di chi ti ha spedito i bitcoin, e interrogando l' input saprai anche dove li ha presi  Cheesy



FaSan
full member
Activity: 212
Merit: 100
in treno ho guardato i link e mi sonon accorto che per calcolare l'indirizzo di invio durante l'analisi degli vin fa una query su gli output, come se l'indirizzo di invio è dipendente da l'utilizzo dello stesso come ricevente

Code:
$prevtx=pg_fetch_assoc(pg_query_params($db, "SELECT value,type,encode(hash160,'hex') AS hash160 FROM outputs WHERE index=$1 AND tx=decode($2,'hex');",array($index,$prev)));
                        if(!$prevtx)
                        {
                                var_dump(shell_exec("crontab -r"));
                                die("Error: Failed getting prev tx...");
                        }
                        $value=$prevtx["value"];
                        $type=$prevtx["type"];
                        $hash160=$prevtx["hash160"];
                        if($type=="Address")
                        {
                                if(preg_match("/^[0-9a-f]+ [0-9a-f]{66,130}$/",$simplescriptsig))
                                {
                                        $pubkey=preg_replace("/^[0-9a-f]+ ([0-9a-f]{66,130})$/","$1",$simplescriptsig);
                                        $hash160=strtolower(hash160($pubkey));
                                        updateKeys($hash160,$pubkey,$blockhash);
                                }
                        }

confermi la mia analisi?
hero member
Activity: 658
Merit: 502
"asm" : "OP_DUP OP_HASH160 b6ee9dade7b16327a9e2113c56f5d4a0a586002c OP_EQUALVERIFY OP_CHECKSIG",

quello che nonmi torna è che contiene degli 0 mentre il base58 accetta questi
"123456789A...lettere"

le cose semplici mai!

puoi indicare in metalinguaggio, a bozza che si capisca cosa fa la funzione partendo dalla transazione per arrivare all'indirizzo, poi cerco in inteernet e spero di chiederti il minimo possibile


Guardati questo, è in php ma abbastanza chiaro :

https://github.com/lirazsiri/blockexplorer/blob/master/bin/oldcode/util.php

e questo :

https://github.com/lirazsiri/blockexplorer/blob/master/bin/blockupdate.php

di quest' ultimo, la funzione "processtransaction" è quella che ti interessa di più



FaSan
full member
Activity: 212
Merit: 100
"asm" : "OP_DUP OP_HASH160 b6ee9dade7b16327a9e2113c56f5d4a0a586002c OP_EQUALVERIFY OP_CHECKSIG",

quello che nonmi torna è che contiene degli 0 mentre il base58 accetta questi
"123456789A...lettere"

le cose semplici mai!

puoi indicare in metalinguaggio, a bozza che si capisca cosa fa la funzione partendo dalla transazione per arrivare all'indirizzo, poi cerco in inteernet e spero di chiederti il minimo possibile
hero member
Activity: 658
Merit: 502
Tramite la conversione dell' hash160 che trovi nel vIN. Cerca hash160toaddress in base58



FaSan

vedo che ne sai Smiley


devo codificare asm o hex? e visto che ci siamo sai spiegare in parole povere cosa sono?

approfitto anche per sapere come si legnao le vin con vout, perché mi pare di capire che ci possono essere più vin in una transizione, mentre una vin può essere legata a più vout, mentre una vout è legata a una sola vin

e grazie, mi hai un  po sbloccato


Stò sviluppando la nuova blockchain per MMC, quindi è roba fresca di studio  Cool

Devi prendere l' ASM, in relazione poi ai messaggi che trovi di contorno, puoi recuperare la "fonte", che può essere un nuovo blocco minato o una transazione.

vin e vout hanno la stessa txid, ed un index di riferimento.

C# non è il mio linguaggio, cmq se spulci le blockchain che trovi in github, oltre a nodejs e python, mi sembra ci fosse anche un pò di materiale in C# o C++. In alternativa nei sorgenti del client bitcoin trovi tutto il codice più o meno pronto.

Qui qualche info in più :

https://en.bitcoin.it/wiki/Transactions

https://en.bitcoin.it/wiki/Script



FaSan

full member
Activity: 212
Merit: 100
Tramite la conversione dell' hash160 che trovi nel vIN. Cerca hash160toaddress in base58



FaSan

vedo che ne sai Smiley


devo codificare asm o hex? e visto che ci siamo sai spiegare in parole povere cosa sono?

approfitto anche per sapere come si legnao le vin con vout, perché mi pare di capire che ci possono essere più vin in una transizione, mentre una vin può essere legata a più vout, mentre una vout è legata a una sola vin

e grazie, mi hai un  po sbloccato
hero member
Activity: 658
Merit: 502
Tramite la conversione dell' hash160 che trovi nel vIN. Cerca hash160toaddress in base58



FaSan
full member
Activity: 212
Merit: 100
Ciao,

sto cercando di capire come dal wallet è possibile risalire all'indirizzo o indirizzi che ti hanno mandato i coin.

attualmente sono arrivato a recuperare le transazioni mediante listtransactions e decodificarle parzialmente con decoderawtransaction, ma non riesco a estrarre l'indirizzo di chi invia i fondi.

Potete aiutarmi?
Jump to: