Wie viele txid Hinzugefügt wird mempool pro Sekunde?

Ich werde versuchen, die txid mit json/rpc und versucht herauszufinden, wie viele tx_id Hinzugefügt wird, um Speicher-pool ?

ich denke, es kommt darauf an, wie viele bitcoin-Transaktion sind möglich, pro Sekunde ?

gibt es eine Feste Anzahl ? oder maximale Anzahl ?

+75
Serge Saita 23.10.2019, 21:52:28
30 Antworten

Die Spezifikation für BIP34 wurde geschaffen, um zu beheben eine Schwachstelle, wo es möglich war, um zwei Transaktionen mit der gleichen TXID. Um dies zu beheben eine nonce Hinzugefügt wurde coinbase-Transaktion, bei der die Höhe des Blocks codiert werden muß in den ersten bytes des ersten Transaktionen input. Die definition ist für wenn, die weiche Gabel wurde durchgesetzt.

+973
melwtd 03 февр. '09 в 4:24

Ich würde verfeinern (in eckigen Klammern) StephenM die obige Antwort wie folgt:

"Für [UASF] aktualisierten Knoten, desto länger ist die stand-off weiter, je mehr Transaktionen, die der Aufbau in den Rückstand, ohne Bergleute Bergbau Ihnen.

Für die Bergleute, eine Kette-split bedeutet, dass Sie bitcoins, dass der Austausch und die Nutzer [AUF DEM AKTUALISIERTEN KNOTEN NUR] nicht akzeptieren als Zahlung, die im wesentlichen Geld zu verlieren. Es ist unbestimmt, welche Gruppe geben würde-in der ersten und die anderen der Kette nur im Interesse der Wiederherstellung des Konsens und clearing der Transaktion Rückstand."

+946
Jan Almon 13.05.2011, 09:01:04

Ich versuche zu verstehen, was eine bestimmte Zeile code wird beim signieren einer Nachricht mit bitcoinjs-lib. Hier der code:

var bitcoin = require('bitcoinjs-lib')
var bitcoinMessage = require('bitcoinjs-Nachricht')

var Schlüsselpaar = bitcoin.ECPair.makeRandom();
//privaten Schlüssel
var privateKey = Schlüsselpaar.toWIF();
// Adresse
var Adresse = Schlüsselpaar.getAddress();

console.log(privateKey);
console.log(Adresse);

privateKey = Schlüsselpaar.d....toBuffer(32)
var message = 'Ihre Nachricht'
var messagePrefix = bitcoin.Netzwerke.bitcoin.messagePrefix

var Signatur = bitcoinMessage.Zeichen(Nachricht, messagePrefix, privateKey, Schlüsselpaar.komprimiert)
console.log(Unterschrift.toString('base64'))

Die Zeile ich bin mal gespannt, ist dieses hier:

privateKey = Schlüsselpaar.d....toBuffer(32)

Was genau ist dieser code macht und warum ist Sie notwendig?

Vielen Dank,

Connor

+930
AzogNeworleans 14.06.2016, 00:10:46

Shutdown Bitcoin-QT sauber und keine Neuindizierung erforderlich ist.

Die Neuindizierung von bitcoind-Datenbank ist nur erforderlich, wenn die Anwendung nicht Zeit, um richtig selbst heruntergefahren und schreiben Sie alle Informationen in seinem Speicher auf der Festplatte.

+893
James Lambeth 17.11.2019, 02:14:40

Die RPC-Schnittstelle enthält die getrawmempool Befehl, die Retouren, die in Ihrem Speicher-pool. Transaktionen, die im Gedächtnis bleiben-pool, bis Sie bestätigt, so ist dies effetively eine Liste Ihrer bekannten unbestätigten transacions.

Da getrawmempool gibt nur eine Liste mit Transaktions-ids, müssen Sie getrawtransaction <txid> für jede Transaktion-id in Ihrem Speicher-pool. Denken Sie daran, Sie bekommen können JSON-formmated Ausgabe über getrawtransaction <txid> 1.

+768
Hendrik Jan 08.01.2016, 02:43:04

Breadwallet verwendet BIP39, das Elektron ist Samen sind nicht kompatibel mit.

