Wie zu Dekodieren, die sehr große (!) raw-Transaktionen?

Ich bin Parsen der blockchain zu extrahieren bestimmter Informationen, die ich brauche für ein Skript.

Eine Sache, die ich tun, in der Analyse von Transaktionen. Was ich mache ist:

getrawtransaction <tx>
decoderawtransaction <rawtx>

Dies funktioniert auf den meisten Transaktionen (>99%), aber einige sind sehr groß und die bitcoin-client-cant mit Ihnen umgehen. Ich Frage mich, was kann mit Ihnen umgehen, wenn nicht bitcoind selbst. Den Fehler bekomme ich in bitcoind:

TX entpacken fehlgeschlagen (code -22)

Das ist, weil es nicht akzeptieren sehr lange Argumente. Mein ruby-script stirbt mit

Argument-Liste zu lang - (Errno::E2BIG)

Wie zu Dekodieren, die solche Transaktionen? Hier sind einige Beispiele:

2f50fdf7adbf58e91d738869948f4b191eb3cafa016c6df7e9182c06e4513852
e7229316b5a5b1f53382ec5a526b842dda2ca96bc891cd02d397a52c4a84dba0
540359af779a510828f0afd3c88562b62c37d0e4eeccb08104a167a3600f7956

Danke.


Update: ich habe gerade versucht, fügen Sie den rawtransaction zu diesem online-parser und dieser dekodiert, die Transaktion ohne Probleme. Wie ist das möglich, programmgesteuert?

+114
user263891 31.05.2014, 10:18:34
22 Antworten

Wenn das Protokoll geändert wurden, um diese zu verwenden, dann eine UTXO Datenbank auf der Grundlage der Ergebnisse der blockchain bis zu der checkpoint-block ersetzen könnte, die Gigabyte blockchain, die wir verwenden derzeit für die Validierung.

Können Sie bereits etwas tun, ähnlich wie diese durch drehen auf -prune. Das kann dazu führen, dass Knoten, um aufhören zu arbeiten, wenn die reorg ist mehr als 288 Blöcke, obwohl, wie Sie gesagt haben, das passiert nicht oft.

Noch erfordert, dass Sie zum download der gesamten blockchain in den ersten Platz, natürlich.

Wenn wir entscheiden, dass "die Kette mit der die meisten Schwierigkeiten" bedeutet "die Kette mit der die meisten Schwierigkeiten im Laufe der letzten N-Blöcke", und wählen Sie eine gute N, könnte es machen einige Dinge einfacher UND Transaktionen in einer Tiefe von mindestens N immun gegen einen 51% Angriff. So, es schränkt den Wert der Kurvenfahrt den Markt in der hashing-power. Solche "Kurven" passieren könnte, ohne bemerkt zu werden, so hat es angefangen an mir sorgen zu machen.

Angenommen, ein Knoten Beitritt später, nachdem die neue Kette wurde veröffentlicht. Aus seiner Perspektive die beiden Ketten wurden zur gleichen Zeit erstellt. Weil das so ist, wäre es natürlich das wählen, das mit mehr Arbeit angefügt.

So, wie wir es vermeiden? Dies ist ein problem, das viel komplizierter ist, als es aussieht.

Das Protokoll verlangt, dass frisch generierten coins warten 100 Blöcke, bevor Sie ausgegeben werden können, um zu vermeiden verschmutzen bitcoin-Adressen mit bitcoins, die "ungeschaffene" durch einen reorg, dass kein block, der Sie erstellt hat.

Sicher, aber wir reden hier über zwei Ebenen Konsequenzen. In einem Umstand, einer person, auf die das Netzwerk Geld verliert. In der anderen, die blockchain ist die Gabel-für immer.

+923
Infiniti1984 03 февр. '09 в 4:24

ja, es ist möglich. ich kann solche Programm für Sie, aber ohne GPU-Beschleunigung läuft es zu langsam

