Способ, устройство и система для блокчейн-консенсуса

Авторы патента:


Способ, устройство и система для блокчейн-консенсуса
Способ, устройство и система для блокчейн-консенсуса
Способ, устройство и система для блокчейн-консенсуса
Способ, устройство и система для блокчейн-консенсуса
Способ, устройство и система для блокчейн-консенсуса
Способ, устройство и система для блокчейн-консенсуса
Способ, устройство и система для блокчейн-консенсуса
Способ, устройство и система для блокчейн-консенсуса
Способ, устройство и система для блокчейн-консенсуса

Владельцы патента RU 2744498:

Эдванст Нью Текнолоджиз Ко., Лтд. (KY)

Изобретение относится к области вычислительной техники. Техническим результатом является обеспечение распределения транзакционных данных для блокчейн–консенсуса. Раскрыт способ обеспечения распределения транзакционных данных для блокчейн–консенсуса, содержащий получение транзакционных данных из множества запросов транзакций, при этом полученные транзакционные данные содержат первые транзакционные данные первого запроса транзакции из запросов транзакций и вторые транзакционные данные второго запроса транзакции из запросов транзакций, определение, следует ли обрабатывать транзакционные данные в соответствии с порядком времени принятия, если определено, что транзакционные данные не следует обрабатывать в соответствии с порядком времени принятия, выполнение определения объема ресурсов, требуемого для обработки полученных транзакционных данных, определения числа блоков консенсуса в блокчейн-сети, которые обладают незанятыми ресурсами в объеме, который не меньше объема ресурсов, требуемого для обработки полученных транзакционных данных, при этом каждый из блоков консенсуса способен выполнять консенсусную обработку над транзакционными данными отдельного запроса транзакции независимо от других блоков консенсуса, определения на основе упомянутого числа по меньшей мере двух блоков консенсуса из упомянутых блоков консенсуса посредством, если число превышает пороговое значение, опроса блоков консенсуса для определения того, какой из блоков консенсуса нуждается в консенсусной транзакции, и если число меньше или равно пороговому значению, определения того, какой из блоков консенсуса имеет уровень нагрузки, который ниже установленного условия, и распределения первых транзакционных данных первому блоку консенсуса из упомянутых по меньшей мере двух блоков консенсуса и вторых транзакционных данных второму блоку консенсуса из упомянутых по меньшей мере двух блоков консенсуса, побуждая упомянутые по меньшей мере два блока консенсуса к выполнению консенсусной обработки над первыми транзакционными данными и вторыми транзакционными данными независимо, и если определено, что транзакционные данные следует обрабатывать в соответствии с порядком времени принятия, выполнение обработки и распределения транзакционных данных для блокчейн–консенсуса в соответствии с порядком времени принятия. 4 н. и 9 з.п. ф-лы, 8 ил.

 

Перекрестная ссылка на родственные заявки

[1] Настоящая заявка основана на и испрашивает приоритет по заявке на патент Китая №. 201710197538.X, поданной 29 марта 2017 года, полное содержимое которой включено в настоящий документ по ссылке.

Область техники

Настоящая заявка относится к области технологий компьютерного программного обеспечения, и в частности, к способам, устройствам и системам для блокчейн-консенсуса.

Уровень техники

[2] Блокчейн представляет собой технологию распределенной базы данных, изначально разработанную для Биткоина. Такая структура данных является особенно подходящей для хранения последовательных данных, которые верифицируются в системе. Кроме того, такая структура данных использует алгоритм консенсуса для гарантии того, что данные не могут быть подделаны или подменены. Алгоритм консенсуса является алгоритмом, который требует участия со стороны узлов в блокчейне и достигает консенсуса посредством выполнения совместного вычисления множеством узлов. Например, после приема транзакционных данных узел регистрации данных осуществляет широковещательную передачу транзакционных данных другим участвующим узлам, а другие участвующие узлы выполняют консенсусную обработку, чтобы определить, имеет ли узел регистрации данных право на регистрацию данных для упомянутых транзакционных данных. Если результатом консенсуса других участвующих узлов является то, что узел регистрации данных имеет право на регистрацию данных для упомянутых транзакционных данных, узел регистрации данных сохраняет эти транзакционные данные в блокчейне, соответствующем узлу регистрации данных. Таким образом, алгоритм консенсуса в технологии блокчейн является регулирующим законом для программ или узлов в блокчейне, который гарантирует, что все узлы могут сотрудничать в согласованном порядке при любых обстоятельствах.

[3] Практическая Устойчивость к Византийской Проблеме (PBFT) является общим алгоритмом консенсуса в блокчейне. Алгоритм PBFT может обеспечить некоторую устойчивость, обеспечивая при этом активность и безопасность, и поэтому он является широко используемым. В алгоритме PBFT один узел является главным узлом, а другие узлы являются резервными узлами. Главный узел отвечает за сортировку принятых запросов транзакций, а затем широковещательную передачу этих запросов транзакций резервным узлам согласно результату сортировки. Алгоритм PBFT обычно состоит из трех фаз: предварительной подготовки, подготовки и совершения. Фаза предварительно подготовки и фаза подготовки используются для определения последовательности запросов транзакций.

[4] Однако вполне вероятно, что главный узел допустит ошибки при сортировке запросов транзакций, например, даст один и тот же порядковый номер различным запросам транзакций или не присвоит порядковый номер вовсе или лишит порядковые номера смежных запросов транзакций непрерывности и т.д. В результате резервному узлу необходимо верифицировать последовательность запросов транзакций при приеме упорядоченных запросов транзакций.

[5] В результате алгоритм PBFT осуществляет много вычислений и расчетов, чтобы гарантировать последовательность. В ходе исследований было установлено, что многие используемые в настоящее время алгоритмы консенсуса (например, механизмы консенсуса, такие как механизм доказывания объема работ и механизм доказывания прав и преимуществ и т.д.) должны выполнять большой объем вычислений и расчетов над последовательностью при выполнении консенсусной обработки, что потребляет значительные ресурсы системы.

[6] В практических применениях, однако, имеется много запросов транзакций без требований последовательности. Запрос транзакции без требований последовательности означает, что при приеме запросов транзакций серверу не нужно обрабатывать принятые запросы транзакций в соответствии с порядком времени принятия, например, благотворительные транзакции, краудфандинговые транзакции без верхнего предела или квоты и т.д. В качестве примера, последовательность пожертвований в благотворительных транзакциях на обработку транзакций не влияет. Таким образом, запросы транзакций этого типа могут быть отнесены к запросам транзакций, которые не имеют требований к последовательности ("запросу транзакции без требований последовательности" для краткости). Когда запросы транзакций этого типа обрабатываются в блокчейне, использование текущего алгоритма консенсуса приведет к относительно низкой эффективности обработки для транзакций этого типа, и в то же время, также окажет негативное влияние на консенсусную пропускную способность блокчейна.

Сущность изобретения

[7] В виду вышесказанного, варианты осуществления настоящего раскрытия обеспечивают способы, устройства и системы для блокчейн-консенсуса, чтобы по меньшей мере сгладить проблему предшествующего уровня техники, заключающуюся в том, что эффективность обработки является низкой, когда алгоритм консенсуса используется для обработки запросов транзакций без требований последовательности.

[8] Согласно одному аспекту, способ блокчейн-консенсуса может содержать: получение транзакционных данных; и распределение, согласно предварительно установленному правилу распределения, транзакционных данных по меньшей мере одному блоку консенсуса в наборе блоков консенсуса, побуждающее упомянутый по меньшей мере один блок консенсуса выполнить консенсусную обработку над распределенными транзакционными данными.

[9] Согласно другому аспекту, способ основанного на блокчейне хранения данных может содержать: прием результатов консенсуса от различных блоков консенсуса; и сохранение результатов консенсуса в блоки блокчейна согласно временным меткам результатов консенсуса.

[10] Согласно другому аспекту, система блокчейн-консенсуса может содержать: блок распределения и набор блоков консенсуса, содержащий множество блоков консенсуса, при этом: блок распределения выполнен с возможностью получения транзакционных данных и распределения, согласно предварительно установленному правилу распределения, транзакционных данных по меньшей мере одному блоку консенсуса в наборе блоков консенсуса; и по меньшей мере один блок консенсуса выполнен с возможностью выполнения консенсусной обработки над распределенными транзакционными данными.

[11] Согласно другому аспекту устройство блокчейн-консенсуса содержит процессор и долговременный считываемый компьютером носитель, хранящий инструкции, которые при исполнении процессором, побуждают устройство блокчейн-консенсуса выполнить способ. Способ может содержать: получение транзакционных данных; и распределение, согласно предварительно установленному правилу распределения, транзакционных данных по меньшей мере одному блоку консенсуса в наборе блоков консенсуса, побуждающее упомянутый по меньшей мере один блок консенсуса выполнить консенсусную обработку над распределенными транзакционными данными.

[12] Согласно другому аспекту устройство основанного на блокчейне хранения данных содержит процессор и долговременный считываемый компьютером носитель, хранящий инструкции, которые при исполнении процессором, побуждают устройство блокчейн-хранения данных выполнить способ. Способ может содержать: прием результатов консенсуса от различных блоков консенсуса; и сохранение результатов консенсуса в блокчейн-блоки согласно временным меткам результатов консенсуса, при этом сохранение результатов консенсуса в блокчейн-блоки содержит: сохранение результатов консенсуса в блоки узлов в сети блокчейн согласно блокам консенсуса, которые генерируют результаты консенсуса.

