RU2741279C2 - Method of performing task in computer system - Google Patents

Method of performing task in computer system Download PDF

Info

Publication number
RU2741279C2
RU2741279C2 RU2019109585A RU2019109585A RU2741279C2 RU 2741279 C2 RU2741279 C2 RU 2741279C2 RU 2019109585 A RU2019109585 A RU 2019109585A RU 2019109585 A RU2019109585 A RU 2019109585A RU 2741279 C2 RU2741279 C2 RU 2741279C2
Authority
RU
Russia
Prior art keywords
computer
task
computer system
data
sends
Prior art date
Application number
RU2019109585A
Other languages
Russian (ru)
Other versions
RU2019109585A (en
RU2019109585A3 (en
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 RU2019109585A priority Critical patent/RU2741279C2/en
Publication of RU2019109585A publication Critical patent/RU2019109585A/en
Publication of RU2019109585A3 publication Critical patent/RU2019109585A3/ru
Application granted granted Critical
Publication of RU2741279C2 publication Critical patent/RU2741279C2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

FIELD: information technology.SUBSTANCE: present invention relates to organization of task execution by network computers. Such a result is achieved due to the fact that at least a part of a plurality of computers of the computer system form a distributed database; first computer creates a task, assigns a cost thereof, stores task data in a distributed database using a third computer, deposits cost of task execution in computer system using third computer and sends data on this task to second computer; second computer reports on readiness to take task to perform first computer; a first computer sends to a second computer a digital signature signed with a first data packet containing task data; second computer performs a task and provides a first computer with digitally signed digital packet data, containing a proof of task execution and a first data packet signed by a first computer; the first computer verifies the proof and sends to the second computer a third data packet signed with its digital signature, containing information on payment and proof of task execution; the second computer stores the third data packet in the computer system distributed database using the third computer, requests the deposited payment for the completed task at the computer system.EFFECT: technical result consists in ensuring reliability of task execution in distributed computer network with reduction of volume of stored data on task in this network.14 cl, 2 tbl, 9 dwg

Description

Область техники, к которой относится изобретениеThe technical field to which the invention relates

Изобретение относится к области обработки данных компьютерными системами, в частности к способам организации выполнения задачи компьютерами сети.The invention relates to the field of data processing by computer systems, in particular to methods of organizing the execution of a task by computers on a network.

Уровень техникиState of the art

Известно решение (US 20090328036 A1, опубл. 31.12.2009), в котором пользователь может настраивать и приобретать виртуальные вычислительные ресурсы так же, как при покупке и настройке физических компьютеров. Один вариант осуществления позволяет пользователю выбирать различные параметры производительности, которые широко известны и используются средним пользователем персонального компьютера. Например, базовая компьютерная система может быть выбрана, а затем настроена путем выбора параметров производительности, таких как бренд процессора, тактовая частота процессора, емкость оперативной памяти (ОЗУ), емкость жесткого диска и т.д. Затем параметры производительности могут быть использованы для настройки ресурсов виртуальных вычислительных машин для обеспечения виртуального компьютера, который по существу соответствует параметрам производительности. Однако в данном решении не описаны механизмы обеспечения надежности выполнения задач виртуальными машинами.There is a known solution (US 20090328036 A1, publ. 12/31/2009), in which the user can configure and purchase virtual computing resources in the same way as when buying and configuring physical computers. One embodiment allows the user to select various performance parameters that are widely known and used by the average personal computer user. For example, a base computer system can be selected and then tuned by choosing performance parameters such as processor brand, processor clock speed, random access memory (RAM) capacity, hard disk capacity, and so on. The performance parameters can then be used to tune the virtual machine resources to provide a virtual machine that substantially matches the performance parameters. However, this solution does not describe mechanisms for ensuring the reliability of tasks execution by virtual machines.

Известно решение (US 8850442 B2, опубл. 30.09.2014), в котором получают запрос на предоставление виртуальной машины на основе информации о конфигурации. Потенциальные ресурсы для размещения виртуальной машины могут быть идентифицированы и оценены. Оцененные потенциальные ресурсы могут быть ранжированы, и оптимальный ресурс для размещения запрашиваемой виртуальной машины может быть выбран на основе рейтинга. Запрошенная виртуальная машина может быть предоставлена на выбранном оптимальном ресурсе. Однако в данном решении не описаны механизмы обеспечения надежности выполнения задач виртуальными машинами.There is a known solution (US 8850442 B2, publ. 09/30/2014), in which a request is received to provide a virtual machine based on configuration information. Potential resources for hosting a virtual machine can be identified and estimated. Estimated potential resources can be ranked and the optimal resource to host the requested virtual machine can be selected based on the rating. The requested virtual machine can be provisioned on the selected optimal resource. However, this solution does not describe mechanisms for ensuring the reliability of tasks execution by virtual machines.

Известно выбранное в качестве прототипа решение (RU 2647697, опубл. 16.03.2018), в котором раскрывается способ распределения ресурсов между агентами в гетерогенной эпизодической вычислительной сети, причем способ содержит этапы, на которых обеспечивают посредством средств межмашинного информационного обмена взаимодействие между вычислительными установками, создают на каждой упомянутой вычислительной установке защищенное хранилище данных; обеспечивают гарантированное хранение входящих сообщений в защищенном хранилище данных; обеспечивают гарантированную обработку тела сообщения; к гетерогенной эпизодической вычислительной сети подключают агентов, представляющих собой вычислительные установки, обеспечивают взаимодействие между вычислительными установками; после того как создают децентрализованную базу данных, хранящую информацию о текущем состоянии ресурсов, агенты формируют и выставляют заявки, в которых указывают, какой ресурс агенты готовы предложить и по какой стоимости. Хранят в децентрализованной базе данных таблицу маршрутизации сообщений.It is known that the solution (RU 2647697, publ. 03/16/2018) has been chosen as a prototype, which discloses a method for distributing resources between agents in a heterogeneous episodic computer network, and the method contains stages at which interaction between computer installations is provided by means of machine-to-machine information exchange, creating on each said computing installation a secure data store; provide guaranteed storage of incoming messages in a secure data storage; provide guaranteed processing of the message body; agents representing computing installations are connected to a heterogeneous episodic computer network, and interaction between computing installations is provided; after they create a decentralized database storing information about the current state of resources, agents form and submit requests, in which they indicate which resource the agents are ready to offer and at what cost. The message routing table is stored in a decentralized database.

Однако в данном решении не описаны механизмы обеспечения надежности выполнения задач вычислительными установками.However, this solution does not describe the mechanisms for ensuring the reliability of the execution of tasks by computing devices.

Раскрытие изобретенияDisclosure of invention

В одном аспекте изобретения раскрыт способ выполнения задачи в компьютерной системе, содержащий этапы на которых:In one aspect of the invention, a method is disclosed for performing a task on a computer system, comprising the steps of:

по меньшей мере часть множества компьютеров компьютерной системы формируют распределенную базу данных, хранящую информацию в виде связанных блоков данных;at least part of the plurality of computers of the computer system form a distributed database storing information in the form of associated data blocks;

первый компьютер компьютерной системы создает задачу, назначает стоимость ее выполнения, сохраняет данные задачи в распределенной базе данных компьютерной системы с помощью третьего компьютера компьютерной системы, депонирует стоимость выполнения задачи в компьютерной системе с помощью третьего компьютера компьютерной системы и отправляет данные об этой задаче второму компьютеру;the first computer of the computer system creates the task, assigns the cost of its execution, stores the task data in the distributed database of the computer system using the third computer of the computer system, deposits the cost of performing the task in the computer system using the third computer of the computer system, and sends data about this task to the second computer;

второй компьютер компьютерной системы сообщает о готовности взять задачу для выполнения первому компьютеру компьютерной системы;the second computer of the computer system informs about the readiness to take a task to perform the first computer of the computer system;

первый компьютер отправляет второму компьютеру подписанный своей цифровой подписью первый пакет данных, содержащий данные задачи;the first computer sends to the second computer a digitally signed first data packet containing task data;

второй компьютер выполняет задачу и предоставляет первому компьютеру подписанный своей цифровой подписью второй пакет данных, содержащий в себе доказательство выполнения задачи и подписанный первым компьютером первый пакет данных;the second computer performs the task and provides the first computer with a digitally signed second data packet containing the proof of the task and the first data packet signed by the first computer;

первый компьютер верифицирует доказательство и отправляет второму компьютеру подписанный своей цифровой подписью третий пакет данных, содержащий информацию об оплате и доказательство выполнения задачи;the first computer verifies the proof and sends to the second computer a digitally signed third data packet containing payment information and proof of task completion;

второй компьютер сохраняет третий пакет данных в распределенной базе данных компьютерной системы с помощью третьего компьютера компьютерной системы, запрашивает депонированную оплату выполненной задачи у компьютерной системы.the second computer stores the third data packet in the distributed database of the computer system by means of the third computer of the computer system, requests the deposited payment of the performed task from the computer system.

В дополнительных аспектах раскрыто, что компьютерная система проверяет третий пакет данных на валидность и выдает часть стоимости или полную стоимость выполнения задачи второму компьютеру; компьютерная система представляет собой блокчейн компьютерную систему; компьютерная система выдает часть стоимости или полную стоимость выполнения задачи второму компьютеру через заранее заданное количество блоков блокчейн; если первый компьютер находит ошибку в выполнении задачи вторым компьютером, он отправляет опровержение выполнения задачи в компьютерную систему; вместе с опровержением первый компьютер отправляет предварительно заданный залог; второй компьютер отправляет по меньшей мере часть информации, необходимой для выполнения задачи, в компьютерную систему, компьютерная система проверяет третий пакет данных, чтобы определить выполнение задачи; компьютерная система в зависимости от результатов проверки либо забирает залог первого компьютера, либо штрафует второй компьютер; компьютерная система формирует рейтинг для компьютеров системы; штрафом для второго компьютера является понижение его рейтинга; первый компьютер делегирует обязательства проверки на любой другой компьютер в сети; первый компьютер создает запись в распределенной базе данных, согласно которой он дает разрешение пользоваться частью его средств для оплаты задач; первый компьютер отправляет данные о задаче четвертому компьютеру компьютерной системы, который становится делегатом проверки; второй компьютер перед выполнением задачи посредством третьего компьютера проверяет достаточность депонированной стоимости выполнения задачи для оплаты стоимости выполнения задачи.In additional aspects, it is disclosed that the computer system checks the third data packet for validity and provides a portion of the cost or the full cost of the task to the second computer; a computer system is a blockchain computer system; the computer system issues part of the cost or the full cost of completing the task to the second computer through a predetermined number of blockchain blocks; if the first computer finds an error in the execution of the task by the second computer, it sends a refutation of the task execution to the computer system; along with the rebuttal, the first computer sends a predetermined collateral; the second computer sends at least some of the information necessary to complete the task to the computer system, the computer system checks the third data packet to determine whether the task has been completed; the computer system, depending on the results of the check, either takes the deposit of the first computer, or fines the second computer; the computer system forms a rating for the computers in the system; the penalty for the second computer is to lower its rating; the first computer delegates the verification obligation to any other computer on the network; the first computer creates an entry in the distributed database, according to which it gives permission to use part of its funds to pay for tasks; the first computer sends the task data to the fourth computer of the computer system, which becomes a validation delegate; the second computer, before executing the task by means of the third computer, checks that the deposited cost of performing the task is sufficient to pay for the cost of performing the task.

В другом аспекте изобретения раскрыт способ выполнения задачи в компьютерной системе, содержащий этапы на которых:In another aspect of the invention, a method for performing a task on a computer system is disclosed, comprising the steps of:

первый компьютер поручает второму компьютеру выполнить задачу, при этом все данные, которыми обмениваются первый и второй компьютеры от начала выполнения задачи до ее завершения, сохраняются в первой последовательности блоков блокчейн;the first computer instructs the second computer to complete the task, while all data exchanged between the first and second computers from the start of the task to its completion is stored in the first sequence of blocks of the blockchain;

причем первый компьютер сохраняет первый блок первой последовательности блоков блокчейн, а второй компьютер сохраняет второй блок первой последовательности блоков блокчейн во второй последовательности блоков блокчейн, хранящейся в третьем компьютере.wherein the first computer stores the first block of the first blockchain blockchain, and the second computer stores the second block of the first blockchain blockchain in a second blockchain blockchain stored in the third computer.

В другом аспекте изобретения раскрыта компьютерная система для выполнения задачи, содержащая:In another aspect of the invention, a computer system for performing a task is disclosed, comprising:

- множество компьютеров компьютерной сети, выполненных с возможностью хранения данных сети в последовательности блоков блокчейн сети;- a set of computers of a computer network, configured to store network data in a sequence of blocks of a blockchain network;

- первый компьютер, выполненный с возможностью поручения второму компьютеру выполнить задачу, сохранять данные, которыми он обменивается со вторым компьютером от начала выполнения задачи до ее завершения, в созданной совмести со вторым компьютером последовательности блоков блокчейн, сохранять данные о порученной задаче в последовательности блоков блокчейн сети;- the first computer, configured to instruct the second computer to complete the task, save the data that it exchanges with the second computer from the start of the task to its completion, in a sequence of blockchain blocks created in conjunction with the second computer, save data about the assigned task in the sequence of blocks of the blockchain network ;

- второй компьютер, выполненный с возможностью выполнять задачу первого компьютера, сохранять данные, которыми он обменивается с первым компьютером от начала выполнения задачи до ее завершения, в первой последовательности блоков блокчейн; сохранять данные о выполненной задаче в последовательности блоков блокчейн сети.- a second computer configured to perform the task of the first computer, to store the data that it exchanges with the first computer from the start of the task to its completion in the first sequence of blocks of the blockchain; save data about the completed task in the block sequence of the blockchain network.

В другом аспекте изобретения раскрыт способ выполнения задач в компьютерной системе, содержащий этапы на которых:In another aspect of the invention, a method is disclosed for performing tasks on a computer system, comprising the steps of:

по меньшей мере часть множества компьютеров компьютерной системы формируют распределенную базу данных, хранящую информацию в виде связанных блоков данных;at least part of the plurality of computers of the computer system form a distributed database storing information in the form of associated data blocks;

первый компьютер компьютерной системы создает задачу, назначает стоимость ее выполнения, депонирует стоимость на третьем компьютере компьютерной системы, сохраняет данные о задаче у себя и отправляет данные об этой задаче исполнителю;the first computer of the computer system creates the task, assigns the cost of its execution, deposits the cost on the third computer of the computer system, stores the data about the task and sends data about this task to the performer;

второй компьютер компьютерной системы откликается для выполнения задачи;the second computer of the computer system responds to the task;

первый компьютер создает первый пакет данных, содержащий задачу и цифровую подпись первого компьютера, и отправляет пакет данных второму компьютеру;the first computer creates the first data packet containing the task and the digital signature of the first computer and sends the data packet to the second computer;

второй компьютер запрашивает всю информацию, необходимую для выполнения задачи, у первого компьютера и после получения запрошенной информации предоставляет первому компьютеру второй пакет данных, содержащий в себе подтверждение начала выполнения задачи и цифровую подпись, отправленную первым компьютером;the second computer requests all information necessary to complete the task from the first computer and upon receiving the requested information, provides the first computer with a second data packet containing a confirmation of the start of the task and a digital signature sent by the first computer;

первый компьютер верифицирует доказательство и отправляет второму компьютеру третий пакет данных, содержащий доказательство информации об оплате и цифровую подпись первого компьютера;the first computer verifies the proof and sends to the second computer a third data packet containing the proof of payment information and the digital signature of the first computer;

второй компьютер, связывается с третьим компьютером, который предоставляет доступ к распределенной базе данных, проверяет совпадение информации об оплате со стоимостью выполнения задачи и начинает выполнять задачу;the second computer communicates with the third computer, which provides access to the distributed database, checks whether the payment information matches the cost of the task, and starts to perform the task;

когда второй компьютер выполнил задачу, он запрашивает оплату у третьего компьютера и записывает данные о выполненной задаче в распределенной базе данных с помощью третьего компьютера.when the second computer has completed the task, it requests payment from the third computer and records data about the completed task in a distributed database using the third computer.

Основными задачами, решаемыми заявленным изобретением, являются распределение ресурсов компьютерной сети между компьютерами сети, обеспечение надежности выполнения задач, взятых на себя компьютерами, обеспечение возможности проверки выполнения задач.The main tasks solved by the claimed invention are the distribution of the resources of the computer network between the computers of the network, ensuring the reliability of the tasks undertaken by the computers, ensuring the possibility of checking the fulfillment of tasks.

Сущность изобретения заключается в том, что в компьютерной сети создается распределенная база данных, хранящая информацию в виде связанных блоков данных, в которой каждый блок данных содержит информацию о предыдущем. База данных хранит в том числе информацию о задаче, которую один из множества компьютеров сети опубликовал для выполнения, и информацию о выполнении этой задачи другим компьютером. Причем в распределенной базе данных компьютерной сети хранится лишь тот объем информации, который необходим и достаточен для проверки выполнения задачи, вся остальная информация сохраняется в компьютере, опубликовавшем задачу, и компьютере сообщившем, что выполнил задачу. То есть, хотя компьютер, опубликовавший задачу, и компьютер, выполняющий задачу, обмениваются большим объемом информации и множеством пакетов данных, но в распределенной базе данных компьютерной сети хранится не вся, а только необходимая и достаточная информация для обеспечения возможности проверки выполнения задачи. Это обеспечивается тем, что упомянутые два компьютера сами записывают информацию, которой обмениваются, в связанные блоки.The essence of the invention lies in the fact that a distributed database is created in a computer network storing information in the form of linked data blocks, in which each data block contains information about the previous one. The database stores, among other things, information about a task that one of the many computers on the network has published for execution, and information about the execution of this task by another computer. Moreover, in a distributed database of a computer network, only the amount of information is stored that is necessary and sufficient to check the completion of the task, all other information is stored in the computer that published the task and the computer that reported that it completed the task. That is, although the computer that published the task and the computer performing the task exchange a large amount of information and many data packets, not all, but only the necessary and sufficient information, is stored in the distributed database of the computer network to ensure that the task is completed. This is ensured by the fact that the two computers themselves write the information that is exchanged in linked blocks.

Технический результат, достигаемый решением, заключается в обеспечении надежности выполнения задачи в распределенной компьютерной сети при уменьшении объема хранимых данных о задаче в этой сети.The technical result achieved by the solution is to ensure the reliability of the task in a distributed computer network while reducing the amount of stored data about the task in this network.

Краткое описание чертежейBrief Description of Drawings

Фиг. 1 показывает компьютерную систему.FIG. 1 shows a computer system.

Фиг. 2 показывает блок-схему для пояснения принципа осуществления способа.FIG. 2 shows a block diagram for explaining the principle of the method.

Фиг. 3а, 3б, 3в показывают процесс обмена при решении задачи хранения данных.FIG. 3a, 3b, 3c show the exchange process when solving the data storage problem.

Фиг. 4а, 4б, 4в показывают процесс обмена при решении задачи хранения данных.FIG. 4a, 4b, 4c show the exchange process when solving the data storage problem.

Фиг. 5а показывает процесс обмена при решении задачи хранения данных.FIG. 5a shows the exchange process when solving the data storage problem.

Осуществление изобретенияImplementation of the invention

В современном мире большая часть вычислительных устройств объединена в сети. Частным видом таких сетей является компьютерная сеть. Компьютерная сеть (фиг. 1) - это множество компьютеров, соединенных линиями связи и работающих под управлением специального программного обеспечения. Линии связи могут быть как проводными, так и беспроводными. Сами сети могут быть как централизованными, так и децентрализованными, а также могут иметь признаки как централизации, так и децентрализации.In today's world, most computing devices are networked. A particular type of such networks is a computer network. A computer network (Fig. 1) is a set of computers connected by communication lines and running under the control of special software. Communication lines can be both wired and wireless. The networks themselves can be both centralized and decentralized, and can also have signs of both centralization and decentralization.

Хранение и передача информации - основное назначение любых компьютерных сетей. Большие объемы информации хранятся в базах данных для обеспечения удобного поиска и доступа к таким данным. В современном мире вместе с централизованными базами данных, которые хранятся на одном вычислительном устройстве, начинают активно применяться облачные базы данных и распределенные базы данных.Storage and transmission of information is the main purpose of any computer networks. Large amounts of information are stored in databases to provide easy search and access to such data. In the modern world, together with centralized databases that are stored on one computing device, cloud databases and distributed databases are actively used.

Распределенная база данных - база данных, составные части которой размещаются в различных узлах компьютерной сети в соответствии с каким-либо критерием.Distributed database - a database, the components of which are located in various nodes of a computer network in accordance with some criterion.

Распределенные базы могут иметь разный уровень реплицированности - от полного отсутствия дублирования информации, до полного дублирования всей информации во всех распределенных копиях (например, блокчейн).Distributed databases can have different levels of replication - from the complete absence of duplication of information, to complete duplication of all information in all distributed copies (for example, blockchain).

Распределение (включая фрагментацию и репликацию) базы данных по множеству узлов не видимо для пользователей. Это свойство называется прозрачностью, а технология распределения и реплицирования данных по множеству компьютеров, связанных сетью, является основополагающей для реализации концепции независимости данных от среды хранения.Distribution (including fragmentation and replication) of the database across multiple sites is not visible to users. This property is called transparency, and the technology for distributing and replicating data across multiple computers connected by a network is fundamental to realizing the concept of data independence from the storage environment.

Отдельно необходимо пояснить о технологии блокчейн. Блокчейн - выстроенная по определенным правилам непрерывная последовательная цепочка блоков (связный список), содержащих информацию. Чаще всего копии цепочек блоков хранятся на множестве разных компьютеров независимо друг от друга.Separately, it is necessary to clarify about the blockchain technology. Blockchain is a continuous sequential chain of blocks (linked list), built according to certain rules, containing information. Most often, copies of blockchains are stored on many different computers independently of each other.

Развитие блокчейн-технологий обеспечило возможность появления смарт-контрактов. Смарт-контракт - компьютерный алгоритм, предназначенный для заключения и поддержания договорных отношений в технологии блокчейн.The development of blockchain technology has made it possible for smart contracts to emerge. Smart contract is a computer algorithm designed to conclude and maintain contractual relationships in blockchain technology.

Стороны подписывают смарт-контракт, используя методы, аналогичные подписанию отправки средств в действующих криптовалютных сетях. После подписания сторонами смарт-контракт вступает в силу. Для обеспечения автоматизированного исполнения обязательств смарт-контракта непременно требуется среда существования, которая позволяет полностью автоматизировать выполнение пунктов контракта. Это означает, что смарт-контракты смогут существовать только внутри среды, имеющей беспрепятственный доступ исполняемого кода к объектам смарт-контракта. Все условия смарт-контракта должны иметь математическое описание и ясную логику исполнения. В связи с этим первые смарт-контракты имеют задачу формализации наиболее простых взаимоотношений, состоящих из небольшого количества условий. Имея беспрепятственный доступ к объектам смарт-контракта, смарт-контракт отслеживает по указанным условиям достижения или нарушения пунктов смарт-контракта и принимает самостоятельные решения, основываясь на запрограммированных условиях. Таким образом, основной принцип смарт-контракта состоит в полной автоматизации и достоверности исполнения договорных отношений.The parties sign a smart contract using methods similar to signing the sending of funds in existing cryptocurrency networks. After signing by the parties, the smart contract comes into force. To ensure the automated execution of the obligations of a smart contract, an existence environment is inevitably required that allows you to fully automate the execution of contract clauses. This means that smart contracts can only exist within an environment that has unhindered access of executable code to smart contract objects. All conditions of a smart contract must have a mathematical description and clear logic of execution. In this regard, the first smart contracts have the task of formalizing the simplest relationships, consisting of a small number of conditions. Having unhindered access to the objects of the smart contract, the smart contract monitors, according to the specified conditions, the achievement or violation of the clauses of the smart contract and makes independent decisions based on the programmed conditions. Thus, the main principle of a smart contract is complete automation and reliability of the execution of contractual relations.

На данный момент пока не так хорошо развит Интернет вещей, поэтому одной из немногих сред, в которой может полноценно реализовываться смарт-контракт, является компьютерная среда.At the moment, the Internet of Things is not yet so well developed, therefore, one of the few environments in which a smart contract can be fully implemented is the computer environment.

Компьютерная среда выполняет две главные функции: хранение данных и вычисления (обработка данных). И этими возможностями компьютеры сети могут делиться друг с другом на основании договорных отношений (используя смарт-контракт).The computing environment has two main functions: data storage and computation (data processing). And network computers can share these capabilities with each other on the basis of contractual relations (using a smart contract).

В настоящее время у большинства компьютеров или иных вычислительных средств в сети имеются неиспользуемые запасы как памяти, так и вычислительных мощностей. При этом некоторые пользователи испытывают недостаток в объемах хранилищ для хранения своей информации, а другие готовы предоставить свои неиспользуемые средства хранения данных. Аналогичная ситуация с вычислительными ресурсами.Currently, most computers or other computing facilities on the network have unused reserves of both memory and computing power. At the same time, some users lack the storage capacity to store their information, while others are ready to provide their unused data storage facilities. The situation is similar with computing resources.

Главный вопрос, который появляется в любой децентрализованной системе, кто или что обеспечивает надежность договорных отношений.The main question that appears in any decentralized system is who or what ensures the reliability of the contractual relationship.

Если один компьютер арендует у другого компьютера пространство его жесткого диска, то должна быть гарантия, что данные будут храниться в течение заданного времени, что оплата будет производиться согласно договору, что не будет распространения конфиденциальной или личной информации и т.п.If one computer rents its hard disk space from another computer, then there must be a guarantee that the data will be stored for a specified time, that payment will be made according to the contract, that there will be no distribution of confidential or personal information, etc.

Эти проблемы во многом решаются посредством использования смарт-контрактов, в которых программно прописываются все условия договора.These problems are largely solved through the use of smart contracts, in which all the terms of the contract are programmed.

Абсолютно то же самое касается и аренды вычислительных мощностей компьютеров сети. Должна быть гарантия, что компьютер заявивший, что предоставит конкретный объем вычислительных мощностей, будет предоставлять его все оплаченное время.Absolutely the same applies to the lease of computing power of network computers. There must be a guarantee that a computer that claims to provide a specific amount of computing power will provide it for all the paid time.

При всех очевидных плюсах использования смарт-контрактов (защищенность информации, децентрализация, отсутствие регуляторов, понятные правила работы, автоматическое исполнение условий) возникает сложность, заключающаяся в том, что количество транзакций в единицу времени в блокчейн сети принципиально ограничено и довольно низко. Кроме того, в силу природы блокчейна частый обмен информацией между участниками блокчейн транзакций приводит к значительному росту требований к объему хранилищ данных об этих транзакциях.With all the obvious advantages of using smart contracts (information security, decentralization, lack of regulators, clear operating rules, automatic execution of conditions), the difficulty arises in that the number of transactions per unit of time in the blockchain network is fundamentally limited and rather low. In addition, due to the nature of the blockchain, the frequent exchange of information between participants in the blockchain transactions leads to a significant increase in the requirements for the volume of data storage for these transactions.

Разработчиками было предложено решение, способное сохранить все преимущества использования смарт-контрактов и устранить указанные выше основные недостатки.The developers proposed a solution that can preserve all the advantages of using smart contracts and eliminate the above main disadvantages.

В предложенном решении, как показано на фиг. 2, два компьютера сети заключают сделку по предоставлению ресурсов и создают между собой свой локальный блокчейн, содержащий информацию по всем аспектам заключения, совершения и завершения сделки.In the proposed solution, as shown in FIG. 2, two computers on the network conclude a deal to provide resources and create their own local blockchain between themselves, containing information on all aspects of the conclusion, execution and completion of the transaction.

При этом часть информации необходимая и достаточная для возможности разрешения возможных конфликтов передается в глобальный блокчейн, формируемый всеми или по меньшей мере некоторыми компьютерами сети.In this case, part of the information necessary and sufficient to resolve possible conflicts is transferred to the global blockchain, formed by all or at least some computers on the network.

Таким образом, в компьютерной сети хранится распределенная база данных, которая хранит информацию обо всех заключенных сделках в виде связанных блоков данных (блокчейн). Эта распределенная база данных формируется множеством компьютеров сети по обычным принципам блокчейн технологии, известным из уровня техники. Эта сеть образует компьютерную систему с распределенными ресурсами хранения и вычисления.Thus, a distributed database is stored in a computer network, which stores information about all concluded transactions in the form of linked data blocks (blockchain). This distributed database is formed by a plurality of computers on the network according to conventional blockchain technology principles known in the art. This network forms a computer system with distributed storage and computing resources.

Краткое описание работы предложенного способаBrief description of the proposed method

У одного из компьютеров системы (назовем его «первый компьютер», хотя порядковые номера не имеют никакого значения, а служат лишь для идентификации компьютеров в рамках объяснения разработанного способа) возникает необходимость в дополнительном месте для хранения файла или дополнительных вычислительных мощностях, он создает задачу по хранению данных или предоставлению вычислительных мощностей и отправляет эту задачу в систему. Задача должна быть описана исчерпывающим образом, чтобы другой компьютер системы, исходя из своих ресурсов, мог однозначно решить может ли он за нее взяться и выполнить.One of the computers in the system (let's call it the "first computer", although the serial numbers have no meaning, but serve only to identify computers within the framework of the explanation of the developed method) there is a need for additional space to store a file or additional computing power, it creates a task for storing data or providing computing power and sends this task to the system. The task must be described in an exhaustive way, so that another computer in the system, based on its resources, can unambiguously decide whether it can take on it and perform it.

Когда другой компьютер системы (назовем его «второй компьютер») решает, что он может выполнить эту задачу, он отправляет соответствующее сообщение первому компьютеру.When another computer in the system (let's call it the "second computer") decides that it can complete this task, it sends a corresponding message to the first computer.

Первый компьютер создает первый пакет данных, содержащий задачу и цифровую подпись первого компьютера, и отправляет пакет данных второму компьютеру. Также первый компьютер депонирует стоимость задачи в компьютерной системе, например, на третьем компьютере компьютерной системы.The first computer creates the first data packet containing the task and the digital signature of the first computer and sends the data packet to the second computer. Also, the first computer deposits the cost of the task in the computer system, for example, on a third computer of the computer system.

Второй компьютер запрашивает всю информацию, необходимую для выполнения задачи, у первого компьютера и после получения запрошенной информации предоставляет первому компьютеру второй пакет данных, содержащий в себе подтверждение начала выполнения задачи и цифровую подпись, отправленную первым компьютером.The second computer requests all the information necessary to complete the task from the first computer and upon receiving the requested information provides the first computer with a second data packet containing confirmation of the start of the task and a digital signature sent by the first computer.

Подтверждением служит, в частности, его собственная электронная цифровая подпись.The confirmation is, in particular, his own electronic digital signature.

Первый компьютер верифицирует доказательство и отправляет второму компьютеру третий пакет данных, содержащий доказательство информации об оплате (подписанную цифровой подписью соответствующую информацию) и цифровую подпись первого компьютера. Для каждого типа задачи разрабатывается свой способ доказательства. Например, для хранения данных доказательством будет являться как сам файл, так и sha56(sha256(файл) + случайная строка), любое устройство в сети, которое хранит тот же файл, может проверить подтверждение.The first computer verifies the proof and sends to the second computer a third data packet containing the proof of payment information (digitally signed relevant information) and the digital signature of the first computer. For each type of problem, a different method of proof is developed. For example, for storing data, the evidence will be both the file itself and sha56 (sha256 (file) + random string), any device on the network that stores the same file can verify the confirmation.

Когда нода (компьютер) сохраняет файл, она шифрует его своим публичным ключом.When a node (computer) saves a file, it encrypts it with its public key.

// Node// Node

// encrypt - шифрование по ключу или паролю, где publicKey - это и есть публичный ключ// encrypt - encryption by key or password, where publicKey is the public key

newfile = encrypt(file, publicKey)newfile = encrypt (file, publicKey)

proofMiner = sha256(file)proofMiner = sha256 (file)

Поскольку автор задачи на хранение тоже имеет этот файл (В моменте загрузки), он знает publicKey исполнителя, которому он отправил задачу. Автор задачи делает ту же самую функциюSince the author of the task for storage also has this file (At the moment of loading), he knows the publicKey of the executor to whom he sent the task. The task author does the same function

proofTrue = sha256(encrypt(file, Публичный ключ исполнителя))proofTrue = sha256 (encrypt (file, Performer's Public Key))

Далее исполнительная нода отправляет автору proofMiner, а автор уже сравнивает.Next, the executive node sends the proofMiner to the author, and the author is already comparing.

if proofTrue = = proofMiner:if proofTrue = = proofMiner:

sendSignWithPaysendSignWithPay

else:else:

wrongProofwrongProof

Далее мы можем дать в сеть доказательство, либо о нарушении, либо об оплате.Further, we can give proof to the network, either of the violation or of the payment.

У первого компьютера с компьютерной системой заключен контракт, на котором лежат токены denet, служащие для оплаты услуг внутри компьютерной сети и являющиеся эквивалентом реальных денег. Из контракта нельзя снимать средства, но можно предоставить другим цифровые подписи об оплате, и если кто-то захочет вывести средства, то автоматически появляется задержка в N блоков (количество блоков выбирается заранее) в контракте. За это время любой участник может открыть спор касательно сделки.The first computer with a computer system has a contract on which denet tokens are located, which are used to pay for services within a computer network and are the equivalent of real money. You cannot withdraw funds from the contract, but you can provide others with digital signatures about payment, and if someone wants to withdraw funds, then a delay of N blocks automatically appears (the number of blocks is selected in advance) in the contract. During this time, any participant can open a dispute regarding the transaction.

Второй компьютер связывается с компьютерной системой, в частности, с третьим компьютером, проверяет совпадение информации об оплате со стоимостью выполнения задачи и начинает выполнять задачу.The second computer communicates with the computer system, in particular, with the third computer, checks that the payment information matches the cost of the task, and begins to complete the task.

Когда второй компьютер выполнил задачу, он запрашивает оплату у компьютерной системы, в частности, третьего компьютера и записывает данные о выполненной задаче в распределенной базе данных компьютерной системы, например, с помощью третьего компьютера.When the second computer has completed the task, it requests payment from the computer system, in particular, the third computer, and records data about the completed task in a distributed database of the computer system, for example, using the third computer.

В дополнительных аспектах компьютерная система проверяет данные о выполненной задаче второго компьютера на валидность и выдает часть стоимости или полную стоимость выполнения задачи второму компьютеру согласно условиям заключенной сделки.In additional aspects, the computer system checks the data on the completed task of the second computer for validity and gives part of the cost or the full cost of the task to the second computer according to the terms of the concluded transaction.

В некоторых аспектах компьютерная система может представлять собой известную из уровня техники блокчейн компьютерную систему.In some aspects, the computer system may be a blockchain computer system known in the art.

В некоторых аспектах компьютерная система выдает стоимость или полную стоимость выполнения задачи второму компьютеру через заранее заданное количество блоков блокчейн, что делается для того, чтобы обеспечить возможность разрешения споров по выполнению задачи между первым и вторым компьютерами. После того как второй компьютер выполнил задачу и сообщил об этом компьютерной сети, у первого компьютера появляется информация об этом, и он имеет возможность проверить и при необходимости опровергнуть факт выполнения задачи.In some aspects, the computer system provides the cost or total cost of completing the task to the second computer through a predetermined number of blockchain blocks to enable disputes over the task between the first and second computers to be resolved. After the second computer has completed the task and reported it to the computer network, the first computer has information about it, and he has the opportunity to check and, if necessary, refute the fact of the task.

В некоторых аспектах, если первый компьютер находит ошибку в выполнении задачи вторым компьютером, он отправляет опровержение выполнения задачи в компьютерную систему, при этом вместе с опровержением первый компьютер отправляет предварительно заданный залог, что служит гарантией отсутствия необоснованных опровержений, так как залог может быть удержан системой, если опровержение будет неправомерным.In some aspects, if the first computer finds an error in the execution of the task by the second computer, it sends a rebuttal of the task execution to the computer system, while along with the rebuttal, the first computer sends a predetermined collateral, which serves as a guarantee that there are no unreasonable rebuttals, since the collateral can be withheld by the system if the refutation is wrong.

Далее второй компьютер отправляет по меньшей мере часть информации, необходимой для выполнения задачи в компьютерную систему, а компьютерная система проверяет данные от второго компьютера, чтобы убедиться в выполнении задачи вторым компьютером.The second computer then sends at least some of the information necessary to complete the task to the computer system, and the computer system checks the data from the second computer to ensure that the second computer is performing the task.

Как вариант, второй компьютер может отправлять в компьютерную систему корень дерева меркла задачи хранения.Alternatively, the second computer can send the root of the storage task dead tree to the computer system.

Далее компьютерная система в зависимости от результатов проверки либо забирает залог первого компьютера, если проверка показала, что задача выполнена, либо штрафует второй компьютер, если проверка показала, что задача не выполнена.Further, the computer system, depending on the results of the check, either takes the pledge of the first computer if the check showed that the task was completed, or penalizes the second computer if the check showed that the task was not completed.

В одном из вариантов компьютерная система формирует рейтинг для компьютеров системы, чтобы пользователи могли выбирать компьютеры для выполнения их задач, ориентируясь на рейтинг, который отражает по меньшей мере успешность и количество ранее выполненных задач.In one embodiment, the computer system generates a rating for the computers in the system so that users can select computers to perform their tasks based on a rating that reflects at least the success and the number of previously completed tasks.

Если один из компьютеров не выполнил задачу, которую взял на себя, то его штрафуют, в частности, понижают его рейтинг. Другим вариантом штрафа является уменьшение стоимости выполнения задачи.If one of the computers did not complete the task that it took upon itself, then it is fined, in particular, its rating is lowered. Another penalty option is to reduce the cost of completing the task.

В одном из вариантов осуществления первый компьютер делегирует обязательства проверки на любой другой компьютер в сети. Что используется в варианте, когда подключается кластер из компьютеров и в одном кластере есть мастер нода, которая распределяет задачи по локальной сети.In one embodiment, the first computer delegates verification obligations to any other computer on the network. This is used in the case when a cluster of computers is connected and in one cluster there is a master node that distributes tasks over the local network.

В одном из вариантов осуществления первый компьютер заверяет цифровой подписью, пакет данных, в котором он делегирует сумму. Под делегированием понимается передача права другому компьютеру заниматься проверками вместо него. Например, пользователь, который загружает данные в сеть, не всегда бывает онлайн, поэтому он может дать любой ноде роль "проверяющей", для своих задач, не передавая свой приватный ключ.In one embodiment, the first computer digitally signs the data packet in which it delegates the amount. Delegation refers to the transfer of the right to another computer to perform checks in its place. For example, a user who uploads data to the network is not always online, so he can give any node the role of "checking" for his tasks without transferring his private key.

В одном из вариантов осуществления первый компьютер создает запись в распределенной базе данных, согласно которой он дает разрешение пользоваться частью его средств для оплаты задач. Данный вариант реализуется аналогичным образом и для аналогичных целей, что и вариант с делегированием суммы.In one embodiment, the first computer creates an entry in the distributed database that it authorizes to use a portion of its funds to pay for tasks. This option is implemented in the same way and for similar purposes as the option with the delegation of the amount.

В одном из вариантов осуществления для повышения надежности первый компьютер отправляет данные о задаче четвертому компьютеру компьютерной системы, который становится делегатом проверки.In one embodiment, to improve reliability, the first computer sends task data to a fourth computer in the computer system, which becomes a validation delegate.

В одном из вариантов осуществления из цифровой подписи можно узнать автора задачи, а также проверить информацию, которая содержится в задаче.In one embodiment, the digital signature can be used to identify the author of the task, as well as verify the information contained in the task.

ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯDESCRIPTION OF IMPLEMENTATION OPTIONS

Вариант 1. Хранение данныхOption 1. Data storage

Первый компьютер создал задачу, берем от нее sha3(task) = = taskHash, далее когда компьютеры системы создают операции с этой задачей, во всех сообщениях они подписывают taskHash и сохраняют к себе sha3(task). В момент сохранения файла, формируется локальный блокчейн между первым компьютером и вторым компьютером - sha3(taskHash + query + digSig) = = lastQuery, предположим, что кто-то из участников договора захочет не заплатить или просто прекратит работу, тогда у обоих будет цепочка операций, подтвержденная цифровыми подписями, единственный момент потери сводится к самому последнему блоку и наименьшей операции.The first computer created a task, we take sha3 (task) = = taskHash from it, then when the computers of the system create operations with this task, they sign taskHash in all messages and save sha3 (task) to themselves. At the time of saving the file, a local blockchain is formed between the first computer and the second computer - sha3 (taskHash + query + digSig) = = lastQuery, suppose that one of the parties to the agreement wants not to pay or simply stops working, then both will have a chain of operations digitally signed, the only moment of loss comes down to the very last block and the smallest operation.

Для оптимизации этого процесса, рекомендуется сбрасывать цепочки до размера не более чем в 256 байт, поскольку в случае обмана одной из сторон, эту цепочку придется передавать в блокчейн компьютерной сети в качестве доказательства. В самой цепочке достаточно будет предоставить последнее состояние, не передавая изначальных параметров задачи (для оплаты, получения рейтинга и разрешения конфликта).To optimize this process, it is recommended to dump chains to a size of no more than 256 bytes, since if one of the parties is deceived, this chain will have to be transferred to the blockchain of the computer network as evidence. In the chain itself, it will be enough to provide the last state without passing the initial parameters of the task (for payment, getting a rating and resolving the conflict).

Общий принцип такой, что компьютеры системы могут договариваться между друг другом напрямую, а в блокчейн транслировать уже самый последний этап работы.The general principle is that the computers of the system can negotiate between each other directly, and broadcast the very last stage of work to the blockchain.

Конкретный частный пример реализации хранения данныхConcrete private example of data storage implementation

Алиса - девушка, у которой есть архив фотографий себя и своих друзей с секретного мероприятия, Алиса хочет сохранить архив в компьютерной системе, в которой находится ее компьютер (первый компьютер). Алиса готова заплатить 100 условных денежных единиц - DNET. Боб - владелец компьютера (второго компьютера), на котором есть свободные 30 гб для сдачи их в аренду, Боб хочет сдавать в аренду свои 30 гб. Эта ситуация проиллюстрирована на фиг. 3а.Alice is a girl who has an archive of photos of herself and her friends from a secret event, Alice wants to save the archive on the computer system where her computer is located (the first computer). Alice is ready to pay 100 conventional monetary units - DNET. Bob is the owner of a computer (second computer) that has 30 GB free for rent, Bob wants to rent his 30 GB. This situation is illustrated in FIG. 3a.

Алиса - создает смарт-контракт (Task SC) для выполнения задачи и кладет в него сумму за выполнение задачи. В данном случае Алиса создает задачу на хранение, она уже знает, что Боб будет выполнять эту задачу, Алиса подписывает задачу цифровой подписью (digSig Alice), для Боба и отправляет информацию о задаче Бобу. Что проиллюстрировано на фиг. 3б.Alice - creates a smart contract (Task SC) to complete the task and puts in it the amount for the task. In this case, Alice creates a task for storage, she already knows that Bob will perform this task, Alice signs the task with a digital signature (digSig Alice) for Bob and sends information about the task to Bob. As illustrated in FIG. 3b.

Боб запрашивает файлы (самой задачи на хранение), если он соглашается выполнять задачу, скачивая их, он проверяет эти файлы и предоставляет доказательство (proof) и свою цифровую подпись (digSig) на начало выполнения. Что проиллюстрировано на фиг. 3в. Создателем смарт-контракта может быть сформирован идентификатор задачи TaskID, который далее используется при обмене данными для идентификации задачи.Bob asks for files (of the task itself for storage), if he agrees to complete the task by downloading them, he verifies these files and provides proof and his digital signature (digSig) to start execution. As illustrated in FIG. 3c. The creator of the smart contract can generate the task identifier TaskID, which is then used in the exchange of data to identify the task.

Алиса проверяет доказательство и отправляет Бобу, оффчейн транзакцию в которой содержится информация о том, что она согласна с Бобом (proof Bob) и информация о том, что она платит первый взнос за хранение данных (pay). Причем эта транзакция также подписана ее цифровой подписью (digSig Alice). Что проиллюстрировано на фиг.4а. Причем конечную транзакцию отправляют в блокчейн компьютерной системы, только после того, как задача выполнена или кто-то хочет вывести средства.Alice verifies the proof and sends Bob, an off-chain transaction containing information that she agrees with Bob (proof Bob) and information that she pays the first payment for storing data (pay). Moreover, this transaction is also signed by her digital signature (digSig Alice). Which is illustrated in Fig. 4a. Moreover, the final transaction is sent to the blockchain of the computer system only after the task is completed or someone wants to withdraw funds.

Боб в свою очередь сверяет эту информацию с информацией указанной в задаче (то есть то, сколько Алиса должна заплатить за период хранения N).Bob, in turn, verifies this information with the information specified in the task (that is, how much Alice should pay for the storage period N).

С этого момента у Боба начинает формироваться рейтинг.From this moment, Bob's rating begins to form.

Когда Боб находит sha3(filekey + hashBlock) < difficult(Alice TaskSC), Боб запрашивает вывод денежных средств за выполнение задачи на свой баланс в смарт-контракте. Что проиллюстрировано на фиг.4б. Как только нода получает файл, она сохраняет его, шифрует своим публичным ключем, затем берет от него хеш, таким образом получая filekey (filekey = sha256(encrypt(newFile, publicKey))). Сложность difficult- это величина, которая показывает насколько сложно найти хэш, который будет следующей предложенной целью сети. Сложность в данном решении определяется также как в сети Bitcoin.When Bob finds sha3 (filekey + hashBlock) <difficult (Alice TaskSC), Bob requests a withdrawal of funds for completing the task to his balance in the smart contract. This is illustrated in Fig. 4b. As soon as the node receives the file, it saves it, encrypts it with its public key, then takes the hash from it, thus getting filekey (filekey = sha256 (encrypt (newFile, publicKey))). Difficulty is a measure of how difficult it is to find a hash that will be the next proposed goal of the network. The complexity in this solution is defined in the same way as in the Bitcoin network.

Смарт-контракт проверяет данные на валидность и дает возможность вывести нужную сумму через 50 блоков блокчейн сети. Что проиллюстрировано на фиг. 4в, 5а.The smart contract checks the data for validity and makes it possible to withdraw the required amount through 50 blocks of the blockchain network. As illustrated in FIG. 4c, 5a.

Этого времени хватит, чтобы Алиса или другой участник сети, выполняющий ту же задачу, смог опубликовать опровержение. По истечению 50 блоков, Боб забирает свои заработанные средства.This is enough time for Alice or another network participant performing the same task to post a refutation. After 50 blocks, Bob takes his earned money.

Если Алиса (или другой участник сети, выполнявший ту же задачу) находит ошибку в вычислениях Боба. Алиса, отправляет залог в 250 DNET токенов и ждет 50 блоков, пока Боб докажет, что он прав (или не докажет).If Alice (or another network member who performed the same task) finds an error in Bob's calculations. Alice sends a pledge of 250 DNET tokens and waits for 50 blocks for Bob to prove that he is right (or not).

Боб доказывает владение файлом, путем отправления 1-4 мб куска файла и корнем дерева меркла от этой задачи, смарт-контракт производит операцию шифрования файла и проверки доказательства от Боба, если доказательство верное, Алиса лишается всех балансов частично в пользу сети, частично в пользу Боба.Bob proves ownership of the file by sending 1-4 MB of a piece of the file and the root of the tree faded from this task, the smart contract performs the operation of encrypting the file and checking the proof from Bob, if the proof is correct, Alice loses all balances partly in favor of the network, partly in favor Bob.

Если Боб не может доказать обратного, или доказательство Боба было неверным, то Боб будет наказан санкциями прописанными в смарт-контракте. Полная мета-информация о самой задаче попадает в блокчейн только в момент, когда возникает спор.If Bob cannot prove otherwise, or Bob's proof was incorrect, then Bob will be punished with the sanctions prescribed in the smart contract. Full meta-information about the task itself enters the blockchain only at the moment when a dispute arises.

Вариант 2. Децентрализованный хостингOption 2. Decentralized hosting

Децентрализованный хостинг представляет собой компьютерную систему, в которой обеспечивается возможность для компьютеров делиться своими ресурсами друг с другом на договорных отношениях.Decentralized hosting is a computer system that provides the ability for computers to share their resources with each other on a contractual basis.

Децентрализованный хостинг совмещает в себе 2 направления: децентрализованную систему, в которой устройства делятся вычислительными ресурсами или ресурсами памяти (DeNet.Core) и систему, которая работает поверх DeNet.Core и формирует задачи для DeNet.Core (DeNet.Hosting).Decentralized hosting combines 2 areas: a decentralized system in which devices share computing or memory resources (DeNet.Core) and a system that runs on top of DeNet.Core and generates tasks for DeNet.Core (DeNet.Hosting).

Далее устройством называется вычислительное устройство, которое подключается к сети DeNet.Core и делится своими мощностями, выполняя задачи.Further, a device is called a computing device that connects to the DeNet.Core network and shares its powers by performing tasks.

В компьютерной системе вводится рейтинг, чтобы обезопасить пользователей от недобросовестных арендодателей (устройств предоставляющих свои ресурсы). Каждаое устройство в сети имеет свой рейтинг.A rating is introduced in the computer system to protect users from unscrupulous landlords (devices that provide their resources). Each device on the network has its own rating.

Новое устройство имеет нулевой рейтинг и может выполнять только бесплатные задачи. Получить рейтинг можно, успешно завершая полученные задачи. Чем выше рейтинг у устройства, тем больше вероятность того, что оно сможет принять задачу с оплатой. Владелец устройства указывает, за сколько DeNet-токенов (условных или реальных денежных единиц) он готов сдавать 100% от указанных ресурсов. Можно указать любую сумму.The new device is rated zero and can only complete free tasks. You can get a rating by successfully completing the received tasks. The higher the rating of a device, the more likely it will be able to accept a payment task. The owner of the device indicates for how many DeNet tokens (conventional or real money units) he is ready to donate 100% of the specified resources. You can specify any amount.

Как было указано выше, рейтинг начисляется после успешного выполнения задачи. Рассчитывается рейтинг по формулеAs mentioned above, the rating is awarded after the successful completion of the task. The rating is calculated by the formula

ΔR=uptime⋅(VRAM⋅GRAM+VCPU⋅GCPU+…+VNet⋅GNet)ΔR = uptime⋅ (V RAM ⋅G RAM + V CPU ⋅G CPU +… + V Net ⋅G Net )

ΔR - рейтинг, который начисляется за выполнение задачиΔR - rating that is awarded for completing the task

uptime - время, потраченное на выполнение задачиuptime - time spent on task execution

Vparam - объем параметра рогат t предоставляемого в арендуV param - the volume of the lease t parameter

Gparam - функция поиска средней стоимости параметра рогат за последние N платных задач:G param - function for finding the average cost of the rogat parameter for the last N paid problems:

Figure 00000001
Figure 00000001

N - наименьшее число, удовлетворяющее условиям:N is the smallest number that meets the conditions:

Figure 00000002
Figure 00000002

где Nconst и Tconst - фиксированные величины;where N const and T const are fixed values;

ti - время, затраченное на выполнение устройством задачи i;t i is the time spent by the device on task i;

ci - цена за единицу параметра param уст-ва при выполнении рассматриваемой задачи i.c i - price per unit of the parameter param of the device when performing the considered task i.

Такое определение рейтинга обеспечивает достоверное определение надежных устройств для аренды у них ресурсов и соответственно обеспечивает надежность выполнения предложенной задачи.Such determination of the rating ensures reliable determination of reliable devices for renting resources from them and, accordingly, ensures the reliability of the proposed task.

Список параметров необходимых для корректного распределения задач и формирования рейтинга приведен в таблице ниже:The list of parameters required for the correct distribution of tasks and the formation of a rating is given in the table below:

Figure 00000003
Figure 00000003

Figure 00000004
Figure 00000004

Figure 00000005
Figure 00000005

Устройство может заморозить некоторое количество денежных средств, которыми гарантирует свою надежность. При неудачном выполнении задачи (например, при отключении Интернета или питания) в пользу арендатора списывается часть замороженных денежных средств. Такая гарантия повышает шанс получить задачи, когда есть другие устройства, претендующие на эти задачиThe device can freeze a certain amount of money, which guarantees its reliability. If the task is unsuccessful (for example, when the Internet or power is turned off), a part of the frozen funds is debited to the tenant. This guarantee increases the chance of getting tasks when there are other devices claiming these tasks.

Задача - это набор файлов и системных требований. Например:A task is a collection of files and system requirements. For example:

work/main.py,work / main.py,

manifest.jsonmanifest.json

Figure 00000006
Figure 00000006

work/main.py - основное приложениеwork / main.py - main application

Figure 00000007
Figure 00000007

manifest.json - требования к приложениюmanifest.json - application requirements

В данном случае задача - это приложение парсер с требованиями по RAM, NET, CPU. После создания задачи и поиска устройства для ее запуска, происходит запуск приложения. Если устройство выполнило задачу без ошибок, то оно получает рейтинг, равный среднерыночной стоимости оказанных им услуг. Если же устройство выполняет задачу с ошибками, то устройство теряет часть рейтинга и часть замороженных средств.In this case, the task is a parser application with requirements for RAM, NET, CPU. After creating a task and searching for a device to start it, the application starts. If the device completed the task without errors, then it receives a rating equal to the average market value of the services it rendered. If the device performs the task with errors, then the device loses part of the rating and part of the frozen funds.

Заказчик формирует задачу, задавая необходимые параметры вычислительной системы и цену за работу. Эта информация отправляется на устройство сети, которое подбирает арендодателя, подходящего по всем заданным параметрам и готового выполнить работу за указанную цену.The customer forms the task by setting the necessary parameters of the computing system and the price for the work. This information is sent to the network device, which selects a landlord who is suitable for all the specified parameters and is ready to perform the work for the specified price.

Ошибка во время выполнения задачи означает, что арендодатель попытался обмануть систему. Например, выставив заведомо ложные параметры или попытавшись прочитать, подменить данные. Или по каким-либо причинам были созданы дополнительные ограничения для задачи, запущенной на устройстве, которые нарушают условия выполнения. Отключение интернета, электричества, износ жесткого диска, оперативной памяти и т.д. - также считается ошибкой, возникшей по вине арендодателя.An error during the task execution means that the landlord tried to trick the system. For example, setting deliberately false parameters or trying to read, replace data. Or, for some reason, additional restrictions have been created for the task running on the device, which violate the execution conditions. Disconnection of the Internet, electricity, wear of the hard disk, RAM, etc. - is also considered an error caused by the landlord.

Если устройство удовлетворяло условиям выделенных ресурсов на протяжении всей работы и с его стороны не было попыток чтения или подмены данных, то считается, что задача выполнена без ошибок. При этом, если выполнение задачи прерывается из-за внутренних ошибок, то для DeNet.Core это не считается ошибкой.If the device met the conditions of the allocated resources throughout the entire operation and there were no attempts to read or replace data on its part, then it is considered that the task was completed without errors. At the same time, if the execution of a task is interrupted due to internal errors, then for DeNet.Core it is not considered an error.

Предположим, что арендодателю удалось обмануть систему: устройство, которое сдается в аренду, не является тем устройством, за которое оно себя выдает, например, вместо заявленных 500 IOPS в действительности у устройства только 250. Когда арендодатель запускает устройство с заведомо недостоверными параметрами, то устройство:Suppose that the lessor managed to cheat the system: the device that is rented is not the device it claims to be, for example, instead of the declared 500 IOPS, the device actually has only 250. When the lessor starts a device with deliberately invalid parameters, then the device :

1. подключается к сети;1. connects to the network;

2. получает проверяющую задачу;2. receives a validating task;

3. получает штраф (списание рейтинга и замороженных средств).3. receives a penalty (rating write-off and frozen funds).

В случае возникновения ошибки по вине арендодателя, с его рейтинга, который он мог заработать, списывается 9*ΔR, и списывается вся замороженная сумма в пользу фонда компьютерной сети (DeNet.Rewards). Средства из фонда DeNet.Rewards позже распределяются между добросовестными арендодателями.In the event of an error due to the fault of the lessor, 9 * ΔR is deducted from his rating, which he could have earned, and the entire frozen amount is written off in favor of the computer network fund (DeNet.Rewards). Funds from the DeNet.Rewards fund are later distributed to bona fide landlords.

Проверка выполнения задачи - это не проверка конечного ответа. На этом этапе нужно проверить, что устройство нас не обманывает и выполняет тот код, который был отправлен. Для этого мы разделили задачи на два типа: статические и динамические.Checking the completion of a task is not checking the final answer. At this stage, you need to check that the device does not deceive us and executes the code that was sent. To do this, we have divided tasks into two types: static and dynamic.

Статические задачи - задачи, которые можно полностью проверить репликацией, то есть запустить повторно на любом другом устройстве и сравнить результат.Static tasks are tasks that can be fully verified by replication, that is, run again on any other device and compare the result.

Динамические задачи - задачи, которые сложно или невозможно проверить репликацией, то есть при одновременном запуске на двух разных устройствах результат выполнения задачи может быть разным. Кроме того, у динамических задач есть такое свойство как состояние.Dynamic tasks are tasks that are difficult or impossible to verify by replication, that is, if they are run simultaneously on two different devices, the result of the task execution may be different. In addition, dynamic tasks have a property called state.

Состояние приложения - это примерно все содержимое его памяти, это все ее глобальные переменные, статические переменные, объекты, выделенные в стеке, регистры, открытые дескрипторы файлов и смещения файлов, открытые сетевые сокеты и связанные с ними буферы ядра и т.д. Фактически возможно сохранить это состояние и возобновить выполнение этого процесса в другом месте.The state of an application is roughly the entire contents of its memory, these are all of its global variables, static variables, objects allocated on the stack, registers, open file descriptors and file offsets, open network sockets and their associated kernel buffers, etc. In fact, it is possible to save this state and resume the execution of this process elsewhere.

Есть стабильное состояние, то есть которое никогда не меняется, например, web-сервер, который запускает скрипт «generate_random_number.php», который в свою очередь выводит случайное число.There is a stable state, that is, which never changes, for example, a web server that runs the "generate_random_number.php" script, which in turn outputs a random number.

Есть нарабатываемые состояния, то есть web-сервер с тем же «generate_random_number.php», который после генерации числа создает файл с этим числом.There are states that are being generated, that is, a web server with the same "generate_random_number.php", which, after generating a number, creates a file with this number.

Если говорить о статической задаче, то есть (хостинг файлов, сложение двух заранее известных чисел и т.д.), то тут все просто: проверка выполнения происходит за счет репликации.If we talk about a static task, that is (hosting files, adding two previously known numbers, etc.), then everything is simple: verification of execution occurs due to replication.

Итак, мы имеем несколько способов проверки динамической задачи:So, we have several ways to test a dynamic problem:

• Собственная библиотека;• Own library;

• Проверка Checksum;• Checksum check;

• Проверка устройств тестами;• Checking devices by tests;

• Закрытие возможности доступа к трафику через подключение к сети через SSH-туннель;• Closing the ability to access traffic through a network connection via an SSH tunnel;

• Тест-кейсы;• Test cases;

• Хэш от состояния (если это задача со стабильным состоянием).• Hash from the state (if it is a problem with a stable state).

Информация о всех задачах записывается в блокчейн. Задачи, которые еще не нашли устройство, где они запустятся, лежат в списке непринятых задач. После того, как исполнитель найден, задача попадает в блокчейн, а средства для оплаты задачи замораживаются.Information about all tasks is recorded in the blockchain. Tasks that have not yet found the device where they will start are in the list of unaccepted tasks. After the executor is found, the task enters the blockchain, and the funds to pay for the task are frozen.

После выполнения задачи информация о выполнении (успешном или неуспешном) попадает в блокчейн транзакций и в блокчейн рейтинга.After completing the task, information about the completion (successful or unsuccessful) enters the transaction blockchain and the rating blockchain.

Существует следующая классификация задач.There is the following classification of tasks.

Figure 00000008
Figure 00000008

Figure 00000009
Figure 00000009

DeNet.Hosting - это хостинг, запущенный в сети DeNet.Core. Хостинг нужен для удобства развертывания веб-приложений. По заданным требованиям хостинг формирует и отправляет задачи в DeNet.Core.DeNet.Hosting is a hosting launched on the DeNet.Core network. Hosting is needed for the convenience of deploying web applications. Hosting generates and sends tasks to DeNet.Core according to the specified requirements.

Существует несколько способов загрузить свой сайт в DeNet.There are several ways to upload your site to DeNet.

Способ первыйMethod one

1. Сформировать файл с требованиями (manifest.json), в котором будут учтены все параметры хостинга, ram, ping, cpu, location и т.д.1. Create a file with requirements (manifest.json), which will take into account all hosting parameters, ram, ping, cpu, location, etc.

2. Создать архив с файлами сайта и файлом manifest.json.2. Create an archive with site files and manifest.json file.

3. Создать кошелек с токеном DeNet.3. Create a wallet with a DeNet token.

4. Создать задание, добавить его в список неподтвержденных транзакций.4. Create a task, add it to the list of unconfirmed transactions.

5. Ждать, пока задачу примут.5. Wait until the task is accepted.

6. Пополнять баланс кошелька и вовремя продлевать задачи.6. Top up your wallet balance and renew tasks on time.

Способ второйMethod two

1. Выбрать архитектуру своего сайта (PHP + MySQL, CDN only, Django + …).1. Choose the architecture of your site (PHP + MySQL, CDN only, Django +…).

2. Выбрать тип своего сайта (WordPress, Joomla, самописный…).2. Choose the type of your site (WordPress, Joomla, self-written ...).

3. Выбрать тип шифрования сайта.3. Select the type of site encryption.

4. Загрузить все необходимые файлы (дампы, ssl-сертификат, архив с сайтом).4. Download all the necessary files (dumps, ssl-certificate, archive with the site).

5. Пополнить баланс токенами.5. Top up the balance with tokens.

6. DeNet.Hosting займется работой с вашим сайтом(балансировкой нагрузки, проверкой работы, продлением аренды и т.д.).6. DeNet.Hosting will handle the work with your site (load balancing, checking work, lease renewals, etc.).

Способ третий (экспертный)Method three (expert)

Конфигурация в случае с загрузкой на один серверConfiguration in the case of uploading to one server

Вы можете указать ссылки на свои библиотекиили довериться встроенным библиотекам - в любом случае в момент публикации задачимайнинг-сервера увидят данную конфигурацию. Также вы прописываете требования к майнеру, если вам нужна проверка на достоверность, воспользуйтесь одной из наших библиотек размещенных на GitHub в разделе SecurityLibs.You can specify links to your libraries or trust the built-in libraries - in any case, at the time of publishing the tasks, the mining servers will see this configuration. Also, you prescribe the requirements for the miner, if you need a validation, use one of our libraries hosted on GitHub in the SecurityLibs section.

После того, как вы создадите все необходимые конфигурации и загрузите требования к задаче, вы начнете получать запросы от серверов (майнеров). Как только вы выберете подходящего, ваши токены и токены майнера заморозятся на время выполнения задачи.After you create all the necessary configurations and upload the requirements for the task, you will start receiving requests from the servers (miners). Once you choose the right one, your tokens and miner tokens will be frozen for the duration of the task.

Figure 00000010
Figure 00000010

Figure 00000011
Figure 00000011

Вариант 3. Вычислительные задачи.Option 3. Computational tasks.

Вычислительные задачи - это любые задачи, которые могут выполняться на компьютерах.Computational tasks are any tasks that can be performed on computers.

Вычислительные задачи совмещают в себе 2 направления:Computational tasks combine 2 directions:

1. Статичное выполнение задач1. Static execution of tasks

2. Динамичное выполнение задач2. Dynamic task execution

В первом случае одна задача выполняется на одном устройстве, во втором случае одна задачи выполняется на более, чем одном устройстве или более одной задачи выполняется на более, чем одном устройстве.In the first case, one task is performed on one device, in the second case, one task is performed on more than one device, or more than one task is performed on more than one device.

Задачи, требования к выполнению и рейтинг используются аналогично "Вариант 2. Децентрализованный хостинг"Tasks, fulfillment requirements and rating are used in the same way as "Option 2. Decentralized hosting"

Варианты осуществления не ограничиваются описанными здесь вариантами осуществления, специалисту в области техники на основе информации изложенной в описании и знаний уровня техники станут очевидны и другие варианты осуществления изобретения, не выходящие за пределы сущности и объема данного изобретения.The embodiments are not limited to the embodiments described herein, a person skilled in the art based on the information set forth in the description and knowledge of the prior art will become apparent other embodiments of the invention without departing from the spirit and scope of the present invention.

Элементы, упомянутые в единственном числе, не исключают множественности элементов, если отдельно не указано иное.Elements mentioned in the singular do not exclude the plurality of elements, unless otherwise specified.

Под функциональной связью элементов следует понимать связь, обеспечивающую корректное взаимодействие этих элементов друг с другом и реализацию той или иной функциональности элементов. Частными примерами функциональной связи может быть связь с возможностью обмена информацией, связь с возможностью передачи электрического тока, связь с возможностью передачи механического движения, связь с возможностью передачи света, звука, электро-магнитных или механических колебаний и т.д. Конкретный вид функциональной связи определяется характером взаимодействия упомянутых элементов, и, если не указано иное, обеспечивается широко известными средствами, используя широко известные в технике принципы.The functional connection of elements should be understood as a connection that ensures the correct interaction of these elements with each other and the implementation of one or another functionality of the elements. Particular examples of functional communication can be communication with the ability to exchange information, communication with the ability to transmit electric current, communication with the ability to transmit mechanical motion, communication with the ability to transmit light, sound, electromagnetic or mechanical vibrations, etc. The specific type of functional relationship is determined by the nature of the interaction of these elements, and, unless otherwise indicated, is provided by widely known means using principles widely known in the art.

Способы, раскрытые здесь, содержат один или несколько этапов или действий для достижения описанного способа. Этапы и/или действия способа могут заменять друг друга, не выходя за пределы объема формулы изобретения. Другими словами, если не определен конкретный порядок этапов или действий, порядок и/или использование конкретных этапов и/или действий может изменяться, не выходя за пределы объема формулы изобретения.The methods disclosed herein comprise one or more steps or steps to achieve the described method. The steps and / or steps of the method can be substituted for each other without departing from the scope of the claims. In other words, if a specific order of steps or actions is not defined, the order and / or use of specific steps and / or actions may be changed without departing from the scope of the claims.

В заявке не указано конкретное программное и аппаратное обеспечение для реализации блоков на чертежах, но специалисту в области техники должно быть понятно, что сущность изобретения не ограничена конкретной программной или аппаратной реализацией, и поэтому для осуществления изобретения могут быть использованы любые программные и аппаратные средства известные в уровне техники. Так аппаратные средства могут быть реализованы в одной или нескольких специализированных интегральных схемах, цифровых сигнальных процессорах, устройствах цифровой обработки сигналов, программируемых логических устройствах, программируемых пользователем вентильных матрицах, процессорах, контроллерах, микроконтроллерах, микропроцессорах, электронных устройствах, других электронных модулях, выполненных с возможностью осуществлять описанные в данном документе функции, компьютер либо комбинации вышеозначенного.The application does not indicate specific software and hardware for the implementation of blocks in the drawings, but a person skilled in the art should understand that the essence of the invention is not limited to a specific software or hardware implementation, and therefore any software and hardware known in the art can be used to implement the invention. prior art. So hardware can be implemented in one or more specialized integrated circuits, digital signal processors, digital signal processing devices, programmable logic devices, user-programmable gate arrays, processors, controllers, microcontrollers, microprocessors, electronic devices, other electronic modules made with the ability perform the functions described in this document, a computer, or a combination of the above.

Хотя отдельно не упомянуто, но очевидно, что, когда речь идет о хранении данных, программ и т.п., подразумевается наличие машиночитаемого носителя данных, примеры машиночитаемых носителей данных включают в себя постоянное запоминающее устройство, оперативное запоминающее устройство, регистр, кэш-память, полупроводниковые запоминающие устройства, магнитные носители, такие как внутренние жесткие диски и съемные диски, магнитооптические носители и оптические носители, такие как диски CD-ROM и цифровые универсальные диски (DVD), а также любые другие известные в уровне техники носители данных.Although not specifically mentioned, it is obvious that when it comes to storing data, programs, etc., a computer-readable storage medium is meant, examples of computer-readable storage media include read only memory, random access memory, register, cache memory , semiconductor storage devices, magnetic media such as internal hard disks and removable disks, magneto-optical media and optical media such as CD-ROMs and digital versatile disks (DVDs), and any other storage media known in the art.

Несмотря на то, что примерные варианты осуществления были подробно описаны и показаны на сопроводительных чертежах, следует понимать, что такие варианты осуществления являются лишь иллюстративными и не предназначены ограничивать более широкое изобретение, и что данное изобретение не должно ограничиваться конкретными показанными и описанными компоновками и конструкциями, поскольку различные другие модификации могут быть очевидны специалистам в соответствующей области.Although exemplary embodiments have been described in detail and shown in the accompanying drawings, it should be understood that such embodiments are illustrative only and are not intended to limit the broader invention, and that the invention should not be limited to the specific arrangements and structures shown and described. as various other modifications may be apparent to those skilled in the art.

Признаки, упомянутые в различных зависимых пунктах формулы, а также реализации раскрытые в различных частях описания могут быть скомбинированы с достижением полезных эффектов, даже если возможность такого комбинирования не раскрыта явно.The features mentioned in various dependent claims, as well as the implementations disclosed in various parts of the description, can be combined with the achievement of beneficial effects, even if the possibility of such a combination is not explicitly disclosed.

Claims (21)

1. Способ выполнения задачи в компьютерной системе, содержащий этапы, на которых:1. A method for performing a task in a computer system, containing the stages at which: по меньшей мере часть множества компьютеров компьютерной системы формируют распределенную базу данных, хранящую информацию в виде связанных блоков данных;at least part of the plurality of computers of the computer system form a distributed database storing information in the form of associated data blocks; первый компьютер компьютерной системы создает задачу, назначает стоимость ее выполнения, сохраняет данные задачи в распределенной базе данных компьютерной системы с помощью третьего компьютера компьютерной системы, депонирует стоимость выполнения задачи в компьютерной системе с помощью третьего компьютера компьютерной системы и отправляет данные об этой задаче второму компьютеру;the first computer of the computer system creates the task, assigns the cost of its execution, stores the task data in the distributed database of the computer system using the third computer of the computer system, deposits the cost of performing the task in the computer system using the third computer of the computer system, and sends data about this task to the second computer; второй компьютер компьютерной системы сообщает о готовности взять задачу для выполнения первому компьютеру компьютерной системы;the second computer of the computer system informs about the readiness to take a task to perform the first computer of the computer system; первый компьютер отправляет второму компьютеру подписанный своей цифровой подписью первый пакет данных, содержащий данные задачи;the first computer sends to the second computer a digitally signed first data packet containing task data; второй компьютер выполняет задачу и предоставляет первому компьютеру подписанный своей цифровой подписью второй пакет данных, содержащий в себе доказательство выполнения задачи и подписанный первым компьютером первый пакет данных;the second computer performs the task and provides the first computer with a digitally signed second data packet containing the proof of the task and the first data packet signed by the first computer; первый компьютер верифицирует доказательство и отправляет второму компьютеру подписанный своей цифровой подписью третий пакет данных, содержащий информацию об оплате и доказательство выполнения задачи;the first computer verifies the proof and sends to the second computer a digitally signed third data packet containing payment information and proof of task completion; второй компьютер сохраняет третий пакет данных в распределенной базе данных компьютерной системы с помощью третьего компьютера компьютерной системы, запрашивает депонированную оплату выполненной задачи у компьютерной системы.the second computer stores the third data packet in the distributed database of the computer system by means of the third computer of the computer system, requests the deposited payment of the performed task from the computer system. 2. Способ по п. 1, в котором компьютерная система проверяет третий пакет данных на валидность и выдает часть стоимости или полную стоимость выполнения задачи второму компьютеру.2. The method according to claim 1, wherein the computer system checks the third data packet for validity and provides a portion of the cost or full cost of the task to the second computer. 3. Способ по п. 2, в котором в котором компьютерная система представляет собой блокчейн компьютерную систему.3. The method of claim 2, wherein the computer system is a blockchain computer system. 4. Способ по п. 3, в котором компьютерная система выдает часть стоимости или полную стоимость выполнения задачи второму компьютеру через заранее заданное количество блоков блокчейн.4. The method of claim 3, wherein the computer system provides a portion of the cost or the full cost of completing the task to the second computer through a predetermined number of blockchain blocks. 5. Способ по п. 4, в котором, если первый компьютер находит ошибку в выполнении задачи вторым компьютером, он отправляет опровержение выполнения задачи в компьютерную систему.5. The method of claim 4, wherein if the first computer finds an error in the execution of the task by the second computer, it sends a rejection of the task execution to the computer system. 6. Способ по п. 5, в котором вместе с опровержением первый компьютер отправляет предварительно заданный залог.6. The method of claim 5, wherein the first computer sends the predetermined collateral along with the rebuttal. 7. Способ по п. 6, в котором второй компьютер отправляет по меньшей мере часть информации, необходимой для выполнения задачи, в компьютерную систему, компьютерная система проверяет третий пакет данных, чтобы определить выполнение задачи.7. The method of claim 6, wherein the second computer sends at least some of the information needed to complete the task to the computer system, the computer system examines the third data packet to determine whether the task has been completed. 8. Способ по п. 7, в котором компьютерная система в зависимости от результатов проверки либо забирает залог первого компьютера, либо штрафует второй компьютер.8. The method according to claim 7, in which the computer system, depending on the results of the check, either takes the pledge of the first computer, or penalizes the second computer. 9. Способ по п. 2, в котором компьютерная система формирует рейтинг для компьютеров системы.9. The method of claim 2, wherein the computer system generates a rating for the computers in the system. 10. Способ по п. 8, в котором штрафом для второго компьютера является понижение его рейтинга.10. The method of claim 8, wherein the penalty for the second computer is to downgrade its rating. 11. Способ по п. 2, в котором, первый компьютер делегирует обязательства проверки на любой другой компьютер в сети.11. The method of claim 2, wherein the first computer delegates verification obligations to any other computer on the network. 12. Способ по п. 11, в котором первый компьютер создает запись в распределенной базе данных, согласно которой он дает разрешение пользоваться частью его средств для оплаты задач.12. The method of claim 11, wherein the first computer creates an entry in the distributed database where it grants permission to use a portion of its funds to pay for tasks. 13. Способ по п. 1, в котором первый компьютер отправляет данные о задаче четвертому компьютеру компьютерной системы, который становится делегатом проверки.13. The method of claim 1, wherein the first computer sends task data to a fourth computer in the computer system that becomes a validation delegate. 14. Способ по п. 1, в котором второй компьютер перед выполнением задачи посредством третьего компьютера проверяет достаточность депонированной стоимости выполнения задачи для оплаты стоимости выполнения задачи.14. The method of claim 1, wherein the second computer, prior to performing the task by the third computer, verifies that the deposited cost of performing the task is sufficient to pay for the cost of performing the task.
RU2019109585A 2019-04-01 2019-04-01 Method of performing task in computer system RU2741279C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2019109585A RU2741279C2 (en) 2019-04-01 2019-04-01 Method of performing task in computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2019109585A RU2741279C2 (en) 2019-04-01 2019-04-01 Method of performing task in computer system

Publications (3)

Publication Number Publication Date
RU2019109585A RU2019109585A (en) 2020-10-01
RU2019109585A3 RU2019109585A3 (en) 2020-10-01
RU2741279C2 true RU2741279C2 (en) 2021-01-22

Family

ID=72946925

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2019109585A RU2741279C2 (en) 2019-04-01 2019-04-01 Method of performing task in computer system

Country Status (1)

Country Link
RU (1) RU2741279C2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2018100150A4 (en) * 2018-02-03 2018-03-08 Talbot, Phillip David MR Proof of delivery on the blockchain
US20180165612A1 (en) * 2016-12-09 2018-06-14 Cognitive Scale, Inc. Method for Providing Commerce-Related, Blockchain-Associated Cognitive Insights Using Blockchains
US20180218343A1 (en) * 2017-01-30 2018-08-02 Dais Technology, Inc. Smart contract execution on a blockchain
RU2673399C1 (en) * 2017-09-07 2018-11-26 Олег Александрович Серебренников Method of preserving savings purchasing ability
US20190034936A1 (en) * 2017-12-29 2019-01-31 Intel Corporation Approving Transactions from Electronic Wallet Shares

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180165612A1 (en) * 2016-12-09 2018-06-14 Cognitive Scale, Inc. Method for Providing Commerce-Related, Blockchain-Associated Cognitive Insights Using Blockchains
US20180218343A1 (en) * 2017-01-30 2018-08-02 Dais Technology, Inc. Smart contract execution on a blockchain
RU2673399C1 (en) * 2017-09-07 2018-11-26 Олег Александрович Серебренников Method of preserving savings purchasing ability
US20190034936A1 (en) * 2017-12-29 2019-01-31 Intel Corporation Approving Transactions from Electronic Wallet Shares
AU2018100150A4 (en) * 2018-02-03 2018-03-08 Talbot, Phillip David MR Proof of delivery on the blockchain

Also Published As

Publication number Publication date
RU2019109585A (en) 2020-10-01
RU2019109585A3 (en) 2020-10-01

Similar Documents

Publication Publication Date Title
JP7472333B2 (en) METHOD AND SYSTEM FOR MINING BLOCKCHAIN TRANSACTIONS PROVIDED BY VALIDATOR NODES
Baird et al. Hedera: A governing council & public hashgraph network
US20190172026A1 (en) Cross blockchain secure transactions
Bozic et al. Securing virtual machine orchestration with blockchains
Allombert et al. Introduction to the tezos blockchain
JP2023126595A (en) Rapid distributed consensus on blockchain
CN109003185B (en) Intelligent contract establishing method and device, computing equipment and storage medium
CN110720102A (en) Block chains for general purpose computing
Eklund et al. Factors that impact blockchain scalability
JP7319961B2 (en) Computer-implemented systems and methods related to binary blockchains forming a pair of coupled blockchains
CN110659906B (en) Bill information processing method, related device and medium
WO2015116998A2 (en) Electronic transfer and obligation enforcement system
US20220156725A1 (en) Cross-chain settlement mechanism
CN110597916B (en) Data processing method and device based on block chain, storage medium and terminal
WO2022018703A1 (en) System and method for blockchain tokens for gaming
CN110599144A (en) Network access method and device for block link points
KR20220143705A (en) Computing services for a platform of blockchain-related services
US20220036346A1 (en) Systems and methods for re-organizing blockchains for efficient operations
US20230042916A1 (en) System and method for secure peer-to-peer transmission of content in distributed ledger neworks
CN115705571A (en) Protecting privacy of auditable accounts
Sheng et al. TrustBoost: Boosting Trust among Interoperable Blockchains
RU2741279C2 (en) Method of performing task in computer system
Bagchi Using blockchain technology and smart contracts for access management in IoT devices
Eisele et al. Mechanisms for outsourcing computation via a decentralized market
KR20200028110A (en) Managing server for private blockchain network and data processing method using the same