C++ - code für die traverse obwohl alle Blöcke in der blockchain?

In meinem Projekt für eine bestimmte Funktionalität, die ich will, um die traverse über alle Transaktionen. Für diesen Zweck möchte ich die traverse durch alle Blöcke in der blockchain.

+331
Mysticeyes 15.07.2019, 14:35:26
29 Antworten

Können Sie mir bitte helfen zu finden eine Geldbörse, liefert API für mehrere Währungen wie: BTC, ETH, XMR, BCH, LTC, DASH.

Ich möchte neue Adresse erstellen für jede der Währungen und überprüfen, ob es eine Zahlung auf die Adresse.

Danke

+989
bita rahmatizade 03 февр. '09 в 4:24

Als ich Informationen über das Stratum-Protokoll, welches es ermöglicht, einen mining-pool zu koordinieren, die Arbeit mit Arbeitern, ich war neugierig, was der "saubere Arbeitsplätze" param in der Bergbau.notify-Methode bedeutet. Pro spec -- https://en.bitcoin.it/wiki/Stratum_mining_protocol es kann entweder true oder false. Was ich nicht verstehe, ist, warum wäre es falsch. Die wiki sagt, wenn seine false", Wenn falsch, können Sie immer noch den aktuellen job, sondern soll sich bewegen, um die neue nach Ausschöpfung der aktuelle nonce-Reihe". Meine Frage ist, welche logische Grund wäre einen pool zu geben, um ein Bergarbeiter zu tun? Ich gehe davon aus, wenn die neue Arbeit kommt in es bedeutet, dass jemand auf das Netzwerk hat, Hash-block ist und daher gibt es kein weiteres Potenzial für die Belohnungen. Warum also ein Arbeiter seine Zeit weiterhin mit einer Aufgabe, die jemand anderes bereits abgeschlossen hat?

+981
Kraisorn Saengkaew 17.04.2014, 22:14:19

Hängt davon ab, was Sie sich wohl fühlen.

Sie können gehen, "low level" und die Abfrage der lebeldb direkt. Die block-index (information für jeden block) ist in $DATADIR/ - Blöcke/ - index und die chainstate (Informationen über die aktuell beste bekannte Kette) in $DATADIR/chainstate.

Ein einfacher Weg ist, um eine vollständig synchronisiert bitcoind lokal läuft und eine Abfrage über jsonrpc. Von dort haben Sie die slice-and-dice der resultierende JSON zu Ihren Bedürfnissen passen.

Ich habe nicht getan, leveldb Abfragen, aber ich würde erwarten, dass es um eine erhebliche Menge der Arbeit beteiligt, da es nur ein key-value-store.

+979
JBis 22.02.2011, 07:28:05

Ich habe in letzter Zeit wieder ein Dokument mit Informationen über einige BTC, die ich gekauft im Jahr 2015. Ich habe nur: eine passphrase/Passwort, ein 18-Wort Eselsbrücke(von denen die meisten nicht in der BIP39 Wortliste, noch die Elektron alte/neue Wortlisten, z.B. mccartney, hopkinton), und die Adresse: 1CfadqyBDRPt62S9UvBHDPtqRu2kSvwPpu. Ich idiotisch vergaß hinzuzufügen, was die Brieftasche, die ich verwendet, so bin ich ein wenig stecken.

Irgendwelche Ideen, was der Merksatz könnte?

+791
Silentis 27.12.2018, 06:52:05