[13] Настоящее приложение раскрывает примерный алгоритм консенсуса в качестве независимого блока консенсуса, который отличается от традиционного блокчейн-консенсуса, формирует набор блоков консенсуса из таких блоков консенсуса, и после приема транзакционных данных, может распределять, согласно некоторому установленному правилу распределения, транзакционные данные блокам консенсуса в наборе блоков консенсуса для достижения консенсусной обработки над транзакционными данными посредством этих блоков консенсуса. Таким образом, множество блоков консенсуса может выполнять консенсусную обработку одновременно по запросу транзакции без требований последовательности, обработка последовательности существующими алгоритмами консенсуса упрощается, эффективность обработки и пропускная способность по обработке запросов транзакций без требований последовательности улучшаются, а также улучшаются эксплуатационные характеристики сети блокчейн.

Краткое описание чертежей

[14] Для более ясного описания технических решений в вариантах осуществления настоящего раскрытия, прилагаемые чертежи будут кратко описаны следующим образом. Прилагаемые чертежи являются лишь примерными. Другие чертежи могут быть дополнительно получены специалистом в данной области техники в соответствии с приведенными чертежами без изобретательских усилий.

[15] Фиг. 1 представляет собой блок-схему последовательности операций способа блокчейн-консенсуса согласно варианту осуществления настоящего раскрытия.

[16] Фиг. 2 представляет собой блок-схему последовательности операций способа блокчейн-консенсуса согласно варианту осуществления настоящего раскрытия.

[17] Фиг. 3 представляет собой блок-схему последовательности операций способа блокчейн-консенсуса согласно варианту осуществления настоящего раскрытия.

[18] Фиг. 4 представляет собой блок-схему последовательности операций способа основанного на блокчейне хранения данных согласно варианту осуществления настоящего раскрытия.

[19] Фиг. 5 представляет собой структурное схематичное представление системы блокчейн-консенсуса согласно варианту осуществления настоящего раскрытия.

[20] Фиг. 6 представляет собой схематичное представление устройства блокчейн-консенсуса согласно варианту осуществления настоящего раскрытия.

[21] Фиг. 7 представляет собой схематичное представление устройства блокчейн-консенсуса согласно варианту осуществления настоящего раскрытия.

[22] Фиг. 8 представляет собой структурное схематичное представление устройства основанного на блокчейне хранения данных согласно варианту осуществления настоящего раскрытия.

Подробное описание

[23] Чтобы позволить специалисту в данной области техники лучше понять технические решения в настоящем раскрытии, технические решения в вариантах осуществления будут ясно и полностью описаны ниже со ссылкой на прилагаемые чертежи. Должно быть очевидно, что описанные варианты осуществления являются лишь примерными. Все другие варианты осуществления, которые могут быть получены специалистом в данной области техники без какого-либо изобретательского усилия и на основе вариантов осуществления настоящего раскрытия, должны охватываться объемом настоящего раскрытия.

[24] Решения согласно настоящему раскрытию будут подробно описаны в нижеследующих вариантах осуществления.

[25] Фиг. 1 представляет собой блок-схему последовательности операций способа блокчейн-консенсуса согласно варианту осуществления настоящего раскрытия. С позиции программ, основным органом, который исполняет последовательность операций, может быть приложение (APP) или программа на терминале персонального компьютера (ПК). С позиции устройств, основной орган, который исполняет последовательность операций, может включать в себя следующие устройства, но без ограничения: персональные компьютеры, большие или средние компьютеры, компьютерные кластеры, сотовые телефоны, планшетные компьютеры, носимые смарт-устройства, транспортную технику и т.д.

[26] Согласно одному варианту осуществления способ блокчейн-консенсуса, показанный на Фиг. 1, может содержать следующие этапы:

[27] S101: получение транзакционных данных (например, транзакционных данных, которые претендуют на консенсусную обработку в сети блокчейн, и эти транзакционные данные могут именоваться "подлежащими консенсусу" транзакционными данными).

[28] В одном варианте осуществления, если основным органом, который исполняет способ, является блокчейн-узел (далее упоминаемый как «узел») в сети блокчейн, узел может принять подлежащий обработке запрос транзакции, получить транзакционные данных из запроса транзакции и сохранить транзакционные данные. Подлежащие консенсусу транзакционные данные на этапе S101 могут быть сохраненными транзакционными данными. Запрос транзакции в данном документе может быть запросом транзакции, отправленным клиентским терминалом, например запросом на ведение учета или запросом на исполнение другой операции конечного автомата; или может быть запросом транзакции, отправленным другими устройствами, который в настоящем документе не ограничен.

[29] В некоторых вариантах осуществления подлежащие консенсусу транзакционные данные могут относиться к одному набору транзакционных данных, например, последующая операция инициируется, когда принят один набор транзакционных данных. В качестве альтернативы, подлежащие консенсусу транзакционные данные могут относиться к множеству наборов подлежащих консенсусу транзакционных данных, например, последующая операция инициируется, когда принято множество наборов транзакционных данных. В качестве альтернативы, подлежащие консенсусу транзакционные данные могут быть транзакционными данными, генерируемыми в течение установленного периода времени, например, транзакционные данные, генерируемые в течение установленного периода времени, принимаются, а последующая операция инициируется по истечении этого установленного периода времени. Число наборов получаемых транзакционных данных не ограничено в настоящем документе.

[30] "Транзакционные данные" в настоящем документе содержат транзакционные данные без каких-либо требований последовательности. А именно, при обработке получаемых транзакционных данных, фактор времени этих транзакционных данных не учитывается. Например, принятый запрос транзакции является запросом на пожертвование. Тогда, подлежащие консенсусу транзакционные данные являются получаемыми подлежащими консенсусу транзакционными данными. Для транзакционных данных, связанных с пожертвованием, последовательность обработки транзакционных данных не имеет значения для отправителя. А именно, фактор времени отправки отправителем запроса на пожертвование игнорируется. Таким образом, этот тип запроса транзакции также именуется запросом транзакции без каких-либо требований последовательности.

[31] S102: распределение, согласно предварительно установленному правилу распределения, транзакционных данных по меньшей мере одному блоку консенсуса в наборе блоков консенсуса.

[32] Блок консенсуса используют здесь для выполнения консенсусной обработки над распределенными транзакционными данными.

[33] В технологии блокчейн алгоритм консенсуса используется для обработки получаемых транзакционных данных, при этом алгоритм консенсуса представляет собой алгоритм, который завершается голосующими узлами, участвующими в консенсусе, например, все голосующие узлы в конечном итоге достигают консенсусного результата на основе совместного вычисления.

[34] Набор блоков консенсуса в одном варианте осуществления содержит блоки консенсуса и каждый блок консенсуса может обеспечить независимую консенсусную транзакцию. Другими словами, различные блоки консенсуса могут использовать один и тот же алгоритм консенсуса или могут использовать различные алгоритмы консенсуса.

[35] В некоторых вариантах осуществления в настоящем документе число блоков консенсуса, содержащихся в наборе блоков консенсуса, не ограничено. Число голосующих узлов, содержащихся в различных блоках консенсуса, может быть одинаковым или может быть разным. Например, если алгоритм консенсуса является PBFT-алгоритмом, один голосующий узел в блоке консенсуса содержит один первичный узел и четыре вторичных узла. Если алгоритмом консенсуса является механизм доказательства выполнения работы, то блок консенсуса содержит по меньшей мере один голосующий узел. Таким образом, число голосующих узлов в блоке консенсуса не ограничено в настоящем документе и может быть определено согласно фактическим требованиям алгоритма консенсуса.

[36] Таким образом, в отношении подлежащих консенсусу транзакционных данных, консенсусная обработка согласно решениям в различных вариантах осуществления может быть выполнена над разными транзакционными данными одновременно. А именно, разные транзакционные данные одновременно распределяются разным блокам консенсуса, а эти блоки консенсуса выполняют консенсусную обработку над принятыми транзакционными данными независимо.

[37] Различные способы распределения, согласно предварительно установленному правилу распределения, подлежащих консенсусу транзакционных данных по меньшей мере одному блоку консенсуса в наборе блоков консенсуса будут подробно описаны ниже.

[38] В одном примере первый способ распределения может содержать: согласно числу наборов принимаемых подлежащих консенсусу транзакционных данных, определение соответствующего числа блоков консенсуса из набора блоков консенсуса случайным образом; и распределение, одновременно, подлежащих консенсусу транзакционных данных определенным блокам консенсуса, соответственно.

[39] В одном примере, когда число наборов подлежащих консенсусу транзакционных данных равно единице, один блок консенсуса из набора блоков консенсуса определяется случайным образом. Подлежащие консенсусу транзакционные данные распределяются определенному блоку консенсуса, а этот блок консенсуса осуществляет консенсусную обработку над подлежащими консенсусу транзакционными данными.

[40] Когда число наборов подлежащих консенсусу транзакционных данных больше одного, согласно числу наборов подлежащих консенсусу транзакционных данных, аналогичное число блоков консенсуса определяется случайным образом из набора блоков консенсуса. Наборы подлежащих консенсусу транзакционных данных последовательно распределяются определенным различным блокам консенсуса, соответственно.