(Es gibt einige Leute online sagen, dass es möglich ist, damit es funktioniert, aber ich kann nicht es herausfinden.)

Als alternative, MultiBit ist kompatibel mit BIP39.

Hier ist ein spreadsheet, geschrieben von Christopher, Gurnee, und zeigt eine Liste der Mappen, und ob diese Geldbörsen sind kompatibel mit BIP39.

+715
meksikanec 14.03.2018, 03:17:26

Erstens, ja, du hast Recht, jeder Zeit, die Sie aus der gleichen p2sh-Adresse, die Sie angeben, das Skript, die hashes zu dieser Adresse. Und ja, wenn Sie verbringen mehrere mal von derselben Adresse, die Sie richtig wäre, wäre dies sehr ineffizient, da Sie haben würden, zu offenbaren, das Skript jedes mal, und das Skript kann sehr lang sein.

Jedoch, in bitcoin, es ist nicht als sicher zu re-use-Adressen. Jeder p2sh-Adresse darf nur einmal verwendet werden, nicht viele Male, wie in Ihrem Szenario vor. In diesem Fall ist es nicht ineffizient oder suboptimal überhaupt. Das heißt, ich nehme an, so etwas wie segwit könnte verwendet werden, um scripts speichern, die Sie off-band, aber das wäre eine deutliche und komplizierte Veränderung nicht viel gewinnen.

+688
user1623709 26.08.2018, 18:06:17

Wenn ich das richtig verstehe, wird jede Transaktion muss neue Blöcke erstellt werden (abgebaut), das ist immer schwer, langsam und teuer. Nicht zu erwähnen die enorme Energie-Verbrauch, schon zur Umwelt Fragen.

Auf der anderen Seite, jede neue bessere Währung anbieten würde, genau die gleiche service, außer schneller und billiger.

Dann, wie kann Bitcoin konkurrieren gegen Sie in langfristige?

+678
Moskaxol 08.01.2018, 18:19:15

Unter Linux lautet der Standard-Daten-Verzeichnis ~/.litecoin/. Dies ist, wo die Brieftasche, blockchain, Konfiguration, etc. Dateien gespeichert sind.

Können Sie sichern Ihre wallet-Datei > Backup-Wallet. Dies ist der Teil, enthält Ihren privaten Schlüssel. Siehe pic:

screenshot of Backup Wallet option

Sollten Sie verschlüsseln Sie mit einer sicheren passphrase (in Einstellungen - > Brieftasche Verschlüsseln), bevor Sie den Export Ihrer Brieftasche. Wenn Sie nicht die privaten Schlüssel in den Backups unverschlüsselt. So lange, wie Sie Ihre Brieftasche verschlüsselt, die Sicherung wird verschlüsselt und Sie können sicher* legen Sie es auf Dropbox, Google Drive, per E-Mail an Familie/Freunde, etc. für die sichere Aufbewahrung.

*So sicher wie deine passphrase ist, so machen es zu einer sehr hohen Qualität.

+653
Cardin 16.03.2015, 20:04:15

Ich pass mehrere Adressen in der move-Befehl, aber ich bin nicht in der Lage zu gehen, wie es ist nicht zu akzeptieren, mehr als eine Brieftasche-Adresse Ist, gibt es einen anderen Weg zu bewegen, die balance zu mehreren Adressen.

+609
Nazmul Islam 18.07.2015, 21:05:05

Aber was, wenn Sie wirklich gebraucht werden, um jemanden zu bezahlen einen Bruchteil einer Transaktionsgebühr? Bitcoin ist indiscriminatory in dieser Hinsicht.

Darüber hinaus werden die meisten Transaktionen haben zwei Ausgänge, einer Gutschrift wer Sie senden Sie Ihre Transaktion, und eine, Gutschrift Sie zurück. Es ist ganz einfach, senden Sie die gleiche kleine Menge von Transaktionen zu jemand, während immer noch erscheinen, um das senden einer großen Menge von Geld in der Summe (der Rest würde an Sie zurückgesandt werden).