Welche Grafikkarte hast du? Überprüfen Sie heraus das bitcointalk forum-post über dieses (https://bitcointalk.org/index.php?topic=171515.0)

Im Grunde, "Die automatische gpu und Lüfter-Einstellungen sind nur für ATI-Karten, glaube ich." Wenn Sie eine andere haben, vielleicht ändern Sie Ihre Einstellungen.

+734
user326031 24.11.2010, 17:16:41

Sicher.

Adressen sind nicht wirklich eine Sache, die so weit wie blockchains gehen - meist sind Sie nur Sorge um die Tasten geht (oder im Fall von Bitcoin und Bitcoin-basierte Netzwerke, die sperren-sperren-Skript, welches eine Ausgabe zu sein aufwendbare nur durch eine bestimmte [set] - Taste[s]).

Da der key-generation-Prozess stützt sich auf die Entropie, und nicht verlassen sich auf das Netzwerk, zu dem Sie den Schlüssel zu erstellen, ist es möglich, und sehr unwahrscheinlich, dass zwei Menschen sind in der Lage erzeugen einen identischen Schlüssel.

Es ist so unwahrscheinlich, dass keine Brieftasche ich bin mir bewusst, dass tatsächlich Kontrollen für die wichtigsten Wiederverwendung auf der Ziel-chain weiter. Es ist einfach etwas, dass ist nicht zu rechnen, vorausgesetzt, Sie haben eine gute genug Quelle von Entropie.

Beachten Sie, dass selbst wenn Sie am Ende erzeugen (oder manuell) ein-Schlüssel über Netzwerke, die eigentliche "Adresse" kann noch anders sein, da Bitcoin verwendet base58/bech32-Adressen, während der BCH verwendet base58/cashaddr-Adressen. Dies ist lediglich eine Codierung, aber, und nicht ändern Sie die zugrunde liegenden Schlüssel benötigt, um zu verbringen die Ausgänge.

+689
Jeff Kelley 18.01.2017, 05:51:05

Ich verstehe, dass eine Transaktion ist ein Satz von 1+ Bitcoins gegeben, von einer Partei zur anderen.

Ich verstehe, dass ein block ist eine Sammlung von nicht überprüften (laufende) Transaktionen, wird überprüft, alle ~10 Minuten oder so.

Ich verstehe, dass mining ist der Vorgang der Ausführung einer speziellen software lösen einige kryptographische problem, und als ein Ergebnis, ermöglicht es, einen block von schwebenden Geschäften werden Hinzugefügt, um die block-Kette (Historie aller Transaktionen, je).

Also zunächst einmal, wenn alles, was ich bis jetzt gesagt habe, ist nicht wahr oder irreführend, bitte beginnen Sie, indem korrigiert wird, wie mir!

Vorausgesetzt, ich bin mehr oder weniger korrekt, ich bin immer noch nicht zu sehen, warum der Bergbau ist entscheidend für das system, und bin (natürlich) nicht zu sehen, den Wald durch die Bäume hier.

Wenn ich 10 BTC an jemand, warum macht jemand anderes (ein "miner") brauchen, um dies zu überprüfen? Sollte dies nicht der Transaktion gespeichert werden in der DB irgendwo, und nachprüfbar durch Abfrage, dass die DB?

+656
ringerjuriya 03.06.2014, 21:08:54

Die base58-private-key-format enthält eine SHA256-Prüfsumme basiert. Finden Sie diese Antwort für details (ignorieren Sie den Teil der Frage, wo der private Schlüssel selbst ist der SHA256 hash von einigen anderen Daten).

+638
bromanko 16.08.2013, 05:09:43

Die Frage ist zu allgemein, und wahrscheinlich das ist, warum Sie die downvotes. Sie zeigen nicht, uns Ihren Aufwand so weit, was Sie gelesen haben, oder wie haben Sie Ihre Forschung. Meine generische Antwort wäre, um es zu Lesen bitcoin.org denn ich nehme an, Sie bitten, für bitcoins Architektur im bitcoin-forum. Es gibt viele Grafiken und passenden Erklärungen. Dann könnte man auch bei Andreas Antonopolous Buch "Mastering Bitcoin", das auch online verfügbar ist. Und dann gibt es einige videos auf YouTube... Meine bevorzugte high-level Ansicht der block-Kette ist, dass Sie verlinkt haben Glas-Boxen (die public ledger mit es blockiert), mit unterzeichnet, überprüft innen, dass die Werte übertragen, die zwischen zwei Menschen.

+638
waynecarrigan 16.02.2017, 22:10:38

Ich wurde empfangen von Fehlern bei der Verwendung von Signaturen produziert von signP2SHTransaction Funktion von @ledgerhq/hw-app-btc. Also habe ich ein Skript erstellt mit bitcore-lib zu überqueren überprüfen Sie es gegen die Signatur produziert von Ledger und Ermittlung der änderung den Fehler verursacht. Ich auch überprüft, alle meine input params und für korrekt befunden.

Ich werde ausführlich die beiden Scripte hier, aber ich denke, es ist eine Frage, die Ledgers signP2SHTransaction Funktion.

Ich bin mit dem folgenden Abhängigkeiten und Knoten v8.9.3:

"@ledgerhq/hw-app-btc": "^4.17.0",
"@ledgerhq/hw-app-eth": "^4.19.0",
"@ledgerhq/hw-transport-node-hid": "^4.18.0",
"babel-Laufzeit": "^6.26.0",
"bip32": "^0.1.0",
"bitcoinjs-lib": "^3.3.2",
"bitcore-lib": "^0.15.0"

Ich habe eine 2 von 2 Multisig-Adresse mit den folgenden 2 Pfaden meiner ledger- 48'/0'/0'/69/0/0, 48'/0'/0'/96/0/0. Ich habe folgende rawTx:

01000000016f4fbe65fe5fcb98028d67172f72bdeadc1f45cb49c50f2eb7aca4668e94d50a01000000490047522102a9d50f9817a9cf20f3feb7ad4038e88c8bd471e90dfba3a80c2e0bfd79c893122102faf805ea3652cec322dda6f7571d926f359d8abbd73af1512924151edbec90e752aeffffffff0220d613000000000017a9148eaba4fd80f515c78ddbc2509538e37c40ffcf1287904a96070000000017a914c45f1d5dde5c0f7008dd6c228c1702cfdafdf1a98700000000

Ich verwendet die folgenden Einlösen Skript:

522102a9d50f9817a9cf20f3feb7ad4038e88c8bd471e90dfba3a80c2e0bfd79c893122102faf805ea3652cec322dda6f7571d926f359d8abbd73af1512924151edbec90e752ae

Hier ist der code, den ich verwendet, um es zu produzieren:

const bitcore = require("bitcore-lib");
const PublicKey = bitcore.PublicKey;
const Script = bitcore.Skript;

var publicKey1 = new PublicKey(
"02a9d50f9817a9cf20f3feb7ad4038e88c8bd471e90dfba3a80c2e0bfd79c89312"
); // öffentlicher Schlüssel für Weg- 48'/0'/0'/69/0/0

var publicKey = new PublicKey(
"02faf805ea3652cec322dda6f7571d926f359d8abbd73af1512924151edbec90e7"
); // öffentlicher Schlüssel für Weg- 48'/0'/0'/96/0/0

var pubkeys = [publicKey, publicKey1];

var redeemScript = Script.buildMultisigOut(pubkeys, 2);

console.log(redeemScript.toHex());

Können Sie entschlüsseln es hier: https://live.blockcypher.com/btc/decodetx/ Hier ist mein ledger-code die Erstellung einer digitalen Signatur für 48'/0'/0'/69/0/0 Pfad:

const TransportHid = require("@ledgerhq/hw-transport-node-hid").Standard;
const AppBtc = require("@ledgerhq/hw-app-btc").Standard;

TransportHid.create()
 .dann(async transport => {
 if (!transport) return console.log("Fehler: Verbindung konnte Nicht hergestellt werden");
 var btc = new AppBtc(transport);

 const rawTx = "01000000016f4fbe65fe5fcb98028d67172f72bdeadc1f45cb49c50f2eb7aca4668e94d50a01000000490047522102a9d50f9817a9cf20f3feb7ad4038e88c8bd471e90dfba3a80c2e0bfd79c893122102faf805ea3652cec322dda6f7571d926f359d8abbd73af1512924151edbec90e752aeffffffff0220d613000000000017a9148eaba4fd80f515c78ddbc2509538e37c40ffcf1287904a96070000000017a914c45f1d5dde5c0f7008dd6c228c1702cfdafdf1a98700000000";
 const redeemHex =
"522102a9d50f9817a9cf20f3feb7ad4038e88c8bd471e90dfba3a80c2e0bfd79c893122102faf805ea3652cec322dda6f7571d926f359d8abbd73af1512924151edbec90e752ae";
 const bufferedData = erwarten btc.splitTransaction(rawTx);

 lassen Eingabe = [];

input.push(bufferedData);
input.push(1);
input.push(redeemHex);
 const outputScript = btc
.serializeTransactionOutputs(bufferedData)
.toString("hex");

 console.log("\nOutput Skript hex:", outputScript);

 const accountIndex = 69;

 console.log("\npath:", `48'/0'/0'/${accountIndex}/0/0`);

 erwarten btc
.signP2SHTransaction(
[input],
[`48'/0'/0'/${accountIndex}/0/0`],
outputScript
)
 .dann(sig => Konsole.log("\n\nSig hash:", sig))
 .catch(err => Konsole.log("\n\nErr:", err));
})
 .catch(err => Konsole.log(err));

Es gibt die folgenden Signatur, wenn ich übergeben Sie die RedeemScript mit dem tx:

Sig hash: [ '304402203e24b5ad68c1fe3bf55a11afb6a61e3525c6f0a2780a0ee4bf37401bfd1445ff02207b18b7277b4f2625d04d0fcfd796300a9f6923c1df11a96876ab094138ea2a94' ]

Und ich finde es seltsam, dass, wenn ich entfernen Sie die einlösen script param von signP2SHTransaction - Funktion (die ist gekennzeichnet optional), bekomme ich eine andere Unterschrift:

Sig hash: [ '3045022100f40f8fa2b75196a50b2f2543a06a3ed3ed79814cd29510f1225a359620b1c19102201af093addc93fce4fe8c59ad127c42064c2840ec7c71fbf5d0bae7ee5cb4cd39' ]

Aber beide sind nicht in der Lage zu Unterschreiben, die Transaktion in einer richtigen Art und Weise und es Fehler, während ich es validieren gegen die Transaktion.

Ich habe folgende Skript zu finden, die eine gültige Signatur mit bitcore-lib:

const bitcoin = require("bitcoinjs-lib");
const bitcore = require("bitcore-lib");

// Dies sind die privaten Schlüssel der Pfade- 48'/0'/0'/69/0/0 und 48'/0'/0'/96/0/0 meiner ledger
// Ich abgerufen, Sie mit https://iancoleman.io/bip39/ und mein ledger mnemonischen

const privateKeys = [
 neue bitcore.PrivateKey(
"cNKAjjSL5buaP6q7fE375jkt72JAvvoe8rvh2v5txv6gdjzxwpvx",
"testnet"
),
 neue bitcore.PrivateKey(
"cMmNVwdfid1FnT4LjH4SJ1mZvTEGnMfUxdasgktrhvd5ncy1ucvr",
"testnet"
)
];

const publicKeys = privateKeys.Karte(bitcore.PublicKey, bitcoin.Netzwerke.testnet);
const Adresse = new bitcore.Adresse(publicKeys, 2); // 2 von 2

console.log("\n\nCreated diese Adresse:", Adresse);
console.log("\n\nPublic Schlüssel:", publicKeys);

// Diese utxo, wird derselbe rawTx da ich in meinem code mit Ledger
const utxo = {
 Adresse: "2NB9YNZwwKXannuZryo2KfvMNe4jeSNcsp5",
 txid: "0ad5948e66a4acb72e0fc549cb451fdceabd722f17678d0298cb5ffe65be4f6f",
 vout: 1,
 scriptPubKey: "a914c45f1d5dde5c0f7008dd6c228c1702cfdafdf1a987",
 // "Skript" : neue bitcore.Skript(Adresse).toHex(),
 satoshis: 128600000
};

const Gebühr = 10000;

const tx = new bitcore.Transaction()
 .aus(utxo, publicKeys, 2)
.Gebühr(fee)
 .zu("2N6FbZbJsGHWRpnbu8vrowCfGATKsYxudf9", 1300000)
.ändern("2NB9YNZwwKXannuZryo2KfvMNe4jeSNcsp5");

const txObj = tx.toObject();
console.log("\n\nTransaction Objekt:", txObj);
console.log("\n\nTransaction hash:", tx);

const signature1 = tx.getSignatures(privateKeys[0])[0];
console.log("\n\nSignature1 Objekt:", signature1.toObject());
console.log("\n\nSignature1 hash:", signature1.Unterschrift.toString()); // Gibt eine DER signature1
console.log("\n\nSignature1 Typ:", signature1.sigtype);

console.log("\n\nIs gilt tx 1:", tx.isValidSignature(signature1));
if (!tx.isValidSignature(signature1)) throw "Keine gültige Signatur";

Es ergeben sich die folgenden gültigen Signatur:

Signature1 hash: 304402203fb366ffd2840a900abc7ed25e945e4fdcf37679870a6ee45ce0030dd725856e02202d3b1c86458121cf4b79382281eca074a56d8b67a86dc754e2f7c65501f75b0b

Ich denke, es ist ein bug in der aktuellen Version der Finanzbuchhaltung, können Sie mir bitte helfen.

Lösung: Ich habe eine falsche Eingabe für mein Ledger, musste ich utxos zu erstellen, die die Eingabe Texas, aber ich verwendet, die endgültige rawtx (die ich erstellen mithilfe der Texte). Diejenigen, die stecken mit dieser Ausgabe halten Sie das folgende im Hinterkopf:

In Ledger Dokumentation von signP2SHTransaction-Funktion- http://ledgerhq.github.io/ledgerjs/docs/#btc - Eingänge: siehe utxos Sie verbrauchen zu bilden tx - outputScriptHex: kann verwendet werden, um geben Sie die gewünschten Ausgabe-Parameter wie Gebühren, Adresse ändern, etc.

+617
MihaiL Suntok 29.07.2017, 15:31:58

Dies ist zurzeit nicht möglich, noch ist es sicher zu löschen.

So, wie der Kunde am Schalter, ob ich was vorbereiten konnte für eine Transaktion erforderlichen Betrag von meinem wallet-app auf dem Handy, irgendwie zu genehmigen/unterzeichnen/beglaubigen, aber nicht senden Sie es an das bitcoin-Netzwerk noch.

Dies ist möglich, aber nur, wenn der Kunde weiß, welche Adresse zu senden Sie die Bitcoins an. Wenn er das nicht tut, dann funktioniert es nicht.

Stattdessen habe ich das senden der Transaktion an den shop-Besitzer, die via bluetooth, QR-Code, NFC-was auch immer. Der Shopbetreiber nimmt diese Transaktion, überprüft es gegen den aktuellen Betrag auf das enthaltene Adresse/es. Die Idee ist, dass dies garantiert der shop-Betreiber, dass er oder Sie tatsächlich in der Lage sein, die zum abrufen der Betrag zu einem späteren Zeitpunkt.

Tut das garantiert nicht, dass der shop-Besitzer erhält kein Geld. Alle, die garantiert ist, dass die shop-Besitzer gesehen hat, die Transaktion und können verbreiten Sie sich. Aber der Kunde konnte führen Sie einen Doppelklick verbringen Versuch und haben es erfolgreich, wenn der shop-Betreiber nicht unverzüglich die übertragung der Transaktion. Dies ist, weil der Kunde immer noch die Informationen, die erforderlich sind, um eine entgegenstehende Transaktion (d.h. den privaten Schlüssel) und nur zu veröffentlichen, die an das Netzwerk. Einfach die übergabe einer Transaktion bedeutet nicht, dass es plötzlich unmöglich, die person zu erstellen Sie eine neue Transaktion, sendet das Geld an anderer Stelle.

Am Ende des Tages, der shop-Betreiber übernimmt alle gesammelten Transaktionen, fügt diese in eine neue einzelne (zum speichern von bytes) und sendet nun diese Transaktion auf das bitcoin-Netzwerk. Diese Transaktion sollte Billig sein und effizienter im Vergleich zu einzelnen Transaktionen, die aus den ganzen Tag die Kunden.

Das ist nicht möglich. Niemand kann ändern, diejenigen Transaktionen, mit Ausnahme der Leute, die den privaten Schlüssel. Sie können nicht "gemischt" miteinander, es sei denn, die person zu tun, dass "blending" steuert alle privaten Schlüsseln im Zusammenhang mit diesen Transaktionen. "blending" würde erfordern, erstellen Sie eine neue Transaktion, verbringt die gleichen Ausgänge und erstellt eine unterschiedliche Ausgabe. Es ist eine völlig neue Transaktion, die der Bedarf der Kunden' private Schlüssel, um zu erstellen.

+567
gerardkieffer 10.04.2013, 20:22:58

Litecoinlocal ist der beste Ort für diese, wie Sie den Austausch Ihrer USD direkt auf eine person für Litecoins über SEPA, ACH, oder was auch immer Zahlungsmethode Sie sich entscheiden.

+565
Geordi La Forge 05.09.2012, 07:37:23
  1. Die Gebühr für jede Transaktion berechnet werden kann mithilfe estimatefee-API-Aufruf. Und ja, blockchain.info integrieren muss die Gebühr bei jeder Transaktion, 0.0001 BTC als minimum. Einer der Gründe, die für die notwendige Gebühr für den Abzug ist die schnelle Aufnahme der Transaktion in den nächsten Blöcke. Sie können versuchen, erstellen Sie eine Transaktion mit den Ausgaben alle Ausgaben auf die Eingänge und nicht zahlen keine tx-Gebühren. Der Kunde wirft eine Fehlermeldung, die besagt unzureichend.

  2. Ja kann man, aber dann werden Bedingungen gelten. Sie können überprüfen Sie heraus diesen link, um klare Dinge ein bisschen mehr.

+552
mAnetka 16.01.2012, 08:38:50

BIP 50 beschreibt die temporären Maßnahmen zur Behebung einer Kette von split im März 2013. Einer von Ihnen war:

Begrenzen Sie die maximale block-Größe erstellt zu 500.000 bytes

https://github.com/bitcoin/bips/blob/master/bip-0050.mediawiki

Ich habe gesehen, dass dieses zu Begehen, aber es geht nicht auf block-size-limit:

https://github.com/bitcoin/bitcoin/commit/8bd02881899bbae2d8e5082081e02c7d577994e5

Was war der eigentliche commit, senkte die block-size-limit??? Hab das update lediglich einstellen das soft-limit Bergleute beim generieren von Blöcken, oder hat es tatsächlich dazu führen, dass Knoten, die zur Ablehnung weitergeleitet Blöcke größer als 500K?

Ich denke, dies kann relevant sein, weil, wenn das letztere der Fall ist, es würde damit einen Präzedenzfall für die Anhebung der block-size-limit. Die Grenze wurde später automatisch angehoben (scheinbar).

+551
alexander mogren 27.05.2019, 11:11:34

In einer Weise ist es schon eine Währung, da biete ich eine Prämie für meine Frage.

So ist es richtig, rufen Sie Ruf-Punkte von StackExchange eine Kryptogeld?

Wenn nicht, dann warum?

+550
gulfina90 21.10.2012, 07:50:20

Vorausgesetzt, Sie haben eine symmetrisch verschlüsselte Kopie des privaten Schlüssels, wobei die Verschlüsselungs-key aus einer passphrase abgeleitet, Sie würden versuchen, führen einen known-plaintext-Angriff. Es sollte jedoch nicht möglich sein, in Polynom-Zeit für eine richtige AES-Implementierung, so dass ich fürchte, Sie sind aus Glück heraus.

+531
lxalln 19.10.2016, 10:28:20

Ich bin versucht, generieren eine P2SH-P2WSH - Adresse und dann verbringen Sie eine Ausgabe an diese Adresse geschickt, aber wenn ich Versuch die Unterzeichnung erhalte ich Invalid private key Fehler von bitcoind (v0.15.1.0). Also, wo bin ich denn falsch, ich bin nicht ganz sicher, dass ich generieren-Adresse korrekt oder bitcoind rpc-Methoden korrekt unterstützt segwit Unterzeichnung Betrieb. Ich würde mich freuen, wenn jemand bestätigen könnte, ob die Adresse richtig erzeugt wird oder ob ich mich irgendwie Versagen bei der Unterzeichnung der Bühne von meinem Ende. Ich kann generation-code (geschrieben in Java), wenn nötig.

Hier ist, was ich kam mit:

Adresse-generation 2 von 2 multisig:

Private hex-Schlüssel c3accc350d70d1981c4366fd6fd86d9cc311048ae8620dac0b3dc9d18ce415fa
Public-Key-320ce424c6d61f352ccfea60d209651672cfb03b2dc77d1d64d3ba519aec756ae

Private hex-Schlüssel 1093e97f3c01bd766473cc51441d443e9325a59387421a9e2fb69b7f9587d915
Public-Key-20b020e27e49f049eac10010506499a84e1d59a500cd3680e9ded580df9a107b0

Zeuge Programm=2 PUSHDATA(33)[020b020e27e49f049eac10010506499a84e1d59a500cd3680e9ded580df9a107b0] PUSHDATA(33)[0320ce424c6d61f352ccfea60d209651672cfb03b2dc77d1d64d3ba519aec756ae] 2 CHECKMULTISIG
Zeuge hex=5221020b020e27e49f049eac10010506499a84e1d59a500cd3680e9ded580df9a107b0210320ce424c6d61f352ccfea60d209651672cfb03b2dc77d1d64d3ba519aec756ae52ae

redeemScript Programm=0 PUSHDATA(32)[16a91e58e02069f95ea6defba7436199658573c34d384c69779779f4500d7cac]
redeemScript hex=002016a91e58e02069f95ea6defba7436199658573c34d384c69779779f4500d7cac

scriptPubKey-Programm=HASH160 PUSHDATA(20)[035e0a0739eec3c195f9dc0d8b85e6e3f6ae1ece] GLEICH
scriptPubKey hex=a914035e0a0739eec3c195f9dc0d8b85e6e3f6ae1ece87

TestNetAddress=2MsZ2fpGKUydzY62v6trPHR8eCx5JTy1dpa

Ich habe diese mit bitcoinj-Bibliothek ich bin nicht ganz sicher, dass das richtig ist, aber vom Aussehen, schien es, wie es beschrieben wurde in segwit dev guide von bitcoin core.

Fonds einzahlen Ich schickte Sie an diese Adresse testen-Münzen (Testnet3) mit diesem TX = 122831a5cc3d3875cadd89e2a2690c2e5bc9e703d177385e1a3318a44675b6d6

Erstellen von raw-Transaktion:

Erstellt Transaktion hex (mit bitcoin rpc) = 
{
 "jsonrpc": "1.0",
 "id": "reqId1",
 "Methode": "createrawtransaction",
 "params": [
[
{
 "txid": "122831a5cc3d3875cadd89e2a2690c2e5bc9e703d177385e1a3318a44675b6d6",
 "vout": 1
}
],
{
 "mmZFY7b7NArkrnri43RwxL58m6TZUqty4t": "0.09999"
},
0
]
}
Antwort hex = 0200000001d6b67546a418331a5e3877d103e7c95b2e0c69a2e289ddca75383dcca53128120100000000ffffffff0198929800000000001976a914423ffad905158d1d472f5fcd5fbc6916c2fb031f88ac00000000

Unterzeichnung raw-Transaktion:

SignRaw Transaktion Anforderung (mit bitcoin rpc) = {"jsonrpc":"1.0","id":"signrawtransaction_1510651375833","method":"signrawtransaction","params":["0200000001d6b67546a418331a5e3877d103e7c95b2e0c69a2e289ddca75383dcca53128120100000000ffffffff0198929800000000001976a914423ffad905158d1d472f5fcd5fbc6916c2fb031f88ac00000000",[{"txid":"122831a5cc3d3875cadd89e2a2690c2e5bc9e703d177385e1a3318a44675b6d6","vout":1,"scriptPubKey":"a914035e0a0739eec3c195f9dc0d8b85e6e3f6ae1ece87","redeemScript":"002016a91e58e02069f95ea6defba7436199658573c34d384c69779779f4500d7cac","amount":"0.10000000"}],["c3accc350d70d1981c4366fd6fd86d9cc311048ae8620dac0b3dc9d18ce415fa","1093e97f3c01bd766473cc51441d443e9325a59387421a9e2fb69b7f9587d915"]]}
{
 "jsonrpc": "1.0",
 "id": "reqId2",
 "Methode": "signrawtransaction",
 "params": [
"0200000001d6b67546a418331a5e3877d103e7c95b2e0c69a2e289ddca75383dcca53128120100000000ffffffff0198929800000000001976a914423ffad905158d1d472f5fcd5fbc6916c2fb031f88ac00000000",
[
{
 "txid": "122831a5cc3d3875cadd89e2a2690c2e5bc9e703d177385e1a3318a44675b6d6",
 "vout": 1,
 "scriptPubKey": "a914035e0a0739eec3c195f9dc0d8b85e6e3f6ae1ece87",
 "redeemScript": "002016a91e58e02069f95ea6defba7436199658573c34d384c69779779f4500d7cac",
 "Anzahl": "0.10000000"
}
],
[
"cN8vhcMrmcf3fUkWeTrRNt6mmiBoqnKmuce3yncwkujjnnskbjbg",
"cU94urfRuwnEpGtJiiKyGsBqbC7woGazxst1hbgywmgfvdafkmgu"
]
]
}

Ergebnis = Fehler{code=-5, message= "Invalid private key" - Daten='null'}
+530
Raja usman 05.11.2018, 04:40:19

Wenn ich geschickt bitcoins an jemanden, aber dann stornieren wollen, ist diese Transaktion nach wurde es bereits gemacht (wie eine Rückbuchung auf eine Kreditkarte), ist das möglich mit Bitcoin?

+443
Renan Lopes 14.10.2011, 16:47:43

Ein paar mehr Infos von upb aus #mtgox:

  • so gibt es einige zugrunde liegenden Fehler, der ausgelöst wurde, verursachte ungültige order-matching
  • <@MagicalTux> ja, aber es erfordert eine große Menge von Mitteln ausgelöst werden
  • <@MagicalTux> normale Benutzer, es sei denn, Millionär, würde nicht auslösen
  • < upb - > muss irgendeine Art von integer-überlauf ;-)
  • <@MagicalTux> es passiert, wenn eine Bestellung ausführt, die zu vielen Bestellungen auf einmal
  • <@MagicalTux> ich bin das hinzufügen einiger code dies zu vermeiden, aber niemand bei klarem Verstand würde das tun