+900
Jarsen 21.07.2018, 02:14:31

Haben die Idee für einen wunderbaren service, viele würden Spenden möchten, um zu sehen, passieren. Diejenigen, die Spenden, obwohl Sie wissen nichts von bitcoin. Google verrät viel Mühe mit bitcoin<->paypal oder bitcoin<->Kreditkarten-gateways.

Existiert eine glaubwürdige und zuverlässige service, der dies tut?

Bitcoiners zu kleine Gruppe zu erwarten, dass genug von Ihnen, bitcoin-system zu schwierig für nicht-bitcoiners zu Spenden. Nicht bitcoin Spenden untergraben Konzept.

+834
artjom3 09.07.2014, 13:37:34

Ich arbeite auf der Extraktion von output-Adressen von tx-Botschaften in BITCOIN-Pakete.

Derzeit, ich extrahieren Adresse von output-Skripte, die gestartet mit 0x76(OP_DUP) wie diese :

76 a9 14 6d 1d 74 58 95 6e 80 cd b4 c3 3f 1e d5 8e 91 c4 92 1a 85 d0 88

aber ich habe keine Idee über eine Ausgabe-Skripte, die beginnen mit 0xA9(OP_HASH160).

Als Beispiel, ich weiß nicht, im unten angeführten Beispiel, was ist das raw-Skript, das verwendet wird, um eine Ausgabe generieren-Adresse?

a9 14 16 52 33 02 f2 ee d0 e0 aa 6a 4c 1d 0a 41 39 6f c2 6f 53 6e 87

Wie kann ich extrahieren, Ausgabe-Adresse aus der Ausgabe von Skripts, die mit-beginnen xA9?

+782
Aakash Sharma 08.05.2013, 20:57:00

Sie können Adblock Plus zu blockieren, die miner Drehbuch. In diesem Fall wäre es:

http://www.bitcoinplus.com/js/miner.js
+773
MichaelMichael 05.05.2019, 20:44:22

Auf Basis Ihrer Unwissenheit, wo man anfangen soll, würde ich dringend empfehlen Ihnen die Verwendung eines der vorhandenen Brieftaschen, anstatt zu versuchen das Rad neu zu erfinden. Das heißt, wenn Sie nur mit dies als eine übung, um zu lernen, den code, stochern im code kann ein guter Weg, um zu lernen. Also hier ist was ich dir sagen kann über den Geldbeutel.

1) Bitcoin Armory ist die voll funktionsfähige Brieftasche, meiner Meinung nach, auf Kosten der mit den meisten Ressourcen von Ihrem computer. Es ist der, den ich verwenden, damit ich weiß das die meisten über Sie aus allen Brieftaschen. Es verwendet zum laden der blockchain in den Speicher, da aber die blockchain wuchs rasch, dass dieser Ansatz aus der Waffenkammer so RAM-intensiv, dass es im wesentlichen unbrauchbar, sondern für alle diejenigen mit einer MENGE von RAM. Wenn Sie verwenden möchten, die alte version, ich würde empfehlen 8 GB+ RAM, je mehr Sie haben, desto besser wird es laufen werde, vor allem auf lange Sicht, da die blockchain wird nur gehen, um größer zu werden.

Die core-Entwickler von Armory, Alan, realisiert wurde dieser Ansatz nicht nachhaltig für die Mehrheit der Waffenkammer Benutzer, so er sich umgestaltet, so dass es stellt nun eine Kopie der blockchain und verwendet stattdessen laden die gesamte blockchain. Der Haken ist natürlich, dass dies bedeutet, dass mit Arsenal als full client bedeutet, mit 2X die Größe der blockchain. Am heutigen Tag, die blockchain verwendet bis 22.6 GB nach meinem computer, also das doppelte für die Menge an Speicherplatz auf Ihrer Festplatte Waffenkammer muss. Es ist ein Ressourcenfresser, aber der Kompromiss, die er machte, macht Sinn, meiner Meinung nach, da Platz auf der Festplatte ist in der Regel viel reichlicher als der RAM, und den Erwerb von mehr, wenn nötig ist auch um einiges günstiger.

