Bitcoin Transaction-Skripts

Könnte mir jemand erklären, wie das bitcoin-transaction-Skripts arbeiten?Wie erstellen Sie benutzerdefinierte Skripts? Auch erklären Sie uns bitte die Daten, die Struktur der Transaktionen, wie angegeben, durch das bitcoin-Protokoll? Wie Sie zu sammeln unbestätigte Transaktionen zu starten, Bergbau, was ist mit dem Protokoll-API für das schreiben von python-Skripts zum sammeln von Transaktionen, erzeugen von Blöcken, bauen, Geschäfte und andere notwendige Informationen zu bauen, die einen bitcoin-client von Grund auf neu?

+574
alvito56 24.02.2013, 21:07:21
21 Antworten

Ich will ein paar Blitz-Experimenten, wollen aber vermeiden, die Last der Synchronisation der blockchain (auch testnet). Kann ich das experiment mit Blitz mit regtest? Gibt es eine Anleitung für die Einrichtung?

+956
jackcornelious 03 февр. '09 в 4:24

Vor kurzem, BIP66 Wechsel von Aktivierung (Bergleute Durchsetzung der Regeln im block) zur Durchsetzung (Netzwerk erzwingt Regeln auf alle Blöcke).

Ich habe Schwierigkeiten, herauszufinden, wenn dies geschehen ist, oder auf welchem block es passiert ist.

+906
AlexLordThorsen 11.07.2015, 21:07:45

Ist es nützlich?

Wahrscheinlich nicht für die community, sondern für dich, weil du lernen.

Es ist möglich, erstellen Sie die alt-Münze, da mein ubuntu und Pflege dieser alt-Münze, da mein pc, wenn Ihr immer einschalten?

Es gibt einen Unterschied zwischen dem erstellen und es läuft. Aber ja, Sie können erstellen Sie eine Münze mit Ihrem Pc.

Meine Letzte Frage, in diesem moment ist es möglich, dass diese neue altcoin bekommen einige realen Preis auf dem Markt?

Wenn Sie es auf einen Austausch und die Gemeinschaft glaubt, dass es einen Wert hat: ja. Ansonsten: keine.

-

Wenn du nur ein Pc hast, Sie könnte einen ERC20-token (Astraleums basiert) und lassen Sie die blockchain alles im Griff.

+897
optikfluffel 31.10.2011, 19:43:55

Durch die Verifizierung ich meine nicht das Rätsel lösen/hash-Berechnung Teil aber der Teil mit der Suche über alle Blöcke zu überprüfen, ob die Transaktion gültig ist oder nicht?

Zum Beispiel, wenn Eine übertragene einige Münzen zu B vor zehn Jahren, und nach, dass nicht jede Transaktion. Nun will Sie einige der Transaktion. Um dies zu überprüfen Transaktion, die Bergleute müssen wissen, Eine Bilanz, die zuletzt aktualisiert wurde vor zehn Jahren. Um dies zu tun, die Bergleute müssen durch durch die große Anzahl der Blöcke, um den block dann wird es nicht nehmen Sie viel Zeit?

+878
Sabin Katwal 28.10.2013, 05:04:39

http://www.proxycoins.com/ relevant sein könnte, es ist ein Markt für Menschen kaufen in Ihrem Namen, wo Sie bezahlen Sie mit Bitcoin.

+857
ashwary 27.06.2013, 08:30:46

Ja, seit der version 0.7 möglich ist dies mit dem Referenz-client.

Finden Sie in der Dokumentation zu tor: https://github.com/bitcoin/bitcoin/blob/master/doc/tor.md

EDIT: siehe auch https://en.bitcoin.it/wiki/Fallback_Nodes#Tor_nodes für eine Liste veröffentlicht, Zwiebel Knoten. Die Erklärung auf dieser Website sollte aktualisiert werden, um reflektiert die integrierte Unterstützung für Zwiebel-Adressen seit Version 0.7.0, obwohl.

+817
89283123744 05.09.2013, 02:50:59

Der block hash identifiziert einen block. Ein block kann mit mehreren Transaktionen, so listsinceblock listet alle Transaktionen in Blöcken, die neuer als die block-hash.

So.f.e., wenn Sie diese block-Struktur:

block 5 hash: qwertyyuiop
| tx100,tx101,tx102,tx103
v
block 6 hash: asdfghjklkl
| tx104,tx105,tx106,tx107,tx108
v
block 7 hash: zxcvbnmnbvc
tx109,tx110,tx111