[41] Например, получаемые подлежащие консенсусу транзакционные данные содержат подлежащие консенсусу транзакционные данные 1, подлежащие консенсусу транзакционные данные 2 и подлежащие консенсусу транзакционные данные 3, и предполагается, что набор блоков консенсуса содержит блок 1 консенсуса, блок 2 консенсуса, блок 3 консенсуса, блок 4 консенсуса и блок 5 консенсуса. Здесь три блока консенсуса могут быть случайным образом определены из набора блоков консенсуса. Предполагая, что случайно определенными блоками консенсуса являются блок 2 консенсуса, блок 4 консенсуса и блок 5 консенсуса, подлежащие консенсусу транзакционные данные 1, подлежащие консенсусу транзакционные данные 2 и подлежащие консенсусу транзакционные данные 3 последовательно распределяются, случайным образом, определенным разным блокам консенсуса. Например, подлежащие консенсусу транзакционные данные 1 распределяются блоку 5 консенсуса; подлежащие консенсусу транзакционные данные 2 распределяются блоку 4 консенсуса; и подлежащие консенсусу транзакционные данные 3 распределяются блоку 3 консенсуса.

[42] Распределение консенсуса в варианте реализации настоящей заявки не имеет какого-либо требования к последовательности. Таким образом, распределение может осуществляться случайным образом. Кроме того, то, что "подлежащие консенсусу транзакционные данные 1, подлежащие консенсусу транзакционные данные 2 и подлежащие консенсусу транзакционные данные 3 последовательно распределяются, случайным образом, определенным разным блокам консенсуса", может быть реализовано образом одновременного (параллельного) распределения. Распределение осуществляется случайным образом. А именно, когда подлежащие консенсусу транзакционные данные получены, любой блок консенсуса может стать блоком консенсуса в консенсусной транзакции для обработки этих подлежащих консенсусу транзакционных данных. Такой случайный способ распределения может сократить ресурсы, используемые системой при распределении.

[43] Манера действия "случайным образом" в настоящем документе может быть реализована с помощью случайного алгоритма или может быть реализована другими способами, которые в данном документе не ограничены конкретным образом.

[44] В другом примере второй способ распределения может содержать: определение, опросным способом, блоков консенсуса, нуждающихся в консенсусной транзакции, из набора блоков консенсуса; и распределение подлежащих консенсусу транзакционных данных определенным блокам консенсуса.

[45] В одном примере, когда подлежащие консенсусу транзакционные данные получены, сообщение-запрос отправляется, опросным способом, всем блокам консенсуса в наборе блоков консенсуса для определения того, имеется ли блок консенсуса, нуждающийся в объекте консенсусной транзакции (например, запросе транзакции). Когда определено, что некоторый блок консенсуса нуждается в объекте консенсусной транзакции, подлежащие консенсусу транзакционные данные отправляются этому блоку консенсуса.

[46] Когда число подлежащих консенсусу транзакционных данных равно единице, сообщение-запрос последовательно отправляется всем блокам консенсуса в наборе блоков консенсуса. Когда принимаемое ответное сообщение указывает, что объект консенсусной транзакции необходим, подлежащие консенсусу транзакционные данные отправляются блоку консенсуса, который возвращает упомянутое ответное сообщение.

[47] Когда число подлежащих консенсусу транзакционных данных больше единицы, сообщение-запрос может быть отправлено одновременно всем блокам консенсуса в наборе блоков консенсуса. Когда ответное сообщение принято, определяется число блоков консенсуса, нуждающихся в объекте консенсусной транзакции, что указано в принятом ответном сообщении. Если число блоков консенсуса превышает число запросов транзакций, блоки консенсуса могут быть выбраны случайным образом согласно первому способу из блоков консенсуса, нуждающихся в объекте консенсусной транзакции, что указано в принятом ответном сообщении, а подлежащие консенсусу транзакционные данные одновременно отправляются случайно выбранным блокам консенсуса, соответственно. Если число блоков консенсуса не превышает число запросов транзакций, подлежащие консенсусу транзакционные данные случайным образом распределяются блокам консенсуса, нуждающимся в объекте консенсусной транзакции, что указано в принятом ответном сообщении, а подлежащие консенсусу транзакционные данные, которые не были распределены, будут продолжать ожидать.

[48] Например, опросным способом определяется, что существуют три блока консенсуса, нуждающихся в объекте консенсусной транзакции. Предположим, что имеется четыре набора полученных подлежащих консенсусу транзакционных данных. Тогда из четырех наборов полученных подлежащих консенсусу транзакционных данных случайным образом выбираются три набора подлежащих консенсусу транзакционных данных. Эти три набора случайно выбранных подлежащих консенсусу транзакционных данных соответственно отправляются блокам консенсуса, нуждающимся в объекте консенсусной транзакции, а один набор подлежащих консенсусу транзакционных данных, который распределен не был, находится в состоянии ожидания распределения.

[49] Если предположить, что имеется два набора полученных подлежащих консенсусу транзакционных данных, эти два набора полученных подлежащих консенсусу транзакционных данных выбираются случайным образом из подлежащих консенсусу транзакционных данных, определенных как нуждающиеся в объекте консенсусной транзакции. Эти два набора полученных подлежащих консенсусу транзакционных данных одновременно отправляются случайно выбранным блокам консенсуса, так что эти блоки консенсуса осуществляют консенсусную обработку над принятыми подлежащими консенсусу транзакционными данными.

[50] В другом примере третий способ распределения может содержать: определение уровня нагрузки каждого блока консенсуса в наборе блоков консенсуса; и распределение, согласно некоторому правилу балансировки нагрузки, подлежащих консенсусу транзакционных данных по меньшей мере одному блоку консенсуса в наборе блоков консенсуса.

[51] В одном примере, когда подлежащие консенсусу транзакционные данные получены, уровень нагрузки (под уровнем нагрузки здесь может пониматься состояние загрузки текущего блока консенсуса, которое может отличаться от общего уровня нагрузки данного блока консенсуса) каждого блока консенсуса в наборе блоков консенсуса может быть определен так, чтобы гарантировать, что нагрузка сбалансирована для всех блоков консенсуса в наборе блоков консенсуса. Кроме того, текущее количество незанятых ресурсов каждого блока консенсуса может быть определено согласно уровню нагрузки каждого блока консенсуса. В одном варианте осуществления подлежащие консенсусу транзакционные данные могут быть распределены блокам консенсуса в наборе блоков консенсуса, уровень нагрузки которых ниже некоторого установленного условия. А именно, подлежащие консенсусу транзакционные данные распределяются блокам консенсуса в наборе блоков консенсуса, незанятые ресурсы которых превышают установленное пороговое значение.

[52] В некоторых вариантах осуществления в ситуации, когда число блоков консенсуса, нуждающихся в объекте консенсусной транзакции, превышает число запросов транзакций в вышеупомянутом втором способе распределения, способ балансировки нагрузки согласно третьему способу распределения, в дополнение к случайному способу, может быть использован для определения блоков консенсуса, и его подробное описание здесь не приводится.

[53] В одном варианте осуществления, когда все получаемые подлежащие консенсусу транзакционные данные не могут быть распределены блокам консенсуса за один раз, части запросов транзакций необходимо находиться в состоянии ожидания распределения. Затем для запросов транзакций в состоянии ожидания распределения, блоки консенсуса все еще могут быть определены с использованием трех вышеописанных способов распределения.

[54] Например, набор блоков консенсуса содержит три блока консенсуса. Тогда набор блоков консенсуса может одновременно обрабатывать получаемые в один и тот же момент времени подлежащие консенсусу транзакционные данные в числе трех. Если получено четыре (т.е. более трех) наборов подлежащих консенсусу транзакционных данных: подлежащие консенсусу транзакционные данные 1, подлежащие консенсусу транзакционные данные 2, подлежащие консенсусу транзакционные данные 3 и подлежащие консенсусу транзакционные данные 4. То предполагается, что подлежащие консенсусу транзакционные данные 1, подлежащие консенсусу транзакционные данные 2 и подлежащие консенсусу транзакционные данные 3 одновременно распределяются трем блокам консенсуса в наборе блоков консенсуса, а подлежащие консенсусу транзакционные данные 4 будут находится в состоянии ожидания распределения. Когда обнаружено, что некоторый блок консенсуса в наборе блоков консенсуса становится незанятым, подлежащие консенсусу транзакционные данные 4 могут быть распределены этому блоку консенсуса.

[55] В одном варианте осуществления определение блоков консенсуса из набора блоков консенсуса содержит: определение рабочего состояния каждого блока консенсуса в наборе блоков консенсуса, причем рабочее состояние содержит по меньшей мере одно из нормального состояния или ненормального состояния; и определение блоков консенсуса из блоков консенсуса с нормальным состоянием рабочего состояния.

[56] Для гарантии того, что определенный блок консенсуса сможет успешно выполнить консенсусную обработку над полученными подлежащими консенсусу транзакционными данными, рабочее состояние блоков консенсуса в наборе блоков консенсуса может дополнительно отслеживаться. Таким образом, при выборе блоков консенсуса блоки консенсуса с ненормальным рабочим состоянием можно избегать, что действенно повышает эффективность обработки запросов транзакций.

