Die nVersion bit ist die "harte Gabel etwas?"

Ein 2015 Entwurf des BIP vorgeschlagen, eine "harte Gabel bit":

Das höchstwertige bit in nVersion ist definiert als die hardfork bit. Derzeit sind Blöcke, die mit diesem header bit-Einstellung 1 ungültig sind, da BIP34 interpretiert nVersion als Zahl unterzeichnet und verlangt, >=2 (mit BIP66, >=3). Unter den 640 bits im block-header, das ist das einzige, was behoben wird, und dient keinem Zweck, und daher der beste Weg, um anzuzeigen, die Bereitstellung eines hardfork.

https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-July/009576.html

Wenn die bit-Indizes steigen von Links nach rechts, dann Stell ich mir das schwer Gabel etwas besetzen index 31, gekennzeichnet als * unten (nVersion ist ein 32-bit-Wert).

0 1 2 3
0/1/2/3/4/5/6/7/8/9/0/1/2/3/4/5/6/7/8/9/0/1/2/3/4/5/6/7/8/9/0/1
*

Nach dem Vorschlag, Einstellung bit 31 von nVersion sollte dazu führen, dass ein block als ungültig abgelehnt.

BIP-9 Plätze, weitere Einschränkungen auf den verfügbaren bits, speziell, bits 0-2, muss mit [0, 0, 1]:

Blöcke in der BEGANN der Staat bekommen nVersion deren bitposition bit auf 1 gesetzt ist. Die oberen 3 bits eines solchen blocks werden müssen, 001, also der Bereich der tatsächlich möglich nVersion Werte [0x20000000...0x3FFFFFFF], inklusive.

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

Darüber hinaus BIP-9 vermittelt-version bits in aufsteigender Reihenfolge von rechts nach Links. Das heißt, version, bit 0 ist nVersion bit 31, bit-version 1 ist nVersion bit 30, und so weiter.

Aber wenn dies der Fall ist, dann ist version bit 0 off-limits. BIP-9 sagt nichts darüber, und in der Tat BIP-68 signalisiert wurde, die mit der version bit 0:

Das BIP ist bereitgestellt werden "versionbits" BIP9 unter Verwendung von bit 0.

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

Meine Fragen sind einfach:

  1. Mein Diagramm oben, die nVersion bit-index wird die "harte Gabel etwas?"
  2. Wenn ich richtig bin in meiner interpretation (ich glaube nicht, dass ich bin), wie könnten dann die BIP-68 haben signalisiert wurde, ohne dass die blocks zu tun, so abgelehnt zu werden als ungültig?

Update: die Quelle meiner Verwirrung dachte, dass nVersion bit-Indizierung und-version bit-Indizierung lief in entgegengesetzte Richtungen. Die nicht. Um die Bereitschaft signal für einen Vorschlag mit der version 1 bit, beispielsweise, nVersion bit 1 gesetzt ist. BIP-9-Regeln aktivieren, wenn ein nVersion Signatur erkannt wird. Diese Signatur ist bit 29-31 setzen als 1, 0und 0, beziehungsweise. Diese Blätter bit 31 gelöscht.

Die Antwort des Petrus-Adressen-Frage (1) oben.

Wie bei Frage (2) BIP-68-Signalisierung nicht die Ursache für block Ablehnung, weil bit 0 gestellt wurde, nicht bit 31.

+105
Niranj Niru 23.02.2014, 12:47:32
24 Antworten

Ich bin mit ASP.NET(VB) zu nennen, API

Versuchen
 Dim strUrl As String = "https://blockchain.info/tobtc?currency=USD&value=500"
 Dim request As WebRequest = HttpWebRequest.Erstellen(strUrl)
 Dim response As HttpWebResponse = DirectCast(request.GetResponse, HttpWebResponse)
 Dim s As Stream = DirectCast(response.GetResponseStream(), Stream)
 Dim readStream As New StreamReader(s)
 Dim Als String dataString = readStream.ReadToEnd()
Antwort.Close()
s.Close()
readStream.Close()
 Zurück dataString
 Catch ex As Exception
 Return "N"
 End Try

Es ist in Ordnung arbeiten. Aber wenn ich mit API für die Erste Bilanz

Dim strUrl As String = "https://blockchain.info/merchant/<<GUID>>/address_balance?password=<<PASSWORD>>&address=<<BTC_ADDRESS>>

Es wird immer Fehler 404 Nicht Gefunden. In dem Beispiel auf Blockchain website zeigt seine "http://localhost:3000/" Wie kann es für alle gleich.

+996
William Man 03 февр. '09 в 4:24

Mir Bitcoin? Absolut nicht.

Bei der derzeitigen Schwierigkeit, Sie müssten fast 16 Millionen Jahre, um mir einen block.