Jemand durchsetzen können beliebig hohe oder niedrige Transaktionsgebühren und ändern Ihre software ausschließen und alle Transaktionen, die Sie nicht mögen (zum Beispiel, ich habe gehört, Luke-Jr ' s pool nicht verarbeiten SatoshiDice Transaktion überhaupt). In das Ende, es ist der Wille der Menschen und der Bergleute, der Ermittlung der richtigen Gebühren und Regeln, die nicht einen festen Auftrag.

+599
johnbaker 26.08.2015, 10:22:51

Hinzufügen auf @chytrik Antwort, der "Beweis", dass es unmöglich ist Sie zu finden, wie ein hash ist rein probabilistisch, vielleicht gibt es einige Transaktions-hash, der durch die schier unüberschaubare Zufall wäre nicht hashable mit allen anderen, oder jede nonce zu finden, die einen block mit den nötigen Schwierigkeitsgrad.

Wenn wir meinten, dass dies der Fall ist, ist die nächste Frage wäre, wie es zu finden. Ich denke, Sie versuchen tatsächlich zu finden, wie eine hash-hätte die Schwierigkeit, eine beliebige hash-Kollision oder härter, wo das finden einer Kollision ist schon so schwer, dass für praktische Zwecke gilt es als unmöglich.

Also, wenn Sie hatte genug hash-Strom zu finden, der TX brechen würde, dass die blockchain, Sie könnte schon brechen die blockchain in zahlreiche andere Möglichkeiten.

+589
Omixochitl 12.06.2013, 21:55:51

Ich weiß, es wird gut verstanden, dass es nicht eine gute Praxis, verwenden Sie die gleiche nonce während der Erzeugung der Signaturen, aber ich bin nicht immer die Mathematik Recht hat.

Angenommen ich habe einige UTXOs, die-gesteuert durch meinen privaten Schlüssel f: Sagen wir ich habe zwei der UTXOs mit nonce 'N' zu erzeugen, in meiner Signatur. Jetzt die (R,S) - Komponenten aus der Signatur sind öffentlich und die Transaktionen sind öffentlich, so dass jeder hat Zugang zu Ihnen.

S1 = N^(-1)*[hash(m1) + Q*R] mod p

S2 = N^(-1)*[hash(m2) + Q*R] mod p

S1 - S2 = N^(-1)*[hash(m1) - hash(m2)] mod p

Auch wenn wir wissen, S1, S2, m1 und m2, ist nicht die Lösung für N^(-1), und folglich N, wird gleichbedeutend der Suche nach der Lösung des diskreten Logarithmus?

+586
user253036 15.04.2011, 20:36:18

Sehen GetMinFee() in main.h für das der code bestimmt die minimale Transaktionsgebühr.

Der Teil, den Sie gerade beschreiben, ist wie folgt implementiert:

// Den Preis erhöhen als die block-Ansätze voll
wenn (nBlockSize != 1 && nNewBlockSize >= MAX_BLOCK_SIZE_GEN/2)
{
 wenn (nNewBlockSize >= MAX_BLOCK_SIZE_GEN)
 zurück MAX_MONEY;
 nMinFee *= MAX_BLOCK_SIZE_GEN / (MAX_BLOCK_SIZE_GEN - nNewBlockSize);
}

wo:

  • nBlockSize hängt davon ab, wer wir sind:
    • wenn wir einen Benutzer, der eine neue Transaktion, nBlockSize ist 1
    • wenn wir einen Knoten entscheiden, ob relais einen eingehenden Transaktion, nBlockSize 1000
    • wenn wir einen miner zu entscheiden, welche Transaktionen in einen neuen block, nBlockSize ist die Größe des Blocks bauen wir vor dem hinzufügen der neuen Transaktion
  • nNewBlockSize ist die Größe des Blocks, einschließlich der neuen Transaktion
  • MAX_BLOCK_SIZE_GEN ist 500kB
  • MAX_MONEY ist auf 21 Millionen BTC (alles Geld der Welt)

es ist also zu sagen:

  • wenn wir uns entweder entscheiden, ob relais-oder mir die Transaktion, und das hinzufügen der Transaktion, würde der block über 50% die volle:
    • niemals zulassen, dass eine Transaktion, die macht der block 100% voll
    • ansonsten skalieren Sie die Gebühr bis um einen Faktor von 500kB / (500kB - nNewBlockSize)

Hinweis: durch eine Neuanordnung der Symbole, bekommen wir genau das was Meni schrieb in seiner Antwort:

Gebühr = Normale Gebühr / ((500 kB - Format) / 500kB) = Normal-Gebühr / (1 - Größe / 500kB)

+552
eltongto 30.05.2013, 09:31:53

Ich würde gerne eine Bitcoin Wallet.

Teil des Prozesses ist die Speicherung von öffentlichen und privaten Schlüssel in verschlüsselter form in der server-Datenbank.

Alle Schlüssel, ich bin die Speicherung verschlüsselt mit Benutzer - passcode.

1) Ist es sicher, speichert die Benutzer-passcode verschlüsselt im server-Datenbank. (Denken Sie, dass Benutzer möglicherweise vergessen, seine passcode, so dass über eine recovery-option)