[57] Кроме того, блоки консенсуса в наборе блоков консенсуса могут быть дополнительно снабжены модулем управления переключениями (switch control). Таким образом, когда количество запросов транзакций, которые подлежат обработке в сети блокчейн, является относительно малым, некоторые блоки консенсуса в наборе блоков консенсуса могут быть отключены, что сэкономит системные ресурсы для улучшения коэффициента использования системных ресурсов. В некоторых вариантах осуществления, посредством управления состоянием переключения каждого блока консенсуса, блокчейн в способе реализации настоящей заявки может улучшить доступность системы при столкновении с такими проблемами, как простой или отключение Интернета. Например, когда простой узла или отключение Интернета возникает с блоком консенсуса, недостаток низкой доступности системы в существующем порядке можно избежать, выключив этот блок консенсуса.

[58] S103: блок консенсуса выполняет (например, побуждается к выполнению) консенсусную обработку над распределенными транзакционными данными.

[59] В одном варианте осуществления в данном документе, алгоритм консенсуса, используемый блоками консенсуса, не ограничивается и может быть любым алгоритмом консенсуса, в том числе общепринятым PBFT-алгоритмом.

[60] Специалист в данной области техники поймет, что какое-либо требование последовательности для распределения подлежащих консенсусу транзакционных данных в способах реализации настоящего раскрытия отсутствует. В этом раскрытии алгоритм консенсуса может быть обеспечен как независимый блок консенсуса, что отличатся от традиционного блокчейн-консенсуса. Набор блоков консенсуса формируется из этих блоков консенсуса, и при приеме подлежащих консенсусу транзакционных данных, транзакционные данные могут быть распределены, согласно установленному правилу распределения, блокам консенсуса в наборе блоков консенсуса для достижения консенсусной обработки над транзакционными данными блоками консенсуса. Таким образом, множество блоков консенсуса может выполнять консенсусную обработку одновременно по запросу транзакции без требований последовательности, обработка последовательности существующими алгоритмами консенсуса упрощается, эффективность обработки и пропускная способность по обработке запросов транзакций без требований последовательности улучшаются, а также улучшаются эксплуатационные характеристики сети блокчейн.

[61] В некоторых вариантах осуществления, запросы транзакций могут содержать запросы транзакций без каких-либо требований последовательности. Запрос транзакции без каких-либо требований последовательности включает в себя, но без ограничения, благотворительные транзакции, краудфандинговые транзакции без верхнего предела или квоты и т.д. Что касается благотворительной транзакции, последовательность пожертвования может не оказывать влияния на транзакцию на миллисекундном уровне, а краудфандинговые транзакции без верхнего предела или квоты могут иметь тот же самый характер. Таким образом, запросы транзакций этого типа также могут рассматриваться как запросы без каких-либо требований последовательности. В одном варианте осуществления операционную эффективность консенсусной обработки можно повысить в способе одновременного консенсуса для запросов транзакций этого типа без каких-либо требований последовательности. С принятием такого способа одновременного консенсуса пропускная способность всей блокчейн-системы значительно улучшается и, в частности, модуль алгоритма консенсуса больше не является узким местом во всей блокчейн-системе.

[62] Фиг. 2 представляет собой блок-схему последовательности операций способа блокчейн-консенсуса согласно варианту осуществления настоящего раскрытия. Способ может включать в себя следующие этапы.

[63] S201: получение транзакционных данных.

[64] Это идентично или схоже с действием на этапе S101 со ссылкой на Фиг. 1 и подробно описано не будет.

[65] S202: определение объема ресурсов, требуемого для обработки транзакционных данных, и объема незанятых ресурсов каждого блока консенсуса в наборе блоков консенсуса.

[66] В одном варианте осуществления, когда подлежащие консенсусу транзакционные данные получены, ресурсы, требуемые для обработки этих подлежащих консенсусу транзакционных данных, могут быть определены.

[67] Кроме того, текущей объем незанятых ресурсов каждого блока консенсуса в наборе блоков консенсуса может быть определен посредством запроса.

[68] S203: сравнение объема незанятых ресурсов каждого блока консенсуса с ресурсами, требуемыми для обработки транзакционных данных, соответственно, и определение числа блоков консенсуса, объем незанятых ресурсов которых превышает объем ресурсов, требуемый для обработки этих транзакционных данных.

[69] S204: определение, превышает ли упомянутое число установленное значение; если да, то способ переходит на этап S205; в противном случае способ переходит на этап S206.

[70] Установленное значение в вариантах осуществления настоящего раскрытия может быть определено по мере необходимости или может быть определено согласно экспериментальным данным, что в данном документе не ограничено.

[71] S205: определение, опросным способом, блоков консенсуса, нуждающихся в консенсусной транзакции, из блоков консенсуса, незанятые ресурсы которых превышают ресурсы, требуемые для обработки транзакционных данных, и распределение транзакционных данных определенным блокам консенсуса.

[72] Второй способ распределения, описанный выше со ссылкой на этап S102, может быть использован здесь в качестве опросного способа для определения блоков консенсуса, нуждающихся в консенсусной транзакции.

[73] В одном варианте осуществления принят механизм опроса и распределения каждых подлежащих консенсусу транзакционных данных. Согласно механизму опроса и распределения, согласующее устройство или блок распределения, отвечающий за распределение, периодически рассылает опрос для последовательного опроса каждого блока консенсуса о том, является ли объект консенсусной транзакции необходимым. Если да, то транзакция обеспечивается, т.е. подлежащие консенсусу транзакционные данные распределяются, и когда транзакция завершена, опрашивается следующий блок консенсуса, что повторяется постоянно.

[74] S206: определение, согласно правилу балансировки нагрузки, блоков консенсуса, у которых уровень нагрузки ниже некоторого установленного условия, из блоков консенсуса, незанятые ресурсы которых превышают ресурсы, требуемые для обработки транзакционных данных, и распределение этих транзакционных данных определенным блокам консенсуса.

[75] Третий способ распределения, описанный выше со ссылкой на этап S102, может быть использован здесь в качестве способа, в котором правило балансировки нагрузки используется для определения блоков консенсуса.

[76] Например, имеется пять наборов подлежащих консенсусу транзакционных данных, ожидающих обработки в некоторый момент времени, в то время как в настоящее время имеется три блока консенсуса, способных участвовать в консенсусной транзакции. Тогда нагрузка запросов транзакций превышает возможности обработки независимых блоков консенсуса. Нагрузка подлежащих консенсусу транзакционных данных и возможности обработки независимых блоков консенсуса сравниваются для обеспечения ориентира для следующего распределения консенсуса, так что каждый блок консенсуса используется на своем максимальном уровне, а объем консенсусной обработки за единицу времени, например, пропускная способность, улучшается.

[77] В некоторых вариантах осуществления используемый способ распределения с балансировкой нагрузки включает в себя, но без ограничения, способ программной или аппаратной балансировки нагрузки, например, через балансировку нагрузки DNS, балансировку нагрузки шлюза или устройство балансировки нагрузки. Способ распределения с балансировкой нагрузки может предотвратить перегрузку некоторых отдельных блоков консенсуса множеством запросов транзакций в то время, как другие отдельные блоки консенсуса простаивают.

[78] По сравнению со способом распределения с балансировкой нагрузки, способ распределения с опросом является более простым в работе, но способ распределения с балансировкой нагрузки обладает более высокой эффективностью.

[79] Фиг. 3 представляет собой блок-схему последовательности операций способа блокчейн-консенсуса согласно варианту осуществления настоящего раскрытия. Способ может дополнительно быть следующим.

[80] S301: получение по меньшей мере одного набора транзакционных данных.

[81] S302: группировка упомянутых по меньшей мере одних транзакционных данных для получения одной или нескольких групп транзакционных данных.

[82] В одном варианте осуществления, поскольку подлежащие консенсусу транзакционные данные являются транзакционными данными без каких-либо требований последовательности, полученные подлежащие консенсусу транзакционные данные могут быть сгруппированы, так что эффективность обработки этих транзакционных данных может быть улучшена.

[83] S303: согласно предварительно установленному правилу распределения, распределение (например, одновременное распределение) групп транзакционных данных различным блокам консенсуса в наборе блоков консенсуса.

[84] Здесь, блок консенсуса используется для выполнения консенсусной обработки над распределенными подлежащими консенсусу транзакционными данными.

[85] Фиг. 4 представляет собой блок-схему последовательности операций способа основанного на блокчейне хранения данных согласно варианту осуществления настоящего раскрытия. Способ может быть следующим.

[86] S401: прием результатов консенсуса, отправленных разными блоками консенсуса в сети блокчейн.

[87] В одном варианте осуществления блоки консенсуса могут иметь возможность хранения данных. Когда результат консенсуса получен, этот результат консенсуса необходимо лишь сохранить; они также могут не иметь возможности хранения данных, тогда различные блоки консенсуса могут отправлять полученные результаты консенсуса в некоторый общедоступный узел, а этот общедоступный узел выполнит сохранение.

[88] S402: сохранение результатов консенсуса в блоки сети блокчейн согласно временным меткам результатов консенсуса.

[89] В одном примере, в соответствии с временем генерирования результатов консенсуса, различные результаты консенсуса последовательно сохраняются в блоки блокчейна; в качестве альтернативы, в соответствии с временем приема результатов консенсуса, различные результаты консенсуса последовательно сохраняются в блоки блокчейна.