Diese tatsächlich erinnerte mich an etwa 2-3 Wochen dann bemerkte ich einen Fehler und meldete ihn auf #mtgox.

Der bug funktionierte wie folgt:

  • Ich hatte eine buy order bei, sagen wir mal 1 BTC für USD 10.0, Letzte Handel war 10.001
  • jemand teilweise gefüllt, dass um, sagen wir, er füllte 0.3 BTC
  • dies hatte den Effekt, meine Bestellung im Status "ausstehend" mit 0,7 BTC für USD 10.0
  • während ich meine Bestellung anhängig war, einer niedrigeren Ordnung (sagen wir USD 9.99) gefüllt war

Ich beschwerte mich und eine kurze Weile nach, MagicalTux sagte, dass er das problem gefunden und es behoben.

Ich weiß nicht, ob dies etwas zu tun haben mit dem aktuellen problem, aber "es passiert, wenn eine Bestellung ausführt, zu viele Aufträge auf einmal" sound Art, wie dies der Fall sein könnte.

Ich erinnere mich auch jemand darauf hindeutet, diese oben beschriebenen Fehler könnte dazu ausgenutzt werden, deaktivieren Sie eine Menge von Bestellungen, um zu "lernen" ein Auftrag, der normalerweise gut aus zu verbreiten. Vielleicht hat jemand geschafft, ziehen Sie diese zu nutzen. Das würde auch passen, MagicalTux sagen etwas über 2000 Konten erstellt werden. Vielleicht sind diese Konten wurden genutzt, um "deaktivieren" Bestellungen durch ausfüllen ein kleiner Teil von Ihnen nacheinander in der Reihenfolge ausgeführt, um gut aus zu verbreiten.