Wenn Sie das tun würden listsinceblock qwertyyuiop, würden Sie bekommen alle Transaktionen in Blöcken, die älter als block 5, so tx104 den ganzen Weg bis zu tx111.

+744
BAZlighter 14.03.2015, 17:40:45

Dies ist die Liste von opcodes unterstützt von Bitcoin Core v0.14.0:

https://github.com/bitcoin/bitcoin/blob/v0.14.0/src/script/script.h#L46L187

+712
swon 10.02.2019, 03:34:38

Jeder 256-bit-Zahl zwischen 0 x 1 und 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141 ist ein Gültiger privater Schlüssel. Angenommen die Zufallszahl in diesem Bereich (und es ist extrem wahrscheinlich, dass der Fall ist), sollte es genauso gut von einem privaten Schlüssel als jede andere Zahl. In der Tat, Sie sollten nicht einmal die Mühe, zu überprüfen, ob die Adresse schon bekannt ist, weil:

  1. Die Wahrscheinlichkeit sagt uns, dass es nicht verwendet wird
  2. Seine Existenz auf eine Kette explorer ist nicht der Beweis, dass niemand sonst hat, generiert Schlüssel
  3. Durch ankreuzen, können Sie werden telegrafieren, dass Sie selbst der Schlüssel

Mehr sorgen darüber, wie Ihre Schlüssel generiert wird, sondern als eine bestimmte Zahl ist anfällig für einige unbekannten Angriff. Stellen Sie sicher, dass Sie Ihre Würfel Rollen sind in der Weise durchgeführt, dass jedes byte ist genauso wahrscheinlich wie jedes andere byte. Ich habe eine D8 in Verbindung mit einem Münzwurf zur Erzeugung von 4 bits zu einem Zeitpunkt. Wenn die Münze heads, nutze ich die D8 zum Nennwert. Wenn Schwänze, füge ich 8. Ich zähle 16 (Schwanz + 8) als 0. Wenn Sie arbeiten es aus, Sie werden sehen, dass dies generiert eine vollkommen zufällige Zahl zwischen 0 und 15, oder ein hexit. Tun Sie dies, 64-mal, und Sie haben eine 256-bit-Schlüssel.

+519
Steve Rogers Beeflin 05.04.2018, 00:16:37