[90] В одном варианте осуществления, когда результаты консенсуса сохраняются в блоки блокчейна, узлы хранения могут быть выбраны случайным образом; или в соответствии с отношением соответствия между блоками консенсуса и узлами хранения, результаты консенсуса сохраняются в блоки узлов в сети блокчейн, соответствующих блокам консенсуса, которые генерируют эти результаты консенсуса, что в данном документе не ограничено. А именно, блок консенсуса может сохранять результаты консенсуса, которые он сам генерирует, сохранять результаты консенсуса, генерируемые другими блоками консенсуса, или не сохранять результаты консенсуса с сохранением результатов консенсуса в независимых узлах хранения.

[91] В одном примере, в дополнение к обеспечению модуля управления переключениями для каждого блока консенсуса, модуль управления переключениями может быть дополнительно предусмотрен для узла хранения. При столкновении с простоями узлов хранения, отключением интернета, добавлением новых узлов и выталкиванием старых узлов, такой модуль управления переключениями значительно повышает доступность всей блокчейн-системы.

[92] Фиг. 5 представляет собой структурное схематичное представление системы блокчейн-консенсуса согласно варианту осуществления настоящего раскрытия. Система консенсуса содержит: блок 501 распределения и набор 502 блоков консенсуса, содержащий блоки 5021a-d консенсуса, при этом: блок 501 распределения получает подлежащие консенсусу транзакционные данные и распределяет, согласно предварительно установленному правилу распределения, подлежащие консенсусу транзакционные данные по меньшей мере одному блоку консенсуса (например, 5021a, b, c или d) в наборе 502 блоков консенсуса; и блоки 5021a-d консенсуса, содержащиеся в наборе 502 блоков консенсуса, выполняют консенсусную обработку над распределенными подлежащими консенсусу транзакционными данными.

[93] В одном варианте осуществления, система консенсуса дополнительно содержит один или несколько узлов 503a-d хранения, при этом: узлы 503a-d хранения принимают результаты консенсуса, отправленные различными блоками консенсуса в сети блокчейн, и последовательно сохраняют, в соответствии с временными метками результатов консенсуса, эти результаты консенсуса.

[94] В одном варианте осуществления распределение блоком 501 распределения, согласно предварительно установленному правилу распределения, подлежащих консенсусу транзакционных данных по меньшей мере одному блоку консенсуса в наборе блоков консенсуса содержит: согласно числу наборов принимаемых подлежащих консенсусу транзакционных данных, определение соответствующего числа блоков консенсуса из набора блоков консенсуса случайным образом; и распределение, одновременно, подлежащих консенсусу транзакционных данных определенным блокам консенсуса, соответственно.

[95] В одном варианте осуществления распределение блоком 501 распределения, согласно предварительно установленному правилу распределения, подлежащих консенсусу транзакционных данных по меньшей мере одному блоку консенсуса в наборе блоков консенсуса содержит: определение, опросным способом, блоков консенсуса, нуждающихся в консенсусной транзакции, из набора блоков консенсуса; и распределение подлежащих консенсусу транзакционных данных определенным блокам консенсуса.

[96] В одном варианте осуществления распределение блоком 501 распределения, согласно предварительно установленному правилу распределения, подлежащих консенсусу транзакционных данных по меньшей мере одному блоку консенсуса в наборе блоков консенсуса содержит: определение уровня нагрузки каждого блока консенсуса в наборе блоков консенсуса; и распределение, согласно некоторому правилу балансировки нагрузки, подлежащих консенсусу транзакционных данных по меньшей мере одному блоку консенсуса в наборе блоков консенсуса.

[97] В одном варианте осуществления распределение блоком 501 распределения, согласно некоторому правилу балансировки нагрузки, подлежащих консенсусу транзакционных данных по меньшей мере одному блоку консенсуса в наборе блоков консенсуса содержит: распределение подлежащих консенсусу транзакционных данных блокам консенсуса в наборе блоков консенсуса, уровень нагрузки которых ниже некоторого установленного условия.

[98] В одном варианте осуществления распределение блоком 501 распределения, согласно предварительно установленному правилу распределения, подлежащих консенсусу транзакционных данных по меньшей мере одному блоку консенсуса в наборе блоков консенсуса содержит: определение объема ресурсов, требуемого для обработки подлежащих консенсусу транзакционных данных, и объема незанятых ресурсов каждого блока консенсуса в наборе блоков консенсуса; когда число блоков консенсуса, у которых объем незанятых ресурсов превышает объем ресурсов, требуемый для обработки подлежащих консенсусу транзакционных данных, больше установленного значения, определение, опросным способом, блоков консенсуса, нуждающихся в консенсусной транзакции, из блоков консенсуса, незанятые ресурсы которых превышают ресурсы, требуемые для обработки подлежащих консенсусу транзакционных данных, и распределение подлежащих консенсусу транзакционных данных определенным блокам консенсуса; и когда число блоков консенсуса, у которых объем незанятых ресурсов превышает объем ресурсов, требуемый для обработки подлежащих консенсусу транзакционных данных, меньше установленного значения, определение, согласно правилу балансировки нагрузки, блоков консенсуса, у которых уровень нагрузки ниже установленного условия, из блоков консенсуса, незанятые ресурсы которых превышают ресурсы, требуемые для обработки подлежащих консенсусу транзакционных данных, и распределение подлежащих консенсусу транзакционных данных определенным блокам консенсуса.

[99] В одном варианте осуществления определение блоком 501 распределения блоков консенсуса из набора блоков консенсуса содержит: определение рабочего состояния каждого блока консенсуса в наборе блоков консенсуса, причем рабочее состояние содержит по меньшей мере одно из нормального состояния и ненормального состояния; и определение блоков консенсуса из блоков консенсуса с нормальным состоянием рабочего состояния.

[100] В одном варианте осуществления подлежащие консенсусу транзакционные данные содержат транзакционные данные без требований последовательности.

[101] В одном варианте осуществления узел 503 хранения принимает результаты консенсуса, отправленные различными блоками консенсуса в сети блокчейн; и сохраняет, согласно временным меткам результатов консенсуса, результаты консенсуса в блоки сети блокчейн.

[102] В одном варианте осуществления сохранение узлом 503 хранения результатов консенсуса в блоки блокчейна содержит: сохранение результатов консенсуса в блоки узлов в сети блокчейн согласно блокам консенсуса, которые генерируют эти результаты консенсуса.

[103] Фиг. 6 представляет собой схематичное представление устройства 600 блокчейн-консенсуса согласно варианту осуществления настоящего раскрытия. Устройство 600 консенсуса может содержать блок 601 получения и блок 602 обработки, при этом: блок 601 получения получает подлежащие консенсусу транзакционные данные; и блок 602 обработки распределяет, согласно предварительно установленному правилу распределения, подлежащие консенсусу транзакционные данные по меньшей мере одному блоку консенсуса в наборе блоков консенсуса, а блок консенсуса выполнен с возможностью выполнения консенсусной обработки над распределенными подлежащими консенсусу транзакционными данными. В некоторых вариантах осуществления устройство 600 блокчейн-консенсуса может содержать память и процессор, соединенные друг с другом. Память может быть долговременной и считываемой компьютером и может хранить инструкции, которые при исполнении процессором побуждают устройство 600 выполнять один или несколько этапов, описанных в данном документе. Инструкции могут быть реализованы в виде различных блоков, описанных в данном документе. Каждый блок может быть программным обеспечением, аппаратным обеспечением или их комбинацией.

[104] В одном варианте осуществления распределение блоком 602 обработки, согласно предварительно установленному правилу распределения, подлежащих консенсусу транзакционных данных по меньшей мере одному блоку консенсуса в наборе блоков консенсуса содержит: согласно числу наборов принимаемых подлежащих консенсусу транзакционных данных, определение соответствующего числа блоков консенсуса из набора блоков консенсуса случайным образом; и распределение, одновременно, подлежащих консенсусу транзакционных данных определенным блокам консенсуса, соответственно.

[105] В одном варианте осуществления распределение блоком 602 обработки, согласно предварительно установленному правилу распределения, подлежащих консенсусу транзакционных данных по меньшей мере одному блоку консенсуса в наборе блоков консенсуса содержит: определение, опросным способом, блоков консенсуса, нуждающихся в консенсусной транзакции, из набора блоков консенсуса; и распределение подлежащих консенсусу транзакционных данных определенным блокам консенсуса.

[106] В одном варианте осуществления распределение блоком 602 обработки, согласно предварительно установленному правилу распределения, подлежащих консенсусу транзакционных данных по меньшей мере одному блоку консенсуса в наборе блоков консенсуса содержит: определение уровня нагрузки каждого блока консенсуса в наборе блоков консенсуса; и распределение, согласно некоторому правилу балансировки нагрузки, подлежащих консенсусу транзакционных данных по меньшей мере одному блоку консенсуса в наборе блоков консенсуса.

[107] В одном варианте осуществления распределение блоком 602 обработки, согласно некоторому правилу балансировки нагрузки, подлежащих консенсусу транзакционных данных по меньшей мере одному блоку консенсуса в наборе блоков консенсуса содержит: распределение подлежащих консенсусу транзакционных данных блокам консенсуса в наборе блоков консенсуса, уровень нагрузки которых ниже некоторого установленного условия.