Armory ist in python geschrieben. Ich habe nicht geschaut auf den code, aber Alan hat gesagt, auf dem bitcointalk-Foren, dass es sehr gut dokumentiert. Es hat einige sehr nützliche features, darunter: eine deterministische wallet, was bedeutet, dass eine Sicherung, dauern Sie ewig, unabhängig davon, wie viele Adressen, die Sie verwenden, eine kalte Lagerung-einfach zu bedienen, das ist für die meisten Menschen der größte Vorteil von Arsenal, und für web-Entwickler, es gibt eine Waffenkammer Daemon, die Sie ausführen können, auf Ihrer website zu akzeptieren bitcoin Zahlungen. Leider ist es nicht weniger ressourcenintensiv als die desktop-version, und daher unpraktisch, es sei denn, Sie haben im wesentlichen unbegrenzten Speicherplatz auf Ihren web-host.

2) Electrum ist eine leichtgewichtige bitcoin-wallet, das ist auch in python geschrieben. Im Gegensatz zu mit Waffenkammer, Elektron speichert die komplette blockchain auf Server, auf die Sie Zugriff über die client / server-Modell. Dies bedeutet, dass Elektron verwendet keine wo in der Nähe die Menge der Ressourcen, die von Armory, es erfordert nur, dass Sie Gastgeber Ihrer Brieftasche auf Ihrem computer. Elektron unterstützt auch die cold storage und Brieftaschen können wiederhergestellt werden, mit einem Samen, was bedeutet, dass müssen Sie nicht durchführen regelmäßige backups, die Sie gerade brauchen, um sicherzustellen, dass Sie nie verlieren / vergessen, dass Saatgut.

3) Multibit ist auch eine leichte Brieftasche, die in Java geschrieben ist. Es funktioniert auch auf dem client / server-Modell wie Elektrum hat. Nach Multibit FAQ, die Teil der blockchain, die ein Benutzer speichern ist nur etwa 25 MB, in anderen Worten, nur mit Ihren eigenen Transaktionen. Wenn Sie nicht vertraut mit, wie Bitcoin funktioniert im Allgemeinen, ich möchte Sie ermutigen, check-out Multibit FAQ, wie Sie erklärt, nicht nur Multibit aber, wie Bitcoin im Allgemeinen funktioniert. Multibit-website nicht Werbung für eine deterministische wallet-Funktion wie Waffenkammer und Elektron zu tun, so dass Sie kann verlangen, regelmäßige backups, wie die original-bitcoin-wallet.

4) Hivewallet ist auch eine leichte Brieftasche, die in Java geschrieben ist. Wie Waffenkammer und Elektrum, ist es auch deterministisch. Laut seiner website, alles, was Sie tun müssen, ist die Sicherung der Passwort-und schon kann es losgehen. Hivewallet läuft auf OSX-und Android-Betriebssysteme.

5) Bitcoin core ist der original-bitcoin-wallet. Im Gegensatz zu Arsenal und Elektrum, ist es nicht deterministisch. Deshalb ist es nicht empfohlen, verwenden Sie diesen client, um zu speichern Sie Ihre bitcoins, weil im Gegensatz zu den deterministischen Kunden, wird es erfordern regelmäßige backups. Es ist in C++geschrieben.

Wenn Sie immer noch wollen, um zu Tauchen in den code, möchte ich Sie dazu ermutigen, um eine Brieftasche, wo Sie bereits vertraut mit der Programmiersprache, mit zu beginnen zu vereinfachen, die Lernkurve, so dass Sie müssen nur lernen, die Brieftasche-code statt das Portemonnaie code und Programmiersprache.

+759
Christa 11.08.2013, 08:12:55