+387
Channen 09.08.2010, 18:21:04

Aus der Bitcoin Core 0.10.0 release notes:

Standard-script Regeln entspannt P2SH Adressen

Die IsStandard () - Regeln wurden fast vollständig entfernt, die für P2SH Erlösung-Skripts, sodass Anwendungen verwenden gültig script type, wie "n-of-m-ODER-y", hash-gesperrt oracle-Adressen, etc. Während das Bitcoin-Protokoll unterstützt seit jeher diese Arten von scripts, eigentlich mit Ihnen auf mainnet wurde zuvor als unbequem standard-Bitcoin Core-Knoten würde nicht leiten Sie dann an die Bergleute, noch würde die meisten Bergleute in Blöcke, die Sie abgebaut.

Also im wesentlichen die Kern-software wird nun relais komplizierter P2SH Txns die vorher als non-Standard-Transaktionen.

Was sind die spezifischen änderungen, die gemacht wurden (dh entspannt standards)? Tut es nur für P2SH Txns? Schließlich, "n-of-m ODER y" und hash-gesperrt oracle-Adressen sind als Beispiele genannt: was bezieht sich dieses genau?

+378
insaineyesay 07.03.2012, 23:59:59

Es sind nun schon ein paar Möglichkeiten zur Absicherung der Preis des BTC. Eine Möglichkeit ist, mit IG Markets binären Optionen. Es gibt auch CFDs (contracts for difference) an mehrere Anbieter.