[108] В одном варианте осуществления распределение блоком 602 обработки, согласно предварительно установленному правилу распределения, подлежащих консенсусу транзакционных данных по меньшей мере одному блоку консенсуса в наборе блоков консенсуса содержит: определение объема ресурсов, требуемого для обработки подлежащих консенсусу транзакционных данных, и объема незанятых ресурсов каждого блока консенсуса в наборе блоков консенсуса; когда число блоков консенсуса, у которых объем незанятых ресурсов превышает объем ресурсов, требуемый для обработки подлежащих консенсусу транзакционных данных, больше установленного значения, определение, опросным способом, блоков консенсуса, нуждающихся в консенсусной транзакции, из блоков консенсуса, незанятые ресурсы которых превышают ресурсы, требуемые для обработки подлежащих консенсусу транзакционных данных, и распределение подлежащих консенсусу транзакционных данных определенным блокам консенсуса; и когда число блоков консенсуса, у которых объем незанятых ресурсов превышает объем ресурсов, требуемый для обработки подлежащих консенсусу транзакционных данных, меньше установленного значения, определение, согласно правилу балансировки нагрузки, блоков консенсуса, у которых уровень нагрузки ниже установленного условия, из блоков консенсуса, незанятые ресурсы которых превышают ресурсы, требуемые для обработки подлежащих консенсусу транзакционных данных, и распределение подлежащих консенсусу транзакционных данных определенным блокам консенсуса.

[109] В одном варианте осуществления определение блоком 602 обработки блоков консенсуса из набора блоков консенсуса содержит: определение рабочего состояния каждого блока консенсуса в наборе блоков консенсуса, причем рабочее состояние содержит по меньшей мере одно из нормального состояния и ненормального состояния; и определение блоков консенсуса из блоков консенсуса с нормальным состоянием рабочего состояния.

[110] В одном варианте осуществления подлежащие консенсусу транзакционные данные содержат транзакционные данные без требований последовательности.

[111] Устройство консенсуса согласно различным вариантам осуществления может быть реализовано программным образом или может быть реализовано аппаратным образом, что в данном документе не ограничено. Другими словами, блоки 601 и 602 могут быть функциональными блоками программного обеспечения, хранящимися в памяти. Когда функциональные блоки программного обеспечения исполняются процессором, они побуждают процессор выполнить описанные функции. Блоки 601 и 602 также могут быть аппаратными блоками, такими как запрограммированные схемы для выполнения описанных функций.

[112] Фиг. 7 представляет собой схематичное представление устройства 700 блокчейн-консенсуса согласно варианту осуществления настоящего раскрытия. Устройство 700 консенсуса может содержать блок 701 получения и блок 702 обработки, при этом: блок получения получает по меньшей мере одни подлежащие консенсусу транзакционные данные; и блок обработки одновременно распределяет, согласно предварительно установленному правилу распределения, подлежащие консенсусу транзакционные данные по меньшей мере одному блоку консенсуса в наборе блоков консенсуса, а блок консенсуса выполнен с возможностью выполнения консенсусной обработки над распределенными подлежащими консенсусу транзакционными данными. В некоторых вариантах осуществления устройство 700 блокчейн-консенсуса может содержать память и процессор, соединенные друг с другом. Память может быть долговременной и считываемой компьютером и может хранить инструкции, которые при исполнении процессором побуждают устройство 700 выполнять один или несколько этапов, описанных в данном документе. Инструкции могут быть реализованы в виде различных блоков, описанных в данном документе. Каждый блок может быть программным обеспечением, аппаратным обеспечением или их комбинацией. Другими словами, блоки 701 и 702 могут быть функциональными блоками программного обеспечения, хранящимися в памяти. Когда функциональные блоки программного обеспечения исполняются процессором, они побуждают процессор выполнить описанные функции. Блоки 701 и 702 также могут быть аппаратными блоками, такими как запрограммированные схемы для выполнения описанных функций.

[113] В одном варианте осуществления одновременное распределение блоком 702 обработки, согласно предварительно установленному правилу распределения, подлежащих консенсусу транзакционных данных по меньшей мере одному блоку консенсуса в наборе блоков консенсуса содержит: группировку упомянутых по меньшей мере одних подлежащих консенсусу транзакционных данных для получения одной или нескольких групп транзакционных данных; и согласно предварительно установленному правилу распределения, распределение групп транзакционных данных различным блокам консенсуса в наборе блоков консенсуса.

[114] Фиг. 8 представляет собой структурное схематичное представление устройства 800 основанного на блокчейне хранения данных согласно варианту осуществления настоящей заявки. Устройство 800 хранения может содержать блок 801 приема и блок 802 хранения, при этом: блок 801 приема принимает результаты консенсуса, отправленные различными блоками консенсуса в сети блокчейн; и блок 802 хранения сохраняет, согласно временным меткам результатов консенсуса, результаты консенсуса в блоки сети блокчейн. В некоторых вариантах осуществления устройство 800 блокчейн-консенсуса может содержать память и процессор, соединенные друг с другом. Память может быть долговременной и считываемой компьютером и может хранить инструкции, которые при исполнении процессором побуждают устройство 800 выполнять один или несколько этапов, описанных в данном документе. Инструкции могут быть реализованы в виде различных блоков, описанных в данном документе. Каждый блок может быть программным обеспечением, аппаратным обеспечением или их комбинацией. Например, блоки 801 и 802 могут быть функциональными блоками программного обеспечения, хранящимися в памяти. Когда функциональные блоки программного обеспечения исполняются процессором, они побуждают процессор выполнить описанные функции. Блоки 801 и 802 также могут быть аппаратными блоками, такими как запрограммированные схемы для выполнения описанных функций.

[115] В одном варианте осуществления сохранение блоком 802 хранения результатов консенсуса в блоки блокчейна содержит: сохранение результатов консенсуса в блоки узлов в сети блокчейн согласно блокам консенсуса, которые генерируют эти результаты консенсуса.

[116] Устройство консенсуса согласно различным вариантам осуществления может быть реализовано программным образом или может быть реализовано аппаратным образом, что в данном документе не ограничено. Что касается устройства консенсуса, алгоритм консенсуса обеспечивается как независимый блок консенсуса, что отличатся от традиционного блокчейн-консенсуса. Набор блоков консенсуса формируется из этих блоков консенсуса, и при приеме подлежащих консенсусу транзакционных данных, транзакционные данные могут быть распределены, согласно установленному правилу распределения, блокам консенсуса в наборе блоков консенсуса для достижения консенсусной обработки над транзакционными данными блоками консенсуса. Таким образом, множество блоков консенсуса может выполнять консенсусную обработку одновременно по запросу транзакции без требований последовательности, обработка последовательности существующими алгоритмами консенсуса упрощается, эффективность обработки и пропускная способность по обработке запросов транзакций без требований последовательности улучшаются, а также улучшаются эксплуатационные характеристики сети блокчейн.

[117] Согласно вариантам осуществления настоящего раскрытия, упомянутые устройства соответственно соответствуют упомянутым способам. Таким образом, устройства также достигают благоприятных технических эффектов, аналогичных таковым у соответствующих способов. Поскольку благоприятные технические эффекты способов были подробно описаны выше, благоприятные технические эффекты соответствующих устройств в этом документе повторяться не будут.

[118] В 1990-х годах усовершенствование технологии можно было дифференцировать на усовершенствование аппаратного обеспечения (например, усовершенствование структуры схемы, например, диода, транзистора, коммутатора и т. п.) или усовершенствование программного обеспечения (усовершенствование потока операций способа). Однако, наряду с технологическим развитием, многие текущие улучшения потоков операций способов могут рассматриваться как прямые улучшения структур схем аппаратного обеспечения. Разработчики могут получить соответствующую структуру схемы аппаратного обеспечения, запрограммировав улучшенный поток операций способа в схему аппаратного обеспечения. Следовательно, улучшение потока операций способа может быть реализовано посредством аппаратной реализации. Например, программируемое логическое устройство (PLD) (например, программируемая пользователем вентильная матрица (FPGA)) представляет собой такую интегральную схему, что ее логические функции определяются пользователем посредством программирования устройства. Разработчик может запрограммировать «интеграцию» цифровой системы в один элемент PLD, не обращаясь к производителю микросхем с просьбой спроектировать и изготовить специальную интегральную (IC) микросхему. В настоящее время такой тип программирования главным образом реализуется с помощью программного обеспечения «логического компилятора», а не ручного изготовления IC микросхем. Программное обеспечение логического компилятора аналогично программному компилятору, используемому для разработки и написания программ, в то время как для написания исходных кодов до компиляции используется определенный язык программирования, который именуется языком описания аппаратуры (HDL). Существует не один, а много типов HDL, таких как ABEL (усовершенствованный язык булевых выражений), AHDL (язык описания аппаратуры Altera), Confluence, CUPL (язык программирования Корнельского университета), HDCal, JHDL (язык описания аппаратуры Java), Lava, Lola, MyHDL, PALASM, RHDL (язык описания аппаратуры Ruby). Наиболее часто используемый HDL включает в себя VHDL (язык описания аппаратуры для высокоскоростных интегральных схем) и Verilog. Специалисту в данной области техники известно, как получить схему аппаратного обеспечения для реализации логического потока операций способа, используя вышеупомянутые HDL, чтобы выполнить некоторое логическое программирование над потоком операций способа и запрограммировать его в интегральную схему (IC).

