-
HINTERGRUND
-
Technisches Gebiet
-
Die vorliegende Erfindung bezieht sich auf eine Momentaufnahmen-Verwaltung in einer Blockchain.
-
Beschreibung des Standes der Technik
-
In einigen Blockchain-Implementierungen weisen Knoten einer Blockchain-Struktur jeweils eine identische Kopie eines gemeinsamen Datensatzes auf (manchmal auch als „Weltzustand“ oder „Ledger“ usw. bezeichnet). Wenn es beispielsweise N Knoten in der Blockchain-Struktur gibt, haben N Knoten N Kopien der gemeinsamen Daten in einer entsprechenden Datenbank.
-
In einigen Fällen kann es erforderlich sein, dass ein Prüfer die Richtigkeit und Angemessenheit von Transaktionen bestätigt. Der Prüfer muss im Rahmen des Bestätigungsprozesses möglicherweise an verschiedenen Zeitpunkten auf den gemeinsamen Datensatz zugreifen. Aktuelle Verfahren zum Abrufen eines gemeinsamen Datensatzes an bestimmten Zeitpunkten haben jedoch Nachteile, da sie viele Rechenressourcen benötigen.
-
KURZDARSTELLUNG
-
In einer Ausführungsform der vorliegenden Erfindung beinhaltet ein Computerprogrammprodukt Anweisungen, die in einem nichtflüchtigen, durch einen Computer lesbaren Medium oder einer programmierbaren Schaltung enthalten sind, wobei die Anweisungen von einem Prozessor bzw. der programmierbaren Schaltung ausgeführt werden können, um den Prozessor oder die programmierbare Schaltung zu veranlassen, Arbeitsschritte durchzuführen, darunter ein Abrufen eines Unterschieds zwischen gemeinsamen Daten an einem ersten Zeitpunkt und den gemeinsamen Daten an einem zweiten Zeitpunkt, der sich vom ersten Zeitpunkt unterscheidet, von mindestens einem einer Mehrzahl von ersten Knoten, ein Erzeugen einer ersten Momentaufnahme der gemeinsamen Daten am ersten Zeitpunkt auf Grundlage des Unterschieds, ein Abrufen eines Hashwertes der gemeinsamen Daten am ersten Zeitpunkt von mindestens einem der Mehrzahl von ersten Knoten und ein Überprüfen der ersten Momentaufnahme am ersten Zeitpunkt anhand des Hashwertes der gemeinsamen Daten am ersten Zeitpunkt. In einer Ausführungsform kann ein Momentaufnahmeknoten eine richtige Momentaufnahme eines ersten Zeitpunkts mit weniger Rechenressourcen erzeugen.
-
Gemäß einer Ausführungsform der vorliegenden Erfindung beinhalten die Arbeitsschritte weiterhin ein Speichern einer Mehrzahl von Momentaufnahmen der gemeinsamen Daten an unterschiedlichen Zeitpunkten. Der Momentaufnahmeknoten kann einen Archivdatensatz der gemeinsamen Daten speichern.
-
In einer Ausführungsform der vorliegenden Erfindung beinhalten die Arbeitsschritte weiterhin ein Ermitteln, ob eine Mehrzahl von Hashwerten von gemeinsamen Daten am ersten Zeitpunkt gleich ist, wobei das Abrufen des Hashwertes der gemeinsamen Daten am ersten Zeitpunkt von dem mindestens einen der Mehrzahl von ersten Knoten ein Abrufen der Mehrzahl von Hashwerten der gemeinsamen Daten am ersten Zeitpunkt von zwei oder mehr ersten Knoten beinhaltet. Gemäß einer Ausführungsform kann der Momentaufnahmeknoten den vorläufig überprüften Hashwert verwenden, um eine neu erzeugte Momentaufnahme zu überprüfen.
-
Gemäß einer Ausführungsform weist ein Momentaufnahmeknoten ein Computerprogrammprodukt, ein System, das den Momentaufnahmeknoten und die Mehrzahl von ersten Knoten aufweist, und ein Verfahren auf, das von dem Momentaufnahmeknoten oder System durchgeführt wird.
-
Gemäß einer Ausführungsform der vorliegenden Erfindung beinhaltet ein Computerprogrammprodukt Anweisungen, die in einem nichtflüchtigen, durch einen Computer lesbaren Medium oder einer programmierbaren Schaltung enthalten sind, wobei die Anweisungen von einem Prozessor bzw. der programmierbaren Schaltung ausgeführt werden können, um den Prozessor oder die programmierbare Schaltung zu veranlassen, Arbeitsschritte durchzuführen, darunter ein Empfangen einer Momentaufnahme eines ersten Zeitpunkts von einem Momentaufnahmeknoten, ein Berechnen eines Hashwertes der Momentaufnahme des ersten Zeitpunkts, ein Empfangen eines Hashwertes der gemeinsamen Daten am ersten Zeitpunkt von mindestens einem einer Mehrzahl von ersten Knoten, wobei die gemeinsamen Daten in der Mehrzahl von ersten Knoten gespeichert sind, sowie ein Ermitteln, ob der Hashwert der Momentaufnahme des ersten Zeitpunkts gleich ist wie der Hashwert der gemeinsamen Daten am ersten Zeitpunkt. Gemäß einer Ausführungsform kann ein Prüfknoten die Genauigkeit einer von dem Momentaufnahmeknoten empfangenen Momentaufnahme auf Grundlage eines von den ersten Knoten empfangenen Hashwertes bestätigen.
-
Gemäß einer Ausführungsform der vorliegenden Erfindung beinhalten die Arbeitsschritte weiterhin ein Empfangen von mindestens einer gemeinsamen Transaktion zwischen dem ersten Zeitpunkt und einem zweiten Zeitpunkt von dem mindestens einen der Mehrzahl von ersten Knoten und ein Erzeugen der gemeinsamen Daten am zweiten Zeitpunkt auf Grundlage der Momentaufnahme der gemeinsamen Daten am ersten Zeitpunkt und der mindestens einen gemeinsamen Transkation als Reaktion auf das Feststellen, dass der Hashwert der Momentaufnahme des ersten Zeitpunkts gleich ist wie der Hashwert der gemeinsamen Daten am ersten Zeitpunkt. Gemäß einer Ausführungsform kann der Prüfknoten die gemeinsamen Daten eines beliebigen Zeitpunkts mit weniger Datenressourcen wieder genau herstellen.
-
Gemäß einer Ausführungsform der vorliegenden Erfindung beinhaltet ein Prüfknoten ein Computerprogrammprodukt, ein System, das den Prüfknoten und die Mehrzahl von ersten Knoten aufweist, sowie ein Verfahren, das von dem Prüfknoten oder System durchgeführt wird.
-
Der Abschnitt „Kurzdarstellung“ beschreibt nicht unbedingt alle Merkmale der Ausführungsformen der vorliegenden Erfindung. Ausführungsformen der vorliegenden Erfindung können auch Teilkombinationen der vorstehend beschriebenen Merkmale enthalten.
-
Figurenliste
-
Die nachfolgende Beschreibung stellt Einzelheiten bevorzugter Ausführungsformen der vorliegenden Erfindung mit Bezug auf die folgenden Figuren bereit, in denen:
- 1 eine beispielhafte Konfiguration eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
- 2 beispielhafte Daten zeigt, die gemäß einer Ausführungsform der vorliegenden Erfindung in einem ersten Knoten des Systems gespeichert sind;
- 3 eine beispielhafte Konfiguration eines Momentaufnahmeknotens des Systems gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
- 4 eine beispielhafte Konfiguration eines Prüfknotens des Systems gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
- 5 einen ersten Ablaufplan gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
- 6 einen zweiten Ablaufplan gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
- 7 einen Arbeitsschritt des Momentaufnahmeknotens gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
- 8 einen Arbeitsschritt des Momentaufnahmeknotens gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
- 9 einen Arbeitsschritt des Prüfknotens gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
- 10 Arbeitsschritte des Prüfknotens gemäß einer Ausführungsform der vorliegenden Erfindung zeigt; und
- 11 eine beispielhafte Hardware-Konfiguration eines Computers gemäß einer Ausführungsform der vorliegenden Erfindung zeigt, der als System funktioniert.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Nachfolgend werden beispielhafte Ausführungsformen der vorliegenden Erfindung beschrieben. Die beispielhaften Ausführungsformen der vorliegenden Erfindung schränken die Erfindung gemäß den Ansprüchen nicht ein, und die Kombinationen der in den Ausführungsformen der vorliegenden Erfindung beschriebenen Merkmale sind nicht unbedingt wesentlich für die Erfindung.
-
1 zeigt eine beispielhafte Konfiguration eines Systems 10 gemäß einer Ausführungsform der vorliegenden Erfindung. Bei dem System 10 als Ganzem kann es sich um eine verteilte Datenbank wie eine Blockchain handeln, bei der eine Mehrzahl von Knoten gemeinsame Daten speichern, eine Transaktion verarbeiten und eine Blockchain erweitern kann.
-
Obwohl das System 10 in den folgenden Ausführungsformen der vorliegenden Erfindung unter einer Reihe von Blockchain-Technologien Hyperledger ausführen kann, kann das System 10 auch andere Blockchain-Technologien ausführen. Für die Ausführungsformen der vorliegenden Erfindung, die im Folgenden erläutert werden, kann eine Reihe von Implementierungen für Hyperledger und andere Blockchain-Technologien verwendet werden. Das System 10 enthält einen Pool 100 von ersten Knoten, einen Momentaufnahmeknoten 200 und einen Prüfknoten 300.
-
Der Pool 100 von ersten Knoten kann eine gemeinsame Transaktion speichern und gemeinsame Daten auf Grundlage der gemeinsamen Transaktion aktualisieren. Der Pool 100 von ersten Knoten kann eine Mehrzahl von ersten Knoten wie einen ersten Knoten 110A, einen ersten Knoten 110B und einen ersten Knoten 110C aufweisen, die in 1 abgebildet sind. Der Pool 100 von ersten Knoten kann eine Blockchain ausführen. In einer Ausführungsform der vorliegenden Erfindung können die ersten Knoten 110A bis 110C einen verteilten Konsensalgorithmus ausführen, um gemeinsame Transaktionen zu verarbeiten.
-
Die ersten Knoten 110A bis 110C können jeweils als bestätigender Peer oder nichtbestätigender Peer in Hyperledger ausgeführt werden. Jeder der ersten Knoten 110A bis 110C kann einen Speicher aufweisen, um die jeweiligen gemeinsamen Daten und die Blockchain zu speichern.
-
Der Momentaufnahmeknoten 200 kann einen Speicher aufweisen, um eine Mehrzahl von Momentaufnahmen der gemeinsamen Daten an verschiedenen Zeitpunkten zu speichern. Bei der Momentaufnahme handelt es sich um eine Kopie der gemeinsamen Daten an einem Zeitpunkt. Der Momentaufnahmeknoten 200 kann daher Kopien der gemeinsamen Daten an verschiedenen Zeitpunkten speichern.
-
Der Prüfknoten 300 kann die gemeinsamen Daten an bestimmten Zeitpunkten für eine Prüfung abrufen. Die ersten Knoten 110A bis 110C, der Momentaufnahmeknoten 200 und der Prüfknoten 300 können durch Computer und Datenbanken umgesetzt werden.
-
Die ersten Knoten 110A bis 110C, der Momentaufnahmeknoten 200 und der Prüfknoten 300 können über ein Netzwerk wie das Internet Daten austauschen. Einzelheiten zu den ersten Knoten 110A bis 110C, dem Momentaufnahmeknoten 200 und dem Prüfknoten 300 werden im Zusammenhang mit den 2 bis 4 erläutert.
-
In einer Ausführungsform der vorliegenden Erfindung können der Momentaufnahmeknoten 200 und/oder der Prüfknoten 300 als unterschiedliche Knoten im Vergleich zu den ersten Knoten 100 umgesetzt werden. In einer Ausführungsform der vorliegenden Erfindung kann ein Teil der ersten Knoten 100 zumindest teilweise als Momentaufnahmeknoten 200 und/oder Prüfknoten 300 fungieren.
-
2 zeigt beispielhafte Daten, die gemäß einer Ausführungsform der vorliegenden Erfindung in einem ersten Knoten 110 des Systems 10 gespeichert sind. Ein erster Knoten 110 (der einen der ersten Knoten 110A bis 110C in 1 darstellen kann) kann wie eine Knoteneinheit einer Blockchain-Struktur arbeiten.
-
Die ersten Knoten 110A bis 110C können einen Prozessor und/oder eine programmierbare Schaltung und ein oder mehrere nichtfestgelegte, durch einen Computer lesbare(s) Speichermedium/-medien aufweisen, die gemeinsam Anweisungen enthalten. Der Prozessor und/oder die programmierbare Schaltung können Anweisungen ausführen, um verschiedene Arbeitsschritte durchzuführen. Der Prozessor kann die in den durch einen Computer lesbaren Speichermedien gespeicherten Anweisungen ausführen. Die programmierbare Schaltung kann darin programmierte Anweisungen ausführen. In einer Ausführungsform der vorliegenden Erfindung kann das durch einen Computer lesbare Medium oder die programmierbare Schaltung als das Computerprogrammprodukt bereitgestellt werden.
-
In einer Ausführungsform der vorliegenden Erfindung kann der erste Knoten 110 aktuelle gemeinsame Daten 111 und einen Hashwert der aktuellen gemeinsamen Daten 112 in seinem Speicher 108 speichern.
-
Der erste Knoten 110 kann ferner eine Mehrzahl von Blöcken 113(1) bis 113(n) als Blockchain im Speicher 108 speichern. Jeder Block kann eine oder mehrere Transaktion(en) 115, einen Hashwert 117 der Transaktion(en) 115, einen Hashwert eines vorangegangenen Blocks 116 und einen Hashwert der gemeinsamen Daten 112 an einem Zeitpunkt enthalten, an dem der Block erzeugt wird. Der Block (n) 113(n) enthält beispielsweise die Transaktion(en) 115(n), die stattfindet/stattfinden, nachdem der vorangegangene Block (n-1) 113(n-1) erzeugt wurde, einen Hashwert 117(n) der Transaktionen 115(n), einen Hashwert eines (n-1)-ten Blocks 116(n-1) und einen Hashwert der gemeinsamen Daten an einem Zeitpunkt tn , wenn der Block(n) erzeugt wird (112(n)).
-
In einer Ausführungsform der vorliegenden Erfindung empfängt der erste Knoten 110 eine Transaktion 115, wendet einen Konsensalgorithmus auf die Transaktion mit anderen ersten Knoten 110 an und aktualisiert die gemeinsamen Daten 111 auf Grundlage der vereinbarten Transaktion 115 in Übereinstimmung mit einem anderen Algorithmus wie Hyperledger. In einer Ausführungsform kann der Speicher 108 des ersten Knotens 110 durch eine oder mehrere Datenbankeinheiten umgesetzt werden.
-
3 zeigt eine beispielhafte Konfiguration eines Momentaufnahmeknotens 200 des Systems 10 gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Der Momentaufnahmeknoten 200 kann einen Prozessor und/oder eine programmierbare Schaltung und ein oder mehrere durch einen Computer lesbare(s) Speichermedium/-medien aufweisen, die gemeinsam Anweisungen enthalten. Wenn die Anweisungen durch den Prozessor oder die programmierbare Schaltung ausgeführt werden, können sie den Prozessor oder die programmierbare Schaltung veranlassen, wie eine Mehrzahl von Betriebsabschnitten zu arbeiten. Der Momentaufnahmeknoten 200 kann dabei als ein Speicherabschnitt 210, Abrufabschnitt 220, Erzeugungsabschnitt 230, Überprüfungsabschnitt 240, Berechnungsabschnitt 260 und Bereitstellungsabschnitt 290 dargestellt werden.
-
Der Speicherabschnitt 210 kann eine Mehrzahl von Momentaufnahmen der gemeinsamen Daten an unterschiedlichen Zeitpunkten speichern. In einer Ausführungsform der vorliegenden Erfindung kann der Speicherabschnitt N Momentaufnahmen der gemeinsamen Daten an N unterschiedlichen Zeitpunkten speichern.
-
Der Speicherabschnitt 210 kann auch eine Vielfalt von Daten/Anweisungen für Arbeitsschritte des Momentaufnahmeknotens 200 speichern. Ein oder mehrere andere Elemente im Momentaufnahmeknoten 200 (z.B. der Abrufabschnitt 220, Erzeugungsabschnitt 230, Überprüfungsabschnitt 240, Berechnungsabschnitt 260, Bereitstellungsabschnitt 290 usw.) können Daten direkt oder gegebenenfalls über den Speicherabschnitt 210 austauschen. In einer Ausführungsform der vorliegenden Erfindung weist der Speicherabschnitt 210 eine oder mehrere Speichereinheiten zum Speichern der Momentaufnahmen und/oder einen Speicher zum Speichern der Vielfalt von Daten/Anweisungen auf.
-
Der Abrufabschnitt 220 kann einen Hashwert der gemeinsamen Daten am ersten Zeitpunkt vom Pool 100 von ersten Knoten abrufen. In einer Ausführungsform der vorliegenden Erfindung kann der Abrufabschnitt 220 die Mehrzahl der Hashwerte der gemeinsamen Daten am ersten Zeitpunkt von zwei oder mehr der ersten Knoten 110 abrufen. In einer Ausführungsform der vorliegenden Erfindung kann der Abrufabschnitt 220 den/die Hashwert(e) der gemeinsamen Daten von mindestens einem oder allen der Mehrzahl der ersten Knoten 110 abrufen.
-
Der Abrufabschnitt 220 kann ferner einen Unterschied zwischen gemeinsamen Daten an einem ersten Zeitpunkt und den gemeinsamen Daten an einem zweiten Zeitpunkt, der sich vom ersten Zeitpunkt unterscheidet, vom Pool 100 von ersten Knoten abrufen. In einer Ausführungsform der vorliegenden Erfindung kann der Abrufabschnitt 220 den Unterschied zwischen den gemeinsamen Daten an den beiden Zeitpunkten von zwei oder mehr der Mehrzahl von ersten Knoten 110 abrufen. In einer Ausführungsform der vorliegenden Erfindung kann der Abrufabschnitt 220 eine oder mehrere Transaktionen in Blöcken als Unterschied abrufen.
-
Der Erzeugungsabschnitt 230 kann eine erste Momentaufnahme der gemeinsamen Daten am ersten Zeitpunkt auf Grundlage des Unterschieds zwischen den gemeinsamen Daten am ersten Zeitpunkt und den gemeinsamen Daten am zweiten Zeitpunkt erzeugen. Der Erzeugungsabschnitt 230 kann die erste Momentaufnahme weiterhin auf Grundlage einer zweiten Momentaufnahme am zweiten Zeitpunkt erzeugen. In einer Ausführungsform erzeugt der Erzeugungsabschnitt 230 die erste Momentaufnahme, indem der Unterschied der gemeinsamen Daten zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt auf die Momentaufnahme am zweiten Zeitpunkt angewendet wird. Der Erzeugungsabschnitt 230 kann die erste Momentaufnahme im Speicherabschnitt 210 speichern.
-
Der Überprüfungsabschnitt 240 überprüft die erste Momentaufnahme am ersten Zeitpunkt anhand des Hashwertes der gemeinsamen Daten am ersten Zeitpunkt. In einer Ausführungsform der vorliegenden Erfindung ermittelt der Überprüfungsabschnitt 240, ob der Hashwert der ersten Momentaufnahme gleich ist wie der Hashwert der gemeinsamen Daten am ersten Zeitpunkt.
-
Der Überprüfungsabschnitt 240 kann weiterhin eine Mehrzahl der von der Mehrzahl von ersten Knoten 110 abgerufenen Hashwerte der gemeinsamen Daten am ersten Zeitpunkt überprüfen. In einer Ausführungsform der vorliegenden Erfindung kann der Überprüfungsabschnitt 240 ermitteln, ob eine Mehrzahl der von den ersten Knoten 110 abgerufenen Hashwerte der gemeinsamen Daten am ersten Zeitpunkt gleich ist.
-
Der Berechnungsabschnitt 260 berechnet einen Hashwert der ersten Momentaufnahme der gemeinsamen Daten am ersten Zeitpunkt, die von dem Erzeugungsabschnitt 230 erzeugt wurden.
-
Der Bereitstellungsabschnitt 290 empfängt eine Anforderung einer Momentaufnahme an einem Zeitpunkt vom Prüfknoten 300, ruft die Momentaufnahme des Zeitpunkts aus dem Speicherabschnitt 210 ab und stellt dem Prüfknoten 300 die angeforderte Momentaufnahme bereit.
-
4 zeigt eine beispielhafte Konfiguration eines Prüfknotens 300 des Systems 10 gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Der Prüfknoten 300 kann einen Prozessor und/oder eine programmierbare Schaltung und ein oder mehrere nichtflüchtige, durch einen Computer lesbare Speichermedien aufweisen, die gemeinsam Anweisungen enthalten. Wenn die Anweisungen durch den Prozessor oder die programmierbare Schaltung ausgeführt werden, können sie den Prozessor oder die programmierbare Schaltung veranlassen, wie eine Mehrzahl von Betriebsabschnitten zu arbeiten. Der Prüfknoten 300 kann dabei als ein Speicherabschnitt 310, Empfangsabschnitt 320, Berechnungsabschnitt 340, Ermittlungsabschnitt 360 und Erzeugungsabschnitt 380 dargestellt werden.
-
Der Speicherabschnitt 310 kann auch eine Vielfalt von Daten/Anweisungen für Arbeitsschritte des Prüfknotens 300 speichern. Ein oder mehrere andere Elemente im Prüfknoten 300 (z.B. der Empfangsabschnitt 320, Berechnungsabschnitt 340, Ermittlungsabschnitt 360, Erzeugungsabschnitt 380 usw.) können Daten direkt oder gegebenenfalls über den Speicherabschnitt 310 austauschen. Der Speicherabschnitt 310 kann einen Speicher zum Speichern der Vielfalt von Daten/Anweisungen aufweisen.
-
Der Empfangsabschnitt 320 kann eine Momentaufnahme eines dritten Zeitpunkts von einem Momentaufnahmeknoten 200 empfangen. Der Empfangsabschnitt 320 kann ferner einen Hashwert von gemeinsamen Daten am dritten Zeitpunkt und mindestens eine gemeinsame Transaktion zwischen dem dritten Zeitpunkt und einem vierten Zeitpunkt von mindestens einem der Mehrzahl von ersten Knoten 110 empfangen. In einer Ausführungsform der vorliegenden Erfindung kann der Empfangsabschnitt 320 einen Block oder mehrere Blöcke als den Hashwert der gemeinsamen Daten am dritten Zeitpunkt und die gemeinsame(n) Transaktion(en) zwischen dem dritten Zeitpunkt und dem vierten Zeitpunkt empfangen.
-
Der Berechnungsabschnitt 340 kann einen vom Momentaufnahmeknoten 200 empfangenen Hashwert der Momentaufnahme des dritten Zeitpunkts berechnen.
-
Der Ermittlungsabschnitt 360 kann die vom Momentaufnahmeknoten 200 empfangene Momentaufnahme des dritten Zeitpunkts überprüfen. In einer Ausführungsform der vorliegenden Erfindung ermittelt der Ermittlungsabschnitt 360, ob der vom Berechnungsabschnitt 340 berechnete Hashwert der Momentaufnahme des dritten Zeitpunkts gleich ist wie der vom Empfangsabschnitt 320 empfangene Hashwert der gemeinsamen Daten am dritten Zeitpunkt.
-
Der Erzeugungsabschnitt 380 erzeugt die gemeinsamen Daten am vierten Zeitpunkt auf Grundlage der Momentaufnahme der gemeinsamen Daten am dritten Zeitpunkt und der mindestens einen gemeinsamen Transkation zwischen dem dritten Zeitpunkt und einem vierten Zeitpunkt. Der Erzeugungsabschnitt 380 kann die gemeinsamen Daten am vierten Zeitpunkt als Reaktion darauf erzeugen, dass der Ermittlungsabschnitt 360 feststellt, dass der Hashwert der Momentaufnahme des dritten Zeitpunkts gleich ist wie der Hashwert der gemeinsamen Daten am vierten Zeitpunkt. In einer Ausführungsform der vorliegenden Erfindung kann der Erzeugungsabschnitt 380 die gemeinsame(n) Transaktion(en) auf die gemeinsamen Daten am dritten Zeitpunkt anwenden.
-
5 zeigt einen Ablaufplan gemäß einer Ausführungsform der vorliegenden Erfindung. Als Beispiel wird ein Momentaufnahmeknoten wie der Momentaufnahmeknoten 200 beschrieben, der die Arbeitsschritte S110 bis S190 wie in 5 gezeigt durchführt. Der Momentaufnahmeknoten kann eine neue Momentaufnahme durch die Arbeitsschritte S110 bis S190 speichern.
-
Bei S110 kann ein Abrufabschnitt wie der Abrufabschnitt 220 einen Hashwert der gemeinsamen Daten an einem Zeitpunkt tn von mindestens einem ersten Knoten eines Pools von ersten Knoten wie dem Pool 100 von ersten Knoten abrufen. Der Hashwert der gemeinsamen Daten an einem Zeitpunkt tx kann nachfolgend durch „H(CD(tx ))‟ dargestellt werden.
-
Bei dem Zeitpunkt tn handelt es sich um einen Zeitpunkt, an dem Block(n) erzeugt wird. Bei Block(n) kann es sich um den letzten Block handeln. Der Zeitpunkt tn kann als erster Zeitpunkt bezeichnet werden. In einer Ausführungsform der vorliegenden Erfindung entspricht der Zeitpunkt tn im Wesentlichen der aktuellen Zeit. In einer Ausführungsform entspricht der Zeitpunkt tn einem Zeitpunkt vor dem aktuellen Zeitpunkt um eine zuvor festgelegte Dauer.
-
In einer Ausführungsform der vorliegenden Erfindung kann der Abrufabschnitt H(DC(tn )) von jedem von zwei oder mehr ersten Knoten im Pool von ersten Knoten abrufen. In einer Ausführungsform kann der Abrufabschnitt H(DC(tn )) von jedem ersten Knoten im Pool von ersten Knoten abrufen. In einer Ausführungsform der vorliegenden Erfindung kann der Abrufabschnitt H(DC(tn )) von einem ersten Knoten im Pool von ersten Knoten abrufen.
-
Bei S120 ermittelt der Abrufabschnitt, ob der Abrufabschnitt H(CD(tn )) von einer zuvor festgelegten Anzahl der ersten Knoten im Pool von ersten Knoten abruft. In einer Ausführungsform der vorliegenden Erfindung kann es sich bei der zuvor festgelegten Anzahl um die Anzahl aller ersten Knoten im Pool von ersten Knoten handeln. In einer Ausführungsform der vorliegenden Erfindung kann es sich bei der zuvor festgelegten Anzahl um eine Hälfte oder zwei Drittel (2/3) der ersten Knoten im Pool von ersten Knoten handeln.
-
Ist die Entscheidung positiv, fährt der Abrufabschnitt mit einem Arbeitsschritt S130 fort. Ist die Entscheidung negativ, geht der Abrufabschnitt zurück zu S110, um zu warten, bis er H(CD(tn )) weiterhin von den ersten Knoten erhält.
-
Bei S130 überprüft ein Überprüfungsabschnitt wie der Überprüfungsabschnitt 240 eine Mehrzahl der von den ersten Knoten bei S110 abgerufenen Hashwerte H(CD(tn )). In einer Ausführungsform der vorliegenden Erfindung ermittelt der Überprüfungsabschnitt, ob alle der Mehrzahl der Hashwerte H(CD(tn )) gleich sind. In einer Ausführungsform ermittelt der Überprüfungsabschnitt, ob mehr als eine zuvor festgelegte Anzahl der Mehrzahl der Hashwerte H(CD(tn )) gleich ist. In der Ausführungsform der vorliegenden Erfindung kann es sich bei der zuvor festgelegten Anzahl um (2M+1)/3 handeln, wobei M die Anzahl der ersten Knoten im Pool von ersten Knoten ist.
-
Bei S140 ermittelt der Überprüfungsabschnitt, ob die Überprüfung bei S130 erfolgreich ist. Ist die Überprüfung erfolgreich, speichert der Überprüfungsabschnitt den überprüften Hashwert H(CD(tn )) in einem Speicherabschnitt wie dem Speicherabschnitt 210 und veranlasst den Abrufabschnitt, mit einem Arbeitsschritt S150 fortzufahren. Ist die Überprüfung nicht erfolgreich, kehrt der Überprüfungsabschnitt zu Arbeitsschritt S110 zurück.
-
Bei S150 ruft der Abrufabschnitt einen Unterschied ΔCD(tn ) zwischen gemeinsamen Daten CD(tn ) am Zeitpunkt tn und den gemeinsamen Daten CD(tn-a) an einem Zeitpunkt tn-a vom Pool von ersten Knoten ab. Der Zeitpunkt tn-a kann auch als zweiter Zeitpunkt bezeichnet werden und kann vor dem Zeitpunkt tn liegen. In einer Ausführungsform der vorliegenden Erfindung kann der Zeitpunkt tn-a einem Zeitpunkt entsprechen, an dem Block(n-a) erzeugt wird, wobei es sich bei einer Variablen a um 1 oder um eine Ganzzahl größer als 1 handeln kann.
-
In einer Ausführungsform der vorliegenden Erfindung stammt der Unterschied ΔCD(tn ) von einer Aktualisierung der gemeinsamen Daten am Zeitpunkt tn mit mindestens einer gemeinsamen Transkation, die zwischen dem Zeitpunkt tn und dem Zeitpunkt tn-a stattgefunden hat.
-
In einer Ausführungsform der vorliegenden Erfindung kann der Abrufabschnitt Block(n), Block(n-1),..., Block(n-a+1) abrufen. Block(n) enthält eine oder mehrere Transaktionen, die nach dem Zeitpunkt tn-1 stattgefunden haben, als ein vorherigen Block(n-1) erzeugt wurde, Block(n-1) enthält eine oder mehrere Transaktionen, die nach dem Zeitpunkt tn-2 stattgefunden haben, als ein Block(n-2) erzeugt wurde, ..., Block (n-a+1) enthält eine oder mehrere Transaktionen, die nach dem Zeitpunkt tn-a stattgefunden haben, als ein Block(n-a) erzeugt wurde.
-
Diese Transaktion(en) entspricht/entsprechen dem Unterschied zwischen CD(tn ) und CD(tn-a). Der Abrufabschnitt kann diese Transaktion(en), die zwischen dem Zeitpunkt tn und dem Zeitpunkt tn-a stattgefunden hat/haben, von Block(n), Block(n-1),..., Block(n-a+1) als Unterschied ΔCD(tn ) abrufen.
-
In einer Ausführungsform der vorliegenden Erfindung kann der Abrufabschnitt einen oder mehrere erste Knoten im Pool von ersten Knoten zufällig festlegen und den Unterschied ΔCD(tn ) von dem festgelegten ersten Knoten empfangen. In einer Ausführungsform kann der Abrufabschnitt den Unterschied ΔCD(tn ) von einem oder mehreren zuvor festgelegten ersten Knoten des Pools von ersten Knoten empfangen.
-
Bei S160 erzeugt ein Erzeugungsabschnitt wie der Erzeugungsabschnitt 230 eine Momentaufnahme SS(tn ) am Zeitpunkt tn auf Grundlage des bei S150 abgerufenen Unterschieds ΔCD(tn ) sowie eine Momentaufnahme SS(tn-a) am Zeitpunkt tn-a . In einer Ausführungsform der vorliegenden Erfindung kann der Erzeugungsabschnitt die Momentaufnahme SS(tn-a) vom Speicherabschnitt lesen und den Unterschied ΔCD(tn ) auf die Momentaufnahme SS(tn-a) anwenden, um die Momentaufnahme SS(tn ) abzurufen.
-
Bei S170 berechnet ein Berechnungsabschnitt wie der Berechnungsabschnitt 260 einen Hashwert H(SS(tn )) der bei S160 erzeugten Momentaufnahme SS(tn ).
-
Bei S180 überprüft der Überprüfungsabschnitt die Momentaufnahme SS(tn ) anhand des überprüften Hashwertes H(CD(tn )). In einer Ausführungsform der vorliegenden Erfindung kann der Überprüfungsabschnitt ermitteln, ob der bei S170 berechnete Hashwert H(SS(tn )) gleich ist wie der bei S130 überprüfte Hashwert H(CD(tn )).
-
Wenn der Überprüfungsabschnitt feststellt, dass der Hashwert H(SS(tn )) gleich ist wie der Hashwert H(CD(tn )), fährt der Überprüfungsabschnitt bei S190 fort. Wenn der Überprüfungsabschnitt feststellt, dass der Hashwert H(SS(tn )) nicht gleich ist wie der Hashwert H(CD(tn )), geht der Überprüfungsabschnitt zu S150 zurück. Bei S150 kann der Abrufabschnitt erneut den Unterschied ΔCD(tn ) von einem oder mehreren anderen ersten Knoten im Pool von ersten Knoten abrufen.
-
Bei S190 speichert der Speicherabschnitt die überprüfte Momentaufnahme SS(tn ). In einer Ausführungsform kann der Speicherabschnitt die Momentaufnahme SS(tn ) als letzte Momentaufnahme speichern. In einer alternativen Ausführungsform kann der Speicherabschnitt den Unterschied ΔCD(tn ) anstatt der/zusätzlich zur Momentaufnahme SS(tn ) speichern. In der Ausführungsform der vorliegenden Erfindung berechnet der Momentaufnahmeknoten eine Momentaufnahme SS(tk ) an einem beliebigen Zeitpunkt tk von einer ursprünglichen Momentaufnahme SS(t1) und ΔCD(t2), ΔCD(t3),..., ΔCD(tk ), wenn der Momentaufnahmeknoten eine Anforderung der Momentaufnahme SS(tk ) von einem Prüfknoten empfängt.
-
Nach dem Arbeitsschritt S190 kann der Momentaufnahmeknoten erneut den Arbeitsschritt S110 durchführen. In einer Ausführungsform der vorliegenden Erfindung kann der Momentaufnahmeknoten regelmäßig die Arbeitsschritte S110 bis S190 durchführen. Der Abrufabschnitt kann beispielsweise mit dem Arbeitsschritt S110 beginnen, nachdem ihm mitgeteilt wurde, dass ein neuer Block (n+1) von einem oder mehreren der ersten Knoten erzeugt wurde.
-
In einer Ausführungsform der vorliegenden Erfindung führt der Momentaufnahmeknoten die Arbeitsschritte S120 bis S140 unter Umständen nicht durch und kann den Hashwert H(CD(tx )) von einem einzelnen ersten Knoten abrufen. In solchen Ausführungsformen der vorliegenden Erfindung können die ersten Knoten mittels eines Konsensalgorithmus einen Konsens in Bezug auf den Hashwert H(CD(tx )) herstellen, bevor der Hashwert H(CD(tx )) zum Momentaufnahmeknoten gesendet wird. Der Abrufabschnitt kann auf diese Weise den Hashwert H(CD(tx )) abrufen, über den durch die Mehrzahl der ersten Knoten ein Konsens erzielt wurde.
-
Gemäß Ausführungsformen der vorliegenden Erfindung, die in Verbindung mit 5 erläutert wurden, müssen die ersten Knoten keine Momentaufnahmen der gemeinsamen Daten speichern, wodurch die von den ersten Knoten benötigten Rechenressourcen verringert werden. Da der Momentaufnahmeknoten darüber hinaus Momentaufnahmen nach der Überprüfung anhand von Hashwerten speichert, kann der Momentaufnahmeknoten gemeinsame Originaldaten als Momentaufnahmen speichern.
-
6 zeigt einen zweiten Ablaufplan gemäß einer Ausführungsform der vorliegenden Erfindung. Als Beispiel wird ein Prüfknoten wie der Prüfknoten 300 beschrieben, der die Arbeitsschritte S210 bis S290 wie in 5 gezeigt durchführt. Der Prüfknoten kann gemeinsame Daten an einem beliebigen Zeitpunkt durch die Arbeitsschritte S210 bis S290 abrufen.
-
Bei S210 empfängt ein Empfangsabschnitt wie der Empfangsabschnitt 320 eine Momentaufnahme am Zeitpunkt tk-m vom Momentaufnahmeknoten. Bei einem Zeitpunkt tk handelt es sich um einen Zeitpunkt, von dem der Prüfknoten eine Momentaufnahme benötigt. Der Zeitpunkt tk-m kann vor dem Zeitpunkt tk liegen. Der Zeitpunkt tk-m kann als dritter Zeitpunkt bezeichnet werden, und der Zeitpunkt tk kann als vierter Zeitpunkt bezeichnet werden.
-
In einer Ausführungsform der vorliegenden Erfindung handelt es sich bei dem Zeitpunkt tk um einen Zeitpunkt, an dem m Blöcke nach dem Zeitpunkt tk-m erzeugt werden. In einer Ausführungsform der vorliegenden Erfindung kann eine Variable m 1 oder eine Ganzzahl größer als 1 sein. So gilt anfänglich für m beispielsweise 1.
-
In einer Ausführungsform der vorliegenden Erfindung übermittelt der Empfangsabschnitt eine Anforderung der Momentaufnahme mit Informationen des Zeitpunkts tk . Ein Bereitstellungsabschnitt wie der Bereitstellungsabschnitt 290 im Momentaufnahmeknoten ruft die Momentaufnahme SS(tk-m ) aus dem Speicherabschnitt 210 ab und übermittelt die Momentaufnahme SS(tk-m ) an den Empfangsabschnitt. Der Empfangsabschnitt des Prüfknotens kann die Momentaufnahme SS(tk-m ) vom Bereitstellungsabschnitt des Momentaufnahmeknotens empfangen.
-
Bei S220 empfängt der Empfangsabschnitt einen Block oder mehrere Blöcke vom Zeitpunkt tk-m bis tk . In einer Ausführungsform der vorliegenden Erfindung kann der Empfangsabschnitt Block(k-m) am Zeitpunkt tk-m empfangen, der (i) eine oder mehrere gemeinsame Transaktionen zwischen den Zeitpunkten tk-m-1 und tk-m und (ii) einen Hashwert H(CD(tk-m )) der gemeinsamen Daten am Zeitpunkt tk-m enthalten kann. Der Empfangsabschnitt kann ferner Block(k-m+1), Block(k-m+2),..., Block(k) empfangen.
-
In einer Ausführungsform der vorliegenden Erfindung kann der Empfangsabschnitt zufällig einen ersten Knoten im Pool von ersten Knoten festlegen und eine Anforderung von Blöcken mit Informationen des Zeitpunkts k-m an den festgelegten ersten Knoten übermitteln. Der festgelegte erste Knoten kann Block(k-m),..., Block(k) zum Prüfknoten übermitteln, und der Empfangsabschnitt des Prüfknotens kann Block(k-m),..., Block(k) empfangen. In einer Ausführungsform der vorliegenden Erfindung kann der Empfangsabschnitt Block(k-m),..., Block(k) von zwei oder mehr ersten Knoten im Pool von ersten Knoten empfangen.
-
Bei S230 berechnet ein Berechnungsabschnitt wie der Berechnungsabschnitt 340 einen Hashwert H(SS(tk-m )) der bei S210 vom Momentaufnahmeknoten abgerufenen Momentaufnahme SS(tk-m ).
-
Bei S240 überprüft ein Ermittlungsabschnitt wie der Ermittlungsabschnitt 360 die bei S210 vom Momentaufnahmeknoten abgerufene Momentaufnahme SS(tk-m ) anhand des/der bei S220 abgerufenen Blocks/Blöcke. In einer Ausführungsform ermittelt der Ermittlungsabschnitt, ob der bei S230 berechnete Hashwert H(SS(tk-m )) gleich ist wie der bei S220 abgerufene Hashwert H(CD(tk-m )) in Block (k-m). In einer Ausführungsform der vorliegenden Erfindung stellt der Ermittlungsabschnitt fest, dass die Überprüfung erfolgreich ist, wenn beide Hashwerte gleich sind, und dass die Überprüfung nicht erfolgreich ist, wenn beide Hashwerte nicht gleich sind.
-
Bei S250 fährt der Ermittlungsabschnitt mit S270 fort, wenn die Überprüfung nicht erfolgreich ist. Der Ermittlungsabschnitt fährt mit S290 fort, wenn die Überprüfung erfolgreich ist.
-
Bei S270 aktualisiert der Ermittlungsabschnitt die Variable m, indem n zu m addiert wird. In einer Ausführungsform der vorliegenden Erfindung kann n 1 oder eine Ganzzahl größer als 1 sein. Der Ermittlungsabschnitt kann mit dem aktualisierten Wert m zu S210 zurückkehren. Dadurch empfängt der Empfangsabschnitt bei der nächsten Iteration von S210 eine Momentaufnahme an einem aktualisierten Zeitpunkt, der vor dem Zeitpunkt liegt, an dem die Momentaufnahme beim vorherigen Schritt S210 vom Momentaufnahmeknoten als Reaktion auf das Feststellen empfangen wurde, dass der Hashwert H(SS(tk-m )) nicht gleich wie der Hashwert H(CD(tk-m )) bei S250 ist. In einer Ausführungsform der vorliegenden Erfindung kann der aktualisierte Zeitpunkt als fünfter Zeitpunkt bezeichnet werden.
-
Bei der nächsten Iteration von S220 empfängt der Empfangsabschnitt einen Block oder mehrere Blöcke auf Grundlage des aktualisierten Zeitpunkts von mindestens einem ersten Knoten des Pools von ersten Knoten und empfängt die Blöcke von einem anderen ersten Knoten als dem ersten Knoten der vorherigen Iteration von S220.
-
Bei S290 erzeugt ein Erzeugungsabschnitt wie der Erzeugungsabschnitt 380 gemeinsame Daten CD(tk ) am Zeitpunkt tk von der bei S210 abgerufenen Momentaufnahme SS(tk-m ) am Zeitpunkt tk-m , und die bei S220 abgerufenen gemeinsame(n) Transaktion(en) zwischen den Zeitpunkten tk und tk-m ist/sind in den Blöcken enthalten. In einer Ausführungsform der vorliegenden Erfindung erzeugt der Erzeugungsabschnitt die gemeinsamen Daten CD(tk ), indem die gemeinsame(n) Transaktion(en) auf die Momentaufnahme SS(tk-m) angewendet wird/werden.
-
Gemäß Ausführungsformen der vorliegenden Erfindung, die in Verbindung mit 6 erläutert werden, kann der Prüfknoten gemeinsame Originaldaten, die er benötigt, an jedem beliebigen Zeitpunkt mit weniger Rechenressourcen abrufen, als dies bei aktuellen Verfahren zum Prüfen gemeinsamer Daten der Fall ist.
-
Gemäß Ausführungsformen der vorliegenden Erfindung, die in Verbindung mit 6 beschrieben werden, kann der Prüfknoten zuerst die Momentaufnahme SS(tk-m ) am Zeitpunkt tk-m vor dem Zeitpunkt tk und Block(k-m),..., Block(k) abrufen, die Momentaufnahme SS(tk-m ) am Zeitpunkt tk-m überprüfen und anschließend die gemeinsamen Daten CD(tk ) am gewünschten Zeitpunkt tk erzeugen.
-
In einigen alternativen Ausführungsformen der vorliegenden Erfindung kann der Prüfknoten die gemeinsamen Daten an einem Zeitpunkt von einer Momentaufnahme an einem späteren Zeitpunkt anstatt von einer Momentaufnahme an einem früheren Zeitpunkt erzeugen. In einer alternativen Ausführungsform der vorliegenden Erfindung kann der Prüfknoten zuerst die Momentaufnahme SS(tk+m) am Zeitpunkt tk+m abrufen, der nach dem Zeitpunkt tk liegt, sowie einen einzelnen Block(k+m) am Zeitpunkt tk+m . Der Block (k+m) kann einen Hashwert H(CD(tk+m)) der gemeinsamen Daten am Zeitpunkt tk+m und eine oder mehrere Transaktionen zwischen den Zeitpunkten tk und tk+m enthalten. Der Prüfknoten kann die Momentaufnahme SS(tk+m) anhand des Hashwertes H(CD(tk+m)) in Block(k+m) überprüfen. Anschließend kann der Prüfknoten die gemeinsamen Daten CD(tk ) am Zeitpunkt tk erzeugen, indem er die Transaktion(en) zwischen tk und tk+m von der Momentaufnahme SS(tk+m) rückgängig macht. Gemäß einer Ausführungsform der vorliegenden Erfindung kann der Prüfknoten die Anzahl der bei S220 abgerufenen Blöcke verringern.
-
Wenn der Ermittlungsabschnitt in einer alternativen Ausführungsform der vorliegenden Erfindung bei S250 feststellt, dass der Hashwert H(SS(tk-m ) nicht gleich wie der Hashwert H(CD(tk-m )) ist, kann der Empfangsabschnitt bei einer späteren Iteration von S210 eine Momentaufnahme an einem aktualisierten Zeitpunkt vor dem Zeitpunkt tk-m vom Momentaufnahmeknoten empfangen. In einer Ausführungsform der vorliegenden Erfindung kann der aktualisierte Zeitpunkt als sechster Zeitpunkt bezeichnet werden. Bei der späteren Iteration von S220 kann der Empfangsabschnitt auch einen Block (mit Hashwert und Transaktion(en)) der gemeinsamen Daten am aktualisierten Zeitpunkt von mindestens einem ersten Knoten des Pools von ersten Knoten empfangen.
-
In einer weiteren alternativen Ausführungsform der vorliegenden Erfindung kann der Prüfknoten zuerst die Momentaufnahme SS(tk-m ) am Zeitpunkt tk-m abrufen, der vor dem gewünschten Zeitpunkt tk liegt, sowie den Block(k) am Zeitpunkt tk . Anschließend kann der Prüfknoten die gemeinsamen Daten CD(tk ) mit der Momentaufnahme SS(tk-m ) und der/den Transaktion(en) in Block(k) erzeugen und die gemeinsamen Daten CD(tk ) auf Grundlage eines Hashwertes der gemeinsamen Daten H(CD(tk )) in Block(k) überprüfen.
-
In einer weiteren alternativen Ausführungsform der vorliegenden Erfindung kann der Prüfknoten zuerst die Momentaufnahme SS(tk+m) am Zeitpunkt tk+m abrufen, der nach dem gewünschten Zeitpunkt tk liegt, sowie den Block(k) am Zeitpunkt tk und den Block(k+m) am Zeitpunkt tk+m . Der Prüfknoten kann die gemeinsamen Daten CD(tk ) mit der Momentaufnahme SS(tk+m) und der/den Transaktion(en) in Block(k+m) erzeugen. Anschließend kann der Prüfknoten die gemeinsamen Daten CD(tk ) anhand eines Hashwertes der gemeinsamen Daten H(CD(tk )) in Block(k) überprüfen.
-
7 zeigt gemäß einer Ausführungsform der vorliegenden Erfindung einen Arbeitsschritt wie den Arbeitsschritt S110 des Momentaufnahmeknotens 200, der einen Hashwert der gemeinsamen Daten abruft. In der Ausführungsform der vorliegenden Erfindung von 7 kann der Momentaufnahmeknoten 200 die Momentaufnahme SS(tn-a ) speichern und gemeinsame Daten H(CD(tn )) am Zeitpunkt tn von den ersten Knoten 110A, 110B und 110C vom Pool von ersten Knoten bei S110 abrufen. Der Momentaufnahmeknoten 200 kann diese H(CD(tn ) von den ersten drei Knoten (110A bis 110C) überprüfen.
-
8 zeigt gemäß einer Ausführungsform der vorliegenden Erfindung einen Arbeitsschritt wie den Arbeitsschritt S150 des Momentaufnahmeknotens 200, der einen Unterschied in den gemeinsamen Daten abruft. In der Ausführungsform der vorliegenden Erfindung von 8 kann der Momentaufnahmeknoten 200 einen Unterschied ΔCD(tn ) vom ersten Knoten 110B im Pool 100 von ersten Knoten abrufen. Der Momentaufnahmeknoten 200 kann eine Momentaufnahme SS(tn ) auf Grundlage einer Momentaufnahme SS(tn-a ) und des Unterschieds ΔCD(tn ) erzeugen.
-
9 zeigt gemäß einer Ausführungsform der vorliegenden Erfindung einen Arbeitsschritt wie den Arbeitsschritt S210 des Prüfknotens 300, der eine Momentaufnahme empfängt. In der Ausführungsform der vorliegenden Erfindung von 9 übermittelt der Prüfknoten 300 einen Zeitpunkt tk an den Momentaufnahmeknoten 200 und empfängt die Momentaufnahme SS(tk-m ) vom Momentaufnahmeknoten 200. In einigen Ausführungsformen kann der Momentaufnahmeknoten 200 die Momentaufnahme SS(tk ) direkt am erforderlichen Zeitpunkt tk bereitstellen.
-
10 zeigt gemäß einer Ausführungsform der vorliegenden Erfindung Arbeitsschritte wie die Arbeitsschritte S220 bis 290 des Prüfknotens 300, der die verbleibenden Arbeitsschritte einer Prüfung durchführt. In der Ausführungsform der vorliegenden Erfindung von 10 kann der Prüfknoten 300 einen Block(k-1) und einen Block(k) vom ersten Knoten 110B im Pool 100 von ersten Knoten empfangen.
-
Block(k-1) enthält einen Hashwert der gemeinsamen Daten H(CD(tk-1)) an tk-1 , einen Hashwert des vorherigen Blocks(k-2) und Transaktionen zwischen den Zeitpunkten tk-2 und tk-1 . Block(k) enthält einen Hashwert der gemeinsamen Daten H(CD(tk )) am Zeitpunkt tk , einen Hashwert des vorherigen Blocks(k-1) und Transaktionen zwischen den Zeitpunkten tk-1 und tk .
-
Anschließend überprüft der Prüfknoten 300 die Momentaufnahme SS(tk-1) anhand eines Hashwertes der gemeinsamen Daten H(CD(tk-1)) in Block(k-1). Der Prüfknoten 300 erzeugt gemeinsame Daten (CD(tk )) am Zeitpunkt tk von der Momentaufnahme SS(tk-1) und den Transaktionen zwischen den Zeitpunkten tk und tk-1 in Block(k).
-
11 zeigt gemäß einer Ausführungsform der vorliegenden Erfindung eine beispielhafte Hardware-Konfiguration eines Computers, der so konfiguriert ist, dass er Cloud-Dienste nutzt. Ein Programm, das im Computer 800 installiert ist, kann den Computer 800 veranlassen, als Vorrichtung zu funktionieren oder Arbeitsschritte, die Vorrichtungen der Ausführungsformen der vorliegenden Erfindung zugehörig sind, oder einen oder mehrere Abschnitte (darunter Module, Komponenten, Elemente usw.) durchzuführen, und/oder den Computer 800 veranlassen, Prozesse der Ausführungsformen der vorliegenden Erfindung oder Schritte davon durchzuführen. Ein solches Programm kann von der CPU 800-12 ausgeführt werden, um den Computer 800 zu veranlassen, bestimmte Arbeitsschritte durchzuführen, die einigen oder allen hierin beschriebenen Blöcken von Ablaufplänen und Blockschaubildern zugehörig sind.
-
Der Computer 800 enthält gemäß der vorliegenden Ausführungsform eine CPU 800-12, einen RAM 800-14, eine Grafik-Steuereinheit 800-16 und eine Anzeigeeinheit 800-18, die über eine Host-Steuereinheit 800-10 miteinander verbunden sind. Der Computer 800 enthält ferner Eingabe-/Ausgabeeinheiten wie eine Datenübertragungsschnittstelle 800-22, ein Festplattenlaufwerk 800-24, ein DVD-ROM-Laufwerk 800-26 und ein IC-Kartenlaufwerk, die über eine Eingabe-/Ausgabesteuereinheit 800-20 mit der Host-Steuereinheit 800-10 verbunden sind. Der Computer enthält des Weiteren traditionelle Eingabe-/Ausgabeeinheiten wie einen ROM 800-30 und eine Tastatur 800-24, die über einen Eingabe-/Ausgabechip 800-40 mit der Eingabe-/Ausgabesteuereinheit 800-20 verbunden sind.
-
Die CPU 800-12 arbeitet nach Programmen, die im ROM 800-30 und RAM 800-14 gespeichert sind und steuert dadurch jede Einheit. Die Grafiksteuereinheit 800-16 ruft von der CPU 800-12 erzeugte Bilddaten in einem Bildspeicher oder Ähnlichem ab, der im RAM 800-14 oder im Bildspeicher selbst bereitgestellt wird, und veranlasst, dass die Bilddaten auf der Anzeigeeinheit 800-18 angezeigt werden.
-
Die Datenübertragungsschnittstelle 800-22 tauscht über ein Netzwerk 800-50 Daten mit anderen elektronischen Einheiten aus. Das Festplattenlaufwerk 800-24 speichert von der CPU 800-12 verwendete Programme und Daten im Computer 800. Das DVD-ROM-Laufwerk 800-26 liest die Programme oder Daten vom DVD-ROM 800-01 und stellt das Festplattenlaufwerk 800-24 mit den Programmen oder Daten über den RAM 800-14 bereit.
-
Das IC-Kartenlaufwerk liest Programme und Daten von einer IC-Karte und/oder schreibt Programme und Daten auf die IC-Karte.
-
Der ROM 800-30 speichert darauf ein Boot-Programm oder Ähnliches, das vom Computer 800 zum Zeitpunkt der Aktivierung durchgeführt wird, und/oder ein Programm abhängig von der Hardware des Computers 800. Der Eingabe-/Ausgabechip 800-40 kann über einen parallelen Anschluss, einen seriellen Anschluss, einen Tastaturanschluss, einen Mausanschluss und Ähnliches verschiedene Eingabe-/Ausgabeeinheiten mit der Eingabe-/Ausgabesteuereinheit 800-20 verbinden.
-
Von durch einen Computer lesbaren Medien wie dem DVD-ROM 800-01 oder der IC-Karte wird ein Programm bereitgestellt. Das Programm wird von durch einen Computer lesbaren Medien gelesen, die auf dem Festplattenlaufwerk 800-24, RAM 800-14 oder ROM 800-30 installiert sind, bei denen es sich ebenfalls um Beispiele für durch einen Computer lesbare Medien handelt, und wird von der CPU 800-12 ausgeführt. Die in diesen Programmen beschriebene Informationsverarbeitung wird in den Computer 800 gelesen und führt zu einer Zusammenarbeit zwischen einem Programm und den vorstehend genannten verschiedenen Arten von Hardware-Ressourcen. Eine Vorrichtung oder ein Verfahren kann erzeugt werden, indem der Betrieb oder die Verarbeitung von Informationen gemäß der Nutzung des Computers 800 durchgeführt wird.
-
Wenn beispielsweise eine Datenübertragung zwischen dem Computer 800 und einer externen Einheit durchgeführt wird, kann die CPU 800-12 ein in den RAM 800-14 geladenes Datenübertragungsprogramm ausführen, um die Datenübertragungsschnittstelle 800-22 anzuweisen, auf der Grundlage der im Datenübertragungsprogramm beschriebenen Verarbeitung eine Datenübertragung zu verarbeiten. Die Datenübertragungsschnittstelle 800-22 liest unter Steuerung der CPU 800-12 Übertragungsdaten, die in einem Übertragungszwischenspeicherbereich in einem Aufzeichnungsmedium wie dem RAM 800-14, dem Festplattenlaufwerk 800-24, dem DVD-ROM 800-01 oder der IC-Karte gespeichert sind, und überträgt die gelesenen Übertragungsdaten zum Netzwerk 800-50 oder schreibt die vom Netzwerk 800-50 empfangenen Empfangsdaten in einem Empfangszwischenspeicherbereich oder Ähnliches in dem Aufzeichnungsmedium.
-
Die CPU 800-12 kann darüber hinaus veranlassen, dass die gesamte oder ein erforderlicher Teil einer Datei oder einer Datenbank in den RAM 800-14 gelesen wird, wobei die Datei oder Datenbank in einem externen Aufzeichnungsmedium wie dem Festplattenlaufwerk 800-24, dem DVD-ROM-Laufwerk 800-26 (DVD-ROM 800-01), der IC-Karte usw. gespeichert ist, und kann verschiedene Arten von Verarbeitung in Verbindung mit den Daten im RAM 800-14 durchführen. Die CPU 800-12 kann die verarbeiteten Daten wieder in das externe Aufzeichnungsmedium schreiben.
-
Verschiedene Arten von Informationen wie beispielsweise verschiedene Arten von Programmen, Daten, Tabellen und Datenbanken können in dem Aufzeichnungsmedium gespeichert werden, um eine Informationsverarbeitung zu durchlaufen. Die CPU 800-12 kann verschiedene Arten von Verarbeitung in Verbindung mit dem aus dem RAM 800-14 gelesenen Daten durchführen, wozu verschiedene Arten von Arbeitsschritten, Informationsverarbeitung, Zustandsbeurteilung, bedingte Verzweigung, unbedingte Verzweigung, Suchen/Ersetzen von Informationen usw. gehören, wie in dieser Offenbarung beschrieben und durch eine Anweisungssequenz von Programmen gekennzeichnet, und kann das Ergebnis zurück in den RAM 800-14 schreiben.
-
Die CPU 800-12 kann darüber hinaus nach Informationen in einer Datei, Datenbank usw. im Aufzeichnungsmedium suchen. Wenn beispielsweise eine Mehrzahl von Einträgen, die jeweils einen Attributwert eines ersten Attributs aufweisen, das einem Attributwert eines zweiten Attributs zugehörig ist, im Aufzeichnungsmedium gespeichert ist, kann die CPU 800-12 aus der Mehrzahl von Einträgen nach einem Eintrag suchen, der der Bedingung entspricht, deren Attributwert des ersten Attributs bezeichnet ist, und den Attributwert des zweiten Attributs lesen, das in dem Eintrag gespeichert ist, wodurch der Attributwert des zweiten Attributs abgerufen wird, das dem ersten Attribut zugehörig ist, das die zuvor festgelegte Bedingung erfüllt.
-
Die vorstehend erläuterten Programm- oder Software-Module können in den durch einen Computer lesbaren Medien im Computer 800 oder in dessen Nachbarschaft gespeichert werden. Ein Aufzeichnungsmedium wie eine Festplatte oder ein RAM in einem Serversystem, das mit einem bestimmten Datenübertragungsnetzwerk oder dem Internet verbunden ist, kann darüber hinaus als die durch einen Computer lesbaren Medien verwendet werden und dem Computer 800 dadurch das Programm über das Netzwerk bereitstellen.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) beinhalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. einen Lichtwellenleiter durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
-
Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
-
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, einen Herstellungsartikel aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
-
Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Ausführungsformen der vorliegenden Erfindung wurden zwar beschrieben, der technische Umfang der Erfindung ist jedoch nicht auf die vorstehend beschriebenen Ausführungsformen beschränkt. Fachleuten ist ersichtlich, dass verschiedene Änderungen und Verbesserungen zu den vorstehend beschriebenen Ausführungsformen hinzugefügt werden können. Aus dem Umfang der Ansprüche ergibt sich ebenfalls, dass die Ausführungsformen mit diesen Änderungen oder Verbesserungen in den technischen Umfang der Erfindung aufgenommen werden können.
-
Die Arbeitsschritte, Verfahren, Schritte und Phasen jedes Prozesses, die von einer Vorrichtung, einem System, einem Programm und einem Verfahren ausgeführt werden, die in den Ansprüchen, Ausführungsformen oder Schaubildern aufgeführt sind, können in beliebiger Reihenfolge ausgeführt werden, solange die Reihenfolge nicht durch „vor“ oder dergleichen angegeben ist und solange die Ausgabe aus einem vorherigen Prozess nicht in einem späteren Prozess verwendet wird. Auch wenn der Ablaufplan anhand von Begriffen wie „zuerst“ oder „als Nächstes“ in den Ansprüchen, Ausführungsformen oder Schaubildern beschrieben wird, bedeutet dies nicht unbedingt, dass der Prozess in dieser Reihenfolge durchgeführt werden muss.
-
Wie vorstehend dargelegt, ermöglichen die Ausführungsformen der vorliegenden Erfindung einer Lernvorrichtung, ein Modell, das den Eingabedaten der Zeitreihen entspricht, dazu zu bringen, eine höhere Ausdrucksfähigkeit und Lernfähigkeit zu haben und den Lernvorgang einfacher durchzuführen.