Область техники
[0001] Настоящая заявка относится к области компьютерных технологий, и, в частности, к способу и устройству обработки данных.
уровень техники
[0002] С непрерывным развитием компьютерных технологий, расширился объем применения технологий блокчейна (цепочки блоков транзакций). В настоящее время, множество моделей обслуживания стали более эффективными и безопасными вследствие введения технологий блокчейна, чтобы обслуживать пользователей более эффективно.
[0003] При практическом применении, процессы исполнения услуг, относящиеся к технологиям блокчейна, можно условно разделить на три процесса:
[0004] 1. Стадия обработки услуги: На этой стадии, узел блокчейна может принимать готовые к обработке данные услуги (которые могут также называться данными транзакции), отправленные пользователем с использованием терминала или клиента, и сохранять данные услуги после верифицирования данных услуги. Разумеется, на этой стадии, узел блокчейна может также принимать готовые к обработке данные услуги, которые транслируются другим узлом блокчейна, и сохранять данные услуги ранее записанным образом.
[0005] 2. Стадия консенсуса услуги: На этой стадии, если узел блокчейна используется в качестве главного узла, который инициирует консенсус, узел блокчейна может получить часть данных услуги из сохраненных данных услуги, запаковать часть данных услуги в блок предварительной обработки и транслировать блок предварительной обработки на другой узел блокчейна, чтобы проверить на достоверность блок предварительной обработки. После приема блока предварительной обработки, другой узел блокчейна в сети консенсуса может выполнить верификацию консенсуса на данных услуги в блоке предварительной обработки на основе сохраненных данных услуги. Разумеется, если узел блокчейна не является главным узлом, узел блокчейна может принимать блок предварительной обработки, который транслируется главным узлом, и выполнять верификацию консенсуса по запросу услуги в блоке предварительной обработки с использованием запроса услуги, хранящегося в памяти узла блокчейна.
[0006] 3. Стадия представления услуги: На этой стадии, после определения того, что блок предварительной обработки, обработанный на стадии консенсуса услуги, прошел проверку на достоверность, узел блокчейна может сохранять данные услуги блока предварительной обработки в блокчейне. Кроме того, узел блокчейна может сохранять данные услуги в специализированной базе данных и освобождать данные услуги блока предварительной обработки из пространства хранения узла блокчейна.
[0007] В существующей технологии, для одной и той же части данных услуги, узлу блокчейна обычно сначала требуется завершить стадию консенсуса услуги до входа в стадию представления услуги, и узел блокчейна может проверить на достоверность следующий готовый к проверке на достоверность блок предварительной обработки только после завершения стадии представления услуги.
[0008] Однако, в существующей технологии, стадия консенсуса услуги и стадия представления услуги в процессе обработки данных услуги выполняются последовательно. Узел блокчейна может начать стадию консенсуса услуги обработки следующих данных услуги после завершения стадии представления услуги текущей обработки данных услуги. В результате, временной интервал между обработкой данных услуги неминуемо увеличивается, и эффективность обработки услуг всей системы снижается.
Краткое описание сущности изобретения
[0009] Вариант осуществления настоящей заявки обеспечивает способ обработки данных, чтобы решить текущую проблему низкой эффективности обработки услуг в технологиях блокчейна.
[0010] Вариант осуществления настоящей заявки обеспечивает способ обработки данных, включающий в себя: получение, узлом блокчейна, готового к проверке на достоверность блока предварительной обработки и проверку на достоверность блока предварительной обработки; и если определено, что блок предварительной обработки прошел проверку на достоверность, запуск проверки на достоверность следующего готового к проверке на достоверность блока предварительной обработки и выполнение обработки данных на данных услуги в проверенном на достоверность блоке предварительной обработки параллельно.
[0011] Вариант осуществления настоящей заявки обеспечивает устройство обработки данных, чтобы решить текущую проблему относительно низкой эффективности консенсуса услуг.
[0012] Вариант осуществления настоящей заявки обеспечивает устройство обработки данных, включающее в себя: модуль приобретения, сконфигурированный, чтобы получать готовый к проверке на достоверность блок предварительной обработки и проверять на достоверность блок предварительной обработки; и модуль обработки, сконфигурированный, чтобы: если определено, что блок предварительной обработки прошел проверку на достоверность, начинать проверять на достоверность следующий готовый к проверке на достоверность блок предварительной обработки, и выполнять обработку данных на данных услуги в проверенном на достоверность блоке предварительной обработки параллельно.
[0013] Вариант осуществления настоящей заявки обеспечивает устройство обработки данных, чтобы решить текущую проблему относительно низкой эффективности консенсуса услуг.
[0014] Вариант осуществления настоящей заявки обеспечивает устройство обработки данных, включающее в себя память и по меньшей мере один процессор, причем память хранит программу, и процессор или процессоры сконфигурированы, чтобы выполнять следующие этапы: получение готового к проверке на достоверность блока предварительной обработки и проверку на достоверность блока предварительной обработки; и если определено, что блок предварительной обработки прошел проверку на достоверность, запуск проверки на достоверность следующего готового к проверке на достоверность блока предварительной обработки и запуск выполнения обработки данных на данных услуги в проверенном на достоверность блоке предварительной обработки параллельно.
[0015] Одно или несколько описанных технических решений, использованных в вариантах осуществления настоящей заявки, могут достигать следующие предпочтительные результаты:
[0016] В вариантах осуществления настоящей заявки, после определения того, что полученный блок предварительной обработки прошел проверку на достоверность, узел блокчейна начинает проверять на достоверность следующий готовый к проверке на достоверность блок предварительной обработки посредством параллельной обработки и выполняет обработку данных на данных услуги в проверенном на достоверность блоке предварительной обработки. То есть, узел блокчейна реализует параллельную обработку данных услуги на стадии консенсуса услуги и стадии представления услуги. Узел блокчейна может не только выполнять обработку данных на части данных услуги на стадии представления услуги, но также выполнять обработку консенсуса на другой части данных услуги на стадии консенсуса услуги. Вследствие этого, временной интервал между обработкой консенсуса на стадии консенсуса услуги может быть сокращен, чтобы эффективно улучшить эффективность обработки данных услуги системы.
Краткое описание чертежей
[0017] Чертежи, описанные здесь, используются для обеспечения дополнительного понимания настоящей заявки и составляют часть настоящей заявки. Схематичные варианты осуществления настоящей заявки и описания используются для пояснения настоящей заявки и не составляют ненадлежащего ограничения настоящей заявки. На чертежах:
[0018] Фиг. 1 является схематичным представлением, иллюстрирующем процесс обработки данных, в соответствии с вариантом осуществления настоящей заявки;
[0019] Фиг. 2 является схематичным представлением, иллюстрирующим обработку данных, выполняемую узлом блокчейна, в соответствии с вариантом осуществления настоящей заявки;
[0020] Фиг. 3 является схематичной представлением, иллюстрирующим устройство обработки данных, в соответствии с вариантом осуществления настоящей заявки; и
[0021] Фиг. 4 является блок-схемой последовательности операций, иллюстрирующей пример реализуемого компьютером способа для повышения эффективности обработки технологий блокчейна с использованием параллельной обработки данных услуги, в соответствии с реализацией настоящего раскрытия.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0022] Чтобы специалист в данной области техники лучше понял технические решения в настоящей заявке, дальнейшее описание ясно и полно описывает технические решения в вариантах осуществления настоящей заявки со ссылкой на прилагаемые чертежи в вариантах осуществления настоящей заявки. Очевидно, описанные варианты осуществления являются только частью, а не всеми вариантами осуществления настоящей заявки. Все другие варианты осуществления, полученные специалистом в данной области техники на основе вариантов осуществления настоящей заявки без творческих усилий, должны входить в объем защиты настоящей заявки.
[0023] Фиг. 1 является схематичным представлением, иллюстрирующим процесс обработки данных, в соответствии с вариантом осуществления настоящей заявки. Процесс обработки данных включает в себя следующие этапы.
[0024] S101. Узел блокчейна получает готовый к проверке на достоверность блок предварительной обработки и проверяет на достоверность блок предварительной обработки.
[0025] В этом варианте осуществления настоящей заявки, узел блокчейна может получить, на стадии консенсуса услуги, блок предварительной обработки в текущем цикле консенсуса (здесь блок предварительной обработки, полученный в текущее время, называется блоком предварительной обработки, полученным в текущем консенсусе). Блок предварительной обработки может генерироваться узлом блокчейна на основе данных услуги, сохраненных узлом блокчейна, или может быть получен из другого узла блокчейна.
[0026] S102. Если определено, что блок предварительной обработки прошел проверку на достоверность, начать проверять на достоверность следующий готовый к проверке на достоверность блок предварительной обработки и выполнять обработку данных на данных услуги в проверенном на достоверность блоке предварительной обработки параллельно.
[0027] После определения того, что верификация консенсуса текущего готового к проверке на достоверность блока предварительной обработки успешна, описанный узел блокчейна может выполнять, посредством параллельной обработки, обработку данных на стадии представления услуги на проверенном на достоверность блоке предварительной обработки. Вследствие этого, когда обработка консенсуса на стадии консенсуса услуги выполняется на следующем блоке предварительной обработки, обработка данных на стадии представления услуги может эффективно и синхронно выполняться на проверенном на достоверность блоке предварительной обработки.
[0028] Можно видеть, что, в этом варианте осуществления настоящей заявки и в процессе обработки данных услуги, узел консенсуса услуг синхронно выполняет обработку консенсуса на стадии консенсуса услуги и обработку данных на стадии представления услуги. То есть, предположим, что существуют по меньшей мере два готовых к проверке на достоверность блока предварительной обработки. Вследствие этого, на основе технических решений, обеспеченных в настоящей заявке, когда обработка данных выполняется на проверенном на достоверность блоке предварительной обработки на стадии представления услуги, обработка консенсуса может выполняться синхронно на блоке предварительной обработки с неуспешным консенсусом на стадии консенсуса услуги.
[0029] Следует отметить, что, для текущего готового к проверке на достоверность блока предварительной обработки, определено, что, когда обработка консенсуса выполнена на текущем готовом к проверке на достоверность блоке предварительной обработки, обработку консенсуса начинают выполнять на следующем готовом к проверке на достоверность блоке предварительной обработки, и получают параметры обработки текущего проверенного на достоверность блока предварительной обработки. Поэтому процессор (который может упоминаться как предопределенный процессор), сконфигурированный, чтобы реализовывать обработку данных на стадии представления услуги в процессе обработки данных услуги, выполняет, на основе параметров обработки, обработку данных на текущем проверенном на достоверность блоке предварительной обработки.
[0030] Например, при запуске выполнения обработки консенсуса на следующем готовом к проверке на достоверность блоке предварительной обработки, предопределенный процессор выполняет, на основе сгенерированного параметра обработки, обработку данных на текущем проверенном на достоверность блоке предварительной обработки. Можно понять здесь, что обработка консенсуса и обработка данных соответственно выполняются на следующем готовом к проверке на достоверность блоке предварительной обработки и текущем проверенном на достоверность блоке предварительной обработки параллельно, так что временной интервал между обработкой консенсуса, выполненной на текущем готовом к проверке на достоверность блоке предварительной обработки, и обработкой консенсуса, выполненной на следующем готовом к проверке на достоверность блоке предварительной обработки, эффективно сокращается.
[0031] В качестве другого примера, при запуске выполнения обработки консенсуса на следующем готовом к проверке на достоверность блоке предварительной обработки, предопределенный процессор выполняет обработку данных на текущем проверенном на достоверность блоке предварительной обработки и затем сохраняет текущий проверенный на достоверность блок предварительной обработки в предопределенной очереди для ожидания. Предопределенный процессор последовательно выполняет, на основе правила (например, на основе временной последовательности завершения консенсуса), обработку данных на проверенных на достоверность блоках предварительной обработки, хранящихся в очереди. Можно понять здесь, что обработка консенсуса текущего готового к проверке на достоверность блока предварительной обработки и обработка данных блока предварительной обработки завершаются асинхронно.
[0032] Например, положим, что существуют три блока предварительной обработки: A, B и C, и три блока предварительной обработки последовательно отправляются на узел блокчейна в алфавитной последовательности для консенсуса. После определения того, что блок A предварительной обработки прошел проверку на достоверность, узел блокчейна может выполнить обработку данных на блоке A предварительной обработки с использованием предопределенного процессора. Кроме того, узел блокчейна может проверить на достоверность блок B предварительной обработки. После определения того, что блок B предварительной обработки прошел проверку на достоверность, и обнаружения того, что обработка данных, выполненная на блоке A предварительной обработки, не завершена, узел блокчейна может сохранить проверенный на достоверность блок B предварительной обработки в предопределенной очереди для ожидания и продолжить проверять на достоверность блок C предварительной обработки. При определении того, что обработка данных, выполненная на блоке A предварительной обработки, завершена, узел блокчейна может извлечь блок B предварительной обработки из предопределенной очереди, чтобы выполнить обработку данных на блоке B предварительной обработки с использованием предопределенного процессора.
[0033] Поэтому, для каждого блока предварительной обработки, обработка консенсуса и обработка данных блока предварительной обработки завершаются асинхронно. Для разных блоков предварительной обработки, обработка консенсуса блока предварительной обработки и обработка данных другого проверенного на достоверность блока предварительной обработки могут выполняться синхронно.
[0034] После того, как узел блокчейна определяет, что верификация консенсуса текущего готового к проверке на достоверность блока предварительной обработки успешна, этот вариант осуществления настоящей заявки включает в себя, но без ограничения, выполнение следующих двух типов операций:
[0035] 1. Операция первого типа: Определить параметр обработки, соответствующий текущему проверенному на достоверность блоку предварительной обработки. Параметр обработки включает в себя параметр, используемый для обработки данных услуги в блоке предварительной обработки, так что предопределенный процессор может обработать блок предварительной обработки на основе параметра обработки, тем самым завершая связанную операцию на стадии представления услуги. Следующее описание описывает операцию первого типа подробно.
[0036] Параметр обработки может включать в себя, но без ограничения, параметр хранения, параметр освобождения, параметр удаления и параметр со-цепочки (ʺco-chainʺ). Однако названное выше является только простым примером, использованным для описания некоторых параметров в параметре обработки. При практическом применении, параметр обработки может дополнительно включать в себя другие параметры, и это может определяться на основе конкретной операции, выполняемой узлом блокчейна на стадии представления услуги.
[0037] Например, параметр освобождения используется, чтобы инструктировать освободить проверенный на достоверность блок предварительной обработки из пространства хранения.
[0038] Параметр хранения используется, чтобы инструктировать сохранить данные услуги проверенного на достоверность блока предварительной обработки в конкретном местоположении. Разные параметры хранения определяются для разных блоков предварительной обработки. Параметр хранения включает в себя местоположение хранения.
[0039] Параметр удаления используется, чтобы инструктировать удалить сообщение (например, сообщение предварительной подготовки, сообщение подготовки и сообщение подтверждения в консенсусе PBFT), сгенерированное проверенным на достоверность блоком предварительной обработки на стадии консенсуса услуги, чтобы уменьшить затруднения с хранением.
[0040] Параметр со-цепочки используется, чтобы инструктировать поместить, в форме блока, основанного на хэше заголовка предыдущего блока в блоке предварительной обработки, блок предварительной обработки в блокчейн, в котором находится предыдущий блок.
[0041] Предпочтительно, в этом варианте осуществления настоящей заявки, при проверке на достоверность следующего смежного готового к проверке на достоверность блока предварительной обработки, узел блокчейна может дополнительно обрабатывать данные услуги в текущем проверенном на достоверность блоке предварительной обработки параллельно с использованием предопределенного процессора.
[0042] Предположим, что в существующей технологии, можно понять, что узел блокчейна завершает стадию консенсуса услуги и стадию представления услуги в процессе обработки данных услуги с использованием того же самого потока выполнения (треда). Узлу блокчейна сначала требуется завершить стадию консенсуса услуги в этом процессе обработки данных услуги с использованием треда, а затем он выполняет стадию представления услуги в этом процессе обработки данных услуги с использованием треда. Очевидно, в существующей технологии, узел блокчейна выполняет стадию консенсуса услуги и стадию представления услуги в процессе обработки данных услуги последовательно. В результате, временной интервал между смежной обработкой данных услуги увеличивается, и эффективность обработки данных услуги снижается.
[0043] Чтобы эффективно решить описанную проблему, в этом варианте осуществления настоящей заявки, узел блокчейна предварительно конфигурирует процессор (процессор может работать посредством асинхронной обработки, и здесь не накладывается конкретного ограничения). Процессор может быть сконфигурирован, чтобы выполнять операцию, используемую на стадии представления услуги. То есть, в этом варианте осуществления настоящей заявки, узел блокчейна может соответственно реализовывать обработку консенсуса на стадии консенсуса услуги и обработку данных на стадии представления услуги в процессе обработки данных услуги с использованием двух тредов. Один тред используется для выполнения обработки консенсуса на готовом к проверке на достоверность блоке предварительной обработки, и другой тред используется для выполнения обработки данных на проверенном на достоверность блоке предварительной обработки. Вследствие этого, для одного и того же блока предварительной обработки, обработка консенсуса и обработка данных завершаются асинхронно.
[0044] В связи с этим, когда узел блокчейна выполняет, с использованием процессора, операцию, используемую на стадии представления услуги, узел блокчейна может начать, не испытывая какого-либо влияния, проверять на достоверность следующий смежный готовый к проверке на достоверность блок предварительной обработки, то есть, начать выполнять следующий консенсус, чтобы значительно сократить временной интервал между смежными консенсусами, тем самым повышая эффективность консенсуса.
[0045] В этом варианте осуществления настоящей заявки, все параметры обработки, определенные в текущем консенсусе, могут быть получены с использованием параметров обработки, определенных в предыдущем консенсусе.
[0046] Параметр хранения используется в качестве примера для описания. После определения того, что текущий готовый к проверке на достоверность блок предварительной обработки прошел проверку на достоверность, узел блокчейна может определить, на основе параметра хранения текущего проверенного на достоверность блока предварительной обработки, параметр хранения следующего смежного готового к проверке на достоверность блока предварительной обработки и сохранить параметр хранения следующего смежного готового к проверке на достоверность блока предварительной обработки.
[0047] Например, предположим, что параметр хранения, соответствующий текущему проверенному на достоверность блоку предварительной обработки (который может также пониматься как параметр хранения, соответствующий текущему консенсусу), определяет, что данные услуги в текущем проверенном на достоверность блоке предварительной обработки требуется сохранить в таблице a в базе A данных типа отношений. Поэтому узел блокчейна может определить, на основе алфавитной последовательности каждой таблицы в базе A данных типа отношений, что параметром хранения, соответствующим следующему смежному проверенному на достоверность блоку предварительной обработки, является: сохранение, в таблице b в базе A данных типа отношений, данных услуги в блоке предварительной обработки, текущий консенсус которого (то есть, вышеупомянутый следующий смежный консенсус) успешен.
[0048] Узел блокчейна может сохранить определенный параметр хранения следующего консенсуса. Поэтому, когда определено, что следующий готовый к проверке на достоверность блок предварительной обработки прошел проверку на достоверность, предопределенный процессор может определить, на основе полученного параметра хранения, таблицы и базы данных, что данные услуги в проверенном на достоверность блоке предварительной обработки требуется сохранить.
[0049] Предпочтительно, в этом варианте осуществления настоящей заявки, после определения того, что текущий готовый к проверке на достоверность блок предварительной обработки прошел проверку на достоверность, узел блокчейна может также определить, на основе блока предварительной обработки и параметра хранения блока предварительной обработки, параметр хранения следующего смежного готового к проверке на достоверность блока предварительной обработки и сохранить параметр хранения следующего смежного готового к проверке на достоверность блока предварительной обработки.
[0050] Конкретно, если местоположение хранения в параметре хранения существует в виде указателя базы, местоположение, указанное указателем базы, является местоположением хранения данных услуги в блоке предварительной обработки. После определения того, что текущий готовый к проверке на достоверность блок предварительной обработки прошел проверку на достоверность, узел блокчейна может использовать текущее местоположение указателя базы в качестве начальной точки, переместить местоположение указателя базы на основе размера текущего готового к проверке на достоверность блока предварительной обработки и определить, что новое местоположение указателя базы является параметром хранения, соответствующим следующему консенсусу, который является параметром хранения следующего смежного готового к проверке на достоверность блока предварительной обработки.
[0051] Например, предположим, что параметр обработки каждого консенсуса включает в себя параметр хранения в форме указателя базы. Указатель базы (то есть, параметр хранения) указывает на конкретное местоположение хранения данных услуги. Исходное значение указателя базы может быть установлено в 0. После каждого консенсуса, узел блокчейна может определить, на основе размера проверенного на достоверность блока предварительной обработки и указателя базы в параметре обработки, соответствующем текущему консенсусу, конкретное значение указателя базы в параметре обработки, соответствующем следующему смежному консенсусу. Во время первого консенсуса, узел блокчейна определяет, что проверенный на достоверность блок предварительной обработки составляет 1024 байта, так что узел блокчейна может определить, на основе определенного размера блока предварительной обработки и исходного значения 0 указателя базы, что указатель базы в параметре обработки, соответствующем второму консенсусу, составляет 1024 байта, и сохраняет указатель базы. Соответственно, во втором консенсусе, узел блокчейна может сохранить, с использованием процессора, данные услуги проверенного на достоверность блока предварительной обработки в местоположении хранения, соответствующем указателю базы в 1024 байта.
[0052] Во втором консенсусе, узел блокчейна определяет, что проверенный на достоверность блок предварительной обработки составляет 10 байтов, так что узел блокчейна может определить, на основе определенного размера проверенного на достоверность блока предварительной обработки и указателя базы в 1024 байта в параметре обработки, соответствующем предыдущему консенсусу (то есть, первому консенсусу), что указатель базы в параметре обработки, соответствующем третьему консенсусу, составляет 1034 байта, и сохранить указатель базы. Соответственно, в третьем консенсусе, узел блокчейна может сохранить, с использованием процессора, данные услуги проверенного на достоверность блока предварительной обработки в местоположении хранения, соответствующем указателю базы в 1034 байта, и последующий консенсус может быть выведен.
[0053] Следует отметить, что, в этом варианте осуществления настоящей заявки, параметр хранения в параметрах обработки, соответствующих следующему консенсусу, может определяться на основе размера текущего проверенного на достоверность блока предварительной обработки в дополнение к другой информации о блоке предварительной обработки. Информация, подлежащая использованию для определения параметра хранения, может определяться инженером по эксплуатации и техническому обслуживанию узла блокчейна. Подробности не описываются здесь повторно.
[0054] Следует отметить, что, для разных параметров в параметрах обработки, операция, выполняемая узлом блокчейна на стадии представления услуги, определяет, требуется ли изменить эти параметры соответственно после каждого консенсуса. Например, для описанного параметра хранения, поскольку данные услуги в блоке предварительной обработки, задействованном в каждом консенсусе, не могут храниться в одном и том же местоположении хранения, параметр хранения требуется соответственно изменять после каждого консенсуса. Для описанного параметра со-цепочки, независимо от консенсуса, связанного с блоком предварительной обработки, все блоки предварительной обработки требуется сохранить в блокчейне в форме блока, когда консенсус в сети консенсуса успешен. То есть, независимо от блока предварительной обработки, всем процессорам требуется выполнить операцию со-цепочки на блоке предварительной обработки, как только блок предварительной обработки прошел проверку на достоверность. Поэтому, после каждого консенсуса, параметр со-цепочки не требуется изменять соответственно. Для каждого консенсуса, параметр со-цепочки может быть согласованным.
[0055] Предпочтительно, в этом варианте осуществления настоящей заявки, узел блокчейна может сохранять полученный параметр обработки следующего консенсуса в предопределенной очереди. Например, параметр хранения блока предварительной обработки, проходящего консенсус следующей смежной услуги, сохранятся в предопределенной очереди.
[0056] В связи с этим, процессор может получить параметр обработки из предопределенной очереди (то есть, получить параметр обработки проверенного на достоверность блока предварительной обработки), чтобы сохранить, на основе параметра хранения в параметрах обработки, данные услуги в проверенном на достоверность блоке предварительной обработки соответственно параметру хранения.
[0057] Предопределенная очередь, упомянутая здесь, может быть очередью типа ʺпервым пришел - первым обслуженʺ (FIFO) или может быть очередью другого типа. Конкретное ограничение не накладывается здесь. Процессор может получить параметр обработки, хранящийся в очереди FIFO, и определить, из сохраненного проверенного на достоверность блока предварительной обработки на основе параметра хранения в параметрах обработки, блок предварительной обработки, соответствующий параметру хранения, чтобы сохранить данные услуги блока предварительной обработки на основе параметра хранения.
[0058] Конкретно, процессор может получить параметр хранения из описанной очереди FIFO, и затем процессор может дополнительно определить готовый к обработке блок предварительной обработки, соответствующий параметру хранения. Например, когда текущий готовый к проверке на достоверность блок предварительной обработки прошел проверку на достоверность, узел блокчейна генерирует параметр хранения блока предварительной обработки и определяет соответствие между блоком предварительной обработки и параметром хранения. Поэтому, процессор может определить, на основе соответствия, готовый к обработке блок предварительной обработки, соответствующий параметру хранения. В качестве другого примера, когда текущий готовый к проверке на достоверность блок предварительной обработки прошел проверку на достоверность, узел блокчейна генерирует параметр хранения блока предварительной обработки, определяет первое время, когда параметр хранения сгенерирован, определяет второе время, когда текущий готовый к проверке на достоверность блок предварительной обработки прошел проверку на достоверность, и устанавливает соответствие между первым и вторым временем. Поэтому, процессор может искать, на основе времени генерации параметра хранения, блок предварительной обработки, соответствующий времени окончания обработки консенсуса, который удовлетворяет определенному условию во времени генерации. Может определяться, что обнаруженный блок предварительной обработки является готовым к обработке блоком предварительной обработки, соответствующим параметру хранения. В качестве другого примера, процессор получает, из очереди FIFO, параметр хранения в передней части выхода очереди. Поэтому, процессор ищет проверенный на достоверность блок предварительной обработки с передним местоположением хранения из пространства хранения узла блокчейна и определяет, что блок предварительной обработки является блоком предварительной обработки, соответствующим параметру хранения.
[0059] После определения готового к обработке блока предварительной обработки, соответствующего параметру хранения, процессор может сохранить, на основе параметра хранения, данные услуги в готовом к обработке блоке предварительной обработки в местоположении хранения, заданном параметром хранения.
[0060] Следует отметить, что, в этом варианте осуществления настоящей заявки, в дополнение к использованию очереди FIFO, узел блокчейна может дополнительно сохранять каждый параметр обработки с использованием другой очереди, например, двусторонней очереди. Подробности здесь не описываются.
[0061] Процессор может сохранять, на основе параметра хранения в полученных параметрах обработки, данные услуги готового к обработке блока предварительной обработки соответственно параметру хранения. Кроме того, процессор может дополнительно выполнять другую операцию на готовом к обработке блоке предварительной обработки на основе другого параметра в параметрах обработки.
[0062] Например, процессор может освобождать данные услуги в готовом к обработке блоке предварительной обработки из пространства хранения на основе параметра освобождения в параметрах обработки. В качестве другого примера, процессор может удалять, на основе параметра удаления в полученных параметрах обработки, сообщение предварительной подготовки, сообщение подготовки, сообщение подтверждения и т.д., сгенерированные на стадии консенсуса услуги в текущем консенсусе, чтобы сэкономить пространство хранения узла блокчейна. Разумеется, процессор может дополнительно выполнить другую операцию на основе другого параметра в параметрах обработки, и подробности не описываются здесь повторно.
[0063] 2. Операция второго типа: Обновить, на основе параметра консенсуса, соответствующего текущему консенсусу, параметр консенсуса, соответствующий следующему консенсусу. То есть, узел блокчейна может определить параметр консенсуса, соответствующий текущему проверенному на достоверность блоку предварительной обработки, и получить, на основе определенного параметра консенсуса, параметр консенсуса, соответствующий следующему смежному готовому к проверке на достоверность блоку предварительной обработки.
[0064] Следует отметить, что, в этом варианте осуществления настоящей заявки, после определения того, что верификация консенсуса блока предварительной обработки, который требуется проверить на достоверность в текущем отрицании, прошла проверку на достоверность, узлу блокчейна требуется получить и сохранить, на основе параметра обработки, соответствующего текущему консенсусу, параметр обработки, соответствующий следующему консенсусу. Кроме того, узел блокчейна может дополнительно обновить, на основе параметра консенсуса, соответствующего текущему консенсусу, параметр консенсуса, соответствующий следующему консенсусу. То есть, узел блокчейна может определить параметр консенсуса, соответствующий текущему проверенному на достоверность блоку предварительной обработки, и получить, на основе определенного параметра консенсуса, параметр консенсуса, соответствующий следующему смежному готовому к проверке на достоверность блоку предварительной обработки.
[0065] Параметр консенсуса, упомянутый здесь, может пониматься как информация атрибута, соответствующая единовременному консенсусу. Например, консенсус PBFT используется в качестве примера для описания. В процессе консенсуса PBFT, единовременный консенсус обычно соответствует одному номеру представления (view number) v; и номер представления v используется, чтобы уникально идентифицировать этот консенсус. В единовременном консенсусе, независимо от того, какой узел блокчейна в сети консенсуса используется как главный узел, хэш заголовка предыдущего блока в блоке предварительной обработки, сгенерированном узлом блокчейна, является обычно хэшем заголовка текущего последнего блока на блокечейне. Номер представления v и хэш заголовка предыдущего блока, упомянутые здесь, могут называться параметрами консенсуса, соответствующими текущему консенсусу.
[0066] Разумеется, в дополнение к описанному номеру представления v и хэшу заголовка предыдущего блока, параметр консенсуса может дополнительно включать в себя другую информацию. Для разных способов консенсуса, существует конкретная разница в содержании в параметре консенсуса. Подробности не описываются.
[0067] После определения того, что верификация консенсуса текущего готового к проверке на достоверность блока предварительной обработки успешна, узел блокчейна может дополнительно определить параметр консенсуса, соответствующий текущему консенсусу, чтобы получить параметр консенсуса, соответствующий следующему консенсусу, путем обновления параметра консенсуса, то есть, чтобы получить параметр консенсуса, соответствующий следующему смежному готовому к проверке на достоверность блоку предварительной обработки.
[0068] Способ консенсуса PBFT все еще используется в качестве примера. Положим, что параметр консенсуса, соответствующий текущему консенсусу, включает в себя номер представления v и хэш заголовка предыдущего блока. Номер представления v равен 16, и хэш заголовка предыдущего блока представляет собой 0929d9sldom23oix239xed. После определения того, что верификация консенсуса текущего готового к проверке на достоверность блока предварительной обработки успешна, узел блокчейна может обновить номер представления с 16 на 17, и обновить, на 679xx9a9a8dfa23389xx34 на основе хэша заголовка блока предварительной обработки 679xx9a9a8dfa23389xx34, хэш заголовка блока для следующего консенсуса. В связи с этим, параметр консенсуса, соответствующий следующему консенсусу, представляет собой: номер представления v равен 17, и хэш заголовка предыдущего блока представляет собой 679xx9a9a8dfa23389xx34.
[0069] Узел блокчейна может получить, на основе параметра консенсуса, соответствующего текущему консенсусу, параметр консенсуса, соответствующий следующему консенсусу. В связи с этим, узел блокчейна может начать, на основе полученного параметра консенсуса, соответствующего следующему консенсусу, проверять на достоверность следующий смежный готовый к проверке на достоверность блок предварительной обработки. Параметр консенсуса, упомянутый здесь, может храниться в памяти, может храниться в базе данных, соответствующей узлу блокчейна, или, разумеется, может существовать глобально переменным образом.
[0070] Следует отметить, что, в этом варианте осуществления настоящей заявки, параметр консенсуса может также храниться в предопределенной очереди, соответствующей параметру обработки. В связи с этим, процессор, сконфигурированный, чтобы выполнять обработку консенсуса, может получить параметр консенсуса из предопределенной очереди и начать новую обработку консенсуса на основе параметра консенсуса. Процессор, сконфигурированный, чтобы выполнять обработку данных, получает параметр обработки из предопределенной очереди и начинает, на основе полученного параметра обработки, выполнять обработку данных на данных услуги в блоке предварительной обработки, соответствующем параметру обработки.
[0071] Например, положим, что процессор получает, из очереди FIFO, параметр обработки и параметр консенсуса, соответствующий параметру обработки, и параметр консенсуса включает в себя номер представления v. В связи с этим, процессор может определить, из пространства хранения узла блокчейна, готовый к обработке блок предварительной обработки, соответствующий номеру представления v, чтобы обработать готовый к обработке блок предварительной обработки на основе полученного параметра обработки.
[0072] Разумеется, в этом варианте осуществления настоящей заявки, параметр обработки не может существовать в описанной предопределенной очереди. Например, параметр обработки может храниться в памяти узла блокчейна, может храниться в базе данных, соответствующей узлу блокчейна, или может храниться в другом местоположении узла блокчейна. Подробности не описываются здесь повторно.
[0073] Можно видеть из последующего способа, что, после определения того, что полученный блок предварительной обработки прошел проверку на достоверность, узел блокчейна начинает проверять на достоверность следующий готовый к проверке на достоверность блок предварительной обработки средствами параллельной обработки и обрабатывает данные услуги в проверенном на достоверность блоке предварительной обработки. То есть, узел блокчейна реализует параллельную обработку данных услуги на стадии консенсуса услуги и стадии представления услуги. Узел блокчейна может не только выполнить обработку данных на части данных услуги на стадии представления услуги, но также выполнить обработку консенсуса на другой части данных услуги на стадии консенсуса услуги. Поэтому, временной интервал между смежной обработкой консенсуса на стадии консенсуса услуги может сокращаться, чтобы действенным образом повысить эффективность обработки данных услуги системы.
[0074] Как показано на фиг. 2, чтобы дополнительно описать способ обработки данных, представленный в настоящей заявке, ниже дополнительно описываются процессы, используемые в способе обработки данных.
[0075] Фиг. 2 является схематичным представлением, иллюстрирующим обработку данных, выполняемую узлом блокчейна, в соответствии с вариантом осуществления настоящей заявки.
[0076] На стадии обработки услуги, пользователь может отправить данные услуги на узел блокчейна с использованием клиента, установленного в терминале, и узел блокчейна может верифицировать принятые данные услуги и сохранить верифицированные данные услуги в пространстве хранения, соответствующем узлу блокчейна.
[0077] На стадии консенсуса услуги, узел блокчейна может получить текущий готовый к проверке на достоверность блок предварительной обработки. Если узел блокчейна используется как главный узел, который инициирует текущий консенсус, узел блокчейна может получить часть данных услуги из своего пространства хранения и скомпоновать часть данных услуги в блок предварительной обработки. В этой ситуации, узел блокчейна получает блок предварительной обработки, который требуется проверить на достоверность в текущем консенсусе. Кроме того, узлу блокчейна требуется транслировать блок предварительной обработки на другой узел блокчейна в сети консенсуса, так что другой узел блокчейна выполняет верификацию консенсуса на блоке предварительной обработки.
[0078] Если узел блокчейна не является главным узлом, который инициирует текущий консенсус, узел блокчейна может получить, из главного узла, который инициирует текущий консенсус, блок предварительной обработки, который требуется проверить на достоверность в этом консенсусе услуги, и затем выполнить верификацию консенсуса на блоке предварительной обработки.
[0079] После определения того, что верификация консенсуса блока предварительной обработки успешна, узел блокчейна может получить, посредством обновления на основе параметра консенсуса, соответствующего текущему консенсусу (то есть, параметра консенсуса, соответствующего блоку предварительной обработки), параметр консенсуса, соответствующий следующему консенсусу (то есть, параметр консенсуса, соответствующий следующему смежному готовому к проверке на достоверность блоку предварительной обработки), для выполнения следующего консенсуса. Кроме того, узел блокчейна может дополнительно получить, на основе блока предварительной обработки и параметра обработки, соответствующего текущему консенсусу (то есть, параметра обработки, соответствующего текущему проверенному на достоверность блоку предварительной обработки), параметр обработки, соответствующий следующему консенсусу (то есть, параметр обработки, соответствующий следующему смежному готовому к проверке на достоверность блоку предварительной обработки), и сохранить, в очереди FIFO, полученный параметр обработки, соответствующий следующему консенсусу.
[0080] При получении параметра консенсуса и параметра обработки, соответствующих следующему смежному консенсусу, узел блокчейна может начать выполнять стадию консенсуса услуги в следующем смежном консенсусе, то есть, начать проверять на достоверность следующий смежный готовый к проверке на достоверность блок предварительной обработки. Кроме того, при запуске выполнения стадии консенсуса услуги в следующем смежном консенсусе, узел блокчейна может выполнять стадию представления услуги в текущем консенсусе параллельно с использованием процессора.
[0081] То есть, узел блокчейна отправляет операцию, задействованную на стадии представления услуги, на процессор для завершения, и узел блокчейна может выполнить следующий смежный консенсус, чтобы реализовать параллельную обработку стадии консенсуса услуги и стадии представления услуги в единовременном консенсусе. Поэтому, временной интервал между смежными консенсусами сокращается, чтобы повысить эффективность консенсуса.
[0082] Процессор может получить, из очереди FIFO, параметр обработки, соответствующий текущему консенсусу, и затем сохранить текущий проверенный на достоверность блок предварительной обработки в блокчейне в форме блока на основе параметра со-цепочки в параметрах обработки. Процессор может освободить, на основе параметра да или нет и параметра хранения в параметрах обработки, данные услуги блока предварительной обработки из пространства хранения блокчейна и сохранить освобожденные данные услуги в соответствующем местоположении хранения на основе спецификации в параметре хранения. Процессор может удалить, на основе параметра удаления в этом атрибуте обработки, например, сообщение предварительной подготовки, сообщение подготовки или сообщение подтверждения консенсуса PBFT, сгенерированные на стадии консенсуса услуги, чтобы сэкономить пространство хранения узла блокчейна.
[0083] Выше изложен способ обработки данных, обеспеченный в варианте осуществления настоящей заявки. Как показано на фиг. 3, на основе той же самой идеи, вариант осуществления настоящей заявки дополнительно обеспечивает устройство обработки данных.
[0084] Фиг. 3 является схематичной диаграммой, иллюстрирующей устройство обработки данных, в соответствии с вариантом осуществления настоящей заявки. Устройство включает в себя: модуль 301 приобретения, сконфигурированный, чтобы получать готовый к проверке на достоверность блок предварительной обработки и проверять на достоверность блок предварительной обработки; и модуль 302 обработки, сконфигурированный, чтобы: если определено, что блок предварительной обработки прошел проверку на достоверность, начинать проверять на достоверность следующий готовый к проверке на достоверность блок предварительной обработки и выполнять обработку данных на данных услуги в проверенном на достоверность блоке предварительной обработки параллельно.
[0085] Модуль 302 обработки выполняет обработку данных на данных услуги в проверенном на достоверность блоке предварительной обработки параллельно с использованием предопределенного процессора.
[0086] Для проверенного на достоверность блока предварительной обработки, модуль 302 обработки выполняет следующие операции: вызов процессора для получения параметра хранения, причем параметр хранения включает в себя местоположение хранения; определение, на основе параметра хранения, готового к обработке блока предварительной обработки, соответствующего параметру хранения; и сохранение данных услуги определенного готового к обработке блока предварительной обработки в местоположении хранения.
[0087] После того, как определено, что блок предварительной обработки прошел проверку на достоверность, модуль 301 приобретения определяет, на основе блока предварительной обработки и параметра хранения блока предварительной обработки, параметр хранения следующего смежного готового к проверке на достоверность блока предварительной обработки и сохраняет параметр хранения следующего смежного готового к проверке на достоверность блока предварительной обработки.
[0088] Модуль 301 приобретения сохраняет параметры хранения следующего смежного готового к проверке на достоверность блока предварительной обработки в очереди типа ʺпервым пришел - первым обслуженʺ (FIFO).
[0089] Модуль 302 обработки вызывает процессор для получения параметра хранения из очереди FIFO.
[0090] Если определено, что блок предварительной обработки прошел проверку на достоверность, модуль 301 приобретения определяет параметр консенсуса, соответствующий блоку предварительной обработки, и получает, на основе определенного параметра консенсуса, соответствующего блоку предварительной обработки, параметр консенсуса, соответствующий следующему смежному готовому к проверке на достоверность блоку предварительной обработки, где параметр консенсуса используется для предписания узлу блокчейна проверить на достоверность готовый к проверке на достоверность блок предварительной обработки.
[0091] Когда получен параметр консенсуса, соответствующий следующему смежному готовому к проверке на достоверность блоку предварительной обработки, модуль 302 обработки начинает, на основе полученного параметра консенсуса, проверять на достоверность следующий смежный готовый к проверке на достоверность блок предварительной обработки.
[0092] На основе той же самой идеи, вариант осуществления настоящей заявки дополнительно обеспечивает другое устройство обработки данных. Устройство конкретно включает в себя: память и по меньшей мере один процессор, причем память хранит программу, и по меньшей мере один процессор сконфигурирован, чтобы выполнять следующие этапы: получение готового к проверке на достоверность блока предварительной обработки и проверка на достоверность блока предварительной обработки; и если определено, что блок предварительной обработки прошел проверку на достоверность, запуск проверки на достоверность следующего готового к проверке на достоверность блока предварительной обработки и выполнение обработки данных на данных услуги в проверенном на достоверность блоке предварительной обработки параллельно.
[0093] Для конкретной операции, выполняемой процессором с использованием программы, хранящейся в памяти, может быть дана ссылка на содержание, записанное в описанном варианте осуществления. Подробности не повторяются здесь.
[0094] В варианте осуществления настоящей заявки, после определения того, что полученный блок предварительной обработки прошел проверку на достоверность, узел блокчейна может начать проверять на достоверность следующий готовый к проверке на достоверность блок предварительной обработки, чтобы выполнить обработку данных на данных услуги в проверенном на достоверность блоке предварительной обработки параллельно. После определения того, что полученный блок предварительной обработки прошел проверку на достоверность, узел блокчейна начинает проверять на достоверность следующий готовый к проверке на достоверность блок предварительной обработки посредством параллельной обработки и обрабатывает данные услуги в проверенном на достоверность блоке предварительной обработки. То есть, узел блокчейна реализует параллельную обработку данных услуги на стадии консенсуса услуги и стадии представления услуги. Узел блокчейна может не только выполнять обработку данных на части данных услуги на стадии представления услуги, но также выполнять обработку консенсуса на другой части данных услуги на стадии консенсуса услуги. Поэтому, временной интервал между обработкой консенсуса на стадии консенсуса услуги может сокращаться, чтобы действенным образом повысить эффективность обработки данных услуги системы.
[0095] В 1990-х, может, очевидно, различаться, является ли совершенствование технологии совершенствованием аппаратных средств (например, улучшение структуры схемы, такой как диод, транзистор и переключатель) или совершенствованием программного обеспечения (улучшение процедуры способа). Однако с развитием технологий, улучшение многих процедур способа может рассматриваться как непосредственное улучшение структуры схемы аппаратных средств. Разработчик обычно программирует улучшенную процедуру способа в схему аппаратных средств, чтобы получить соответствующую структуру схемы аппаратных средств. Поэтому модуль объекта аппаратных средств может улучшить процедуру способа. Например, программируемое логическое устройство (PLD) (например, программируемая вентильная матрица (FPGA)) является такой интегральной схемой, и логическая функция программируемого логического устройства определяется пользователем посредством программирования устройств. Разработчик выполняет программирование, чтобы ʺинтегрироватьʺ цифровую систему в PLD, не требуя от производителя микросхем проектировать и производить микросхему специализированной интегральной схемы. Кроме того, программирование в основном реализуется путем модифицирования программного обеспечения ʺлогического компилятораʺ, вместо производства вручную микросхемы интегральной схемы. Это подобно компилятору программного обеспечения Программное обеспечение логического компилятора аналогично, используемому для разработки и написания программы. Однако исходный код, получаемый перед компилированием, также необходимо написать с использованием конкретного языка программирования, который называется языком описания аппаратных средств (HDL). Существует множество HDL, таких как усовершенствованный язык булевых выражений (ABEL), язык описания аппаратных средств Altera (AHDL), Confluence, язык программирования Корнеллского университета (CUPL), HDCal, язык описания аппаратных средств Java (JHDL), Lava, Lola, MyHDL, PALASM и язык описания аппаратных средств Ruby (RHDL). В настоящее время язык описания аппаратных средств на быстродействующих интегральных схемах (VHDL) и Verilog являются наиболее часто используемыми.
[0096] Специалист в данной области техники также должен понимать, что только логическое программирование должно выполняться на процедуре способа с использованием описанных языков описания аппаратных средств, и различные языки описания аппаратных средств программируются в интегральную схему, так что схему аппаратных средств, которая реализует логическую процедуру способа, можно легко получить.
[0097] Контроллер может быть реализован любым подходящим образом. Например, контроллер может использовать микропроцессор или процессор и может вмещать некоторые формы считываемого компьютером носителя, логической схемы, переключателя, специализированной интегральной схемы (ASIC), программируемого логического контроллера и встроенного микроконтроллера, которые состоят из считываемого компьютером программного кода (например, программного обеспечения или аппаратных средств), который может исполняться (микро) процессором. Примеры контроллера включают в себя, но без ограничения, следующие микроконтроллеры: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20 или Silicone Labs C8051F320. Контроллер памяти может также быть реализован как часть логики управления памяти. Специалист в данной области техники также знает, что, в дополнение к реализации контроллера исключительно путем считываемого компьютером программного кода, логическое программирование может полностью выполняться с использованием этапа способа, так что контроллер реализует ту же самую функцию в форме логической схемы, переключателя, специализированной интегральной схемы, программируемого логического контроллера, встроенного микроконтроллера и т.д. Поэтому, контроллер может рассматриваться как компонент аппаратных средств, и устройство для реализации различных функций в контроллере может также рассматриваться как структура в компоненте аппаратных средств. Альтернативно, устройство, сконфигурированное, чтобы реализовывать различные функции, может рассматриваться как модуль или структура программного обеспечения в компоненте аппаратных средств, который может реализовывать способ.
[0098] Система, устройство, модуль или блок, представленные в описанных вариантах осуществления, могут быть конкретно реализованы компьютерной микросхемой или объектом или реализованы продуктом с функцией. Обычным устройством реализации является компьютер. Конкретно, компьютер может быть, например, персональным компьютером, ноутбуком, сотовым телефоном, камерафоном, смартфоном, персональным цифровым ассистентом, медиапроигрывателем, устройством навигации, устройством электронной почты, игровой консолью, планшетным компьютером или носимым устройством или комбинацией любых из этих устройств.
[0099] Для простоты описания, представленное устройство описано путем разделения функций на различные блоки. Разумеется, при реализации настоящей заявки, функции каждого блока могут быть реализованы в одной или нескольких частях программного обеспечения и/или аппаратных средств.
[00100] Специалист в данной области техники должен понимать, что варианты осуществления настоящего изобретения могут быть обеспечены как способ, система или компьютерный программный продукт. Поэтому настоящее изобретение может использовать форму вариантов осуществления только в аппаратных средствах, вариантов осуществления только в программном обеспечении или вариантов осуществления с комбинацией программного обеспечения и аппаратных средств. Кроме того, настоящее изобретение может использовать форму компьютерного программного продукта, который реализован на одном или нескольких используемых компьютером носителях хранения (включая, но без ограничения, память на диске, CD-ROM, оптическую память и т.д.), которые включают в себя используемый компьютером программный код.
[0100] Настоящее изобретение описано со ссылкой на блок-схемы последовательности операций и/или блок-схемы способа, устройства (системы) и компьютерного программного продукта в соответствии с вариантами осуществления настоящего изобретения. Следует понимать, что компьютерные программные инструкции могут использоваться для реализации каждого процесса и/или каждого блока в блок-схемах последовательности операций и/или блок-схемах устройства и комбинации процесса и/или блока в блок-схемах последовательности операций и/или блок-схемах устройства. Эти компьютерные программные инструкции могут быть обеспечены для универсального компьютера, специализированного компьютера, встроенного процессора или процессора любого другого программируемого устройства обработки данных для генерации машины, так что инструкции, исполняемые компьютером или процессором любого другого программируемого устройства обработки данных, генерируют устройство для реализации конкретной функции в одном или нескольких процессах в блок-схемах последовательности операций или в одном или нескольких блоках в блок-схемах устройства.
[0101] Эти компьютерные программные инструкции могут храниться в считываемой компьютером памяти, которая может предписывать компьютеру или любому другому программируемому устройству обработки данных работать конкретным образом, так что инструкции, хранящиеся в считываемой компьютером памяти, генерируют артефакт, который включает в себя устройство инструкций. Устройство инструкций реализует конкретную функцию в одном или нескольких процессах в блок-схемах последовательности операций и/или в одном или нескольких блоках в блок-схемах устройства.
[0102] Эти компьютерные программные инструкции могут быть загружены на компьютер или другое программируемое устройство обработки данных, так что серии операций и этапов выполняются на компьютере или другом программируемом устройстве, тем самым осуществляя реализуемую компьютером обработку. Поэтому, инструкции, исполняемые на компьютере или другом программируемом устройстве, обеспечивают этапы для реализации конкретной функции в одном или нескольких процессах в блок-схемах последовательности операций или в одном или нескольких блоках в блок-схемах устройства.
[0103] В обычной конфигурации, вычислительное устройство включает в себя один или несколько процессоров (CPU), интерфейс ввода/вывода, сетевой интерфейс и память.
[0104] Память может включать в себя некоторую форму энергозависимой памяти, памяти с произвольной выборкой (RAM) и/или энергонезависимой памяти и т.д. в считываемом компьютером носителе, таком как постоянная память (ROM) или флэш-память (флэш-RAM). Память является примером считываемого компьютером носителя.
[0105] Считываемый компьютером носитель включает в себя энергозависимые и энергонезависимые, съемные и несъемные носители и может хранить информацию с использованием любого способа или технологии. Информация может быть считываемой компьютером инструкцией, структурой данных, программным модулем или другими данными. Компьютерный носитель хранения включает в себя, но без ограничения, параметрическую память с произвольной выборкой (PRAM), статическую память с произвольной выборкой (SRAM), динамическую память с произвольной выборкой (DRAM), память с произвольной выборкой (RAM) другого типа, постоянную память (ROM), электрически перепрограммируемую постоянную память (EEPROM), флэш-память или другую технологию памяти, постоянную память на компакт-диске (CD-ROM), цифровой универсальный диск (DVD) или другое оптическую хранилище, магнитную ленту, хранилище на магнитном диске, другое устройство магнитного хранения или любой другой носитель, не относящийся к среде передачи. Компьютерный носитель хранения может использоваться для хранения информации, доступ к которой может осуществляться вычислительным устройством. Как описано в настоящей спецификации, считываемый компьютером носитель не включает в себя переходные (временные) носители, например, модулированный сигнал данных и несущую.
[0106] Следует дополнительно отметить, что термины ʺвключать в себяʺ, ʺсодержатьʺ или их любой другой вариант предназначены для охвата не-исключающего включения, так что процесс, способ, изделие или устройство, которое включает в себя серию элементов, не только включает в себя эти самые элементы, но также включает в себя другие элементы, которые не перечислены явно, или дополнительно включает в себя элементы, присущие такому процессу, способу, изделию или устройству. Элемент, которому предшествует ʺвключает в себя…ʺ, не исключает, без ограничений, существования дополнительных идентичных элементов в процессе, способе, изделии или устройстве, которое включает в себя данный элемент.
[0107] Специалист в данной области техники должен понимать, что варианты осуществления настоящей заявки могут быть обеспечены как способ, система или компьютерный программный продукт. Поэтому настоящая заявка может использовать форму вариантов осуществления только в аппаратных средствах, вариантов осуществления только в программном обеспечении или вариантов осуществления с комбинацией программного обеспечения и аппаратных средств. Кроме того, настоящая заявка может использовать форму компьютерного программного продукта, который реализован на одном или нескольких используемых компьютером носителях хранения (включая, но без ограничения, память на диске, CD-ROM, оптическую память и т.д.), которые включают в себя используемый компьютером программный код.
[0108] Настоящая заявка может быть описана в общих контекстах исполняемых компьютером инструкций, исполняемых компьютером, таких как программный модуль. В общем, программный модуль включает в себя подпрограмму, программу, объект, компонент, структуру данных и т.д., исполняющую конкретную задачу или реализующую конкретный абстрактный тип данных. Настоящая заявка может также применяться в распределенных вычислительных средах. В этих распределенных вычислительных средах, задачи исполняются удаленными устройствами обработки, которые соединены с использованием сети связи. В распределенных вычислительных средах, программный модуль может быть расположен в локальных и удаленных компьютерных носителях хранения, которые включают в себя устройства хранения.
[0109] Варианты осуществления в настоящей спецификации описаны постепенным образом, для одних и тех же или аналогичных частей в вариантах осуществления может даваться ссылка на эти варианты осуществления, и каждый вариант осуществления фокусируется на отличии от других вариантов осуществления. В особенности, вариант осуществления системы в основном аналогичен варианту осуществления способа и поэтому описан кратко; для связанных частей может даваться ссылка на частичные описания в варианте осуществления способа.
[0110] Предыдущие описания являются только вариантами осуществления настоящей заявки и не предназначены для ограничения настоящей заявки. Для специалиста в данной области техники настоящая заявка может иметь различные модификации и изменения. Любые модификации, эквивалентные замещения, улучшения и т.д., выполненные в пределах сущности и принципов настоящей заявки, должны соответствовать объему защиты настоящей заявки.
[0111] Фиг. 4 является блок-схемой последовательности операций, иллюстрирующей пример реализуемого компьютером способа 400 для повышения эффективности обработки технологий блокчейна с использованием параллельной обработки данных услуги, в соответствии с реализацией настоящего раскрытия. Для ясности представления, описание, которое следует далее, в общем описывает способ 400 в контексте других фигур в настоящем описании. Однако будет понятно, что способ 400 может выполняться, например, любой системой, средой, программным обеспечением и аппаратными средствами или комбинацией систем, сред, программного обеспечения и аппаратных средств, по мере необходимости. В некоторых реализациях, различные этапы способа 400 могут работать параллельно, в комбинации, циклически или в любом порядке.
[0112] В 402, готовый к проверке на достоверность блок предварительной обработки в текущем цикле консенсуса получают при помощи узла блокчейна и на стадии консенсуса услуги. В некоторых реализациях, получение готового к проверке на достоверность блока предварительной обработки включает в себя генерирование узлом блокчейна готового к проверке на достоверность блока предварительной обработки на основе данных услуги, сохраненных узлом блокчейна, или получение готового к проверке на достоверность блока предварительной обработки из другого узла блокчейна. От 402, способ 400 переходит к 404.
[0113] В 404, готовый к проверке на достоверность блок предварительной обработки проходит проверку на достоверность. От 404, способ 400 переходит к 406.
[0114] В 406, выполняется определение того, прошел ли готовый к проверке на достоверность блок предварительной обработки проверку на достоверность. Если определено, что готовый к проверке на достоверность блок предварительной обработки не прошел проверку на достоверность, способ 400 возвращается к 404. В противном случае, если определено, что готовый к проверке на достоверность блок предварительной обработки прошел проверку на достоверность, способ 400 переходит, параллельно, к 408 и 410.
[0115] В 408, проверка на достоверность начинается на следующем готовом к проверке на достоверность блоке предварительной обработки. В некоторых реализациях, после того, как определено, что готовый к проверке на достоверность блок предварительной обработки прошел проверку на достоверность, выполняется: 1) определение, на основе готового к проверке на достоверность блока предварительной обработки и параметра хранения готового к проверке на достоверность блока предварительной обработки, параметра хранения следующего смежного готового к проверке на достоверность блока предварительной обработки; и 2) сохранение параметра хранения следующего смежного готового к проверке на достоверность блока предварительной обработки. В некоторых реализациях, если определено, что готовый к проверке на достоверность блок предварительной обработки прошел проверку на достоверность, выполняется: 1) определение параметра консенсуса, соответствующего готовому к проверке на достоверность блоку предварительной обработки; и 2) получение, на основе данного параметра консенсуса, параметра консенсуса, соответствующего следующему смежному готовому к проверке на достоверность блоку предварительной обработки, где данный параметр консенсуса используется для предписания узлу блокчейна проверять на достоверность следующий смежный готовый к проверке на достоверность блок предварительной обработки. В некоторых реализациях проверка на достоверность начинается на следующем смежном готовом к проверке на достоверность блоке предварительной обработки, когда получен параметр консенсуса, соответствующий следующему смежному готовому к проверке на достоверность блоку предварительной обработки.
[0116] В 410, параллельная обработка данных выполняется на данных услуги, хранящихся в проверенном на достоверность готовом к проверке на достоверность блоке предварительной обработки. В некоторых реализациях, параллельная обработка данных выполняется на данных услуги, сохраненных в проверенном на достоверность готовом к проверке на достоверность блоке предварительной обработки, с использованием предопределенного процессора. В некоторых реализациях, параллельная обработка данных с использованием предопределенного процессора включает в себя, для проверенного на достоверность готового к проверке на достоверность блока предварительной обработки: 1) вызов процессора для получения параметра хранения, содержащего местоположение хранения; 2) определение, на основе параметра хранения, готового к обработке блока предварительной обработки, соответствующего параметру хранения; и 3) сохранение, в местоположении хранения, данных услуги готового к обработке блока предварительной обработки.
[0117] Реализации предмета, описанного в настоящей спецификации, могут быть реализованы так, чтобы осуществить частичные преимущества или технические результаты. Например, реализации описанного предмета позволяют достичь повышенной эффективности обработки технологий блокчейна с использованием параллельной обработки данных услуги. В свою очередь, более эффективная обработка может содействовать усилению всей безопасности данных. Описанная параллельная обработка данных услуги также позволяет осуществить более эффективное использование компьютерных ресурсов (например, циклов обработки и использования памяти) наряду с более быстрой обработкой. По меньшей мере эти действия могут минимизировать или препятствовать затратам впустую ценных компьютерных ресурсов в отношении транзакций на основе блокчейна. В некоторых случаях, скорость сетевой транзакции может повышаться ввиду более эффективной обработки блокчейна.
[0118] В некоторых реализациях, данные блокчейна могут пересылаться между вычислительными устройствами и включать в себя графическую информацию (например, для использования на графическом пользовательском интерфейсе). В этих реализациях, элементы графического пользовательского интерфейса, исполняющиеся на одном или нескольких вычислительных устройствах, могут позиционироваться, чтобы в меньшей степени быть нежелательно заметными для пользователя. Например, элементы могут позиционироваться, чтобы затенять наименьшее количество данных и чтобы избегать покрытия любых критических или часто используемых элементов графического пользовательского интерфейса.
[0119] Варианты осуществления и операции, описанные в настоящей спецификации, могут быть реализованы в цифровой электронной схеме или в компьютерном программном обеспечении, прошивке или аппаратных средствах, включающих в себя структуры, раскрытые в настоящей спецификации, или в комбинациях одного или нескольких из них. Операции могут быть реализованы как операции, выполняемые устройством обработки данных на данных, хранящихся на одном или нескольких считываемых компьютером устройствах хранения, или принятых от других источников. Устройство обработки данных, компьютер или вычислительное устройство может объединять в себе аппаратуру, устройства и машины для обработки данных, включая в качестве примера программируемый процессор, компьютер, систему на чипе или несколько их, или комбинации вышеуказанного. Устройство может включать в себя специализированную логическую схему, например, универсальный процессор (CPU), программируемую вентильную матрицу (FPGA) или специализированную интегральную схему (ASIC). Устройство может также включать в себя код, который создает среду исполнения для рассматриваемой компьютерной программы, например, код, который составляет прошивку процессора, стек протоколов, систему администрирования базы данных, операционную систему (например, операционную систему или комбинацию операционных систем), кросс-платформенную среду выполнения, виртуальную машину или комбинацию одного или нескольких из них. Устройство и среда исполнения могут реализовывать множество различных инфраструктур вычислительных моделей, таких как веб-службы, инфраструктуры распределенных вычислений и сетчатых вычислений.
[0120] Компьютерная программа (также известная, например, как программа, программное обеспечение, приложение программного обеспечения, модуль программного обеспечения, единица программного обеспечения, скрипт или код) может быть написана на языке программирования любой формы, включая компилированные или интерпретируемые языки, описательные или процедурные языки, и она может быть развернута в любой форме, включая отдельную программу или модуль, компонент, подпрограмму, объект и другой элемент, подходящий для использования в вычислительной среде. Программа может храниться в части файла, который содержит другие программы или данные (например, один или несколько скриптов, сохраненных в документе языка разметки), в одном файле, выделенном для рассматриваемой программы, или в нескольких координированных файлах (например, файлах, которые хранят один или несколько модулей, подпрограмм или части кода). Компьютерная программа может исполняться на одном компьютере или на нескольких компьютерах, которые расположены в одном месте или распределены по нескольким местам и взаимосвязаны посредством сети связи.
[0121] Процессоры для исполнения компьютерной программы включают в себя, в качестве примера, как универсальные, так и специализированные микропроцессоры, и любой один или несколько процессоров любого вида цифрового компьютера. В общем, процессор будет принимать инструкции и данные из постоянной памяти или памяти с произвольной выборкой или их обеих. Существенными элементами компьютера являются процессор для выполнения действий в соответствии с инструкциями и одно или несколько устройств памяти для хранения инструкций и данных. В общем, компьютер будет также включать в себя или будет оперативно связан, чтобы принимать данные и/или переносить данные от/на одно или несколько устройств массовой памяти для хранения данных. Компьютер может быть встроен в другое устройство, например, мобильное устройство, персональный цифровой ассистент (PDA), игровую консоль, приемник глобальной системы позиционирования (GPS) или портативное устройство хранения. Устройства, подходящие для хранения компьютерных программных инструкций и данных, включают в себя энергонезависимую память, носители и устройства памяти, включающие в себя, в качестве примера, устройства полупроводниковой памяти, магнитные диски и магнитооптические диски. Процессор и память могут дополняться специализированной логической схемой или быть встроенными в нее.
[0122] Мобильные устройства могут включать в себя портативные телефоны, пользовательское оборудование (UE), мобильные телефоны (например, смартфоны), планшеты, носимые устройства (например, сарт-часы и смарт-очки), имплантированные устройства в человеческом теле (например, биодатчики, кохлеарные импланты) или другие типы мобильных устройств. Мобильные устройства могут осуществлять связь беспроводным образом (например, с использованием радиочастотных (RF) сигналов) с различными сетями связи (описанными ниже). Мобильные устройства могут включать в себя датчики для определения характеристик текущей среды мобильного устройства. Датчики могут включать в себя камеры, микрофоны, датчики близости, датчики GPS, датчики движения, акселерометры, датчики внешнего освещения, датчики влажности, гироскопы, компасы, барометры, датчики отпечатков пальцев, системы распознавания лиц, RF датчики (например, Wi-Fi и сотовые радио), датчики температуры или другие типы датчиков. Например, камеры могут включать в себя переднюю или заднюю камеру с подвижными или фиксированными линзами, вспышку, датчик изображения и процессор изображения. Камера может быть мегапиксельной камерой, способной захватывать подробности для распознавания лиц и/или радужной оболочки глаза. Камера совместно с процессором данных и информацией аутентификации, хранящейся в памяти или дистанционно доступной, может образовывать систему распознавания лиц. Система распознавания лиц или один или несколько датчиков, например, микрофоны, датчики движения, акселерометры, датчики GPS или RF датчики, может использоваться для аутентификации пользователя.
[0123] Чтобы обеспечить взаимодействие с пользователем, варианты осуществления могут быть реализованы на компьютере, имеющем устройство отображения и устройство ввода, например, жидкокристаллический дисплей (LCD) или дисплей на органических светоизлучающих диодах (OLED)/дисплей виртуальной реальности (VR)/дополненной реальности (AR) для отображения информации пользователю и тачскрин, клавиатуру и координатно-указательное устройство, посредством которых пользователь может обеспечить ввод в компьютер. Другие виды устройств могут также использоваться для обеспечения взаимодействия с пользователем; например, обратная связь, обеспечиваемая пользователю, может быть любым видом сенсорной обратной связи, например, визуальной обратной связью, слуховой обратной связью или тактильной обратной связью; и ввод от пользователя может приниматься в любом виде, включая акустический, речевой или тактильный ввод. Дополнительно, компьютер может взаимодействовать с пользователем путем отправки документов и приема документов на/от устройства, которое применяется пользователем; например, путем отправки веб-страниц на веб-браузер на клиентском устройстве пользователя в ответ на запросы, принятые от веб-браузера.
[0124] Варианты осуществления могут быть реализованы с использованием вычислительных устройств, соединенных друг с другом посредством любой формы или среды коммуникации цифровых данных (или их комбинации), например, сети связи. Примерами взаимосвязанных устройств являются клиент и сервер, как правило, удаленные друг от друга, которые обычно взаимодействуют через сеть связи. Клиент, например мобильное устройство, может выполнять транзакции самостоятельно, при помощи сервера или через сервер, например, выполняя покупку, продажу, оплату, выдачу, отправку или кредитование транзакций или их авторизацию. Такие транзакции могут происходить в реальном времени, так что действие и ответ близки по времени; например, индивидуум воспринимает действие и ответ, происходящие практически одновременно, разница во времени для ответа, следующего за действием индивидуума, меньше 1 миллисекунды (мс) или меньше 1 секунды (с), или ответ происходит без преднамеренной задержки, с учетом ограничений обработки системы.
[0125] Примеры сетей связи включают в себя локальную сеть (LAN), сеть радиодоступа (RAN), городскую вычислительную сеть (MAN) и глобальную сеть (WAN). Сеть связи может включать в себя весь или часть Интернета, другую сеть связи или комбинацию сетей связи. Информация может передаваться по сети связи в соответствии с различными протоколами и стандартами, включающими в себя долгосрочное развитие (LTE), 5G, IEEE 802, Интернет-протокол (IP) или другие протоколы или комбинации протоколов. Сеть связи может передавать голос, видео, биометрические данные или данные аутентификации или другую информацию между соединенными вычислительными устройствами.
[0126] Признаки, описанные как отдельные реализации, могут быть осуществлены, в комбинации, в одной реализации, в то время как признаки, описанные как одна реализация, могут быть осуществлены в нескольких реализациях, отдельно или в любой подходящей под-комбинации. Операции, описанные и заявленные в конкретном порядке, не следует понимать как требующие этого конкретного порядка, или что все проиллюстрированные операции должны выполняться (некоторые операции могут быть опциональными). По мере необходимости, может выполняться многозадачность или параллельная обработка (или комбинация многозадачности и параллельной обработки).
название | год | авторы | номер документа |
---|---|---|---|
СПОСОБ И УСТРОЙСТВО ОБРАБОТКИ УСЛУГ И КОНСЕНСУСА | 2018 |
|
RU2735096C1 |
СПОСОБ И УСТРОЙСТВО КОНСЕНСУСА НА ОСНОВЕ БЛОКЧЕЙНА | 2018 |
|
RU2731331C1 |
СПОСОБ И УСТРОЙСТВО ДЛЯ ОБРАБОТКИ ЗАПРОСА УСЛУГИ | 2018 |
|
RU2708952C1 |
Способ, устройство и система для блокчейн-консенсуса | 2018 |
|
RU2744498C1 |
СПОСОБ И УСТРОЙСТВО БИЗНЕС-ОБРАБОТКИ | 2018 |
|
RU2737361C1 |
СПОСОБ И УСТРОЙСТВО КОНСЕНСУСА | 2018 |
|
RU2733221C1 |
СИСТЕМА БЛОКЧЕЙНА И СПОСОБ И УСТРОЙСТВО ХРАНЕНИЯ ДАННЫХ | 2018 |
|
RU2732535C1 |
СПОСОБ И УСТРОЙСТВО ОБРАБОТКИ ЗАПРОСОВ ТРАНЗАКЦИИ | 2018 |
|
RU2730439C1 |
ОТОБРАЖЕНИЕ ФИЗИЧЕСКИХ ОБЪЕКТОВ НА СТРУКТУРУ БЛОКЧЕЙНА | 2018 |
|
RU2786646C2 |
СПОСОБ И УСТРОЙСТВО ОБРАБОТКИ ДАННЫХ НА ОСНОВЕ БЛОКЧЕЙНА | 2018 |
|
RU2728820C1 |
Изобретение относится к средствам обработки данных. Техническим результатом является повышение эффективности обработки. Способ обработки данных включает этапы, на которых получают узлом блокчейна, содержащим два треда, и на стадии консенсуса услуги готовый к проверке на достоверность блок предварительной обработки в текущем цикле консенсуса, причем узел блокчейна предварительно конфигурирует процессор для выполнения операции, задействованной на стадии (S101) представления услуги, проверяют на достоверность узлом блокчейна готовый к проверке на достоверность блок предварительной обработки во время стадии консенсуса услуги с использованием первого треда из двух тредов (S101), и если определено, что блок предварительной обработки прошел проверку на достоверность, запускают проверку на достоверность узлом блокчейна следующего готового к проверке на достоверность блока предварительной обработки с использованием первого треда (S102) и выполняют параллельно узлом блокчейна обработку данных на данных услуги, сохраненных в проверенном на достоверность, готовом к проверке на достоверность блоке предварительной обработки во время стадии представления услуги с использованием второго треда параллельно со стадией (S102) консенсуса услуги, и проверку следующего готового к проверке на достоверность блока предварительной обработки. 2 н. и 7 з.п. ф-лы, 4 ил.
1. Способ обработки данных, содержащий этапы, на которых:
получают узлом блокчейна, содержащим два треда, и на стадии консенсуса услуги готовый к проверке на достоверность блок предварительной обработки в текущем цикле консенсуса, причем узел блокчейна предварительно конфигурирует процессор для выполнения операции, задействованной на стадии представления услуги;
проверяют на достоверность узлом блокчейна готовый к проверке на достоверность блок предварительной обработки во время стадии консенсуса услуги с использованием первого треда из двух тредов; и
выполняют параллельно узлом блокчейна обработку данных услуги, сохраненных в проверенном на достоверность, готовом к проверке на достоверность блоке предварительной обработки, и проверку следующего готового к проверке на достоверность блока предварительной обработки.
2. Способ по п. 1, в котором выполнение обработки данных на данных услуги в проверенном на достоверность блоке предварительной обработки параллельно конкретно содержит этап, на котором:
выполняют обработку данных на данных услуги в проверенном на достоверность блоке предварительной обработки параллельно с использованием предопределенного процессора.
3. Способ по п. 2, в котором выполнение обработки данных на данных услуги в проверенном на достоверность блоке предварительной обработки с использованием предопределенного процессора конкретно содержит:
для проверенного на достоверность блока предварительной обработки выполнение следующих операций:
вызов процессора для получения параметра хранения, причем параметр хранения содержит местоположение хранения; и
определение на основе параметра хранения готового к обработке блока предварительной обработки, соответствующего параметру хранения, и сохранение данных услуги определенного готового к обработке блока предварительной обработки в местоположении хранения.
4. Способ по любому одному из пп. 1-3, причем способ дополнительно содержит этап, на котором:
после того как определено, что блок предварительной обработки прошел проверку на достоверность, определяют на основе блока предварительной обработки и параметра хранения блока предварительной обработки параметр хранения следующего смежного готового к проверке на достоверность блока предварительной обработки и сохраняют параметр хранения следующего смежного готового к проверке на достоверность блока предварительной обработки.
5. Способ по п. 4, в котором сохранение параметра хранения следующего смежного готового к проверке на достоверность блока предварительной обработки конкретно содержит этап, на котором:
сохраняют параметр хранения следующего смежного готового к проверке на достоверность блока предварительной обработки в очереди типа ʺпервым пришел - первым обслуженʺ (FIFO).
6. Способ по п. 5, в котором вызов процессора для получения параметра хранения конкретно содержит этап, на котором:
вызывают процессор для получения параметра хранения из очереди FIFO.
7. Способ по любому одному из пп. 1-6, причем способ дополнительно содержит этап, на котором:
если определено, что блок предварительной обработки прошел проверку на достоверность, определяют параметр консенсуса, соответствующий блоку предварительной обработки, и получают на основе определенного параметра консенсуса, соответствующего блоку предварительной обработки, параметр консенсуса, соответствующий следующему смежному готовому к проверке на достоверность блоку предварительной обработки, причем параметр консенсуса используется, чтобы инструктировать узел блокчейна проверить на достоверность готовый к проверке на достоверность блок предварительной обработки.
8. Способ по п. 7, в котором запуск проверки на достоверность следующего готового к проверке на достоверность блока предварительной обработки содержит этап, на котором:
когда получен параметр консенсуса, соответствующий следующему смежному готовому к проверке на достоверность блоку предварительной обработки, запускают на основе полученного параметра консенсуса проверку на достоверность следующего смежного готового к проверке на достоверность блока предварительной обработки.
9. Устройство, содержащее множество модулей, сконфигурированных, чтобы выполнять способ по любому одному из пп. 1-8.
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
CN 10739618 A, 24.11.2017 | |||
СКРЕП КОРПУСОВ УЛЬЯ | 0 |
|
SU181439A1 |
Авторы
Даты
2020-05-19—Публикация
2018-05-31—Подача