DE112020004859T5 - UPDATE MANAGEMENT FOR TRANSPORT SOFTWARE - Google Patents

UPDATE MANAGEMENT FOR TRANSPORT SOFTWARE Download PDF

Info

Publication number
DE112020004859T5
DE112020004859T5 DE112020004859.4T DE112020004859T DE112020004859T5 DE 112020004859 T5 DE112020004859 T5 DE 112020004859T5 DE 112020004859 T DE112020004859 T DE 112020004859T DE 112020004859 T5 DE112020004859 T5 DE 112020004859T5
Authority
DE
Germany
Prior art keywords
conveyances
software update
subset
blockchain
conveyance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112020004859.4T
Other languages
German (de)
Inventor
Louis Brugman
Devang H. Parekh
Wilson-Boon Siang Khoo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor North America Inc
Original Assignee
Toyota Motor North America Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/597,770 external-priority patent/US11169795B2/en
Priority claimed from US16/597,786 external-priority patent/US11422792B2/en
Priority claimed from US16/597,796 external-priority patent/US11294662B2/en
Application filed by Toyota Motor North America Inc filed Critical Toyota Motor North America Inc
Publication of DE112020004859T5 publication Critical patent/DE112020004859T5/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Traffic Control Systems (AREA)

Abstract

Ein beispielhafter Betrieb kann eines oder mehrere von Folgendem umfassend: Empfangen eines Software-Updates in einem Beförderungsmittel einer Teilmenge von Beförderungsmitteln, Validieren des Software-Updates auf der Grundlage eines oder mehrerer von Folgendem: eines Zeitraums, in dem das Software-Update genutzt wird, und einer Anzahl von Nutzungen des Software-Updates durch die Teilmenge der Beförderungsmittel, Verbreiten des Software-Updates auf der Grundlage des Validierens an eine weitere Teilmenge von Beförderungsmitteln, wobei die weitere Teilmenge der Beförderungsmittel größer ist als die Teilmenge der Beförderungsmittel.

Figure DE112020004859T5_0000
An example operation may include one or more of the following: receiving a software update in a conveyance of a subset of conveyances, validating the software update based on one or more of: a time period in which the software update is deployed, and a number of usages of the software update by the subset of conveyances, propagating the software update based on the validating to another subset of conveyances, wherein the further subset of conveyances is greater than the subset of conveyances.
Figure DE112020004859T5_0000

Description

HINTERGRUNDBACKGROUND

Fahrzeuge oder Beförderungsmittel, wie zum Beispiel Pkw, Motorräder, Lastwagen, Flugzeuge, Züge usw., erfüllen allgemein auf vielfältigste Weise die Beförderungsbedürfnisse in Bezug auf Fahrgäste und/oder Güter. Funktionen, die sich auf Beförderungsmittel beziehen, können durch verschiedene Computervorrichtungen identifiziert und genutzt werden, wie zum Beispiel ein Smartphone oder ein Computer oder ein Tablet.Vehicles or conveyances, such as automobiles, motorcycles, trucks, airplanes, trains, etc., generally meet the transportation needs of passengers and/or goods in a variety of ways. Functions related to conveyances can be identified and used by various computing devices, such as a smartphone or a computer or a tablet.

Software-Updates für Beförderungsmittel werden allgemein von einem zentralen Server aus durchgeführt, der die Software-Updates an jeden einzelnen Beförderungsmittel-Client-Computer übermittelt. Dazu ist allgemein eine Netzwerkverbindung zur Cloud erforderlich. Die weitreichende Nutzung eines WAN zur Verteilung von Software-Updates ist jedoch ineffizient und möglicherweise nicht sicher. Außerdem wird das Software-Update möglicherweise nicht durch eine hinreichend große Anzahl von Beförderungsmitteln im notwendigen Umfang getestet, bevor es durch den Server versendet wird. Es gibt kein zentralisiertes System, das Software-Update-bezogene Informationen von Millionen Beförderungsmitteln erfassen und sicher und effizient nachverfolgen kann.Software updates for conveyances are generally performed from a central server that pushes the software updates to each individual conveyance client computer. This generally requires a network connection to the cloud. However, extensive use of a WAN to distribute software updates is inefficient and may not be secure. In addition, the software update may not be tested by a sufficiently large number of vehicles to the extent necessary before it is sent through the server. There is no centralized system that can capture and securely and efficiently track software update-related information from millions of vehicles.

Dementsprechend besteht Bedarf an einer gesicherten Verbreitung von Software-Updates für Beförderungsmittel, die auf umfangreichen Tests durch eine große Anzahl von Beförderungsmitteln beruht. Außerdem besteht Bedarf an einer Aufzeichnung Software-Update-bezogener Informationen in einem gemeinsam genutzten Speicher.Accordingly, there is a need for an assured distribution of software updates for conveyances based on extensive testing by a large number of conveyances. There is also a need for a record of software update related information in shared storage.

KURZDARSTELLUNGEXECUTIVE SUMMARY

Eine beispielhafte Ausführungsform kann ein Verfahren bereitstellen, das eines oder mehrere von Folgendem umfasst: Empfangen eines Software-Updates in einem Beförderungsmittel einer Teilmenge von Beförderungsmitteln; Validieren des Software-Updates auf der Grundlage eines oder mehrerer von Folgendem: eines Zeitraums, in dem das Software-Update genutzt wird, und einer Anzahl von Nutzungen des Software-Updates durch die Teilmenge der Beförderungsmittel; Verbreiten des Software-Updates auf der Grundlage des Validierens an eine weitere Teilmenge von Beförderungsmitteln, wobei die weitere Teilmenge der Beförderungsmittel größer ist als die Teilmenge der Beförderungsmittel.An example embodiment may provide a method, comprising one or more of: receiving a software update in a conveyance of a subset of conveyances; validating the software update based on one or more of: a time period in which the software update is deployed and a number of usages of the software update by the subset of conveyances; propagating the software update based on the validating to another subset of conveyances, wherein the further subset of conveyances is greater than the subset of conveyances.

Eine andere beispielhafte Ausführungsform kann ein Verfahren bereitstellen, das eines oder mehrere von Folgendem umfasst: Senden, durch ein Master-Beförderungsmittel, eines ersten Teils eines Software-Updates an ein Beförderungsmittel einer ersten Teilmenge von Beförderungsmitteln, Senden, durch ein Master-Beförderungsmittel, eines zweiten Teils des Software-Updates an ein Beförderungsmittel einer weiteren Teilmenge von Beförderungsmitteln, wenn ein erstes Beförderungsmittel der Teilmenge von Beförderungsmitteln und ein zweites Beförderungsmittel der weiteren Teilmenge von Beförderungsmitteln in der Nähe sind: Veranlassen, dass das erste Beförderungsmittel den ersten Teil des Software-Updates an das zweite Beförderungsmittel sendet, und Veranlassen, dass das zweite Beförderungsmittel den zweiten Teil des Software-Updates an das erste Beförderungsmittel sendet.Another exemplary embodiment may provide a method comprising one or more of: sending, by a master vehicle, a first portion of a software update to a vehicle of a first subset of vehicles, sending, by a master vehicle, a second part of the software update to a means of transport of a further subset of means of transport if a first means of transport of the subset of means of transport and a second means of transport of the further subset of means of transport are in the vicinity: causing the first means of transport to carry out the first part of the software update sends to the second conveyance, and causing the second conveyance to send the second portion of the software update to the first conveyance.

Eine weitere beispielhafte Ausführungsform kann ein Verfahren bereitstellen, das eines oder mehrere von Folgendem umfasst: Empfangen eines Software-Updates in einem Beförderungsmittel, Durchführen einer ersten Validierung des Software-Updates in einer ersten Umgebung, wobei die erste Umgebung eine geringste Menge potenzieller Interaktionen umfasst, und Durchführen einer weiteren Validierung des Software-Updates, wenn die erste Validierung erfolgreich ist, in einer weiteren Umgebung, wobei die weitere Umgebung eine größere Menge potenzieller Interaktionen umfasst als die erste Umgebung.Another example embodiment may provide a method comprising one or more of: receiving a software update in a conveyance, performing a first validation of the software update in a first environment, the first environment including a lowest set of potential interactions, and if the first validation succeeds, performing further validation of the software update in a further environment, wherein the further environment includes a greater set of potential interactions than the first environment.

Eine weitere beispielhafte Ausführungsform kann ein System bereitstellen, das einen Prozessor und einen Speicher umfasst, wobei der Prozessor eines Beförderungsmittels einer Teilmenge von Beförderungsmitteln dafür eingerichtet ist, eines oder mehrere von Folgendem durchzuführen: Empfangen eines Software-Updates; Validieren des Software-Updates auf der Grundlage eines oder mehrerer von Folgendem: eines Zeitraums, in dem das Software-Update genutzt wird, und einer Anzahl von Nutzungen des Software-Updates durch die Teilmenge der Beförderungsmittel; Verbreiten des Software-Updates auf der Grundlage des Validierens an eine weitere Teilmenge von Beförderungsmitteln, wobei die weitere Teilmenge der Beförderungsmittel größer ist als die Teilmenge der Beförderungsmittel.Another exemplary embodiment may provide a system comprising a processor and memory, wherein the processor of a vehicle of a subset of vehicles is configured to perform one or more of: receiving a software update; validating the software update based on one or more of: a time period in which the software update is deployed and a number of usages of the software update by the subset of conveyances; propagating the software update based on the validating to another subset of conveyances, wherein the further subset of conveyances is greater than the subset of conveyances.

Eine weitere beispielhafte Ausführungsform kann ein System bereitstellen, das einen Prozessor und einen Speicher umfasst, wobei der Prozessor eines Master-Beförderungsmittels dafür eingerichtet ist, eines oder mehrere von Folgendem durchzuführen: Senden eines ersten Teils eines Software-Updates an ein Beförderungsmittel einer ersten Teilmenge von Beförderungsmitteln, Senden eines zweiten Teils des Software-Updates an ein Beförderungsmittel einer weiteren Teilmenge von Beförderungsmitteln, wenn ein erstes Beförderungsmittel der Teilmenge von Beförderungsmitteln und ein zweites Beförderungsmittel der weiteren Teilmenge von Beförderungsmitteln in der Nähe sind: Veranlassen, dass das erste Beförderungsmittel den ersten Teil des Software-Updates an das zweite Beförderungsmittel sendet, und Veranlassen, dass das zweite Beförderungsmittel den zweiten Teil des Software-Updates an das erste Beförderungsmittel sendet.Another example embodiment may provide a system comprising a processor and memory, wherein the processor of a master vehicle is configured to perform one or more of: sending a first portion of a software update to a vehicle of a first subset of conveyances, sending a second part of the software update to a conveyance of a further subset of conveyances if a first conveyance of the subset of conveyances and a second conveyance of the further subset of Proximity conveyances are: causing the first conveyance to send the first part of the software update to the second conveyance, and causing the second conveyance to send the second part of the software update to the first conveyance.

Eine weitere beispielhafte Ausführungsform kann ein System bereitstellen, das einen Prozessor und einen Speicher umfasst, wobei der Prozessor dafür eingerichtet ist, eines oder mehrere von Folgendem durchzuführen: Empfangen eines Software-Updates in einem Beförderungsmittel, Durchführen einer ersten Validierung des Software-Updates in einer ersten Umgebung, wobei die erste Umgebung eine geringste Menge potenzieller Interaktionen umfasst, und Durchführen einer weiteren Validierung des Software-Updates, wenn die erste Validierung erfolgreich ist, in einer weiteren Umgebung, wobei die weitere Umgebung eine größere Menge potenzieller Interaktionen umfasst als die erste Umgebung.Another example embodiment may provide a system comprising a processor and memory, the processor configured to perform one or more of: receiving a software update in a conveyance, performing an initial validation of the software update in a vehicle first environment, wherein the first environment includes a lowest set of potential interactions, and if the first validation succeeds, performing further validation of the software update in a further environment, wherein the further environment includes a greater set of potential interactions than the first environment .

Eine weitere beispielhafte Ausführungsform stellt ein nicht-transitorisches computerlesbares Medium zur Verfügung, das Instruktionen umfasst, die, wenn sie durch einen Prozessor eines Beförderungsmittels einer Teilmenge von Beförderungsmitteln gelesen werden, den Prozessor veranlassen, eines oder mehrere von Folgendem durchzuführen: Empfangen eines Software-Updates, Validieren des Software-Updates auf der Grundlage eines oder mehrerer von Folgendem: eines Zeitraums, in dem das Software-Update genutzt wird, und einer Anzahl von Nutzungen des Software-Updates durch die Teilmenge der Beförderungsmittel; Verbreiten des Software-Updates auf der Grundlage des Validierens an eine weitere Teilmenge von Beförderungsmitteln, wobei die weitere Teilmenge der Beförderungsmittel größer ist als die Teilmenge der Beförderungsmittel.Another exemplary embodiment provides a non-transitory computer-readable medium comprising instructions that, when read by a processor of a vehicle of a subset of vehicles, cause the processor to perform one or more of the following: receive a software update , validating the software update based on one or more of: a time period in which the software update is used and a number of times the software update is used by the subset of conveyances; propagating the software update based on the validating to another subset of conveyances, wherein the further subset of conveyances is greater than the subset of conveyances.

Eine weitere beispielhafte Ausführungsform stellt ein nicht-transitorisches computerlesbares Medium bereit, das Instruktionen umfasst, die, wenn sie durch einen Prozessor gelesen werden, den Prozessor veranlassen, eines oder mehrere von Folgendem durchzuführen: Senden eines ersten Teils eines Software-Updates an ein Beförderungsmittel einer ersten Teilmenge von Beförderungsmitteln, Senden eines zweiten Teils des Software-Updates an ein Beförderungsmittel einer weiteren Teilmenge von Beförderungsmitteln, wenn ein erstes Beförderungsmittel der Teilmenge von Beförderungsmitteln und ein zweites Beförderungsmittel der weiteren Teilmenge von Beförderungsmitteln in der Nähe sind: Veranlassen, dass das erste Beförderungsmittel den ersten Teil des Software-Updates an das zweite Beförderungsmittel sendet, und Veranlassen, dass das zweite Beförderungsmittel den zweiten Teil des Software-Updates an das erste Beförderungsmittel sendet.Another exemplary embodiment provides a non-transitory computer-readable medium comprising instructions that, when read by a processor, cause the processor to perform one or more of the following: send a first portion of a software update to a conveyance of a first subset of conveyances, sending a second part of the software update to a conveyance of a further subset of conveyances when a first conveyance of the subset of conveyances and a second conveyance of the further subset of conveyances are nearby: causing the first conveyance send the first part of the software update to the second conveyance, and cause the second conveyance to send the second part of the software update to the first conveyance.

Eine weitere beispielhafte Ausführungsform stellt ein nicht-transitorisches computerlesbares Medium bereit, das Instruktionen umfasst, die, wenn sie durch einen Prozessor gelesen werden, den Prozessor veranlassen, eines oder mehrere von Folgendem durchzuführen: Empfangen eines Software-Updates, Durchführen einer ersten Validierung des Software-Updates in einer ersten Umgebung, wobei die erste Umgebung eine geringste Menge potenzieller Interaktionen umfasst, und Durchführen einer weiteren Validierung des Software-Updates, wenn die erste Validierung erfolgreich ist, in einer weiteren Umgebung, wobei die weitere Umgebung eine größere Menge potenzieller Interaktionen umfasst als die erste Umgebung.Another exemplary embodiment provides a non-transitory computer-readable medium comprising instructions that, when read by a processor, cause the processor to perform one or more of: receiving a software update, performing an initial validation of the software - updates in a first environment, the first environment comprising a lowest set of potential interactions, and if the first validation is successful, performing further validation of the software update in a further environment, the further environment comprising a larger set of potential interactions as the first environment.

Figurenlistecharacter list

  • 1A veranschaulicht ein Beförderungsmittel-Netzschaubild gemäß den beispielhaften Ausführungsformen. 1A 12 illustrates a conveyance network diagram in accordance with exemplary embodiments.
  • 1B veranschaulicht ein beispielhaftes Netzschaubild, das einen Beförderungsmittelknoten umfasst, gemäß beispielhaften Ausführungsformen. 1B 12 illustrates an example network diagram that includes a conveyance node, according to example embodiments.
  • 1C veranschaulicht ein weiteres beispielhaftes Netzschaubild, das einen Beförderungsmittelknoten umfasst, gemäß beispielhaften Ausführungsformen. 1C 12 illustrates another example network diagram that includes a conveyance node, according to example embodiments.
  • 1D veranschaulicht ein weiteres beispielhaftes Netzschaubild, das einen Beförderungsmittelknoten umfasst, gemäß beispielhaften Ausführungsformen. 1D 12 illustrates another example network diagram that includes a conveyance node, according to example embodiments.
  • 2A veranschaulicht eine Blockchain-Architekturausgestaltung gemäß beispielhaften Ausführungsformen. 2A 1 illustrates a blockchain architecture layout according to example embodiments.
  • 2B veranschaulicht eine weitere Blockchain-Ausgestaltung gemäß beispielhaften Ausführungsformen. 2 B FIG. 11 illustrates another blockchain configuration, according to example embodiments.
  • 2C veranschaulicht eine Blockchain-Ausgestaltung zum Speichern von Blockchain-Transaktionsdaten gemäß beispielhaften Ausführungsformen. 2C 10 illustrates a blockchain configuration for storing blockchain transaction data, according to example embodiments.
  • 3A veranschaulicht ein Flussdiagramm gemäß beispielhaften Ausführungsformen. 3A Figure 12 illustrates a flow chart according to example embodiments.
  • 3B veranschaulicht ein weiteres Flussdiagramm gemäß beispielhaften Ausführungsformen. 3B Figure 12 illustrates another flow chart according to example embodiments.
  • 3C veranschaulicht ein weiteres Flussdiagramm gemäß beispielhaften Ausführungsformen. 3C Figure 12 illustrates another flow chart according to example embodiments.
  • 3D veranschaulicht ein weiteres Flussdiagramm gemäß beispielhaften Ausführungsformen. 3D Figure 12 illustrates another flow chart according to example embodiments.
  • 3E veranschaulicht ein weiteres Flussdiagramm gemäß beispielhaften Ausführungsformen. 3E Figure 12 illustrates another flow chart according to example embodiments.
  • 3F veranschaulicht ein weiteres Flussdiagramm gemäß beispielhaften Ausführungs formen. 3F FIG. 11 illustrates another flow chart according to example embodiments.
  • 4A veranschaulicht eine beispielhafte Blockchain-Fahrzeugausgestaltung zum Managen von Blockchain-Transaktionen, die einem Fahrzeug zugeordnet sind, gemäß beispielhaften Ausführungsformen. 4A 12 illustrates an example blockchain vehicle configuration for managing blockchain transactions associated with a vehicle, according to example embodiments.
  • 4B veranschaulicht eine weitere beispielhafte Blockchain-Fahrzeugausgestaltung zum Managen von Blockchain-Transaktionen zwischen einem Service-Center und einem Fahrzeug gemäß beispielhaften Ausführungsformen. 4B 12 illustrates another example blockchain vehicle configuration for managing blockchain transactions between a service center and a vehicle, according to example embodiments.
  • 4C veranschaulicht eine weitere beispielhafte Blockchain Fahrzeugausgestaltung zum Managen von Blockchain-Transaktionen, die zwischen verschiedenen Fahrzeugen durchgeführt werden, gemäß beispielhaften Ausführungsformen. 4C FIG. 12 illustrates another example blockchain vehicle configuration for managing blockchain transactions conducted between different vehicles, according to example embodiments.
  • 5 veranschaulicht beispielhafte Datenblöcke gemäß beispielhaften Ausführungsformen. 5 12 illustrates example data blocks according to example embodiments.
  • 6 veranschaulicht ein beispielhaftes System, das eine oder mehrere der beispielhaften Ausführungen unterstützt. 6 illustrates an example system that supports one or more of the example implementations.

DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION

Es versteht sich, dass die vorliegenden Komponenten, wie sie in den Figuren im vorliegenden Text allgemein beschrieben und veranschaulicht sind, in einer breiten Vielzahl verschiedener Ausgestaltungen angeordnet und ausgelegt werden können. Daher soll die folgende detaillierte Beschreibung der Ausführungsformen mindestens eines Verfahrens, einer Vorrichtung, eines nicht-transitorischen computerlesbaren Mediums und eines Systems, wie sie in den beigefügten Figuren dargestellt sind, nicht den Geltungsbereich der beanspruchten Anmeldung einschränken, sondern ist lediglich für ausgewählte Ausführungsformen repräsentativ.It should be understood that the present components, as generally described and illustrated in the figures herein, can be arranged and configured in a wide variety of different configurations. Therefore, the following detailed description of the embodiments of at least one method, apparatus, non-transitory computer-readable medium, and system as illustrated in the accompanying figures is not intended to limit the scope of the claimed application, but is merely representative of selected embodiments.

Die vorliegenden Merkmale, Strukturen oder Eigenschaften, wie sie in dieser Spezifikation beschrieben sind, können auf beliebige geeignete Weise in einer oder mehreren Ausführungsformen kombiniert werden. Zum Beispiel bezieht sich die Verwendung der Ausdrücke „beispielhafte Ausführungen“, „einige Ausführungsformen“ oder anderer ähnlicher Formulierungen in der gesamten Spezifikation auf die Tatsache, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform enthalten sein kann. Daher bezieht sich das Vorkommen der Ausdrücke „beispielhafte Ausführungsformen“, „in einigen Ausführungsformen“, „in anderen Ausführungsformen“ oder anderer ähnlicher Formulierungen in dieser Spezifikation nicht unbedingt alle auf dieselbe Gruppe von Ausführungsformen und die beschriebenen Merkmale, Strukturen oder Eigenschaften können auf beliebige geeignete Weise in einer oder mehreren Ausführungsformen kombiniert werden. In den Schaubildern kann jede Verbindung zwischen Elementen eine Einweg- und/oder Zweiwegkommunikation erlauben, selbst wenn die gezeigte Verbindung durch einen Einweg- oder einen Zweiwegpfeil dargestellt ist. In der vorliegenden Anmeldung kann ein Beförderungsmittel eines oder mehrere von Pkws, Lastwagen, Motorrädern, Motorrollern, Fahrrädern, Booten, Freizeitfahrzeugen, Flugzeugen und beliebigen Objekten sein, die verwendet werden können, um Menschen und/oder Güter von einem Ort zum anderen zu befördern.Present features, structures, or characteristics as described in this specification may be combined in any suitable manner in one or more embodiments. For example, use of the phrase "exemplary implementations," "some embodiments," or other similar language throughout the specification refers to the fact that a particular feature, structure, or characteristic described in connection with the embodiment , may be included in at least one embodiment. As such, appearances in this specification of the phrases "example embodiments," "in some embodiments," "in other embodiments," or other similar language are not necessarily all referring to the same group of embodiments, and the feature, structure, or characteristic described may refer to any appropriate one Way be combined in one or more embodiments. In the diagrams, each connection between elements may allow for one-way and/or two-way communication, even if the connection shown is represented by a one-way or a two-way arrow. In the present application, a conveyance can be one or more of automobiles, trucks, motorcycles, scooters, bicycles, boats, recreational vehicles, airplanes, and any object that can be used to move people and/or goods from one location to another.

