Method, apparatus, device and computer program for peers in a blockchain network
Through the ability of smart contracts to manage peers, the fine-grained allocation of blockchain network resources is achieved, the problem of inability to effectively abstract hardware and allocate resources in the existing technology is solved, and the efficiency of task distribution is improved.
Patent Information
- Application Number
- CN202411189997.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-09-29
- Filing Date
- 2024-08-28
- Publication Date
- 2025-04-01
AI Technical Summary
Existing blockchain technology is difficult to effectively abstract hardware, resulting in the inability to allocate resources that meet Web3 requirements in a fine-grained manner.
Through smart contract management, peer capabilities in the blockchain network are identified and tasks are activated and distributed on demand based on peer capabilities.
It realizes fine-grained management and allocation of blockchain network resources, and improves the efficiency and accuracy of task distribution.
Smart Images

Figure CN119743514A_ABST
Abstract
Description
Background Art
[0001] Most popular blockchain technologies abstract the hardware by exposing all its functions through a virtual machine, such as the Ethereum Virtual Machine (EVM) on the Ethereum blockchain network. In this case, there is no fine-grained way to specify the requirements of Web3 and its corresponding resources to be used for Web3. BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Some examples of apparatus and / or methods will be described below by way of example only and with reference to the accompanying drawings, in which:
[0003] Figure 1a A flow chart illustrating an example of a method for distributing tasks to Web3 peers in a blockchain network;
[0004] Figure 1b Schematic diagram showing examples of an apparatus or device for distributing tasks to Web3 peers in a blockchain network, a Web3 peer including such an apparatus or device, and a system including at least two peers in a blockchain network;
[0005] Figure 2a A flow chart illustrating an example of a method for a peer in a blockchain network;
[0006] Figure 2b Schematic diagrams showing examples of an apparatus or device for a peer in a blockchain network, a peer including such an apparatus or device, and a system including at least two peers in a blockchain network;
[0007] Figure 3 A schematic diagram showing resource activation based on the Gossip protocol;
[0008] Figure 4 A diagram showing a use case with heterogeneous capabilities that can be made homogeneous; and
[0009] Figure 5 A diagram showing the operational flow for onboarding and resource activation of a new node using a peer consensus mechanism. DETAILED DESCRIPTION
[0010] Some examples are now described in more detail with reference to the accompanying drawings. However, other possible examples are not limited to the features of these embodiments described in detail. Other examples may include modifications of features and equivalents and alternatives of features. In addition, the terms used to describe certain examples herein should not limit further possible examples.
[0011] Throughout the description of the drawings, the same or similar reference numerals refer to the same or similar elements and / or features, which may be the same or implemented in a modified form while providing the same or similar functions. For clarity, the thickness of lines, layers and / or regions in the drawings may also be exaggerated.
[0012] When two elements A and B are combined using "or", this is to be understood as disclosing all possible combinations, i.e., only A, only B, and A and B, unless otherwise explicitly defined in individual cases. As an alternative wording for the same combination, "at least one of A and B" or "A and / or B" may be used. This applies equally to combinations of more than two elements.
[0013] If singular forms such as "a / an" and "the" are used and the use of only a single element is neither explicitly nor implicitly defined as mandatory, further examples may also use several elements to achieve the same function. If a function is described below as being achieved using multiple elements, further examples may use a single element or a single processing entity to achieve the same function. It is further understood that when the term "include", "including", "comprise" and / or "comprising" is used, it describes the presence of specified features, integers, steps, operations, processes, elements, components and / or groups thereof, but does not exclude the presence or addition of one or more other features, integers, steps, operations, processes, elements, components and / or groups thereof.
[0014] In the following description, specific details are set forth, but examples of the techniques described herein may be implemented without these specific details. Well-known circuits, structures, and techniques are not shown in detail to avoid obscuring the understanding of this description. "An example / example", "various examples / examples", "some examples / examples", etc. may include features, structures, or characteristics, but not every example necessarily includes these specific features, structures, or characteristics.
[0015] Some examples may have some, all, or none of the features described for other examples. "First," "second," "third," and the like describe common elements and indicate different instances of similar elements being referenced. Such adjectives do not imply that the elements so described must be in a given order, either temporally or spatially, in ranking, or in any other way. "Connected" may indicate that elements are in direct physical or electrical contact with each other, and "coupled" may indicate that elements cooperate or interact with each other, but these elements may or may not be in direct physical or electrical contact.
[0016] As used herein, the terms "operate," "execute," or "run" are used interchangeably when referring to software or firmware associated with a system, device, platform, or resource, and may refer to software or firmware stored in one or more computer-readable storage media accessible by a system, device, platform, or resource, even if the instructions contained in the software or firmware are not being actively executed by the system, device, platform, or resource.
[0017] The specification may use the phrases "in an example / example", "in various examples", "in some examples / examples", and / or "in various examples / examples", each of which may refer to one or more of the same or different examples. In addition, the terms "comprising", "including", "having", etc. as used with respect to the examples of the present disclosure are synonymous.
[0018] Figure 1a The method for distributing tasks to the blockchain network 1 (in Figure 1b ) in a Web3 peer 200 (shown in Figure 1b 110: In the smart contract 105 (in Figure 1b During execution of a blockchain network 105 (shown in ), a plurality of tasks to be performed by one or more peers 200 in the blockchain network 1 are identified. The method includes: 150: Determining capabilities of peers in the blockchain network. At least one capability of at least one peer in the blockchain network is unlocked in accordance with an on-demand unlocking of capabilities at the corresponding peer. The method includes: 160: Distributing a plurality of tasks to one or more peers based on the capabilities of the peers in the blockchain network. For example, the method may be executed by a smart contract 105 (e.g., executing the smart contract by a host (e.g., a Web3 peer / node in the blockchain network)).
[0019] Figure 1bA schematic diagram showing an example of a corresponding apparatus 10 or device 10 for distributing tasks to Web3 peers 200 in a blockchain network 1. The apparatus 10 includes an interface 12 for communicating with a Web3 peer 200 (i.e., a node of the blockchain network). The apparatus 10 includes machine-readable instructions 16a. The apparatus includes a processor circuit system 14, which may include a trusted execution environment for executing machine-readable instructions inside or outside the trusted execution environment to perform Figure 1a In other words, the processor circuit system can be configured to perform Figure 1a For example, processor circuitry 14 may be coupled to interface circuitry 12. For example, processor circuitry 14 may be combined with interface circuitry 12 (for example, exchanging information with Web3 peer 200) to provide the functionality of the device. In some examples, processor circuitry may further include memory / storage circuitry 16 for storing information, wherein memory circuitry 16 is coupled to processor circuitry 14. Similarly, device 10 may include means for providing the functionality of device 10. For example, the device may be configured to provide the functionality of device 10. Components of device 10 are defined as component means that may correspond to or be implemented by corresponding structural components of device 10. For example, Figure 1b The device 10 includes: a device 14 for processing, which may correspond to the processor circuit system 14 or be implemented by the processor circuit system 14; a device 12 for communication, which may correspond to the interface circuit system 12 or be implemented by the interface circuit system 12; and (optional) a storage device / memory 16, which may correspond to the memory / storage circuit system 16 or be implemented by the memory / storage circuit system 16. In some examples, the functions of the processor circuit system 14 or the device 14 for processing can be implemented by the processor circuit system 14 or the device 14 for processing executing machine-readable instructions. Therefore, any features attributed to the processor circuit system 14 or the device 14 for processing can be defined by one or more instructions of a plurality of machine-readable instructions. The device 10 or apparatus 10 may include machine-readable instructions 16a (e.g., within the memory / storage circuit system 16 or within the TEE of the processor circuit system / the device 14 for processing).
[0020] Figure 1b Further shown is a computer system 100 including an apparatus 10 or device 10 (e.g., a Web3 peer or node in a blockchain network). Figure 1b It is further shown that Figure 1b The apparatus 10 or device 10 shown in Figure 2b The system of the apparatus 20 or device 20 is introduced. Figure 1b It is further shown that Figure 1b The (Web3) peer / node 100 shown in Figure 2b A system of one or more further (Web3) peers / nodes 200 is introduced.
[0021] The examples of this disclosure are based on the discovery that some computations are only possible if the hardware used to perform them has certain capabilities. Software Guard Extensions) may be necessary to perform confidential computing. Large amounts of graphics memory may be necessary to run inferences on large machine learning models. Vector extensions may be necessary to perform complex vector / matrix multiplications, such as for scientific computing. Higher processor clock rates coupled with higher instructions per clock may be necessary to achieve the desired latency. Distributing content may require larger input / output (I / O) bandwidth. Although such capabilities may exist in nodes used in the context of Web3 (i.e., nodes of a blockchain network where interactions between nodes are based on currency transfers), they are typically not explicitly exposed because the computing power of certain nodes is hidden under layers of virtualization and / or containerization. Therefore, if Web3 is used for distributed computing, these specialized capabilities may not be used because the nodes / peers distributing the work do not know the precise capabilities that other nodes can provide.
[0022] In addition, one trend in high-end computing is the development of software-defined silicon (SDSi). In software-defined silicon, capabilities are included by default in hardware components (e.g., central processing unit (CPU), graphics processing unit (GPU), accelerators, etc.). For example, the theoretical capabilities of a hardware component may be the same across different stock-keeping units (SKUs), but different subsets of capabilities may be enabled by default. This allows market segmentation (allowing both the sale of hardware with a large amount of capabilities and the sale of hardware with a basic amount of capabilities), improves manufacturing efficiency (because the hardware manufactured is the same, production can be increased faster), and can even generate after-sales service revenue by giving customers the option to enable capabilities (i.e., features) on demand after the hardware is sold (e.g., temporarily or permanently).
[0023] In the proposed concept, both explicit exposure of capabilities (i.e., hardware features) and on-demand activation of capabilities are used to improve the distribution of (computational) tasks to nodes / peers in a blockchain network.
[0024] The management basis of the proposed concept is a smart contract used to distribute work. The method includes: 110: During the execution of the smart contract 105, a plurality of tasks to be performed by one or more peers in the blockchain network are identified. In general, a smart contract is a programming code stored on a blockchain that automatically executes predefined actions when certain conditions are met. In the context of the present disclosure, in some implementations, a smart contract may be a framework or middleware that allows a decentralized application to distribute its tasks to peers / nodes in a blockchain network (i.e., hereinafter, the terms "peer" and "node" are used interchangeably). A decentralized application (also referred to as a DApp) is a software application that operates on a decentralized network infrastructure such as a blockchain. Unlike traditional applications that are typically hosted on centralized servers, a DApp distributes its processing power and data across a network of participating nodes. For example, a smart contract can assure a decentralized application that the distributed tasks are performed according to the capability requirements defined by the decentralized application. In other words, as Figure 4 As shown in , distributed applications ( Figure 4 420) can use smart contracts ( Figure 4 410 in) distributes tasks to hosts ( Figure 4 401-40N in ). Alternatively, the smart contract can be a decentralized application (a smart contract is a special case of a decentralized application) that includes tasks that are distributed to peers in the blockchain network. For example, the identified tasks can be explicitly specified by the decentralized application, for example, specified to the smart contract in the first case, or specified as part of the smart contract in the second case. For example, each task can be distributed to a separate peer. Alternatively, one or more peers can perform more than one of the multiple tasks.
[0025] To decide which peers a task is distributed to, the primary determining factor is the capabilities supported by the respective peers. For this purpose, the method includes: 150: determining (e.g., by means of smart contract 105) the capabilities of peers in the blockchain network. Determining the capabilities of peers may be based on a loading process (e.g., Figure 5 The loading process is shown in ).
[0026] Generally speaking, if Figure 5As shown in , peers in a blockchain network may self-report their capabilities and the hardware, firmware, and / or software stack used by the respective peers. However, as outlined above, in some cases, a peer may have access to certain capabilities via on-demand unlocking but not report such capabilities because the operator does not believe that on-demand unlocking is worthwhile, or a peer may self-report capabilities that are available via on-demand unlocking (but these capabilities have not been unlocked because these tasks have not been worthwhile to the operator to date). Moreover, in some cases, fraudulent nodes / peers may claim to possess certain capabilities in order to induce a smart contract to assign tasks to them (which are subsequently deliberately sabotaged, for example, by providing late results, false results, no results, or leaking confidential information). Therefore, the availability of capabilities may not only be self-reported, but also verified by independent verifiers (e.g., Figure 5 In other words, the capabilities of a peer may be based on an evaluation of the evaluation tasks performed by the peer, such evaluation being performed by a randomly selected evaluation peer in the blockchain network.
[0027] Although such evaluation is suitable for confirming that a peer has (or does not have) capabilities, such evaluation may take some time, during which time the peer is excluded from performing the task. In some cases, this may be considered a difficult situation to maintain, because the peer may be available only for a short period of time (e.g., between more persistent task assignments) in any case. Therefore, during this period, predictions can be used to predict the capabilities of the peer based on the hardware of the peer and based on prior knowledge of the capabilities of similar peers with the same or similar hardware. For example, before the evaluation of the evaluation task, the capabilities of the peer may be based on the prediction of the capabilities of the peer based on the hardware of the peer. Such predictions can be performed based on the hardware of the peer using a machine learning model (e.g., a classifier model). In other words, the prediction of the capabilities of the peer can be based on a machine learning model for predicting the capabilities of the peer based on the hardware of the peer. Each peer in the blockchain network can contribute to the machine learning model, for example, using federated learning, wherein the distributed ledger of the blockchain network is used to coordinate the federated learning. In other words, federated learning can be used to train machine learning models.
[0028] A brief introduction to machine learning is given below. Machine learning refers to algorithms and statistical models that computer systems can use to perform specific tasks without using explicit instructions but relying on models and inferences. For example, in machine learning, data transformations inferred from analysis of historical and / or training data can be used instead of rule-based data transformations. For example, the content of an image can be analyzed using a machine learning model or using a machine learning algorithm. In order for a machine learning model to analyze the content of an image, the machine learning model can be trained using training images as input and training content information as output. By training the machine learning model using a large number of training images and associated training content information, the machine learning model "learns" to recognize the content of the image, so the machine learning model can be used to recognize the content of images that are not contained in the training images. The same principle can also be used for other kinds of sensor data: by training a machine learning model using training sensor data and expected outputs, the machine learning model "learns" the transformation between sensor data and output, which can be used to provide output based on non-training sensor data provided to the machine learning model.
[0029] The machine learning model is trained using training input data. The example specified above uses a training method called "supervised learning". In supervised learning, the machine learning model is trained using multiple training samples, each of which may include multiple input data values and multiple expected output values, that is, each training sample is associated with an expected output value. By specifying both the training samples and the expected output values, the machine learning model "learns" which output value is provided based on input samples similar to the samples provided during training. In addition to supervised learning, semi-supervised learning can also be used. In semi-supervised learning, some of the training samples lack corresponding expected output values. Supervised learning can be based on supervised learning algorithms, such as classification algorithms, regression algorithms, or similarity learning algorithms. When the output is restricted to a limited set of values, that is, the input is classified into a value in a limited set of values, a classification algorithm can be used. When the output can have any numerical value (within a range), a regression algorithm can be used. Similarity learning algorithms are similar to both classification algorithms and regression algorithms, but are based on learning from examples using a similarity function that measures the similarity or correlation between two objects.
[0030] In the present context, a machine learning model is used to make predictions based on the hardware of the peer being evaluated. Specifically, a machine learning model can be used to predict, for each capability in a capability list, whether the peer supports the capability - this is a binary classification for each capability. Accordingly, the machine learning model can be a classifier trained to predict, for each of a plurality of capabilities, whether the peer supports the capability. Training can be performed using supervised learning, for example, for a plurality of nodes with known and evaluated capabilities, by using the hardware of the corresponding node as training input data and the capabilities of the node (e.g., encoded as a binary vector indicating whether the capability is supported) as the desired training output. Such training can be performed at different peers in the blockchain network (e.g., at an evaluation peer / audit node), and the results of the local training can be aggregated on the blockchain and integrated using federated learning (e.g., at each peer).
[0031] Machine learning algorithms are typically based on machine learning models. In other words, the term "machine learning algorithm" may refer to a set of instructions that can be used to create, train, or use a machine learning model. The term "machine learning model" may refer to a data structure and / or rule set that represents learned knowledge (e.g., based on training performed by a machine learning algorithm). In embodiments, the use of a machine learning algorithm may mean the use of an underlying machine learning model (or multiple underlying machine learning models). The use of a machine learning model may mean that the machine learning model and / or the data structure / rule set that is the machine learning model is trained by a machine learning algorithm.
[0032] For example, the machine learning model may be an artificial neural network (ANN). ANN is a system inspired by biological neural networks (such as those found in the brain). ANN includes multiple interconnected nodes and multiple connections between nodes, i.e., so-called edges. There are usually three types of nodes, i.e., input nodes that receive input values, hidden nodes that are (only) connected to other nodes, and output nodes that provide output values. Each node may represent an artificial neuron. Each edge can transmit information from one node to another. The output of a node may be defined as a (nonlinear) function of the sum of its inputs. The input of a node may be used in a function based on the "weight" of the edge or the "weight" of the node providing the input. The weights of nodes and / or edges may be adjusted during the learning process. In other words, the training of an artificial neural network may include adjusting the weights of nodes and / or edges of the artificial neural network, i.e., to achieve the desired output for a given input. In at least some embodiments, the machine learning model may be a deep neural network, for example, a neural network including one or more hidden node layers (i.e., hidden layers) (preferably, multiple hidden node layers).
[0033] In the present disclosure, reference is made to various capabilities of a peer. In general, these capabilities may be hardware capabilities of a peer. For example, the capabilities that are unlocked may be hardware capabilities of a peer. For example, capabilities may include at least one of the following: one or more computing capabilities, one or more memory-based capabilities, and one or more capabilities based on transmission bandwidth. Similarly, the capabilities that are unlocked may be computing capabilities (e.g., the number or type of cores assigned to a task, the use of a trusted execution environment, the operating frequency or the boost frequency), memory-based capabilities (e.g., the amount of memory assigned to a task), or transmission bandwidth-based capabilities (e.g., the number of peripheral component interface express channels assigned to an I / O card). In some examples, capabilities may also be firmware capabilities (e.g., firmware versions of hardware capabilities) or software capabilities (e.g., driver versions of drivers used to access hardware capabilities).
[0034] Although a peer (or its host) may support several capabilities, the present disclosure focuses on capabilities that can be unlocked on demand. For example, at least one capability of at least one peer in a blockchain network (as determined by a smart contract (shown as 150)) is unlocked according to the on-demand unlocking of the capability at the corresponding peer. By unlocking on demand, the capability is enabled and can be used to perform tasks distributed by the smart contract. In some examples, such on-demand unlocking may be persistent (e.g., usable at any time after the on-demand unlocking is performed). However, in many examples, the capability may be temporarily unlocked for the duration of the task. For example, a consensus-based time synchronization protocol may be used to ensure that the capability is enabled (and disabled) synchronously across peers performing multiple tasks.
[0035] In addition to the capabilities supported by a peer, at least one of the following two factors may determine which peer(s) are selected for performing a task - cost (i.e., the price the corresponding peer wants to be paid via the Web3 mechanism (i.e., via the blockchain)) and the reputation of the node.
[0036] In general, different peers may set different prices for performing a task (i.e., for providing access to its capability (or capabilities) within a predefined time interval). A smart contract may require peers to quote their price for performing the task to be distributed. In other words, Figure 1aAs further shown in , the method may include: 120: requesting information about the price to be paid for the corresponding task from at least a subset of peers in the blockchain network (e.g., through smart contract 105), for example, using a Gossip protocol (in a peer-to-peer manner). For example, the price to be paid may depend on the costs incurred by the peers to perform the task, such as the cost for electricity, impairments, software licenses, and of course the cost of unlocking on-demand capabilities. For example, the price of at least one peer may be based on the cost of on-demand unlocking of capabilities at the corresponding peer. The method may include: 130: obtaining (e.g., through smart contract 105) information about the price to be paid by the smart contract to the peers in the blockchain network for the corresponding task. The information about the price to be paid (by the smart contract, or by a decentralized application using the smart contract) can then be used as a factor related to how to distribute tasks (with a preference towards peers offering lower prices). In other words, multiple tasks are distributed further based on the price to be paid by the smart contract to the peers in the blockchain network for the corresponding tasks.
[0037] Another factor is the reputation of the peer. For example, the method may include: 140: (e.g., via smart contract 105) obtaining information related to the reputation of peers in the blockchain network. Such reputation may be further considered when distributing tasks, such as where peers with higher / better reputations are preferred over peers with lower / poorer reputations. In other words, multiple tasks may be further distributed based on the reputation of peers in the blockchain network. Such reputation may be based on the previous actions of the peers: if the peer has successfully completed other tasks, its reputation may be high. If the peer fails to complete a previous task (or lies about the supported capabilities), its reputation may be low. In other words, the reputation of the peers may be based on the performance of these peers during previous tasks. Since in the proposed concept, various mechanisms are implemented with the help of distributed ledgers, the reputation of the peers may also be stored on the distributed ledger, and information related to the reputation may be obtained from the distributed ledger. In other words, the reputation of the peers can be obtained based on the information stored on the distributed ledger of the blockchain network related to the completion of previous tasks.
[0038] In some examples, a rating system may be used to represent the reputation of a peer. For example, each peer may start with a default (middle or median) reputation score, which may be adjusted whenever a peer completes (or fails to complete) a task, delivers false results, or lies about capabilities. For example, a peer's reputation may be based on a reputation score, which begins with a default reputation score. After successfully completing a task, the reputation score may be increased, and after failing to complete a task in a timely manner (or delivering false results, or announcing unsupported capabilities), the reputation score may be reduced. If the score is too low, the peer may not be considered. For example, if the reputation score drops below a threshold, the peer may not be considered for distributing tasks.
[0039] Based on these factors (capabilities, and optionally price and / or reputation), the tasks are then distributed to peers (e.g., via smart contract 105) 160. For example, the distributed application may be provided with a list or set of peers to which the corresponding task(s) have been distributed. In some examples, a certain amount of over-provisioning may be employed to account for transient network errors, random failures, and / or fraudulent nodes.
[0040] The interface circuit system 12 or the means for communicating 12 may correspond to one or more inputs and / or outputs for receiving and / or transmitting information within a module, between modules, or between modules of different entities, which information may be in the form of digital (bit) values according to a specified code. For example, the interface circuit system 12 or the means for communicating 12 may include a circuit system configured to receive and / or transmit information.
[0041] For example, the processor circuit system 14 or the means for processing 14 may be implemented using one or more processing units, one or more processing devices, any means for processing (such as a processor, a computer, or a programmable hardware component that can operate with correspondingly adapted software). In other words, the described functions of the processor circuit system 14 or the means for processing may also be implemented using software, which is then executed on one or more programmable hardware components. Such hardware components may include general-purpose processors, digital signal processors (DSPs), microcontrollers, etc.
[0042] For example, the memory / storage circuit system 16 or the memory / storage device 16 may include at least one element of the group of computer-readable storage media, such as magnetic or optical storage media, such as random access memory (such as dynamic random-access memory (DRAM)), hard disk drive, flash memory, floppy disk, random access memory (Random Access Memory, RAM), programmable read only memory (Programmable Read Only Memory, PROM), erasable programmable read only memory (ErasableProgrammable Read Only Memory, EPROM), electrically erasable programmable read only memory (ElectronicallyErasableProgrammable Read Only Memory, EEPROM) or network storage device.
[0043] with the proposed concept or the context above or below (e.g. Figures 2a to 5 ) One or more examples described in conjunction with the method, apparatus 10, device 10, peer 100, peer 200, and blockchain network 1 are mentioned in more details and aspects. The method, apparatus 10, device 10, peer 100, peer 200, and blockchain network 1 may include one or more additional optional features corresponding to one or more aspects of the proposed concept or one or more examples described above or below.
[0044] Figure 2a Shown is a diagram for a blockchain network 1 (in Figure 2b ) in peer 200 (in Figure 2b 250: Obtaining a task to be performed by a peer from a smart contract 105. The method includes: 260: Unlocking a capability of the peer using on-demand unlocking of capabilities. The method includes: 270: Performing the task using the unlocked capability. For example, the method may be performed by a peer 200 (e.g., by a computer system hosting a peer / node 200).
[0045] Figure 2b A schematic diagram showing an example of an apparatus or device for a peer in a blockchain network. The apparatus 20 includes an interface circuit system 22 for communicating with a Web3 peer 100 or a smart contract 105 hosted by a Web3 peer 100. The apparatus 20 includes machine-readable instructions 26a. The apparatus includes a processor circuit system 24, which may include a trusted execution environment for executing machine-readable instructions within or outside the trusted execution environment to perform Figure 2a In other words, the processor circuit system can be configured to perform Figure 2a For example, processor circuit system 24 can be coupled to interface circuit system 22. For example, processor circuit system 24 can be combined with interface circuit system 22 (for example, exchanging information with Web3 peer 100 or smart contract 105) to provide the functionality of the device. In some examples, the processor circuit system may further include a memory / storage circuit system 26 for storing information, wherein the memory circuit system 26 is coupled to the processor circuit system 24. Similarly, device 20 may include a device for providing the functionality of device 20. For example, the device may be configured to provide the functionality of device 20. Components of device 20 are defined as component devices that may correspond to corresponding structural components of device 20 or be implemented by corresponding structural components of device 20. For example, Figure 2b The device 20 includes: a device 24 for processing, which may correspond to the processor circuit system 24 or be implemented by the processor circuit system 24; a device 22 for communication, which may correspond to the interface circuit system 22 or be implemented by the interface circuit system 22; and (optional) a storage device / memory 26, which may correspond to the memory / storage circuit system 26 or be implemented by the memory / storage circuit system 26. In some examples, the functions of the processor circuit system 24 or the device 24 for processing can be implemented by the processor circuit system 24 or the device 24 for processing executing machine-readable instructions. Therefore, any features attributed to the processor circuit system 24 or the device 24 for processing can be defined by one or more instructions of a plurality of machine-readable instructions. The device 20 or apparatus 20 may include machine-readable instructions 26a (e.g., within the memory / storage circuit system 26 or within the TEE of the processor circuit system / the device 24 for processing).
[0046] Figure 2b Further shown is a computer system 200 including an apparatus 20 or device 20 (e.g., a Web3 peer or node in a blockchain network). Figure 2b Further shown includes combining Figure 1b The apparatus 10 or device 10 and the system of the apparatus 20 or device 20 are introduced. Figure 2b Further shown includes combining Figure 1b A system of a (Web3) peer / node 100 and one or more other (Web3) peers / nodes 200 is introduced.
[0047] Figure 1a and Figure 1b involves the coordination side of task distribution, while Figure 2a and Figure 2bInvolves (one or more) Web3 peers that are used to perform the actual task, i.e., peers that use at least one capability unlocked on demand. Figure 1a and Figure 1b As outlined, various preparatory tasks may be performed before such a peer 200 receives a task to be performed.
[0048] For example, in order to even consider a peer 200 to perform a task, the peer 200 may self-advertise its capabilities (specifically, the hardware included in the peer 200) to the blockchain network (specifically, to the smart contract). For example, the method may include: 210: providing the smart contract with information about the hardware of the peer 200 (and optionally, information about the capabilities of the peer 200, information about the firmware version of the peer 200, and / or information about the software version of the peer 200) (e.g., by storing the information on a distributed ledger). This information may be used to predict the capabilities of the peer 200 and thereby serve as a basis for the distribution of tasks to the peer. In other words, the tasks to be performed may be obtained based on the prediction of the capabilities of the peer, where the prediction is based on the information about the hardware of the peer.
[0049] In order to prove to the smart contract that the peer 200 has certain capabilities (beyond the prediction of its capabilities), the peer 200 may perform an evaluation task. For example, the method may include: 220: performing an evaluation task by the peer 200. For example, the evaluation task (e.g., a script) may be stored on a distributed ledger (e.g., in conjunction with Figure 5 For example, for each capability demonstrated to the smart contract (i.e., verification), a predefined evaluation task may be performed. For example, the results of the evaluation task may be provided to an evaluation node / peer (i.e., Figure 5 (one or more) audit nodes 530 of the smart contract), the evaluation node / peer may confirm (or deny) to the smart contract whether the peer 200 has successfully completed the evaluation task. The smart contract may then store information related to the completion of the evaluation task on the distributed ledger, or the peer 200 may store information related to the completion of the evaluation task on the distributed ledger and the evaluation node / peer may confirm the information related to the completion on the distributed ledger. The evaluation task may prove one or more capabilities of the peer 200 to the smart contract, so that the peer 200 is selected for the task based on the one or more capabilities. In other words, the capabilities of the peer (as proved to the smart contract) may be based on the evaluation of the evaluation task performed by the peer. Therefore, the task to be performed may be obtained based on the capabilities of the peer (as proved to the smart contract).
[0050] As combined Figure 1a to Figure 1bAs discussed, another factor is the amount of digital currency that the peer 200 wishes to charge for performing the task. For example, the method may include: 230: obtaining from the smart contract 105 a request to provide information about the price to be paid (by the smart contract 105 or the distributed application to the peer 200) for performing the task. The price depends on the operating costs and impairments of the peer 200, the cost of enabling the capability, and the markup (to create profit margins and compensate for periods when the task is completed but not paid for). For example, the method may include: 235: determining information about the price to be paid for performing the task based on the cost of on-demand unlocking of the capability (and based on, for example, the operating costs and the expected markup). The method may include: 240: providing information about the price to be paid for performing the task to the smart contract. As a result, the peer 200 receives the task (or fails to receive the task) based on the information about the price provided to the smart contract. In other words, the task to be performed may be obtained in response to the information provided about the price to be paid for performing the task.
[0051] Once the smart contract has selected a peer 200 for the task, the peer 200 proceeds 250: obtains the task to be performed by the peer from the smart contract 105. In some cases, capabilities that have been enabled at the peer 200 may be sufficient to perform the task. In some cases (which are also the focus of this disclosure), performing the task may require enabling at least one capability. Thus, the method includes: 260: unlocking the capabilities of the peer using on-demand unlocking of capabilities. For example, in the case where the capability is a hardware capability, the capability may be enabled using software-defined silicon technology (e.g., using The capability may be unlocked by enabling the peer 200 to enable the capability to be unlocked (OnDemand). If the capability is a firmware or software capability, the required firmware or software may be installed and / or licensed, and the corresponding firmware capability or software capability (e.g., feature) may be unlocked. Subsequently, the method includes: 270: performing a task using the unlocked capability. If the task has a result, the peer 200 may then provide the result of the task to the smart contract and / or distributed application. If the task does not require a result to be provided to the smart contract or distributed application, no result may be provided.
[0052] Since the distribution of tasks to peers 200 may depend on the reputation of peers 200, peers 200 may record the completion of tasks on a distributed ledger. In other words, the method may include: after performing the task, storing information related to the completion of the task on a distributed ledger of the blockchain network. For example, a smart contract or a distributed ledger, or an audit node may confirm the information related to the completion of the task on the distributed ledger.
[0053] The interface circuit system 22 or the means for communicating 22 may correspond to one or more inputs and / or outputs for receiving and / or transmitting information within a module, between modules, or between modules of different entities, which information may be in the form of digital (bit) values according to a specified code. For example, the interface circuit system 22 or the means for communicating 22 may include a circuit system configured to receive and / or transmit information.
[0054] For example, the processor circuit system 24 or the means for processing 24 may be implemented using one or more processing units, one or more processing devices, any means for processing (such as a processor, a computer, or a programmable hardware component that can operate with correspondingly adapted software). In other words, the described functions of the processor circuit system 24 or the means for processing may also be implemented using software, which is then executed on one or more programmable hardware components. Such hardware components may include general-purpose processors, digital signal processors (DSPs), microcontrollers, etc.
[0055] For example, the memory / storage circuit system 26 or the memory / storage device 26 may include at least one element of the group of computer-readable storage media, such as magnetic or optical storage media, such as random access memory (such as dynamic random-access memory (DRAM)), hard disk drive, flash memory, floppy disk, random access memory (Random Access Memory, RAM), programmable read only memory (Programmable Read Only Memory, PROM), erasable programmable read only memory (ErasableProgrammable Read Only Memory, EPROM), electrically erasable programmable read only memory (ElectronicallyErasableProgrammable Read Only Memory, EEPROM) or network storage device.
[0056] with the proposed concept or the context above or below (e.g. Figure 1a to Figure 1b , Figures 3 to 5 ) One or more examples described in conjunction with the method, apparatus 20, device 20, peer 200, peer 100, and blockchain network 1 are mentioned in more details and aspects. The method, apparatus 20, device 20, peer 200, peer 100, and blockchain network 1 may include one or more additional optional features corresponding to one or more aspects of the proposed concept or one or more examples described above or below.
[0057] Examples of the present disclosure relate to synchronization on-demand capabilities (e.g., using On Demand, which can use consensus-based time synchronization to activate Web3 platform resources.
[0058] In many implementations of Web3 Virtual Machines (VMs), there is no way to dynamically scale compute, storage, and communication capabilities synchronously across N Web3 peers based on smart contract obligations. Specifically, such virtual machines may lack a mechanism to help fill the gap in system-level hardware / software requirements across a cluster / cluster of Web3 nodes that agree to complete a task. Using such VMs, content can be adapted to execute workloads, essentially limiting execution to the lowest common denominator among the cluster participants, which may compromise the quality of service. In some cases, these deficiencies can be addressed by exposing corresponding interfaces on private blockchains or via layer 2 implementations, but this may be considered an advanced capability and therefore its utilization requires more advanced mechanisms.
[0059] The focus of the proposed concept is not to reinvent the blockchain concept. Existing blockchain mechanisms (different mechanisms may be used in the future) are used by using blockchain as a public distributed ledger for tracking transactions using consensus.
[0060] The examples of the present disclosure are based on, for example, synchronously (e.g., using OnDemand temporarily unlocks capabilities at peers on demand. This may involve timestamp synchronization based on Web3 / blockchain consensus. Flexible consumption mechanisms are provided with the ability to fill gaps when there are not enough nodes with the same capabilities by unlocking and scaling the performance and capacity of platform hardware or software components in response to real-time needs. For a given Web3 Distributed Application (DApp) that attempts to complete a task by involving N Web3 participants, based on an agreed-upon smart contract for a given transaction, (all) Web3 peer nodes can synchronously temporarily activate the required capabilities in both hardware and software (e.g., additional cores, Software Guard Extension (SGX), Trusted Execution Environment, Graphics Processing Unit (GPU), etc.) (which can provide service-based revenue to platform vendors). The proposed mechanism utilizes the activation of on-demand capabilities (for example, using Intel OnDemand) and is able to upgrade groups of devices / clusters within a time-limited period of time. Such a mechanism can help fill the gap in system-level requirements when there are not enough nodes with the same capabilities. For example, resources (i.e., capabilities) may include the allocation of P (performance)-cores to E (efficiency)-cores, the frequency of cores / non-cores (functions of the CPU that are not the core part) / modules, input / output (I / O) speeds / feeds, security protocol acceleration gradients, etc.
[0061] To avoid unnecessary oversubscription of resources across all nodes, in some examples of the proposed concept, a "Gossip protocol" or "federated learning" approach can be used to achieve intelligent estimation of future resource unlocking based on past learning from similar nodes. This can be useful in workload scheduling, and handling the departure of existing nodes or the loading of new nodes based on the remaining amount of work to be completed.
[0062] Example use cases may include high-fidelity media streaming across X publishers and Y subscribers based on crowdsourced content creation, enhancement, and distribution in a Web3 model. This may require dynamic determination of resource requirements in terms of compute, network, etc. In the event that the participating devices do not have sufficient resources to provide the required scaling, other approaches take paths that compromise user quality or density, resulting in poor user experience and / or loss of revenue. Using the proposed concept, crowdsourced Web3 devices can take advantage of on-demand capacity enabling solutions such as OnDemand) to unlock more hardware and software (e.g., GuC (a An engine for workload scheduling on the GPU) / HuC (a firmware for providing efficient video encoding)) to enhance processing and achieve profitability.
[0063] Figure 3 A schematic diagram of resource activation based on a Gossip protocol (e.g., efficient Intel on-demand resource activation based on a Gossip protocol across Web3 peers) is shown. The initial publisher (s) may be able to measure actual resource consumption, and using the estimate of scalability, the initial publisher (s) may communicate with peers via the Gossip protocol to achieve efficient scalability. Figure 3As shown in , the first Web3 device (Web3 device 1) with key K1 uses the Gossip protocol at time T0 to notify device 2-4 to perform resource activation according to key K1 at time T1. Device 2-4 uses the Gossip protocol to notify device 5-9 to perform resource activation according to key K1 at time T2. Device 5-9 uses the Gossip protocol to notify device 10-16 to perform resource activation according to key K1 at time T3.
[0064] Each node provides a promise of available capabilities, but if the outcome is not met, the reputation of the node decreases (depending on the kind of failure). When a node's reputation indicator becomes 0, the device can be excluded from the network. The incentive to participate is to earn a portion of the fees paid by Web3 users. Capabilities and reputation can be stored on the blockchain. When a node is added to the network, capabilities can be added to the blockchain, including specific information about the firmware / software stack used for each capability, including its version. The reputation of a node can increase or decrease depending on positive or negative outcomes affected by the reliability level. The level of increase or decrease can depend on the type of requirement (for example, not protecting data related to confidential scenarios is worth causing a significant reduction in reputation level).
[0065] With the selected nodes and by using the exposed underlying hardware features, operations are performed and the results can be compared across groups of devices. The idea is not just about security, as it may expose performance capabilities (e.g. cores versus high-efficiency cores; accelerators), or even capacity (increases in memory).
[0066] Figure 4 Diagram showing a use case with heterogeneous capabilities that can be made homogeneous. Figure 4 In FIG. 4 , five nodes 401, 402, 403, 404, and 40N are shown. Among these nodes, node 1, node 4, and node N have SGX capabilities, that is, they can provide a trusted execution environment. If a smart contract 410 promises to provide confidential computing for a Web3 application 420 via several nodes 401-40N, on-demand activation (e.g., using OnDemand) enables SGX on Node 2 and Node 3, for example via a Gossip protocol and blockchain.
[0067] For example, a smart contract may provide a query for execution fees associated with a particular feature, such as confidential computing. The query may return options (that support the feature / capability), and the smart contract may prioritize nodes with higher reputation (based on past execution, consensus). Requirements may be added to the query using specific options. For example, if a medical application calls the Application Programming Interface (API) analyzeHealthData(privateData,type:Confidential), then type:Confidential may be a requirement.
[0068] For example, a Web3 application executing a smart contract running in a network such as Ethereum (using a layer 2 approach) can use key hardware features of the use case such as confidentiality to achieve a certain level of additional security, which costs extra (using SGX). Nodes with confidentiality capabilities, as identified and confirmed by consensus, can offer their services, and a subset of them can be selected depending on the task to be performed. Fees can be provided to the winning nodes, and these winning nodes take / execute the transaction. Only if the verification result is good, the corresponding node can keep the fee.
[0069] In some examples, it may be of interest not only to the presence of capabilities (to meet requirements), but also to the quality of service of the capabilities. For example, although Node 1, Node 4, and Node N advertise confidential computing capabilities / resources during the joining process, different nodes may support different versions / levels of confidential computing. For example, Node 1 may support SGX v1.1 - up to the latest version. The technology may be considered good, resulting in a good reputation score. Node 4 may support SGX v0.8, which may be considered too old, resulting in a low reputation score. Node N may support SGX v1.1 - up to the latest version. The technology may be considered good, resulting in a good reputation score.
[0070] In scenarios where confidential computation is a must, and when the network may have fraudulent nodes, all private data received to perform actions can be encrypted using homomorphic encryption (if possible) as a mitigation. If a fraudulent node is detected, it can be immediately excluded.
[0071] By integrating software defined silicon (SDSi) (such as OnDemand) into the equation, the proposed concept can become a more dynamic mechanism. OnDemand provides a flexible consumption mechanism with the ability to scale performance and capacity in response to real-time demand, but this is intended to be more of a one-time process required for resource authorization. In the proposed concept, the mechanism can be highly dynamic, enabling capacity as needed, which means that if a web3 application requires a heavy workload to be executed but there is no available capacity, this feature can be considered during the bidding process and even temporarily activate capacity (e.g., additional cores) at a higher cost. Forecasts of higher capacity required can be used as an extension of this, proactively increasing the availability of resources based on past utilization / current trends (via SDSi). Platform TEEs can be used to "sync Intel OnDemand" based on effective policies and can be implemented via metering across clusters.
[0072] This disclosure describes how interfaces in smart contracts allow Web3 applications to provide for the specification of requirements in a structured manner. These requirements may enable a bidding process between nodes that include the required capabilities and offer a more convenient fee and reputation that will be defined / selected by consensus (the age of a high reputation is another important factor to consider, as a relatively new device with a high reputation is not the same as an old device with a high reputation). The bidding process may end with the selection of a group of devices depending on the requirements, primarily for the verification of results. The number of devices required for an operation may be considered: some of these devices may not be able to respond in time, but the rest of these devices may be sufficient to have a consensus result anyway.
[0073] Figure 5 A diagram of an operational flow for loading and activating resources for a new node using a peer consensus mechanism is shown. For initial verification, at t0, 510 is performed: a new node (x) attempts to join the (blockchain) network. In operation 1, it, for example, announces its capability (a) to a smart contract 520. At operation 2a, an audit node 530 is discovered / selected (for node x, capability a, and for time interval t1-t2), in which the capability of the new node x is tested in an asynchronous manner. At operation 2b, a validator (audit node) is obtained for verifying capability a. At operation 3, the audit node 530 verifies the capability of node x. At operation 4, the audit nodes reach a consensus on the result. At operation 5, the result of the verification of x is provided to the smart contract 520 by the audit node 530. At operation 6, the result for x is stored in the blockchain 540 by the smart contract 520. The blockchain 540 includes information about the reputation of the node and information about the validators (a, b, c).
[0074] In addition to the initial verification, random verification can also be performed. At tN, a scheduler can be used to trigger the Web3 management application 550, which triggers the smart contract to check a random node with certain capabilities (e.g., node y with upgraded firmware / software stack / configuration) to determine whether the capabilities are still credible.
[0075] Thus, to take into account that the software, firmware and / or configuration of a node may have evolved or changed, a review of the advertised capabilities may occur each time a node joins, but may also occur at any random time during runtime. For scalability reasons, this may be done randomly rather than always being checked.
[0076] exist Figure 5 In , the reputation of the node is stored in the blockchain and also in the validator. The catalog of validators can provide recipes to be executed in the audited nodes to verify that the advertised capabilities are genuine, involving details such as stack versions or signatures of components. For example, if node x claims to have SGX 1.1 capabilities, it can ensure that the platform vendor (Intel) has signed the driver required for this capability. Therefore, the recipe can include methods (e.g., one or more scripts) for verifying this.
[0077] In the technology part where hardware is mostly abstracted, the proposed concept can provide a key differentiator, so it will help promote the use of capabilities in various fields (such as security). For example, the proposed concept can be used as part of fleet management, which can provide service-based revenue for hardware vendors (for synchronous unlocking of platform capabilities) and software operators (for executing tasks), with audit trails on the blockchain. Such a mechanism can help fill the gap of system-level requirements when there are not enough nodes with the same capabilities to participate in Web3 ad hoc transactions.
[0078] Examples of the proposed concept can be employed by providers on the edge. As important blockchain networks are moving towards proof-of-stake, smaller, more heterogeneous nodes can be used instead of large, powerful devices based on field programmable gate arrays, application-specific integrated circuits, or GPUs.
[0079] In combination with the proposed concept or the above or below (for example, Figures 1a to 2b ) One or more examples described in the foregoing mention more details and aspects of the concept for synchronizing on-demand capabilities. The concept for synchronizing on-demand capabilities may include one or more additional optional features corresponding to one or more aspects of the proposed concept or one or more examples described above or below.
[0080] In the following, some examples of the proposed concepts are provided:
[0081] An example (e.g., Example 1) relates to a method for distributing tasks to Web3 peers (200) in a blockchain network, the method comprising: during execution of a smart contract (105), identifying a plurality of tasks to be performed by one or more peers in the blockchain network (110). The method comprises: determining capabilities of the peers in the blockchain network (150), wherein at least one capability of at least one peer in the blockchain network is unlocked according to an on-demand unlocking of capabilities at the corresponding peer. The method comprises: distributing the plurality of tasks to the one or more peers based on the capabilities of the peers in the blockchain network (160).
[0082] Another example (e.g., Example 2) relates to a previously described example (e.g., Example 1) or to any of the examples described herein, further including that the capability includes at least one of: one or more computing capabilities, one or more memory-based capabilities, and one or more transmission bandwidth-based capabilities.
[0083] Another example (e.g., Example 3) relates to a previously described example (e.g., one of Examples 1 to 2) or to any of the examples described herein, further including that the method includes: obtaining information (130) about a price to be paid by the smart contract to a peer in the blockchain network for a corresponding task, wherein the price of at least one peer is based on a cost of on-demand unlocking of a capability at the corresponding peer, and the plurality of tasks are further distributed based on the price to be paid by the smart contract to the peer in the blockchain network for the corresponding task.
[0084] Another example (e.g., Example 4) relates to a previously described example (e.g., Example 3) or to any of the examples described herein, further including that the method includes: requesting information related to a price to be paid for a corresponding task from at least a subset of peers in the blockchain network using a Gossip protocol (120).
[0085] Another example (e.g., Example 5) relates to a previously described example (e.g., one of Examples 1 to 4) or to any of the examples described herein, further including that the method includes: obtaining information related to the reputation of peers in the blockchain network (140), and the plurality of tasks are further distributed based on the reputation of the peers in the blockchain network.
[0086] Another example (eg, Example 6) relates to a previously described example (eg, Example 5) or to any of the examples described herein, further comprising: the reputation of the peer is based on the performance of the peer during previous tasks.
[0087] Another example (e.g., Example 7) relates to a previously described example (e.g., one of Examples 5 to 6) or to any of the examples described herein, further including: the reputation of the peer is obtained based on information related to the completion of previous tasks stored on a distributed ledger of the blockchain network.
[0088] Another example (e.g., Example 8) relates to a previously described example (e.g., one of Examples 5 to 7) or to any of the examples described herein, further including: the reputation of a peer is based on a reputation score, the reputation score of the peer starts at a default reputation score, the reputation score increases after successfully completing a task and decreases after failing to complete the task in a timely manner.
[0089] Another example (e.g., Example 9) relates to a previously described example (e.g., Example 8) or to any of the examples described herein, further including: if the reputation score drops below a threshold, the peer is not considered for distribution of tasks.
[0090] Another example (e.g., Example 10) relates to a previously described example (e.g., one of Examples 1 to 9) or to any of the examples described herein, further including: the capabilities of a peer are based on an evaluation of an evaluation task performed by the peer, the evaluation being performed by a randomly selected evaluation peer in the blockchain network.
[0091] Another example (e.g., Example 11) relates to a previously described example (e.g., Example 10) or to any of the examples described herein, further including: prior to evaluating the evaluation task, the capabilities of the peer are based on a prediction of the capabilities of the peer based on the peer's hardware.
[0092] Another example (e.g., Example 12) relates to a previously described example (e.g., Example 11) or to any of the examples described herein, further including: the prediction of the capabilities of a peer is based on a machine learning model for predicting the capabilities of the peer based on the hardware of the peer.
[0093] Another example (e.g., Example 13) relates to a previously described example (e.g., Example 12) or to any of the examples described herein, further including: the machine learning model is trained using federated learning.
[0094] An example (e.g., Example 14) relates to a method for a peer (200) in a blockchain network, the method comprising: obtaining a task to be performed by the peer from a smart contract (105) (250). The method comprises: unlocking a capability of the peer using on-demand unlocking of the capability (260). The method comprises: performing the task using the unlocked capability (270).
[0095] Another example (eg, Example 15) relates to a previously described example (eg, Example 14) or to any of the examples described herein, further comprising: the capability being temporarily unlocked for the duration of the mission.
[0096] Another example (e.g., Example 16) relates to a previously described example (e.g., one of Examples 14 to 15) or to any of the examples described herein, further including: the unlocked capability is a hardware capability of the peer.
[0097] Another example (e.g., Example 17) relates to a previously described example (e.g., one of Examples 14 to 16) or to any of the examples described herein, further including that the method comprises: obtaining a request from a smart contract to provide information related to a price to be paid for performing a task (230); and providing information related to the price to be paid for performing the task to the smart contract (240), wherein the task to be performed is obtained in response to the provided information related to the price to be paid for performing the task.
[0098] Another example (e.g., Example 18) relates to a previously described example (e.g., Example 17) or to any of the examples described herein, further including that the method includes: determining information related to a price to be paid for performing a task based on a cost of on-demand unlocking of the capability (235).
[0099] Another example (e.g., Example 19) relates to a previously described example (e.g., one of Examples 14 to 18) or to any of the examples described herein, further including that the method comprises: providing the smart contract with information related to the hardware of the peer (210), wherein the task to be performed is obtained based on a prediction of the capabilities of the peer, the prediction being based on the information related to the hardware of the peer.
[0100] Another example (e.g., Example 20) relates to a previously described example (e.g., one of Examples 14 to 19) or to any of the examples described herein, further including that the method comprises: performing an evaluation task (220), wherein the task to be performed is obtained based on the capabilities of a peer, and the capabilities of the peer are based on an evaluation of the evaluation task performed by the peer.
[0101] Another example (e.g., Example 21) relates to a previously described example (e.g., one of Examples 14 to 20) or any of the examples described herein, further including that the method comprises: after performing the task, storing information related to the completion of the task on a distributed ledger of the blockchain network.
[0102] An example (e.g., Example 22) relates to an apparatus (10) comprising an interface circuit system (12), machine-readable instructions, and a processor circuit system (14) for executing the machine-readable instructions to perform a method according to one of Examples 1 to 13 (or according to any other example).
[0103] An example (e.g., Example 23) relates to an apparatus (10) comprising a processor circuit system (14) configured to perform a method according to one of Examples 1 to 13 (or according to any other example).
[0104] An example (e.g., Example 24) relates to an apparatus (10) comprising a device (14) for processing, the device (14) for processing being used to perform a method according to one of Examples 1 to 13 (or according to any other example).
[0105] An example (e.g., Example 25) relates to a peer (100) for a blockchain network, the peer comprising an apparatus (10) or device (10) according to one of Examples 22 to 24 (or according to any other example).
[0106] An example (e.g., Example 26) relates to an apparatus (20) comprising an interface circuit system (22), machine-readable instructions, and a processor circuit system (24) for executing the machine-readable instructions to perform a method according to one of Examples 14 to 21 (or according to any other example).
[0107] An example (e.g., Example 27) relates to an apparatus (20) comprising a processor circuit system (24) configured to perform a method according to one of Examples 14 to 21 (or according to any other example).
[0108] An example (e.g., Example 28) relates to a device (20) comprising a means for processing (24), the means for processing (24) being used to perform a method according to one of Examples 14 to 21 (or according to any other example).
[0109] An example (e.g., Example 29) relates to a peer (200) for a blockchain network, the peer comprising an apparatus (20) or device (20) according to one of Examples 26 to 28 (or according to any other example).
[0110] An example (e.g., Example 30) relates to a system comprising an apparatus (10) or device (10) according to one of Examples 22 to 24 (or according to any other example) and an apparatus (20) or device (20) according to one of Examples 26 to 28 (or according to any other example).
[0111] An example (eg, Example 31) relates to a system comprising a peer (100) according to Example 25 (or according to any other example) and one or more other peers (200) according to Example 29 (or according to any other example).
[0112] An example (e.g., Example 32) relates to a non-transitory computer-readable medium comprising program code that, when executed on a processor, a computer, or a programmable hardware component, causes the processor, the computer, or the programmable hardware component to perform a method as described in one of Examples 1 to 13 (or according to any other example) or a method as described in one of Examples 14 or 21 (or according to any other example).
[0113] An example (e.g., Example 33) relates to a non-transitory machine-readable storage medium that includes program code that, when executed, causes a machine to perform a method as described in one of Examples 1 to 13 (or according to any other example) or a method as described in one of Examples 14 or 21 (or according to any other example).
[0114] An example (e.g., Example 34) relates to a computer program having program code for performing a method as described in one of Examples 1 to 13 (or according to any other example) or a method as described in one of Examples 14 to 21 (or according to any other example) when the computer program is executed on a computer, a processor, or a programmable hardware component.
[0115] Examples (e.g., Example 35) relate to a machine-readable storage device comprising machine-readable instructions that, when executed, implement a method as claimed in any appended claim or shown in any example, or implement an apparatus as claimed in any appended claim or shown in any example.
[0116] Aspects and features described in relation to a particular example in the preceding examples may also be combined with one or more of the further examples to replace the same or similar features of the further examples or to introduce these features additionally into the further examples.
[0117] Examples may further be or relate to (computer) programs, including program codes for executing one or more of the above methods when the program is executed on a computer, a processor, or other programmable hardware component. Thus, the steps, operations, or processes of the different methods in the methods described above may also be performed by a programmed computer, a processor, or other programmable hardware component. Examples may also encompass program storage devices, such as digital data storage media, which are machine-readable, processor-readable, or computer-readable and encode and / or contain machine-executable, processor-executable, or computer-executable programs and instructions. For example, a program storage device may include or may be a digital storage device, a magnetic storage medium (such as a disk and a tape), a hard drive, or an optically readable digital data storage medium. Other examples may also include a computer, a processor, a control unit, a (field) programmable logic array ((field) programmable logic array, (F) PLA), a (field) programmable gate array ((field) programmable gate array, (F) PGA), a graphics processor unit (GPU), an application-specific integrated circuit (ASIC), an integrated circuit (IC), or a system-on-a-chip (SoC) system programmed to perform the steps of the method described above.
[0118] It will also be understood that the disclosure of several steps, processes, operations or functions disclosed in the specification or claims should not be interpreted as implying that these operations must be performed in the described order, unless explicitly stated in a separate use case or necessary for technical reasons. Therefore, the previous description does not limit the performance of several steps or functions to a certain order. In addition, in other examples, a single step, function, process or operation may include and / or be decomposed into several sub-steps, sub-functions, sub-processes or sub-operations.
[0119] If some aspects have been described in conjunction with a device or system, these aspects should also be understood as descriptions of corresponding methods. For example, a block, device, or functional aspects of a device or system may correspond to features (such as method steps) of a corresponding method. Accordingly, aspects described in conjunction with a method should also be understood as descriptions of properties or functional features of the corresponding block, corresponding element, corresponding device, or corresponding system.
[0120] As used herein, the term "module" refers to a logic for performing one or more operations in accordance with the present disclosure that can be implemented using hardware components or devices, software or firmware running on a processing unit, or a combination thereof. Software and firmware can be embodied as instructions and / or data stored on a non-transient computer-readable storage medium. As used herein, the term "circuitry" can include, alone or in any combination, non-programmable (hard-wired) circuitry, programmable circuitry (such as a processing unit), state machine circuitry, and / or firmware storing instructions that can be executed by a programmable circuitry. The modules described herein can be embodied together or individually as circuitry forming part of a computing system. Thus, any one of the modules can be implemented as a circuitry. A computing system that is referred to as being programmed to perform a method can be programmed to perform the method via software, hardware, firmware, or a combination thereof.
[0121] Any of the disclosed methods (or portions thereof) may be implemented as computer-executable instructions or computer program products. Such instructions may enable a computing system or one or more processing units capable of executing computer-executable instructions to perform any of the disclosed methods. As used herein, the term "computer" refers to any computing system or device described or mentioned herein. Thus, the term "computer-executable instructions" refers to instructions that can be executed by any computing system or device described or mentioned herein.
[0122] Computer executable instructions may be, for example, part of an operating system of a computing system, an application stored locally on a computing system, or a remote application accessible to a computing system (e.g., via a web browser). Any of the methods described herein may be performed by computer executable instructions executed by a single computing system or by one or more networked computing systems operating in a network environment. Computer executable instructions and updates to computer executable instructions may be downloaded from a remote server to a computing system.
[0123] In addition, it should be understood that implementation of the disclosed techniques is not limited to any particular computer language or program. For example, the disclosed techniques can be implemented by software written in C++, C#, Java, Perl, Python, JavaScript, Adobe Flash, C#, assembly language, or any other programming language. Likewise, the disclosed techniques are not limited to any particular computer system or any particular type of hardware.
[0124] In addition, any of the software-based examples (including, for example, computer-executable instructions for causing a computer to perform any of the disclosed methods) can be uploaded, downloaded, or remotely accessed via suitable communication means. Such suitable communication means include, for example, the Internet, the World Wide Web, an intranet, cables (including fiber optic cables), magnetic communications, electromagnetic communications (including RF, microwave, ultrasonic, and infrared communications), electronic communications, or other such communication means.
[0125] The disclosed methods, apparatuses, and systems should not be interpreted as limiting in any way. Instead, the present disclosure is directed to all novel and non-obvious features and aspects of each disclosed example, individually and in various combinations and sub-combinations with each other. The disclosed methods, apparatuses, and systems are not limited to any specific aspect or feature or combination thereof, nor do the disclosed examples require the existence of any one or more specific advantages or the resolution of any one or more specific problems.
[0126] The theories of operation, scientific principles, or other theoretical descriptions presented herein with reference to the devices or methods of the present disclosure are provided for the purpose of better understanding and are not intended to limit the scope. The devices and methods in the appended claims are not limited to those devices and methods that function in the manner described by such theories of operation.
[0127] The attached claims are hereby included in the detailed description, wherein each claim itself can serve as a separate example. It should also be noted that although a dependent claim refers to a specific combination with one or more other claims in the claims, other examples may also include a combination of the dependent claim with the subject matter of any other dependent or independent claim. Such combinations are expressly proposed here, unless it is stated in individual cases that a specific combination is not intended. In addition, even if a claim is not directly limited to referring to any other independent claim, the features of the claim should also be included with respect to any other independent claim.
Claims
1. A method for distributing tasks to Web3 peers in a blockchain network, the method comprising: During execution of the smart contract, identifying a plurality of tasks to be performed by one or more peers in the blockchain network; determining capabilities of peers in the blockchain network, wherein at least one capability of at least one peer in the blockchain network is unlocked in accordance with an on-demand unlocking of capabilities at a corresponding peer; as well as The plurality of tasks are distributed to the one or more peers in the blockchain network based on capabilities of the peers.
2. The method according to claim 1, wherein: The capabilities include at least one of: one or more computing capabilities, one or more memory-based capabilities, and one or more transmission bandwidth-based capabilities.
3. The method according to claim 1, wherein: The method includes obtaining information related to prices to be paid by the smart contract to peers in the blockchain network for corresponding tasks, wherein the price for at least one peer is based on a cost of on-demand unlocking of capabilities at the corresponding peer, and the plurality of tasks are further distributed based on the prices to be paid by the smart contract to peers in the blockchain network for corresponding tasks.
4. The method according to claim 3, wherein: The method includes requesting information about a price to be paid for a corresponding task from at least a subset of peers in the blockchain network using a Gossip protocol.
5. The method according to claim 1, wherein: The method includes obtaining information related to reputations of peers in the blockchain network, the plurality of tasks being distributed further based on the reputations of the peers in the blockchain network, the reputations of the peers being based on performance of the peers during previous tasks.
6. The method according to claim 5, wherein: The reputation of the peer is obtained based on information related to the completion of previous tasks stored on the distributed ledger of the blockchain network.
7. The method according to claim 5, wherein: A peer's reputation is based on a reputation score that starts at a default reputation score, increases after successfully completing a task and decreases after failing to complete a task in a timely manner.
8. The method according to claim 1, wherein: The capabilities of a peer are based on an evaluation of evaluation tasks performed by the peer, with the evaluation being performed by randomly selected evaluation peers in the blockchain network.
9. The method according to claim 8, wherein: Prior to the evaluation of the assessment task, the capabilities of the peer are based on a prediction of the capabilities of the peer based on the hardware of the peer, the prediction of the capabilities of the peer being based on a machine learning model for predicting the capabilities of the peer based on the hardware of the peer, the machine learning model being trained using federated learning.
10. A non-transitory computer-readable medium comprising program code for a peer in a blockchain network, which, when executed on a processor, a computer, or a programmable hardware component, causes the processor, the computer, or the programmable hardware component to perform a method comprising: Obtaining a task to be performed by the peer from a smart contract; unlocking the capability using on-demand unlocking of the capability of the peer; as well as Use the unlocked abilities to perform the mission.
11. The non-transitory computer readable medium of claim 10, wherein: The ability is temporarily unlocked for the duration of the mission.
12. The non-transitory computer readable medium of claim 10, wherein: The capabilities that are unlocked are the hardware capabilities of the peer.
13. The non-transitory computer readable medium of claim 10, wherein: The method includes: obtaining a request from the smart contract to provide information related to a price to be paid for performing the task, and providing information related to the price to be paid for performing the task to the smart contract, wherein the task to be performed is obtained in response to the provided information related to the price to be paid for performing the task.
14. The non-transitory computer readable medium of claim 10, wherein: The method comprises providing the smart contract with information about the peer's hardware, wherein the task to be performed is obtained based on a prediction of the peer's capabilities, the prediction being based on the information about the peer's hardware.
15. The non-transitory computer readable medium of claim 10, wherein: The method comprises performing an assessment task, wherein the task to be performed is obtained based on capabilities of the peer, the capabilities of the peer being based on an assessment of the assessment task performed by the peer.
16. The non-transitory computer readable medium of claim 10, wherein: The method includes: after performing the task, storing information related to the completion of the task on a distributed ledger of the blockchain network.
17. An apparatus comprising interface circuitry, machine-readable instructions, and processor circuitry, the processor circuitry being configured to execute the machine-readable instructions to perform the method of claim 1.
18. A non-transitory computer readable medium comprising a program code, which, when executed on a processor, a computer or a programmable hardware component, causes the processor, the computer or the programmable hardware component to perform the method of claim 1.
19. A method for a peer in a blockchain network, the method comprising: Obtaining a task to be performed by the peer from a smart contract; unlocking the capability using on-demand unlocking of the capability of the peer; as well as Use the unlocked abilities to perform the mission.
20. The method according to claim 19, further comprising: The ability is temporarily unlocked during the duration of the mission.
21. The method of claim 19, further comprising: The capabilities that are unlocked are the hardware capabilities of the peer.
22. The method of claim 19, further comprising: A request is obtained from the smart contract to provide information related to a price to be paid for performing the task, and information related to the price to be paid for performing the task is provided to the smart contract, wherein the task to be performed is obtained in response to the provided information related to the price to be paid for performing the task.
23. The method of claim 19, further comprising: Information related to a price to be paid for performing the task is determined based on a cost to unlock the capability on demand.
24. The method of claim 19, further comprising: The smart contract is provided with information about the peer's hardware, wherein the task to be performed is obtained based on a prediction of the peer's capabilities, the prediction being based on the information about the peer's hardware.
25. An apparatus comprising interface circuitry, machine-readable instructions, and processor circuitry for executing the machine-readable instructions to perform the method of one of claims 1-9 or 19-24.