[119] Контроллер может быть реализован любым надлежащим образом. Например, контроллер может иметь, например, форму микропроцессора или процессора, а также считываемого компьютером носителя, который хранит считываемые компьютером программные коды (например, программное обеспечение или встроенное программное обеспечение), которые могут являются пригодными для исполнения (микро)процессором, логическим элементом, коммутатором, интегральной схемой специального назначения (ASIC), программируемым логическим контроллером и встроенным микроконтроллером. Примеры контроллера включают в себя, но без ограничения, следующие микроконтроллеры: ARC 625D, Atmel AT91SAM, микросхему PIC18F26K20 и C8051F320 Silicone Labs. Контроллер памяти может быть дополнительно реализован как часть логики управления памятью. Специалисту в данной области также должно быть понятно, что в дополнение к тому, что контроллер реализуется в виде чисто считываемых компьютером программных кодов, логическое программирование в отношении этапов способа может быть выполнено, чтобы позволить контроллеру реализовать те же самые функции в форме логического элемента, коммутатора, ASIC, программируемого логического контроллера и встроенного микроконтроллера. Следовательно, такой контроллер может рассматриваться как часть аппаратного обеспечения, тогда как устройства, содержащиеся в нем и выполненные с возможностью осуществления различных функций, также могут рассматриваться как структура внутри упомянутой части аппаратного обеспечения. В качестве альтернативы, устройства, выполненные с возможностью осуществления различных функций, могут рассматриваться и как программные модули для реализации способа и как структура внутри части аппаратного обеспечения.

[120] Система, устройство, модуль или блок, описанные в вышеупомянутых вариантах осуществления, могут быть реализованы с помощью компьютерной микросхемы или объекта, или реализованы с помощью изделия, имеющего функцию. Типичным устройством реализации является компьютер. Например, компьютер может быть, например, персональным компьютером, портативным компьютером, сотовым телефоном, телефоном с камерой, смартфоном, карманным персональным компьютером, устройством воспроизведения носителей, навигационным устройством, устройством электронной почты, игровой консолью, планшетным компьютером, носимым устройством или комбинацией любых устройств в этих устройствах.

[121] Для удобства описания вышеупомянутое устройство разделено на различные блоки в соответствии с описываемыми функциями. Функции блоков могут быть реализованы в одном или нескольких элементах программного и/или аппаратного обеспечения при реализации настоящего раскрытия.

[122] Специалист в данной области техники должен понимать, что варианты осуществления настоящего раскрытия могут быть обеспечены в виде способа, системы или компьютерного программного продукта. Следовательно, раскрытая система может быть реализована как полностью аппаратный вариант осуществления, полностью программный вариант осуществления или как вариант осуществления, объединяющий программное и аппаратное обеспечение для выполнения раскрытых способов. Кроме того, раскрытая система может быть в форме компьютерного программного продукта, реализованного на одном или нескольких компьютерных носителях данных (в том числе, помимо прочего, память на магнитном диске, CD-ROM, оптическая память и т.п.), содержащих компьютерные программные коды.

[123] Раскрытая система описана со ссылкой на блок-схемы последовательности операций и/или блок-схемы способа, устройства (системы) и компьютерного программного продукта в соответствии с вариантами осуществления настоящего раскрытия. Инструкция компьютерной программы может использоваться для реализации каждого процесса и/или блока в блок-схемах последовательности операций и/или блок-схемах и некоторой комбинации процессов и/или блоков в блок-схемах последовательности операций и/или блок-схемах. Эти инструкции компьютерной программы могут предоставляться для компьютера общего назначения, компьютера специального назначения, встроенного процессора или процессора других программируемых устройств обработки данных для формирования машины, так что эти инструкции, исполняемые компьютером или процессором других программируемых устройств обработки данных формируют устройство для реализации указанной функции в одном или нескольких процессах на блок-схемах последовательности операций и/или в одном или нескольких блоках на блок-схемах.

[124] Эти инструкции компьютерной программы также могут храниться в считываемой компьютером памяти, которая может побуждать компьютер или другие программируемые устройства обработки данных работать некоторым конкретным образом, так что инструкции, хранящиеся в считываемой компьютером памяти, формируют производимое изделие, которое включает в себя инструктируемое устройство. Инструктируемое устройство реализует одну или несколько функций в одном или нескольких процессах на блок-схемах последовательности операций и/или в одном или нескольких блоках на блок-схемах.

[125] Эти инструкции компьютерной программы также могут быть загружены на компьютер или другие программируемые устройства обработки данных, так что ряд операционных этапов выполняется на компьютере или других программируемых устройствах, тем самым обеспечивая реализуемую компьютером обработку. Следовательно, инструкции, исполняемые на компьютере или других программируемых устройствах, обеспечивают этапы для реализации одной или нескольких функций в одном или нескольких процессах в блок-схемах последовательности операций и/или в одном или нескольких блоках на блок-схемах.

[126] В типичной конфигурации вычислительное устройство включает в себя один или несколько центральных блоков обработки (CPU), интерфейсы ввода/вывода, сетевые интерфейсы и память.

[127] Память может включать в себя считываемый компьютером носитель, такой как энергозависимая память, оперативная память (RAM) и/или энергонезависимая память, например, постоянная память (ROM) или флэш-RAM. Память является примером считываемого компьютером носителя.

[128] Считываемый компьютером носитель включает в себя постоянные, энергозависимые, мобильные и немобильные носители, которые могут осуществлять хранение информации любым способом или технологией. Информация может быть считываемыми компьютером инструкциями, структурами данных, программными модулями или другими данными. Примеры носителей данных компьютеров включают в себя, но без ограничения, RAM на основе фазового перехода (PRAM), статическую RAM (SRAM), динамическую RAM (DRAM), другие типы устройств оперативной памяти (RAM), устройства постоянной памяти (ROM), электрически стираемые перепрограммируемые ROM (EEPROM), устройства флэш-памяти или другие технологии памяти, компакт-диски только для чтения (CD-ROM), цифровые универсальные диски (DVD) или другие оптические запоминающие устройства, кассеты, кассетные и дисковые запоминающие устройства или другие устройства с магнитной памятью или любые другие не относящиеся к пересылке (данных) носители, которые могут быть использованы для хранения информации, доступной для вычислительного устройства. Согласно приведенным в данном документе определениям считываемые компьютером носители не включают в себя временные носители, такие как модулированные сигналы данных и несущие.

[129] Термины «включающий в себя», «содержащий» или любые другие их варианты предназначены для охвата случая неисключительного включения, так что процесс, способ, продукт или устройство, содержащие ряд элементов, содержат не только эти элементы, но также содержат другие элементы, которые не перечислены, или дополнительно содержат элементы, которые присущи упомянутым процессу, способу, продукту или устройству. Когда дополнительное ограничение отсутствует, элементы, определенные выражением «содержащий один…», не исключают дополнительные аналогичные элементы в процессе, способе, продукте или устройстве, которые содержат определенные элементы.

[130] Настоящее раскрытие может быть описано в обычном контексте исполняемой компьютером инструкции, которая исполняется компьютером, такой как программный модуль. В различных вариантах осуществления программный модуль содержит подпрограмму, программу, объект, компонент, структуру данных и тому подобное для исполнения конкретной задачи или реализации конкретного абстрактного типа данных. Настоящее раскрытие может также применяться на практике в распределенных вычислительных средах. В этих распределенных вычислительных средах удаленные устройства обработки, подключенные через сети связи, выполняют задачи. В распределенных вычислительных средах программный модуль может быть расположен на локальных и удаленных компьютерных носителях данных, в том числе запоминающих устройствах.

[131] Варианты осуществления в этом описании описаны постепенно, так что каждый вариант осуществления фокусируется на отличиях от других вариантов осуществления, и к вариантам осуществления можно обращаться совместно на предмет их идентичных или аналогичных частей. Вариант осуществления системы описан относительно просто, поскольку он по существу аналогичен варианту осуществления способа. К описанию варианта осуществления способа можно обратиться на предмет связанных с ним частей.

[132] Варианты осуществления настоящего раскрытия являются просто примерными и не используются для ограничения настоящего раскрытия. Для специалиста в данной области техники раскрытые варианты осуществления могут быть модифицированы или изменены различными способами. Любая модификация, эквивалентная замена или улучшение, выполненные согласно сущности и принципу настоящего раскрытия, должны охватываться формулой изобретения из настоящего раскрытия.

1. Способ обеспечения распределения транзакционных данных для блокчейн–консенсуса, содержащий:

- получение транзакционных данных из множества запросов транзакций, при этом полученные транзакционные данные содержат первые транзакционные данные первого запроса транзакции из запросов транзакций и вторые транзакционные данные второго запроса транзакции из запросов транзакций;

- определение, следует ли обрабатывать транзакционные данные в соответствии с порядком времени принятия;

- если определено, что транзакционные данные не следует обрабатывать в соответствии с порядком времени принятия, выполнение

- определения объема ресурсов, требуемого для обработки полученных транзакционных данных;

- определения числа блоков консенсуса в блокчейн-сети, которые обладают незанятыми ресурсами в объеме, который не меньше объема ресурсов, требуемого для обработки полученных транзакционных данных, при этом каждый из блоков консенсуса способен выполнять консенсусную обработку над транзакционными данными отдельного запроса транзакции независимо от других блоков консенсуса;

- определения на основе упомянутого числа по меньшей мере двух блоков консенсуса из упомянутых блоков консенсуса посредством,

- если число превышает пороговое значение, опроса блоков консенсуса для определения того, какой из блоков консенсуса нуждается в консенсусной транзакции; и

- если число меньше или равно пороговому значению, определения того, какой из блоков консенсуса имеет уровень нагрузки, который ниже установленного условия; и

