Bitcoingraph – O biblioteca Python pentru explorarea graficului tranzactiilor Bitcoin.
Conditii preliminare
Configurarea si configurarea Bitcoin Core
Mai intai, instalati versiunea curenta a Bitcoin Core (v.11.1), fie de la sursa, fie de la un executabil precompilat.
Odata instalat, veti avea acces la trei programe: bitcoind (= peer complet), bitcoin-qt (= peer cu GUI) si bitcoin-cli (interfata linie de comanda RPC). Urmatoarele instructiuni au fost testate cu bitcoind si presupun ca puteti porni si rula un partener Bitcoin Core dupa cum urmeaza:
In al doilea rand, trebuie sa va asigurati ca clientul dvs. bitcoin accepta conexiuni JSON-RPC modificand fisierul de configurare Bitcoin Core dupa cum urmeaza:
Testati daca interfata JSON-RPC functioneaza pornind pe Bitcoin Core peer (… asteptand pana la finalizarea pornirii …) si utilizand urmatoarea cerere CURL (cu numele de utilizator si parola adaptate):
In al treilea rand, deoarece Bitcoingraph trebuie sa acceseze tranzactiile blockchain non-portofel prin ID-urile lor, trebuie sa activati indexul tranzactiilor in baza de date Bitcoin Core. Acest lucru poate fi realizat prin adaugarea urmatoarei proprietati la bitcoin.conf
… si reporniti peerul dvs. de baza Bitcoin dupa cum urmeaza (reconstruirea indexului poate dura ceva timp):
Testati accesul la datele tranzactiilor fara portofel luand un ID de tranzactie arbitrar si emitand urmatoarea solicitare folosind cURL:
In cele din urma, bitcoingraph foloseste si interfata HTTP REST a Bitcoin Core, care este activata utilizand urmatorul parametru:
Testati-l folosind niste hash-uri de blocare
Cand ati ajuns la acest punct, configurarea dvs. Bitcoin Core functioneaza. Terminati toate instantele Bitcoind care ruleaza si lansati un nou daemon de fundal cu interfata REST activata
Configurarea bibliotecii Bitcoingraph
Bitcoingraph este dezvoltat in Python 3.4. Asigurati-va ca ruleaza pe masina dvs.:
Acum cloneaza Bitcoingraph …
… testati si instalati biblioteca Bitcoingraph:
Specificatii Mac OSX
Rularea bitcoingraph pe un Mac necesita instalarea coreutils
Stimularea bazei de date grafice subiacente (Neo4J)
bitcoingraph stocheaza tranzactiile Bitcoin ca grafic etichetat directionat intr-o instanta a bazei de date a graficului Neo4J. Aceasta baza de date poate fi bootstrappata prin incarcarea unei descarcari initiale blockchain, efectuarea calculului entitatii pe intreaga descarcare, asa cum este descris de Ron si Shamir si ingerarea acesteia intr-o instanta Neo4J care ruleaza.
folladas en el metro maduras sensuales
video sexo porno español trios
shemalehd porno español abuelas
videos de chicas gratis abuelas por el culo
madre follada a la fuerza maduras gozando
necrofilia xxx masajes porno en español
jovencitas masturbandose porno españolas peludas
familia española follando española viciosa
zoofila peliculas porno subtituladas en español
pillados follando infraganti creampie española
follando en el convento videos porno corridas internas
super mamadas incesto abuelas
porno guey alexa grace
moras follando porno traducido al español
lisbianas maduras gordibuenas
incesto abuelas megan montaner follando
españolas follando por dinero taboo.com
pajas en coche chica se masturba
maduras a cuatro patas videos chicas gratis
tetas amateur parejitas españolas follando
Pasul 1: creati tranzactia de blocare din blockchain
Bitcoingraph ofera instrumentul bcgraph-export pentru exportul tranzactiilor intr-un anumit interval de blocuri din blockchain. Urmatoarea comanda exporta toate tranzactiile cuprinse in intervalul de blocuri de la 0 la 1000 utilizand formatul de antet Neo4Js si fisiere de antet CSV separate:
Sunt create urmatoarele fisiere CSV (cu fisiere antet separate):
- adresele.csv: lista sortata a adresei Bitcoin
- blocks.csv: lista de blocuri (hash, inaltime, timestamp)
- transactions.csv: lista tranzactiilor (hash, coinbase / non-coinbase)
- outputs.csv: lista iesirilor tranzactiei (cheie de iesire, id, valoare, tip de script)
- rel_block_tx.csv: relatia dintre blocuri si tranzactii (block_hash, tx_hash)
- rel_input.csv: relatia dintre tranzactii si iesirile tranzactiei (tx_hash, cheie de iesire)
- rel_output_address.csv: relatia dintre iesiri si adrese (cheie de iesire, adresa)
- rel_tx_output.csv: relatia dintre tranzactii si iesirile tranzactiei (tx_hash, cheie de iesire)
Pasul 2: calculati entitatile peste dump-ul tranzactiei
Urmatoarea comanda calculeaza entitati pentru o anumita descarcare de date blockchain:
Sunt create doua fisiere suplimentare:
- entity.csv: lista de identificatori de entitate (entity_id)
- rel_address_entity.csv: atribuirea adreselor catre entitati (adresa, entity_id)
Pasul 3: ingerati o descarcare pre-calculata in Neo4J
Descarcati si instalati editia comunitatii Neo4J (> = 2.3.0):
Testati instalarea Neo4J:
Instalati si asigurati-va ca nu ruleaza si ca bazele de date preexistente sunt eliminate:
Reveniti in directorul de descarcare si creati o noua baza de date utilizand instrumentul de importare CSV al Neo4J:
Apoi, porniti shell-ul Neo4J …:
si creati urmatoarele constrangeri uniquness:
In cele din urma, incepeti Neo4J
Pasul 4: imbogatiti graficul tranzactiilor cu informatii de identitate
Unele adrese bitcoin au informatii de identitate publica asociate. Bitcoingraph ofera un exemplu de script care colecteaza informatii de pe blockchain.info.
Fisierul CSV rezultat poate fi importat in Neo4j cu instructiunea Cypher:
Pasul 5: Instalati pluginul de calcul al entitatii Neo4J
Clonati depozitul git si compilati din sursa. Acest lucru necesita instalarea Maven si Java JDK.
Copiati pachetul JAR in directorul de pluginuri Neo4j.
Pasul 6: activati sincronizarea cu lantul de blocuri Bitcoin
Bitcoingraph ofera un script de sincronizare, care citeste blocuri din bitcoind si le scrie in Neo4j. Este destinat sa fie apelat de un job cron care ruleaza zilnic sau mai frecvent. Din motive de performanta, nu reprezinta o inlocuire pentru pasii 1-3.
Colaboratori
- Bernhard Haslhofer
- Roman Karl
Licenta
Aceasta biblioteca este lansata Open Source sub licenta MIT.