da einige Antworten zu sein scheinen veraltet, ich Frage jetzt explizit für die version 0.8.5 des offiziellen BitcoinQT-client.

Ich will meine Brieftasche zu Papier und verstecken Sie in einem sicher - könnten Sie mir sagen, ob folgende Punkte schauen Sie gültig?

Dieses Thema scheint wirklich Komplex, ich weiß nicht, warum gibt es nicht eine einfache option wie "Export Geldbörse als pdf"...

Ok, so hier gehen wir:

1) ich würde gerne exportieren meinem privaten Schlüssel zur Textdatei? (Wie funktioniert es?) Ich sehe nur, wie es arbeitet für eine einzelne private - /public-key-pair-Mädchen?

2) Drucken Sie es aus und verstecken Sie es im sicheren

3) Wenn ich eine Transaktion oder empfangen von etwas, was ich ausdrucken sollte sich wieder alle privaten Schlüssel, da sonst etwas verloren gehen kann?

Danke!

+748
Roseanne 16.02.2014, 00:50:04

Ich habe eine lange Liste von 1 Million+ Permutationen von 12 word-BIP39 Samen. Wie kann ich versuchen, Sie alle auf eine bitcoin-Adresse?

edit: ich kenne die Adresse und die 12 Worte, aber ich weiß nicht die Reihenfolge der Wörter

+735
helloworld922 19.10.2013, 13:46:00

der Anwendungsfall ist: ich habe einen bitcoin-bewusst-app, das wäre dann wie auslösen, eine bitcoin-Zahlung Anfrage ausgeführt werden, die durch eine auf-Telefon bitcoin wallet über die BIB20/bitcoin: URL-Mechanismus. Anstatt das generieren der Zahlungsaufforderung direkt und sofort für eine beliebige Menge von bitcoin, gibt es eine Möglichkeit, um in Effekt Fragen Sie die bitcoin-wallet, wenn mindestens N von bitcoins in das erste?

vielen Dank, John Kimbrough-Software

+726
abdulaich 18.02.2018, 15:19:35

Sie müssen zwangsweise Herunterfahren der bitcoin-client zuvor, oder vielleicht die daemon noch läuft und Sie versuchen, führen Sie einen weiteren client-hören auf dem gleichen port.

Zu töten alle bitcoin-client-Instanzen, die Sie benötigen, zu wissen, die Prozesse, das Zuhören zum Hafen.

Öffnen Sie eine Eingabeaufforderung mit Administratorrechten und geben Sie folgenden Befehl ein, um die details der ausgeführten Dienste

netstat -o

Diese listet alle Dienste hören auf die verschiedenen ports. Finden, die mit dem bitcoin-service (sehen Sie auch den port 8332 für die eigentliche bitcoin-client und 18332 für die testnet-client). Sobald Sie erworben haben, die Prozess-IDs, müssen Sie zwangsweise zu töten, die Prozesse, indem Sie den Befehl

Taskkill /PID <process_id_here> /F

Starten Sie den client.

Nützliche links, die ich als Quelle verwendet:

netstat

Töten Prozesse

+646
Fernando Xagero 17.11.2017, 01:58:30

Das problem ist, dass die client-software übernimmt es besitzt, alle Konten und kümmert sich nicht, die Konten enthalten die eigentlichen Fonds. Also, wenn Sie 35 bitcoins, Sie können sich in 3 Konten, die Sie kennen, und 4 interne "change" - Konten. Oder Sie denken vielleicht, der 10 bitcoins als ein Programm-Konto und 15 in ein anderes Programm-Konto, während alle 35 bitcoins sind tatsächlich in einem bitcoin-Konto.

Darüber hinaus, wenn das gleiche Konto liefen auf zwei verschiedenen Maschinen, die Sie Einreichen können widersprüchliche Transaktionen. Dies wäre als böswillige durch den Empfänger.

+548
Steve Holland 27.08.2017, 16:29:38

Hallo, danke für die Suche.