Die einzige profitable mining-Operationen mit sogenannten ASICs (Application Specific Integrated Circuits). Diese Geräte verwenden Sie den SHA256-hash-Algorithmus ab 1Ghash/Sek (im Vergleich zu vielleicht 50000-100000 hash/sec auf einer CPU. Nicht kHash, aber hash.

Einige "Altcoins" nutzen algorithmen weniger unveränderlich Zu ASICs aber noch eine high-end-GPU Grafikkarten. Auch die Scrypt Litecoin Algorithmus verwendet wird gefördert von ASICs jetzt. Es gibt algorithmen, die abgebaut werden können, indem die CPU-wie Scrypt-n, aber auch diese verwenden CPU/GPU-Kombination mining, glaube ich.

+970
Minping Zhou 02.08.2017, 22:06:59

Mein Verständnis ist, dass die 12-Wort-Samen wird verwendet, um erholen wallets' privaten Schlüssel. Wenn jedoch jeder private Schlüssel ist 256 bit lang, und das Wörterbuch für die Samen enthält nur 2048 Worte, dann ist das nicht annähernd genug, um Sie zu decken alle: 2048^12 = 2^132 << 2^256.

Wo ist mein Missverständnis?

+967
Misha Marinenko wh0ami 22.12.2018, 17:06:36

Ich hatte das gleiche Problem hatte, wenn ich Bitcoin Core läuft. Herunterfahren Bitcoin Core und Neustart Multibit wurde das Problem behoben.

Ich vermute das Problem war, dass Bitcoin Core hatte exklusiven Zugriff auf port 8333. Wenn Sie nicht mit Bitcoin Core, prüfen Sie, ob andere software, die eventuell diesen port verwenden.

+967
Bella14 20.11.2019, 13:47:50

Die Menge der hashes pro Sekunde Ihre hardware ausführt, beruht ausschließlich auf Ihrer hardware und software.

Die aktuelle Geschwindigkeit des Netzwerks ist es unerheblich, wie viel Ihr Beitrag verdienen. Das einzige, was zählt, ist die aktuelle Schwierigkeit. Ein Betrag von hashing oben oder unten, der Schwierigkeitsgrad wird zeigen die Richtung der nächsten Schwierigkeit der Anpassung, aber für den nächsten block, Bergbau Renditen hängen von der Schwierigkeit und sonst nichts.

Hier ist eine Tabelle mit den raw-Daten:

Und hier ist die Schwierigkeit-Diagramm (blau):

enter image description here

+965
Austin Lola 05.02.2010, 10:48:29

Auf der Seite von BIP39 specs gibt ' s test-Vektor (array) aus Trezor link. Es sieht wie folgt aus:

["ffffffffffffffffffffffffffffffff",

 "zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo falsch",

"ac27495480225222079d7be181583751e86f571027b0497b5b5d11218e0a8a13332572917f0f8e5a589620c6f15b11c61dee327651a14c34e18231052e48c069",

"xprv9s21ZrQH143K2V4oox4M8Zmhi2Fjx5xk4lf7gkrvpsgydu3mjzukgctg7upibud7ydvpvsltg9hjp7mqtysw67rzhaxeccqyqrsx8lcxnyd"
],

Wenn ich versuche, verwenden Sie eine der folgenden mnemonische Sätze, die ich nicht bekommen kann passende xpriv... form dieser Beispiele mit Bip39 JS lib.

Zum Beispiel:

const MNEMONIC = "zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo falsch";
const seed = Bip39.mnemonicToSeed(MNEMONIC);
console.log("Seed =", seed.toString("hex"));

const Stammknotens = Bip32.fromSeed(Saatgut, Bitcoin.Netzwerke.bitcoin);
console.log("Bip32 Root key =", Stammknotens.toBase58());

gibt völlig unterschiedliche Ergebnisse

Seed = b6a6d8921942dd9806607ebc2750416b289adea669198769f2e15ed926c3aa92bf88ece232317b4ea463e84b0fcd3b53577812ee449ccc448eb45e6f544e25b6
Bip32 Root key = xprv9s21ZrQH143K2PfMvkNViFc1fgumgqbew45jd8sxa59jc5m66n3diqb92jjvar61zt9p89grys12kdtv4efvo6tmwer7u2hcumz9vfmyplc

Wie bekomme ich diese c5525... und xpriv... und was ist es genau?

UPDATE:

als user3074620 vorgeschlagen, ich habe versucht, 'TREZOR' Passwort, wie es funktioniert!

hier der code zu spielen, jemand interessiert ist.

+948
hyvtal 20.07.2015, 00:52:29

So, ich denke darum geht zurück in bitcoin und ich habe vor kurzem entdeckt, die ASICMiner Block Erupter. Und ich sehe, dass fast jeder hat Sie auf einem USB3-hub. Sagen wir, ich lief 8 dieser Block Erupters auf einem einzigen hub verbunden war, zu dem rPi. Jetzt weiß ich, dass der hub auch USB3 und der rPi hat nur einen USB2-Anschluss. Wäre das okay? Und würde der rPi in der Lage sein, zu behandeln oder zu verarbeiten, die bitcoin-mining-Anwendung? Oder brauche ich, um ein wenig besseren PC zu umgehen?

Ich entschied mich für den rPi, weil es verbraucht die low-power-selbst, und ich kann ihn 24/7 laufen als ein PC.

+942
Neise Turchin 30.03.2016, 17:19:10

Ich weiß, es ist derzeit nicht möglich, stornieren Sie Transaktionen in der Bitcoin. Aber sagen wir mal jemand will zur Umsetzung eines solchen Mechanismus in ein altcoin. Ist es theoretisch möglich, ohne Beschädigung der offenen Natur von cryptocurrencies ? Haben wir die erforderliche primitive für Sie ?

+925
orlangur 12.11.2018, 08:00:35

Eine unbestätigte Gleichgewicht bedeutet einfach nur, dass das Portemonnaie ist eingebunden in eine unbestätigte Transaktion. Dies kann eine Transaktion durch, die Brieftasche oder einer Transaktion durch eine andere Brieftasche, die sich auf das Portemonnaie. Ihre Brieftasche-balance wird bestätigt, sobald jeder Transaktion, die Ihr beteiligt ist, bestätigt.

Derzeit gibt es weitere unbestätigte Transaktionen als üblich. Sie können überprüfen, wie viele unbestätigte Transaktionen gegenwärtig sind, indem Sie auf diesen link. Das ist, warum Ihre Transaktion nicht durch die wir noch gehen, obwohl die Gebühren hoch genug ist.

Reparieren Sie Ihre Geldbörse nicht machen, wird die Transaktion Durchlaufen schneller. Dies hängt nur auf, wenn ein miner entscheidet, um Ihre Transaktion in einem block. Und wie ich bereits sagte, Ihre Brieftasche-balance als unbestätigt bedeutet einfach, dass Ihre Geldbörse beteiligt ist, in eine unbestätigte Transaktion.

+923
user1914191 26.12.2013, 23:25:18

Ich bin interessiert in der Höhe von insgesamt BTC, die beschlagnahmt wurde in der Silk-Road-Beschlagnahmung durch das FBI. Der Grund, warum ich interessiert bin ist, damit ich herausfinden kann, was Bitcoin-Adressen verwendet wurden und wie kann ich nachvollziehen, die Verwendung von "Silk Road coins" im Netzwerk ab dem heutigen Datum (das Datum, Wann die Gelder beschlagnahmt wurden) weiter.

Q:

  • Wie viele BTC wurden beschlagnahmt, die in Verbindung mit der Seidenstraße?

  • Was sind das für Adressen?

+848
autr3go 25.08.2016, 20:42:07

Ich Dummerchen, nicht push wallet Ergebnisse...

Hier ist der funktionierende code:

 var bitgo = new BitGoJS.BitGo();

 var listWallets = function() {

 Benutzer.find({}, function(err, docs) {
 if (err) {console.log('Konnte nicht gefunden Portemonnaies in DB');} else { 
 var allWallets = [];
 var allTXS = [];

 docs.forEach(function(address) {
 // console.log(Adresse);
allWallets.push(address.playerWallet);
});

 console.log(allWallets); 
 // ALLE Adressen, die JEDER IN SEINER EIGENEN ARRAY
 //[ '2N3qPHp7bNaL4hiztrzZCzCywryKUzb5ale' ]
 //[ '2N2oG4nBJZU19Aks3MLvHqDKMXePmHhbejc' ]
 //[ '2My1FGBG6erNXfzeGXg5DXnLk2PWxhpk9sl' ]

 // Weiß nicht, wie Sie eine bessere Methode, bei der die Anrufe wieder rekursiv und addiert alle 3 obj empfangen in einem array....
 for( var iteration in allWallets){ 

 // console.log(allWallets[iteration]); 
 // '2N3qPHp7bNaL4hiztrzZCzCywryKUzb5ale'
 // '2N2oG4nBJZU19Aks3MLvHqDKMXePmHhbejc'
 // '2My1FGBG6erNXfzeGXg5DXnLk2PWxhpk9sl'

 // So rufen Sie eine Rekursive Rückrufe oder ein Versprechen für bitgo.Geldbörsen().gest({}) während der Iteration Adresse mehrere?
 bitgo.Geldbörsen().get({ "id": allWallets[iteration] }, callback-Funktion(err, Brieftasche) { 
 if (err) { throw err; }
 // console.log (- Adresse._id + '' + Adresse.playerWallet + '' + 'BlockChain_Balance:' + wallet.balance() / 1e8.toFixed(4) + 'DB_Balance:' );
allTXS.push(Geldbeutel);

 jsonfile.writeFileSync(_24HourGame, allTXS, {Räume: 3});
});
}

}
});

};

 // Authenticate first
 bitgo.authentifizieren({ username: Benutzer password: loginPassword, otp: otp }, function(err, Ergebnis) {
 if (err) { console.dir(err); throw new Error("Konnte nicht authentifiziert werden!"); }
 console.log("Entsperren Konto.." );
 bitgo.entsperren({ otp: otp }, function(err) {
 if (err) { console.dir(err); throw new Error("Konnte nicht freischalten!"); }
listWallets();
});
});

Danke für Eure Hilfe !

+841
Pavel13 10.07.2010, 17:04:13

Nein. Und das wäre noch verwirrender. Sie hätte zum synchronisieren der split, und für die historische Preise würden Sie wissen müssen, wenn Sie waren alt BTC oder BTC nach dem ersten split, der zweite split etc... verwenden Sie Einfach mBTC, uBTC, satoshi, oder sogar Bruchteilen der kleinsten Einheit, wenn es sein muss.

+841
angelinakopteva 23.03.2014, 03:57:27

Ich habe die gleichen Bedürfnisse, und ich fand Stripe akzeptiert bitcoins Zahlung ähnlich wie paypal machen, dann habe ich geplant zu verwenden, CMSs, und ich fand ein solides plugin für opencart auf GitHub. Einfach googlen fand ich eine Menge Ergebnisse, die bitcoin-shopping-cart-plugins Rum .. :D Ich Fand Auch interessant bitcoinpay.com, Ich kann das Api verwenden, um Bitcoin akzeptieren und senden an eine bitcoin-Adresse ... auch wenn ich nicht verstanden, ob ich als Anonym oder muss ich link ein Konto. (Natürlich habe ich wannot)

Das beste für alle ist, einen Weg zu finden, zu sammeln bitcoins ohne gezwungen werden, um die Verknüpfung eines Bankkontos. Tms

+832
heepo 04.05.2017, 11:17:05

Das ist ziemlich einfach! Versuchen Sie einfach den Schritten hier:

  1. Öffnen Sie die Wortliste.

  2. Wählen Sie 24 Wörter

  3. Gehen Sie zu mytrezor.comdrücken Sie "Trezor recovery" und geben Sie die Wörter, die Sie gewählt haben.
  4. Vergessen Sie nicht, schreiben Sie Ihre Worte irgendwo.
+785
Dave chessher 15.10.2016, 00:26:41

In clightning gibt es sendpay Befehl. Aus der manpage:

sendpay route payment_hash [label] [msatoshi] [bolt11]
 Senden Sie entlang {route} im Gegenzug für preimage von {payment_hash}

Wenn man sich meine (work in progress) - code für JIT-routing können Sie sehen, wie ich die Pfade zu erstellen und Zwiebeln selbst nur mit den standard-api-Aufrufe, um ins Gleichgewicht bringen meine Kanäle :

https://github.com/renepickhardt/c-lightning-plugin-collection/blob/master/rebalance-jit-routing/rebalance.py

+721
MEVDify 12.03.2019, 18:22:53

Bitcoin Core vergleicht blockchains auf, wie viel Arbeit, die Sie enthalten, und nicht unbedingt welche ist die längste. Dies ist nützlich für die Verhinderung von time-warp-Attacken.

Dieser Kommentar auf HN sagt, das electrum-client nicht, diese umzusetzen, und einfach nur naiv vergleicht Kette Länge:

Ja. Es ist möglich, erstellen Sie eine lange Kette zu niedrigen Schwierigkeitsgrad und der original-bitcoin-client schützt vor, dass durch die Berechnung der gesamten "Arbeit" hat sich in eine Kette. Jedoch, Elektron nur davon ausgegangen, dass die längste Kette wird der sein, der die meiste "Arbeit" in denen es falsch ist.

Es scheint verwunderlich, dass Elektron würde sich ändern, einen großen Konsens-Regel; ich sehe keine Begründung dafür.

Hat der electrum client entscheiden, die beste Kette auf der Grundlage, wie viel Arbeit getan war, (wie Bitcoin-Core) oder wie lang die Kette ist?

+718
mirinkaj 09.07.2014, 17:41:00

Diese Frage ist in etwa "Kräuseln", aber ich hoffe, es ist noch okay, diese Frage zu stellen, die auf Bitcoin StackExchange:

Ich bin sehr gespannt auf meine Welle in eine Papier-Brieftasche, und die Suche im web fand ich Rippley.eu - (https://ripply.eu/).

Ich Frage mich, ob jemand getan hat, eine code-überprüfung dieser website, und können überprüfen, dass es sicher ist zu verwenden für die Erzeugung von Papier-Brieftaschen für die Ripple-Speicher?

+705
Anchezzz 27.03.2010, 06:41:45

Meine Frage ist über die änderungen zu bitcoin gemacht, die von commit-Bereich [a75560d8, 6ff5f718], und Ihre Wirkung auf Konsens. Aus dieser Reihe von vier commits (alle zugeschrieben satoshi) während der Tage, Juli 30th-31st 2010, nur die ersten und die letzten commits sind relevant für die Frage (die zwei in der Mitte scheinen, wie ein build-system ändern, nicht code).

Die beiden commits (erste und zweite von jetzt an), a75560d8 und 6ff5f718 sind zurückzuführen auf die Fixierung durchaus ein paar Schwachstellen in der bitcoin-Skript Semantik und Ausführung. Zum Beispiel, in den ersten commit :

  1. Einschränkungen angewendet wurden, um push-und stack-Größen
  2. Die so genannte script Versionierung-Mechanismus wurde entfernt, und die verschiedenen NOP# opcodes wurden Hinzugefügt an seiner Stelle
  3. Einschränkungen wurden angewendet, um bignum-Operationen
  4. OP_RETURN wurde geändert von lediglich beenden Sie das Skript, um die Rückgabe false für die gesamte Ausführung

In der zweiten commit :

  1. Einschränkungen angewendet wurden, auf die maximale Anzahl der Befehle im Skript
  2. Ausführung der unbekannte opcodes wurde zurück gesetzt false für die Ausführung
  3. Die maximale Größe der script wurde um die Hälfte reduziert, um die 10kb
  4. Eine änderung *SHIFT - opcodes fertig war (ich weiß wirklich nicht uderstand kann es aber)
  5. Eine Funktion namens VerifyScript wurde in bitcoin, die sich auf das Verhalten der Skript-Ausführung

Diese Frage ist über diese Liste von Veränderungen, und ob einer von Ihnen möglicherweise nicht abwärtskompatibel. Insbesondere werde ich den Fokus auf change (5) vom zweiten commit : 6ff5f718:script.cpp

Vor dieser änderung, die am point-of-txout Erlösung, eine erlösende Transaktion die Eingabe der scriptSig und die prevout ist scriptPubKey wurden zusammengefügt zu einem einzigen Skript, indem Sie eine OP_CODESEPARATOR zwischen Ihnen, und übergeben das Ergebnis an EvalScript würde das Skript ausführen.

Innerhalb EvalScript, einen leeren stack erstellt wurde und die Ergebnisse aus den verschiedenen Operationen im Skript schob es auf. Wenn die Skript-Ausführung abgeschlossen, ohne Fehler, ein boolean zurückgegeben wird; wenn der Stapel nicht leer ist, dann wird das oberste element wird an einen CastToBool Funktion und und zurückgegeben (true oder false), und wenn der Stapel leer ist, dann wird false zurückgegeben.

Nach der änderung, die VerifyScript Funktion wickelt sich um zwei separate Anrufe zu EvalScript, Ausführung scriptSig und scriptPubKey separat eine nach der anderen. Die leeren stack, die vorher erstellt wurde innerhalb EvalScript wird stattdessen erstellt in VerifyScript vor jeder Skript-Ausführung beginnt, und die Letzte überprüfung des stack-Inhalt (oder das fehlen davon) und CastToBool wurde auch verschoben VerifyScript, bis zu dem Punkt, nachdem beide scriptSig und scriptPubKey beendet Ihre Ausführung.

In VerifyScript, zuerst die scriptSig von der erlösende Transaktion übergeben wird, EvalScript zusammen mit den leeren stack. Die Maschine führt das Skript und die Ergebnisse von Operationen geschoben werden, um den Stapel übergeben wurde, mit es. Wenn keine Fehler aufgetreten bei der Ausführung wird true zurückgegeben VerifyScript. Zweitens, wenn ja true zurückgegeben wurde, die scriptPubKey , die aus der Finanzierung der Transaktion übergeben wird, EvalScript zusammen mit dem Stapel, die an diesem Punkt hält der Inhalt was übrig bleibt von scriptSig's Ausführung. Die scriptPubKey ausgeführt wird, die weiter manipuliert den stack-Inhalt, und wenn keine Fehler aufgetreten sind, gibt true zurück zum VerifyScript. Schließlich, wenn true zurückgegeben wurde, dann wird die Prüfung für leeren stack und CastToBool fertig sind, bestimmt, welche das Ergebnis der Skript-überprüfung.

Der Grund für diese änderung war zitiert als ein Update auf eine mögliche Schwachstelle im Skript : SE Antwort, BCTalk thread. Es ist zwar orthogonal zu dieser Frage, es ist der Grund, warum ich die Liste der änderungen aus dem commit a75560d8.

Es ist nicht allzu schwer zu sehen, dass in Anbetracht der einfachen (fehlt ein checksig) Skripte, diese änderung ist ja abwärtskompatibel. Im schlimmsten Fall, einige Skripte werden könnte unspendable, aber es scheint nicht zu sein, ein Fall, wo ein zuvor unspendable Skript, könnte sich die auszuschüttende als ein Ergebnis dieser Veränderung.

Auch für Skripte mit einem checksig wie p2pk, p2pkh und multisig, die CHECKSIG opcode ist immer statt in scriptPubKey, welches getrennt von den Elementen der scriptSig durch eine OP_CODESEPARATOR vor, dies zu ändern. Scheinbar, die Semantik die gleichen geblieben - bis etwa zwei Jahre später.

Blick auf die wiki-Seite für OP_CHECKSIG wiki-checksig, die Schritte (2) bis (4) erklären, wie man von den Skriptcode , um tiefgestellten Text, und speziell, was passiert, wenn ein OP_CODESEPARATOR existiert in den Skriptcode :

  1. Ein neuer index wird erstellt, aus der den Skriptcode (der den Skriptcode ist der aktuell ausgeführten script - entweder die scriptPubKey für nicht-segwit, nicht-P2SH Skripte, oder die redeemscript in nicht-segwit P2SH scripts). Die Skript aus, das unmittelbar nach der zuletzt analysiert OP_CODESEPARATOR an das Ende des Skripts ist der index. Wenn es keine OP_CODESEPARATOR das gesamte Skript wird Tiefgestellt
  2. Alle vorkommen von sig gelöscht Tiefgestellt, falls vorhanden (es ist nicht standard, um eine Unterschrift in einer Eingabe-Skript ein Transaktion)
  3. Alle verbleibenden OP_CODESEPARATORS entfernt Tiefgestellt

Nun, bevor Sie zu Begehen 6ff5f718, wenn scriptSig und scriptPubKey wurden zusammengefügt zu einem einzigen Skript, der den Skriptcode würde wie folgt Aussehen :

<scriptSig> CODESEPARATOR <scriptPubKey>

Mit checksig Operationen stattfinden, in scriptPubKey, was Tiefgestellt werden, alles, was rechts von CODESEPARATOR - grundsätzlich <scriptPubKey> selbst (es sei denn, mehr codeseparators oder wenn Signaturen verbraucht ein checksig gibt es auch in scriptPubKey).

Nach dem Begehen, gäbe es tatsächlich zwei verschiedene Ausführungen mit scriptSig ersten und scriptPubKey zweiten, wo jede Ausführung hat Ihren eigenen, den Skriptcode und in der Folge Ihre eigenen Tiefgestellt. Nun, Da checksig-Operationen sind nur noch in scriptPubKey, es scheint, dass Tiefgestellt würde gleich bleiben, aber was würde passieren, wenn ein CHECK(MULTI) - SIG opcode ausgeführt in scriptSig?

Im Januar 24th 2012, block 163685 abgebaut wurde, die Transaktion eb3b82c0884e3efa6d8b0be55b4915eb20be124c9766245bcc7f34fdac32bccb. Diese Transaktion, die beiden sofort nach, und seine Finanzierung auf b8fd633e7713a43d5ac87266adc78444669b987a56b3a65fb92d58c2c4b0e84d wurden auch abgebaut, die in dem gleichen block sind alle erwähnten BIP-17, die eine alternative Implementierung von p2sh Semantik :

  • OP_CHECKHASHVERIFY wird neu definieren, die vorhandenen OP_NOP2 opcode, und die Funktion wird wie folgt ausgeführt:

  • Erste, hash Ende der vorherigen Skript (im Allgemeinen Fall, scriptSig; wenn keine Vorherige Skript, wird ein null-string Hash) Anfang aus dem letzten ausgewertet OP_CODESEPARATOR weiter (oder aus der Anfang des Skripts, wenn nicht OP_CODESEPARATOR vorhanden war)

  • Dann vergleichen Sie dieses mit dem Element an der stack-Spitze (wenn es keines gibt, wird das Skript nicht sofort)
  • Wenn die hashes übereinstimmen, nichts zu tun, gehen Sie vor wie wenn ein OP_NOP; wenn Sie nicht übereinstimmen, wird das Skript nicht sofort. Beachten Sie, dass im Falle einer abgestimmt hash, der oberste stack-Element (dem hash verglichen mit) ist nicht spontan aus dem Stapel. Dies ist für die Abwärtskompatibilität.

Beachten Sie, wie in bip17 die redeemScript ist gegeben als eine tatsächliche ausführbare Skript in scriptSig, eher als eine einzelne Daten-push von einem blob wie ist der Fall mit bip16. Obwohl ältere Knoten, die nicht die Durchsetzung der hash160 von scriptSig gleich die 20 bytes mit dem Wert aus prevout ist scriptPubKey, hätten Sie immer noch, um es auszuführen und zu validieren ÜBERPRÜFEN(MULTI)SIG - Operationen innerhalb.

Ich gehe davon aus, dass diese bip17 B. Transaktionen wurden abgebaut und validiert, indem Sie den Knoten laufende software wurde in den letzten Jan. 2012, aber mal angenommen, es waren noch Knoten auf dem Netzwerk, auf denen ältere software, und speziell für diejenigen, die mit Versionen v0.3.6 und niedriger. Würde diese älteren Knoten in der Lage sein, zu kommen, zu einem Konsens mit den neueren Knoten über die Gültigkeit der block-163685?

Über die Finanzierung der Transaktion b8fd633e7713a43d5ac87266adc78444669b987a56b3a65fb92d58c2c4b0e84d, und betrachten Sie die Ausgabe mit dem index 1, die wir sehen, die scriptPubKey (NOP2 ist eigentlich ein nicht-aktiven - OP_CHECKHASHVERIFY)

0x14 0x2a9bc5447d664c1d0141392a842d23dba45c4f13 NOP2 DROP

Und in der Ausgaben-Transaktion eb3b82c0884e3efa6d8b0be55b4915eb20be124c9766245bcc7f34fdac32bccb, aus der Eingabe einen index von 1, haben wir die scriptSig

0 0x47 0x30440220276d6dad3defa37b5f81add3992d510d2f44a317fd85e04f93a1e2daea64660202200f862a0da684249322ceb8ed842fb8c859c0cb94c81e1c5308b4868157a428ee01 CODESEPARATOR 1 0x21 0x0232abdc893e7f0631364d7fd01cb33d24da45329a00357b3a7886211ab414d55a 1 CHECKMULTISIG

Überlegen Sie zunächst, wie die software von v0.3.7 und vor allem würden konstruieren das subskript für die CHECKMULTISIG in scriptSig. Wir beginnen mit den Skriptcode das ist genau das, scriptSig, und da ein CODESEPARATOR ausgeführt wird, Tiefgestellt wird :

1 0x21 0x0232abdc893e7f0631364d7fd01cb33d24da45329a00357b3a7886211ab414d55a 1 CHECKMULTISIG

Betrachten wir nun, wie software von v0.3.6 und unten würden konstruieren das subskript für die gleichen CHECKMULTISIG. Unsere den Skriptcode nicht mehr aus nur scriptSig, sondern aus einer Bündelung von it-und scriptPubKey durch eine CODESEPARATOR. Der den Skriptcode würde wie folgt Aussehen :

0 0x47 0x30440220276d6dad3defa37b5f81add3992d510d2f44a317fd85e04f93a1e2daea64660202200f862a0da684249322ceb8ed842fb8c859c0cb94c81e1c5308b4868157a428ee01 CODESEPARATOR 1 0x21 0x0232abdc893e7f0631364d7fd01cb33d24da45329a00357b3a7886211ab414d55a 1 CHECKMULTISIG CODESEPARATOR 0x14 0x2a9bc5447d664c1d0141392a842d23dba45c4f13 NOP2 DROP

Erinnern an die Regeln aus der wiki. An der Stelle, wenn CHECKMULTISIG ausgeführt wird, Tiefgestellt ist alles ab dem Punkt nach der letzten ausgeführten CODESEPARATOR und bis zum Ende des Skripts, mit allen CODESEPARATORs auf der rechten Seite des checksig Betreiber entfernt :

1 0x21 0x0232abdc893e7f0631364d7fd01cb33d24da45329a00357b3a7886211ab414d55a 1 CHECKMULTISIG 0x14 0x2a9bc5447d664c1d0141392a842d23dba45c4f13 NOP2 DROP

Wenn dies richtig ist, dann scheint es, dass die alten Knoten mit den Versionen v0.3.6 und unten nicht einig, welche ist die richtige sighash für diese Ausgaben Transaktion, aber da kann ich nicht realistisch laufen solche alten version der software, ich kann nicht absolut sicher sein. Ich habe patch eine aktuelle bitcoin-core version mit einigen änderungen, die mir ermöglicht, zu simulieren Validierung tx eb3b82c0884e3efa6d8b0be55b4915eb20be124c9766245bcc7f34fdac32bccb, und wie erwartet dauerte es nicht Gültigkeitsprüfung. Ich will hinzufügen, die zwei sighashes unten zusammen mit dem öffentlichen Schlüssel und der Signatur für einen Vergleich.

Meine Frage ist also, gibt es etwas, was ich bin Missverständnis oder vielleicht verpasst, die erlauben würde, die pre-v0.3.7 und post-v0.3.7 Knoten zu kommen, um einen Konsens über die Gültigkeit von block 163685?

(auch relevant : dies SE Frage)


Pubkey : 0232abdc893e7f0631364d7fd01cb33d24da45329a00357b3a7886211ab414d55a
Unterschrift (DER) : 30440220276d6dad3defa37b5f81add3992d510d2f44a317fd85e04f93a1e2daea64660202200f862a0da684249322ceb8ed842fb8c859c0cb94c81e1c5308b4868157a428ee
Signatur (r,s) : (276D6DAD3DEFA37B5F81ADD3992D510D2F44A317FD85E04F93A1E2DAEA646602, F862A0DA684249322CEB8ED842FB8C859C0CB94C81E1C5308B4868157A428EE)

Pre-v0.3.7 sighash (nicht überprüft) :

01000000
02
4de8b0c4c2582db95fa6b3567a989b664484c7ad6672c85a3da413773e63fdb8 00000000
00
FFFFFFFF
4de8b0c4c2582db95fa6b3567a989b664484c7ad6672c85a3da413773e63fdb8 01000000
3C 51210232abdc893e7f0631364d7fd01cb33d24da45329a00357b3a7886211ab414d55a51ae142a9bc5447d664c1d0141392a842d23dba45c4f13b175
FFFFFFFF
02
E0FD1C0000000000 19 76a914380cb3c594de4e7e9b8e18db182987bebb5a4f7088ac
C0C62D0000000000 17 142a9bc5447d664c1d0141392a842d23dba45c4f13b175
00000000
01000000

sha256 : 1EB276326D72CB358F6C275D6542F76EED4E36364727CB82D40A116244EBDDB5
sha256d : 11491E74778E1FA8C40CC8E07E1F835677CF1AC81F54255EC1C7125C1894939A

Post-v0.3.7 sighash (nicht überprüfen) :

01000000
02
4de8b0c4c2582db95fa6b3567a989b664484c7ad6672c85a3da413773e63fdb8 00000000
00
FFFFFFFF
4de8b0c4c2582db95fa6b3567a989b664484c7ad6672c85a3da413773e63fdb8 01000000
25 51210232abdc893e7f0631364d7fd01cb33d24da45329a00357b3a7886211ab414d55a51ae
FFFFFFFF
02
E0FD1C0000000000 19 76a914380cb3c594de4e7e9b8e18db182987bebb5a4f7088ac
C0C62D0000000000 17 142a9bc5447d664c1d0141392a842d23dba45c4f13b175
00000000
01000000

sha256 : 3858A592C15A47F3058010689883DECCD4AF41F5367B9776429613DFB3339883
sha256d : 8D7AD159644D312664472F90E7B823071B1361725CAC78531569FD836EA90350
+672
Lovemynewkitchen 19.12.2017, 21:13:31

Ich bin mit Litecoin-Core-wallet auf meinem PC, und ich muss täglich Zugang zu Ihr.

Ich bin auf Reisen Weg von zu Hause zu Ostern und nehmen meinen laptop mit mir. Ich heruntergeladen Litecoin-Core-Wallet auf meinem laptop, aber es ist kein Saldo angezeigt. Gibt es eine Möglichkeit zum synchronisieren der beiden Portemonnaies?
Oder wenn nicht, kann ich die balance, um einen Empfangs-Wallet auf dem Laptop, der Geldbörse?

Danke Margaret.

+317
rinchik2016 24.01.2015, 20:02:54

Ich denke, dass dieses ist, weil Ihre lightningd ist noch die Synchronisierung mit der blockchain. Sie können dies testen, indem Sie suchen, entweder bei der Ausgabe von lightningd , die gedruckt werden sollen Dinge wie

Hinzufügen block 529728: 00000000000000000024f3a1b7fa91de16ba324d8842bd7e83fb2a1d84719265

oder vergleichen Sie die Blöcke zu zählen, die in bitcoin-cli getblockchaininfo und die blockheight in Blitz-cli getinfo. Ist dies tatsächlich anders, Sie werden warten müssen, bis lightningd , um aufzuholen mit den entsprechenden blockheights und sehen die Bestätigung auf der blockchain.

+306
Juliangonzalez23 31.10.2016, 09:04:37

im Test bitcoinqt Waffenkammer und Frage mich, wie Importiere ich einen QR-code paper wallet? es gibt keine option, um ein Bild von meinem paper wallet. wie kann dies einfach erledigt werden?

+151
user67019 05.11.2015, 04:55:36

Es gibt mindestens zwei aktuelle clients für Android und ein halbes Dutzend "thin clients", die eine Verbindung zu einem bitcoin-server zu Hause. Da die thin clients sind kompliziert installiert, ich empfehle Bitcoin Wallet von Andreas Schildbach. Es gibt ein paar Fragen der Sicherheit, da beide apps haben keine Möglichkeit (die ich kenne), import/export/backup Geldbeutel und es ist ungewiss, welche Sicherheitsstufe ist gehalten, die auf Daten hält Google in die cloud, aber für die Durchführung einer kleinen Menge von Münzen für den täglichen Gebrauch, beide sind praktikable Möglichkeiten.

Nicht ein iOS-person kann ich nicht Wiegen auf die Funktionen etc. von den verschiedenen iOS-apps, aber ein kurzer Blick über die verschiedenen Projekte, die scheint zu zeigen, eine Auswahl von thin-clients und keine aktuelle iOS-basierten bitcoind Umsetzung.

+134
Shea Lutton 25.07.2017, 07:12:28

Insbesondere bin ich verwirrt, wo er sagt, dass 0.00622777 BCH ist äquivalent zu $3.55 auf einen der Eingänge auf blockchair.Das ist einfach falsch. Es ist näher zu 0,99$

Der dollar-Wert ist zur Verfügung gestellt durch den block-explorer service, dass die Daten nicht gespeichert werden in der blockchain aufnehmen. Es scheint, dass Sie möglicherweise einfach nur einen Fehler in Ihrem code, die Anzeige der falsch-dollar Wert.

Auch bin ich verwirrt, warum gibt es zwei Transaktionen, die 6 Blöcke auseinander. Ich habe nur aus einer einzigen Transaktion. Ist es versuchen, die form der Transaktion über verschiedene Blöcke durch die Aggregation der verschiedenen UTXO hier und dort?

Nein, die erste Transaktion ist deins, das senden der BCH zu dieser Adresse. Die zweite Transaktion wurde vermutlich initiiert von Ihrem Freund, verbrachte die UTXO erstellt von Ihrer Transaktion. Die Adresse, die Sie gesendet haben, ist jetzt leer.

+77
Nuno Heli Beires 12.08.2016, 12:36:36

Ja, das tun Sie.

Du hast Recht, im Allgemeinen ist die Größe UTXO Set wächst seit Jahren. E. g. im Mai 2014 war es 11 Millionen, im Mai 2015 war es 19 Millionen, im Mai 2016 es 38 Millionen, im Mai 2017 war es 51 Millionen.
Nun, es sind tatsächlich weniger als 50 Millionen UTXO. Wie konnte das passieren? Als Sie bemerkt, verbringen eine Menge UTXO in einer einzigen Transaktion ist viel teurer. Wenn das Bitcoin-Netzwerk war überlastet letzten winter, viele Bitcoin-Nutzer (vor allem Unternehmen) zahlten exorbitante Gebühren für Transaktionen, weil Ihre Mittel wurden aufgeteilt in so viele kleine UTXOs. Am peak-Preis und Staus Geld UTXO konnte leicht mehr Kosten als $10. Vor allem, wenn mehrere UTXO waren notwendig, um überhaupt eine Transaktion, Sie waren schmerzhaft teuer. Natürlich, viele Benutzer hat, um erstellen Sie die kleinste mögliche Transaktionen und übersprungen Konsolidierungen insgesamt, die verursacht die UTXO schnell wachsen in der überlasteten phase.

Schauen wir uns die UTXO Set-Größe im vergangenen Jahr: UTXO Set growth over the last year, peaking around the end of 2017 then sharply retreating in the first months of 2018

Obwohl effizientere Nutzung Muster war vorgeschlagen worden gut vor dem winter (z.B. Harding ausgezeichneten Artikel über die Batchverarbeitung im August 2017). Annahme der Dosierung und häufiger Konsolidierungen nur erreichte nach der Krise. Es scheint, dass die Preis-Rallye in Kombination mit der schweren Staus aus Bitcoin-Nutzer mehr bewusst Ihre Brieftasche UTXO pool Kompositionen. Von Januar bis März sehen wir eine extreme regression der UTXO Größe von mehr als 64 Millionen auf 51 Millionen UTXO. Wenn Sie nach oben schauen die Blöcke aus dann finden Sie viele Transaktionen, verbrachte viele UTXOs zu einzelnen Ausgänge. Diese Transaktionen oft bezahlt sehr niedrige Gebühren, queuing im mempool, bis Gebührensätze gesunken niedrig genug, um aufgenommen zu werden. Diese Konsolidierung nur Transaktionen hatten den ausdrücklichen Zweck der kondensation Fonds in weniger UTXO an den niedrigsten möglichen Kosten.

Siehe das Beispiel von Mitte April: The 1 sat/B transactions being flushed from the mempool line up with drops in the UTXO Set size

Da die Geschäfte zahlen nur sehr geringe Gebühren enthalten in Blöcken, die Größe in der UTXO set-drops.

Seitdem haben wir auch gesehen, eine deutliche Steigerung im Einsatz der Dosierung, die packt das UTXO Set Wachstums aus einem anderen Blickwinkel: die Dosierung reduziert die Anzahl der change-Ausgänge, hergestellt werden. Beim senden von zwanzig Zahlungen in zwanzig verschiedenen Transaktionen, die Chancen sind Sie werden erstellen 20 ändern-Ausgänge. Wenn Sie senden Sie zwanzig Zahlungen in einer einzigen Transaktion, werden Sie nur eine einzelne änderung, die Ausgabe. Starker Einsatz der Dosierung können daher schneiden die UTXO creation pro Zahlung fast in der Hälfte.

+35
Nils Guillermin 28.04.2015, 08:41:36

Fragen mit Tag anzeigen