2) gibt es irgendeine Art von Zukunft die Möglichkeit, dass ich Probleme bekommen, wenn jede Art von Angriff passiert, oder durch Einwirkung von einigen Eindringling/admin selbst(Schlimmste Möglichkeit) - den Schlüssel verraten, um die Angreifer, die dazu führen, access, und öffnen Sie alle pub/priv keys aus der Datenbank von diesem bestimmten Benutzer? Auf diese Weise kann ich nicht geben, vergessen Sie pass-code-option, um Benutzer.

Also wenn man bedenkt, sowohl option Soll ich das speichern der Benutzer-pass-code oder nicht?

Was ist die best practice zur Umsetzung dieses Sicherheits-feature in bitcoin wallet ?

+549
alex13101984 03.12.2015, 15:53:34

Bitcoin CPU-und GPU-mining ist nicht allgemein betrachtet werden, lohnt sich mehr, weil der hohe Schwierigkeitsgrad.

Wenn Sie fortfahren möchten, könnten Sie versuchen, die Begrenzung der mining-Anwendung, um ein single-core im task-manager für CPU-mining. Zusätzlich sind Einige Bergleute haben "aggression" oder gleichwertig-Einstellungen, die möglicherweise in der Lage sein zu begrenzen Sie die Ressourcen, die der Prozess dauert.

+487
varren 25.02.2014, 08:02:34

warum nicht verwenden OP_RETURN Ausgang Skript zu brennen Münzen?

+437
BODAND 28.04.2019, 07:42:18

Ich habe einen computer mit einem full-node bitcoin core. Ich möchte bitcoin-qt installiert auf einem anderen computer, aber ich möchte nicht den download der kompletten blockchain wieder in den anderen computer ein. Ich möchte bitcoind aktiv in der erste computer und der zweite get-Transaktion-Informationen aus der ersten ein, statt der Download der vollständigen blockchain und erste Informationen zu den Transaktionen von einem lokalen blockchain kopieren. Ist es möglich, es zu tun? Und was ist mit meinem Handy immer die Transaktion Informationen aus meinem computer anstelle eines öffentlichen blockchain-server?

Ich weiß, ich kann die zweite bitcoin core auf den beschneiden-Modus, aber was ist nicht halten keine blockchain Daten lokal, in dem zweiten computer?

+373
mnomim 27.10.2014, 14:31:04

Wenn Sie einige wallet-software und es aufhört zu funktionieren für Sie, dann können Sie versuchen, die Wiederherstellung Ihrer Brieftasche eine andere software verwenden. Dies ist natürlich nur möglich, für Geldbörsen, die Sie haben vollständige Kontrolle über (das heißt, Sie Steuern die privaten Schlüssel, nicht Sorgeberechtigten Konten, wo einige service-Anbieter steuert Ihre Schlüssel). Sie können versuchen, die Wiederherstellung durch Import von privaten Schlüsseln sich in neue software, oder häufiger, Sie wiederherstellen können die Brieftasche verwenden, indem Sie Ihre BIP39 Merksatz seed (in der Regel 12 oder 24 Worte). Dieser seed hat sich zu einem Industrie-standard, so lange, wie die Brieftasche, die Sie derzeit verwenden, nutzt Bulletin 39, sollten Sie kein problem haben, einige neue wallet-software, die Sie ausführen können, die Wiederherstellung mit.