Ich versuche zu entdecken, eine einfache Möglichkeit zu schaffen, blockchains 12 Word Recovery Passphrase, Sie haben eine so genannte Hilfe-Seite zu diesem Thema, die von sehr wenig Hilfe und zutiefst obskure, Ihre Hilfe wäre sehr geschätzt werden.

Herzliche Grüße

Richard Norman

+514
LampShade 17.12.2017, 01:52:52

Er kann nicht für eine Reihe von Gründen:

  1. Er hat keine Ahnung, was die unverbrauchten Transaktion hashes sind (nicht auswendig gelernt).
  2. Hat er nicht ein guter Weg, zu wissen, wo er die übersendung der Münzen.
  3. Um tatsächlich signieren der Transaktion, Satoshi hätte tun müssen, ECC Mathematik auf die SECP256K1 Kurve, die er nicht auswendig gelernt.

Angenommen, er bekommt eine nicht signierte Transaktion zu unterzeichnen und er sich irgendwie auswendig gelernt hat, die Parameter der SECP256K1 Kurve, es wäre möglich, aber es ist wahrscheinlich, um ihm eine sehr lange Zeit, um die Zeichen einer einzigen Transaktion. Punkt-Verdoppelung allein 14 Operationen der 256-bit-zahlen mit Jacobi-Koordinaten. Für das signieren etwas, müssen Sie in der Regel Doppel-generator Punkt 256 mal.

Er kann eigentlich, wenn angesichts dieser zahlen, aber es ist wahrscheinlich (A) nicht sicher seit, er werde Sie verlassen, haben Sie das Papier um die Beweise für seine privaten Schlüssel, die er benötigt, um zu unterzeichnen und (B) effiziente in jedem Sinne des Wortes, da es sehr wahrscheinlich, er mache Fehler und ein einziger Fehler macht die Signatur ungültig.

+455
Hien Le 28.09.2018, 11:53:21

Tut mir Leid, aber diese Frage macht nicht viel Sinn, ich denke, Sie müssen mehr Lesen über Bitcoin, da Sie keine Ahnung haben, was mining ist und warum es ist der Kern von Bitcoin.

Hinweise:

  • Jeder kann mir, wenn Sie stören, um die richtige Ausrüstung: das kann nicht passieren, die mit traditionellen Banken
  • Mining ist der Kern von Bitcoin und kann nicht aus der Gleichung genommen, müssten Sie erfinden alles neu, viel Glück
+431
tayden 16.03.2011, 21:35:43

Wir haben gerade version 0.90-beta, die endlich löst dieses Problem. Armory funktioniert nicht brauchen, um neu zu Scannen der blockchain nicht mehr, es sei denn, Sie importieren Sie neue private Schlüssel, oder Armory Erfahrungen zu einem unsauberen Herunterfahren.

Mit Ausnahme der ersten Inbetriebnahme (zur Erstellung der neuen Datenbanken), die Waffenkammer bekommen sollte, in den online-Modus innerhalb von 10 Sekunden von Bitcoin-Qt/bitcoind-finishing-Synchronisation.

+414
hokkos 02.09.2010, 11:12:11

Ich Schreibe freie software in meiner Freizeit. Einige meiner Software sind sehr beliebt. Jetzt bin ich ein denken, einen Weg zu erzeugen, ein wenig Einnahmen. Über adware ist nicht eine option für mich.

Gibt es eine Bitcoin-mining-Bibliothek ( vielleicht ein .dll), kann ich das Bündel in meine Programme?

+315
Rafiq Rahish 18.01.2017, 10:15:06