Des Weiteren kann in der Beschreibung von Ausführungsformen zwar der Begriff „Nachricht“ verwendet werden, doch kann die Anwendung auf viele Arten von Netzwerkdaten angewendet werden, wie zum Beispiel ein Paket, einen Frame, ein Datagramm usw. Der Begriff „Nachricht“ umfasst auch Paket, Frame, Datagramm und jegliche Äquivalente davon. Des Weiteren können bestimmte Arten von Nachrichten und Zeichengaben zwar in beispielhaften Ausführungsformen dargestellt sein, jedoch sind sie nicht auf eine bestimmte Art von Nachricht beschränkt und die Anwendung ist nicht auf eine bestimmte Art von Zeichengaben beschränkt.Furthermore, while the term "message" can be used in the description of embodiments, the application can be applied to many types of network data, such as a packet, a frame, a datagram, etc. The term "message" also includes packet , frame, datagram and any equivalent thereof. Furthermore, while particular types of messages and signaling may be illustrated in example embodiments, they are not limited to any particular type of message and the application is not limited to any particular type of signaling.

Beispielhafte Ausführungsformen stellen Verfahren, Systeme, Komponenten, nicht-transitorische computerlesbare Medien, Vorrichtungen und/oder Netzwerke bereit, die mindestens eines von Folgendem bereitstellen: ein Beförderungsmittel (hier auch als ein Fahrzeug bezeichnet), ein Datenerfassungssystem, ein Datenüberwachungssystem, ein Verifizierungssystem, ein Autorisierungssystem, und ein Fahrzeugdatenverteilungssystem. Die Fahrzeugstatuszustandsdaten, die in Form von Kommunikationsaktualisierungsnachrichten, wie zum Beispiel drahtloser Datennetzkommunikation und/oder drahtgebundener Kommunikationsnachrichten, empfangen werden, können empfangen und verarbeitet werden, um Fahrzeug-/Beförderungsmittelstatuszustände zu identifizieren und Rückmeldungen hinsichtlich der Zustandsänderungen eines Beförderungsmittels bereitzustellen. In einem Beispiel kann ein Benutzerprofil auf ein bestimmtes Beförderungsmittel/Fahrzeug angewendet werden, um ein momentanes Fahrzeugereignis, Service-Stopps an Tankstellen und anschließende Fahrzeugmietdienste zu autorisieren.Example embodiments provide methods, systems, components, non-transitory computer-readable media, devices, and/or networks that provide at least one of the following: a conveyance (also referred to herein as a vehicle), a data collection system, a data monitoring system, a verification system authorization system, and a vehicle data distribution system. The vehicle status condition data, received in the form of communication update messages, such as wireless data network communication and/or wired communication messages, may be received and processed to identify vehicle/conveyance status conditions and provide feedback regarding condition changes of a conveyance. In one example, a user profile can be applied to a particular conveyance/vehicle to indicate a current vehicle event, service stops Authorize gas stations and subsequent vehicle rental services.

Innerhalb der Kommunikationsinfrastruktur ist eine dezentralisierte Datenbank ein verteiltes Speichersystem, das mehrere Knoten umfasst, die miteinander kommunizieren. Eine Blockchain ist ein Beispiel einer dezentralisierten Datenbank, die eine unveränderliche, nur Hinzufügungen gestattende Datenstruktur (das heißt ein Distributed Ledger) umfasst, die eingerichtet ist, Datensätze zwischen nicht-vertrauenswürdigen Parteien zu verwalten. Die nicht-vertrauenswürdigen Parteien werden hier als Peers, Knoten oder Peer-Knoten bezeichnet. Jeder Peer verwaltet eine Kopie der Datenbank-Datensätze und kein einzelner Peer kann die Datenbank-Datensätze modifizieren, ohne dass zwischen den verteilten Peers ein Konsens erzielt wird. Zum Beispiel können die Peers ein Konsensprotokoll ausführen, um Blockchain-Speichereinträge zu validieren, die Speichereinträge in Blöcken zu gruppieren und über die Blöcke eine Hash-Kette aufzubauen. Dieser Prozess bildet das Ledger, indem er die Speichereinträge nach Notwendigkeit ordnet, um Konsistenz zu gewährleisten. An einer öffentlichen oder erlaubnisfreien Blockchain kann jeder ohne eine spezielle Identität teilnehmen. Öffentliche Blockchains können Kryptowährungen umfassen und einen Konsens verwenden, der auf verschiedenen Protokollen wie zum Beispiel Proof of Work (PoW) basiert. Andererseits stellt eine erlaubnisbasierte Blockchain-Datenbank ein System bereit, das Interaktionen zwischen einer Gruppe von Entitäten absichern kann, die ein gemeinsames Ziel verfolgen, sich aber gegenseitig nicht vollständig vertrauen oder vertrauen können, wie zum Beispiel Unternehmen, die Geldmittel, Waren, Informationen und dergleichen austauschen. Die vorliegende Anmeldung kann in einer erlaubnisbasierten und/oder einer erlaubnisfreien Blockchain-Umgebung funktionieren.Within the communications infrastructure, a decentralized database is a distributed storage system that includes multiple nodes that communicate with each other. A blockchain is an example of a decentralized database that includes an immutable, addition-only data structure (i.e., a distributed ledger) that is set up to maintain records between untrusted parties. The untrusted parties are referred to herein as peers, nodes or peer-nodes. Each peer maintains a copy of the database records, and no single peer can modify the database records without consensus being reached among the distributed peers. For example, the peers can run a consensus protocol to validate blockchain memory entries, group the memory entries into blocks, and build a hash chain across the blocks. This process forms the ledger by ordering the memory entries as necessary to ensure consistency. Anyone can participate in a public or permissionless blockchain without a specific identity. Public blockchains can include cryptocurrencies and use consensus based on various protocols such as Proof of Work (PoW). On the other hand, a permission-based blockchain database provides a system that can secure interactions between a group of entities that share a common goal but do not or cannot fully trust each other, such as businesses that hold funds, goods, information, and the like exchange. The present application can function in a permission-based and/or a permissionless blockchain environment.

„Intelligente Verträge“ (Smart Contracts) sind vertrauenswürdige verteilte Anwendungen, die manipulationssichere Eigenschaften der gemeinsam genutzten oder verteilten Ledger-Datenbank (das heißt, das Ledger kann in Form einer Blockchain vorliegen) und eine zugrunde liegende Vereinbarung zwischen Mitgliedsknoten synergistisch nutzen, was als eine „Befürwortung“ (Endorsement) oder „Befürwortungsrichtlinie“ (Endorsement Policy) bezeichnet wird. Im Allgemeinen werden Blockchain-Einträge „befürwortet“ (endorsed), bevor sie an die Blockchain überstellt (committed) werden, während Einträge, die nicht befürwortet werden, unbeachtet bleiben. Eine typische Befürwortungsrichtlinie erlaubt es dem ausführbaren Code eines intelligenten Vertrages, Befürworter (Endorser) für einen Eintrag in Form eines Satzes von Peer-Knoten anzugeben, die für die Befürwortungsfunktion erforderlich sind. Wenn ein Client den Eintrag an die in der Befürwortungsrichtlinie angegebenen Peers sendet, so wird der Eintrag ausgeführt, um den Eintrag zu validieren. Nach der Validierung treten die Einträge in eine Ordnungsphase ein, in der ein Konsensprotokoll verwendet wird, um eine geordnete Abfolge von befürworteten Einträgen zu erstellen, die in Blöcken gruppiert sind.“Smart contracts” are trusted distributed applications that synergistically leverage tamper-resistant properties of the shared or distributed ledger database (that is, the ledger may be in the form of a blockchain) and an underlying agreement between member nodes, which is known as a “Endorsement” or “Endorsement Policy”. In general, blockchain entries are "endorsed" before being committed to the blockchain, while entries that are not endorsed are ignored. A typical endorsement policy allows the executable code of a smart contract to specify endorsers for an entry in the form of a set of peer nodes required for the endorsement function. When a client sends the entry to the peers specified in the endorsement policy, the entry is run to validate the entry. After validation, entries enter an ordering phase in which a consensus protocol is used to create an ordered sequence of endorsed entries grouped into blocks.

Knoten sind die Kommunikationseinheiten des Blockchain-Systems. Ein „Knoten“ kann eine logische Funktion in dem Sinne erfüllen, dass mehrere Knoten unterschiedlichen Typs auf demselben physischen Server arbeiten können. Knoten werden in Vertrauensdomänen gruppiert und sind mit logischen Entitäten verknüpft, die sie auf verschiedene Weise kontrollieren. Knoten können verschiedene Typen umfassen, wie zum Beispiel einen Client- oder Vorlage-Client-Knoten, der einem Befürworter (zum Beispiel Peer) eine Eintragsaufruf vorlegt und Eintragsvorschläge an einen Ordnungsdienst (zum Beispiel Ordnungsknoten) rundsendet. Eine andere Art von Knoten ist ein Peer-Knoten, der durch einen Client vorgelegte Einträge empfangen kann, die Einträge überstellt und einen Status und eine Kopie des Ledgers der Blockchain-Einträge verwaltet. Peers können auch die Rolle eines Befürworters haben, obwohl dies keine Bedingung ist. Ein Ordnungsdienstknoten oder Ordner ist ein Knoten, der den Kommunikationsdienst für alle Knoten ausführt und der eine Übermittlungsgarantie implementiert, wie zum Beispiel eine Rundsendung an jeden der Peer-Knoten in dem System, wenn er Einträge überstellt und einen Weltzustand der Blockchains modifiziert, was ein anderer Name für den anfänglichen Blockchain-Eintrag ist, der normalerweise Steuerungs- und Einrichtungsinformationen umfasst.Nodes are the communication units of the blockchain system. A "node" can perform a logical function in the sense that multiple nodes of different types can operate on the same physical server. Nodes are grouped into trust domains and are associated with logical entities that control them in various ways. Nodes can be of various types, such as a client or template client node that submits an entry request to an advocate (e.g., peer) and broadcasts entry proposals to an ordering service (e.g., ordering node). Another type of node is a peer node that can receive entries submitted by a client, submit the entries, and maintain a status and copy of the ledger of blockchain entries. Peers can also have an advocate role, although this is not a requirement. A stewardship node or steward is a node that performs the communications service for all nodes and that implements a delivery guarantee, such as broadcasting to each of the peer nodes in the system when it submits entries and modifies a world state of the blockchains that another Name for the initial blockchain entry, which typically includes control and setup information.

Ein Ledger ist ein sequenzierter, manipulierungssicherer Datensatz aller Zustandsübergänge einer Blockchain. Zustandsübergänge können aus Aufrufen (das heißt Einträgen) von ausführbarem Codes eines intelligenten Vertrages resultieren, die durch beteiligte Parteien (zum Beispiel Client-Knoten, Ordnungsknoten, Befürworter-Knoten, Peer-Knoten usw.) übermittelt werden. Ein Eintrag kann dazu führen, dass ein Satz von Asset-Schlüssel-Wert-Paaren als ein oder mehrere Operanden, wie zum Beispiel Erstellungen, Aktualisieren, Löschen usw., an das Ledger überstellt wird. Das Ledger umfasst eine Blockchain (auch als eine Kette bezeichnet), die zum Speichern eines unveränderlichen, sequenzierten Datensatzes in Blöcken verwendet wird. Das Ledger umfasst auch eine Zustandsdatenbank, die einen momentanen Zustand der Blockchain verwaltet. In der Regel gibt es ein Ledger pro Kanal. Jeder Peer-Knoten verwaltet eine Kopie des Ledgers für jeden Kanal, dem er zugehört.A ledger is a sequenced, tamper-proof record of all state transitions in a blockchain. State transitions may result from calls (ie, entries) of smart contract executable code communicated by involved parties (e.g., client nodes, ordering nodes, advocate nodes, peer nodes, etc.). An entry can result in a set of asset key-value pairs being passed to the ledger as one or more operands, such as creates, updates, deletes, etc. The ledger comprises a blockchain (also known as a chain) used to store an immutable, sequenced record in blocks. The ledger also includes a state database that maintains a current state of the blockchain. Usually there is one ledger per channel. Each peer node maintains a copy of the ledger for each channel to which it belongs.

Eine Kette ist ein Eintrags-Log, das als Hash-verknüpfte Blöcke strukturiert ist, und jeder Block umfasst eine Abfolge von N Einträgen, wobei N mindestens eins ist. Der Block-Header umfasst einen Hash der Einträge des Blocks sowie einen Hash des Headers des vorherigen Blocks. Auf diese Weise können alle Einträge im Ledger sequenziert und kryptografisch miteinander verknüpft werden. Dementsprechend ist es nicht möglich, die Daten des Ledgers zu manipulieren, ohne die Hash-Verknüpfungen aufzubrechen. Ein Hash eines zuletzt hinzugefügten Blockchain-Blocks repräsentiert jeden Eintrag in der Kette, der vor ihm kam, wodurch sichergestellt werden kann, dass sich alle Peer-Knoten in einem gleichbleibenden und vertrauenswürdigen Zustand befinden. Die Kette kann in einem Peer-Knoten-Dateisystem gespeichert werden (das heißt lokal, in angeschlossenem Speicher, in der Cloud usw.), wodurch die „Append-Only“-Beschaffenheit der Blockchain-Arbeitslast effizient unterstützt wird (Append-Only: nur Hinzufügungen zulässig).A chain is a log of entries structured as hashed blocks, and each block comprises a sequence of N entries, where N min at least one is. The block header includes a hash of the block's entries and a hash of the previous block's header. In this way, all entries in the ledger can be sequenced and cryptographically linked. Accordingly, it is not possible to manipulate the ledger's data without breaking the hash links. A hash of a recently added blockchain block represents every entry in the chain that came before it, which can ensure that all peer nodes are in a consistent and trusted state. The chain can be stored in a peer node file system (i.e. local, attached storage, cloud, etc.), efficiently supporting the append-only nature of the blockchain workload additions allowed).

Der momentane Zustand des unveränderlichen Ledgers stellt die neuesten Werte für alle Schlüssel dar, die in dem Ketteneintrags-Log enthalten sind. Da der momentane Zustand die neuesten Schlüsselwerte darstellt, die einem Kanal bekannt sind, wird er manchmal auch als Weltzustand bezeichnet. Aufrufe von ausführbarem Codes eines intelligenten Vertrages führen Einträge anhand der Momentanzustandsdaten des Ledgers aus. Um diese Interaktionen mit ausführbarem Codes eines intelligenten Vertrages effizient zu gestalten, können die neuesten Werte der Schlüssel in einer Zustandsdatenbank gespeichert werden. Die Zustandsdatenbank kann einfach eine indizierte Ansicht des Eintrags-Logs der Kette sein, weshalb sie jederzeit aus der Kette regeneriert werden kann. Die Zustandsdatenbank kann automatisch wiederhergestellt (oder bei Bedarf generiert) werden, wenn der Peer-Knoten gestartet wird und bevor Einträge entgegengenommen werden.The current state of the immutable ledger represents the most recent values for all keys contained in the chain entry log. Because the current state represents the most recent key values known to a channel, it is sometimes referred to as the world state. Calls to smart contract executable code execute entries based on the current state data of the ledger. In order to make these interactions with executable code of a smart contract efficient, the most recent values of the keys can be stored in a state database. The state database can simply be an indexed view of the chain's entry log, so it can be regenerated from the chain at any time. The state database can be restored automatically (or generated on demand) when the peer node starts up and before any entries are accepted.

Eine Blockchain unterscheidet sich von einer herkömmlichen Datenbank dadurch, dass die Blockchain kein zentraler Speicher ist, sondern vielmehr ein dezentralisierter, unveränderlicher und sicherer Speicher, bei dem sich die Knoten an Änderungen der Datensätze im Speicher allesamt beteiligen müssen. Zu einigen Eigenschaften, die der Blockchain inhärent sind und die bei der Implementierung der Blockchain helfen, gehören unter anderem ein unveränderliches Ledger, intelligente Verträge, Sicherheit, Datenschutz, Dezentralisierung, Konsens, Befürwortung, Zugänglichkeit und dergleichen.A blockchain differs from a traditional database in that the blockchain is not a central store, but rather a decentralized, immutable, and secure store where the nodes must all participate in changes to the records in the store. Some properties inherent in the blockchain that help to implement the blockchain include, but are not limited to, an immutable ledger, smart contracts, security, privacy, decentralization, consensus, advocacy, accessibility, and the like.

Beispielhafte Ausführungsformen bieten eine Möglichkeit zur Erbringung eines Fahrzeug-Service für ein bestimmtes Fahrzeug und/oder einen anfragenden Benutzer, der mit einem Benutzerprofil verknüpft ist, das auf das Fahrzeug angewendet wird. Zum Beispiel kann ein Benutzer der Halter eines Fahrzeugs oder der Lenker eines Fahrzeugs sein, das einer anderen Partei gehört. Das Fahrzeug muss möglicherweise in bestimmten Intervallen einem Service unterzogen werden und die Service-Erfordernisse verlangen möglicherweise eine Autorisierung, bevor die Dienste in Anspruch genommen werden können. Außerdem können Service-Zentren in der Nähe befindlichen Fahrzeugen auf der Grundlage des momentanen Routenplans des Fahrzeugs und eines relativen Niveaus der Service-Anforderungen (zum Beispiel sofort, schwer, mittel, gering usw.) Dienste anbieten. Die Fahrzeugerfordernisse können über einen oder mehrere Sensoren überwacht werden, welche die Sensordaten an eine zentrale Controller-Computervorrichtung in dem Fahrzeug melden, was wiederum an einen Management-Server zum Begutachten und Veranlassen von Maßnahmen weitergeleitet wird.Example embodiments provide a way to provide a vehicle service to a particular vehicle and/or a requesting user associated with a user profile applied to the vehicle. For example, a user may be the owner of a vehicle or the operator of a vehicle owned by another party. The Vehicle may require service at certain intervals and service requirements may require authorization before the Services can be accessed. Additionally, service centers may offer services to nearby vehicles based on the vehicle's current route plan and a relative level of service needs (e.g., immediate, heavy, medium, light, etc.). Vehicle needs may be monitored via one or more sensors that report the sensor data to a central controller computing device in the vehicle, which in turn is forwarded to a management server for review and action.

Ein Sensor kann sich in bzw. an einem oder mehreren von einem Innenraum des Beförderungsmittels, einer Außenseite des Beförderungsmittels, einem festen Gegenstand außerhalb des Beförderungsmittels und einem anderen Beförderungsmittel in der Nähe des Beförderungsmittels befinden. Der Sensor kann auch mit der Geschwindigkeit des Beförderungsmittels, dem Bremsen des Beförderungsmittels, der Beschleunigung des Beförderungsmittels, dem Kraftstoffstand, den Service-Erfordernissen, der Gangschaltung des Beförderungsmittels, der Lenkung des Beförderungsmittels und dergleichen in Verbindung stehen. Als ein „Sensor“ ist sich auch eine Vorrichtung zum Beispiel eine mobile Vorrichtung vorstellbar. Außerdem können Sensorinformationen verwendet werden, um festzustellen, ob das Fahrzeug sicher arbeitet und ob der Fahrzeuglenker unerwartete Fahrzeugzustände herbeigeführt hat, wie zum Beispiel während der Phase des Einsteigens in das Fahrzeug. Fahrzeuginformationen, die vor, während und/oder nach dem Betrieb eines Fahrzeugs erfasst werden, können identifiziert und in einer Transaktion in einem gemeinsam genutzten/verteilten Ledger gespeichert werden; diese kann durch ein erlaubniserteilendes Konsortium, und somit auf „dezentralisierte“ Weise, wie zum Beispiel über eine Blockchain-Beteiligungsgruppe, generiert und an das unveränderliche Ledger überstellt werden. Jede interessierte Partei (das heißt Unternehmen, Behörde usw.) möchte möglicherweise die Offenlegung privater Informationen einschränken, weshalb die Blockchain und ihre Unveränderlichkeit die Offenlegung einschränken und Erlaubnisse für jedes konkrete Benutzerfahrzeugprofil verwalten kann. Ein intelligenter Vertrag kann verwendet werden, um eine Vergütung bereitzustellen, eine Benutzerprofilwertung/-einstufung/-begutachtung zu quantifizieren, Fahrzeugereigniserlaubnisse anzuwenden, zu bestimmen, wann ein Service benötigt wird, ein Kollisions- und/oder Verschlechterungsereignis zu identifizieren, ein sicherheitsrelevantes Ereignis zu identifizieren, Parteien des Ereignisses zu identifizieren und eine Verteilung an registrierte Entitäten vorzunehmen, die Zugang zu solchen Fahrzeugereignisdaten suchen. Außerdem können die Ergebnisse identifiziert werden und die notwendigen Informationen können zwischen den registrierten Unternehmen und/oder Personen auf der Grundlage eines „Konsens“-Ansatz, der mit der Blockchain verknüpft ist, gemeinsam genutzt werden. Ein solcher Ansatz ließe sich in einer herkömmlichen zentralisierten Datenbank nicht implementieren.A sensor may be located in one or more of an interior of the vehicle, an exterior of the vehicle, a solid object outside the vehicle, and another vehicle proximate to the vehicle. The sensor may also be associated with vehicle speed, vehicle braking, vehicle acceleration, fuel level, service requirements, vehicle gear shifting, vehicle steering, and the like. A device, for example a mobile device, is also conceivable as a “sensor”. In addition, sensor information may be used to determine whether the vehicle is operating safely and whether the vehicle operator has induced unexpected vehicle conditions, such as during the vehicle boarding phase. Vehicle information collected before, during and/or after operation of a vehicle may be identified and stored in a shared/distributed ledger transaction; this can be generated by a permitting consortium, and thus in a “decentralized” way, such as via a blockchain stakeholder group, and submitted to the immutable ledger. Any interested party (i.e. company, government agency, etc.) may wish to restrict disclosure of private information, which is why the blockchain and its immutability can restrict disclosure and manage permissions for each concrete user vehicle profile. A smart contract can be used to provide compensation, quantify a user profile score/ranking/review, apply vehicle event permits, determine when service is needed, identify a collision and/or degradation event, identify a safety-related event to identify parties to the event and distribute to registered entities seeking access to such vehicle event data. Also, the results can be identified and the necessary information can be shared between the registered companies and/or individuals based on a “consensus” approach linked to the blockchain. Such an approach could not be implemented in a traditional centralized database.

