WO2020000349A1 - 分布式计算方法与管理*** - Google Patents

分布式计算方法与管理*** Download PDF

Info

Publication number
WO2020000349A1
WO2020000349A1 PCT/CN2018/093577 CN2018093577W WO2020000349A1 WO 2020000349 A1 WO2020000349 A1 WO 2020000349A1 CN 2018093577 W CN2018093577 W CN 2018093577W WO 2020000349 A1 WO2020000349 A1 WO 2020000349A1
Authority
WO
WIPO (PCT)
Prior art keywords
project
data
task
node
computing
Prior art date
Application number
PCT/CN2018/093577
Other languages
English (en)
French (fr)
Inventor
罗惟正
陈宥宏
钟舜宇
Original Assignee
财团法人交大思源基金会
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
Application filed by 财团法人交大思源基金会 filed Critical 财团法人交大思源基金会
Priority to PCT/CN2018/093577 priority Critical patent/WO2020000349A1/zh
Publication of WO2020000349A1 publication Critical patent/WO2020000349A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Definitions

  • the invention relates to the field of computer technology, in particular to a distributed computing method and a management system.
  • the object of the present invention is to provide an efficient distributed computing method and management system, which can allow users who need computing tasks to easily upload computing tasks, find all computing resources that can provide computing capabilities, and allow computing that can provide computing capabilities. Resources receive computing tasks corresponding to their computing power and contribution, and get rewards efficiently, and this distributed computing method and management system must have the function of detecting anomalies or errors and recording backups of distributed computing data to avoid distributed computing The result is that the system is idling due to abnormal or incorrect damage.
  • a method for processing a computing project including the following steps: a user application terminal provides a divisible item data, the item data report includes an item program and an item code, and is applied by the user
  • the project data is divided into several project tasks by a terminal or at least one neighboring data temporary storage node, wherein each of the plurality of project tasks has a task code and the project code.
  • the user application uploads the divisible project data or the several project tasks and a project execution file to the at least one neighboring data temporary storage node.
  • the user application receives a project processing cost value from the at least one neighboring data temporary node; preferably, the user application also receives a project processing time.
  • the at least one neighboring data temporary storage node respectively connects at least one computing resource and publishes via a blockchain network It is recorded that the at least one computing resource receives one of the project tasks from the blockchain network and performs operations on the project execution file.
  • the at least one neighboring data temporary storage node receives the plurality of project task processing results from the at least one computing resource, wherein the plurality of project task processing results respectively have the task code and the project code, and checks the task code according to the task code.
  • the neighboring data temporary node issues a work certificate to the at least one computing resource, and records the work certificate in the blockchain network.
  • the user application end receives a plurality of project task processing results returned by the at least one neighboring data temporary node, and checks whether the project codes in the plurality of project task processing results are consistent.
  • the user application end merges the processing results of the several project tasks according to the task code to generate a project processing result, and checks whether the processing result of the project meets the divisible project data.
  • the user application checks that the project processing result is correct, the user application pays the project processing fee value from an account that belongs to a user who has passed identity authentication, and records the payment of the project processing fee value in the blockchain.
  • the internet The internet.
  • a user application terminal device of a distributed computing system for executing a user application program, which includes: an identity authentication module, a user interface, an item data processing module, an Asset account management module.
  • the identity authentication module is used to authenticate the identity of a user; a user interface is used to enable the user interface when the user authenticates the identity through the identity authentication module; the project data processing module is used to process a project data generated according to the user operation of the user interface, The project datagram contains a project code; and the asset account management module is used to link an account of the user.
  • the project data processing module is connected to at least one neighboring data temporary node, and executes the following steps: uploading the project data or a plurality of project tasks generated by the project data segmentation processing to the at least one neighboring data temporary node, via a The blockchain network released the several project tasks;
  • Receive several project task processing results from the at least one neighboring data temporary storage node check whether the project codes in the plurality of project task processing results are consistent, and if the project task processing results have the project code, return a verification Success information is given to these neighboring data temporary storage nodes.
  • a data temporary storage node of a distributed computing system including: a node monitoring module, a project task receiving module, a project task processing module, a data index management module, and a blockchain.
  • Data module including: a node monitoring module, a project task receiving module, a project task processing module, a data index management module, and a blockchain.
  • the node monitoring module is used to detect the working status of at least one neighboring data temporary node;
  • the project task receiving module is used to receive one project data or several project tasks from at least one user application or the neighboring data temporary node, the project data Or the several project tasks have an item code;
  • the computing resource management module is used to detect the working status of the least one computing resource, connect the least one computing resource to the data temporary node, and the computing resource management module counts the least one operation The computing capacity of the resource;
  • the project task processing module is used to determine whether the least computing resource can process the project data or the project data received by the project task receiving module according to the computing capacity of the least one computing resource calculated by the computing resource management module.
  • the project task processing module assigns one of the several project tasks to one of the at least one computing resource or the neighboring data temporary storage node;
  • the data index management module is configured to receive the module according to the project task Update a data column for the project data or the project tasks received An index, where a part of the data list index represents the item code; and a blockchain data module that records the data list index and one of the several project tasks is assigned to one of the at least one computing resource or the neighboring data Temporarily store the information of the nodes in a blockchain network, wherein the at least one computing resource belongs to the blockchain network.
  • the user application can freely connect to a neighboring data temporary storage node to upload project data or tasks to be processed, and the data temporary storage node issues a computing resource or a resource on the blockchain to be published. It is used by other data staging nodes for processing, and computing resources can also be freely connected to neighboring data staging nodes to register and undertake project tasks. After completing the project tasks, they can receive compensation and work certifications from the data staging nodes. Multiple data are temporarily stored The nodes will also detect the status of each other and synchronize the backup data. Therefore, the distributed computing method and management system proposed by the present invention will not cause data errors due to any device abnormality or disconnection, which is quite robust.
  • FIG. 1 is an architecture diagram of a distributed management system based on an embodiment of the present invention
  • FIGS. 2A and 2B are flowcharts of steps of a method for a user to upload an item according to an embodiment of the present invention
  • FIG. 3 is a flowchart of steps of a method for a user to register a computing resource according to an embodiment of the present invention
  • FIG. 4 is a time chart of synchronization steps of data temporary storage nodes according to an embodiment of the present invention.
  • FIG. 5 is a flowchart of steps in processing a distributed computing method based on an embodiment of the present invention.
  • DESCRIPTION OF SYMBOLS 100: distributed computing management system; 101, 102, 103: temporary data storage nodes; 104: blockchain; 105, 106, 107, 108, 109, 110: computing resources; 111: user application side 201 to 213: steps; 301 to 304: steps; 401 to 406: steps; 501 to 517: steps.
  • FIG. 1 shows a distributed management system architecture based on an embodiment of the present invention.
  • the distributed management system 100 provided by the present invention has a plurality of data temporary storage nodes 101, 102, and 103, which are respectively connected to the computing resources 105 to 110 in the blockchain network 104.
  • the data temporary storage nodes 101, 102 and 103 are also connected to the user application 111.
  • the aforementioned connection methods include direct connection or connection through network nodes such as relay networks and servers. As long as the data transmission in the system can be performed safely, it is not necessary here. More details.
  • the user application is an application executable by a general computer, tablet computer, or smart phone. It has a user interface, identity authentication module, project data editing module, and project data processing module. The user must confirm through the identity authentication module. The identity party can enable the user application.
  • the project data processing module can be connected to different data staging nodes to upload or download data. For example, when the user application is installed for a smart phone, it can be connected to the nearest data staging node to upload project data. After being processed, each data staging node connected to the assigned project task receives the project task result.
  • the project data editing module has program editing functions. Users can write project program codes that require computation and processing through the user interface.
  • Project program codes can be compiled into project execution files, project execution files, and data to be processed by user applications or data storage nodes. It can be divided into multiple groups of project tasks to perform calculations at the same time.
  • the project program code is a big data data statistics method
  • the project pending data is big data data.
  • the data temporary storage node After being divided into project tasks, the data temporary storage node searches for computing resources for statistics.
  • the project data may only include links to the data to be processed, but not all the data to be processed.
  • the data temporary storage nodes or computing resources obtain the data to be processed through the links.
  • the user application also has an asset account management module.
  • the user application uploads the data of the item to be processed to the data staging node, it waits for the data staging node to evaluate the computing resources required for the processing item, such as the total The required computing power, possible task splitting methods, or distributed computing task allocation objects, and then the data storage node returns the cost quotation required for the processing project to the user application.
  • the user can decide whether to agree to the quotation amount and time for calculation.
  • the data storage node will start project task assignment.
  • the project data processing module will call the asset account management module to pay the compensation.
  • the data staging node does not allow the computing resources undertaking the project task to perform full calculations, only using the graphics processor or when idle, and the data staging node will re-evaluate and quote.
  • the project data processing module also has a project data division function. Before the project data processing module uploads the project data to the data temporary storage node, the project data processing module determines Whether to execute the project data splitting procedure, after the project data is split and then uploaded to the data storage node; if the project data processing module does not split the project data, it will be split by the data temporary storage node after uploading and then distributed to other data Processing of staging nodes or computing resources.
  • the project data division function can divide the project data into multiple task data of equal size, or divide the task into different amounts according to the user's settings.
  • the divided task datagram contains project code, task code, project initiator information, project description, project profile, project file size, project program code compilation execution file, upload time, etc.
  • the data processing module has an encryption and decryption processing module that performs multiple encryption processing methods. Each task data is processed by at least one encryption algorithm before being uploaded to the data temporary storage node.
  • each data staging node after each data staging node completes the calculation of the assigned task data, it will return the task result to a specific user application.
  • the user application receives the data staging node, it will return the task.
  • the project data processing module performs the following steps: (1) comparing and verifying whether the result of the task belongs to the assigned project task; (2) returning the verification success information to the data temporary node after the task data is verified correctly; (3) receiving Process the results of the project task and confirm whether the task results have been completely received, for example, the task results are multiple files or multiple data are transmitted to the user application respectively; (4) If the task results have been completely received, merge the task results and decrypt them, for example, according to The task code combines the results of multiple project tasks to obtain the project processing results, or merges the data of the same task codes into the complete project task processing results; (5) requires the asset account management module to pay the project task processing costs from the user account; (6) After paying the fee, set the user to access, use, or own the project calculation results.
  • Each of the above modules is a software subroutine executed on a user device, or software and hardware are used to implement the above functions of the user application side.
  • Data temporary storage node There are multiple data temporary storage nodes in the distributed management system of the present invention.
  • the data temporary storage node has a node monitoring module and a project task receiving module.
  • the node monitoring module will detect other data temporary storage nodes nearby. Whether it works normally to allocate extra project data or receive project data that other data staging nodes need to process.
  • the project task receiving module will identify whether the received data is uploaded by the user application or transferred from other data staging nodes.
  • the project data of the project, or the processing result of the project task returned by the computing resource under the jurisdiction of the data storage node, and then call other modules for processing.
  • the data staging node has a computing resource management module.
  • the computing resource management module is responsible for monitoring and managing each computing resource.
  • the computing resource can independently connect to the data staging node and require registration in order to undertake the project tasks issued by the data staging node.
  • the management module finds that the computing resource of a computing resource is too low, and then rejects the registration of the computing resource. If the computing resource management module finds that the computing power of a computing resource is too low in idle working power, it does not distribute project data to the computing resource until it The level of idle computing power is restored. If one computing resource is judged to be untimely for multiple times, the computing resource management module will determine that the computing resource is offline or out of management.
  • the computing resource management module will determine that the computing resource computing project task has failed.
  • the computing resource management module will also record the status of neighboring computing resources to evaluate the total computing power available in the current jurisdiction of the data temporary node, so as to help the project task processing module determine the data when receiving the project uploaded by the user application Whether the computing resources within the jurisdiction of the staging node are sufficient to undertake the project separately, and decide how to divide the project data, and allocate the divided project tasks to different computing resources.
  • the data temporary storage node has a project task processing module, which is responsible for processing project data uploaded by users and project tasks processed by computing resources, and has the function of dividing project data into project tasks. For example, because different computing resources have different operations Processing capacity, the project task processing module can divide the project task according to the computing resources with the largest computing power and the worst computing power available within the jurisdiction of the data staging node, so that it can undertake processing project tasks and avoid idleness; the project task processing module can also The data storage node has the most computing resources within its jurisdiction to perform division. For example, the number of computing resources available in the jurisdiction with a maximum computing power of A unit is greater than that of other computing power. The size of the task and the division unit can be dynamically adjusted, which is determined in real time according to the state of the computing resources in the jurisdiction at the time.
  • the project task processing module of the data staging node will Divide the unassigned part of the project data that needs to be processed, and temporarily store the node status according to other data monitored by the node monitoring module, and transfer the project data that needs to be processed to other running data temporary nodes.
  • Storage nodes divide project task assignment processing according to the computing resources under their jurisdiction.
  • the project task processing module may also divide the project data to be processed into project tasks and then transfer them to one or more data staging nodes.
  • the project data is divided first, and then the data temporary storage node will receive the divided project tasks, so the data temporary storage node does not need to be divided, and only needs to find the computing resources that can undertake the task.
  • the project task processing module cuts the project data into equal-sized project tasks, and the divided task data report includes the project code, task code, project sponsor information, project description, project profile, and project file. Size, project program code execution file, upload time, etc.
  • the project task processing module has encryption and decryption processing modules that perform multiple encryption processing methods. Each task data is processed by at least one encryption algorithm before being processed. Assign to computing resources for processing or transfer to other data staging nodes.
  • the project task processing module has a project data trial calculation sub-module.
  • the project data trial calculation sub-module will perform trial calculation according to the amount of data. Obtain an estimate of the total computing power required to process the calculation, and return this estimate and the information to be paid to the user application.
  • the project data trial sub-module performs trial calculation after the project data is divided, and the project data trial sub-module randomly selects how much computing power is required for the trial of the divided project task data, and simultaneously detects whether the data contains Bad or malicious code, such as an endless loop or other malicious code.
  • the project data trial submodule will automatically generate a project error message to inform the user that there is a problem with the project data. If the user application does not confirm to receive the project error information, the manager is notified to respond in other ways.
  • the trial will be stopped and the project task receiving module will be notified to temporarily disable the upload permission of the uploaded user application, or perform other tasks.
  • Disposal such as adding the user application to the watchlist or blacklist, freezing the asset account of the corresponding user of the user application, notifying other data staging nodes, revoking the user application's authentication and rejecting its connection with the data staging node, and rejecting the user
  • the application side corresponds to other user behaviors ... and so on.
  • a computing resource may request a project task to its own temporary storage node, indicating how much idle computing power is available.
  • the computing resource management module of the data temporary storage node is responsible for registering the status of the computing resource, and the project data is trial calculated.
  • the sub-module estimates the time required for the computing resource to complete the project task calculation and sets the project task calculation deadline based on the idle computing power in the computing resource status registered by the computing resource management module. After completion, the project task processing module then assigns the project task to the Computing resources.
  • the project task processing module treats the project task as The calculation fails, and the project task corresponding to the operation result is reassigned.
  • a project task can be assigned to only one set of computing resources for processing, or it can be assigned to multiple sets of computing resources.
  • the project task processing module can decide how to assign project tasks based on the computing needs and progress.
  • the project task processing module After the project task processing module sends a divided project task to a computing resource, it will establish a monitoring program for this computing resource, and the monitoring program contains; (1) real-time monitoring whether the calculation deadline is reached, if the deadline has not been reached, The computing resource recovers the computing result.
  • the project task processing module searches for the existence of a backup of the project task computing result on the blockchain through the blockchain data module. If no backup is found, it is regarded as a calculation failure, and the project task processing module redistributes the project.
  • Tasks to other computing resources (2) Monitoring whether the maximum number of allocations for a single task is exceeded, because the same task can be assigned to different computing resources at the same time in distributed computing, but the maximum number of allocations for a single task needs to be set to avoid over-allocating the same
  • When a project task is assigned to a computing resource it receives a computing resource to confirm the acquisition of the project task.
  • the monitoring program adds one to the project task's allocation count. When the project task's allocation count equals to When the upper limit is assigned, the project task will no longer be projected Assignment of task processing modules.
  • the data staging node has a data index management module.
  • the data list is managed by the data index management module and generates a data list index value.
  • the data index management module will update the data list and index value.
  • the node monitoring module monitors the neighboring data temporary nodes, it will check the data list or data list index value of the own data temporary node and the neighboring data temporary nodes, and compare whether the part corresponding to the project task data has the same project task code.
  • the node monitoring module when the node monitoring module cannot find that two or more data temporary storage nodes and the data temporary storage node have a certain data backup, for example, the project task code of one piece of data is temporarily stored in other data If the node's data list or data list index is not found, the data is backed up to a neighboring data temporary storage node and recorded in the blockchain by the blockchain data module.
  • the node monitoring module finds that part of the data of two or more data temporary storage nodes have the same project task code, for example, the data list or data list index has a part corresponding to the same project task code, it selects A data staging node is used as the project task data source, and the same project task encoded data of the neighboring data staging node is used as a backup and recorded by the blockchain data module on the blockchain. In the future, the project task data source will be backed up to the neighboring data staging Node. In one embodiment of the present invention, a data temporary storage node with a newer data time is selected as the project task data source. If the blockchain already has a record of the project task data source, it will no longer be selected.
  • the data temporary storage node has a blockchain data module, which is responsible for uploading the new data list index value generated by the data index management module to the blockchain, and uploading the backup information to the blockchain after data backup.
  • the blockchain data module will record on the blockchain the data resources to which the temporary storage nodes are assigned, which computing resources are assigned to those project tasks, and the proof of work of the computing resources that complete the computing tasks.
  • the project task processing module When the computing resource returns the result of the project task calculation, the project task processing module will compare the project task code. If it is confirmed that the project task code was previously assigned to the computing resource, the project task processing module will check whether the project task operation result is completely recovered. The received part has not been completely recovered, then it waits for the computing resource to return the project task operation result. The computing resource management module will continuously monitor the status of the computing resources, and determine whether the computing resources are overdue according to the deadline for the project task processing module to assign the project tasks. If the project task processing module has not received all the project tasks after the timeout, The calculation result, the project task processing module searches for the existence of a backup of the project task operation result on the blockchain through the blockchain data module.
  • the project task processing module notifies the operation resource management module of the operation resource calculation.
  • the project task failed, and the project task processing module republished the project task on the blockchain network through the blockchain data module. If the project task operation result is completely recovered, the project task processing module will return the completed task result to the user application, and issue a work certificate to the computing resource, and the blockchain data module will upload the work certificate to the block. chain.
  • the data staging node has a cost processing module.
  • the cost processing module will require the asset account management module of the user application to pay the corresponding reward.
  • the cost processing module also The reward will be distributed to the asset account of each computing resource owner participating in the project operation, and the blockchain data module will record the transaction information to the blockchain.
  • Each of the above modules is a software program executed by a data temporary storage node, or software and hardware are used to implement the above functions.
  • the blockchain network records relevant information about various parts of the distributed management system, including (1) information about project data uploaded by user applications. These information include user information, project descriptions, project profiles, Project file size, upload time and other items. After the user agrees to start computing the project, the data temporary storage node will record the related information of these items on the blockchain; (2) the status information uploaded by the data temporary storage node, when a data temporary Save node backup data to other data temporary node nodes, upload backup related information, including source node information (host information, MAC address, IP address), target node information, number of data backups, index of backed up data content, backup Time, node information with the same data already exists.
  • source node information host information, MAC address, IP address
  • target node information number of data backups
  • index of backed up data content index of backed up data content
  • backup Time node information with the same data already exists.
  • the blockchain data module of the data temporary storage node will upload these task record information to the blockchain; (4) calculation of all computing resources Successfully return the return task information of the project task operation result.
  • the return task information includes: the project task code, the task source (data temporary storage node), the computing resource return time, and the data temporary storage node receives the return of the computing resource.
  • these postback task information will be uploaded to the blockchain; (5) the project task data obtained by the computing resource from the neighboring data temporary nodes, and the project task results that have been successfully calculated back; (6) the computing resource calculation project Records of mission failures.
  • the data staging node of the dispatched project task detects the status of the computing resources. If it fails to detect the status of the computing resources, it will be detected by the neighboring data staging node, and judged based on the calculation deadline set when the project task is dispatched.
  • the data staging node detects that the computing resource timed out or left System, the relevant information will be recorded in the blockchain; (7) When a data staging node leaves the system due to various factors (natural disasters, man-made operations) disconnection, the neighboring data staging node will detect the data staging The storage node is abnormal, and the disconnection related information is recorded in the blockchain; (8) When a data temporary storage node returns the completed project task results to the user application, the data temporary storage node will give the work certificate Return the computing resources of the project task results, and record the proof of work in the blockchain.
  • the proof of work content includes the project sponsor identification certificate, project sponsor information, project description, project profile, project file size, assigned project task description, Brief description of the assigned project task, the size of the assigned project task data, the identification of the computing resource returning the result of the operation, the start time of the operation, the end time of the operation, and the total amount of operation of the operation.
  • Computing resources are computing devices connected to temporary data storage nodes in the blockchain network, and execute computing resource-side programs compatible with distributed management systems.
  • computing resources execute computing resource-side programs and connect to the Internet, they execute Search the program of the neighboring data temporary node, upload the information of the computing resource to the neighboring data temporary node, and report the status of the computing resource regularly, so that the neighboring data temporary node manages the computing resource within the jurisdiction, and when the computing resource starts to perform the task During the calculation, the current work progress will also be reported regularly, so that neighboring data temporary nodes can master the progress.
  • the computing resource end program can be an application program, part of the operating system's functions, plug-ins, or other types of software programs and combinations.
  • the computing resource can update the list of currently pending projects according to the content of the blockchain record.
  • the computing resource-side program will execute the judgment program to select the project tasks that can be undertaken and display the projects that can be undertaken.
  • the task list gives users who manage computing resources the choice and decides whether to undertake project task computing.
  • the computing resource may download the project data from the data storage node after the user decides to undertake the project, or automatically start downloading the acceptable project task data after the judging program selects the project task that can be undertaken. .
  • the computing resource-side program has a graphical user interface, which can graphically display the project tasks that are currently available to the neighboring data staging node based on the project task list, and request the neighboring data staging node Download project task data and assign project tasks to the computing resources.
  • the computing resource finishes downloading the project task data, the downloaded file will be decrypted or decompressed. If the user decides to undertake the project task or the system is set to automatically start the calculation process, the task calculation will start immediately.
  • a computing resource needs to obtain a decryption key, a complete algorithm (Executive), and project task data (Data) to start performing task operations.
  • the computing resources can provide different quotation computing methods to be registered at the data temporary storage node.
  • the computing resources only use special processors such as graphics processors or idle computing power to calculate project tasks, or Computing resources use all computing power including the central processing unit to calculate project tasks.
  • the two modes provide different computing power.
  • Computing resources can generate different quotes for different computing modes, and transmit the computing power and quotes of different computing modes to the data. Save nodes for project task processing module to dispatch tasks.
  • the computing resource After the computing resource completes the project task calculation, the computing result is returned to the data temporary storage node. At the same time, the computing resource will upload the obtained project task data, return task information, and the computing result of the temporary data storage node to the blockchain.
  • the results are transferred back to the data staging node.
  • the project task results are uploaded to the blockchain to establish a backup.
  • the data staging node verifies whether the task has been successfully completed before the computing resources can be collected.
  • the content of the proof of work should include the project sponsor identification certificate, project sponsor information, project description, project profile, project file size, assigned project task description, assigned project task profile, assigned project task data size, return Identification of computing resources for computing results, starting time of computing work, ending time of computing work, total amount of computing tasks.
  • the data staging node verifies that the complete calculation result of the project task is correct, and sends it to the user application that initiated the project, it will also ask the user application to pay compensation, and pay the completion of the computing task to the asset corresponding to the computing resource. Account.
  • V. System operation process A variety of operation processes are performed in the distributed management system, including user application uploading projects, computing resource registration, synchronization steps, and project processing processes, which will be explained separately as follows.
  • FIG. 2A and FIG. 2B show the steps of a method for uploading a project by a user according to an embodiment of the present invention.
  • the user application can be enabled.
  • the calculated program code of the project is given to the user application side, for example, the user application side is used to write the program code or the prepared program code is obtained in other ways; followed by step 202, the user commands the user application side to execute the project, and the user application side begins to prepare for uploading.
  • the user application will divide the project task into equal parts or perform other divisions according to the settings;
  • the user application end encrypts the project data to be uploaded or the divided project task according to the settings, and uploads it to the data staging node;
  • step 205 after the data staging node receives the project data, Decide whether to execute the splitting procedure to split the project data, followed by step 206, the data temporary storage node performs the project data Without dividing project tasks and generate data, if the end user's application has been divided over the project data, temporary data storage node may not be split, otherwise the data node staging operation force computing resources available to decide how to split the data according to the project within its jurisdiction.
  • the data temporary storage node performs trial calculation on the project data and estimates based on the total calculation amount.
  • the data temporary storage node may randomly perform trial calculation on the divided part of the project task data selection, or otherwise select the test to be performed.
  • the calculated project data will be checked for malicious code or erroneous data in the trial calculation. When the malicious code is found in the trial calculation, no calculation will be performed, and step 208 will be performed.
  • the data temporary storage node temporarily disables the upload of the project program code by the user application.
  • step 209 Permission or other disposition; if no error or malicious code is found after the data staging node's trial calculation, step 209 will be performed, the data staging node will return the evaluation of the processing item to the user application, and the user application prompts the user to choose whether to Agree to start project calculations.
  • step 210 is performed, and the data staging node calling program checks whether other data staging nodes have a backup of the project data. When it cannot be found that more than two data staging nodes have a backup of the project data , The data staging node backs up the project data to the neighboring data staging node. If more than two data staging nodes are found to have the item data, one of the data staging nodes is selected as the original data staging node, and the neighboring data is The same project data of the temporary storage node is used as a backup; then step 211 and step 212 are performed.
  • the data temporary storage node records the project data on the blockchain, including the personal information of the user who initiated the project, the project description, the project profile, and the project. File size and upload time; in step 212, the data staging node generates or updates the data list and data backup index.
  • the data temporary storage node records the data list and data backup index on the blockchain, and the content includes data source node information (host information, MAC address, IP address), backup node information, number of backed up data, Content index of backup data, backup time, and node information where the same data already exists.
  • FIG. 3 shows the steps of a method for a user to register a computing resource according to an embodiment of the present invention.
  • the computing resource starts to execute a distributed computing application and starts searching for a neighboring temporary data storage node.
  • the found data staging node establishes an online connection and uploads its related information to the data staging node.
  • step 302 the computing resource periodically reports its status to the data staging node, and when the computing resource undertakes the project from the data staging node.
  • the computing resource will also periodically report the work progress to the data staging node; followed by step 303, the data staging node periodically receives the status report of the computing resource.
  • the data staging node determines that the computing resource is offline or out of management. If the computing resource times out after receiving the project task multiple times, the data staging node determines that the computing resource has failed to calculate the project task; then step 304, The data staging node counts the computing power that the surrounding manageable computing resources can provide, and The computing power required is evaluated, and the statistical information is used as the basis for (1) how the data temporary storage node divides the project.
  • the data temporary storage node can be divided in units of the lowest maximum computing power among the surrounding computing resources, or based on the surrounding computing resources. The maximum computing power value of the largest number of machines is divided into units.
  • the data staging node is the basis for assessing whether the workload is saturated. When the data staging node finds that the computing power required for the received project task has exceeded the computing power provided by the surrounding manageable computing resources, it will enter a saturated state. The storage node will transfer the unprocessable project data or the divided project task to the neighboring data storage node, and delete the unprocessable project data or project task to avoid misallocation to the computing resources.
  • FIG. 4 shows the steps for synchronizing a data temporary node with other devices or nodes in an embodiment of the present invention. As shown in FIG. 4, steps 401, 403, 404, and 405 are performed simultaneously. In step 401, the temporary data node will detect nearby If other data staging nodes are still operating, or if there are new data staging nodes, the data staging node will periodically send out signals to detect whether there are other data staging nodes in the range. If the data staging node finds a certain data staging node, If the storage node is abnormal, for example, if the system is disconnected and leaves the system, step 402 will be executed to record the abnormal information on the blockchain, such as the abnormal node information, the time when the abnormality was found, the cause of the abnormality, and so on.
  • the abnormal information such as the abnormal node information, the time when the abnormality was found, the cause of the abnormality, and so on.
  • the statistical information is used as (1) how the data storage nodes are divided. The basis of the project; (2) The basis for assessing whether the workload of the data temporary storage node has been saturated.
  • the data staging node finds that the computing power required for the received project task has exceeded the computing power provided by the surrounding manageable computing resources, it will enter a saturated state. The data staging node will not process the project data or the divided The project task is moved to a nearby data staging node, and the unprocessable project data or project task is deleted to avoid misallocation to the computing resource.
  • step 404 the data staging node assigns the project task to the computing resource, and receives the project for each
  • a monitoring program is established for the computing resources of the task.
  • the monitoring program monitors whether the computing resources of the receiving project task have exceeded the computing deadline, whether the assigned project tasks have reached the maximum number of allocations, the status of the computing resources, and so on; step 405
  • the data staging node generates or updates the data list and data backup index.
  • the data staging node When the data staging node receives new project data or task data and backs up to other data staging nodes, or receives data backup from other data staging nodes , The data list and data backup index will be updated; followed by step 406, According to the temporary storage node, the data list and data backup index are recorded in the blockchain, and the content includes data source node information (host information, MAC address, IP address), backup node information, number of backed up data, backed up data content index, Backup time, node information where the same data already exists.
  • data source node information host information, MAC address, IP address
  • backup node information number of backed up data
  • backed up data content index Backup time
  • FIG. 5 shows the flow of steps in the distributed computing method processing project according to an embodiment of the present invention.
  • the computing resource in step 501 updates the list of currently pending projects according to the content recorded by the blockchain, and the computing resource will perform judgment.
  • the program selects the project tasks that can be undertaken, and displays the list of acceptable project tasks for the user who manages the computing resources to decide whether to undertake the project task computing.
  • step 502 the computing resources download the project data, and the computing resources can be manually determined by the manager. Download the data after accepting the project task, or download the project task automatically after the judging program selects the project task that can be undertaken, and the computing resources can graphically display the currently nearby data temporary nodes for calculation of the project tasks according to the project task list.
  • step 503 the data storage node that receives the request to allocate the task according to the computing resource Computing power, estimate the computing resources required to complete the project task calculation Time, set the project task calculation deadline; then step 504, the data temporary node assigns a project task to the computing resource, and establishes a monitoring program for the computing resource, the monitoring program will monitor the computing resource receiving project Whether the calculation deadline has been exceeded after the task, whether the assigned project task has reached the maximum number of allocations, the status of the computing resources and the progress of the project processing, etc. If the calculation deadline has not been exceeded, continue to monitor the working status of the computing resources.
  • the data temporary storage node looks for a backup of the project task operation results on the blockchain. If no backup is found, the timeout and uncompleted project task will be assigned to other computing resources, and the original computing resource failure will be recorded. If the maximum number of assignments has been reached after the project task is assigned, the data staging node will no longer assign the project task to other computing resources; followed by steps 505 and 506. In step 505, the data staging node is assigning the project task to the operation. After the resource is recorded, the task record information is recorded in the blockchain, and the content includes the project Service code, project task source (data staging node), and computing resources to obtain the project task time.
  • the data staging node When the computing resource does not reply beyond the calculation deadline, the data staging node will judge that the computing resource calculation failed and record the relevant information to the block. Chain, if the data staging node detects that the computing resource has left the system due to other factors, it will also record related information to the blockchain. If the data staging node that issued the task to the computing resource cannot perform this step, the neighboring data will temporarily Save the node instead of detecting the computing resources.
  • the computing resources download the project task data for decryption or decompression.
  • the project task data includes the decryption key, the complete algorithm (Executive), and the project task data (Data).
  • Undertake project tasks or system settings automatically start calculation processing, then immediately start task calculation; followed by step 507, computing resources perform project task calculation processing, and regularly report the work progress and its status to the data temporary node; if the computing resources When an exception occurs, the data temporary storage node reports to execute step 508.
  • the data staging node judges that the computing resource is offline or out of management. When the computing resource has not responded to the work progress multiple times, the data staging node will determine the computing resource calculation task. failure.
  • step 509 is performed to return the result to the data staging node and upload the data link for backup; then step 510, the data staging node receives the project task operation result returned by the computing resource and verifies the calculation. Whether all the calculation results of the project task of the project have been received. If only part of the calculation results are received, continue to wait for other calculation results provided by the calculation resource. If the calculation results of the project task have been received, the data temporary storage module returns the project task.
  • step 511 the data temporary storage module returns the operation result of the project task to the user application, and asks the user application to pay compensation, and
  • the amount of project compensation is transferred from the user application account to the data storage node, and a work certificate is issued to the computing resources that complete the project task; then, steps 512, 513, and 514.
  • step 512 the computing resource receives the work certificate and the content of the work certificate.
  • step 513 after the data staging node receives the computing resource back to the project task operation result, it records the back task information to the blockchain.
  • the back task information includes: the project task code and the task source (data staging node).
  • step 514 the user application receives the project task processing result and executes the following steps: (1) comparing and verifying whether the project task result belongs to the assigned project task data; (2) the task result verification is correct The postback successfully receives information to the data staging node; (3) confirms whether all project task results have been successfully received, if it does not continue to wait for the results of other project task calculations of the same project; (4) pays the project task costs from the user account ; (5) After receiving all the project task operation results, merge the project task operation results and decrypt them (6) After paying all project task costs, set the user to obtain or own the results of the project calculations; followed by step 515, the user application ends the deduction of the account, and the data storage node pays the computation task to the computing resources.
  • step 516 the computing resource receives the remuneration transferred by the data storage node; in step 517, the data storage node records the work resource and the payment payment of the computing resource to complete the computing task. Blockchain.
  • the distributed computing method has several data temporary storage nodes, and the user application can connect to neighboring data temporary storage nodes to upload project data or tasks to be processed, and the data temporary storage nodes will publish on the blockchain to find operations.
  • the resource or other data temporary storage node processes the data.
  • the data temporary storage node will sample the project task for trial calculation, and evaluate the computing power required to process the project task.
  • the project task data will be distributed to the project uploader after agreeing to the compensation amount.
  • Computational resources undertaken; Computational resources can be freely connected to neighboring data staging nodes for registration and undertaking project tasks.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Game Theory and Decision Science (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种分布式计算方法,其管理***(100)具有多个资料暂存节点(101-103),用户应用端连接邻近的资料暂存节点上传欲处理的项目数据,资料暂存节点在区块链网络(104)发布项目任务并对项目任务试算、估值,用户应用端同意报酬额度后,资料暂存节点(101-103)分派项目任务数据给承接的运算资源(105-110);区块链网络(104)内的运算资源(105-110)连接邻近的资料暂存节点(101-103)承接项目任务,当运算资源(105-110)在期限内完成项目任务时,资料暂存节点(101-103)派发报酬与工作证明;整个***中,项目数据上传、项目任务分派、任务结果、派发报酬以及其他异常错误都会记录在区块链,由此确保数据安全性,降低各方的风险与成本。

Description

分布式计算方法与管理*** 技术领域
本发明涉及计算机技术领域,特别是一种分布式计算方法与管理***。
背景技术
近年来,去中心化的区块链技术用已成为信息产业的新焦点,目前典型的区块链应用即为数字货币,数字货币的事务历史记录会在大量分布式计算后加入区块链,存入每台已被认证可进行交易与记录的计算机上,因此牵涉到的资产发行、转账交易、或智能合约等等活动都需要大量的分布式计算处理,藉由互联网目前已有大量的运算资源加入区块链,但仍欠缺一种有效率的分布式管理***,能让需要进行运算任务的用户方便上传运算任务、寻找所有能提供运算能力的运算资源,也让能提供运算能力的运算资源收到对应其运算力与贡献度的运算任务、有效率的获取报酬。
发明内容
本发明的目的在于提供一种有效率的分布式计算方法与管理***,能让需要进行运算任务的用户方便上传运算任务、寻找所有能提供运算能力的运算资源,也让能提供运算能力的运算资源收到对应其运算力与贡献度的运算任务、有效率的获取报酬,并且此分布式计算方法与管理***必须具有检测异常或错误、记录分布式计算数据的备份的功能,避免分布式计算成果因为异常或错误毁损、导致***空转的状况发生。
在本发明的一些实施方式中,提供一种运算专案处理方法,包含以下步骤:一用户应用端提供一可分割的项目数据,该项目数据报含一项目程序与一项目编码,由该用户应用端或至少一邻近数据暂存节点分割该项目资料为数个项目任务,其中,该数个项目任务各自具有一任务编码与该项目编码。
该用户应用端上传该可分割的项目数据或是该数个项目任务以及一项目执行文件至该至少一邻近数据暂存节点。
该用户应用端自该至少一邻近数据暂存节点收到一专案处理费用值;较佳地,该用户应用端还收到一专案处理时间。
若该用户应用端对该至少一邻近数据暂存节点同意该专案处理费用值或该专案处理时间,则该至少一邻近数据暂存节点各别连接至少一运算资源,经由一区块链网络发布并记录,该至少一运算资源由该区块链网络领取该数个项目任务之一以及对该项目执行档进行运算。
该至少一邻近数据暂存节点自该至少一运算资源收到该数个项目任务处理结果,其中,该数个项目任务处理结果分别具有该任务编码与该项目编码,并根据该任务编码检查该数个项目任务处理结果,该邻近数据暂存节点发布一工作证明至该最少一运算资源,并记录该工作证明在该区块链网络。
该用户应用端收到该至少一邻近数据暂存节点回传数个项目任务处理结果,并检查该数个项目任务处理结果中的该项目编码是否一致。
该用户应用端根据该任务编码合并该数个项目任务处理结果产生一专案处理结果,并检查该专案处理结果是否符合该可分割的项目资料。
若该用户应用端检查该专案处理结果无误,该用户应用端自一账户支付该专案处理费用值,该账户属于一身分认证通过的用户,将该专案处理费用值的支付记录在该区块链网络。
允许该身分认证通过的用户存取该专案处理结果。
在本发明的实施方式中,提供了一种分布式计算***的用户应用端装置,用以执行一用户应用端程序,其包含:一身分认证模块、一用户接口、一项目数据处理模块、一资产帐户管理模块。
身分认证模块用于认证一用户身份;一用户接口用于当该用户通过该身分认证模块认证身分,启用该用户接口;项目数据处理模块用于处理根据该用户操作该用户接口产生一项目数据,项目数据报含一项目编码;以及该资产帐户管理模块用于链接该用户的一账户。
其中,该项目数据处理模块连接至少一邻近数据暂存节点,并且执行以下步骤:上传该项目数据或该项目数据被分割处理产生的数个项目任务至该至少一邻近资料暂存节点,经由一区块链网络发布该数个项目任务;
自该至少一邻近数据暂存节点接收数个项目任务处理结果,检查该 数个项目任务处理结果中的该项目编码是否一致,若该数个项目任务处理结果具有该项目编码,回传一验证成功信息给该数个邻近资料暂存节点。
确认是否已完整接收该复数个项目任务处理结果,若已完整接收该复数个项目任务处理结果,合并该复数个项目任务处理结果。
设定该用户可存取该项目任务处理结果。
在本发明的实施方式中,提供一种分布式计算***的数据暂存节点,包含:一节点监控模块、一项目任务接收模块、一项目任务处理模块、一数据索引管理模块以及一区块链数据模块。
节点监控模块用于检测最少一邻近数据暂存节点的工作状态;项目任务接收模块用于接收来自至少一用户应用端或该邻近数据暂存节点的一项目资料或数个项目任务,该项目数据或该数个项目任务具有一项目编码;运算资源管理模块用于检测最少一运算资源的工作状态,将该最少一运算资源连接到该数据暂存节点,该运算资源管理模块统计该最少一运算资源的运算能力;该项目任务处理模块用于根据该运算资源管理模块统计的该最少一运算资源的运算能力,决定该最少一运算资源是否可以处理该项目任务接收模块收到的该项目资料或该数个项目任务,该项目任务处理模块将该数个项目任务之一分派给该最少一运算资源之一或是该邻近数据暂存节点;该数据索引管理模块用于根据该项目任务接收模块收到的该项目数据或该数个项目任务更新一数据列表索引,其中该数据列表索引的一部分代表该项目编码;以及一区块链数据模块,记录该数据列表索引以及该数个项目任务之一被分派给该最少一运算资源之一或是该邻近数据暂存节点的信息到一区块链网络,其中,该最少一运算资源属于该区块链网络。
在上述实施方式中,由于本发明提出的分布式计算方法与管理***的运行中,项目数据上传、项目任务分派、任务结果回报、报酬支付与领取以及其他异常错误都会记录在区块链,因此运算数据与交易安全性都被确保,各方用户与运算装置的风险与成本都可被降低。
此外,本发明提出的分布式计算方法与管理***中,用户应用端能自由连接邻近的资料暂存节点上传欲处理的项目数据或任务,由数据暂存节点发布在区块链寻找运算资源或是其他资料暂存节点进行处理,运算资源亦可自由连接邻近的数据暂存节点进行注册、承接项目任务,当完成项目任务后可自数据暂 存节点领取报酬与工作证明,多个数据暂存节点也会互相检测状态、备份数据达成同步,因此本发明提出的分布式计算方法与管理***不会因为任何装置异常或断线而发生数据错误,具有相当的强健性。
附图说明
图1为基于本发明一实施例的分布式管理***架构图;
图2A与图2B为基于本发明一实施例的用户上传项目的方法步骤流程图;
图3为基于本发明一实施例的用户注册运算资源的方法步骤流程图;
图4为基于本发明一实施例的各数据暂存节点同步步骤时程图;
图5为基于本发明一实施例的分布式计算方法处理项目的步骤流程图。
附图标记说明:100:分布式计算管理***;101、102、103:资料暂存节点;104:区块链;105、106、107、108、109、110:运算资源;111:用户应用端;201~213:步骤;301~304:步骤;401~406:步骤;501~517:步骤。
具体实施方式
以下将以附图揭露本发明的多个实施方式,为明确说明起见,许多实务上的细节将在以下中一并说明。然而,本领域技术人员应当了解到,在本发明部分实施方式中,这些实务上的细节并非必要的,因此不应用以此限制本发明。
图1显示了基于本发明一实施例的分布式管理***架构。如图1所示,本发明提出的分布式管理***100具有多个数据暂存节点101、102与103,分别连接到区块链网络104内的运算资源105至110,数据暂存节点101、102与103同时也连接到用户应用端111,前述的连接方式包含直接连接或是通过中继网络、服务器等网络节点连接皆可,只要能让***内的数据传输安全进行即可,在此不再赘述。
以下是本发明的分布式管理***各部分的详细说明:
一、用户应用端:用户应用端为一般计算机、平板计算机或智能型手机可执行的应用程序,具有用户接口、身分认证模块、项目数据编辑模块与项目数据处理模块,用户须通过身分认证模块确认身份方可启用用户应用端。项目 数据处理模块可与不同的数据暂存节点连接,藉以上传或下载数据,例如当用户应用端为智能型手机安装的应用程序,可连接到最近的数据暂存节点上传项目数据,当项目数据被处理完成后,再连接到分派项目任务的各个数据暂存节点接收项目任务结果。项目数据编辑模块则具有程序编辑功能,用户可通过用户接口编写要求运算处理的项目程序代码,项目程序代码可被用户应用端或数据暂存节点编译成项目执行档,项目执行文件和待处理资料可被分割为多组项目任务同时进行运算,例如项目程序代码是大数据数据统计方法,项目待处理数据是大数据数据,分割成项目任务后由数据暂存节点寻找运算资源进行统计。项目数据中亦可仅包含指向待处理数据的链接,而非全部待处理数据,数据暂存节点或运算资源通过链接取得待处理数据处理项目。
在本发明一些实施例中,用户应用端还具有资产帐户管理模块,当用户应用端上传待处理项目数据至数据暂存节点后,会等待数据暂存节点评估处理项目需要的运算资源,例如总共需要的计算力、可能的任务分割方式或分布式计算任务分配对象,之后数据暂存节点回传处理项目所需的费用报价到用户应用端,用户可决定是否要同意报价额度与时间进行运算,用户同意之后数据暂存节点才会开始进行项目任务分派,当用户应用端收到项目任务运算结果后,项目数据处理模块会呼叫资产帐户管理模块支付报酬。若用户不同意报价,可重新编辑项目程序代码、选择要处理的数据、分割项目任务或其他方式改变项目需要的计算量,或是要求数据暂存节点以不同计价方式来分派项目任务,例如要求数据暂存节点不让承接项目任务的运算资源全力运算、仅以图形处理器运算或闲置时才运算,由数据暂存节点重新估值报价。
在本发明一些实施例中,项目数据处理模块还具有项目数据分割功能,在项目数据处理模块上传项目数据至数据暂存节点之前,根据用户设定或实时选择处理方式,项目数据处理模块会决定是否执行项目数据分割程序,将项目数据进行分割处理后再上传至数据暂存节点;若项目数据处理模块不分割项目数据,则在上传后会由数据暂存节点进行分割,再分派到其他数据暂存节点或运算资源处理。项目数据分割功能可将项目数据分成均等大小的多个任务数据,或是根据用户的设定进行不等量的任务分割。
在本发明一些实施例中,分割后的任务数据报含项目编码、任务编 码、项目发起人信息、项目叙述、项目简介、项目文件大小、项目程序代码编译执行档、上传时间等等项目,项目数据处理模块具有执行多种加密处理方式的加密、解密处理模块,每份任务数据都经过至少一种以上的加密算法处理,才被上传至数据暂存节点。
在本发明一些实施例中,各个数据暂存节点完成被分配到的任务数据的运算后,会传回任务结果给特定的用户应用端,当用户应用端收到各个数据暂存节点回传任务结果之后,项目数据处理模块执行以下步骤:(1)比对与验证任务结果是否属于指派的项目任务;(2)任务数据验证无误后回传验证成功信息给数据暂存节点;(3)接收项目任务处理结果,并确认任务结果是否已完全接收,例如任务结果为多个档案或多笔数据分别传输给用户应用端;(4)若任务结果已完全接收,合并任务结果并解密,例如根据任务编码将多笔项目任务结果合并得到专案处理结果,或是把多笔同任务编码的数据合并为完整的项目任务处理结果;(5)要求资产帐户管理模块由用户帐户支付项目任务处理费用;(6)支付费用后,设定用户可存取、使用或拥有项目运算结果。
上述的各模块皆为用户装置上执行的软件子程序,或是软件搭配硬件实现用户应用端的上述功能。
二、资料暂存节点:在本发明的分布式管理***内具有多个数据暂存节点,数据暂存节点具有节点监控模块与项目任务接收模块,节点监控模块会检测邻近的其他数据暂存节点是否正常运作,以供分配多余的项目数据或接收其他数据暂存节点需要处理的项目数据,项目任务接收模块会辨识收到的数据是否为用户应用端上传或是其他数据暂存节点转移过来的的项目数据,或是数据暂存节点管辖的运算资源回复的项目任务处理结果,再呼叫其他模块处理。
数据暂存节点内具有运算资源管理模块,运算资源管理模块负责监控和管理的各个运算资源,运算资源可自主连接数据暂存节点要求登记,以便承接数据暂存节点发布的项目任务,若运算资源管理模块发现一运算资源的运算能力过低,则拒绝该运算资源登记,若运算资源管理模块发现一运算资源的工作状态中闲置运算力过低,则不分布项目数据给该运算资源,直到其闲置运算力恢复水平,若有一个运算资源被多次判定逾时未回复状态,则运算资源管理模块会判定该运算资源已脱机或不在管理范围内,若一个运算资源接到项目任务后多次逾 时,则运算资源管理模块会判定该运算资源计算项目任务失败。运算资源管理模块也会记录邻近运算资源的状态,以评估所属资料暂存节点目前管辖范围内可动用的运算力总和,藉以在收到用户应用端上传的项目时,帮助项目任务处理模块决定数据暂存节点管辖范围内的运算资源是否足够单独承接项目,以及决定应该如何分割项目数据、分配分割后的项目任务给不同的运算资源。
数据暂存节点具有项目任务处理模块,负责处理用户上传的项目数据与运算资源处理的项目任务,且具有将项目数据分割为项目任务的功能,举例来说,因为不同的运算资源具有不同的运算处理能力,项目任务处理模块可以根据所属数据暂存节点管辖范围内可用最大运算能力最差的运算资源来分割项目任务,使其可以承接处理项目任务,避免闲置;项目任务处理模块也可以根据所属数据暂存节点管辖范围内运算资源最多的类型来进行分割,例如管辖范围内可用最大运算能力为A单位的运算资源数量比其他运算能力的运算资源数量多,则根据A单位运算能力分割出项目任务,分割单位大小可动态调整,根据当时管辖范围内运算资源的状态实时决定。
在本发明一些实施例中,若一数据暂存节点管辖范围内的运算资源都已经被分派项目任务,且没有空置的运算能力可以承接项目任务,则该数据暂存节点的项目任务处理模块会将需要处理的项目数据中未分派的部分分割出来,并且根据节点监控模块监控到的其他数据暂存节点状态,转移需处理的项目数据给其他在运作中的数据暂存节点,由这些资料暂存节点根据各自管辖的运算资源来分割项目任务分派处理。在本发明一些实施例中,项目任务处理模块也可以将需处理的项目数据分割为项目任务后再转移给一个或多个数据暂存节点,另外,若用户应用端在上传项目数据前就已经先将项目数据分割,则数据暂存节点会收到分割后的项目任务,如此数据暂存节点就不需要进行分割,仅需寻找能承接任务的运算资源。
在本发明一些实施例中,项目任务处理模块将项目数据进行切割成均等份量的项目任务,分割后的任务数据报含项目编码、任务编码、项目发起人信息、项目叙述、项目简介、项目文件大小、项目程序代码编译执行档、上传时间等等项目,项目任务处理模块具有执行多种加密处理方式的加密、解密处理模块,每份任务数据都经过至少一种以上的加密算法处理,才被分派给运算资源处 理或转移给其他数据暂存节点。
在本发明一些实施例中,项目任务处理模块具有项目数据试算子模块,当收到用户应用端上传的项目数据或项目任务后,项目数据试算子模块会根据数据量将进行试算,得出处理运算所需要的总运算力估值,并将此估值与需支付报酬信息回传至用户应用端。在本发明一些实施例中,项目数据试算子模块在项目数据分割后进行试算,项目数据试算子模块随机选取分割后的项目任务数据试算需要多少计算力,同时检测数据内部是否含有错误或恶意代码,例如无限循环或其它恶意代码。若试算失败或逾时没有结果,项目数据试算子模块会自动产生项目错误信息,告知用户应用端该项目数据有问题。如果用户应用端没有确认接收该项目错误信息,则通知管理者以其他方式响应。
在本发明一些实施例中,若资料暂存节点试算中发现项目资料内含恶意代码,将停止试算,通知项目任务接收模块暂时停用上传的用户应用端的项目上传权限,或是进行其他处置,例如将该用户应用端加入观察名单或黑名单、冻结用户应用端对应用户的资产帐户、通告其他数据暂存节点、撤销用户应用端的认证和拒绝其与数据暂存节点的联机、拒绝用户应用端对应用户的其他使用行为…等等。
在本发明一些实施例中,一运算资源可对所属资料暂存节点要求项目任务,表示有多少空闲运算力,该数据暂存节点的运算资源管理模块负责登记运算资源的状态,项目数据试算子模块根据运算资源管理模块登记的运算资源状态中的空闲计算力,估算运算资源完成项目任务运算所需要的时间、设定项目任务运算截止期限,完成之后项目任务处理模块再分配项目任务给该运算资源。
若该运算资源超出截止期限还未回传运算结果,且项目任务处理模块通过区块链数据模块在区块链上也没有找到运算结果的备份,则项目任务处理模块将该笔项目任务视为计算失败,重新分派该运算结果对应的该项目任务。一笔项目任务可以只分派给一组运算资源处理,也可以分派给多组运算资源,项目任务处理模块可视运算需要与进度决定如何分派项目任务。
项目任务处理模块将某一分割后的项目任务派送给运算资源之后,会对此运算资源建立一个监看程序,监看程序包含;(1)实时监控是否运算截止期限,若期限到却没有从该运算资源回收运算结果,项目任务处理模块通过区块 链数据模块在区块链寻找是否存在项目任务运算结果的备份,若找不到备份则视为计算失败,项目任务处理模块重新分派该项目任务给其他运算资源;(2)监控是否超过单一任务最大分配次数,因为分布式计算中同一任务可分配给不同运算资源同时进行,但单一任务的分配次数需要设定上限,避免过度重复分配同一任务浪费运算资源,当某一项目任务被分配给一运算资源后收到运算资源确认获取该项目任务,监控程序对该项目任务的分配记数值加一,当该项目任务的分配记数值等于被分配次数的上限值时,该项目任务将不再被项目任务处理模块分配。(3)将项目任务相关信息由区块链数据模块上传到区块链,包括运算资源编号、项目任务信息、分配时间、截止时间等等。(4)定期监控并接收所属数据暂存节点管辖范围内各运算资源的状态,记录在运算资源管理模块。(5)等待回收运算资源传回任务结果。
数据暂存节点具有数据索引管理模块,数据列表由数据索引管理模块所管理并产生数据列表索引值,当一数据暂存节点收到新的项目数据或任务数据,或是收到其它数据暂存节点的数据备份时,数据索引管理模块会更新数据列表与索引值。节点监控模块监控邻近数据暂存节点时会核对所属资料暂存节点与邻近资料暂存节点的数据列表或数据列表索引值,并比对其中对应项目任务数据的部分是否具有相同的项目任务编码,在本发明一些实施例中,当节点监控模块无法发现二个以上的资料暂存节点与所属数据暂存节点具有某笔数据的备分时,例如一笔数据的项目任务编码在其他数据暂存节点的数据列表或数据列表索引中找不到,便将该笔数据备份到邻近数据暂存节点,并由区块链数据模块记录在区块链。在本发明一些实施例中,若节点监控模块发现二个以上的资料暂存节点的部分数据具有相同项目任务编码,例如数据列表或数据列表索引中具有对应同一笔项目任务编码的部分,就择一数据暂存节点作为项目任务数据源,邻近数据暂存节点的同项目任务编码数据作为备份,并由区块链数据模块记录在区块链,将来由项目任务数据源备份到邻近资料暂存节点,在本发明一实施例中,选择数据时间较新的数据暂存节点作为项目任务数据源,若区块链已有项目任务数据源的记录则不再选择。
数据暂存节点具有区块链数据模块,负责将数据索引管理模块产生的新数据列表索引值上传至区块链,并且在数据备份后将备份信息上传至区块 链。另外,区块链数据模块会在区块链上记录所属数据暂存节点分派那些项目任务到哪个运算资源,以及完成运算任务的运算资源的工作证明。
当运算资源传回项目任务运算结果,项目任务处理模块会比对项目任务编码,若确认项目任务编码先前分配给该运算资源过,项目任务处理模块会检查项目任务运算结果是否回收完全,若只收到部分尚未回收完全,则继续等待运算资源回传项目任务运算结果。运算资源管理模块会持续监控运算资源的状态,并且根据项目任务处理模块对分配项目任务的运算截止期限,判断运算资源是否逾时未完成,若项目任务处理模块逾时仍未收到全部项目任务运算结果,项目任务处理模块通过区块链数据模块在区块链寻找是否存在项目任务运算结果的备份,若无法在区块链发现备份,则项目任务处理模块通知运算资源管理模块该运算资源计算该项目任务失败,项目任务处理模块通过区块链数据模块在区块链网络重新发布该项目任务。若项目任务运算结果完全回收成功,则项目任务处理模块将运算完毕之任务结果回传给用户应用端,并且发出工作证明给该运算资源,并由区块链数据模块将工作证明上传至区块链。
数据暂存节点具有费用处理模块,当数据暂存节点成功将运算完毕的任务数据回传给用户应用端,费用处理模块会要求用户应用端的资产帐户管理模块支付相对应的报酬,费用处理模块也会分派报酬至每一位参与项目运算的运算资源所有者的资产账户,并由区块链数据模块将交易信息记录至区块链。
上述的各模块皆为数据暂存节点执行的软件程序,或是软件搭配硬件实现上述功能。
三、区块链:区块链网络上记录了分布式管理***各部分的相关信息,包括(1)用户应用端所上传的项目数据的信息,这些信息包含用户信息、项目叙述、项目简介、项目文件大小、上传时间等等项目,当用户同意开始运算项目后,数据暂存节点会将这些项目相关信息记录在区块链;(2)数据暂存节点上传的状态信息,当一数据暂存节点备份数据到其它数据暂存节点节点,会上传备份相关信息,包括来源节点信息(主机信息、MAC address、IP address)、目标节点信息、备份的数据笔数、备份的数据内容索引、备份时间、已存在相同数据的节点信息,另外,若有数据暂存节点脱机,检测到脱机节点的其他数据暂存节点还会上传相关信息,包含该节点离开***的时间、离开***的原因;(3) 所有运算资源被分派任何项目任务的任务记录信息,任务记录信息需包含:项目任务编码、项目任务来源处(数据暂存节点)、运算资源获取项目任务时间,数据暂存节点的区块链数据模块会上传这些任务记录信息到区块链;(4)所有运算资源计算成功回传项目任务运算结果的回传任务信息,回传任务信息包含:项目任务编码、任务来源处(数据暂存节点)、运算资源回传时间,数据暂存节点收到运算资源回传的结果后会上传这些回传任务信息到区块链;(5)运算资源从邻近的数据暂存节点获取的项目任务数据,以及回传成功运算完毕之项目任务结果;(6)运算资源计算项目任务失败的记录,发派项目任务的数据暂存节点检测运算资源的状态,若其失去功能无法检测则由邻近资料暂存节点检测,并且根据发派项目任务时设定的运算截止期限,判断运算资源计算项目任务是否超时未回复,若数据暂存节点检测到运算资源超时或是离开***,则将相关信息记录在区块链;(7)当一资料暂存节点因为各种因素(天然灾害、人为操作)断线而离开***,邻近的数据暂存节点会检测到该数据暂存节点异常,并将断线相关信息记录在区块链;(8)当一数据暂存节点将运算完毕之完整项目任务结果回传给用户应用端,数据暂存节点会将工作证明交给交回项目任务结果的运算资源,并将工作证明记录在区块链,工作证明内容具有项目发起人识别证明、项目发起人信息、项目叙述、项目简介、项目文件大小、分派的项目任务叙述、分派的项目任务简介、分派的项目任务数据大小、回报运算结果的运算资源识别证明、运算工作开始时间、运算工作结束时间、运算任务总运算量。
四、运算资源:运算资源为区块链网络内连接数据暂存节点的计算装置,执行兼容于分布式管理***的运算资源端程序,当运算资源执行运算资源端程序并且连上互联网,会执行搜寻邻近数据暂存节点的程序,将运算资源的信息上传至邻近数据暂存节点,并且定时回报运算资源的状态,让邻近数据暂存节点管理管辖范围内的运算资源,当运算资源开始执行任务运算时,也会定时回报目前工作进度,让邻近数据暂存节点可以掌握进度。运算资源端程序可为应用程序、操作***的部分功能、插件、或其他型态的软件程序及组合。
当运算资源闲置或有多余运算力时,运算资源可根据区块链记录的内容更新目前待处理的项目列表,运算资源端程序会执行判断程序选出可以承接的项目任务,并显示可承接项目任务列表给管理运算资源的用户选择,决定是否 承接项目任务运算。在本发明一些实施例中,运算资源可在用户决定承接项目后再从数据暂存节点下载项目数据,或是在判断程序选出可以承接的项目任务后就自动开始下载可承接的项目任务数据。
在本发明一些实施例中,运算资源端程序具有图形用户界面,可根据项目任务列表,图像化的显示目前邻近的数据暂存节点可供运算的项目任务,并向邻近的数据暂存节点要求下载项目任务数据、分派项目任务给所属运算资源。当运算资源完成项目任务数据的下载,会将下载的档案进行解密或解压缩,若用户决定承接项目任务或是***设定自动开始运算处理,则立刻开始执行任务运算。在本发明一些实施例中,运算资源需要获得解密密钥、完整算法(Executive)、项目任务数据(Data)才能开始执行任务运算。
在本发明一些实施例中,运算资源可提供不同报价的运算方式登记在数据暂存节点处,例如运算资源仅用专门处理器如图形处理器或是闲置的运算力来计算项目任务,或是运算资源用所有运算力包含中央处理器来计算项目任务,两种模式可提供的运算力不同,运算资源可以对不同运算模式产生不同报价,并将不同运算模式的运算力与报价传送至资料暂存节点,以便项目任务处理模块分派任务。
运算资源在完成项目任务运算之后,回传运算结果到数据暂存节点,同时运算资源会上传获取的项目任务数据、回传任务信息以及回传数据暂存节点的运算结果到区块链。
运算资源将项目任务运算完毕之后,将结果回传数据暂存节点,同时将项目任务运算结果上传区块链建立备份,数据暂存节点验证该笔任务是否成功运算完整后,运算资源才可收到工作证明,工作证明内容应包含项目发起人识别证明、项目发起人信息、项目叙述、项目简介、项目文件大小、分派的项目任务叙述、分派的项目任务简介、分派的项目任务数据大小、回报运算结果的运算资源识别证明、运算工作开始时间、运算工作结束时间、运算任务总运算量。当数据暂存节点验证收到该项目任务的完整运算结果无误,送给发起项目的用户应用端后,同时会要求用户应用端支付报酬,并将完成运算任务的报酬支付给运算资源对应的资产账户。
五、***作业流程:分布式管理***内会执行多种作业流程,包含 用户应用端上传项目、运算资源注册、同步步骤、专案处理流程,将分别解释如下。
图2A与图2B显示了本发明一实施例中用户上传项目的方法步骤流程,如图2A与图2B所示,,用户通过身份认证后可启用用户应用端,步骤201中用户提供待进行分布式计算的项目程序代码给用户应用端,例如利用用户应用端编写程序代码或是以其他方式取得编写完成的程序代码;后接步骤202,用户命令用户应用端执行项目,用户应用端开始准备上传项目数据;后接步骤203,用户应用端根据设定,决定对项目数据进行或不进行分割,若决定分割,用户应用端会分成大小相同的等份项目任务或依设定进行其他分割方式;后接步骤204,用户应用端根据设定对要上传的项目数据或是分割过的项目任务进行加密,并上传给数据暂存节点;后接步骤205,数据暂存节点收到项目数据后,决定是否执行分割程序分割项目数据,后接步骤206,数据暂存节点对项目数据进行或不进行分割并产生项目任务数据,若用户应用端已分割过项目数据,数据暂存节点可不进行分割,否则资料暂存节点可根据管辖范围内运算资源可提供的运算力决定如何分割项目数据。
后接步骤207,资料暂存节点对项目资料进行试算并且根据总运算量估值,资料暂存节点可随机对分割后的项目任务数据选择部分进行试算,或是以其他方式选择要试算的项目数据,试算中会检查是否内含恶意代码或错误数据,当试算发现恶意代码则不进行运算,将进行步骤208,数据暂存节点暂时停用用户应用端上传项目程序代码的权限或是进行其他处置;若数据暂存节点试算后没有发现错误或恶意代码,将进行步骤209,数据暂存节点将处理项目的估值回复用户应用端,用户应用端提示用户选择是否要同意开始进行项目运算。
若用户同意进行项目运算,执行步骤210,数据暂存节点呼叫程序检查其他数据暂存节点是否具有该项目资料的备份,当无法发现二个以上的资料暂存节点具有该项目数据的备分时,该资料暂存节点便将该项目数据备份到邻近资料暂存节点,若发现二个以上的资料暂存节点具有该项目数据,就择一数据暂存节点作为原始资料暂存节点,邻近资料暂存节点的同项目资料作为备份;之后执行步骤211与步骤212,步骤211中,数据暂存节点将该项目数据记录在区块链,包括项目发起用户个人信息、项目叙述、项目简介、项目文件大小、上传时 间;步骤212中,数据暂存节点产生或更新数据列表与数据备份索引,当数据暂存节点收到新的项目数据或任务数据并且备份到其他数据暂存节点,或是收到其它数据暂存节点的数据备份时,会更新数据列表与数据备份索引;后接步骤213中,数据暂存节点将数据列表与数据备份索引记录在区块链,内容包括数据源节点信息(主机信息、MAC address、IP address)、备份节点信息、备份的数据笔数、备份的数据内容索引、备份时间、已存在相同数据的节点信息。
图3显示了本发明一实施例中用户注册运算资源的方法步骤流程,如图3所示,步骤301中运算资源开始执行分布式计算应用程序、开始搜寻邻近数据暂存节点,之后运算资源与找到的数据暂存节点建立联机,将自身相关信息上传至该数据暂存节点;后接步骤302,运算资源定时向该数据暂存节点报告自身状态,当运算资源从该数据暂存节点承接项目任务时,运算资源也会定时向该数据暂存节点报告工作进度;后接步骤303,该数据暂存节点定期接收该运算资源的状态报告,若该运算资源多次逾时未回复状态,则数据暂存节点判定该运算资源已脱机或不在管理范围内,若该运算资源接到项目任务后多次逾时,则数据暂存节点判定该运算资源计算项目任务失败;后接步骤304,数据暂存节点统计周围可管理的运算资源能提供的运算能力,并且对收到的项目任务需求的运算能力进行评估,统计的信息作为(1)资料暂存节点如何分割项目的依据,数据暂存节点可以周围运算资源中最低的最大运算能力值为单位进行分割,或是以周围运算资源中机台数量最多的最大运算能力值为单位进行分割,一种方式是让每台运算资源都有承接项目任务的能力,另一种方式是让最多机台可以完全利用运算力;(2)资料暂存节点评估工作量是否已经饱和的依据,当资料暂存节点发现收到的项目任务所需的运算能力已经超出周围可管理的运算资源能提供的运算能力,将进入饱和状态,资料暂存节点会将无法处理的项目数据或分割后的项目任务移送到邻近数据暂存节点,并删除无法处理的项目数据或项目任务,避免误分派给运算资源。
图4显示了本发明一实施例中数据暂存节点与其他装置或节点同步的的步骤,图4所示,步骤401、403、404与405同时执行,步骤401中数据暂存节点会检测附近其他数据暂存节点是否仍在运作,或是是否有新的资料暂存节点,数据暂存节点会定期发出讯号检测范围内是否有其他数据暂存节点,若资料 暂存节点发现某一资料暂存节点异常,例如断线离开***,会执行步骤402,将异常相关信息记录到区块链,例如异常节点信息、发现异常时间、异常原因等等;步骤403中,数据暂存节点收到周围可管理的运算资源的状态报告,并且统计周围可管理的运算资源能提供的运算能力,并且对收到的项目任务需求的运算能力进行评估,统计的信息作为(1)资料暂存节点如何分割项目的依据;(2)资料暂存节点评估工作量是否已经饱和的依据。当资料暂存节点发现收到的项目任务所需的运算能力已经超出周围可管理的运算资源能提供的运算能力,将进入饱和状态,资料暂存节点会将无法处理的项目数据或分割后的项目任务移送到邻近数据暂存节点,并删除无法处理的项目数据或项目任务,避免误分派给运算资源;步骤404中,数据暂存节点分派项目任务给运算资源,并且对每一个收到项目任务的运算资源建立一个监看程序,监看程序会监控接收项目任务的运算资源是否已经超出运算截止期限、分派的项目任务是否已达最大分配次数、运算资源的状态等等状态;步骤405中,数据暂存节点产生或更新数据列表与数据备份索引,当数据暂存节点收到新的项目数据或任务数据并且备份到其他数据暂存节点,或是收到其它数据暂存节点的数据备份时,会更新数据列表与数据备份索引;后接步骤406,数据暂存节点将数据列表与数据备份索引记录在区块链,内容包括数据源节点信息(主机信息、MAC address、IP address)、备份节点信息、备份的数据笔数、备份的数据内容索引、备份时间、已存在相同数据的节点信息。
图5显示了本发明一实施例中分布式计算方法处理项目的步骤流程,图5所示,步骤501中运算资源根据区块链记录的内容更新目前待处理的项目列表,运算资源会执行判断程序选出可以承接的项目任务,并显示可承接项目任务列表给管理运算资源的用户选择,决定是否承接项目任务运算;后接步骤502,运算资源下载项目数据,运算资源可在管理者手动决定承接项目任务后再下载数据,或是在判断程序选出可以承接的项目任务后就自动下载,运算资源可根据项目任务列表,图像化的显示目前邻近的数据暂存节点可供运算的项目任务给管理者选择是否接受项目任务,并向邻近的数据暂存节点要求分派项目任务给该运算资源、提供项目任务数据;后接步骤503,收到分配任务的请求的数据暂存节点根据运算资源的计算力,估算运算资源完成项目任务运算所需要的时间、设定项目任务运算截止期限;后接步骤504,该数据暂存节点分派项目任务给该运算资 源,并且对该运算资源建立一个监看程序,监看程序会监控该运算资源接收项目任务后是否已经超出运算截止期限、分派的项目任务是否已达最大分配次数、运算资源的状态和专案处理进度等等状态,若尚未超出运算截止期限,则继续监控运算资源工作状态,若已超出运算截止期限,则数据暂存节点在区块链寻找是否存在项目任务运算结果的备份,若找不到备份则将逾时未完成的项目任务分派给其他运算资源,并记录原运算资源失败,若是项目任务分派后已达最大分配次数,则数据暂存节点不会再分派该项目任务给其他运算资源;后接步骤505与步骤506,步骤505中,数据暂存节点在分配项目任务到运算资源后,将任务记录信息记录在区块链,内容包括项目任务编码、项目任务来源处(数据暂存节点)、运算资源获取项目任务时间,当运算资源超出运算截止期限未回复,数据暂存节点会判断运算资源计算失败,并将相关信息记录到区块链,若数据暂存节点检测到运算资源因其他因素离开***,也会将相关信息记录到区块链,若发布任务给运算资源的数据暂存节点无法进行此步骤,则由邻近的数据暂存节点代替检测运算资源;步骤506中,运算资源下载项目任务数据进行解密或解压缩,项目任务数据报括解密密钥、完整算法(Executive)、项目任务数据(Data),若管理者已决定承接项目任务或是***设定自动开始运算处理,则立刻开始执行任务运算;后接步骤507,运算资源进行项目任务运算处理,并且定时向资料暂存节点报告工作进度与自身状态;若运算资源发生异常,数据暂存节点报执行步骤508,当运算资源多次逾时未回复状态时,则数据暂存节点判定运算资源已脱机或不在管理范围内,当运算资源多次逾时未回复工作进度时,则数据暂存节点会判定该运算资源计算项目任务失败。
当运算资源完成项目任务运算时,执行步骤509,将结果回复数据暂存节点,并上传数据链进行备份;后接步骤510,数据暂存节点收到运算资源回复的项目任务运算结果,验算该项目的该项目任务的运算结果是否已经全部收到,若只收到部分则继续等待该运算资源提供其他运算结果,若该项目任务运算结果都已收到,则数据暂存模块回传项目任务运算结果给上传该项目的用户应用端,并执行指派项目给该运算资源的程序;后接步骤511,数据暂存模块回传项目任务运算结果给用户应用端,要求用户应用端支付报酬,将项目报酬金额由用户应用端的帐户转移到数据暂存节点,并且发出工作证明给完成项目任务的运算 资源;后接步骤512、513与514,步骤512中,运算资源收到工作证明,工作证明内容具有项目发起人识别证明、项目发起人信息、项目叙述、项目简介、项目文件大小、分派的项目任务叙述、分派的项目任务简介、分派的项目任务数据大小、回报运算结果的运算资源识别证明、运算工作开始时间、运算工作结束时间、运算任务总运算量;步骤513中,数据暂存节点收到运算资源回传项目任务运算结果后,将回传任务信息记录到区块链,回传任务信息包含:项目任务编码、任务来源处(数据暂存节点)、运算资源回传时间;步骤514中,用户应用端收到项目任务处理结果,执行以下步骤:(1)比对与验证项目任务结果是否属于指派的项目任务数据;(2)任务结果验证无误后回传成功接收信息给数据暂存节点;(3)确认是否所有的项目任务结果都已成功接收,若没有继续等待同项目的其他项目任务运算结果;(4)从用户帐户支付项目任务费用;(5)收到所有的项目任务运算结果后,合并项目任务运算结果并解密;(6)支付全部项目任务费用后,设定用户可取得或拥有项目运算结果;后接步骤515,用户应用端完成对帐户的扣款,数据暂存节点将完成运算任务的报酬支付给运算资源对应的资产账户;后接步骤516与517,步骤516中运算资源收到数据暂存节点转入的报酬;步骤517中,数据暂存节点将运算资源完成运算任务的工作证明与报酬支付记录在区块链。
如前所述的分布式计算方法,具有数个数据暂存节点,用户应用端能连接邻近的资料暂存节点上传欲处理的项目数据或任务,由数据暂存节点发布在区块链寻找运算资源或是其他资料暂存节点进行处理,资料暂存节点会对项目任务抽样试算,并对处理项目任务所需要的运算能力进行估值,经项目上传者同意报酬额度后分派项目任务数据给承接的运算资源;运算资源可自由连接邻近的数据暂存节点进行注册、承接项目任务,当完成项目任务后可自数据暂存节点领取报酬与工作证明;整个项目的分布式计算管理流程中,项目数据上传、项目任务分派、任务结果回报、报酬支付与领取以及其他异常错误都会记录在区块链,由此确保数据安全性,降低用户的风险与成本。
尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。

Claims (17)

  1. 一种分布式运算方法,包含:
    a.一用户应用端提供一可分割的项目数据,该项目数据报含一项目程序与一项目编码,由该用户应用端或至少一邻近数据暂存节点分割该项目资料为数个项目任务,其中,该数个项目任务各自具有一任务编码与该项目编码;
    b.该用户应用端上传该可分割的项目数据或是该数个项目任务以及一项目执行文件至该至少一邻近数据暂存节点;
    c.该用户应用端自该至少一邻近数据暂存节点收到一专案处理费用值;
    d.若该用户应用端对该至少一邻近数据暂存节点同意该专案处理费用值,则该至少一邻近数据暂存节点各别连接至少一运算资源,经由一区块链网络发布并记录,该至少一运算资源由该区块链网络领取该数个项目任务之一以及该项目执行档进行运算;
    e.该至少一邻近数据暂存节点自该至少一运算资源收到该数个项目任务处理结果,其中,该数个项目任务处理结果分别具有该任务编码与该项目编码,并根据该任务编码检查该数个项目任务处理结果,该邻近数据暂存节点发布一工作证明至该最少一运算资源,并把该工作证明记录在该区块链网络;
    f.该用户应用端收到该至少一邻近数据暂存节点回传数个项目任务处理结果,并检查该数个项目任务处理结果中的该项目编码是否一致;
    g.该用户应用端根据该任务编码合并该数个项目任务处理结果,产生一专案处理结果,并检查该专案处理结果是否符合该可分割的项目资料;
    h.若该用户应用端检查该专案处理结果无误,则该用户应用端自一账户支付该专案处理费用值,该账户属于一身分认证通过的用户,将该专案处理费用值的支付记录在该区块链网络;以及
    i.允许该身分认证通过的用户存取该专案处理结果。
  2. 一种分布式管理***的用户应用端装置,用于执行一用户应用端程序,包含:
    一身分认证模块,用于认证一用户身份;
    一用户接口,用于当该用户通过该身分认证模块认证身分,启用该用户接口;
    一项目数据处理模块,用于处理根据该用户操作该用户接口产生一项目数据,该项目数据报含一项目编码;以及
    一资产帐户管理模块,用于链接该用户之一账户;
    其中,该项目数据处理模块连接至少一邻近数据暂存节点,并且执行以下步骤:
    上传该项目数据或该项目数据被分割处理产生的数个项目任务至该至少一邻近资料暂存节点,经由一区块链网络发布该数个项目任务;
    自该至少一邻近数据暂存节点接收数个项目任务处理结果,并检查该数个项目任务处理结果中的该项目编码是否一致,若该数个项目任务处理结果具有该项目编码,回传一验证成功信息给该数个邻近资料暂存节点;
    确认是否已完整接收该数个项目任务处理结果,若已完整接收该数个项目任务处理结果,则合并该数个项目任务处理结果;以及
    设定该用户可存取该项目任务处理结果。
  3. 如权利要求2所述的用户应用端装置,其中,该项目数据处理模块还执行以下步骤:
    自该数个邻近资料暂存节点收到一专案处理费用值;
    发送同意该专案处理费用值的信息至该数个邻近资料暂存节点,发布该复数个项目任务;以及
    若该用户应用端检查该专案处理结果无误,要求该资产帐户管理模块由该用户的该账户支付该专案处理费用值,且将该专案处理费用值的支付记录在该区块链网络。
  4. 如权利要求3所述的用户应用端装置,其中,该项目数据处理模块还执行以下步骤:
    项目数据处理模块决定是否执行一项目数据分割程序;以及
    执行该项目数据分割程序,由该项目数据产生该数个项目任务,其中,该数个项目任务具有该项目编码与一任务编码。
  5. 一种分布式管理***的数据暂存节点,包含:
    一节点监控模块,用于检测最少一邻近数据暂存节点的工作状态;
    一项目任务接收模块,用于接收来自至少一用户应用端或该邻近数据暂存节点 的一项目资料或数个项目任务,该项目数据或该数个项目任务具有一项目编码;
    一运算资源管理模块,用于检测最少一运算资源的工作状态,该最少一运算资源连接到该数据暂存节点,该运算资源管理模块统计该最少一运算资源的运算能力;
    一项目任务处理模块,用于根据该运算资源管理模块统计的该最少一运算资源的运算能力,决定该最少一运算资源是否可以处理该项目任务接收模块收到的该项目资料或该数个项目任务,该项目任务处理模块将该数个项目任务之一分派给该最少一运算资源之一或是该邻近数据暂存节点;
    一数据索引管理模块,用于根据该项目任务接收模块收到的该项目数据或该数个项目任务更新一数据列表索引,其中该数据列表索引之一部分代表该项目编码;以及
    一区块链数据模块,用于记录该数据列表索引以及该数个项目任务之一被分派给该最少一运算资源之一或是该邻近数据暂存节点的信息到一区块链网络,其中,该最少一运算资源属于该区块链网络。
  6. 如权利要求5所述的分布式管理***的数据暂存节点,还包含:
    一费用处理模块,用于要求该至少一用户应用端支付一项目任务处理费用;
    其中,该项目任务处理模块具有一项目数据试算子模块,该项目数据试算子模块对该项目数据或该数个项目任务进行试算,评估该项目资料或该数个项目任务处理所需要的一计算力需求,并根据该计算力需求与该最少一运算资源的运算能力产生该项目任务处理费用的数额。
  7. 如权利要求6所述的分布式管理***的数据暂存节点,其中,该费用处理模块将该至少一用户应用端支付的该项目任务处理费用付给该最少一运算资源的一部分,该最少一运算资源的该部分已完成该数个项目任务之一的运算。
  8. 如权利要求5所述的分布式管理***的数据暂存节点,其中,该项目任务接收模块收到该项目数据时,该项目任务处理模块根据该运算资源管理模块统计的该最少一运算资源的运算能力,分割该项目数据产生该数个项目任务,该数个项目任务分别具有相同的该项目编码与一任务编码。
  9. 如权利要求5所述的分布式计算***的数据暂存节点,其中该项目任务处理模块将该数个项目任务之一分派给该最少一运算资源之一时,该项目任务处理模 块建立一监看程序并且设定一运算截止期限,该监看程序监控该最少一运算资源之一是否已过该运算截止期限未传回一运算结果。
  10. 如权利要求9所述的分布式管理***的数据暂存节点,其中该项目任务处理模块将该数个项目任务之一分派给该最少一运算资源之一时,记录对应该复数个项目任务之一的一被分派次数,该监看程序监控对应该数个项目任务之一的该被分派次数值是否已经达到一最大分派次数,若已达最大分派次数,则该项目任务处理模块停止分派该数个项目任务之一。
  11. 如权利要求5所述的分布式管理***的数据暂存节点,其中,该节点监控模块读取该最少一邻近数据暂存节点的该数据列表索引,该节点监控模块比对该最少一邻近数据暂存节点的该数据列表索引与该数据暂存节点的该数据索引管理模块更新的该数据列表索引,若发现代表该项目编码的该数据列表索引的该部分不在该最少一邻近数据暂存节点的该数据列表索引内时,备份具有该项目编码该数个项目任务到该邻近数据暂存节点。
  12. 如权利要求11所述的分布式管理***的数据暂存节点,其中,该区块链数据模块将一备份相关记录记录在该区块链网络。
  13. 如权利要求5所述的分布式管理***的数据暂存节点,其中,该运算资源管理模块若是多次未收到该最少一运算资源之一的工作状态,判定最少一运算资源之一已脱机。
  14. 如权利要求6所述的分布式管理***的数据暂存节点,其中该项目数据试算子模块试算时若是发现该项目资料或该数个项目任务含有一恶意代码,将停止试算。
  15. 如权利要求9所述的分布式管理***的数据暂存节点,其中若是该最少一运算资源之一超过该运算截止期限未传回该运算结果,或是该运算结果无法完全接收,则该项目任务处理模块通过该区块链数据模块在该区块链寻找是否存在该运算结果的备份。
  16. 如权利要求9所述的分布式管理***的数据暂存节点,其中若是该最少一运算资源之一超过该运算截止期限未传回该运算结果,或是该运算结果无法完全接收,则该项目任务处理模块重新分派该运算结果对应的该项目任务。
  17. 如权利要求5所述的分布式管理***的数据暂存节点,其中该节点监控模 块读取该最少一邻近数据暂存节点的该数据列表索引,该节点监控模块比对该最少一邻近数据暂存节点的该数据列表索引与该数据暂存节点的该数据索引管理模块更新的该数据列表索引,若比对发现都具有相同的一项目任务编码,则决定该最少一邻近数据暂存节点之一与该数据暂存节点两者之一为对应该项目任务编码的一项目任务的数据源。
PCT/CN2018/093577 2018-06-29 2018-06-29 分布式计算方法与管理*** WO2020000349A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/093577 WO2020000349A1 (zh) 2018-06-29 2018-06-29 分布式计算方法与管理***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/093577 WO2020000349A1 (zh) 2018-06-29 2018-06-29 分布式计算方法与管理***

Publications (1)

Publication Number Publication Date
WO2020000349A1 true WO2020000349A1 (zh) 2020-01-02

Family

ID=68984387

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/093577 WO2020000349A1 (zh) 2018-06-29 2018-06-29 分布式计算方法与管理***

Country Status (1)

Country Link
WO (1) WO2020000349A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111552573A (zh) * 2020-05-06 2020-08-18 行星算力(深圳)科技有限公司 一种区块链异构***及人工智能算力网络
CN113111074A (zh) * 2021-03-10 2021-07-13 贾晓丰 基于区块链的交互数据监测方法及装置
CN113157444A (zh) * 2021-03-29 2021-07-23 中国联合网络通信集团有限公司 一种算力服务认证方法、设备以及可读存储介质
CN113176937A (zh) * 2021-05-21 2021-07-27 北京字节跳动网络技术有限公司 任务处理方法、装置和电子设备
CN113810977A (zh) * 2020-06-11 2021-12-17 ***通信有限公司研究院 一种生成算力拓扑的方法、***、节点及介质
US11227282B2 (en) * 2018-08-20 2022-01-18 Probloch LLC Time-bounded activity chains with multiple authenticated agent participation bound by distributed single-source-of-truth networks that can enforce automated value transfer
CN114978908A (zh) * 2022-05-11 2022-08-30 量子科技长三角产业创新中心 算力网络节点评价及操作方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106529932A (zh) * 2016-11-01 2017-03-22 西安电子科技大学 一种基于比特币的外包计算公平支付方法
CN106897906A (zh) * 2017-02-28 2017-06-27 北京众享比特科技有限公司 激励式内容分发方法及***
US20170323392A1 (en) * 2016-05-05 2017-11-09 Lance Kasper Consensus system for manipulation resistant digital record keeping
CN107832139A (zh) * 2017-09-26 2018-03-23 上海点融信息科技有限责任公司 用于管理区块链节点的计算资源的方法、设备和***
CN108009823A (zh) * 2017-11-03 2018-05-08 厦门快商通信息技术有限公司 基于区块链智能合约的分布式算力资源的调用方法和***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170323392A1 (en) * 2016-05-05 2017-11-09 Lance Kasper Consensus system for manipulation resistant digital record keeping
CN106529932A (zh) * 2016-11-01 2017-03-22 西安电子科技大学 一种基于比特币的外包计算公平支付方法
CN106897906A (zh) * 2017-02-28 2017-06-27 北京众享比特科技有限公司 激励式内容分发方法及***
CN107832139A (zh) * 2017-09-26 2018-03-23 上海点融信息科技有限责任公司 用于管理区块链节点的计算资源的方法、设备和***
CN108009823A (zh) * 2017-11-03 2018-05-08 厦门快商通信息技术有限公司 基于区块链智能合约的分布式算力资源的调用方法和***

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11227282B2 (en) * 2018-08-20 2022-01-18 Probloch LLC Time-bounded activity chains with multiple authenticated agent participation bound by distributed single-source-of-truth networks that can enforce automated value transfer
CN111552573A (zh) * 2020-05-06 2020-08-18 行星算力(深圳)科技有限公司 一种区块链异构***及人工智能算力网络
CN111552573B (zh) * 2020-05-06 2024-02-09 行星算力(深圳)科技有限公司 一种区块链异构***及人工智能算力网络
CN113810977A (zh) * 2020-06-11 2021-12-17 ***通信有限公司研究院 一种生成算力拓扑的方法、***、节点及介质
CN113810977B (zh) * 2020-06-11 2024-06-07 ***通信有限公司研究院 一种生成算力拓扑的方法、***、节点及介质
CN113111074A (zh) * 2021-03-10 2021-07-13 贾晓丰 基于区块链的交互数据监测方法及装置
CN113111074B (zh) * 2021-03-10 2024-01-09 贾晓丰 基于区块链的交互数据监测方法及装置
CN113157444B (zh) * 2021-03-29 2023-12-01 中国联合网络通信集团有限公司 一种算力服务认证方法、设备以及可读存储介质
CN113157444A (zh) * 2021-03-29 2021-07-23 中国联合网络通信集团有限公司 一种算力服务认证方法、设备以及可读存储介质
CN113176937A (zh) * 2021-05-21 2021-07-27 北京字节跳动网络技术有限公司 任务处理方法、装置和电子设备
CN113176937B (zh) * 2021-05-21 2023-09-12 抖音视界有限公司 任务处理方法、装置和电子设备
CN114978908B (zh) * 2022-05-11 2023-09-26 量子科技长三角产业创新中心 算力网络节点评价及操作方法和装置
CN114978908A (zh) * 2022-05-11 2022-08-30 量子科技长三角产业创新中心 算力网络节点评价及操作方法和装置

Similar Documents

Publication Publication Date Title
TWI661312B (zh) 分散式運算方法與管理系統
WO2020000349A1 (zh) 分布式计算方法与管理***
CN113169952B (zh) 一种基于区块链技术的容器云管理***
CN112417379B (zh) 一种集群许可证管理方法、装置、授权服务器及存储介质
CN108055138B (zh) 基于区块链的应用分发记录方法和***
US8667096B2 (en) Automatically generating system restoration order for network recovery
CN109583857B (zh) 公开邀约任务处理方法、***、设备及存储介质
US20190236726A1 (en) Control method, controller, data structure, and electric power transaction system
CN111383021B (zh) 基于区块链网络的节点管理方法、装置、设备及介质
CN109347909B (zh) Proxzone服务平台的工作方法
US20220222134A1 (en) Distributed object identification system and method, and edge computing device
CN110163756B (zh) 一种基于联盟链的交易方法、***、服务器及区块链***
CN110602217B (zh) 基于区块链的联盟管理方法、装置、设备及存储介质
CN110289999B (zh) 一种数据处理方法、***及装置
CN112527912B (zh) 基于区块链网络的数据处理方法、装置及计算机设备
US20090222926A1 (en) Software license management system that functions in a disconnected or intermittently connected mode
CN110458709B (zh) 资源转移信息的传输方法和装置、存储介质、电子装置
KR102262093B1 (ko) 게이트웨이장치 및 그 동작 방법
CN111260475A (zh) 一种数据处理方法、区块链节点设备及存储介质
CN114780214B (zh) 任务处理方法、装置、***及设备
CN113411209A (zh) 一种分布式的密码服务全链路检测***及方法
KR100915533B1 (ko) 미복귀 대기 리소스 이용량 결정 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
KR102010442B1 (ko) 클라우드 가상 머신 통합 모니터링 장치 및 시스템
CN110191158A (zh) 一种云桌面服务实现方法和***
US20210089320A1 (en) Dynamic assignment of special tasks in distributed networks

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18924475

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18924475

Country of ref document: EP

Kind code of ref document: A1