Beachten Sie, dass die Geldbörse wird leiten Sie Ihre privaten Schlüssel und bitcoin-Adressen aus der mnemonischen seed, und es gibt viele mögliche Ableitung Pfade zur Verfügung. BIP 44/49/84 Definition von standard-Pfade, aber es gibt eine Möglichkeit, die Brieftasche, die Sie verwenden, wird ein nicht-standard-Weg. In diesem Fall, Sie brauchen, um herauszufinden, welchen Pfad verwendet wurde, und dann finden einige software, die Ihnen erlauben, um eine benutzerdefinierte Ableitung Weg.

+365
Daniel Gerald Kelly 02.07.2016, 13:32:58

Ich bin immer noch versucht wird, vollständige Eingang der Zahlung in BitCoin-QT. Die erste Synchronisierung beginnt ein Streit, so dass ich dachte, ich könnte meinen key bekommen und übertragen meine Brieftasche zu Blockchain.info.

Ich folgte den Anweisungen in , Wie Exportiere ich meine private keys aus meiner Bitcoin-QT? um meine privaten Schlüssel. Alle, die ich wieder bekommen dumpprivkey[] ist:

Ungültige Bitcoin-Adresse (code: -5).

Ich dachte, vielleicht hatte ich die falsche Adresse, so dass ich eingegeben listreceivedbyaddress 0 wahr.

Es sind nur ein paar Adressen, da ich einen neuen Geldbeutel. Alle Adressen zurückgegeben, die den gleichen "Ungültige Bitcoin-Adresse" angezeigt. Was ist Los? Ich weiß, dass einer dieser Adressen verwendet wurde, um zu einem Austausch für meine neue BC. Ist es einfach weil mein blockchain ist unvollständig, und die Transaktion ist unvollständig?

+310
eMe 24.09.2017, 20:50:36

Ein Sybil-Angriff basiert auf dem laichen eine große Anzahl von Instanzen entweder zu isolieren, die angegriffen werden von anderen Knoten, oder um gefälschte Unterstützung für etwas.

Der Nachweis der Arbeit erfordert die Ausgaben von unwiederbringlichen Ressourcen zu führen. Nachweis der Arbeit kann nicht vorgetäuscht werden, durch das drehen mehr Instanzen der software, die Energie, die tatsächlich ausgegeben werden. In diesem Sinne PoW verhindert, dass Sybil-Angriffe: selbst wenn ein Angreifer trennt Ihre Knoten, Sie können nur verhindern, dass Sie immer updates aus dem Netz, aber nicht dass Sie glauben, dass alles, was im Netzwerk eigentlich nicht vereinbart (es sei denn, Sie opfern auch enorme Mengen an PoW).

+306
pablaber 31.08.2019, 17:36:10

Eine bitcoin Börse ist mit einem gemeinsamen web-Brieftasche, wo Ihre Benutzer Einzahlungen und Auszahlungen bitcoins. Die Rücknahme-Transaktionen zusammengeführt, so dass die ausstehenden Transaktionen von mehreren Nutzern zusammen gruppiert werden, um speichern Sie die tx-Gebühren. Die gemeinsame Geldbörse ist gesichert durch einen normalen bitcoind - installation.

Stellen wir uns vor, wir möchten bestätigen, dass bestimmte Adresse X gehört zu den gemeinsamen Geldbeutel. Die Adresse von X erhalten hat, Bitcoins und einige sind dann diejenigen, die Bitcoins wurden, zog sich durch andere, nicht Verwandte Geschäfte.

Denn wir sind die Benutzer mit dem gleichen shared-web-wallet senden wir den in-und out-Bitcoins von dieser gemeinsamen Geldbeutel und erlangen wir Kenntnis von einigen empfangen und ändern von Adressen und Transaktionen im Hinblick auf die gemeinsame Geldbörse.

So ist es möglich,

  • Um zu beweisen, Adresse X gehört zu den gemeinsamen Geldbeutel durch die Analyse der anderen Transaktionen, die wir kennen, gehören zu dieser gemeinsamen Geldbeutel

  • Gibt es irgendwelche tools oder-Skripts, das zu tun diese Art der blockchain-Analyse noch

+238
CykaDolboeb 05.05.2011, 01:28:00

Zumindest mit den aktuellen Versionen der Bitcoin-Core-client, der Genesis-block ist eigentlich hart codiert an den client.