Wie auch bei den "dark pools" mit diesem Konzept ist es unmöglich auf BTC da alle 10 Minuten alle Transaktionen ausgestrahlt werden.

+301
Elizabeth Ann 27.01.2010, 00:03:15

Buchstäblich Hunderte von Münzen sind gebaut aus den original-Bitcoin-code. Sollten Sie sich über die GitHub-Projekte von Münzen, die Sie interessiert sind, hier finden Sie den source-code und zeichnen kann, die ähnlichkeiten mit der bitcoin GitHub-repository.

+280
AlexsandrR12 06.03.2018, 13:18:20

Die http://bitcoinwatch.com/ Website gibt ein pie-chart des hasrate Vertrieb von mining-pool.

+268
JBR 26.09.2017, 20:37:41

Ich schrieb ein python-Programm zur Berechnung der block-hash aus der Fassung, prev_block, mrkl_root -, Zeitstempel-bits, und nonce. Sie sehen es hier.

+236
Sortee 22.06.2017, 18:12:04

So nach vielen Brieftaschen, sagen Sie, sollten Sie eine andere, öffentliche Adresse, die für jede Transaktion, die aus Gründen der Sicherheit. Sind all diese öffentlichen Adressen im Zusammenhang mit der gleichen wallet/private key direkt oder ist die Brieftasche mit HD-Funktionen? Auch wie sind diese Adressen erstellt, in der Waffenkammer zum Beispiel?

