Competition and Canal 4:>
5: Quick compilation time
6: Ability to build a team
7: A powerful ecosystem
8: GOFMT, 9: GRPC- und Tuffer -Protokoll
.
Typische statische Sprache, aber das Gefühl dynamischer Sprache.
GO Language + Blockchain Tutorial Tutorial + Quellcode + Download Full Set
ˇ^ˇ Blockchain Research Laboratory liefert eine detaillierte Erklärung des Tutorials zur Implementierung von Merkle-Tree und Patricia-Trie
Das Implementierungs-Tutorial zur Implementierung von Merkletree und Patriciatrie ist wie folgt: Jeder Nicht-Blattknoten ist eine Kombination von Hash-Werten für die folgenden zwei untergeordneten Knoten: Konstruktionsprozess: Blattknoten: Speichert Rohdaten. Nicht-Blattknoten: Eine Kombination von im Kind gespeicherten Hash-Werten. Typischerweise wird der binäre Merkletree verwendet. Das heißt, jeder Nicht-Blattknoten hat zwei untergeordnete Knoten. Node Merge: Wenn die Anzahl der Knoten ausgeglichen ist, werden zwei aufeinanderfolgende Knoten zusammengeführt. Datenvalidierung: Mit Merkletree können Sie überprüfen, ob Daten in der Zeitkomplexität gültig sind. Es validiert einfach die relevanten Hash -Werte, ohne den gesamten Datensatz zu betrachten.
Patriciatrie: Definition: Patriciatrie ist ein N-Meta-Baum, das zum Speichern von Daten verwendet wird. Alle Daten werden in Blattknoten gespeichert, wobei jeder Nicht-Blattknoten ein eindeutiges Datenzeichenfolge-Zeichen darstellt. Konstruktionsmerkmale: Blattknoten: Speichert tatsächliche Daten. Nicht-Blattknoten: Repräsentiert die Zeichen in der für die Pfadnavigation verwendeten Zeichenfolge. Shared Prefix: In Situationen, in denen mehrere Datenelemente Präfixe teilen, verwenden Sie die Tiefe erste Suche, um den Speicherplatz zu speichern. Datenspeicher und Zugriff: Speicher: Erstellen Sie ein Schlüsselwertpaarobjekt, durchquert jedes Zeichen im Hash -Wert der Daten und legt ein neues Schlüsselwertpaarobjekt für jedes Zeichen fest. Legen Sie das Tag "Daten" auf dem letzten Knoten ein, um die tatsächlichen Daten zu speichern. Zugriff: Gibt den letzten Wert zurück, der dem Tag "Daten" zugeordnet ist, indem Sie den Hash -Wert durchlaufen. Löschen: Löschen Sie nur Blattknoten, die dem angegebenen Hash -Wert entspre chen. Anwendungsszenario: Blockchain -Plattformen wie Ethereum verwenden Patriciatrie, um Transaktionen und Transaktionsbelege zu speichern und den Netzwerkstatus zu erhalten. Wenn Sie einen Transaktions -Hash oder einen Block -Hash als eindeutige Zeichenfolge verwenden, ist die Länge immer gleich.
Das oh2e ist eine detaillierte Erklärung der grundlegenden Implementierungs -Tutorials für Merkletree und Patriciatrie. Diese beiden Datenstrukturen haben eine Vielzahl von Anwendungen im Blockchain -Bereich und sind wichtig, um Blockchain -Arbeitsprinzipien zu verstehen und eine effiziente Datenspeicherung und -überprüfung zu erreichen.
ˋ﹏ˊ Tutorials, um mit Blockchain
zu beginnen, aber es gibt nur wenige einfache und einfache, zu verständige Anfangsartikel. Es gibt nur wenige Erklärungen darüber, was Blockchain ist und was das Besondere daran ist. Dann möchte ich es versuchen und ein bekanntes Blockchain -Training schreiben. Schließlich ist es keine schwierige Sache. Ich hoffe, dass Sie nach dem Lesen dieses Artikels nicht nur Blockchain verstehen, sondern auch verstehen, was Bergbau ist und warum der Bergbau immer schwieriger wird. Es ist zu beachten, dass ich kein Experte in diesem Bereich bin. Obwohl ich es sehr früh bemerkte, schaue ich mir Blockchain von Anfang dieses Jahres immer noch genauer an. Jeder ist herzlich eingeladen, die Fehler und Ungenauigkeiten im Artikel zu korrigieren. 1. Was ist die Essenz der Blockchain? Erstens besteht die Hauptfunktion von Blockchain darin, Informationen zu speichern. Alle Informationen, die gespeichert werden müssen, können in Blockchain geschrieben oder daraus gelesen werden. Es handelt sich also um eine Datenbank. Zweitens kann jeder einen Server einrichten, dem Blockchain -Netzwerk beitreten und ein Knoten werden. In einer Welt der Blockchain gibt es keine Schlüsselknoten, und jeder Knoten ist gleich und speichert die gesamte Datenbank. Sie können Daten an jeden Knoten schreiben/lesen, da alle Knoten am Ende synchronisiert werden, um sicherzustellen, dass die Blockchain konsistent ist. 2. Das größte Merkmal von Blockchain. Blockchain hat jedoch ein revolutionäres Merkmal. Blockchain hat keinen Administrator, es ist völlig zentral. Andere Datenbanken haben Administratoren, aber Blockchain nicht. Wenn jemand Blockchain Audits hinzufügen möchte, kann dies nicht erreicht werden, da das Entwurfsziel darin besteht, die zentralisierten Managementbehörden zu verhindern. Genau deshalb kann es nicht kontrolliert werden, dass Blockchain nicht kontrolliert werden kann. Wenn ein großes Unternehmen und eine große Gruppe die Kontrollrechte kontrollieren, werden sie die gesamte Plattform kontrollieren und andere Benutzer müssen ihnen befolgen. Ohne einen Administrator kann jedoch jeder Daten darüber schreiben. 3. Blockblockchain besteht aus Blöcken. Ein Block ist einem Datenbankelement sehr ähnlich. Jeder Block enthält zwei Teile. Überschrift: Registrieren Sie den inneren Wert der aktuellen Blockade: Die tatsächliche Datenüberschrift enthält mehrere Selbstwerte des aktuellen Blocks. Generieren Sie den Haschisch der tatsächlichen Daten rechtzeitig (dh Blockage des Körpers) Hier müssen Sie verstehen, was Haschisch ist, das benötigt wird, um Blockchain zu verstehen. Der sogenannte Haschisch bedeutet, dass der Computer einen intrinsischen Wert derselben Länge für jeden Inhalt berechnen kann. Die Hash -Länge der Blockchain beträgt 256 Stücke, was bedeutet, dass unabhängig von dem ursprünglichen Inhalt am Ende eine 256 -Bit -Bitärzahl berechnet wird. Und es kann garantiert werden, dass der entspre chende Hash, solange der ursprüngliche Inhalt unterschiedlich ist, unterschiedlich sein muss. Zum Beispiel ist der Hash der Saite 123 A8FDC205A9F19CC1C7507A60C4F01B13D11D7FD0 (Hexadezimal) und 256 Bits in binär umgewandelt, und nur 123 können diesen Hash bekommen. (Theoretisch können auch andere Zeichenfolgen diesen Haschisch erhalten, aber die Wahrscheinlichkeit ist extrem niedrig und kann als praktisch unmöglich angesehen werden.) Daher gibt es zwei wichtige Schlussfolgerungen. Inferenz 1: Hash für jeden Block ist unterschiedlich und der Block kann durch Haschisch identifiziert werden. Inferenz 2: Wenn sich der Inhalt der Blockänderung ändert, wird sich Hashish definitiv ändern. Der 4. Imodationsblock von Haschisch entspricht den Haschisch nacheinander. Das heißt, die unterschiedlichen charakteristischen Werte der Blocküberschrift sind mit einer sehr langen Zeichenfolge verbunden, und dann wird der Hash für diese Zeichenfolge berechnet. Hash = SHA256 (Blockschicht) ist die Berechnung der Blockhashing -Formel, und der SHA256 ist der Hash -Algorithmus von Blockchain. Beachten Sie, dass diese Formel nur Blocküberschriften enthält und keine Blockierung von Körpern enthält. Dies bedeutet, dass sich der Hash, der sich für den aktuellen Block für die Änderung des vorherigen Blocks für die vorherige Blockänderung ändert, sich für den aktuellen Block ändern, wenn sich der Hash -Block ändert. Dies ist von großer Bedeutung fürBlockchain. Wenn jemand einen Block ändert, ändert sich der Haschisch aus diesem Block. Damit der nachfolgende Block daran angeschlossen werden kann (da der nächste Block für den vorherigen Block Haschisch enthält), muss die Person alle nachfolgenden Blöcke nacheinander ändern, andernfalls wird der modifizierte Block von der Blockchain getrennt. Aufgrund der später genannten Ursachen ist die Berechnung von Haschisch zeitlich, und es ist fast unmöglich, in kurzer Zeit mehr Blöcke zu ändern, es sei denn, einige haben mehr als 51% der Datenleistung des gesamten Netzwerks gemeistert. Durch diesen Verbindungsmechanismus schützt Blockchain seine eigene Zuverlässigkeit, und wenn sie geschrieben sind, können Daten nicht manipuliert werden. Das ist wie Geschichte. Jeder Block ist mit einem früheren Block verbunden, der auch der Ursprung der Namensblockchain ist. 5. Da der Bergbau die Synchronisation zwischen Knoten sicherstellen muss, kann die Geschwindigkeit des Hinzufügens neuer Blöcke nicht zu schnell sein. Stellen Sie sich vor, Sie haben gerade einen Block synchronisiert und sind dabei, den nächsten Block basierend darauf zu generieren. Zu diesem Zeitpunkt haben andere Knoten neue Blöcke generiert, und Sie müssen die Hälfte der Berechnung aufgeben und erneut synchronisieren. Da es nur einen Block hinter jedem Block geben kann, können Sie immer den nächsten Block hinter dem letzten Block erzeugen. Sie haben also keine andere Wahl, als sofort zu synchronisieren, wenn Sie das Signal hören. Daher hat es Satoshi Nakamoto (dies ist ein Pseudonym, und seine wahre Identität ist noch unbekannt), der Erfinder der Blockchain, hat es absichtlich schwierig gemacht, neue Blöcke hinzuzufügen. Sein Design ist, dass im Durchschnitt alle 10 Minuten ein neuer Block im gesamten Netzwerk generiert werden kann, mit nur sechs in einer Stunde. Diese Ausgangsgeschwindigkeit wird nicht durch Befehle erreicht, sondern absichtlich massive Berechnungen eingerichtet. Das heißt, nur durch extrem große Mengen von Berechnungen kann der aktuelle Block erreicht werden, wodurch der neue Block zu Blockchain hinzugefügt wird. Da die Berechnung zu groß ist, kann sie nicht schneller sein. Dieser Prozess wird als Bergbau bezeichnet, da es so ist, als würde man ein Sandkörnchen finden, der die Bedingungen im Sand auf der ganzen Welt erfüllt. Die Maschine, die Haschisch berechnet, wird als Bergbaumaschine bezeichnet, und die Person, die die Bergbaumaschine leitet, wird als Bergmann bezeichnet. 6. Wenn Sie den schwierigen Koeffizienten lesen, haben Sie möglicherweise eine Frage. Diese Erkrankung ist besonders schwierig, daher entspricht die meisten Haschisch nicht die Anforderungen und müssen erneut kalkuliert werden. Es stellt sich heraus, dass die Blocküberschrift einen Schwierigkeitskoeffizienten enthält, der die Schwierigkeit der Berechnung von Haschisch bestimmt. Beispielsweise beträgt der Schwierigkeitsgrad des Blocks 100.000 14484.16236122. Das Blockchain -Protokoll bestimmt, dass die Verwendung eines ständig geteilten durch den schwierigen Koeffizienten den Zielwert erreichen kann. Es ist klar, je größer, desto schwieriger Koeffizient ist desto weniger der Zielwert. Die Gültigkeit eines Hashs hängt eng mit dem Zielwert zusammen. Da der Zielwert sehr gering ist, sind die Chancen, weniger als dieser Wert zu haben, extrem schlank. Das ist die Ursache des Bergbaus so langsam. Wie bereits erwähnt, wird Hashish für den Stromblock nur durch die Blocküberschrift bestimmt. Wenn Sie den Hash für denselben Block wiederholt berechnen möchten, bedeutet dies, dass sich die Blocküberschrift kontinuierlich ändern muss, andernfalls ist es unmöglich, einen anderen Hash zu berechnen. Alle intrinsischen Werte in der Blocküberschrift sind festgelegt. Nonce ist ein zufälliger Wert. Nonce ist sehr schwer zu erraten, und vorerst können wir nur versuchen, durch erschöpfende Methoden Fehler einzeln zu machen. Nach dem Protokoll ist Nonce ein Binärwert von 32 Bit, der maximal 2.147 Milliarden US-Dollar erreichen kann. Der NonCE -Wert des 100000 -Blocks beträgt 274148111. Es ist zu verstehen, dass der Bergmann seit 0 274 Millionen Mal berechnet hat, um einen gültigen Nonce -Wert zu erreichen, damit der berechnete Hash die Bedingungen erfüllen kann. Wenn Sie Glück haben, können Sie Nonce für eine Weile finden. Wenn Sie kein Glück haben, haben Sie möglicherweise 2,147 Milliarden Mal berechnet und es wird kein Nonce gefunden, das heißt, es ist für den Strom unmöglichDer Block zur Berechnung eines Haschischs, der den Bedingungen erfüllt. Zu diesem Zeitpunkt ermöglicht das Protokoll dem Bergmann, den Block zu ändern und eine neue Berechnung zu starten. 7. Dynamik einer schwierigen Koeffizientenanpassung Wie im vorherigen Abschnitt erwähnt, ist der Bergbau zufällig und kann nicht garantieren, dass ein Block in genau zehn Minuten hergestellt wird. Insgesamt wird die Berechnungsrate mit der Zunahme der Hardware -Geräte und der Zunahme der Anzahl der Bergbaumaschinen definitiv schneller und schneller sein. Um die Ausgangsgeschwindigkeit zehn Minuten lang konstant zu halten, entwarf Satoshi Nakamoto auch einen dynamischen Einstellmechanismus für den schwierigen Koeffizienten. Er entscheidet, dass der schwierige Koeffizient alle zweiten Woche (Blöcke 2016) angepasst wird. Wenn die durchschnittliche Geschwindigkeit der Erzeugung bei der Blockierung in diesen zwei Wochen 9 Minuten beträgt, bedeutet dies, dass sie 10% schneller als die rechtliche Geschwindigkeit ist, der nächste Schwierigkeitskoeffizient muss um 10% erhöht werden. Wenn die durchschnittliche Erzeugungsrate 11 Minuten beträgt, bedeutet dies, dass sie 10% langsamer als die rechtliche Geschwindigkeit ist, dann muss der nächste schwierige Koeffizient um 10% reduziert werden. Der Schwierigkeitskoeffizient wird immer höher angepasst (der Zielwert wird immer kleiner), wodurch der Bergbau immer schwieriger wird. 8. Gabel mit Blockchain Obwohl die Blockchain zuverlässig ist, gibt es immer noch ein Problem, das nicht gelöst wird: Wenn zwei Personen gleichzeitig Daten in Blockchain schreiben, sind zwei Blöcke gleichzeitig miteinander verbunden, da sie mit dem vorherigen Block verbunden sind, bildet sich eine Gabel. Welcher Block sollte zu diesem Zeitpunkt übernommen werden? Wenn Blockchain eine Gabel hat, wird untersucht, welcher Zweig hinter dem Gabelpunkt liegt und zuerst 6 neue Blöcke (als sechs Bestätigungen bezeichnet) erreicht. Berechnen Sie es in einem Block von 10 Minuten und bestätigen Sie es in einer Stunde. Da die Erzeugungsrate neuer Blöcke durch Rechenleistung bestimmt wird, bedeutet diese Regel, dass der Zweig mit der meisten Rechenleistung eine authentische Blockchain ist. 9. Zusammenfassung: Blockchain als nicht verabreichte verteilte Datenbank ist seit 2009 8 Jahre in Betrieb und hat keine größeren Probleme. Dies beweist, dass es machbar ist. Um jedoch die Zuverlässigkeit von Daten zu gewährleisten, hat Blockchain auch seinen eigenen Preis. Erstens Effizienz. Wenn Sie Daten in Blockchain schreiben, dauert das Warten mindestens zehn Minuten. Daher sind die relevanten Blockchain -Szenarien tatsächlich sehr begrenzt. Es gibt keine Daten von den Verwaltungsbehörden, denen alle Mitglieder vertrauen, die Vorteile des realen Zeitabbaus nicht verlangen, um ihre eigenen Kosten zu kompensieren. Derzeit wird das größte Anwendungsszenario (wahrscheinlich das einzige Anwendungsszenario) von Blockchain -Kryptowährungen durch Bitcoin dargestellt. Was ist Illustration von Blockchain -Comics? Comics veranschaulichen: Was ist Blockchain? Blockchain in Englisch ist im Grunde eine dezentrale Dispersionsdatenbank. Jeder, der seinen eigenen Server festlegt und mit dem Blockchain -Netzwerk verbunden ist, kann zu einer Taste dieses großen Netzwerks werden. Weil Blockchain im Grunde eine Datenbank ist, was wird sie gespeichert? Lassen Sie uns über die Basiseinheit von Blockchain: Block erfahren. Ein Block ist in zwei Teile unterteilt: 1. Der Titel des Blocks der Blockinformationen des Blocks, einschließlich des Hash -Werts des Frontblocks (vorne), dem Hash -Wert des Körpers (Hash) und der Zeitstempel (Zeitmarke) usw. 2. Detaillierter Datenblock (Daten) dieses Blocks, das einige Dossiers enthält, können Handelsinformationen oder andere Informationen sein. Was bedeutet der Hash -Wert jetzt? Ich glaube, jeder hat von MD5 gehört. In unserer Blockchain wird ein komplizierterer Hash -Algorithmus verwendet, der SHA256 genannt wird. Nach einer Reihe komplexer Berechnungen werden die neuesten Dateninformationen (z. B. Handelsaufzeichnungen) letztendlich in eine Hash -Kette mit einer Länge von 256 Bit durch diesen Hash -Algorithmus umgewandelt, der die Hash -Funktion im Betreff -Titel ist. des Blocks. Wie hängen die verschiedenen Blöcke zusammen? Basierend auf Hash und dem Benutzer zu verknüpfen. Die Zeit der Vorbearbeitung eines jeden Blocks und des Hash -Werts des Frontblocks ist gleich. Warum den Hash -Wert eines Blocks berechnen? Da Blockchain eine Struktur ist, die der Kette ähnelt, muss der erste Taste (der erste Block) und den Schwanzknopf (der letzte Block) der Zeichenfolge vorhanden sind. Wenn jemand den Hash -Wert der neuesten Dateninformationen von Blockchain berechnet, entspricht er der neuesten Transaktionsaufzeichnungsverpackung und der neue Block wird erstellt und mit dem Ende der Blockchain verbunden. Der Hash im neuen Blocktitel ist der neu berechnete Hash -Wert und die Verwendungsgebühr, die dem Hash des ersten Blocks entspricht. Die Daten von Block Body speichern vor der Verpackung Transaktionen und dieser Teil der Dateninformationen ist nicht verarbeitet. Der Prozess der Berechnung dieses Hash -Werts und der Erstellung eines neuen Blocks wird als Ausbeutung bezeichnet. Ein Server, der für eine große Berechnung verwendet wird, wird als Ausbeutungsmaschine bezeichnet. Das berechnende Betriebsmitarbeiter wird als Betreiber bezeichnet. Was ist die Schwierigkeit, den Hash -Wert zu berechnen? Bitte erklären Sie die grundlegendsten. Interessierte Freunde können die relevanten Informationen überprüfen, wir werden sie in dieser Zeit nicht vorstellen. Die Hauptberechnungsschwierigkeit liegt hier bei der Erstellung von Zufallszahlen. Um die Schwierigkeit der Hash -Berechnung zu erhöhen, erfordert der vulgäre Blockchain -Erfinder das erste 72 Bit der Hash -Ergebnisse 0. Diese Wahrscheinlichkeit ist zu klein. Da (der Hash des endgültigen Blocks + die grundlegenden Informationen der neuen + neuen Informationsprotokollinformationen) wurde repariert, unabhängig davon, ob Sie eine Hash -Funktion erhalten können, um die Anforderungen zu erfüllen, die vollständig vom Wert der Zufallszahl abhängen. Die Ausbeutung muss sich großen Berechnungen unterziehen und ständig zufällige Zahlen erstellen, um die gemeinsamen Anstrengungen zu implementieren, um "mit der Eigenschaft zu kollidieren", um eine genaue Hash -Funktion zu erhalten und somit erfolgreich auszunutzen. Gleichzeitig enthält der Titel des Blocks auch den KoeffizientenSchwierig. Ihr, verstehst du, wie schwierig es für mich ist? Es sollte hinzugefügt werden, dass verschiedene Blockchain -Anwendungen unterschiedliche Details haben und die hier beschriebenen Ausbeutungsregeln ein Beispiel sind. Das Konzept der Bitcoin -Blockchain -Anwendung (Bitcoin) wurde ursprünglich 2008 von Satoshi Nakamoto vorgeschlagen und anschließend auf dieser Idee die P2P -Open Source und die soziale Software aufbauend. Bitcoin ist eine digitale P2P -Währung. Offenlegungspunkt bedeutet ein dezentrales Zahlungssystem. Was ist das P2P -Netzwerk? Traditionelle Währungen werden von der Zentralbank ausgestellt und alle Personen werden gespeichert, die auch von Banken verwaltet werden, was ein typisches Fokussystem ist. Bitcoin wird in einem dezentralen Netzwerk eingesetzt, einschließlich mehrerer Peer -Tasten auf der ganzen Welt. Jede Taste kann diese Art von digitaler Währung aufzeichnen und ausstellen. Für die grundlegende Datenspeicherung von Bitcoin basiert es auf der Blockchain -Technologie. Jede Transaktion in Bitcoin entspricht einer Zeile in Blockdaten, die wie folgt dargestellt wird: Jede Zeile des Transaktionsdatensatzes enthält Zeitmarkierungen, Transaktionsdetails und digitale Signaturen. Die Tabelle ist nur leicht zu verstehen. Die Transaktionsdetails sind tatsächlich anonym und erfassen nur die Tapetenadressen des Zahlers und des Zahlers. Für digitale Signaturen können sie als Anti -Counterfiting -Punkt jeder Transaktion verstanden werden, die durch einen asymmetrischen Verschlüsselungsalgorithmus erzeugt werden. Spre chen Sie als nächstes über die Belohnungen von Bitcoin -Exploitation -Tools: Bitcoin Protocol sieht vor, dass Unternehmen neue Blöcke ausnutzen, die ab 2008 mit 50 Bitcoin und dann eine halbe Zeit belohnt werden. So wurden die neu hinzugefügten Bitcoins geboren, und es ist nicht ungewöhnlich, dass jeder sehr aufgeregt ist, Bitcoin auszunutzen! Vor- und Nachteile von Blockchainvorteilen von Blockchain: 1. Die dezentrale Blockchain beruht nicht auf den zentralen Taste. Auf diese Weise wird das gesamte System nicht gebrochen, wenn der Angreifer nicht mehr als die Hälfte der Knoten im gesamten Netzwerk hackt. 2. Informationen können nicht gefälscht werden. Wenn die Daten mit dem kleinsten Biss gefälscht sind, ändert sich der entspre chende Hash -Wert des gesamten Blocks, es gibt keinen gültigen Hash -Wert und die nachfolgenden Links werden ebenfalls unterbrochen. Nachteile der Blockchain: 1. Übermäßige Energie. 2. Die Netzwerklatenz der Bitcoin -Informationen als Beispiel. Ein paar Ergänzungen: 1. Ein Teil dieses Comics wird von Ruan Yifengs Blog -Beitrag "Einführung von Blockchain Guide" bezeichnet. 2. Aufgrund des begrenzten Raums wird die Kenntnis der Merkletree -Verschlüsselung und der Asymmetrie in dieser Zeit nicht im Detail erläutert.