Jedes autonome Fahrsystem basiert auf einem ganzen Software-Paket und einer Anordnung von Sensoren. Maschinelles Lernen, Lidar-Projektoren, Radar und Ultraschallsensoren arbeiten alle zusammen, um eine lebendige Karte der Welt zu erstellen, in der ein selbstfahrendes Auto navigieren kann. Die meisten Unternehmen, die sich am Wettlauf um die vollständige Autonomie beteiligen, stützen sich auf die gleichen technologischen Grundlagen von Lidar + Radar + Kameras + Ultraschall, mit einigen wenigen bemerkenswerten Ausnahmen.Every autonomous driving system is based on an entire software package and an array of sensors. Machine learning, lidar projectors, radar and ultrasonic sensors all work together to create a living map of the world for a self-driving car to navigate. Most companies entering the race to full autonomy rely on the same technological foundations of lidar + radar + cameras + ultrasound, with a few notable exceptions.

In einer anderen Ausführungsform werden GPS, Karten und andere Kameras und Sensoren in einem autonomen Fahrzeug ohne Lidar verwendet, da Lidar oft als teuer und unnötig angesehen wird. Forscher haben festgestellt, dass Stereokameras eine kostengünstige Alternative zur teureren Lidar-Funktionalität sind.In another embodiment, GPS, maps, and other cameras and sensors are used in an autonomous vehicle without lidar, since lidar is often considered expensive and unnecessary. Researchers have found that stereo cameras are a cost-effective alternative to more expensive lidar functionality.

Die vorliegende Anmeldung umfasst in bestimmten Ausführungsformen die Autorisierung eines Fahrzeugs für einen Service über ein automatisiertes und schnelles Authentifizierungsregime. Zum Beispiel kann das Heranfahren an eine Ladestation oder eine Zapfsäule durch einen Fahrzeuglenker durchgeführt werden, und die Autorisierung zum Empfangen von Ladung oder Kraftstoff kann ohne Verzögerungen erfolgen, sofern die Autorisierung durch die Tankstelle empfangen wird. Ein Fahrzeug kann ein Kommunikationssignal bereitstellen, das als eine Identifikation eines Fahrzeugs dient, das ein momentan aktives Profil aufweist, das mit einem Account verknüpft ist, der autorisiert ist, einen Fahrzeugservice zu akzeptieren, der später durch eine Vergütung beglichen werden kann. Es können zusätzliche Maßnahmen ergriffen werden, um eine weitere Authentifizierung vorzunehmen. Zum Beispiel kann ein weiterer Identifikator von der Vorrichtung des Benutzers drahtlos an das Service-Center gesendet werden, um den ersten Autorisierungsvorgang zwischen dem Beförderungsmittel und dem Service-Center durch einen zusätzlichen Autorisierungsvorgang zu ersetzen oder zu ergänzen.The present application, in certain embodiments, includes authorizing a vehicle for a service via an automated and rapid authentication regime. For example, approaching a charging station or fuel pump can be performed by a vehicle operator and authorization to receive charge or fuel can be done without delays, provided authorization is received by the fuel station. A vehicle may provide a communication signal that serves as an identification of a vehicle having a currently active profile associated with an account authorized to accept vehicle service that may later be paid for through a fee. Additional measures can be taken to perform further authentication. For example, another identifier can be wirelessly sent from the user's device to the service center to replace or supplement the initial authorization process between the conveyance and the service center with an additional authorization process.

Gemeinsam genutzte und empfangene Daten können in einer Datenbank gespeichert werden, die Daten in einer einzigen Datenbank (zum Beispiel einem Datenbankserver) und allgemein an einem einzelnen speziellen Ort verwaltet. Dieser Ort ist oft ein Zentralcomputer, zum Beispiel eine zentrale Desktop-Verarbeitungseinheit (CPU), eine Server-CPU oder ein Großrechner. Auf Informationen, die in einer zentralisierten Datenbank gespeichert sind, kann in der Regel von mehreren verschiedenen Punkten aus zugegriffen werden. Eine zentralisierte Datenbank ist einfach zu verwalten, zu pflegen und zu kontrollieren, insbesondere für Sicherheitszwecke, da sie sich nur an einem einzigen Ort befindet. Innerhalb einer zentralisierten Datenbank wird die Datenredundanz minimiert, da ein einziger Speicherort aller Daten auch bedeutet, dass ein gegebener Datensatz nur einen einzigen primären Datensatz aufweist.Shared and received data can be stored in a database that manages data in a single database (e.g., a database server) and generally in a single dedicated location. This location is often a central computer, such as a desktop central processing unit (CPU), server CPU, or mainframe. Information stored in a centralized database can typically be accessed from several different points. A centralized database is easy to manage, maintain and control, especially for security purposes, as it is in a single location. Within a centralized database, data redundancy is minimized because a single location for all data also means that any given record has only a single primary record.

Gemäß den beispielhaften Ausführungsformen wird die Verbreitung eines Software-Updates an Fahrzeuge ohne den Einsatz von WAN-Technologie bereitgestellt. Eine beispielhafte Ausführungsform erlaubt es, dass das Software-Update erst nach der Durchführung eines Tests durch eine erste Menge von Beförderungsmitteln verbreitet wird. Der Test kann über einen Zeitraum oder über eine Anzahl von Ausführungen des Software-Update-Codes hinweg durchgeführt werden. Wenn ein Test der Software fehlschlägt, so werden die Beförderungsmittel alarmiert und die Software in den Beförderungsmitteln kann auf eine frühere Softwareversion zurückgesetzt werden.According to the exemplary embodiments, the distribution of a software update to vehicles is provided without using WAN technology. An exemplary embodiment allows the software update to be propagated through a first set of conveyances only after a test has been performed. The test can be run over a period of time or over a number of executions of the software update code. If a test of the software fails, the conveyances are alerted and the software in the conveyances can be rolled back to a previous software version.

In einer anderen Ausführungsform kann ein Master-Beförderungsmittelsystem zusätzliche Sicherheit bei der Verbreitung von Software-Updates an Fahrzeuge bieten, indem es das Software-Update in mindestens zwei Teile aufteilt und die Teile des Software-Updates zu verschiedenen Zeiten und/oder von verschiedenen Quellen versendet. In einer beispielhaften Ausführungsform kann das Software-Update zuerst von einem Master-Beförderungsmittelsystem gesendet werden. Die beispielhafte Ausführungsform kann eine dezentralisierte Verbreitung der Software-Updates mit Authentifizierung des Updates über eine Blockchain-Technologie bereitstellen.In another embodiment, a master conveyance system may provide additional security in propagating software updates to vehicles by splitting the software update into at least two parts and sending the parts of the software update at different times and/or from different sources . In an exemplary embodiment, the software update may be sent first from a master conveyance system. The exemplary embodiment may provide decentralized distribution of the software updates with authentication of the update via blockchain technology.

Gemäß den beispielhaften Ausführungsformen kann ein Master-Beförderungsmittel anhand der Eigenschaften des Beförderungsmittels (zum Beispiel der Sicherheitsstufe des Beförderungsmittels, des Alters des Beförderungsmittels, der Hardware in dem Beförderungsmittel, die eingerichtet ist, die Software ordnungsgemäß auszuführen, des Zustands des Beförderungsmittels, der Eigenschaften der Benutzer/Insassen des Beförderungsmittels, der Nutzung von Funktionsmerkmalen in dem oder im Zusammenhang mit dem Beförderungsmittel) bestimmen, welcher Teil des Software-Updates an welches Beförderungsmittel gesendet wird. Das Update kann auf der Grundlage der wahrscheinlichen Nutzung des Updates bereitgestellt werden, zum Beispiel, welches Beförderungsmittel das Software-Update besser testen/verwenden kann. In einem Beispiel kann ein Fahrzeug 1 einen ersten Teil des Updates (ABC) und ein Fahrzeug 2 einen anderen Teil des Updates (ABC') von demselben Master-Beförderungsmittel erhalten. Das Software-Update kann in mehr als 2 Teile aufgeteilt werden. Zum Beispiel können einige Beförderungsmittel 2 Teile, einige 3 Teile und einige n Teile erhalten. Das Master-Beförderungsmittel kann eine höhere Sicherheitsstufe aufweisen als die Teilmenge von Beförderungsmitteln und die weitere Teilmenge von Beförderungsmitteln. Jegliche Probleme mit dem Software-Update können an das Master-Beförderungsmittel zurückgemeldet werden (das sie an einen zentralen Server zurückmelden kann). Wenn ein Problem mit einem beliebigen Teil oder mit dem zusammengesetzten ersten und zweiten Teil des Updates auftritt, so kann das Master-Beförderungsmittel in eine Nähe des problembehafteten Beförderungsmittels gebracht werden und kann das Beförderungsmittel überwachen, um das Problem zu ermitteln und zu lösen.According to the exemplary embodiments, a master conveyance can be determined based on the characteristics of the conveyance (for example, the security level of the conveyance, the age of the conveyance, the hardware in the conveyance that is set up to run the software properly, the state of the conveyance, the characteristics of the users/occupants of the conveyance, the use of functional features in or in connection with the conveyance) determine which part of the software update which means of transport is sent. The update may be provided based on the likely usage of the update, for example which means of transport is better able to test/use the software update. In an example, a vehicle 1 may receive a first part of the update (ABC) and a vehicle 2 another part of the update (ABC') from the same master conveyance. The software update can be divided into more than 2 parts. For example, some conveyances may receive 2 pieces, some 3 pieces, and some n pieces. The master conveyance may have a higher security level than the subset of conveyances and the further subset of conveyances. Any problems with the software update can be reported back to the master vehicle (which can report them back to a central server). If a problem occurs with any part or with the composite first and second parts of the update, the master vehicle can be brought into close proximity to the problematic vehicle and can monitor the vehicle to determine and solve the problem.

In einer weiteren beispielhaften Ausführungsform arbeitet das Beförderungsmittel, nachdem die Software-Updates empfangen, zusammengestellt und ausgeführt wurden, weiterhin mit der alten Software-Version und verwendet zeitweise die neue aktualisierte Software in den potenziell am wenigsten problematischen Situationen. Wenn zum Beispiel das Update zum Aktualisieren einer Bremssoftware dient, so kann das Beförderungsmittel die aktualisierte Software verwenden, wenn in der Fahrumgebung nur sehr wenig Verkehr herrscht (und keine Fußgänger und/oder Objekte präsent sind). Sobald die aktualisierte Software in dieser Fahrumgebung validiert ist, kann das Beförderungsmittel die aktualisierte Software in einer anderen, potenziell problematischen Fahrumgebung (zum Beispiel mit mehr Verkehr, Fußgängern und/oder Objekten) verwenden. Gemäß der beispielhaften Ausführungsform kann es sein, dass der Fahrer des Beförderungsmittels die Funktionalität der Software-Update-Management-Anwendung gar nicht kennt. Das System des Beförderungsmittels kann die Software-Updates in verschiedenen Umgebungen schrittweise testen und kann bei Bedarf zur früheren Version der Software zurückkehren.In another exemplary embodiment, after the software updates are received, assembled, and implemented, the vehicle continues to operate with the old software version and intermittently uses the new updated software in potentially least problematic situations. For example, if the update is to update braking software, the vehicle may use the updated software when the driving environment is very light traffic (and no pedestrians and/or objects are present). Once the updated software is validated in that driving environment, the vehicle may use the updated software in another potentially problematic driving environment (e.g., with more traffic, pedestrians, and/or objects). According to the exemplary embodiment, the vehicle driver may not be aware of the functionality of the software update management application. The vehicle system can gradually test the software updates in different environments and can revert to the previous version of the software if necessary.

In einer weiteren Ausführungsform bestimmt das Master-Beförderungsmittel anhand der Eigenschaften des Beförderungsmittels (zum Beispiel der Sicherheitsstufe des Beförderungsmittels, des Alters des Beförderungsmittels, der Hardware in dem Beförderungsmittel, die eingerichtet ist, die Software ordnungsgemäß auszuführen, des Zustands des Beförderungsmittels, der Eigenschaften der Benutzer/Insassen des Beförderungsmittels, der Nutzung von Funktionsmerkmalen in dem oder im Zusammenhang mit dem Beförderungsmittel), welcher Teil an welches Beförderungsmittel gesendet wird. Das Update kann auf der wahrscheinlichen Nutzung des Updates basieren, zum Beispiel, welches Beförderungsmittel die Software besser testen/verwenden kann.In another embodiment, the master conveyance determines based on the characteristics of the conveyance (e.g., the security level of the conveyance, the age of the conveyance, the hardware in the conveyance that is set up to run the software properly, the state of the conveyance, the characteristics of the user/occupants of the means of transport, the use of functional features in or in connection with the means of transport), which part is sent to which means of transport. The update may be based on the likely usage of the update, for example which means of transport is better able to test/use the software.

In einer weiteren Ausführungsform können verschiedene Fahrzeuge die Teile der Software anhand der Uhrzeit oder des Tages ihrer Übermittlung oder anhand von Eigenschaften des Fahrzeugs und/oder der Software und/oder des Benutzers zusammenstellen. Zum Beispiel kann Fahrzeug 1 einen ersten Teil (ABC) erhalten und gleich die nächste Übertragung an Fahrzeug 2 kann einen ersten Teil (ABC') vom selben Master-Beförderungsmittel erhalten (das heißt, der erste Teil kann ein anderer sein).In another embodiment, different vehicles may assemble the pieces of software based on the time or date of their submission or based on characteristics of the vehicle and/or the software and/or the user. For example, vehicle 1 may receive a first part (ABC) and the same next transmission to vehicle 2 may receive a first part (ABC') from the same master conveyance (ie the first part may be different).

In einer weiteren Ausführungsform kann das Software-Update in mehr als 2 Teile aufgeteilt werden. Manche Beförderungsmittel könnten 2 Teile erhalten, manche 3, manche n.In another embodiment, the software update can be divided into more than 2 parts. Some conveyances could get 2 parts, some 3, some n.

In einer weiteren Ausführungsform umfasst das Master-Beförderungsmittel eine oder mehrere von einer Sicherheitsstufe, die höher ist als die Teilmenge von Beförderungsmitteln und die weitere Teilmenge von Beförderungsmitteln, der erste Teil des Software-Updates und der zweite Teil des Software-Updates.In a further embodiment, the master carriage comprises one or more of a security level higher than the subset of carriages and the further subset of carriages, the first part of the software update and the second part of the software update.

In einer weiteren Ausführungsform werden alle Probleme mit der Software an das Master-Beförderungsmittel zurückgemeldet (das sie an einen zentralen Server zurückmelden kann).In another embodiment, any problems with the software are reported back to the master vehicle (which can report them back to a central server).

In einer weiteren Ausführungsform kann sich das Master-Beförderungsmittel - wenn ein Problem mit einem Teil des Updates oder mit dem zusammengesetzten ersten und zweiten Teil auftritt - in einer Nähe des problembehafteten Beförderungsmittels befinden und das Problem überwachen und darauf zugreifen.In a further embodiment, when a problem occurs with a part of the update or with the assembled first and second parts, the master vehicle can be located in a vicinity of the problem vehicle and monitor and access the problem.

1A veranschaulicht ein Beförderungsmittel-Netzschaubild 100 gemäß den beispielhaften Ausführungsformen. Gemäß einer beispielhaften Ausführungsform kann der Prozessor 104' eines Beförderungsmittels einer Teilmenge von Beförderungsmitteln (zum Beispiel 105) dafür eingerichtet sein, ein Software-Update zu empfangen. Das Software-Update kann durch einen Master-Beförderungsmittelknoten (zum Beispiel 102) bereitgestellt werden. Der Prozessor 104' kann das Software-Update auf der Grundlage eines Zeitraums validieren, in dem das Software-Update durch das Beförderungsmittel (zum Beispiel 105) verwendet wird. In einem Beispiel kann der Prozessor 104' das Software-Update auf der Grundlage einer Anzahl von Nutzungen des Software-Updates durch die Teilmenge der Beförderungsmittel (zum Beispiel 105) validieren. Der Prozessor 104' kann das Software-Update auf der Grundlage des Validierens an eine weitere Teilmenge von Beförderungsmitteln (zum Beispiel 107) verbreiten. Die Teilmenge der Beförderungsmittel 107 ist größer als die Teilmenge der Beförderungsmittel 105. 1A 12 illustrates a conveyance network diagram 100 in accordance with the exemplary embodiments. According to an exemplary embodiment, the processor 104' of a conveyance of a subset of conveyances (e.g. 105) may be configured to receive a software update. The software update may be provided by a master conveyance node (e.g., 102). The processor 104' may validate the software update based on a time period in which the software update is provided by the carrier agent (e.g. 105) is used. In one example, the processor 104' may validate the software update based on a number of usages of the software update by the subset of conveyances (e.g., 105). The processor 104' may propagate the software update to another subset of conveyances (e.g., 107) based on the validating. The subset of means of transport 107 is larger than the subset of means of transport 105.

Gemäß einer weiteren beispielhaften Ausführungsform kann der Prozessor 104 eines Master-Beförderungsmittels 102 dafür eingerichtet sein, einen ersten Teil eines Software-Updates an ein Beförderungsmittel einer ersten Teilmenge von Beförderungsmitteln 105 zu senden. Der Prozessor 104 des Master-Beförderungsmittels 102 kann einen zweiten Teil des Software-Updates an ein Beförderungsmittel einer weiteren Teilmenge von Beförderungsmitteln 107 senden. Wenn sich dann ein erstes Beförderungsmittel der Teilmenge der Beförderungsmittel 105 und ein zweites Beförderungsmittel der weiteren Teilmenge der Beförderungsmittel 107 in einer Nähe befinden, so kann der Prozessor 104 einen Befehl an das erste Beförderungsmittel 105 senden, den ersten Teil des Software-Updates an das zweite Beförderungsmittel 107 zu senden. Anschließend kann der Prozessor 104 einen Befehl an das zweite Beförderungsmittel senden, den zweiten Teil des Software-Updates an das erste Beförderungsmittel 105 zu senden. Auf diese Weise können die Prozessoren 104' und 104" der jeweiligen Beförderungsmittel 105 und 107 ein vollständiges Software-Update zusammenstellen.According to another exemplary embodiment, the processor 104 of a master conveyance 102 may be configured to send a first part of a software update to a conveyance of a first subset of conveyances 105 . The processor 104 of the master carriage 102 may send a second portion of the software update to a carriage of another subset of carriages 107 . Then, when a first conveyance of the subset of conveyances 105 and a second conveyance of the further subset of conveyances 107 are in proximity, the processor 104 can send a command to the first conveyance 105, the first part of the software update to the second Transport 107 to send. The processor 104 can then send a command to the second conveyance to send the second part of the software update to the first conveyance 105 . In this way, the processors 104' and 104'' of the respective conveyances 105 and 107 can compile a complete software update.

Gemäß einer weiteren beispielhaften Ausführungsform kann der Prozessor 104' (oder 104") dafür eingerichtet sein, ein Software-Update (zum Beispiel von dem Master-Beförderungsmittelknoten 102) zu empfangen und eine erste Validierung des Software-Updates in einer ersten Umgebung durchzuführen. Die erste Umgebung kann einen kleinsten Betrag potenzieller Interaktionen umfassen (minimaler Verkehr, keine Fußgänger, normale Wetterbedingungen usw.). Dann kann der Prozessor 104' (oder 104") eine weitere Validierung des Software-Updates durchführen, wenn die erste Validierung in einer weiteren Umgebung erfolgreich ist. Die weitere Umgebung kann einen größeren Betrag potenzieller Interaktionen umfassen als die erste Umgebung (zum Beispiel mehr Verkehr, Fußgänger, schwierige Wetterbedingungen usw.).According to another exemplary embodiment, the processor 104' (or 104'') may be configured to receive a software update (e.g., from the master conveyance node 102) and perform a first validation of the software update in a first environment The first environment may include a minimal amount of potential interactions (minimal traffic, no pedestrians, normal weather conditions, etc.). Then the processor 104' (or 104") may perform another validation of the software update if the first validation is in another environment is successful. The wider environment may include a greater amount of potential interactions than the first environment (e.g., more traffic, pedestrians, difficult weather conditions, etc.).

1B veranschaulicht ein Netzwerkschaubild zum Managen von Software-Updates. Unter Bezug auf 1B umfasst das Netzwerkschaubild 111 eine Teilmenge von Beförderungsmittelknoten 102, die mit einer anderen Teilmenge von Beförderungsmittelknoten 105 über ein Blockchain-Netzwerk 106 verbunden sind. Die Beförderungsmittelknoten 102 und 105 können Beförderungsmittel/Fahrzeuge darstellen. Das Blockchain-Netzwerk 106 kann ein Ledger 108 zum Speichern von Daten aufweisen, wie zum Beispiel Software-Update-bezogene Daten, die Zeitstempel der Software-Updates umfassen. Der Beförderungsmittelknoten 102 kann mit anderen Teilmengen der Beförderungsmittelknoten verbunden sein (nicht gezeigt). 1B illustrates a network diagram for managing software updates. Referring to 1B the network diagram 111 comprises a subset of conveyance nodes 102 connected to another subset of conveyance nodes 105 via a blockchain network 106 . Conveyance nodes 102 and 105 may represent conveyances/vehicles. The blockchain network 106 may include a ledger 108 for storing data, such as software update-related data, including timestamps of the software updates. The conveyance node 102 may be connected to other subsets of conveyance nodes (not shown).