Nun, sagen, dass Sie wollte, um verbringen Fonds aus der Brieftasche, auf der blockchain, wird es zeigen, der gleichen Absenderadresse, oder sind Sie in der Lage, um verbringen Fonds aus dieser Brieftasche macht es so Aussehen wie es kommen viele verschiedene Adressen?

edit: So können sagen, ich 1btc erhalten den gleichen armory wallet auf 3 verschiedene Adressen A, B, C. Sind diese HD-oder völlig zufällig Adressen?

Dann möchte ich verbringen, 2.5 btc zu meinem Freund Dave zu Adresse D. Auf die blockchain, was die show wird als sende - /Eingabe-Adresse? Wird es nur eine Adresse (X-D), oder wird es zeigen, wie mehrere Transaktionen (A, B, C zu D)? Und auch, an welche Adresse wird die änderung, die kommen zurück?

+188
user11082 15.12.2016, 21:32:42

"Doublespend" bezieht sich auf einen Versuch zu verbringen, die gleichen Mittel doppelt. In Bitcoin speziell dieses tritt auf, wenn ein Benutzer veröffentlicht zwei Transaktionen, die in Konflikt stehen, durch verwenden der gleichen unverbrauchten Transaktion output als input. Natürlich, nur eine der beiden Transaktionen gültig sein können.