- распределения первых транзакционных данных первому блоку консенсуса из упомянутых по меньшей мере двух блоков консенсуса и вторых транзакционных данных второму блоку консенсуса из упомянутых по меньшей мере двух блоков консенсуса, побуждая упомянутые по меньшей мере два блока консенсуса к выполнению консенсусной обработки над первыми транзакционными данными и вторыми транзакционными данными независимо; и

- если определено, что транзакционные данные следует обрабатывать в соответствии с порядком времени принятия, выполнение

- обработки и распределения транзакционных данных для блокчейн–консенсуса в соответствии с порядком времени принятия.

2. Способ по п. 1, в котором после того как первые транзакционные данные и вторые транзакционные данные распределены, первый блок консенсуса и второй блок консенсуса выполняют консенсусную обработку одновременно над первыми транзакционными данными и вторыми транзакционными данными соответственно.

3. Способ по п. 1, в котором опрос блоков консенсуса содержит последовательный опрос каждого из блоков консенсуса для определения того, нуждается ли он в консенсусной транзакции.

4. Способ по п. 1, в котором определение по меньшей мере двух блоков консенсуса содержит определение того, что число меньше или равно пороговому значению, и выбор каждого из по меньшей мере двух блоков консенсуса на основе определенного уровня нагрузки блока консенсуса.

5. Способ по п. 1, в котором множество запросов транзакций содержат благотворительную транзакцию или краудфандинговую транзакцию без верхнего предела или квоты.

6. Долговременный считываемый компьютером носитель, хранящий инструкции, которые при исполнении процессором побуждают процессор к выполнению способа обеспечения распределения транзакционных данных для блокчейн–консенсуса, причем способ содержит:

- получение транзакционных данных из множества запросов транзакций, при этом полученные транзакционные данные содержат первые транзакционные данные первого запроса транзакции из запросов транзакций и вторые транзакционные данные второго запроса транзакции из запросов транзакций;

- определение, следует ли обрабатывать транзакционные данные в соответствии с порядком времени принятия;

- если определено, что транзакционные данные не следует обрабатывать в соответствии с порядком времени принятия, выполнение

- определения объема ресурсов, требуемого для обработки полученных транзакционных данных;

- определения числа блоков консенсуса в блокчейн-сети, которые обладают незанятыми ресурсами в объеме, который не меньше объема ресурсов, требуемого для обработки полученных транзакционных данных, при этом каждый из блоков консенсуса способен выполнять консенсусную обработку над транзакционными данными отдельного запроса транзакции независимо от других блоков консенсуса;

- определения на основе упомянутого числа по меньшей мере двух блоков консенсуса из упомянутых блоков консенсуса посредством,

- если число превышает пороговое значение, опроса блоков консенсуса для определения того, какой из блоков консенсуса нуждается в консенсусной транзакции; и

- если число меньше или равно пороговому значению, определения того, какой из блоков консенсуса имеет уровень нагрузки, который ниже установленного условия; и

- распределения первых транзакционных данных первому блоку консенсуса из упомянутых по меньшей мере двух блоков консенсуса и вторых транзакционных данных второму блоку консенсуса из упомянутых по меньшей мере двух блоков консенсуса, побуждая упомянутые по меньшей мере два блока консенсуса к выполнению консенсусной обработки над первыми транзакционными данными и вторыми транзакционными данными независимо; и

- если определено, что транзакционные данные следует обрабатывать в соответствии с порядком времени принятия, выполнение

- обработки и распределения транзакционных данных для блокчейн–консенсуса в соответствии с порядком времени принятия.

7. Долговременный считываемый компьютером носитель по п. 6, в котором после того как первые транзакционные данные и вторые транзакционные данные распределены, первый блок консенсуса и второй блок консенсуса выполняют консенсусную обработку одновременно над первыми транзакционными данными и вторыми транзакционными данными соответственно.

8. Долговременный считываемый компьютером носитель по п. 6, в котором опрос блоков консенсуса содержит последовательный опрос каждого из блоков консенсуса для определения того, нуждается ли он в консенсусной транзакции.

9. Долговременный считываемый компьютером носитель по п. 6, в котором определение по меньшей мере двух блоков консенсуса содержит определение того, что число меньше или равно пороговому значению, и выбор каждого из по меньшей мере двух блоков консенсуса на основе определенного уровня нагрузки блока консенсуса.

10. Долговременный считываемый компьютером носитель по п. 6, в котором множество запросов транзакций содержат благотворительную транзакцию или краудфандинговую транзакцию без верхнего предела или квоты.

11. Система блокчейн–консенсуса для обеспечения распределения транзакционных данных для блокчейн–консенсуса, причем система содержит:

процессор; и

долговременный считываемый компьютером носитель, хранящий инструкции, которые при исполнении процессором побуждают процессор к выполнению способа, содержащего:

- получение транзакционных данных из множества запросов транзакций, при этом полученные транзакционные данные содержат первые транзакционные данные первого запроса транзакции из запросов транзакций и вторые транзакционные данные второго запроса транзакции из запросов транзакций;

- определение, следует ли обрабатывать транзакционные данные в соответствии с порядком времени принятия;

- если определено, что транзакционные данные не следует обрабатывать в соответствии с порядком времени принятия, выполнение

- определения объема ресурсов, требуемого для обработки полученных транзакционных данных;

- определения числа блоков консенсуса в блокчейн-сети, которые обладают незанятыми ресурсами в объеме, который не меньше объема ресурсов, требуемого для обработки полученных транзакционных данных, при этом каждый из блоков консенсуса способен выполнять консенсусную обработку над транзакционными данными отдельного запроса транзакции независимо от других блоков консенсуса;

- определения на основе упомянутого числа по меньшей мере двух блоков консенсуса из упомянутых блоков консенсуса посредством,

- если число превышает пороговое значение, опроса блоков консенсуса для определения того, какой из блоков консенсуса нуждается в консенсусной транзакции; и

- если число меньше или равно пороговому значению, определения того, какой из блоков консенсуса имеет уровень нагрузки, который ниже установленного условия; и

- распределения первых транзакционных данных первому блоку консенсуса из упомянутых по меньшей мере двух блоков консенсуса и вторых транзакционных данных второму блоку консенсуса из упомянутых по меньшей мере двух блоков консенсуса, побуждая упомянутые по меньшей мере два блока консенсуса к выполнению консенсусной обработки над первыми транзакционными данными и вторыми транзакционными данными независимо; и

- если определено, что транзакционные данные следует обрабатывать в соответствии с порядком времени принятия, выполнение

- обработки и распределения транзакционных данных для блокчейн–консенсуса в соответствии с порядком времени принятия.

12. Система по п. 11, в которой после того как первые транзакционные данные и вторые транзакционные данные распределены, первый блок консенсуса и второй блок консенсуса выполняют консенсусную обработку одновременно над первыми транзакционными данными и вторыми транзакционными данными соответственно.

13. Устройство блокчейн–консенсуса для обеспечения распределения транзакционных данных для блокчейн–консенсуса, содержащее процессор и долговременный считываемый компьютером носитель, хранящий инструкции, которые при исполнении процессором побуждают устройство блокчейн–консенсуса к выполнению способа по любому из пп. с 1 по 5.



 

Похожие патенты:

Изобретение относится к области вычислительной техники. Техническим результатом является обеспечение безопасности данных при обмене данными.

Изобретение относится к области беспроводной связи. Технический результат заключается в безопасном восстановлении радиолинии без установки нового контекста для защиты линии связи между устройством пользователя и целевым узлом доступа.

Изобретение относится к системам обеспечения безопасности. Технический результат заключается в обеспечении защиты содержимого хранилища ключей от неавторизованного доступа путем применения завершенного сквозного процесса от поставщика услуг предоставления ключей до данного устройства конечного пользователя.

Изобретение относится к области информационной безопасности. Техническим результатом является предотвращение возможности попадания информации определенной категории из одной компьютерной сети в другую.

Изобретение относится к области фотонной квантовой связи. Технический результат заявляемого устройства заключается в обнаружении атак с навязыванием срабатываний однофотонному детектору устройств фотонной квантовой связи.

Изобретение относится к средствам для безопасной связи. Технический результат заключается в повышении эффективности и безопасности доступа к общественным беспроводным сетям.

Изобретение относится к области вычислительной техники. Технический результат заключается в повышения надежности защиты от программного расшифрования потока данных, поступающего с большими битрейтами, на микропроцессорах общего назначения для встраиваемых устройств, в том числе при известном ключе шифрования, в результате применения расширений преобразования AES, зависящих от дополнительного ключа режима и изменяющих функцию генерации SBOX, с обеспечением зависимости SBOX от ключа режима и замедления программной реализации, а также в расширении арсенала известных технических средств за счет вышеуказанных технических решений.

Изобретение относится к области защиты информации и может быть использовано для хранения и скрытой передачи конфиденциальной информации по открытым каналам связи.

Изобретение относится к вычислительной технике. Технический результат заключается в обеспечении раннего обнаружения вредоносных программных агентов и выведения их из строя.

Изобретение относится к области безопасной передачи данных. Техническим результатом является обеспечение системы засекречивания, которая устойчива к полному перебору при любом возможном шифровании, несмотря на использование ключа конечной длины.

Изобретение относится к области вычислительной техники. Техническим результатом является обеспечение безопасности данных при обмене данными.
Наверх