Bitcoin-Skript-Beispiel

Gibt es einige gute Beispiel dafür, wie Prozess einer grundlegenden tx ist scriptsig und erhalten die Adresse des Empfängers aus dem raw-Transaktion?

+148
roxanne anthon 19.08.2013, 12:28:10
17 Antworten

Bitcore Gabel aus SatoshiLabs ist ja nur für 64-bit-linux.

Sie können versuchen, um die notwendigen binaries selbst und aktualisieren Sie dann die npm install-scripts, die in bitcore, aber das ist sehr schwer.

Ich würde nicht empfehlen, Sie zu führen bitcore auf einem personal computer, da es eine zusätzliche 200GB Daten, so dass Sie am Ende mit einem halben terabyte an Daten. Auch, weil einige performance-Probleme in der bitcore code, die Adresse der Datenbank synchs seit Tagen (etwa eine Woche), wo Sie nicht verwenden können, den computer für etwas anderes. (Auch die Festplatte sein SOLLTE, die SSD, oder die Synchronisierung ist noch länger.)

Wenn Sie möchten, dass Ihre eigenen back-End, ich würde empfehlen, die Zahlung für einen Linux-server (aber es ist schwer zu finden, eine preiswerte VPS - /hosted-server mit 500-GB-Festplatte).

Alles in allem, es ist nicht einfach zu bedienen Trezor mit Ihren eigenen vollen Knoten, leider.


Ich bin tatsächlich arbeiten SatoshiLabs, auf den backends, und jetzt :) und wir haben keine Pläne zu machen, das baut auf OS X, da wir nicht in der Lage sein, um Sie zu testen, sowieso.

+988
bhimoff 03 февр. '09 в 4:24
Pay-to-PubKey-Hash ist das standard-format für Zahlungen über das Bitcoin-Netzwerk.
+953
grahame jull 29.01.2015, 11:05:24

Instawallet Grüne-Adresse ist ein Weg, zu akzeptieren bitcoins mit null Bestätigungen und keine Gefahr von double-spend-Attacken. Natürlich haben Sie immer noch die Gefahr, dass Intsawallet gefährdet ist, in irgendeiner Weise.

Auch für viele Anwendung (z.B. Café), können Sie nur annehmen, die mit 0 Bestätigungen mit minimal/fast null-Risiko. Die Kosten, Sie auszunehmen wäre viel mehr als der Preis für die Tasse Kaffee. In der Tat, ich glaube, Mezza Grill akzeptiert, ohne auf Bestätigungen überhaupt, nur auf das Wort des Kunden, als er wechselte ein paar bitcoins.

Ich bin mir nicht bewusst von anderen Methoden Recht jetzt würde lieben zu sehen mehr Antworten.

+878
Hayley Bromley 16.06.2012, 04:48:11

Ja. Sie können erstellen Mainnet und Testnet Brieftaschen mit einem Mnemonischen Code.
Hier ist ein Beispiel zu Netzwerk wechseln.

> java HelloWorld testnet
> mrbZfHK4MuJYEH98w7gENLsrfnY1e4Lq8b

> java HelloWorld mainnet
> 1C5cNEE5YssHTAfXDYhrYRfXonwJe2u1wf

.

public class HelloWorld {

 public static void main(String[] args){

 String seedCode = "Hof Impuls Luxus fahren heute werfen farm Pfeffer Umfrage Wrack Glas-Bundes";
 lange creationtime = 1409478661L;
 DeterministicSeed seed = null;
 try {
 seed = new DeterministicSeed(seedCode,null,"",creationtime);
 } catch (UnreadableWalletException e) {
e.printStackTrace();
}

 NetworkParameters params;
 if (args[0].equals("testnet")) {
 params = TestNet3Params.get();
 } else {
 params = MainNetParams.get();
}
 Wallet-wallet = Brieftasche.fromSeed(params, Samen);
 Adresse Adresse = Brieftasche.currentReceiveAddress();
System.aus.println(address);

}
}
+861
Nazeem 16.08.2010, 22:04:34

Genommen von ASICs und Dezentralisierung FAQ von Andrew Poelstra:

Sind ASICS böse?

Nein, dedizierte hardware bringt uns näher an das thermodynamische limit, und ist letztlich eine gute Sache für den Bergbau die Dezentralisierung. Auch, weil ASIC produzieren mehr hashes für die gleiche Menge an Energie, die Sie produzieren, stärker proofs-of-work mit proportional weniger Auswirkungen auf die Umwelt.

Jedoch, ASIC ' s mit sich bringen, die Gefahr von Hersteller Zentralisierung, wie das, was wir sahen mit Bitcoin in den frühen Tagen der ASIC-mining. Die Kräfte des Marktes schließlich brach dieses Monopol und eine Sache, die beschleunigt bis der Prozess, der Bitcoin nutzt die SHA2-hasing-Algorithmus, der wurde speziell für die einfache Entwicklung von dedizierter hardware.