Bevor Bitcoin veröffentlicht wurde, die Lösung des doublespending problem war die Benennung einer zentralen Akteur entschieden, welche der beiden Transaktionen würden, haben Vorrang. Der zentrale Akteur tun würde dies mit der Ankündigung, die von den beiden hatte es zuerst gesehen.

Die "erste-gesehen" - Verhalten war zunächst explizit kodiert Knoten Verhalten: Knoten akzeptieren würde, der nicht eine entgegenstehende Transaktion in Ihre mempool (die vorübergehende Lagerung von unbestätigten Transaktionen). Allerdings führte dies zu der falschen Annahme, dass die null-Bestätigung von Transaktionen werden könnte, zuverlässig in der Erwägung, dass tatsächlich die doublespending problem ist gelöst durch Bergleute sammeln von Transaktionen in blocks für die Bestätigung. Die Blöcke können nur mit einem der zwei miteinander in Konflikt stehende Transaktionen, da sonst der block ist ungültig. So, die blockchain gibt die Priorität von Transaktionen, indem Sie konvergieren auf eine gemeinsame Zeitschrift der Transaktionen ohne einen zentralen Akteur.

In den letzten Monaten haben wir gesehen, dass die "zuerst-gesehen" - Paradigma erhalten aufgeweicht deutlich doublespends (von unbestätigten Transaktionen) haben sich mehr oder weniger trivial aufgrund der hohen Nachfrage für blockspace. Wie es immer üblich, für die Nutzer zum update-Transaktionen mit einem höheren Gebühr (d.h. eine doublespend), das "zuerst gesehen" Paradigma fallen aus der Nutzung und wird ersetzt durch die defacto-Mechanismus der "ersten-enthalten". Unter der Annahme rational Bergmann Verhalten die Auswahl der profitabelsten Transaktionen zuerst, wir werden konvergieren auf eine volle ersetzen-von-fee-system schließlich.