Obgleich dieses Beispiel nur einen einzelnen Beförderungsmittelknoten 102 detailliert beschreibt, können auch mehrere solcher Knoten mit der Blockchain 106 verbunden sein. Es versteht sich, dass der Beförderungsmittelknoten 102 zusätzliche Komponenten umfassen kann und dass einige der hier beschriebenen Komponenten weggelassen und/oder modifiziert werden können, ohne vom Geltungsbereich des hier offenbarten Beförderungsmittelknotens 102 abzuweichen. Der Beförderungsmittelknoten 102 kann eine Computervorrichtung oder einen Servercomputer oder dergleichen aufweisen und kann einen Prozessor 104 umfassen, der ein halbleiterbasierter Mikroprozessor, eine zentrale Verarbeitungseinheit (CPU), ein anwendungsspezifischer integrierter Schaltkreis (ASIC), ein feldprogrammierbares Gate-Array (FPGA) und/oder eine andere Hardware-Vorrichtung sein kann. Obgleich nur ein einziger Prozessor 104 gezeigt ist, versteht es sich, dass der Beförderungsmittelknoten 102 auch mehrere Prozessoren, mehrere Kerne oder dergleichen umfassen kann, ohne vom Geltungsbereich des Beförderungsmittelknotensystems 102 abzuweichen.Although this example only details a single conveyance node 102, multiple such nodes may be connected to the blockchain 106 as well. It is understood that the carriage node 102 may include additional components and that some of the components described herein may be omitted and/or modified without departing from the scope of the carriage node 102 disclosed herein. Conveyor node 102 may comprise a computing device or server computer, or the like, and may include a processor 104, which may be a semiconductor-based microprocessor, a central processing unit (CPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and/or may be another hardware device. Although only a single processor 104 is shown, it should be understood that the conveyance node 102 may include multiple processors, multiple cores, or the like without departing from the scope of the conveyance node system 102 .

Der Beförderungsmittelknoten 102 kann auch ein nicht-transitorisches computerlesbares Medium 112 umfassen, auf dem maschinenlesbare Instruktionen gespeichert sein können, die durch den Prozessor 104 ausgeführt werden können. Beispiele für maschinenlesbare Instruktionen sind als 114-118 gezeigt und werden unten noch näher besprochen. Beispiele für das nicht-transitorische computerlesbare Medium 112 können eine elektronische, magnetische, optische oder sonstige physische Speichervorrichtung sein, die ausführbare Instruktionen umfasst oder speichert. Zum Beispiel kann das nicht-transitorische computerlesbare Medium 112 ein RAM-Speicher (Random Access Memory), ein EEPROM-Speicher (Electrically Erasable Programmable Read-Only Memory), eine Festplatte, eine optische Disk oder eine andere Art von Speichervorrichtung sein.Conveyance node 102 may also include a non-transitory computer-readable medium 112 on which machine-readable instructions executable by processor 104 may be stored. Examples of machine-readable instructions are shown as 114-118 and are discussed in more detail below. Examples of non-transitory computer-readable medium 112 may be an electronic, magnetic, optical, or other physical storage device that includes or stores executable instructions. For example, the non-transitory computer-readable medium 112 may be random access memory (RAM), electrically erasable programmable read-only memory (EEPROM), a hard disk, an optical disk, or another type of storage device.

Der Prozessor 104 kann die maschinenlesbaren Instruktionen 114 ausführen, um ein Software-Update in dem Beförderungsmittel 104 zu empfangen. Jedes der Beförderungsmittel 102 und 105 kann als Netzwerk-Peer (das heißt Knoten) in einer Blockchain 106 dienen. Wie oben besprochen, kann das Blockchain-Ledger 108 Software-Update-bezogene Transaktionen speichern. Das Blockchain 106-Netzwerk kann dafür eingerichtet sein, einen oder mehrere intelligente Verträge zu verwenden, die sich in den Beförderungsmitteln (das heißt Knoten) 102 befinden, die Transaktionen für andere teilnehmende Beförderungsmittelknoten 105 verwalten können. Der Beförderungsmittelknoten 102 kann die Informationen an die Blockchain 106 übermitteln, um im Ledger 108 gespeichert zu werden.The processor 104 can execute the machine-readable instructions 114 to receive a software update in the vehicle 104 . Each of the conveyances 102 and 105 can function as a network peer (i.e. node) in a Blockchain 106 serve. As discussed above, the blockchain ledger 108 can store software update related transactions. The blockchain 106 network may be configured to use one or more smart contracts residing on the conveyances (ie, nodes) 102 that may manage transactions for other participating conveyance nodes 105 . The conveyance node 102 may transmit the information to the blockchain 106 for storage in the ledger 108 .

Der Prozessor 104 kann die maschinenlesbaren Instruktionen 116 ausführen, um das Software-Update zu validieren. Das Software-Update kann auf der Grundlage eines Zeitraums, in dem das Software-Update genutzt wird, und einer Anzahl von Nutzungen des Software-Updates durch die Teilmenge der Beförderungsmittel 102 validiert werden. Der Prozessor 104 kann die maschinenlesbaren Instruktionen 118 ausführen, um das Software-Update auf der Grundlage der Validierung an eine weitere Teilmenge von Beförderungsmitteln (zum Beispiel 105) zu verbreiten. Die weitere Teilmenge der Beförderungsmittel 105 ist größer als die Teilmenge der Beförderungsmittel 102.The processor 104 can execute the machine-readable instructions 116 to validate the software update. The software update may be validated based on a time period during which the software update is used and a number of uses of the software update by the conveyance subset 102 . The processor 104 may execute the machine-readable instructions 118 to propagate the software update to another subset of conveyances (e.g., 105) based on the validation. The further subset of means of transport 105 is larger than the subset of means of transport 102.

1C veranschaulicht ein Netzwerkschaubild zum Managen von Beförderungsmittelsoftware-Updates. Unter Bezug auf 1C umfasst das Netzwerkschaubild 121 einen Beförderungsmittelknoten 102, der als ein Master-Beförderungsmittelknoten dient und mit anderen Beförderungsmittelknoten 105 und 107 über ein Blockchain-Netzwerk 106 verbunden ist, das ein Ledger 108 zum Speichern von Software-Update-bezogenen Transaktionen 110 aufweist. Die Beförderungsmittelknoten 102, 105 und 107 können auch als Blockchain 106-Peers dienen. Obgleich dieses Beispiel nur einen einzelnen Master-Beförderungsmittelknoten 102 detailliert beschreibt, können auch mehrere solcher Knoten mit der Blockchain 106 verbunden sein. Es versteht sich, dass der Master-Beförderungsmittelknoten 102 zusätzliche Komponenten umfassen kann und dass einige der hier beschriebenen Komponenten weggelassen und/oder modifiziert werden können, ohne vom Geltungsbereich des hier offenbarten Master-Beförderungsmittelknoten 102 abzuweichen. Der Master-Beförderungsmittelknoten 102 kann eine Computervorrichtung oder einen Servercomputer oder dergleichen aufweisen und kann einen Prozessor 104 umfassen, der ein halbleiterbasierter Mikroprozessor, eine zentrale Verarbeitungseinheit (CPU), ein anwendungsspezifischer integrierter Schaltkreis (ASIC), ein feldprogrammierbares Gate-Array (FPGA) und/oder eine andere Hardware-Vorrichtung sein kann. Obgleich nur ein einziger Prozessor 104 gezeigt ist, versteht es sich, dass der Master-Beförderungsmittelknoten 102 auch mehrere Prozessoren, mehrere Kerne oder dergleichen umfassen kann, ohne vom Geltungsbereich des Master-Beförderungsmittelknotens 102 abzuweichen. 1C Figure 12 illustrates a network diagram for managing conveyance software updates. Referring to 1C For example, network diagram 121 includes a conveyance node 102 serving as a master conveyance node and connected to other conveyance nodes 105 and 107 via a blockchain network 106 having a ledger 108 for storing software update-related transactions 110. The conveyance nodes 102, 105 and 107 can also serve as blockchain 106 peers. Although this example only details a single master conveyance node 102, multiple such nodes may be connected to the blockchain 106 as well. It is understood that the master carriage node 102 may include additional components and that some of the components described herein may be omitted and/or modified without departing from the scope of the master carriage node 102 disclosed herein. The master haulage node 102 may comprise a computing device or server computer, or the like, and may include a processor 104, which may be a semiconductor-based microprocessor, a central processing unit (CPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), and /or other hardware device. Although only a single processor 104 is shown, it should be understood that the master shipping node 102 may include multiple processors, multiple cores, or the like without departing from the scope of the master shipping node 102 .

Der Master-Beförderungsmittelknoten 102 kann auch ein nicht-transitorisches computerlesbares Medium 112' umfassen, auf dem maschinenlesbare Instruktionen gespeichert sein können, die durch den Prozessor 104 ausgeführt werden können. Beispiele für maschinenlesbare Instruktionen sind als 113-117 gezeigt und werden unten noch näher besprochen. Beispiele für das nicht-transitorische computerlesbare Medium 112' können eine elektronische, magnetische, optische oder sonstige physische Speichervorrichtung sein, die ausführbare Instruktionen umfasst oder speichert. Zum Beispiel kann das nicht-transitorische computerlesbare Medium 112' ein RAM-Speicher (Random Access Memory), ein EEPROM-Speicher (Electrically Erasable Programmable Read-Only Memory), eine Festplatte, eine optische Disk oder eine andere Art von Speichervorrichtung sein.Master conveyance node 102 may also include a non-transitory computer-readable medium 112' on which machine-readable instructions executable by processor 104 may be stored. Examples of machine-readable instructions are shown as 113-117 and are discussed in more detail below. Examples of the non-transitory computer-readable medium 112' may be an electronic, magnetic, optical, or other physical storage device that includes or stores executable instructions. For example, the non-transitory computer-readable medium 112' may be random access memory (RAM), electrically erasable programmable read-only memory (EEPROM), hard disk, optical disk, or other type of storage device.

Der Prozessor 104 kann die maschinenlesbaren Instruktionen 112' ausführen, um einen ersten Teil eines Software-Updates an ein Beförderungsmittel einer ersten Teilmenge von Beförderungsmitteln 113 zu senden. Die Blockchain 106 kann dafür eingerichtet sein, einen oder mehrere intelligente Verträge zu verwenden, die Transaktionen für mehrere beteiligte Knoten (zum Beispiel 105 und 107) managen. Der Master-Beförderungsmittelknoten 102 kann Software-Update-bezogene Informationen an die Blockchain 106 übermitteln und diese Transaktion kann im Ledger 108 gespeichert werden.The processor 104 can execute the machine-readable instructions 112 ′ to send a first part of a software update to a conveyance of a first subset of conveyances 113 . Blockchain 106 may be configured to use one or more smart contracts that manage transactions for multiple participating nodes (e.g., 105 and 107). The master conveyance node 102 can transmit software update related information to the blockchain 106 and this transaction can be stored in the ledger 108 .

Der Prozessor 104 kann die maschinenlesbaren Instruktionen 115 ausführen, um einen zweiten Teil des Software-Updates an ein Beförderungsmittel einer weiteren Teilmenge von Beförderungsmitteln (zum Beispiel 107) zu senden. Der Prozessor 104 kann die maschinenlesbaren Instruktionen 117 ausführen, um, wenn ein erstes Beförderungsmittel der Teilmenge der Beförderungsmittel 105 und ein zweites Beförderungsmittel der weiteren Teilmenge der Beförderungsmittel 107 in einer Nähe sind: das erste Beförderungsmittel zu veranlassen, den ersten Teil des Software-Updates an das zweite Beförderungsmittel zu senden, und das zweite Beförderungsmittel 107 zu veranlassen, den zweiten Teil des Software-Updates an das erste Beförderungsmittel 105 zu senden.Processor 104 may execute machine-readable instructions 115 to send a second portion of the software update to a vehicle of another subset of vehicles (e.g., 107). Processor 104 may execute machine-readable instructions 117 to, when a first conveyance of subset of conveyances 105 and a second conveyance of another subset of conveyances 107 are in proximity: cause the first conveyance to apply the first portion of the software update send the second conveyance and cause the second conveyance 107 to send the second part of the software update to the first conveyance 105 .

1D veranschaulicht ein Netzwerkschaubild zum Managen von Beförderungsmittelsoftware-Updates. Unter Bezug auf 1D umfasst das Netzwerkschaubild 130 einen Beförderungsmittelknoten 102 (zum Beispiel ein Fahrzeug), der mit anderen Beförderungsmittelknoten 105 über ein Blockchain-Netzwerk 106 verbunden ist, das ein Ledger 108 zum Speichern von Softwarevalidierungsdaten und Transaktionen 110 aufweist. Die Beförderungsmittelknoten 102 und 105 können auch als Blockchain 106-Peers dienen. Obgleich dieses Beispiel nur einen einzelnen Beförderungsmittelknoten 102 detailliert beschreibt, können auch mehrere solcher Knoten mit der Blockchain 106 verbunden sein. Es versteht sich, dass der Beförderungsmittelknoten 102 zusätzliche Komponenten umfassen kann und dass einige der hier beschriebenen Komponenten weggelassen und/oder modifiziert werden können, ohne vom Geltungsbereich des hier offenbarten Beförderungsmittelknotens 102 abzuweichen. Der Beförderungsmittelknoten 102 kann eine Computervorrichtung oder einen Servercomputer oder dergleichen aufweisen und kann einen Prozessor 104 umfassen, der ein halbleiterbasierter Mikroprozessor, eine zentrale Verarbeitungseinheit (CPU), ein anwendungsspezifischer integrierter Schaltkreis (ASIC), ein feldprogrammierbares Gate-Array (FPGA) und/oder eine andere Hardware-Vorrichtung sein kann. Obgleich nur ein einziger Prozessor 104 gezeigt ist, versteht es sich, dass der Beförderungsmittelknoten 102 auch mehrere Prozessoren, mehrere Kerne oder dergleichen umfassen kann, ohne vom Geltungsbereich des Beförderungsmittelknotens 102 abzuweichen. 1D Figure 12 illustrates a network diagram for managing conveyance software updates. Referring to 1D For example, network diagram 130 includes a conveyance node 102 (e.g., a vehicle) connected to other conveyance nodes 105 via a blockchain network 106 that includes a ledger 108 for storing software validation data and Transactions 110 has. Conveyance nodes 102 and 105 may also serve as blockchain 106 peers. Although this example only details a single conveyance node 102, multiple such nodes may be connected to the blockchain 106 as well. It is understood that the carriage node 102 may include additional components and that some of the components described herein may be omitted and/or modified without departing from the scope of the carriage node 102 disclosed herein. Conveyor node 102 may comprise a computing device or server computer, or the like, and may include a processor 104, which may be a semiconductor-based microprocessor, a central processing unit (CPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and/or may be another hardware device. Although only a single processor 104 is shown, it should be understood that the conveyance node 102 may include multiple processors, multiple cores, or the like without departing from the scope of the conveyance node 102 .

Der Beförderungsmittelknoten 102 kann auch ein nicht-transitorisches computerlesbares Medium 112" umfassen, auf dem maschinenlesbare Instruktionen gespeichert sein können, die durch den Prozessor 104 ausgeführt werden können. Beispiele für maschinenlesbare Instruktionen sind als 132-136 gezeigt und werden unten noch näher besprochen. Beispiele für das nicht-transitorische computerlesbare Medium 112" können eine elektronische, magnetische, optische oder sonstige physische Speichervorrichtung sein, die ausführbare Instruktionen umfasst oder speichert. Zum Beispiel kann das nicht-transitorische computerlesbare Medium 112" ein RAM-Speicher (Random Access Memory), ein EEPROM-Speicher (Electrically Erasable Programmable Read-Only Memory), eine Festplatte, eine optische Disk oder eine andere Art von Speichervorrichtung sein.Conveyor node 102 may also include a non-transitory computer-readable medium 112'' on which may be stored machine-readable instructions executable by processor 104. Examples of machine-readable instructions are shown as 132-136 and are discussed in further detail below. Examples for the non-transitory computer-readable medium 112" may be an electronic, magnetic, optical, or other physical storage device that includes or stores executable instructions. For example, the non-transitory computer-readable medium 112'' may be random access memory (RAM), electrically erasable programmable read-only memory (EEPROM), hard disk, optical disk, or other type of storage device.

Der Prozessor 104 kann die maschinenlesbaren Instruktionen 132 ausführen, um ein Software-Update in dem Beförderungsmittel 102 zu empfangen. Die Blockchain 106 kann dafür eingerichtet sein, einen oder mehrere intelligente Verträge zu verwenden, die Transaktionen für mehrere teilnehmende Beförderungsmittelknoten 105 managen. Das Beförderungsmittel 102 kann Software-Update-bezogene Validierungsinformationen an die Blockchain 106 übermitteln und diese Transaktion kann im Ledger 108 gespeichert werden.The processor 104 can execute the machine-readable instructions 132 to receive a software update in the vehicle 102 . Blockchain 106 may be configured to use one or more smart contracts that manage transactions for multiple participating conveyance nodes 105 . The conveyance 102 can transmit software update related validation information to the blockchain 106 and this transaction can be stored in the ledger 108 .

Der Prozessor 104 kann die maschinenlesbaren Instruktionen 134 ausführen, um eine erste Validierung des Software-Updates in einer ersten Umgebung durchzuführen, wobei die erste Umgebung einen geringsten Betrag potenzieller Interaktionen umfasst. Der Prozessor 104 kann die maschinenlesbaren Instruktionen 136 ausführen, um eine weitere Validierung des Software-Updates in einer weiteren Umgebung durchzuführen, wenn die erste Validierung erfolgreich ist. Die weitere Umgebung kann einen größeren Betrag potenzieller Interaktionen umfassen als die erste Umgebung.The processor 104 may execute the machine-readable instructions 134 to perform a first validation of the software update in a first environment, the first environment including a lowest amount of potential interactions. The processor 104 may execute the machine-readable instructions 136 to perform further validation of the software update in another environment if the first validation is successful. The wider environment may include a greater amount of potential interactions than the first environment.

2A veranschaulicht eine Blockchain-Architekturausgestaltung 200 gemäß beispielhaften Ausführungsformen. Unter Bezug auf 2A kann die Blockchain-Architektur 200 bestimmte Blockchain-Elemente, zum Beispiel eine Gruppe von Blockchain-Beteiligungsknoten 202-206, als Teil einer Blockchain-Gruppe 210 umfassen. In einer beispielhaften Ausführungsform ist eine erlaubte Blockchain nicht allen Parteien zugänglich, sondern nur den Beteiligten mit erlaubtem Zugriff auf die Blockchain-Daten. Die Blockchain-Knoten beteiligen sich einer Anzahl von Aktivitäten, wie zum Beispiel dem Hinzufügen von Blockchain-Einträgen und dem Validierungsprozess (Konsens). Einer oder mehrere der Blockchain-Knoten können Einträge auf der Grundlage einer Befürwortungsrichtlinie befürworten und einen Ordnungsdienst für alle Blockchain-Knoten bereitstellen. Ein Blockchain-Knoten kann eine Blockchain-Aktion (zum Beispiel eine Authentifizierung) initiieren und versuchen, in ein unveränderliches Blockchain-Ledger zu schreiben, das in der Blockchain gespeichert wird, von dem eine Kopie auch in der zugrunde liegenden physischen Infrastruktur gespeichert werden kann. 2A FIG. 2 illustrates a blockchain architecture design 200 according to example embodiments. Referring to 2A For example, the blockchain architecture 200 may include certain blockchain elements, for example a group of blockchain participating nodes 202-206, as part of a blockchain group 210. In an exemplary embodiment, a permitted blockchain is not accessible to all parties, but only to those parties with permitted access to the blockchain data. The blockchain nodes engage in a number of activities such as adding blockchain entries and the validation (consensus) process. One or more of the blockchain nodes may endorse entries based on an endorsement policy and provide an ordering service for all blockchain nodes. A blockchain node can initiate a blockchain action (such as authentication) and attempt to write to an immutable blockchain ledger that is stored on the blockchain, a copy of which can also be stored on the underlying physical infrastructure.

Die Blockchain-Transaktionen 220 werden im Speicher von Computern gespeichert, wenn die Transaktionen empfangen und durch das Konsensmodell genehmigt werden, das durch die Knoten der Beteiligten vorgegeben wird. Genehmigte Transaktionen 226 werden in momentanen Blöcken der Blockchain gespeichert und an die Blockchain durch ein Bereitstellungsverfahren überstellt, das die Durchführung eines Hashes der Dateninhalte der Transaktionen in einem momentanen Block und das Rückgreifen auf einen früheren Hash eines früheren Blocks umfasst. Innerhalb der Blockchain können ein oder mehrere intelligente Verträge (Smart Contracts) 230 existieren, welche die Konditionen von Transaktionsvereinbarungen und -aktionen definieren, die in ausführbarem Smart-Contract-Anwendungscode 232 enthalten sind, wie zum Beispiel registrierte Empfänger, Fahrzeugmerkmale, Anforderungen, Erlaubniserteilungen, Sensorschwellen usw. Der Code kann dafür eingerichtet sein zu identifizieren, ob anfragende Entitäten für den Empfang von Fahrzeugdiensten registriert sind, welche Dienstmerkmale sie gemäß ihrem Profilstatus empfangen dürfen/müssen und ob ihre Aktionen bei anschließenden Ereignissen überwacht werden sollen. Wenn zum Beispiel ein Service-Ereignis eintritt und ein Benutzer in dem Beförderungsmittel fährt, so kann die Überwachung der Sensordaten ausgelöst werden und es kann bestimmt werden, dass ein bestimmter Parameter, wie zum Beispiel der Ladezustand eines Fahrzeugs, während eines bestimmten Zeitraums über oder unter einer bestimmten Schwelle liegt. Das Ergebnis kann dann eine Änderung des momentanen Zustands sein, was es erforderlich macht, einen Alarm an die managende Partei (das heißt den Fahrzeughalter, den Beförderungsmittel-Lenker, den Server usw.) zu senden, damit der Service erkannt und als Referenz gespeichert werden kann. Die erfassten Fahrzeugsensordaten können auf Arten von Sensordaten basieren, die zum Erfassen von Informationen über den Status des Fahrzeugs verwendet werden. Die Sensordaten können auch die Grundlage für die Fahrzeugereignisdaten 234 sein, wie zum Beispiel zu erreichende Orte, Durchschnittsgeschwindigkeit, Höchstgeschwindigkeit, Beschleunigungsraten, ob es Zusammenstöße gab, ob die erwartete Route genommen wurde, was das nächste Ziel ist, ob Sicherheitsmaßnahmen eingerichtet sind, ob das Fahrzeug genügend Ladung/Kraftstoff hat usw. Alle diese Informationen können die Grundlage der Konditionen des intelligenten Vertrages 230 bilden, die dann in einer Blockchain gespeichert werden. Zum Beispiel können die in dem intelligenten Vertrag gespeicherten Sensorschwellen als Grundlage dafür verwendet werden, ob ein detektierter Service notwendig ist und wann und wo der Service durchgeführt werden soll.The blockchain transactions 220 are stored in the memory of computers as the transactions are received and approved through the consensus model dictated by the nodes of the participants. Approved transactions 226 are stored in current blocks of the blockchain and committed to the blockchain by a provisioning method that includes hashing the data contents of the transactions in a current block and reverting to a previous hash of a previous block. One or more smart contracts 230 may exist within the blockchain, defining the terms of transaction agreements and actions embodied in executable smart contract application code 232, such as registered recipients, vehicle characteristics, requirements, permissions, sensor thresholds, etc. The code may be configured to identify whether requesting entities are registered to receive vehicle services, which service features they may/must receive according to their profile status, and whether their actions at subsequent events are to be monitored. For example, when a service event occurs and a user rides in the conveyance, monitoring of the sensor data can be triggered and a determination can be made that a particular parameter, such as a vehicle's state of charge, has been above or below for a specified period of time is a certain threshold. The result may then be a change in the current state, requiring an alert to be sent to the managing party (i.e. vehicle owner, vehicle operator, server, etc.) in order for the service to be recognized and stored for reference can. The collected vehicle sensor data may be based on types of sensor data used to collect information about the status of the vehicle. The sensor data can also be the basis for vehicle event data 234, such as locations to reach, average speed, maximum speed, acceleration rates, whether there have been collisions, whether the expected route was taken, what the next destination is, whether safety measures are in place, whether the vehicle has enough charge/fuel, etc. All of this information can form the basis of the smart contract 230 terms, which are then stored in a blockchain. For example, the sensor thresholds stored in the smart contract can be used as a basis for determining whether a detected service is necessary and when and where the service should be performed.

2B veranschaulicht eine gemeinsam genutzte Ledger-Ausgestaltung gemäß beispielhaften Ausführungsformen. Unter Bezug auf 2B umfasst das Blockchain-Logikbeispiel 250 eine Blockchain-Anwendungsschnittstelle 252 als eine API- oder Plug-in-Anwendung, die mit der Computervorrichtung und der Ausführungsplattform für eine bestimmte Transaktion verknüpft ist. Die Blockchain-Ausgestaltung 250 kann eine oder mehrere Anwendungen umfassen, die mit Anwendungsprogrammierschnittstellen (APIs) verknüpft sind, um auf gespeicherten Programm-/Anwendungscode (zum Beispiel ausführbaren Code für intelligente Verträge, intelligente Verträge usw.) zuzugreifen und ihn auszuführen, und die gemäß einer von Teilnehmern gewünschten individuellen Ausgestaltung erstellt werden können und ihren eigenen Zustand aufrecht erhalten, ihre eigenen Assets kontrollieren und externe Informationen empfangen können. Dies kann als ein Eintrag verwendet und durch Hinzufügen zu dem verteilten Ledger in allen Blockchain-Knoten installiert werden. 2 B 12 illustrates a shared ledger design according to example embodiments. Referring to 2 B example blockchain logic 250 includes a blockchain application interface 252 as an API or plug-in application that interfaces with the computing device and execution platform for a particular transaction. The blockchain embodiment 250 may include one or more applications that interface with application programming interfaces (APIs) to access and execute stored program/application code (e.g., executable code for smart contracts, smart contracts, etc.) and implemented in accordance with can be created in a customization desired by participants and can maintain their own state, control their own assets and receive external information. This can be used as one entry and installed on all blockchain nodes by adding it to the distributed ledger.

Der Anwendungscode 254 für intelligente Verträge bildet eine Grundlage für die Blockchain-Transaktionen, indem er Anwendungscode generiert, der, wenn er ausgeführt wird, veranlasst, dass die Bestimmungen und Bedingungen der Transaktion aktiv werden. Der intelligente Vertrag 230 bewirkt, wenn er ausgeführt wird, dass bestimmte genehmigte Transaktionen 226 generiert werden, die dann an die Blockchain-Plattform 262 weitergeleitet werden. Die Plattform umfasst eine Sicherheit/Autorisierung 268, Computervorrichtungen, die das Transaktionsmanagement 266 ausführen, und einen Speicherabschnitt 264 als einen Speicher, der Transaktionen und intelligente Verträge in der Blockchain speichert.The smart contract application code 254 forms a basis for the blockchain transactions by generating application code which, when executed, causes the terms and conditions of the transaction to become active. The smart contract 230, when executed, causes certain authorized transactions 226 to be generated, which are then forwarded to the blockchain platform 262. The platform includes security/authorization 268, computing devices that perform transaction management 266, and a storage section 264 as a store that stores transactions and smart contracts on the blockchain.

Die Blockchain-Plattform kann verschiedene Schichten von Blockchain-Daten, Diensten (zum Beispiel kryptografische Vertrauensdienste, virtuelle Ausführungsumgebung usw.) und eine zugrunde liegende physische Computerinfrastruktur umfassen, die zum Empfangen und Speichern neuer Einträge und zum Gewähren des Zugangs für Prüfer, die auf Dateneinträge zugreifen möchten, verwendet werden kann. Die Blockchain kann eine Schnittstelle anbieten, die Zugriff auf die virtuelle Ausführungsumgebung ermöglicht, die für die Verarbeitung des Programmcodes und die Nutzung der physischen Infrastruktur erforderlich ist. Kryptografische Vertrauensdienste können verwendet werden, um Einträge wie zum Beispiel Asset-Austauscheinträge zu verifizieren und den Datenschutz von Informationen zu wahren.The blockchain platform may include various layers of blockchain data, services (e.g., cryptographic trust services, virtual execution environment, etc.), and underlying physical computing infrastructure used to receive and store new entries and provide access to validators looking for data entries want to access can be used. The blockchain can offer an interface that allows access to the virtual execution environment required for processing the program code and using the physical infrastructure. Cryptographic trust services can be used to verify entries such as asset exchange entries and to protect the privacy of information.

Die Blockchain-Architekturausgestaltung der 2A und 2B kann Programm-/Anwendungscode über eine oder mehrere Schnittstellen und Dienste, die durch die Blockchain-Plattform angeboten bzw. erbracht werden, verarbeiten und ausführen Als ein nicht-einschränkendes Beispiel können intelligente Verträge erstellt werden, um Erinnerungen, Aktualisierungen und/oder andere Benachrichtigungen auszuführen, die Änderungen, Aktualisierungen usw. unterliegen. Die intelligenten Verträge können selbst verwendet werden, um Regeln zu identifizieren, die mit Autorisierungs- und Zugriffsanforderungen und der Nutzung des Ledgers verknüpft sind. Zum Beispiel können die Informationen einen neuen Eintrag umfassen, der durch eine oder mehrere Verarbeitungseinheiten (zum Beispiel Prozessoren, virtuelle Maschinen usw.) verarbeitet werden kann, die in der Blockchain-Schicht enthalten sind. Das Ergebnis kann - auf der Grundlage der in dem intelligenten Vertrag definierten Kriterien und/oder eines Konsens der Peers - eine Entscheidung umfassen, den neuen Eintrag abzulehnen oder zu genehmigen. Die physische Infrastruktur kann verwendet werden, um beliebige der im vorliegenden Text beschriebenen Daten oder Informationen abzurufen.The blockchain architecture design 2A and 2 B may process and execute program/application code via one or more interfaces and services provided by the blockchain platform. As a non-limiting example, smart contracts may be created to execute reminders, updates, and/or other notifications , which are subject to changes, updates, etc. The smart contracts themselves can be used to identify rules associated with authorization and access requirements and usage of the ledger. For example, the information may include a new entry that may be processed by one or more processing units (e.g., processors, virtual machines, etc.) included in the blockchain layer. The outcome may include a decision to reject or approve the new entry based on the criteria defined in the smart contract and/or consensus of the peers. The physical infrastructure can be used to retrieve any of the data or information described herein.

Innerhalb des ausführbaren Codes eines intelligenten Vertrages kann ein intelligenten Vertrag über eine unspezifische Anwendung und Programmiersprache erstellt und dann in einen Block in der Blockchain geschrieben werden. Der intelligente Vertrag kann ausführbaren Code umfassen, der bei einer Blockchain (zum Beispiel einem verteilten Netzwerk von Blockchain-Peers) registriert, gespeichert und/oder repliziert wird. Ein Eintrag ist eine Ausführung des Codes für einen intelligenten Vertrag, der in Reaktion auf die Erfüllung von Bedingungen, die mit dem intelligenten Vertrag verknüpft sind, ausgeführt werden kann. Die Ausführung des intelligenten Vertrages kann eine oder mehrere vertrauenswürdige Modifizierungen eines Zustands eines digitalen Blockchain-Ledgers auslösen. Die durch die Ausführung des intelligenten Vertrages verursachten Modifizierungen des Blockchain-Ledgers können automatisch in dem gesamten verteilten Netzwerk von Blockchain-Peers durch ein oder mehrere Konsens-Protokolle repliziert werden.Within the executable code of a smart contract, a smart contract created via a non-specific application and programming language and then written to a block in the blockchain. The smart contract may include executable code that is registered, stored, and/or replicated with a blockchain (e.g., a distributed network of blockchain peers). An entry is an execution of smart contract code that may be executed in response to the satisfaction of conditions associated with the smart contract. Execution of the smart contract may trigger one or more trusted modifications of a state of a blockchain digital ledger. The blockchain ledger modifications caused by the execution of the smart contract can be automatically replicated throughout the distributed network of blockchain peers through one or more consensus protocols.

Der intelligente Vertrag kann Daten im Format von Schlüssel-Wert-Paaren in die Blockchain schreiben. Darüber hinaus kann der Code eines intelligenten Vertrages die in einer Blockchain gespeicherten Werte lesen und sie in Anwendungsoperationen verwenden. Der Code eines intelligenten Vertrages kann die Ausgabe verschiedener Logikoperationen in die Blockchain schreiben. Der Code kann verwendet werden, um eine temporäre Datenstruktur in einer virtuellen Maschine oder einer anderen Rechenplattform zu erstellen. Daten, die in die Blockchain geschrieben werden, können öffentlich sein und/oder können verschlüsselt und unter Datenschutz gehalten werden. Die temporären Daten, die durch den intelligenten Vertrag verwendet/generiert werden, werden durch die bereitgestellte Ausführungsumgebung im Speicher verwahrt und dann gelöscht, sobald die für die Blockchain benötigten Daten identifiziert wurden.The smart contract can write data to the blockchain in the format of key-value pairs. In addition, smart contract code can read the values stored in a blockchain and use them in application operations. Smart contract code can write the output of various logic operations to the blockchain. The code can be used to create a temporary data structure in a virtual machine or other computing platform. Data written to the blockchain may be public and/or may be encrypted and kept private. The temporary data used/generated by the smart contract is kept in memory by the provided execution environment and then deleted once the data needed for the blockchain has been identified.

Ein ausführbarer Code eines intelligenten Vertrages kann die Code-Interpretation eines intelligenten Vertrages mit zusätzlichen Leistungsmerkmalen umfassen. Wie im vorliegenden Text beschrieben, kann der ausführbare Code des intelligenten Vertrags ein Programmcode sein, der in einem Computernetzwerk verwendet wird, wo er durch Kettenvalidatoren zusammen während eines Konsensprozesses ausgeführt und validiert wird. Der ausführbare Code des intelligenten Vertrages empfängt einen Hash und ruft aus der Blockchain einen Hash ab, der mit der Datenvorlage verknüpft ist, die durch Verwendung eines zuvor gespeicherten Merkmalsextraktors erstellt wurde. Falls der Hash des Hash-Identifizierers und der Hash, der aus den gespeicherten Daten der Identifizierer-Vorlage erstellt wurde, übereinstimmen, so sendet der ausführbare Code des intelligenten Vertrages einen Autorisierungsschlüssel an den angefragten Dienst. Der ausführbare Code des intelligenten Vertrages kann in die Blockchain Daten schreiben, die mit den kryptografischen Details verknüpft sind.Executable smart contract code may include smart contract code interpretation with additional features. As described herein, the smart contract executable code may be program code used on a computer network where it is executed and validated by chain validators together during a consensus process. The smart contract executable code receives a hash and retrieves from the blockchain a hash associated with the data template created using a previously stored feature extractor. If the hash of the hashed identifier and the hash created from the stored identifier template data match, then the smart contract executable code sends an authorization key to the requested service. The smart contract executable code can write to the blockchain data associated with the cryptographic details.

2C veranschaulicht eine Blockchain-Ausgestaltung zum Speichern von Blockchain-Transaktionsdaten gemäß beispielhaften Ausführungsformen. Unter Bezug auf 2C sieht die beispielhafte Ausgestaltung 270 vor, dass das Fahrzeug 272, die Benutzervorrichtung 274 und ein Server 276 Informationen mit einem verteilten Ledger (das heißt der Blockchain) 278 gemeinsam nutzen. Der Server kann eine Serviceprovider-Entität darstellen, die bei einem Fahrzeug-Serviceprovider nachfragt, um Benutzerprofil-Einstufungsinformationen gemeinsam zu nutzen, falls ein bekanntes und etabliertes Benutzerprofil versucht, ein Fahrzeug mit einem festgelegten eingestuften Profil zu mieten. Der Server 276 kann Daten empfangen und verarbeiten, die sich auf die Service-Anforderungen eines Fahrzeugs beziehen. Wenn die Service-Ereignisse eintreten, wie zum Beispiel, wenn die Fahrzeugsensordaten einen Bedarf an Kraftstoff/Aufladung, einen Wartungsdienst usw. anzeigen, so kann ein intelligenter Vertrag verwendet werden, um Regeln, Schwellen, das Erfassen von Sensorinformationen usw. aufzurufen, die verwendet werden können, um das Fahrzeugservice-Ereignis aufzurufen. Die Blockchain-Transaktionsdaten 280 werden für jede Transaktion gespeichert, wie zum Beispiel das Zugriffsereignis, die anschließenden Aktualisierungen des Service-Status eines Fahrzeugs, Ereignisaktualisierungen usw. Die Transaktionen können umfassen: die Parteien, die Anforderungen (zum Beispiel Alter 18 Jahre, dienstberechtigter Kandidat, gültiger Führerschein usw.), Vergütungsstufen, die während des Ereignisses gefahrene Strecke, die registrierten Empfänger, die auf das Ereignis zugreifen und einen Fahrzeugdienst hosten dürfen, Rechte/Erlaubniserteilungen, Sensordaten, die während des Fahrzeugereignisvorgangs abgerufen werden, um Details des nächsten Service-Ereignisses zu loggen und den Zustandsstatus eines Fahrzeugs zu identifizieren, und Schwellen, die verwendet werden, um zu bestimmen, ob das Service-Ereignis zu Ende gebracht wurde und ob sich der Zustandsstatus des Fahrzeugs geändert hat. 2C 10 illustrates a blockchain configuration for storing blockchain transaction data, according to example embodiments. Referring to 2C For example, the example embodiment 270 provides for the vehicle 272 , the user device 274 , and a server 276 to share information with a distributed ledger (ie, the blockchain) 278 . The server may represent a service provider entity querying a vehicle service provider to share user profile rating information if a known and established user profile attempts to rent a vehicle with a specified rated profile. Server 276 may receive and process data related to a vehicle's service requirements. When the service events occur, such as when the vehicle sensor data indicates a need for fuel/charging, maintenance service, etc., a smart contract can be used to invoke rules, thresholds, sensor information collection, etc. that are used can be used to invoke the vehicle service event. The blockchain transaction data 280 is stored for each transaction, such as the access event, subsequent updates to a vehicle's service status, event updates, etc. The transactions may include: the parties, the requirements (e.g., age 18, eligible candidate, valid driver's license, etc.), compensation levels, distance driven during the event, registered recipients who are allowed to access the event and host a vehicle service, rights/permissions granted, sensor data retrieved during the vehicle event process, details of the next service event to log and identify a vehicle's health status, and thresholds used to determine whether the service event has completed and whether the vehicle's health status has changed.

3A veranschaulicht ein Flussdiagramm 300 gemäß beispielhaften Ausführungsformen. Unter Bezug auf 3A kann ein beispielhaftes Verfahren durch den Beförderungsmittelknoten 102 ausgeführt werden (siehe 1B). Es versteht sich, dass das in 3A gezeigte Verfahren 300 zusätzliche Operationen umfassen kann und dass einige der dort beschriebenen Operationen weggelassen und/oder modifiziert werden können, ohne den Geltungsbereich des Verfahrens 300 zu verlassen. Die Beschreibung des Verfahrens 300 erfolgt auch unter Bezug auf die Merkmale, die in 1B zu Veranschaulichungszwecken gezeigt sind. Insbesondere kann der Prozessor 104 des Beförderungsmittelknotens 102 einige oder alle der in dem Verfahren 300 enthaltenen Operationen ausführen. 3A FIG. 3 illustrates a flow chart 300 according to example embodiments. Referring to 3A For example, an example method may be performed by conveyance node 102 (see FIG 1B) . It is understood that the in 3A The method 300 shown may include additional operations and that some of the operations described therein may be omitted and/or modified without departing from the scope of the method 300. The description of the method 300 is also made with reference to the features that are 1B are shown for illustrative purposes. Especially processor 104 of conveyance node 102 may perform some or all of the operations included in method 300.

In Bezug auf 3A kann der Prozessor 104 in Block 302 ein Software-Update in dem Beförderungsmittel empfangen. In Block 304 kann der Prozessor 104 das Software-Update auf der Grundlage eines oder mehrerer von Folgendem validieren: eines Zeitraums, in dem das Software-Update genutzt wird, und einer Anzahl von Nutzungen des Software-Updates durch die Teilmenge der Beförderungsmittel. In Block 306 kann der Prozessor 104 das Software-Update auf der Grundlage der Validierung an eine weitere Teilmenge von Beförderungsmitteln verbreiten. Die weitere Teilmenge der Beförderungsmittel kann größer sein als die Teilmenge der Beförderungsmittel.In relation to 3A At block 302, the processor 104 may receive a software update in the conveyance. At block 304, the processor 104 may validate the software update based on one or more of: a period of time that the software update is deployed and a number of usages of the software update by the conveyance subset. At block 306, the processor 104 may propagate the software update to another subset of conveyances based on the validation. The further subset of the means of transport can be larger than the subset of the means of transport.

3B veranschaulicht ein Flussdiagramm 320 eines beispielhaften Verfahrens gemäß beispielhaften Ausführungsformen. Unter Bezug auf 3B kann das Verfahren 320 auch einen oder mehrere der folgenden Schritte umfassen. In Block 322 kann der Prozessor 104 das Software-Update an eine Menge aller verbleibenden Beförderungsmittel verbreiten, wobei die Menge aller verbleibenden Beförderungsmittel größer ist als die weitere Teilmenge der Beförderungsmittel. Die Teilmenge der Beförderungsmittel, die weitere Teilmenge der Beförderungsmittel und die Menge aller verbleibenden Beförderungsmittel basieren auf einem oder mehreren von Folgendem: existierender Software, existierender Hardware, einem geografischen Standort, einer Umgebungstemperatur, einer Beförderungsmittelmarke, einem Beförderungsmittelmodell, einem Beförderungsmittelzustand, einem Straßenzustand und einem Beförderungsmittelziel. 3B 3 illustrates a flow chart 320 of an example method according to example embodiments. Referring to 3B the method 320 may also include one or more of the following steps. At block 322, processor 104 may propagate the software update to a set of all remaining conveyances, where the set of all remaining conveyances is greater than the further subset of conveyances. The subset of conveyances, the further subset of conveyances, and the set of all remaining conveyances are based on one or more of the following: existing software, existing hardware, a geographic location, an ambient temperature, a conveyance brand, a conveyance model, a conveyance condition, a road condition, and a means of transport destination.

In Block 324 kann der Prozessor 104, wenn ein negatives Ergebnis auf der Grundlage der Validierung bestimmt wird, eines oder mehrere von Folgendem ausführen: Ändern eines oder mehrerer der Teilmenge der Beförderungsmittel, der weiteren Teilmenge der Beförderungsmittel und der Menge aller verbleibenden Beförderungsmittel und Zurücksetzen eines oder mehrerer der Teilmenge der Beförderungsmittel, der weiteren Teilmenge der Beförderungsmittel und der Menge aller verbleibenden Beförderungsmittel auf eines oder mehrere von einer ursprünglichen Software-Version und einem früheren Software-Update. In Block 326 kann der Prozessor 104 das Software-Update verwenden für: eine erste Zeitdauer durch die Teilmenge der Beförderungsmittel und eine zweite Zeitdauer durch die weitere Teilmenge der Beförderungsmittel, wobei die erste Zeitdauer größer ist als die zweite Zeitdauer. Die Teilmenge der Beförderungsmittel kann zu einem Blockchain-Netzwerk gehören. In Block 328 kann der Prozessor 104 einen intelligenten Vertrag des Blockchain-Netzwerks ausführen, um das Software-Update zu validieren und das Software-Update durch mehrere der Beförderungsmittel zu verbreiten.At block 324, if a negative result is determined based on the validation, the processor 104 may perform one or more of the following: changing one or more of the subset of conveyances, the further subset of conveyances, and the set of all remaining conveyances and resetting one or more of the subset of conveyances, the further subset of conveyances and the set of all remaining conveyances to one or more of an original software version and a previous software update. At block 326, the processor 104 may use the software update for: a first period of time by the subset of conveyances and a second period of time by the another subset of conveyances, the first period of time being greater than the second period of time. The subset of conveyances may belong to a blockchain network. At block 328, the processor 104 may execute a blockchain network smart contract to validate the software update and propagate the software update through multiple of the vehicles.

3C veranschaulicht ein Flussdiagramm 330 gemäß beispielhaften Ausführungsformen. Unter Bezug auf 3C kann ein beispielhaftes Verfahren durch den Master-Beförderungsmittelknoten 102 ausgeführt werden (siehe 1C). Es versteht sich, dass das in 3C gezeigte Verfahren 330 zusätzliche Operationen umfassen kann und dass einige der dort beschriebenen Operationen weggelassen und/oder modifiziert werden können, ohne den Geltungsbereich des Verfahrens 330 zu verlassen. Die Beschreibung des Verfahrens 330 erfolgt auch unter Bezug auf die Merkmale, die in 1C zu Veranschaulichungszwecken gezeigt sind. Insbesondere kann der Prozessor 104 des Master-Beförderungsmittelknotens 102 einige oder alle der in dem Verfahren 330 enthaltenen Operationen ausführen. 3C Figure 3 illustrates a flow chart 330 according to example embodiments. Referring to 3C For example, an example method may be performed by the master conveyance node 102 (see FIG 1C ). It is understood that the in 3C The method 330 shown may include additional operations and that some of the operations described therein may be omitted and/or modified without departing from the scope of the method 330. Method 330 is also described with reference to the features contained in 1C are shown for illustrative purposes. In particular, processor 104 of master conveyance node 102 may perform some or all of the operations included in method 330 .

In Bezug auf 3C kann der Prozessor 104 in Block 333 einen ersten Teil eines Software-Updates an ein Beförderungsmittel einer ersten Teilmenge von Beförderungsmitteln senden. In Block 335 kann der Prozessor 104 einen zweiten Teil des Software-Updates an ein Beförderungsmittel einer weiteren Teilmenge von Beförderungsmitteln senden. In Block 337 kann der Prozessor 104, wenn ein erstes Beförderungsmittel der Teilmenge der Beförderungsmittel und ein zweites Beförderungsmittel der weiteren Teilmenge der Beförderungsmittel in einer Nähe sind, das erste Beförderungsmittel veranlassen, den ersten Teil des Software-Updates an das zweite Beförderungsmittel zu senden, und das zweite Beförderungsmittel veranlassen, den zweiten Teil des Software-Updates an das erste Beförderungsmittel zu senden.In relation to 3C For example, in block 333 processor 104 may send a first portion of a software update to a vehicle of a first subset of vehicles. At block 335, processor 104 may send a second portion of the software update to a vehicle of another subset of vehicles. At block 337, if a first carriage of the subset of carriages and a second carriage of the further subset of carriages are in proximity, the processor 104 may cause the first carriage to send the first portion of the software update to the second carriage, and cause the second conveyance to send the second portion of the software update to the first conveyance.

3D veranschaulicht ein Flussdiagramm 340 eines beispielhaften Verfahrens gemäß beispielhaften Ausführungsformen. Unter Bezug auf 3D kann das Verfahren 340 auch einen oder mehrere der folgenden Schritte umfassen. In Block 342 kann der Prozessor 104 den ersten Teil und den zweiten Teil des Software-Updates vor einer Übertragung an die Teilmenge der Beförderungsmittel und die weitere Teilmenge der Beförderungsmittel bestimmen. In Block 344 kann der Prozessor 104 das Master-Beförderungsmittel in ein geografisches Gebiet leiten, wenn die Teilmenge der Beförderungsmittel und die weitere Teilmenge der Beförderungsmittel nicht einen oder mehrere des ersten Teils und des zweiten Teils des Software-Updates empfangen und nicht einen oder mehrere des ersten Teils und des zweiten Teils des Software-Updates ausführen. 3D 3 illustrates a flow chart 340 of an example method according to example embodiments. Referring to 3D the method 340 may also include one or more of the following steps. At block 342, the processor 104 may determine the first portion and the second portion of the software update prior to transmission to the subset of conveyances and the further subset of conveyances. At block 344, processor 104 may direct the master conveyance to a geographic area if the subset of conveyances and the further subset of conveyances do not receive one or more of the first portion and second portion of the software update and do not receive one or more of the run the first part and the second part of the software update.

In Block 346 kann der Prozessor 104 das erste Beförderungsmittel in eine Nähe des zweiten Beförderungsmittels leiten, wenn seit dem Empfang des ersten Teils des Software-Updates ein Zeitraum verstrichen ist, und kann das zweite Beförderungsmittel in eine Nähe des ersten Beförderungsmittels leiten, wenn seit dem Empfang des ersten Teils des Software-Updates ein Zeitraum verstrichen ist. In Block 348 kann der Prozessor 104 den ersten Teil und den zweiten Teil des Software-Updates durch einen Transceiver in dem Master-Beförderungsmittel senden, kann durch einen Transceiver den ersten Teil und den zweiten Teil des Software-Updates in einem oder mehreren des ersten Beförderungsmittels und des zweiten Beförderungsmittels empfangen, kann den ersten Teil und den zweiten Teil des Software-Updates in einem Speicher in einem oder mehreren des ersten Beförderungsmittels und des zweiten Beförderungsmittels speichern und kann durch Prozessoren in dem ersten Beförderungsmittel und dem zweiten Beförderungsmittel den ersten Teil und den zweiten Teil kombinieren.At block 346, the processor 104 may move the first conveyance to a proximity of the second conveyance if a period of time has elapsed since receipt of the first portion of the software update, and may direct the second conveyance to a proximity of the first conveyance if a period of time has elapsed since receipt of the first portion of the software update. At block 348, the processor 104 may transmit the first portion and the second portion of the software update through a transceiver in the master vehicle, may transmit the first portion and the second portion of the software update through a transceiver in one or more of the first vehicle and the second conveyance, may store the first portion and the second portion of the software update in a memory in one or more of the first conveyance and the second conveyance, and may process, by processors in the first conveyance and the second conveyance, the first portion and the combine second part.

Es ist zu beachten, dass das Master-Beförderungsmittel, die Teilmenge der Beförderungsmittel und die weitere Teilmenge der Beförderungsmittel über ein Blockchain-Netzwerk verbunden sein können. In Block 350 kann der Prozessor 104 einen Smart Contract ausführen, um Teile der Software-Updates zwischen den Beförderungsmitteln auszutauschen.It should be noted that the master conveyance, the subset of conveyances and the further subset of conveyances may be connected via a blockchain network. At block 350, the processor 104 may execute a smart contract to exchange portions of the software updates between the vehicles.

3E veranschaulicht ein Flussdiagramm 360 gemäß beispielhaften Ausführungsformen. Unter Bezug auf 3E kann ein beispielhaftes Verfahren durch den Beförderungsmittelknoten 102 ausgeführt werden (siehe 1D). Es versteht sich, dass das in 3E gezeigte Verfahren 360 zusätzliche Operationen umfassen kann und dass einige der dort beschriebenen Operationen weggelassen und/oder modifiziert werden können, ohne den Geltungsbereich des Verfahrens 360 zu verlassen. Die Beschreibung des Verfahrens 360 erfolgt auch unter Bezug auf die Merkmale, die in 1D zu Veranschaulichungszwecken gezeigt sind. Insbesondere kann der Prozessor 104 des Beförderungsmittelknotens 102 einige oder alle der in dem Verfahren 360 enthaltenen Operationen ausführen. 3E Figure 3 illustrates a flow chart 360 according to example embodiments. Referring to 3E For example, an example method may be performed by conveyance node 102 (see FIG 1D ). It is understood that the in 3E The method 360 shown may include additional operations and that some of the operations described therein may be omitted and/or modified without departing from the scope of the method 360. Method 360 is also described with reference to the features contained in 1D are shown for illustrative purposes. In particular, processor 104 of conveyance node 102 may perform some or all of the operations included in method 360 .

In Bezug auf 3E kann der Prozessor 104 in Block 362 ein Software-Update in einem Beförderungsmittel empfangen. In Block 364 kann der Prozessor 104 eine erste Validierung des Software-Updates in einer ersten Umgebung durchführen, wobei die erste Umgebung einen geringsten Betrag potenzieller Interaktionen umfasst. In Block 366 kann der Prozessor 104 eine weitere Validierung des Software-Updates in einer weiteren Umgebung durchführen, wenn die erste Validierung erfolgreich ist. Die weitere Umgebung kann einen größeren Betrag potenzieller Interaktionen umfassen als die erste Umgebung.In relation to 3E At block 362, the processor 104 may receive a software update in a vehicle. At block 364, the processor 104 may perform a first validation of the software update in a first environment, the first environment including a lowest amount of potential interactions. At block 366, if the first validation succeeds, the processor 104 may perform another validation of the software update in another environment. The wider environment may include a greater amount of potential interactions than the first environment.

3F veranschaulicht ein Flussdiagramm 380 eines beispielhaften Verfahrens gemäß beispielhaften Ausführungsformen. Unter Bezug auf 3F kann das Verfahren 380 auch einen oder mehrere der folgenden Schritte umfassen. In Block 382 kann der Prozessor 104 zu einer früheren Software-Version zurückkehren, wenn eine oder mehrere der ersten Validierung und der zweiten Validierung fehl schlagen. In Block 384 kann der Prozessor 104 die weitere Validierung des Software-Updates von einem anderen Beförderungsmittel empfangen. In Block 386 kann der Prozessor 104 das Software-Update auf der Grundlage einer Analyse der weiteren Umgebung aufrufen. In Block 388 kann der Prozessor 104 Bestätigungen über die weitere Validierung des Software-Updates von mehreren Beförderungsmitteln empfangen. Die Bestätigungen können einen Konsens auf einer Blockchain darstellen, zu der die Beförderungsmittel gehören. In Block 390 kann der Prozessor 104 einen intelligenten Vertrag ausführen, um mindestens einen Datenblock, der das validierte Software-Update widerspiegelt, in einem Ledger der Blockchain aufzuzeichnen. 3F 3 illustrates a flowchart 380 of an example method according to example embodiments. Referring to 3F the method 380 may also include one or more of the following steps. At block 382, processor 104 may revert to a previous software version if one or more of the first validation and the second validation fails. At block 384, processor 104 may receive further validation of the software update from another vehicle. At block 386, processor 104 may invoke the software update based on an analysis of the wider environment. At block 388, the processor 104 may receive confirmations of further validation of the software update from multiple vehicles. The acknowledgments may represent a consensus on a blockchain to which the conveyances belong. At block 390, processor 104 may execute a smart contract to record at least one block of data reflecting the validated software update on a ledger of the blockchain.

4A veranschaulicht eine beispielhafte Blockchain-Fahrzeugausgestaltung 400 zum Managen von Blockchain-Transaktionen, die einem Fahrzeug zugeordnet sind, gemäß beispielhaften Ausführungsformen. Unter Bezug auf 4A ist ein bestimmtes Beförderungsmittel/Fahrzeug 425 an Transaktionen beteiligt, wie zum Beispiel Asset-Übertragungstransaktionen (zum Beispiel Austausch von Zugangsschlüsseln, Fahrzeugservice, Händlertransaktionen, Lieferung/Abholung, Beförderungsdienste usw.). Das Fahrzeug 425 kann gemäß einer oder mehreren durch intelligente Verträge (Smart Contracts) definierten Transaktionen Assets 410 empfangen und/oder Assets 412 abgeben/übertragen. Das Transaktionsmodul 420 kann Informationen aufzeichnen, wie zum Beispiel Parteien, Guthaben, Service-Beschreibungen, Datum, Uhrzeit, Ort, Ergebnisse, Benachrichtigungen, unerwartete Ereignisse usw. Diese Transaktionen in dem Transaktionsmodul 420 können in eine Blockchain 430 repliziert werden, die durch einen räumlich abgesetzten Server und/oder durch räumlich abgesetzte Blockchain-Peers verwaltet werden kann, unter denen das Fahrzeug 425 selbst ein Blockchain-Beteiligter und/oder Blockchain-Peer sein kann. In anderen Ausführungsformen befindet sich die Blockchain 430 in dem Fahrzeug 425. Die empfangenen und/oder übertragenen Assets können, wie hier beschrieben, auf Standort und Konsens basieren. 4A 4 illustrates an example blockchain vehicle configuration 400 for managing blockchain transactions associated with a vehicle, according to example embodiments. Referring to 4A For example, a particular conveyance/vehicle 425 is involved in transactions, such as asset transfer transactions (e.g., access key exchanges, vehicle service, dealer transactions, delivery/pickup, transportation services, etc.). The vehicle 425 may receive assets 410 and/or deliver/transfer assets 412 according to one or more transactions defined by smart contracts. The transaction module 420 can record information such as parties, balances, service descriptions, date, time, location, results, notifications, unexpected events, etc remote servers and/or managed by remote blockchain peers, among which the vehicle 425 itself may be a blockchain participant and/or blockchain peer. In other embodiments, the blockchain 430 resides in the vehicle 425. The assets received and/or transmitted may be based on location and consensus as described herein.

4B veranschaulicht eine beispielhafte Blockchain-Fahrzeugausgestaltung 440 zum Managen von Blockchain-Transaktionen zwischen einem Service-Knoten (zum Beispiel einer Tankstelle, einem Service-Center, einer Karosseriewerkstatt, einem Vermietungs-Center, einem Autohändler, einer lokalen Service-Station, einem Liefer-/Abhol-Center usw.) und einem Fahrzeug gemäß beispielhaften Ausführungsformen. In diesem Beispiel kann sich das Fahrzeug 425 selbst zu einem Service-Knoten 442 gesteuert haben, da das Fahrzeug einen Service benötigt und/oder an einem bestimmten Ort anhalten muss. Der Service-Knoten 442 kann einen Service ausführen (zum Beispiel Tanken) oder kann das Fahrzeug 425 für einen Service-Ruf zu einem bestimmten Zeitpunkt, mit einer bestimmten Strategie, wie zum Beispiel Ölwechsel, Batterieladung oder -wechsel, Reifenwechsel oder -ersatz, und jede andere beförderungsmittelbezogene Dienstleistung anmelden. Die erbrachten Dienstleistungen 444 können auf der Grundlage eines intelligenten Vertrages erbracht werden, der von der Blockchain 430 heruntergeladen wird oder auf den über die Blockchain 430 zugegriffen wird und für eine Erlaubnis zur Erbringung solcher Dienstleistungen zu einem bestimmten Wechselkurs identifiziert wird. Die Dienstleistungen können in dem Transaktionsprotokoll des Transaktionsmoduls 420 protokolliert werden, die Guthaben 412 werden an das Service-Center 442 übertragen und die Blockchain kann Transaktionen protokollieren, um alle Informationen bezüglich der neuesten Dienstleistung darzustellen. In anderen Ausführungsformen befindet sich die Blockchain 430 in dem Fahrzeug 425 und/oder auf dem Server des Service-Centers. In einem Beispiel kann ein Beförderungsmittel-Ereignis eine Betankung oder einen anderen Fahrzeugservice erfordern und die Insassen können dann für die Erhöhung des Asset-Wertes für einen solchen Service verantwortlich sein. Der Service kann über eine Blockchain-Benachrichtigung erbracht werden, die dann verwendet wird, um den Asset-Wert an die Insassen über ihre jeweiligen Asset-Werte zu verteilen. Die Verantwortung für die Aktivitäten des Service-Centers kann auf der hier beschriebenen Asset-Übertragung basieren. 4B 4 illustrates an example blockchain vehicle design 440 for managing blockchain transactions between a service node (e.g., gas station, service center, body shop, rental center, car dealership, a local service station, a delivery/pickup center, etc.) and a vehicle according to example embodiments. In this example, the vehicle 425 may have self-directed to a service node 442 because the vehicle requires service and/or needs to stop at a specific location. The service node 442 can perform a service (e.g., refueling) or can call the vehicle 425 for a service at a specific time, with a specific strategy, such as an oil change, battery charge or change, tire change or replacement, and register any other transport-related service. The services 444 provided may be provided based on a smart contract downloaded or accessed via the blockchain 430 and identified for permission to provide such services at a particular exchange rate. The services can be logged in the transaction log of the transaction module 420, the credits 412 are transferred to the service center 442 and the blockchain can log transactions to show all information regarding the most recent service. In other embodiments, the blockchain 430 resides in the vehicle 425 and/or on the service center server. In one example, a transportation event may require refueling or other vehicle service, and the occupants may then be responsible for increasing the asset value for such service. The service can be provided via a blockchain notification, which is then used to distribute asset value to inmates via their respective asset values. Responsibility for the activities of the service center can be based on the asset transfer described here.

4C veranschaulicht eine beispielhafte Blockchain-Fahrzeugausgestaltung 450 zum Managen von Blockchain-Transaktionen, die zwischen verschiedenen Fahrzeugen durchgeführt werden, gemäß den beispielhaften Ausführungsformen. Das Fahrzeug 425 kann mit einem anderen Fahrzeug 408 in Verbindung treten, um verschiedene Aktionen durchzuführen, wie zum Beispiel die gemeinsame Nutzung von Zugangsschlüsseln, die Übertragung von Schlüsseln, die Erfassung von Service-Rufen usw., wenn das Fahrzeug einen Status erreicht hat, bei dem die Assets mit einem anderen Fahrzeug gemeinsam genutzt werden müssen. Zum Beispiel kann für das Fahrzeug 408 eine Batterieladung fällig sein und/oder es kann ein Problem mit einem Reifen haben und auf dem Weg sein, ein Paket zur Auslieferung abzuholen. Das Fahrzeug 408 kann ein anderes Fahrzeug 425 benachrichtigen, das sich in seinem Netzwerk befindet und das seinen Blockchain-Beteiligungsdienst erbringt. Das Fahrzeug 425 kann dann die Informationen über eine drahtlose Kommunikationsanfrage zur Durchführung der Paketabholung von dem Fahrzeug 408 und/oder von einem Server (nicht gezeigt) empfangen. Die Transaktionen werden in den Transaktionsmodulen 452 und 420 beider Fahrzeuge protokolliert. Die Assets werden von dem Fahrzeug 408 zu dem Fahrzeug 425 übertragen und die Aufzeichnung der Asset-Übertragung wird in der Blockchain 430/454 protokolliert, wobei angenommen wird, dass sich die Blockchains voneinander unterscheiden, oder wird in derselben Blockchain protokolliert, die durch alle Beteiligten genutzt wird. Die Verantwortung für die übertragenen Assets kann, wie hier beschrieben, auf Asset-Werten (zum Beispiel Zugangsschlüsseln) beruhen. 4C 4 illustrates an example blockchain vehicle configuration 450 for managing blockchain transactions conducted between different vehicles, in accordance with the example embodiments. The vehicle 425 may communicate with another vehicle 408 to perform various actions such as sharing access keys, transferring keys, capturing service calls, etc. when the vehicle has reached a status at which the assets must be shared with another vehicle. For example, the vehicle 408 may need a battery charge and/or may have a problem with a tire and be en route to pick up a package for delivery. The vehicle 408 may notify another vehicle 425 that is on its network and that is providing its blockchain participation service. The vehicle 425 may then receive the information via a wireless communication request to perform the package pickup from the vehicle 408 and/or from a server (not shown). The transactions are logged in the transaction modules 452 and 420 of both vehicles. The assets are transferred from the vehicle 408 to the vehicle 425 and the record of the asset transfer is logged in the blockchain 430/454 assuming that the blockchains are different from each other, or is logged in the same blockchain shared by all parties is being used. Responsibility for the transferred assets may be based on asset values (e.g. access keys) as described here.

5 veranschaulicht Blockchain-Blöcke 500, die - gemäß beispielhaften Ausführungsformen - einem verteilten Ledger hinzugefügt werden können, sowie Inhalte von Blockstrukturen 502A bis 502n. Unter Bezug auf 5 können Clients (nicht gezeigt) Einträge an Blockchain-Knoten übermitteln, um Aktivitäten auf der Blockchain in Gang zu setzen. Als ein Beispiel können Clients Anwendungen sein, die im Auftrag eines Anforderers handeln, wie zum Beispiel einer Vorrichtung, einer Person oder einer Entität, um Einträge für die Blockchain vorzuschlagen. Die mehreren Blockchain-Peers (zum Beispiel Blockchain-Knoten) können einen Zustand des Blockchain-Netzwerks und eine Kopie des verteilten Ledgers verwalten. Verschiedene Arten von Blockchain-Knoten/- Peers können in dem Blockchain-Netzwerk vorhanden sein, einschließlich befürwortender (endorsing) Peers, die durch Clients vorgeschlagene Einträge simulieren und befürworten, und bereitstellender (committing) Peers, die Befürwortungen verifizieren, Einträge validieren und Einträge an das verteilte Ledger überstellen. In diesem Beispiel können die Blockchain-Knoten die Rolle des Befürworter-Knotens (endorser node), des Bereitsteller-Knotens (committer node) oder beider übernehmen. 5 5 illustrates blockchain blocks 500 that may be added to a distributed ledger and contents of block structures 502A through 502n, according to exemplary embodiments. Referring to 5 Clients (not shown) can submit entries to blockchain nodes to initiate activities on the blockchain. As an example, clients can be applications that act on behalf of a requestor, such as a device, person, or entity, to propose entries for the blockchain. The multiple blockchain peers (eg, blockchain nodes) can maintain a state of the blockchain network and a copy of the distributed ledger. Various types of blockchain nodes/peers may exist in the blockchain network, including endorsing peers, which simulate and endorse entries proposed by clients, and committing peers, which verify endorsements, validate entries, and submit entries transfer the distributed ledger. In this example, the blockchain nodes can play the role of endorser node, committer node, or both.

Das vorliegende System umfasst eine Blockchain, die unveränderliche, sequenzierte Datensätze in Blöcken speichert, und eine Zustandsdatenbank (momentaner Weltzustand), die einen momentanen Zustand der Blockchain verwaltet. Pro Kanal kann ein verteiltes Ledger existieren und jeder Peer verwaltet seine eigene Kopie des verteilten Ledgers für jeden Kanal, dem er zugehört. Die vorliegende Blockchain ist ein Eintrags-Log, das als Hash-verknüpfte Blöcke strukturiert ist, wobei jeder Block eine Folge von N Einträgen umfasst. Die Blöcke können verschiedene Komponenten umfassen, wie zum Beispiel die in 5 gezeigten. Die Verknüpfung der Blöcke kann durch Hinzufügen eines Hashes des Headers eines vorherigen Blocks innerhalb eines Block-Headers eines momentanen Blocks generiert werden. Auf diese Weise werden alle Einträge in der Blockchain sequenziert und kryptografisch miteinander verknüpft, wodurch ein Manipulieren der Blockchain-Daten verhindert wird, ohne die Hash-Verknüpfungen aufzubrechen. Darüber hinaus repräsentiert der jüngste Block in der Blockchain aufgrund der Verknüpfungen jeden Eintrag, der ihm vorangeht. Die vorliegende Blockchain kann in einem Peer-Dateisystem (lokaler oder angeschlossener Speicher) gespeichert werden, das eine „Append-Only“-Blockchain-Arbeitslast unterstützt.The present system includes a blockchain that stores immutable, sequenced records in blocks, and a state database (current world state) that maintains a current state of the blockchain. One distributed ledger can exist per channel and each peer maintains its own copy of the distributed ledger for each channel to which it belongs. The present blockchain is an entry log structured as hashed blocks, each block containing a sequence of N entries. The blocks can include various components, such as those in 5 shown. The concatenation of the blocks can be generated by adding a hash of a previous block's header inside a current block's block header will. This way, all entries in the blockchain are sequenced and cryptographically linked together, preventing tampering with the blockchain data without breaking the hash links. Furthermore, because of the links, the youngest block in the blockchain represents each entry that precedes it. The present blockchain can be stored in a peer file system (local or attached storage) that supports an append-only blockchain workload.

Der momentane Zustand der Blockchain und des verteilten Ledgers kann in der Zustandsdatenbank gespeichert werden. Dabei stellen die Momentanzustandsdaten die neuesten Werte für alle Schlüssel dar, die jemals in das Ketteneintrags-Log der Blockchain aufgenommen wurden. Aufrufe von ausführbarem Code eines intelligenten Vertrages führen Einträge vor dem Hintergrund des momentanen Zustands in der Zustandsdatenbank aus. Um diese Interaktionen von ausführbarem Code eines intelligenten Vertrages möglichst effizient zu gestalten, werden die neuesten Werte aller Schlüssel in der Zustandsdatenbank gespeichert. Die Zustandsdatenbank kann eine indizierte Ansicht des Eintrags-Logs der Blockchain umfassen, weshalb sie jederzeit aus der Kette regeneriert werden kann. Die Zustandsdatenbank kann automatisch wiederhergestellt (oder bei Bedarf generiert) werden, wenn der Peer gestartet wird, bevor Einträge entgegengenommen werden.The current state of the blockchain and the distributed ledger can be stored in the state database. The current state data represents the most recent values for all keys that have ever been included in the chain entry log of the blockchain. Smart contract executable code calls make entries against the current state in the state database. In order to make these interactions of executable code of a smart contract as efficient as possible, the latest values of all keys are stored in the state database. The state database can include an indexed view of the blockchain's entry log, so it can be regenerated off-chain at any time. The state database can be restored automatically (or generated on demand) when the peer starts before accepting entries.

Befürwortende Knoten empfangen Einträge von Clients und befürworten den Eintrag auf der Grundlage simulierter Ergebnisse. Befürwortende Knoten speichern intelligente Verträge, welche die Eintragsvorschläge simulieren. Wenn ein befürwortender Knoten einen Eintrag befürwortet, so erstellt der befürwortende Knoten eine Eintragsbefürwortung, die eine signierte Antwort von dem befürwortenden Knoten an die Client-Anwendung ist und die Befürwortung des simulierten Eintrags anzeigt. Das Verfahren des Befürwortens eines Eintrags hängt von einer Befürwortungsrichtlinie ab, die in ausführbarem Code des intelligenten Vertrages spezifiziert sein kann. Ein Beispiel für eine Befürwortungsrichtlinie ist: „Die Mehrheit der befürwortenden Peers muss den Eintrag befürworten.“ Verschiedene Kanäle können unterschiedliche Befürwortungsrichtlinien aufweisen. Befürwortete Einträge werden durch die Client-Anwendung an einen Ordnungsdienst weitergeleitet.Endorsing nodes receive entries from clients and endorse the entry based on simulated results. Promoting nodes store smart contracts that simulate the entry proposals. When an endorsing node endorses an entry, the endorsing node creates an entry endorsement, which is a signed response from the endorsing node to the client application indicating endorsement of the simulated entry. The method of endorsing an entry depends on an endorsement policy, which may be specified in executable code of the smart contract. An example of an endorsement policy is: "The majority of endorsement peers must endorse the entry." Different channels may have different endorsement policies. Approved entries are forwarded to a stewardship service by the client application.

Der Ordnungsdienst nimmt befürwortete Einträge entgegen, ordnet sie zu einem Block und übermittelt die Blöcke an die bereitstellenden Peers. Der Ordnungsdienst kann zum Beispiel einen neuen Block initiieren, wenn eine Schwelle von Einträgen erreicht wurde, ein Timer abläuft oder eine andere Bedingung vorliegt. In diesem Beispiel ist der Blockchain-Knoten ein bereitstellender (committing) Peer, der einen Datenblock 602A zur Speicherung in der Blockchain empfangen hat. Der Ordnungsdienst kann aus einem Cluster von Ordnern bestehen. Der Ordnungsdienst verarbeitet weder Einträge noch intelligente Verträge, noch verwaltet er das gemeinsam genutzte Ledger (shared ledger). Vielmehr kann der Ordnungsdienst die befürworteten Einträge entgegennehmen und spezifiziert die Reihenfolge, in der diese Einträge an das verteilte Ledger (distributed ledger) überstellt (committed) werden. Die Architektur des Blockchain-Netzwerks kann so gestaltet werden, dass die spezifische Implementierung der „Ordnung“ (zum Beispiel Solo, Kafka, BFT usw.) zu einer plug-fähigen Komponente wird.The stewardship service accepts approved entries, arranges them into a block, and transmits the blocks to the providing peers. For example, the security service can initiate a new block when a threshold of entries has been reached, a timer expires, or some other condition. In this example, the blockchain node is a committing peer that has received a block of data 602A for storage on the blockchain. The security service can consist of a cluster of folders. The security service does not process entries or smart contracts, nor does it manage the shared ledger. Rather, the security service can accept the approved entries and specify the order in which these entries are committed to the distributed ledger. The architecture of the blockchain network can be designed in such a way that the specific implementation of the “Order” (e.g. Solo, Kafka, BFT, etc.) becomes a pluggable component.

Einträge werden in einer gleichbleibenden Reihenfolge in das verteilte Ledger geschrieben. Die Reihenfolge der Einträge wird so festgelegt, dass sichergestellt ist, dass die Aktualisierungen der Statusdatenbank gültig sind, wenn sie an das Netzwerk überstellt werden. Im Gegensatz zu einem Kryptowährungs-Blockchain-System (zum Beispiel Bitcoin usw.), bei dem die Ordnung durch das Lösen eines kryptografischen Puzzles oder durch Datenschürfen (Mining) erfolgt, können in diesem Beispiel die Parteien des verteilten Ledgers den Ordnungsmechanismus wählen, der an dem besten zu diesem Netzwerk passt.Entries are written to the distributed ledger in a consistent order. The order of the entries is set to ensure that the state database updates are valid when pushed out to the network. Unlike a cryptocurrency blockchain system (e.g., bitcoin, etc.) where ordering occurs by solving a cryptographic puzzle or by data mining (mining), in this example, the distributed ledger parties can choose the ordering mechanism that that best fits this network.

Unter Bezug auf 5 kann ein Block 502A (auch als ein Datenblock bezeichnet), der in der Blockchain und/oder dem verteilten Ledger gespeichert wird, mehrere Datensegmente umfassen, wie zum Beispiel einen Block-Header 504A bis 504n, transaktionsspezifische Daten 506A bis 506n, und Blockmetadaten 508A bis 508n. Es ist zu beachten, dass die verschiedenen gezeigten Blöcke und ihre Inhalte, wie zum Beispiel Block 502A und sein Inhalt, lediglich als Beispiel dienen und nicht den Geltungsbereich der beispielhaften Ausführungen einschränken sollen. In einigen Fällen können sowohl der Block-Header 504A als auch die Blockmetadaten 508A kleiner sein als die transaktionsspezifischen Daten 506A, die Eingabedaten speichern; dies ist jedoch keine Bedingung. Der Block 502A kann Transaktionsinformationen von N Einträgen (zum Beispiel 100, 500, 1000, 2000, 3000 usw.) innerhalb der Blockdaten 510A bis 510n speichern. Der Block 502A kann auch einen Link zu einem früheren Block (zum Beispiel in der Blockchain) innerhalb des Block-Headers 504A umfassen. Insbesondere kann der Block-Header 504A einen Hash des Headers eines vorherigen Blocks umfassen. Der Block-Header 504A kann auch eine eindeutige Blocknummer, einen Hash der Blockdaten 510A des momentanen Blocks 502A und dergleichen umfassen. Die Blocknummer des Blocks 502A kann eindeutig sein und in einer inkrementellen/sequenziellen Reihenfolge, beginnend bei Null, vergeben werden. Der erste Block in der Blockchain kann als ein Entstehungsblock bezeichnet werden, der Informationen über die Blockchain, ihre Beteiligten, die darin gespeicherten Daten usw. umfasst.Referring to 5 For example, a block 502A (also referred to as a data block) stored on the blockchain and/or distributed ledger may include multiple data segments, such as a block header 504A-504n, transaction-specific data 506A-506n, and block metadata 508A-508A 508n. It should be noted that the various blocks shown and their contents, such as block 502A and its contents, are for example purposes only and are not intended to limit the scope of the example implementations. In some cases, both the block header 504A and the block metadata 508A may be smaller than the transaction-specific data 506A storing input data; however, this is not a requirement. Block 502A may store transaction information of N entries (e.g., 100, 500, 1000, 2000, 3000, etc.) within block data 510A through 510n. Block 502A may also include a link to an earlier block (e.g., in the blockchain) within block header 504A. In particular, the block header 504A may include a hash of the header of a previous block. The block header 504A may also include a unique block number, a hash of the block data 510A of the current block 502A, and the like. The block number of block 502A can be unique and in an incremental/sequential order, starting from zero. The first block in the blockchain can be referred to as an origin block, which includes information about the blockchain, its participants, the data stored on it, and so on.

Die Blockdaten 510A können Eintragsinformationen jedes Eintrags speichern, der innerhalb des Blocks aufgezeichnet wird. Zum Beispiel können die Eintragsdaten eines oder mehrere von Folgendem umfassen: einen Typ des Eintrags, eine Version, einen Zeitstempel, eine Kanal-ID des verteilten Ledgers, eine Eintrags-ID, eine Epoche, eine Nutzlastsichtbarkeit, einen Pfad für den ausführbaren Code eines intelligenten Vertrages (deploy tx), einen Namen für den ausführbaren Code eines intelligenten Vertrages, eine Version von ausführbarem Code für einen intelligenten Vertrag, Eingaben (ausführbarer Code und Funktionen eines intelligenten Vertrages), eine Client (Erzeuger)-Identifikation, wie zum Beispiel ein öffentlicher Schlüssel und ein Zertifikat, eine Signatur des Clients, Identitäten von Befürwortern, Befürworter-Signaturen, ein Vorschlags-Hash, Ereignisse von ausführbarem Code eines intelligenten Vertrages, Antwortstatus, Namensraum, einen Lesesatz (Liste der Schlüssel und Version, die durch den Eintrag gelesen wurde, usw.), einen Schreibsatz (Liste der Schlüssel und Wert usw.), einen Startschlüssel, einen Endschlüssel, eine Liste von Schlüsseln, eine Hash-Baum-Abfragezusammenfassung und dergleichen. Die Eintragsdaten können für jeden der N Einträge gespeichert werden.The block data 510A can store entry information of each entry recorded within the block. For example, the entry data may include one or more of the following: a type of entry, a version, a timestamp, a distributed ledger channel ID, an entry ID, an epoch, a payload visibility, a path for an intelligent executable code contract (deploy tx), a name for the smart contract executable code, a version of smart contract executable code, inputs (smart contract executable code and functions), a client (producer) identification, such as a public Keys and a certificate, a signature of the client, identities of proponents, proponent signatures, a proposal hash, events of smart contract executable code, response status, namespace, a read set (list of keys and version read by the entry , etc.), a write set (list of keys and values, etc.), a seed key, an en dkey, a list of keys, a hash tree query summary, and the like. The entry data can be stored for each of the N entries.

In einigen Ausführungsformen können die Blockdaten 510A auch transaktionsspezifische Daten 506A speichern, was zusätzliche Informationen zu der Hash-verknüpften Kette von Blöcken in der Blockchain hinzufügt. Dementsprechend können die Daten 506A in einem unveränderlichen Log von Blöcken in dem verteilten Ledger gespeichert werden. Einige der Vorteile des Speicherns solcher Daten 506A sind in den verschiedenen im vorliegenden Text offenbarten und gezeigten Ausführungsformen widergespiegelt. Die Block-Metadaten 508A können mehrere Felder von Metadaten speichern (zum Beispiel als ein Byte-Array usw.). Die Metadatenfelder können eine Signatur bei Erstellung des Blocks, einen Verweis auf einen letzten Konfigurationsblock, einen Eintragsfilter, der gültige und ungültige Einträge innerhalb des Blocks identifiziert, den letzten fortbestehenden Versatz eines Ordnungsdienstes, der den Block geordnet hat, und dergleichen umfassen. Die Signatur, der letzte Konfigurationsblock und die Ordner-Metadaten können durch den Ordnungsdienst hinzugefügt werden. Des Weiteren kann ein Bereitsteller des Blocks (zum Beispiel ein Blockchain-Knoten) Informationen zur Gültigkeit/Ungültigkeit auf der Grundlage einer Befürwortungsrichtlinie, einer Verifizierung von Lese-/Schreibsätzen und dergleichen hinzufügen. Der Eintragsfilter kann ein Byte-Array einer Größe, die gleich der Anzahl der Einträge in den Blockdaten 510A ist, sowie einen Validierungscode, der angibt, ob ein Eintrag gültig/ungültig war, umfassen.In some embodiments, block data 510A may also store transaction-specific data 506A, adding additional information to the hashed chain of blocks in the blockchain. Accordingly, the data 506A may be stored in an immutable log of blocks in the distributed ledger. Some of the benefits of storing such data 506A are reflected in the various embodiments disclosed and illustrated herein. The block metadata 508A can store multiple fields of metadata (e.g., as a byte array, etc.). The metadata fields may include a signature when the block was created, a reference to a last configuration block, an entry filter identifying valid and invalid entries within the block, the last surviving offset of an ordering service that ordered the block, and the like. The signature, the last configuration block and the folder metadata can be added by the security service. Furthermore, a provider of the block (e.g., a blockchain node) may add validity/invalid information based on an endorsement policy, verification of read/write records, and the like. The entry filter may include a byte array of a size equal to the number of entries in the block data 510A and a validation code indicating whether an entry was valid/invalid.

Die anderen Blöcke 502B bis 502n in der Blockchain weisen ebenfalls Header, Dateien und Werte auf. Im Gegensatz zu dem ersten Block 502A umfasst jedoch jeder der Header 504A bis 504n in den anderen Blöcken den Hash-Wert eines unmittelbar vorangehenden Blocks. Der Hash-Wert des unmittelbar vorherigen Blocks braucht nur der Hash-Wert des Headers des vorherigen Blocks zu sein oder kann der Hash-Wert des gesamten vorherigen Blocks sein. Durch Einbinden des Hash-Wertes eines vorherigen Blocks in jeden der verbleibenden Blöcke kann eine Rückverfolgung von dem N-ten Block zurück zum Entstehungsblock (und der zugehörigen Originaldatei) Block für Block durchgeführt werden, wie durch Pfeile 512 angedeutet, um eine überprüfbare und unveränderliche Obhutskette zu bilden.The other blocks 502B through 502n in the blockchain also have headers, files, and values. However, unlike the first block 502A, each of the headers 504A through 504n in the other blocks includes the hash value of an immediately preceding block. The hash of the immediately previous block need only be the hash of the header of the previous block, or may be the hash of the entire previous block. By including the hash value of a previous block in each of the remaining blocks, a block-by-block traceback from the Nth block back to the originating block (and its original file) can be performed, as indicated by arrows 512, around a verifiable and immutable chain of custody to build.

Die obigen Ausführungsformen können in Hardware, in einem durch einen Prozessor ausgeführten Computerprogramm, in Firmware oder in einer Kombination des oben Genannten implementiert werden. Ein Computerprogramm kann auf einem computerlesbaren Medium, wie zum Beispiel einem Speichermedium, verkörpert sein. Ein Computerprogramm kann sich zum Beispiel in einem Direktzugriffsspeicher („RAM“), einem Flash-Speicher, einem Nurlesespeicher („ROM“), einem löschbaren programmierbaren Nurlesespeicher („EPROM“), einem elektrisch löschbaren programmierbaren Nurlesespeicher („EEPROM“), Registern, einer Festplatte, einem Wechseldatenträger, einem Compact-Disk-Nurlesespeicher („CD-ROM“) oder einer anderen Form von Speichermedium befinden, die im Stand der Technik bekannt ist.The above embodiments may be implemented in hardware, in a computer program executed by a processor, in firmware, or in a combination of the above. A computer program may be embodied on a computer-readable medium, such as a storage medium. For example, a computer program may reside in random access memory ("RAM"), flash memory, read-only memory ("ROM"), erasable programmable read-only memory ("EPROM"), electrically erasable programmable read-only memory ("EEPROM"), registers , hard drive, removable media, compact disk read-only memory ("CD-ROM"), or any other form of storage media known in the art.

Ein beispielhafte Speichermedium kann so mit dem Prozessor gekoppelt werden, dass der Prozessor Informationen aus dem Speichermedium lesen und in das Speichermedium schreiben kann. Alternativ kann das Speichermedium in den Prozessor integriert sein. Der Prozessor und das Speichermedium können sich in einem anwendungsspezifischen integrierten Schaltkreis („ASIC“) befinden. Alternativ können der Prozessor und das Speichermedium auch als diskrete Komponenten vorhanden sein. Zum Beispiel veranschaulicht 6 eine beispielhafte Computersystemarchitektur 600, die eine der oben beschriebenen Komponenten darstellen oder in diese integriert sein kann, usw.An example storage medium can be coupled to the processor such that the processor can read information from and write information to the storage medium. Alternatively, the storage medium can be integrated into the processor. The processor and storage medium may reside in an application specific integrated circuit (“ASIC”). Alternatively, the processor and the storage medium can also exist as discrete components. For example illustrated 6 an exemplary computer system architecture 600, which may represent or be integrated with any of the components described above, etc.

6 soll keine Einschränkung hinsichtlich des Anwendungs- oder Funktionsbereichs von im vorliegenden Text beschriebenen Ausführungsformen implizieren. Ungeachtet dessen kann der Rechenknoten 600 mit jeder der oben dargelegten Funktionen implementiert werden und/oder kann jede der oben dargelegten Funktionen ausführen. 6 is not intended to limit the scope of application or functionality of any embodiment described herein men imply. Notwithstanding, the compute node 600 may be implemented with and/or perform any of the functions set forth above.

In dem Computerknoten 600 befindet sich ein Computersystem/Server 602, das bzw. der mit zahlreichen anderen Allzweck- oder Spezial-Computersystemumgebungen oder -konfigurationen arbeiten kann. Zu Beispielen bekannter Computersysteme, -umgebungen und/oder -konfigurationen, die für die Verwendung mit dem Computersystem/Server 602 geeignet sein können, gehören unter anderem Personalcomputersysteme, Servercomputersysteme, Thin Clients, Thick Clients, handgehaltene oder Laptop-Vorrichtungen, Mehrprozessorsysteme, mikroprozessorbasierte Systeme, Set-Top-Boxen, programmierbare Konsumelektronik, Netzwerk-PCs, Minicomputersysteme, Großrechnersysteme und verteilte Cloud-Computing-Umgebungen, die beliebige der oben genannten Systeme oder Vorrichtungen umfassen, und dergleichen.Within the computer node 600 is a computer system/server 602 that can operate in numerous other general purpose or special purpose computer system environments or configurations. Examples of known computing systems, environments, and/or configurations that may be suitable for use with computer system/server 602 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems , set-top boxes, programmable consumer electronics, network personal computers, minicomputer systems, mainframe systems, and distributed cloud computing environments incorporating any of the above systems or devices, and the like.

Das Computersystem/der Server 602 kann im allgemeinen Kontext mit durch ein Computersystem ausführbaren Instruktionen, wie zum Beispiel Programmmodulen, beschrieben werden, die durch ein Computersystem ausgeführt werden. Allgemein können Programmmodule Routinen, Programme, Objekte, Komponenten oder Datenstrukturen und so weiter umfassen, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen implementieren. Das Computersystem/der Server 602 kann in verteilten Cloud-Computing-Umgebungen praktiziert werden, wo Aufgaben durch räumlich abgesetzte Vorrichtungen ausgeführt werden, die über ein Kommunikationsnetzwerk vernetzt sind. In einer verteilten Cloud-Computing-Umgebung können Programmmodule sowohl in lokalen als auch in räumlich abgesetzten Computersystem-Speichermedien, einschließlich Arbeitsspeichervorrichtungen, angeordnet sein.Computer system/server 602 may be described in the general context of computer system-executable instructions, such as program modules, being executed by a computer system. In general, program modules can include routines, programs, objects, components, or data structures, and so on, that perform specific tasks or implement specific abstract data types. Computer system/server 602 may be practiced in distributed cloud computing environments where tasks are performed by remote devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media, including memory devices.

Wie in 6 gezeigt, ist das Computersystem/der Server 602 in dem Cloud-Computing-Knoten 600 in Form einer Allzweck-Rechenvorrichtung gezeigt. Die Komponenten des Computersystems/Servers 602 können unter anderem einen oder mehrere Prozessoren oder Verarbeitungseinheiten 604, einen Systemspeicher 606 und einen Bus umfassen, der verschiedene Systemkomponenten, einschließlich des Systemspeichers 606, mit dem Prozessor 604 koppelt.As in 6 As shown, computer system/server 602 in cloud computing node 600 is shown in the form of a general purpose computing device. The components of the computer system/server 602 may include, among other things, one or more processors or processing units 604, a system memory 606, and a bus that couples various system components, including the system memory 606, to the processor 604.

Der Bus repräsentiert eine oder mehrere von beliebigen verschiedenen Arten von Busstrukturen, einschließlich eines Speicherbusses oder Speichercontrollers, eines Peripheriebusses, eines beschleunigten Grafikports und eines Prozessors oder lokalen Busses, der eine beliebige aus einer Vielzahl verschiedener Busarchitekturen verwendet. Zu diesen Architekturen gehören zum Beispiel der Industry Standard Architecture (ISA)-Bus, der Micro Channel Architecture (MCA)-Bus, der Enhanced ISA (EISA)-Bus, der lokale Video Electronics Standards Association (VESA)-Bus und der Peripheral Component Interconnects (PCI)-Bus.The bus represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of different bus architectures. These architectures include, for example, the Industry Standard Architecture (ISA) bus, the Micro Channel Architecture (MCA) bus, the Enhanced ISA (EISA) bus, the Video Electronics Standards Association (VESA) local bus, and the Peripheral Component Interconnects (PCI) bus.

Das Computersystem/der Server 602 umfasst in der Regel eine Vielzahl verschiedener durch das Computersystem lesbare Medien. Solche Medien können beliebige verfügbare Medien sein, auf die das Computersystem/der Server 602 zugreifen kann, und sie umfassen sowohl flüchtige als auch nicht-flüchtige Medien sowie wechselfähige und nicht-wechselfähige Medien. Der Systemspeicher 606 implementiert in einer Ausführungsform die Flussdiagramme der anderen Figuren. Der Systemspeicher 606 kann durch das Computersystem lesbare Medien in Form von flüchtigem Speicher, wie zum Beispiel Direktzugriffsspeicher (RAM) 608 und/oder Cache-Speicher 610, umfassen. Das Computersystem/der Server 602 kann des Weiteren andere wechselfähige/nicht-wechselfähige, flüchtige/nicht-flüchtige Computersystem-Speichermedien umfassen. Lediglich als Beispiel kann der Speicher 606 zum Lesen und Beschreiben eines nicht-wechselfähigen, nicht-flüchtigen magnetischen Mediums (nicht gezeigt und in der Regel als eine „Festplatte“ bezeichnet) vorgesehen sein. Obgleich nicht gezeigt, können ein Magnetplattenlaufwerk zum Lesen und Beschreiben einer wechselfähigen, nicht-flüchtigen Magnet-Disk (zum Beispiel einer „Floppy-Disk“) und ein optisches Disk-Laufwerk zum Lesen und Beschreiben einer wechselfähigen, nicht-flüchtigen optischen Disk, wie zum Beispiel einer CD-ROM, DVD-ROM oder eines anderen optischen Mediums, vorhanden sein. In solchen Fällen kann jedes über eine oder mehrere Datenträgerschnittstellen mit dem Bus verbunden sein. Wie weiter unten noch gezeigt und beschrieben wird, kann der Speicher 606 mindestens ein Programmprodukt mit einem Satz (zum Beispiel mindestens einem) von Programmmodulen umfassen, die dafür eingerichtet sind, die Funktionen verschiedener Ausführungsformen der Anmeldung ausführen.The computer system/server 602 typically includes a variety of media readable by the computer system. Such media can be any available media that can be accessed by computer system/server 602 and includes both volatile and non-volatile media, removable and non-removable media. The system memory 606, in one embodiment, implements the flowcharts of the other figures. System memory 606 may include computer system-readable media in the form of volatile memory, such as random access memory (RAM) 608 and/or cache memory 610. Computer system/server 602 may further include other removable/non-removable, volatile/non-volatile computer system storage media. For example only, memory 606 may be configured to read from and write to a non-removable, non-volatile magnetic medium (not shown and typically referred to as a "hard drive"). Although not shown, a magnetic disk drive for reading and writing a removable, non-volatile magnetic disk (e.g., a "floppy disk") and an optical disk drive for reading and writing a removable, non-volatile optical disk, such as for example a CD-ROM, DVD-ROM or other optical medium. In such cases, each may be connected to the bus via one or more data carrier interfaces. As shown and described below, memory 606 may include at least one program product having a set (e.g., at least one) of program modules configured to perform the functions of various embodiments of the application.

Ein Programm/Dienstprogramm mit einem Satz (mindestens einem) von Programmmodulen kann beispielhaft und ohne Einschränkung in dem Speicher 606 gespeichert werden, wie auch ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten. Jedes der Betriebssysteme, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine Kombination davon kann eine Implementierung einer Netzwerkumgebung umfassen. Programmmodule führen allgemein die Funktionen und/oder Methodologien verschiedener Ausführungsformen der Anmeldung, wie im vorliegenden Text beschrieben, aus.By way of example and without limitation, a program/utility having a set (at least one) of program modules may be stored in memory 606, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating systems, one or more application programs, other program modules, and program data, or a combination thereof, may comprise an implementation of a network environment. Program modules generally perform the functions and/or methodologies differently ner embodiments of the application as described herein.

Wie dem Fachmann einleuchtet, können Aspekte der vorliegenden Anmeldung als ein System, ein Verfahren oder ein Computerprogrammprodukt verkörpert sein. Dementsprechend können Aspekte der vorliegenden Anmeldung die Form einer reinen Hardware-Ausführungsform, einer reinen Software-Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform, die Software- und Hardware-Aspekte kombiniert, annehmen, die alle im vorliegenden Text allgemein als ein „Schaltkreis“, ein „Modul“ oder ein „System“ bezeichnet werden können. Darüber hinaus können Aspekte der vorliegenden Anmeldung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert ist, auf denen ein computerlesbarer Programmcode verkörpert ist.As will be appreciated by those skilled in the art, aspects of the present application may be embodied as a system, method, or computer program product. Accordingly, aspects of the present application may take the form of a hardware-only embodiment, a software-only embodiment (including firmware, resident software, microcode, etc.), or an embodiment combining software and hardware aspects, all of which are discussed herein can be referred to generically as a "circuit", a "module" or a "system". Furthermore, aspects of the present application may take the form of a computer program product embodied in one or more computer readable media having computer readable program code embodied thereon.

Das Computersystem/der Server 602 kann auch mit einer oder mehreren externen Vorrichtungen über einen E/A-Adapter 612, wie zum Beispiel eine Tastatur, eine Zeigevorrichtung, ein Display usw., mit einer oder mehreren Vorrichtungen, die es einem Benutzer ermöglichen, mit dem Computersystem/Server 602 zu interagieren, und/oder mit beliebigen Vorrichtungen (zum Beispiel Netzwerkkarte, Modem usw.), die es dem Computersystem/Server 602 ermöglichen, mit einer oder mehreren anderen Computervorrichtungen zu kommunizieren, kommunizieren. Eine solche Kommunikation kann über E/A-Schnittstellen des Adapters 612 erfolgen. Des Weiteren kann das Computersystem/der Server 602 über einen Netzwerkadapter mit einem oder mehreren Netzwerken wie zum Beispiel einem Nahbereichsnetz (LAN), einem allgemeinen Fernbereichsnetz (WAN) und/oder einem öffentlichen Netzwerk (zum Beispiel dem Internet) kommunizieren. Wie gezeigt, kommuniziert der Adapter 612 mit den anderen Komponenten des Computersystems/Servers 602 über einen Bus. Es versteht sich, dass, obgleich nicht gezeigt, auch andere Hardware- und/oder Softwarekomponenten in Verbindung mit dem Computersystem/Server 602 verwendet werden könnten. Zu Beispielen hierfür gehören unter anderem: Mikrocode, Gerätetreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Datenarchivierungssysteme usw.Computer system/server 602 may also interface with one or more external devices via an I/O adapter 612, such as a keyboard, pointing device, display, etc., with one or more devices that enable a user interact with computer system/server 602, and/or communicate with any devices (e.g., network card, modem, etc.) that enable computer system/server 602 to communicate with one or more other computing devices. Such communication may occur via adapter 612 I/O interfaces. Furthermore, computer system/server 602 may communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via a network adapter. As shown, adapter 612 communicates with the other components of computer system/server 602 over a bus. It should be understood that although not shown, other hardware and/or software components could be used in connection with the computer system/server 602 as well. Examples include but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives and data archiving systems, etc.

Obgleich eine beispielhafte Ausführungsform von mindestens einem von einem System, einem Verfahren und einem nicht-transitorischen computerlesbaren Medium in den beigefügten Zeichnungen gezeigt und in der vorangehenden detaillierten Beschreibung beschrieben wurde, versteht es sich, dass die Anmeldung nicht auf die offenbarten Ausführungsformen beschränkt ist, sondern dass zahlreiche Umgestaltungen, Modifizierungen und Ersetzungen vorgenommen werden können, wie durch die folgenden Ansprüche dargelegt und definiert ist. Zum Beispiel können die Fähigkeiten des Systems der verschiedenen Figuren durch eines oder mehrere der im vorliegenden Text beschriebenen Module oder Komponenten oder in einer verteilten Architektur ausgeführt werden und können einen Sender, einen Empfänger oder ein Paar von beiden umfassen. Zum Beispiel kann die gesamte oder ein Teil der Funktionalität, die durch die einzelnen Module ausgeführt wird, durch ein oder mehrere dieser Module ausgeführt werden. Des Weiteren kann die hier beschriebene Funktionalität zu verschiedenen Zeiten und in Bezug auf verschiedene Ereignisse, innerhalb oder außerhalb der Module oder Komponenten, ausgeführt werden. Außerdem können die zwischen verschiedenen Modulen gesendeten Informationen zwischen den Modulen über mindestens eines von Folgendem gesendet werden: ein Datennetzwerk, das Internet, ein Sprachnetzwerk, ein Internet Protocol-Netzwerk, eine Drahtlosvorrichtung, eine leitungsgebundene Vorrichtung und/oder über mehrere Protokolle. Außerdem können die durch beliebige der Module gesendeten oder empfangenen Nachrichten direkt und/oder über eines oder mehrere der anderen Module gesendet oder empfangen werden.Although an exemplary embodiment of at least one of a system, a method, and a non-transitory computer-readable medium has been shown in the accompanying drawings and described in the foregoing detailed description, it should be understood that the application is not limited to the disclosed embodiments, but rather that numerous rearrangements, modifications and substitutions can be made as set forth and defined by the following claims. For example, the capabilities of the system of the various figures may be implemented by one or more of the modules or components described herein, or in a distributed architecture, and may include a transmitter, a receiver, or a pair of both. For example, all or a portion of the functionality performed by each module may be performed by one or more of those modules. Furthermore, the functionality described herein may be performed at different times and in relation to different events, inside or outside the modules or components. Additionally, information sent between different modules may be sent between modules over at least one of a data network, the Internet, a voice network, an Internet Protocol network, a wireless device, a wired device, and/or multiple protocols. Additionally, the messages sent or received by any of the modules may be sent or received directly and/or through one or more of the other modules.

Dem Fachmann ist klar, dass ein „System“ als ein Personalcomputer, ein Server, eine Konsole, ein persönlicher digitaler Assistent (PDA), ein Mobiltelefon, eine Tablet-Rechenvorrichtung, ein Smartphone oder eine andere geeignete Computervorrichtung oder eine Kombination von Vorrichtungen verkörpert werden kann. Die Darstellung der oben beschriebenen Funktionen als durch ein „System“ ausgeführt, soll den Geltungsbereich der vorliegenden Anmeldung in keiner Weise einschränken, sondern soll ein konkretes Beispiel von vielen Ausführungsformen darstellen. Die hier offenbarten Verfahren, Systeme und Vorrichtungen können vielmehr in lokalisierten und verteilten Formen implementiert werden, die mit der Computertechnologie vereinbar sind.Those skilled in the art will appreciate that a "system" can be embodied as a personal computer, server, console, personal digital assistant (PDA), cell phone, tablet computing device, smartphone, or other suitable computing device or combination of devices can. The depiction of the functions described above as being performed by a "system" is not intended in any way to limit the scope of the present application, but is intended to provide a specific example of many embodiments. Rather, the methods, systems, and apparatus disclosed herein may be implemented in localized and distributed forms consistent with computing technology.

Es ist anzumerken, dass einige der in dieser Spezifikation beschriebenen Systemmerkmale als Module präsentiert wurden, um ihre Implementierungsunabhängigkeit besonders hervorzuheben. Zum Beispiel kann ein Modul als ein Hardware-Schaltkreis implementiert werden, der spezielle Very Large-Scale Integration (VLSI)-Schaltkreise oder Gate-Arrays, handelsübliche Halbleiter wie zum Beispiel Logikchips, Transistoren oder andere diskrete Komponenten umfasst. Ein Modul kann auch in programmierbaren Hardware-Vorrichtungen implementiert werden, wie zum Beispiel feldprogrammierbaren Gate-Arrays, programmierbarer Array-Logik, programmierbaren Logikvorrichtungen, Grafikverarbeitungseinheiten oder dergleichen.It should be noted that some of the system features described in this specification have been presented as modules to emphasize their implementation independence. For example, a module may be implemented as a hardware circuit comprising special purpose Very Large Scale Integration (VLSI) circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. A module can also be implemented in programmable hardware devices, such as field programmable gate arrays, more programmable array logic, programmable logic devices, graphics processing units, or the like.

Ein Modul kann auch mindestens teilweise in Software zum Ausführen durch verschiedene Arten von Prozessoren implementiert werden. Eine identifizierte Einheit von ausführbarem Code kann zum Beispiel einen oder mehrere physische oder logische Blöcke von Computerinstruktionen umfassen, die zum Beispiel als ein Objekt, eine Verfahrensweise oder eine Funktion organisiert sein können. Ungeachtet dessen müssen die ausführbaren Elemente eines identifizierten Moduls nicht physisch zusammen angeordnet zu sein, sondern können disparate Instruktionen umfassen, die an verschiedenen Orten gespeichert sind, die, wenn sie logisch miteinander verbunden werden, das Modul bilden und den angegebenen Zweck für das Modul erreichen. Darüber hinaus können Module auf einem computerlesbaren Medium gespeichert werden, zum Beispiel auf einer Festplatte, einer Flash-Vorrichtung, einem Direktzugriffsspeicher (RAM), einem Band oder einem sonstigen Medium, das zum Speichern von Daten verwendet wird.A module can also be implemented, at least in part, in software for execution by various types of processors. An identified unit of executable code may include, for example, one or more physical or logical blocks of computer instructions, which may be organized as an object, a procedure, or a function, for example. Notwithstanding, the executable elements of an identified module need not be physically co-located, but may comprise disparate instructions stored in different locations which, when logically linked together, form the module and achieve the stated purpose for the module. Additionally, modules may be stored on a computer-readable medium, such as a hard drive, flash device, random access memory (RAM), tape, or any other medium used to store data.

Ein Modul von ausführbarem Code kann praktisch eine einzelne Instruktion oder viele Instruktionen sein und kann sogar über mehrere verschiedene Codesegmente, zwischen verschiedenen Programmen und über mehrere Speichervorrichtungen hinweg verteilt sein. In ähnlicher Weise können Betriebsdaten im vorliegenden Text innerhalb von Modulen identifiziert und veranschaulicht werden und können in jeder geeigneten Form verkörpert und in jeder geeigneten Art von Datenstruktur organisiert sein. Die Betriebsdaten können als ein einzelner Datensatz erfasst werden oder können über verschiedene Standorte, einschließlich über verschiedene Speichervorrichtungen, verteilt sein und brauchen - wenigstens teilweise - lediglich als eine elektronische Signale in einem System oder Netzwerk vorzuliegen.A module of executable code can be virtually a single instruction or many instructions, and can even be distributed across multiple different code segments, between different programs, and across multiple storage devices. Similarly, operational data herein may be identified and illustrated within modules and may be embodied in any suitable form and organized in any suitable type of data structure. The operational data may be collected as a single set of data, or may be distributed across different locations, including across different storage devices, and need exist—at least in part—only as an electronic signal in a system or network.

Es versteht sich, dass die Komponenten der Anmeldung, wie sie in den Figuren im vorliegenden Text allgemein beschrieben und veranschaulicht sind, in einer breiten Vielzahl verschiedener Ausgestaltungen angeordnet und ausgelegt werden können. Die detaillierte Beschreibung der Ausführungsformen soll daher nicht den Schutzumfang der Anmeldung in seiner beanspruchten Form einschränken, sondern ist lediglich für ausgewählte Ausführungsformen der Anmeldung repräsentativ.It should be understood that the components of the application, as generally described and illustrated in the figures herein, can be arranged and configured in a wide variety of different configurations. The detailed description of the embodiments is therefore not intended to limit the scope of protection of the application as claimed, but is merely representative of selected embodiments of the application.

Dem Durchschnittsfachmann leuchtet ohne Weiteres ein, dass die obigen Ausführungen mit Schritten in einer anderen Reihenfolge und/oder mit Hardware-Elementen in anderen Ausgestaltungen als den offenbarten ausgeführt werden kann. Obgleich die Anmeldung auf der Grundlage dieser bevorzugten Ausführungsformen beschrieben wurde, ist dem Fachmann darum klar, dass bestimmte Modifizierungen, Variationen und alternative Bauweisen möglich sind.One of ordinary skill in the art will readily appreciate that the above embodiments may be practiced using steps in a different order and/or using hardware elements in configurations other than those disclosed. Therefore, while the application has been described in terms of these preferred embodiments, those skilled in the art will recognize that certain modifications, variations, and alternative constructions are possible.

Obgleich bevorzugte Ausführungsformen der vorliegenden Anmeldung beschrieben wurden, versteht es sich, dass die beschriebenen Ausführungsformen nur veranschaulichend sind und dass der Schutzumfang der Anmeldung ausschließlich durch die beigefügten Ansprüche definiert wird, die vor dem Hintergrund der vollen Bandbreite ihrer Äquivalente und Modifizierungen (zum Beispiel Protokolle, Hardware-Vorrichtungen, Software-Plattformen usw.) zu interpretieren sind.While preferred embodiments of the present application have been described, it should be understood that the described embodiments are illustrative only and that the scope of the application is defined solely by the appended claims, which should be considered in light of the full breadth of their equivalents and modifications (e.g., protocols, hardware devices, software platforms, etc.).

Claims (10)

System, umfassend: einen Prozessor eines Beförderungsmittels einer Teilmenge von Beförderungsmitteln; und einen Speicher, der kommunikativ mit dem Prozessor gekoppelt ist, wobei der Prozessor: ein Software-Update in dem Beförderungsmittel empfängt; das Software-Update auf der Grundlage eines oder mehrerer von Folgendem validiert: eines Zeitraums, in dem das Software-Update genutzt wird, und einer Anzahl von Nutzungen des Software-Updates durch die Teilmenge der Beförderungsmittel; das Software-Update auf der Grundlage der Validierung an eine weitere Teilmenge von Beförderungsmitteln verbreitet, wobei die weitere Teilmenge der Beförderungsmittel größer ist als die Teilmenge der Beförderungsmittel.System comprising: a processor of a vehicle of a subset of vehicles; and a memory communicatively coupled to the processor, the processor: receives a software update in the conveyance; validates the software update based on one or more of the following: a period in which the software update is used, and a number of uses of the software update by the subset of conveyances; propagates the software update to a further subset of conveyances based on the validation, wherein the further subset of conveyances is greater than the subset of conveyances. System nach Anspruch 1, wobei der Prozessor das Software-Update an eine Menge aller verbleibenden Beförderungsmittel verbreitet, wobei die Menge aller verbleibenden Beförderungsmittel größer ist als die weitere Teilmenge der Beförderungsmittel.system after claim 1 , wherein the processor propagates the software update to a set of all remaining conveyances, the set of all remaining conveyances being greater than the further subset of conveyances. System nach Anspruch 1, wobei eines oder mehrere der Teilmenge von Beförderungsmitteln, der weiteren Teilmenge der Beförderungsmittel und der Menge aller verbleibenden Beförderungsmittel auf einem oder mehreren von Folgendem basieren: existierender Software; existierender Hardware; einem geografischen Standort; einer Umgebungstemperatur; einer Beförderungsmittelmarke; einem Beförderungsmittelmodell; einem Beförderungsmittelzustand; einem Straßenzustand; und einem Beförderungsmittelziel.system after claim 1 wherein one or more of the subset of conveyances, the further subset of conveyances, and the set of all remaining conveyances are based on one or more of: existing software; existing hardware; a geographic location; an ambient temperature; a means of transport brand; a vehicle model; a vehicle condition; a road condition; and a conveyance destination. System nach Anspruch 1, wobei der Prozessor eines oder mehrere der Teilmenge der Beförderungsmittel, der weiteren Teilmenge der Beförderungsmittel und der Menge aller verbleibenden Beförderungsmittel ändert, wenn auf der Grundlage der Validierung ein negatives Ergebnis bestimmt wird.system after claim 1 , wherein the processor changes one or more of the subset of conveyances, the further subset of conveyances, and the set of all remaining conveyances if a negative result is determined based on the validation. System nach Anspruch 1, wobei der Prozessor eines oder mehrere der Teilmenge der Beförderungsmittel, der weiteren Teilmenge der Beförderungsmittel und der Menge aller verbleibenden Beförderungsmittel auf eines oder mehrere von einer ursprünglichen Software-Version und einem früheren Software-Update zurücksetzt, wenn auf der Grundlage der Validierung ein negatives Ergebnis bestimmt wird.system after claim 1 , wherein the processor reverts one or more of the subset of conveyances, the further subset of conveyances and the set of all remaining conveyances to one or more of an original software version and a previous software update if, based on the validation, a negative result is determined. System nach Anspruch 1, wobei der Prozessor das Software-Update verwendet für: eine erste Zeitdauer durch die Teilmenge der Beförderungsmittel; und eine zweite Zeitdauer durch die weitere Teilmenge der Beförderungsmittel, wobei die erste Zeitdauer größer ist als die zweite Zeitdauer.system after claim 1 wherein the processor uses the software update for: a first period of time through the subset of conveyances; and a second length of time through the further subset of conveyances, the first length of time being greater than the second length of time. System nach Anspruch 1, wobei die Teilmenge der Beförderungsmittel zu einem Blockchain-Netzwerk gehört.system after claim 1 , where the subset of conveyances belongs to a blockchain network. System nach Anspruch 6, wobei der Prozessor einen intelligenten Vertrag (Smart Contract) des Blockchain-Netzwerks ausführt, um das Software-Update zu validieren und das Software-Update durch mehrere der Beförderungsmittel zu verbreiten.system after claim 6 wherein the processor executes a blockchain network smart contract to validate the software update and propagate the software update through multiple of the vehicles. System nach Anspruch 1, wobei der Prozessor eine erste Validierung des Software-Updates in einer ersten Umgebung durchführt, wobei die erste Umgebung einen geringsten Betrag potenzieller Interaktionen umfasst, und eine weitere Validierung des Software-Updates in einer weiteren Umgebung durchführt, wenn die erste Validierung erfolgreich ist, wobei die weitere Umgebung einen größeren Betrag potenzieller Interaktionen umfasst als die erste Umgebung.system after claim 1 , wherein the processor performs a first validation of the software update in a first environment, the first environment including a least amount of potential interactions, and performs a further validation of the software update in a further environment if the first validation is successful, wherein the wider environment includes a greater amount of potential interactions than the first environment. System nach Anspruch 9, wobei der Prozessor die weitere Validierung des Software-Updates von einem anderen Beförderungsmittel empfängt.system after claim 9 , wherein the processor receives further validation of the software update from another conveyance.
DE112020004859.4T 2019-10-09 2020-10-09 UPDATE MANAGEMENT FOR TRANSPORT SOFTWARE Pending DE112020004859T5 (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US16/597,770 US11169795B2 (en) 2019-10-09 2019-10-09 Management of transport software updates
US16/597,770 2019-10-09
US16/597,786 2019-10-09
US16/597,786 US11422792B2 (en) 2019-10-09 2019-10-09 Management of transport software updates
US16/597,796 2019-10-09
US16/597,796 US11294662B2 (en) 2019-10-09 2019-10-09 Management of transport software updates
PCT/US2020/055151 WO2021072324A1 (en) 2019-10-09 2020-10-09 Management of transport software updates

Publications (1)

Publication Number Publication Date
DE112020004859T5 true DE112020004859T5 (en) 2022-07-28

Family

ID=75437761

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020004859.4T Pending DE112020004859T5 (en) 2019-10-09 2020-10-09 UPDATE MANAGEMENT FOR TRANSPORT SOFTWARE

Country Status (4)

Country Link
JP (1) JP7376695B2 (en)
CN (1) CN114341801A (en)
DE (1) DE112020004859T5 (en)
WO (1) WO2021072324A1 (en)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619699A (en) * 1992-07-02 1994-01-28 Toshiba Corp Software release time estimating device and method
JP4264254B2 (en) * 2002-12-19 2009-05-13 株式会社小松製作所 In-vehicle program rewrite control system
JPWO2011135629A1 (en) * 2010-04-28 2013-07-18 株式会社日立製作所 Software distribution management method in computer system and computer system for software distribution management
US10185550B2 (en) * 2016-09-28 2019-01-22 Mcafee, Inc. Device-driven auto-recovery using multiple recovery sources
US10069860B1 (en) * 2017-02-14 2018-09-04 International Business Machines Corporation Protection for computing systems from revoked system updates
US10503427B2 (en) * 2017-03-10 2019-12-10 Pure Storage, Inc. Synchronously replicating datasets and other managed objects to cloud-based storage systems
CN111133412A (en) * 2017-07-25 2020-05-08 奥罗拉实验室有限公司 Software incremental update and anomaly detection for building vehicle ECU software based on tool chain
JP6861615B2 (en) * 2017-11-30 2021-04-21 株式会社日立製作所 In-vehicle software distribution system, in-vehicle software distribution server, and in-vehicle software distribution method
EP3743835B1 (en) * 2018-01-25 2022-09-28 Fortress Cyber Security, LLC Secure storage of data and hashes via a distributed ledger system

Also Published As

Publication number Publication date
CN114341801A (en) 2022-04-12
JP7376695B2 (en) 2023-11-08
JP2022551560A (en) 2022-12-12
WO2021072324A1 (en) 2021-04-15

Similar Documents

Publication Publication Date Title
DE102020106368A1 (en) SHARE VEHICLE DATA WITH INTERESTED PARTIES
US20230322114A1 (en) Transport-based energy allocation
US11615200B2 (en) Providing video evidence
US11954952B2 (en) Processing of accident report
DE112021003364T5 (en) Demand-based power distribution
US11552507B2 (en) Wirelessly notifying a transport to provide a portion of energy
US11853358B2 (en) Video accident reporting
DE102021123067A1 (en) Secure means of transport data exchange
US20220179647A1 (en) Management of transport software updates
US20220374228A1 (en) Management of transport software updates
US20230122069A1 (en) Distance-based energy transfer from a transport
US20240111517A1 (en) Management of transport software updates
US20230373417A1 (en) Adjustment of environment of transports
DE102021109015A1 (en) CARGO TRANSFER MANAGEMENT FOR A MEANS OF TRANSPORT
US20240027216A1 (en) Sharing of transport user profile
DE102021109009A1 (en) LOAD IMPACT ON THE ENERGY OF A MEANS OF TRANSPORT
US11615381B2 (en) Geo-fence responsibility creation and management
DE112020004859T5 (en) UPDATE MANAGEMENT FOR TRANSPORT SOFTWARE
US11062605B1 (en) Transport damage data gathering
US11388582B2 (en) Providing media based on profile sharing
US20210291867A1 (en) Transport safety
US11529918B2 (en) Adjustment of environment of transports
DE112021003665T5 (en) DYNAMIC ADJUSTMENT OF SAFETY CONTROLS IN DRIVING MODE
US20210166336A1 (en) Transport user profile-based service

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0008600000

Ipc: G06F0021570000