Deshalb, relativ wenig Start-Kapital benötigt, zu entwickeln Bitcoin ASIC ist. Weitere, unabhängig von einem persönlichen Gefühl zum ASICS, Sie sind unvermeidlich. Dedizierte hardware wird immer mehr effizienter als general-purpose-hardware (genau deshalb, weil es näher ist um die thermodynamischen limit) und Bitcoin Anreize werden ausgerichtet für ständig steigende Effizienz.

Ist ASIC-Resistenz wünschenswert?

Nein. ASIC-Widerstand umfasst in der Regel die Erhöhung der algorithmischen Komplexität zu entmutigen ASIC Entwickler. Jedoch, ASIC ' s sind noch unvermeidlich; alle ASIC-Widerstand tut, ist erhöhen die startup-Hauptstadt erforderlich und erhöhen somit die Zentralisierung der Produktion. Weiter, die Erhöhung der Komplexität der Nachweis generation bedeutet oft auch die zunehmende Komplexität der Nachweis der Validierung, oft unverhältnismäßig langsam. Dies behindert den (unbezahlten) nicht - Bergbau Prüfungen, die auch erhöht die Zentralisierung.

Ist ASIC Widerstand möglich?

ASIC-Widerstand, in dem Sinne, dass das Leben schwierig für ASIC die Hersteller (und damit die Reduzierung der Anzahl der unterschiedlichen Hersteller) möglich ist. Aber es ist unmöglich zu erstellen Algorithmus, der läuft mit der gleichen Geschwindigkeit auf der general-purpose-und dedizierte hardware (da der general-purpose-hardware enthält viele zusätzliche Funktionen, z.B. Kommunikation, Busse, Peripherie), und so letztlich ASIC-Widerstand ist zwecklos.