In anderen Worten, wenn Sie das whitepaper beschreibt die Anforderung für das Bitcoin-system zum erstellen einer konvergenten Geschichte mit der "ersten sehen", beschreibt es eine vereinfachte situation, die nicht für die Netzwerk-Dynamik des Wettbewerbs für blockspace. Aus heutiger Sicht sollte dies verstanden werden als "erste-bestätigt".

+164
user43702 25.02.2016, 09:41:18

Ich arbeite an einer simulation zu erkunden, die Nützlichkeit von einem patch für die CoinSelection Verhalten BitcoinCore. Zu diesem Zweck, ich bin auf der Suche nach Statistiken über die Verteilung von nichtgenutzten Ausgänge jeweils auf Ihren Wert bei satoshi.

So weit, ich habe nicht viel gefunden über das Thema neben eine veraltete Zahl der nicht ausgegebenen Transaktion Ausgänge, die als wahrscheinliche Suchbegriffe kollidieren mit einer Menge von nicht verwandten Themen.

Gibt es irgendwelche Papiere oder andere Quellen, die besprechen:

  • Wie kann man realistisch das Modell die Verteilung der der Wert (satoshi) aller UTXO (nicht ausgegebene Transaktion Ausgänge)?
  • Welche Art von Kurve, die beste Annäherung an die Verteilung?
  • Was sind Mittelwert, Standardabweichung und Varianz des Netzwerk-UTXOs' Werte?
  • Bonus: Wie hat sich die Verteilung der UTXO' Werte ändern sich im Laufe der Zeit?

Klarstellung: ich bin interessiert in der Modellierung der Anzahl von satoshi hielt in UTXO.

+162
89515260834 07.11.2012, 22:34:37

https://blockchain.info/tx/779afbdbdb03d13743626c8b1028404a6b16e65a2373ab5f744d206f34996c9a?show_adv=true

Ich habe dieses TX von okcoin mit 0.0005 (default) Gebühren. Nach 1 Tag ist es endlich zeigte sich in der blockchain, jetzt nach 48h ich sehe, keine Bestätigung. Die Höhe der Transaktion scheint wirklich hoch, im Vergleich zu den Durchschnitt von 250-500 byte. Wird es bestätigt werden, irgendwann oder wird mempool ablehnen ? Ich habe gelesen, dass passiert bereits nach 72h ? Sollte ich doppelt ausgegeben, um es zu kündigen ?

Auch, warum ist es so groß ? Hätte es vermieden, mit einem neuen RX-Adresse.

Vielen Dank im Voraus !

+153
Al Adzrul 07.07.2014, 03:52:52

Nein, es muss nicht sein. Bergbau erfordert nicht den privaten Schlüssel, der nur (Teil -) öffentlichkeit ein. Nur die Adresse des Ziels ist genug, so dass die Geldbörse gesperrt werden können.

+57
tamuyinude 02.04.2011, 10:12:53

Fragen mit Tag anzeigen