Ich habe auf der Suche in den Bergbau vor kurzem und ich merke, dass ich bin ein bisschen spät, um die Blase bu würde gerne noch investieren in den Aufbau meines eigenen rig und starten Bergbau Altcoins wie der ETH und Zcash. Nun zu der Wahl des build zu gehen, ich kam zu dem Schluss, dass die mehr gpu 's setzen Sie in der gleichen Hauptplatine system besser, da wäre es nicht kostengünstiger als die Gpu' s sind der Teil, der wohl die meiste Arbeit gemacht. So theoretisch zu schneiden, sogar mit dem ursprünglichen Investition Die mehr gpu ' s auf der gleichen Maschine, desto besser... Aber dann wäre das eine gute Idee, so weit zu gehen, wie der neueste 19-gpu-motherboards, um kosteneffizient sein ? oder mit einem 7-Gpu-motherboard oder einfach legen Sie 2 gpu ' s ohne Setzstufen direkt auf dem motherboard? Meine Frage ist einfach, welche Variante wäre die optimalste bedenkt, Wartungs-und mögliche Probleme, die Bergleute, die dies bereits getan haben, hätte jede Hexe ein. Vor-und Nachteile. Vielen Dank im Voraus !

+302
Ian Hoar 18.06.2016, 23:40:59

Ich Baue bitcoin von der Quelle zum hinzufügen einige Funktionen. Der Hauptgrund ist, dass ich verwenden möchten, AWS S3 zum speichern meiner Brieftasche.dat-Datei (aus Sicherheitsgründen) statt lokal gespeichert. Im Grunde genommen, ich möchte, dass alle Verweise auf die Brieftasche Verzeichnis und die Datei werden durch aws-cli, anstatt direkt auf die Maschine. Ich wäre dankbar für Anregungen.

Läuft auf ubuntu 16.04 (EC2), die Kopflosen.

Danke!

+291
Kutzeh 08.11.2010, 06:03:41

Der Wert des Ausgangs in einer Transaktion ist ein 8-byte - Feld codiert in little-endian. Der Wert ist immer vertreten, mit 8 bytes , egal wie klein es ist. Hier haben Sie die volle Struktur der Transaktion mit den Größen:

enter image description here

+260
igaurav 02.03.2016, 13:03:24

Schreiben Sie ein Skript (z.B. Perl, Python, Ruby... ), öffnet sich jede Datei auf Ihrem computer und sucht im inneren, um zu überprüfen, das format. Ich bin mir nicht sicher, was das format ist genau. Es kann so einfach sein wie eine bestimmte, Konstante Sequenz von bytes am Beginn (einer sogenannten "magic number").

+149
Thomas Knudsen 14.07.2018, 14:19:16

Wie finde ich heraus, wie viel hashing-power bin ich die Bereitstellung der Netzwerk? Was ist der Befehl, um es herauszufinden?

Aktuell sehe ich dies: http://prntscr.com/2cd3zo

wenn ich laufen: watch 'datacoind listaccounts & datacoind getmininginfo'

+132
meetri 10.02.2015, 05:31:37

Angenommen, zwei Bergleute haben ein (1/x) Wahrscheinlichkeit der block über einen bestimmten Zeitraum, ist die Wahrscheinlichkeit, beide Bergleute Suche nach einem block innerhalb dieser Frist einfach (1/x^2)?

Generell würde n Bergleute mit gleichen hash-Tarife haben eine (1/x^n) chance, Sie alle zu finden, die Blöcke einige Zeit miteinander?

Ich glaube beide sind richtig, vorausgesetzt die Bergleute arbeiten unabhängig voneinander.

In der Praxis jedoch, sobald ein Bergmann findet einen block, es ist in Ihrem besten Interesse zu veröffentlichen, dass das Netzwerk so bald wie möglich, um zu verhindern, dass andere von der Veröffentlichung einen block vor Ihnen. Also, es gibt eine bestimmte Menge der Zeit, wo der neue block wird verbreitet über das Netzwerk ist nach dem ein Bergmann nicht versucht wird, mir, der alte block nicht mehr (in der Regel Sekunden), so dass die Netzwerk-Latenz hat einen Effekt hier.

+41
Alexey Kalmykov 10.03.2017, 16:36:59

Fragen mit Tag anzeigen