Der Teil des Codes, baut dieser block befindet sich hier und ich habe eine JSON-dump von der coinbase-Transaktion unten für Referenz.

{
 "txid" : "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",
 "version" : 1,
 "locktime" : 0,
 "vin" : [
{
 "coinbase" : "04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73",
 "sequence" : 4294967295
}
],
 "vout" : [
{
 "value" : 50.00000000,
 "n" : 0,
 "scriptPubKey" : {
 "asm" : "04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f OP_CHECKSIG",
 "hex" : "4104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac",
 "reqSigs" : 1,
 "type" : "pubkey",
 "Adressen" : [
"1A1zP1eP5QGefi2DMPTfTL5SLmv7Divfna"
]
}
}
]
}

Referenz Gist

+226
sohocoke 13.04.2016, 05:45:22

Mit dem standard-client Bitcoin-Qt, v0.8.1: (win10x64)

Ich möchte die blockchain-Daten aus seiner Standard-Speicherort zu einem anderen Ort (vielleicht sogar eine externe Festplatte oder NAS - Laufwerk). Was sollte ich tun, um diese arbeiten beim verschieben von Daten?

+215
Kiven Prince Memo 14.09.2010, 01:17:05

Zwar nicht direkt ein WebCL Bergarbeiter Bergmann, die verwendet OpenCL, die über Java Webstart ist also frei zugänglich für alle internet-Benutzer mit Java installiert und entsprechende hardware.

http://www.BitMinter.com

Die Website ist sowohl ein pool und eine benutzerdefinierte java-miner. Der pool kann verwendet werden, mit anderen Bergleute aber die BitMinter Bergmann arbeitet nur mit den BitMinter pool.

+184
user231039 26.08.2011, 17:02:07

Haben Sie die pin-Nummer, und das Telefon mit der wallet-app also warum können Sie nicht verwenden, diese zwei Dinge, um den Zugriff auf die wallet auf dem Handy?

Sie sagen, Sie haben die Brieftasche.aes.json-Datei und geben auch an, dass Sie nicht "eine backup-Datei heruntergeladen, aus der blockchain api". Die Geldbörse.aes.json-Datei ist die backup-Datei.

Jedenfalls, wenn du dich nicht anmelden kannst über die Telefon-app sollten Sie die Auslagerung der Arbeit von bruteforcing die wallet-Datei. Dave bekommt eine Menge von Empfehlungen. Er wird wahrscheinlich effizienter Werkzeuge zur Verfügung. Wie tools, codiert in C-und GPU-oder FPGA beschleunigt.

+133
Sep thj 14.02.2018, 23:53:20

Es gibt (noch) keine multi-wallet-support in bitcoin-core.

Sie können versuchen, Sie zu stoppen, Bitcoin-Qt, tauschen Sie Ihre Brieftasche.dat (umbenennen die alte, statt der neuen eine) und beginnen Sie mit Bitcoin-Qt. Wenn Ihre Geldbörse ist wirklich alt, es führt einen rescan für neue Transaktionen und kann dies einige Minuten dauern.

Zusammenführen Ihres Portemonnaies:

  • Öffne eine Konsole und geben Sie dumpwallet <Dateiname>
  • Stop Bitcoin-Qt
  • Ersetzen Geldbeutel.dat mit Ihrem neuen wallet-Datei (die aktuelle wallet.dat-Datei an einen sicheren Platz)
  • Starten Sie Bitcoin-Qt
  • Öffne eine Konsole und geben Sie importwallet <Dateiname>.
+108
ELSon 19.12.2015, 20:15:10

Adressen und private Schlüssel sind codiert Base58Check Codierung. Die Präfix-bytes sind so gewählt, daß einmal das, was Sie die Codierung der tatsächlichen codiert mit Base58Check Kodierung, werden Sie am Ende mit einer Zeichenfolge, die hat die beabsichtigte Präfix-Zeichen.

Der Prozess der Erstellung eines Base58Check codierte Zeichenfolge beschrieben, die auf der bitcoin wiki:

Ein Base58Check string erstellt von einer version/Anwendung-und byte-payload wie folgt.

  1. Nehmen Sie die version und byte-payload-bytes, und verketten Sie zusammen (Byte für Byte untersucht).
  2. Nehmen Sie die ersten vier bytes von SHA256(SHA256(Ergebnisse aus Schritt 1)) 3.Verketten der Ergebnisse von Schritt 1 und die Ergebnisse aus Schritt 2 zusammen (Byte für Byte untersucht).
  3. Die Behandlung der Ergebnisse von Schritt 3 - eine Reihe von bytes, die - als einzige big-endian-bignumber, konvertieren in Basis-58 mit normalen mathematischen Schritte (bignumber-division) und der Basis-58-alphabet beschrieben. Das Ergebnis sollte normalisiert werden, um nicht alle führenden base-58 Nullen (Zeichen '1').
  4. Das führende Zeichen '1', das einen Wert von null in base58, ist reserviert für die Darstellung eines gesamten führenden null-byte, als wenn er in eine führende position, die keinen Wert hat, wie eine base-58-symbol. Es können ein oder mehrere führende " 1 ist, wenn notwendig, für eine oder mehrere führende null-bytes. Die Anzahl der führenden null-bytes, die das Ergebnis von Schritt 3 (für alte Bitcoin-Adressen, es wird immer mindestens einer für die Ausführung/Anwendung byte; für neue Adressen wird es nie sein). Die jeweils führenden null-byte wird vertreten durch seinen eigenen Charakter '1' in das Ergebnis.
  5. Verketten Sie die 1 ist aus Schritt 5 mit dem Ergebnis von Schritt 4. Dies ist die Base58Check Ergebnis.

Die daraus resultierende Präfix-Zeichen ist auch abhängig von der Größe der Daten, die codiert werden.

Der einzige Weg, um ein Präfix-byte, die Sie verwenden möchten, die einen bestimmten Charakter zu erraten und zu überprüfen. Die Daten, die Sie Kodieren, müssen eine Feste Länge haben, und selbst wenn es ist, können Sie noch am Ende mit mehreren möglichen Präfix-Zeichen, die für einen gegebenen Präfix-byte.

Eine Liste der Präfix-Werte und die Charaktere, die Sie produzieren, für 20-byte-Werte sind auch zugänglich auf der bitcoin wiki

+61
MMR 04.10.2018, 10:05:11

Nach definition und Struktur von Merkle-Baum, offenbar, die Zahl der Transaktionen in einen block eingefügt, die in einem Merkle-Baum-Struktur muss auch (und nicht ungerade), ist es nicht?

Finden Sie in der folgenden Abbildung, die zeigt einen Merkle-Baum:

enter image description here

All die Beispiele, die ich gesehen habe, sind wie diese, was bedeutet, dass scheinbar immer die Anzahl der Transaktionen, die in einem Merkle-Baum sind auch (ex. im obigen Beispiel gibt es vier Transaktionen). Gibt es ein Beispiel, in dem die Anzahl der Transaktionen würde seltsam sein? Und was passiert, wenn die Anzahl der Transaktion sind ungerade? (ex. wie fügt man 5 Transaktionen im obigen Beispiel?)

+50
ZappBrannigan 25.01.2013, 09:37:13

Ich gebe zu, ich weiß es nicht sicher, aber ich habe eine Vermutung. Da Satoshi war der Bergbau selbst für die ersten Blöcke, die er wahrscheinlich stellen Sie die ursprüngliche Ziel-zu was würde ungefähr 10 Minuten, um mir einen block auf seine CPU. Hatte er es auf die maximale Wert für eine 256-bit Zahl, er hätte abgebaut, die ersten 2,016 Blöcke fast sofort, und dann sofort umgeleitet.

Wegen der großen Anzahl der Blöcke, die abgebaut wird, in so kurzer Zeit, würde dies wahrscheinlich verursacht haben, das retargeting-Berechnung zu produzieren, ein weniger-als-perfekte Ergebnis, was bedeutet, dass die nächsten 2016 Blöcke können abgebaut werden, die entweder viel zu schnell oder viel zu langsam.

Wahrscheinlich war es einfach besser für ihn, die zum initialisieren der Ziel zu einem angemessenen Wert, sondern als Kraft der Algorithmus seinen Lauf, um zu produzieren.

+25
Bryan Hunt 12.02.2011, 10:24:28

Fragen mit Tag anzeigen