(Programme wie “die Entwickler ändern Sie einfach die proof-of-Arbeit Algorithmus, wenn ASIC 's erscheinen" gar nicht sinnvoll ist, in einem dezentrale Währung, die Entwickler haben keine solche macht, während in einem zentrale Währung proof-of-work ist eine völlig unnötige Verschwendung der macht.)

Ist Speicher, der Härte wünschenswert?

Nein. Speicher Härte hat den Effekt der Erhöhung des ASIC-board-Bilanz, die Schwächung der Wärmeableitung der Dezentralisierung zur Verfügung gestellt von der thermodynamischen limit. Weiter, es erhöht die Kapitalkosten des Bergbaus Ausrüstung relativ zu den Energiekosten, fördert auch die cen- tralization (längst Bergleute amortisiert Ihre Ausrüstung mehr als neuen Kumpel). Diese Effekte werden verstärkt durch die Tatsache, dass SRAM ist sowohl ein Vielfaches schneller und um ein Vielfaches teurer als DRAM.

Auch, Speicher-hard-proofs-of-Arbeit, die oft erfordern viel Speicher auf der ein Teil der Teilnehmerinnen, die schlecht für Dezentralisierung wie bereits diskutiert.

Als beiseite, da der Speicher ist weit Weg und teuer, um Zugriff auf general purpose Computer, Speicher Härte erhöht sich eigentlich die Vorteil von ASICS! Dies steht im Widerspruch zu den Zielen der meisten Speicher-hard-Befürworter, und wie wir oben gesehen haben -, Speicher-Härte verschlechtert sich die Zentralisierung der Auswirkungen von ASIC ' s, während die Schwächung der Dezentralisierung Effekte.

Eine weitere Sache, erwähnenswert ist der time-memory tradeoff (TMTO). Diese ist eine Eigenschaft eines Algorithmus, der dies ermöglicht eine höhere Speichernutzung zu werden gehandelt für ein schwerer computational load. Ein Algorithmus, der sehr anfällig für TMTO hat schlecht definierte Speicher-Härte, die auf die zumindest erschwert die Analyse. Es kann auch dazu führen, einen Algorithmus zu nicht die Optimierung frei.

+730
Nex0t 28.01.2012, 21:49:48

Ich würde gerne ein transaction-Objekt erstellen, von Grund auf. Ich habe gelesen, dass der tx-id für eine Transaktion ist die Doppel-SHA-256-hash einer Transaktion serialisiert, aber nicht in der Lage gewesen zu finden, details über genau, wie die Daten formatiert, bevor seine serielle oder wie es serialisiert wird, für diese Angelegenheit.

Könnte jemand vielleicht ein Beispiel geben, wie die Daten organisiert werden, bevor es serialisiert und/oder beschreiben Sie die Art und Weise der Serialisierung stattfindet?

+730
sglantz 05.08.2012, 16:47:17

Kann ich meine bitcoins auf mein Haupt bank-Konto ,und die Ausgabe ist wie normales Bargeld in der bank. Statt verkaufen Sie online .

+626
Seong Lee 15.03.2014, 00:20:15

Warum hat Bitcoin ein kompliziertes scripting-system? https://en.bitcoin.it/wiki/Script https://github.com/bitcoin/bitcoin/blob/master/src/script.cpp

Ich denke, weil es macht Lust auf Verträge möglich: https://en.bitcoin.it/wiki/Contracts Könnte sogar sein, Arten von Verträgen, die würden wir nie denken heute.

Noch, was ich verstehen derzeit gibt es nur eine Handvoll Skripte, die in populären Gebrauch.

Wäre es nicht klug, sich zu beschränken, die scripting-engine, um eine begrenzte Anzahl an gut verstanden scripts? Wie es scheint, eine Einladung für ärger. Neue Scripte Hinzugefügt werden können im Laufe der Zeit.

+608
Tohairu Uchiha 19.08.2012, 02:05:03

Der einzige Grund zum Kauf einer Währung, die Sie denken, Sie werden in der Lage sein, Dinge zu kaufen, mit der es in Zukunft, oder es für mehr Geld verkaufen, als Sie es gekauft haben, in Zukunft. Wenn Sie investieren in ein ICO, es sollte auf der hoffe, dass es eine kostenoptimal herstellbar großen Gruppe von Menschen, die es zu handeln. In einer Weise, die Investition in cryptocurrencies ist wie die Investition in gold. Der große Unterschied ist, es gibt nur eine gold - aber neue cryptocurrencies poppen jede Woche. Ich habe gesehen, ICOs vermarktet als "bitcoin für Zahnärzte". Dies verwirrt mich. Die meisten Zahnärzte die ich kenne verwenden das gleiche Geld wie alle anderen.

+587
JeffH 16.08.2012, 20:32:46

Ich war das herunterladen von bitcoin zum ersten mal und während der letzten 3 Minuten, während Sie etwas anderes am computer zu arbeiten, etwas über eine Unterbrechung geflasht und dann sah es aus, als ob nichts jemals passiert und war es nicht herunterladen. Ich ging zu der Datei, die ich gespeichert hatte und es war ein Bitcoin Core [test net] also klickte ich drauf und es ist jetzt synchronisiert. Ist das normal? Irgendwelche Ratschläge? Mir wurde gesagt, um den download zu starten wieder?

+567
Satpal Jaswal 25.01.2019, 18:50:28

Nachdem man den systemd-Datei in /etc/systemd/system, stellen Sie sicher, dass Ihre systemd-Datei eingerichtet ist, um mit Ihrer installation (binäre Weg, datadir Pfad, etc. korrekt sind). Dann führen Sie sudo systemctl enable bitcoind.

Alternativ können Sie Bearbeiten Sie Ihre crontab mit crontab -e und fügen Sie die Zeile

@reboot bitcoind
+362
Konstantin Shulyukin 08.01.2010, 13:52:30

Dieser Beitrag von Mike Hearn erzählt eine interessante Geschichte:

Wenn Bitcoin zuerst veröffentlicht wurde, enthielt es zwei ganz fatale Fehler gemacht, dass das gesamte system wertlos. Zum Glück wurden Sie gefunden und behoben werden, bevor Bitcoin tatsächlich hatte jeder ernsthaften Wert.

Der erste Fehler war, dass Skripte werden verkettet, bevor Sie ausgeführt werden, statt nur mit einem gemeinsamen Stapel. Dies bedeutete, dass jeder schreiben könnte ein scriptSig, die immer zu wahr ausgewertet und zu behaupten, jemand elses Münzen. Gefixt in v0.3.2:

https://github.com/bitcoin/bitcoin/commit/73aa262647ff9948eaf95e83236ec323347e95d0

Doch, der link erscheint, auf den 0.3.7 update.

Blick auf das diff, dieses update nicht erscheinen, ändern Sie das Skript interpreter in der Weise, die Mike beschrieben.

Die Suche stellte sich sehr wenig auf die 0.3.7 update. Ein hit war diese Frage, die bislang keine Antworten:

Ich bemerkte, dass 0.3.7 ist veröffentlicht auf der website, aber nach dem durchsuchen der Foren habe ich nicht finden können, keine Informationen über, was die änderungen sind. Never mind, dass die änderungen von version zu version sollte verpackt werden mit dem download....

jemand darauf zu Ahnung, mich auf diesen einen?

Der CVE-Seite, jedoch macht diese Behauptung:

Am 28. Juli 2010, zwei Fehler wurden entdeckt und gezeigt auf dem test-Netzwerk. Man nutzte einen Fehler in der transaction-handling-code und erlaubt einem Angreifer zu verbringen, Münzen, dass Sie keine eigenen haben. Diese wurde nie genutzt auf dem Haupt-Netzwerk und konnte behoben werden, indem Bitcoin version 0.3.5.

Also, je nach der Quelle, die Sie verwenden, die Version, die den Fehler behoben wurde 0.3.2, 0.3.5, oder 0.3.7.

Gegeben, dass dies einer der schlimmsten Fehler in der Bitcoin-Geschichte, wie es scheint, sollte die Dokumentation konsistenter. Kann mir jemand zeigen, um andere Quellen, die helfen könnten, die Sache aufzuklären?

+360
Bama Man 24.02.2012, 17:25:27

So Sie Fragen, für 3 Dinge: bestätigt, gültig ist und dass eine bestimmte Adresse in einem bestimmten txout erhalten hat, die den angegebenen Betrag.

Bestätigt: haben Sie bereits erarbeitet. Wenn getblockcount - blockheight > 0, dann ist die tx hat mindestens 1 Bestätigung, und so weiter.

Gilt: Tx bestätigt werden, in zwei Arten:

  1. durch die überprüfung der Knoten (vollen Bitcoin Knoten wie bitcoin-qt). Jedes mal, wenn ein tx übertragung über volle Gleichaltrigen, es wird validiert.
  2. durch das Netzwerk. Dieses Netzwerk Validierung tritt auf, wenn das Netzwerk stimmt, dass der block mit dem tx gültig ist, tritt die erste Zeit bei 1 Bestätigung und erhöht die zuversicht mit jeder weiteren Bestätigung. In einem abgebauten block bedeutet auch, dass (1) die oben aufgetreten ist, mindestens einmal (wahrscheinlich viel mehr).

Wenn Sie also nur wenn man bestätigt, Bitcoin-Transaktionen, die Sie bereits vollständig validiert durch das Netzwerk und seine Knoten, so dass Sie nicht haben, dies selbst zu tun. Dies gilt nicht unbedingt für unbestätigte Transaktionen.

Insbesondere-Adresse erhalten hat, festgelegten Betrag: Es gibt Regeln hier, aber um absolut sicher zu sein über diesen letzten Punkt, Sie haben zu prüfen, die tx-Skript. Zum Glück, all dies bedeutet für die meisten Transaktionen überprüft OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG.

Dies ist der relevante Teil (für Sie) von dem Skript enthalten in den scriptPubKey. Solange es enthält dieser text, können Sie sicher sein, dass es eine einfache Zahlung in dem angegebenen Betrag an die angegebene Adresse, egal ob es sich ändern, oder was auch immer.

Wenn die scriptPubKey enthält etwas anderes, dann müssen Sie tatsächlich analysieren Sie das Skript, um herauszufinden, die tx-details. Wie dies zu tun ist, sprengt den Rahmen dieser Frage.

Also, kurz gesagt, um erfüllen alle Ihre Bedingungen, Sie müssen warten, für 1, - Bestätigung und-Prüfung für die genaue scriptPubKey text oben gezeigt, oder aber bereit sein t ofully analysieren das Skript im Falle eines komplexen Vertrages.

+317
j73951 24.05.2012, 05:11:57

Ich bin derzeit denken zu tun, ein Forschungsprojekt über Bitcoins. Aber ich will die Liste aller Transaktionen von bitcoins. Ich Frage mich, was sind die Möglichkeiten, dies zu tun? Ich glaube, ich kann kratzen, wenn ich mich nicht Irre, aber gibt es eine bessere und eine schnellere Möglichkeit, dies zu tun?

+222
Ahmad Samilo 16.01.2010, 05:17:19

AFAIK, gibt es keine grundsätzlichen Probleme mit der Umsetzung eine komplette bitcoin-Knoten auf Basis von python, es gibt noch einige tolle Projekte von Bitcoin full-Knoten in Python

+160
Wervulv 28.03.2018, 05:57:08

Nxt-Adressen sind die kürzesten. Sie haben nur 20 Zeichen.

+132
Yagiz Kizil 06.07.2011, 21:22:25

Die maximale Anzahl von Bitcoins ist auf 21 000 000. Allerdings ist diese Zahl von Bitcoin kann niemals existieren.

Angenommen jemand hat 5 BTC in Ihre Geldbörse. Um Sie zu schützen, werden Sie verschlüsselt, es vergessen und dann die passphrase oder zu sterben (sorry, dieses Beispiel ist traurig). In diesem Fall, die wirkliche maximale Anzahl der nutzbaren Bitcoin wäre 20 999 995...

Ist dieses Verständnis richtig? Was wissen Sie über diese denken?

+86
Refactor 22.07.2011, 21:46:07

Fragen mit Tag anzeigen