Ich bin mit pycoin (https://github.com/richardkiss/pycoin) in einem Projekt jetzt eigentlich, tring, um zu überprüfen, dass die Daten, die unterschrieben werden muss, in eine bitcoin-Transaktion, so dass ich denke, ich kann sprechen.

  • Python ist gut, weil es leicht zu bekommen, Projekten und schnell ausgeführt.
  • Es gibt Bibliotheken, die die Arbeit aus der Dinge wie ECDSA.
  • Python ist eine zugänglichere Sprache als zu versuchen, code in C++, mit all den Zeiger und Referenzen, nicht zu erwähnen, zu kompilieren. Läuft auf eine interpretierte Sprache wie python hat den Vorteil hier.

Der Nachteil ist jedoch, dass python nicht skalierbar genug für alle Anwendungen. Es gibt einen Grund, warum der Core-client, zum Beispiel, war nicht in python geschrieben.

+465
syg 14.08.2011, 14:11:49

Derzeit gibt es relativ wenige Geschäfte, die Bitcoin akzeptieren. Wenn Sie wissen möchten, ob Sie Ihre lokale Geschäfte akzeptieren Sie, werden Sie haben, um Sie zu Fragen. (Bereit zu sein, gesagt, "Nein" oder eher "ich habe keine Ahnung, was du redest.")

Ihre Titel über "gesetzliches Zahlungsmittel" ist tatsächlich zu Fragen etwas anderes. "Gesetzliches Zahlungsmittel" ist ein juristischer Begriff, bezieht sich auf eine Methode der Zahlung, die akzeptiert werden muss, niederzulassen. Soweit ich weiß, Bitcoin ist kein gesetzliches Zahlungsmittel in irgendeiner Jurisdiktion. Doch die Menschen sind noch frei, es zu akzeptieren, wenn beide Parteien einverstanden sind (es sei denn, andere lokale Gesetze, die es verbieten). In jedem Fall, gesetzliches Zahlungsmittel ist unerheblich, zu Einkäufen, wo keine waren, haben bereits den Besitzer gewechselt und keine Schulden vorhanden ist, vor der Zeit. Der Verkäufer kann entscheiden, welche Formen der Bezahlung, die Sie tun oder nicht wollen, zu akzeptieren.

+450
Av3ry Chao 01.03.2013, 04:57:53

Telnet sagt "Verbindung fehlgeschlagen" was bedeutet, andere werden nicht in der Lage sein, um verbinden, Sie. Ihre iptables funktioniert, wie es sollte.

Sie können verwechselt werden, zu denken, dass bitcoin funktioniert ohne Regel AKZEPTIEREN, weil Sie sehen, ausgehende verbindungen. Wahrscheinlich 8.

Deine netstat zeigt bitcoin Zuhört, aber wenn iptables nicht AKZEPTIEREN, dann wird es nie sehen, keine eingehenden verbindungen.

Versuchen netstat -na | grep-8333 - und Sie werden sehen, nur ausgehende verbindungen (Quell-Adresse: Sie).

Um Ihre bitcoin-Knoten erreichbar für die Außenwelt einfach eine Regel hinzufügen, zu akzeptieren, 8333.

Hinweis: öffnen Sie NICHT 9333 ! Es ist gedacht für den lokalen Einsatz nur, und Sie verlieren Ihre bitcoins, wenn Menschen Zugang zu (in der Tat sind Sie besser dran, es zu deaktivieren, wenn Sie Sie nicht verwenden).

+429
sbeattie2 11.07.2014, 02:03:36

Was Sie tun müssen, ist eine freie Website wie Odesk, Guru, Freiberufler, oder Rentacoder, und finden Sie jemanden, der die erforderlichen Qualifikationen. Zur Bezahlung bietet Ihnen den fairen Marktwert für Ihre Zeit und das problem zu beheben.

Sie sind wahrscheinlich auf der Suche bei $30 bis $40 pro Stunde für jemanden, der dies beheben können.

Während Sie dort sind, sollten Sie auch haben Sie eine komplette security-audit Ihrer Codebasis. Wenn ich zu Wette Vermutung, das gesamte Projekt sollte Sie laufen über $3.000 oder über 4.66 BTC.

Viel Glück. Ich mag, was Reddcoin ist. Würde gerne sehen, es gelingt. Wenn Sie brauchen jede Hilfe, die Kommissionierung oder die Verwaltung Ihrer Entwickler auf, lassen Sie es mich wissen. Ich habe einige Erfahrung in der Beschaffung.

+424
dashunyaStelmashuk 28.04.2016, 23:52:47

Zum Zeitpunkt dieses Postings gibt es keine Händler akzeptieren onecoin im Gegensatz zu bitcoin und anderen altcoins. Abgesehen von dem, was Murch hat gesagt, es gibt keine Informationen, die von der onecoin-Gruppe nachprüfbar in einer anderen unabhängigen Quelle. Es scheint mir, alle die Informationen, die von onecoin Benutzer durch Ihre website, die nicht einer Prüfung stand.

+418
k0pernikus 03.05.2017, 14:11:17

Ich bin eine Bitcoin-noob. Dies ist meine zweite Bitcoin-Transaktion und ich bin immer sehr nervös.

Meine Brieftasche (KryptoKit auf Chrome) gar nicht die Möglichkeit haben, die Gebühren ändern oder etwas an Transaktionen.

Könnte mir jemand sagen, was passiert mit meiner Transaktion (~100 DM), wenn kein Bergmann bestätigt, dass Sie aus irgendeinem Grund? Nun wird die Transaktion ist unbestätigt, da 48+ Stunden.

Hier sehen Sie die Transaktion: https://blockchain.info/tx/2362971d010c0d38e51019139a4ebee899d0861af3d5288fae6494bad5ecd3d2

Vielen Dank im Voraus

Edit:

Dies ist eine sehr seltsame situation. Im gleichen moment, als ich gepostet diese Frage, die damit verbundenen Transaktionen wurden abgesagt, und ich habe meine BTC zurück.

Hier sehen Sie den Hinweis der blockchain.info: "Transaktion abgelehnt, die von unseren Knoten. Grund: die Transaktion wurde zuvor angenommen, wurde aber beschnitten aus unserer Datenbank."

Die Transaktion wurde automatisch übel genommen, hier ist die id: https://blockchain.info/tx/2362971d010c0d38e51019139a4ebee899d0861af3d5288fae6494bad5ecd3d2

+328
Krosafcheg 11.03.2018, 05:02:21

Es gibt zwei Dinge, Bergbau erfordert im Allgemeinen:

  • Rechenleistung (CPU/GPU)
  • RAM

Für Bitcoin, eine winzige RAM ist OK, aber für den, ein paar GBs von RAM benötigt wird.

So, wie einige Websites tun-mining mit Hilfe von client-cpu?

Mit Javascript (leider. Gibt es effizientere Möglichkeiten, wie TurboJS oder GPUJS oder WebAssembly). Im Grunde, Sie versuchen xs mit verschiedenen nonce Felder, bis Hash(x) kleiner ist als ein Zielwert.

Bitcoin-mining ist es möglich, überall dort, wo general-purpose-processing-power. Ist es machbar? Nein. Weil der ASIC-Miner, CPU oder auch GPU-mining haben höhere Stromkosten im Vergleich zu mining Einnahmen.

Auf der anderen Seite könnte es anders sein, für andere Münzen, wie Monero. Sie haben vielleicht gehört von CoinHive, die hatten Proof-Of-Work-captchas, die erforderlich mining Monero für ein paar Sekunden. Da Monero ist ASIC resistent, CPU-mining verwendet, um effizient zu sein. (Bis Februar 2019, wenn CoinHive miner eingestellt wurde durch den sinkenden Wert von Monero).

Es ist wahrscheinlich, dass Sie könnten Betrug sein, sonst ist es unrentabel für Sie (vorausgesetzt, Sie zahlen für Strom).

+244
Prashant Bhate 16.04.2010, 19:36:25

Ich habe versucht, eines zu schreiben in 2011/12. Ich landete dabei eine Menge Volumen, aber ich schlug nur noch wegen der Kommission. Ich erzeugte eine Menge Geld für den Mt. Gehex aber!

Im Allgemeinen schreiben Sie eine automatisierte trading-Programm ist immer eine schwierige Aufgabe, weil jeder, der schreiben kann, ein überlegenes Programm kann schneiden in die Gewinne von der minderwertigen Programm, das führt zu einer Entwicklung Wettrüsten. Dies ist, was einige hedge-Fonds tun (nicht mit Bitcoins), aber alle Modelle, die Sie entwickeln sind nur zu erwarten, um Geld für eine kurze Zeit.

Selbst wenn jemand veröffentlicht eine qualitativ hochwertige open-source-Programm ist, wäre es schwierig, Geld zu verdienen, indem Sie es, weil so viele Leute laufen würde es.

+188
Robert A N Mc Ivor 24.04.2019, 05:24:19

Ich folgte diesem medium link zum erstellen einer coin wie bitcoin . https://medium.com/@jordan.baczuk/how-to-fork-bitcoin-c39139506443

Basierend auf diesem tutorial habe ich update DEFAULT_MAX_TIP_AGE zu int64_t nMaxTipAge = DEFAULT_MAX_TIP_AGE * 4000; aber es funktioniert nicht, ich habe nicht in der Lage, mine blockieren, aber wenn ich add -maxtipage=432000000 zu meinem Kommandozeilen Dämon Bergbau arbeiten war, konnte ich mir genesis-block . aber dann dachte ich, es wäre besser, wenn ich meine eigenen geneisis block.

also folgte ich diesem link : Wie kann ich eine neue Genesis-Block?

Ich machte änderungen pszTimestamp, nuhrzeit und nNonce , hashGenesisBlock und hashMerkleRoot.

Ich war in der Lage, führen Sie den daemon ohne Geltendmachung Problem . Zuerst bekam ich diese Fehlermeldung

FEHLER: ReadBlockFromDisk: Fehler im block-header an CBlockDiskPos(nFile=0, nPos=8) 2018-11-08T10:12:47Z *** Fehler beim Lesen block

Dann nach dem ausführen von Kommandozeilen-daemon mit -neu indizieren . die vorherigen Fehler verschwindet, bekam aber einen neuen Fehler

FEHLER: AcceptBlock: high-hash proof of work failed (code 16)

Wie kann ich dieses Problem beheben

EDIT: Basierend auf dem Vorschlag gegeben durch @JBaczuk . Ich verwendet genesisgen zu generieren block Informationen

https://github.com/liveblockchain/genesisgen

CMD-Syntax:

./genesis [Optionen] <pubkey> "<timestamp>" <nBits> <startNonce> <unixtime>

Meine CMD:

./genesis 04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f "NDTV 08/Nov/2018 Indien Will Lokal Herstellung, Export Bullet Train Trainer" 486604799 2083236893 1541690605

AUSGABE:

nBits: 0x1d00ffff
startNonce: 2083236893
unixtime: 1541690605

Coinbase: 04ffff001d01044c504e4454562030382f4e6f762f3230313820496e6469612057616e747320546f204c6f63616c6c79204d616e75666163747572652c204578706f72742042756c6c657420547261696e20436f6163686573

PubkeyScript: 4104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac

Merkle Hash: 94b4efc7769b39ccad3ad6cebbde8ad9d74e837e19978d9acc2ae499609d895d
Bytegeswappten: 5d899d6099e42acc9a8d97197e834ed7d98adebbced63aadcc399b76c7efb494
Generierung von block...
124397 Hashes/s, Nonce 20632283897
Block gefunden!!!
Hash: 000000004c7d908bd3c911a21b849d3cdca124131d2fb8a1af009698742ad672
Nonce: 2063257030
Unix-Zeit: 1541690608

Änderungen im code:

statische CBlock CreateGenesisBlock(uint32_t nuhrzeit, uint32_t nNonce, uint32_t nBits, int32_t nVersion, const CAmount& genesisReward)
{
 const char* pszTimestamp = "NDTV 08/Nov/2018 Indien Will Lokal Herstellung, Export Bullet Train Trainer";
 const CScript genesisOutputScript = CScript() << ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f") << OP_CHECKSIG;
 zurück CreateGenesisBlock(pszTimestamp, genesisOutputScript, nuhrzeit, nNonce, nBits, nVersion, genesisReward);
}

...... ...... ......

genesis = CreateGenesisBlock(1541690608, 2063257030, 0x1d00ffff, 1, 50 * MÜNZE);
Konsens.hashGenesisBlock = genesis.GetHash();
assert(Konsens.hashGenesisBlock == uint256S("0x000000004c7d908bd3c911a21b849d3cdca124131d2fb8a1af009698742ad672"));
assert(genesis.hashMerkleRoot == uint256S("0x94b4efc7769b39ccad3ad6cebbde8ad9d74e837e19978d9acc2ae499609d895d"));

Ich habe diese assertion-Fehler:

chainparams.cpp:125: CMainParams::CMainParams(): Assertion `genesis.hashMerkleRoot == uint256S("0x94b4efc7769b39ccad3ad6cebbde8ad9d74e837e19978d9acc2ae499609d895d") " ist fehlgeschlagen.
Aborted (core dumped)
+171
Rodney Wilson 05.02.2011, 04:14:52

"listtransactions" wird eine Liste mit allen Transaktionen im Zusammenhang mit Ihren spezifischen bitcoin wallet. Die "Alle Konten" - Geschäft, glaube ich, zu tun hat mit den verschiedenen Adressen, die jemand haben könnte, in einen einzigen Geldbeutel.

Ich habe zum Beispiel eine Adresse, wo ich Spenden erhalten, und eine andere Adresse, wo ich empfangen, die Bergbau-Subventionen. standardmäßig "listtransactions" wird die Liste alle meine Transaktionen von beiden Adressen, aber ich könnte angeben, eine meiner Adressen, und es würde die Liste nur diejenigen Transaktionen. Es ist eine einfache Möglichkeit, um mehr Granularität in die Listen und organisieren Sie Ihre Daten besser.

+157
March Ho 30.03.2018, 18:48:20

Ich weiß nicht, wie technisch Sie sind oder wie viel Sie kümmern sich um die Privatsphäre in dieser Angelegenheit, aber man kann beweisen, dass Sie eine Menge von bitcoin ohne Angabe, welche Konten Sie eigene mit dem Nachweis der Vermögens-Protokoll aus einem Papier genannten Bestimmungen. Sie am Ende mit einem Engagement für die Menge an Bitcoins, die Sie haben und die Verpflichtung zu nachzuweisen, dass Sie einen bestimmten Betrag.

http://crypto.stanford.edu/~dabo/pubs/abstracts/provisions.html

Dies ist wahrscheinlich übermäßig für Ihre Bedürfnisse, aber es sorgt dafür, dass Ihre Konten bleiben vollkommen ausgeblendet.

+125
user2920533 03.06.2018, 20:44:25

Sie können nicht senden Sie eine Transaktion zweimal. Wenn Sie bereits schickte es von bitcoin Kommandozeile, dann wird es scheitern mit -22(cli) oder 500(http) Fehler.


500 bedeutet, dass falsche Daten: Unzureichende finanzielle Mittel, schlechte syntax, bad Art, unmöglich Befehl...

Versuchen Sie, um casten zu einem string: $bitcoin -> sendrawtransaction((string)$tx_data), und tun var_dump($tx_data) zu finden, der Typ.

Wenn es nicht hilft, senden Sie diese POST-request von cURL, wie im tutorial: https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)#Command_line_.28cURL.29

+53
happiness08 16.02.2013, 12:49:15

Fragen mit Tag anzeigen