Способ и аппаратура для записи служебных данных в цепочку блоков и способ для определения поднабора услуг

Изобретение относится к области компьютерных технологий. Технический результат заключается в возможности снижения вычислительных затрат, необходимых для повышения эффективности исполнения обработки данных и улучшения расширяемости. Способ записи данных транзакций в цепочку блоков содержит: получение множества фрагментов данных транзакций для записи в цепочку блоков; назначение данных транзакций с перекрывающимся диапазоном изменения данных в один и тот же поднабор транзакций уровня I, а данных транзакций без перекрывающегося диапазона изменения данных - в разные поднаборы транзакций уровня I; назначение данных транзакций, которые назначены в поднаборы транзакций уровня I, в поднаборы транзакций уровня II согласно типу транзакции, причем для каждого из поднаборов транзакций уровня I фрагменты данных транзакций, в соответствующем поднаборе транзакций уровня I, с одним и тем же типом транзакции назначаются в один и тот же поднабор транзакций уровня II, а фрагменты данных транзакций, в соответствующем поднаборе транзакций уровня I, с разными типами транзакций назначаются в разные поднаборы транзакций уровня II; параллельное исполнение поднаборов транзакций уровня II и запись результата исполнения в цепочку блоков. 4 н. и 24 з.п. ф-лы, 5 ил., 1 табл.

 

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

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

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

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

В одном примере блокчейн–технологии представляют собой тип технологий децентрализованных и распределенных баз данных. Каждый фрагмент данных в цепочке блоков будет транслироваться на все блокчейн–узлы (узлы цепочки блоков) всей сети, и каждый узел хранит полный объем данных, который согласован друг с другом. Блокчейн–технологии требуют, чтобы все узлы сохраняли одно и то же состояние, включая состояние базы данных и подобное. Для обеспечения согласованности в состоянии базы данных требуется, чтобы блокчейн–транзакции были в упорядоченной последовательности, которая является согласованной для всех узлов, и все узлы исполняли транзакции в такой последовательности, чтобы выполнить верификацию транзакции, осуществление, включение данных в цепочку блоков и т. д. Возьмем в качестве примера блокчейн–приложение на базе Ethereum: временная отметка создается, когда каждая транзакция принимается, транзакции записываются в пул транзакций, а транзакции сортируются в соответствии с временными отметками; во время майнинга (генерирования) транзакции исполняются в соответствии с последовательностью временных отметок транзакций, и информация об учетной записи после исполнения каждой транзакции обновляется в базе данных, тем самым достигая обновления состояния учетной записи базы данных.

В современных технологиях для обеспечения согласованности в состоянии базы данных необходимо обрабатывать данные в соответствии со строкой временных отметок получения транзакции (которая также может быть истолкована как данные транзакций, которые подлежат записи в цепочку блоков). Следовательно, ограничивается, что только одна единственная машина может выполнять исполнение, в результате чего производительность записи и эффективность базы данных будут ограничены производительностью одной машины. Чтобы повысить производительность и эффективность записи, необходимо улучшить физические свойства, такие как ЦП, одной машины, например, увеличить количество ядер ЦП, что не только приводит к высокой стоимости, но и ограничивает возможности расширения.

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

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

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

Варианты осуществления настоящей заявки используют следующие технические решения:

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

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

определение поднабора транзакций, к которым принадлежат данные транзакций, в соответствии с типами транзакций и/или диапазонами изменения данных данных транзакций, в которых не существует отношения зависимости транзакций между данными транзакций, принадлежащими к различным поднаборам транзакций, и

параллельное исполнение поднаборов транзакций и запись результата исполнения в цепочку блоков.

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

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

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

параллельное исполнение поднабора транзакций с использованием многопоточности или кластера машин.

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

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

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

в соответствии с типами транзакций данных транзакций помещение данных транзакций одного и того же типа транзакций в один и тот же поднабор транзакций и разделение данных транзакций разных типов транзакций в разные поднаборы транзакций.

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

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

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

обход диапазонов изменения данных данных транзакций;

если диапазон изменения данных первого фрагмента данных транзакций перекрывает диапазон изменения данных первого поднабора транзакций, добавление первого фрагмента данных транзакций в первый поднабор транзакций; и

если диапазон изменения данных первого фрагмента данных транзакций не перекрывает диапазон изменения данных первого поднабора транзакций, создание второго поднабора транзакций, который содержит первый фрагмент данных транзакций;

причем первый фрагмент данных транзакций является любым из фрагментом данных транзакций, первый поднабор транзакций является любым из поднаборов транзакций, и второй поднабор транзакций отличается от первого поднабора транзакций.

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

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

обход во временном порядке, соответствующем временным отметкам в соответствии с временными отметками данных транзакций.

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

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

определение поднабора уровня II, к которому принадлежат данные транзакций в поднаборе уровня I в соответствии с диапазонами изменения данных данных транзакций, и использование поднабора уровня II в качестве одного из поднаборов транзакций, причем поднабор уровня II является поднабором поднабора уровня I.

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

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

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

в соответствии с диапазонами изменения данных данных транзакций в поднаборе уровня I, помещение данных транзакций, имеющих перекрывающиеся диапазоны изменения данных, в один и тот же поднабор уровня II и разделение данных транзакций, имеющих диапазоны изменения данных, которые не перекрываются, в разные поднаборы уровня II.

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

обход диапазонов изменения данных данных транзакций в первом поднаборе уровня I;

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

если диапазон изменения данных второго фрагмента данных транзакций не перекрывает диапазон изменения данных первого поднабора уровня II, создание второго поднабора уровня II, который содержит данные второй транзакции;

причем первый поднабор уровня I является любым поднабором уровня I в поднаборах уровня I, второй фрагмент данных транзакций является любым фрагментом данных транзакций в первом поднаборе уровня I, первый поднабор уровня II является любым поднабором уровня II в первом поднаборе уровня I, а второй поднабор уровня II отличается от первого поднабора уровня II.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

определение поднабора уровня II, к которому принадлежат данные транзакций в поднаборе уровня I, в соответствии с диапазонами изменения данных данных транзакций, и использование поднабора уровня II в качестве одного из поднаборов транзакций, причем поднабор уровня II является поднабором поднабора I уровня.

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

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

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

Прилагаемые чертежи, которые описаны ниже, используются для предоставления лучшего понимания настоящей заявки и составляют часть настоящей заявки. Примерные варианты осуществления настоящей заявки и описание примерных вариантов осуществления используются для описания настоящей заявки и не составляют ненадлежащих ограничений для настоящей заявки. На прилагаемых чертежах:

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

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

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

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

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

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

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

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

Вариант осуществления 1

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

S101: получение множества фрагментов данных транзакций, подлежащих записи в цепочку блоков;

S102: определение поднаборов транзакций, к которым принадлежат данные транзакций, в соответствии с типами транзакций и/или диапазонами изменения данных данных транзакций, причем не существует отношения зависимости транзакций между данными транзакций, принадлежащими к разным поднаборам транзакций; и

S103: параллельное исполнение поднаборов транзакций и запись результата исполнения в цепочку блоков.

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

После того как множество фрагментов данных транзакций получены после исполнения этапа S101 в настоящем варианте осуществления, может быть сформирован набор транзакций, который должен быть исполнен, содержащий данные транзакций, которые должны быть исполнены, и набор транзакций может быть определен посредством предварительно установленного объема обработки данных и/или предварительно установленного времени транзакций. В одном примере данные транзакций, которые должны быть исполнены в одном и том же пакете, могут быть определены путем предварительно установленного объема обработки данных, и примерное значение предварительно установленного объема обработки данных может быть определено в соответствии с объемом данных, разрешенным для записи в цепочку блоков. Например, объем данных транзакций, разрешенный для записи в цепочку блоков, составляет 1000, и тогда предварительно установленный объем обработки данных может быть установлен равным менее 1000, например, 800, чтобы соответствовать этому требованию. В примерной реализации каждый раз, когда сервер принимает 800 фрагментов данных транзакций, сервер может формировать набор транзакций, который должен быть исполнен, для последующей обработки. Когда набор транзакций, который должен быть исполнен, определен, данные транзакций, которые должны быть исполнены в одном и том же пакете, также могут быть определены путем предварительной установки времени данных транзакций. Например, предварительно установленное время данных транзакций устанавливается равным 1 с, и затем данные транзакций, которые должны исполняться в одном и том же пакете, являются данными транзакций, сгенерированными параллельно в течение 1 с.

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

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

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

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

Процесс определения поднабора транзакций подробно описан ниже с помощью примеров.

(I) Определение поднабора транзакций в соответствии с типами транзакций данных транзакций

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

Например, после исполнения транзакции типа контракт (которая также может называться транзакцией) изменяются только соответствующие данные контракта, тогда как после исполнения транзакции типа передача (которая также может называться транзакцией), изменяются данные баланса по учетной записи обеих сторон передачи. Можно видеть, что порядок, в котором исполняются эти два типа транзакций, не влияет на результат исполнения. Следовательно, разделение двух разных типов транзакций в разные поднаборы транзакций может гарантировать, что данные транзакций, принадлежащие разным поднаборам транзакций, не имеют отношения зависимости транзакций, и, таким образом, поднаборы транзакций могут обрабатываться параллельно, не затрагивая согласованность в состоянии базы данных.

(II) Определение поднабора транзакций в соответствии с диапазонами изменения данных данных транзакций

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

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

обход диапазонов изменения данных данных транзакций;

если диапазон изменения данных первых данных транзакций перекрывает диапазон изменения данных первого поднабора транзакций, добавление первых данных транзакций в первый поднабор транзакций, и

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

причем первые данные транзакций являются любым фрагментом данных транзакций, первый поднабор транзакций является любым поднабором транзакций в поднаборах транзакций, а второй поднабор транзакций отличается от первого поднабора транзакций.

Вышеописанный процесс описан ниже со ссылкой на последовательность операций, показанную на Фиг. 2.

S1021: определение того, был ли обход всех фрагментов данных транзакций в наборе транзакций, процесс заканчивается, если да, в противном случае процесс переходит к исполнению этапа S1022;

S1022: получение любого фрагмента данных TX транзакций из набора транзакций; следует отметить, что данные TX транзакций, как правило, могут быть извлечены и сгенерированы из данных транзакций, которые не были помещены в поднабор транзакций. Однако, если извлеченные данные TX транзакций уже были помещены в поднабор транзакций, то данные TX транзакций будут помещены в тот же поднабор транзакций после исполнения последующих этапов, не затрагивая достижение технической цели.

S1023: вычисление диапазона изменения данных данных TX транзакций;

S1024: определение того, перекрывает ли диапазон изменения данных TX транзакций диапазон изменения данных существующего поднабора TXB транзакций;

S1025: если результат определения на этапе S1024 «д»а, добавление данных TX транзакций в поднабор TXB транзакций;

S1026: если результат определения на этапе S1024 «нет», создание нового поднабора TXN транзакций, и добавление данных TX транзакций в поднабор TXN транзакций.

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

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

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

данные 1 транзакций: передача с учетной записи А на учетную запись B, тогда диапазон изменения данных данных 1 транзакций может быть выражен как (A, B);

данные 2 транзакций: передача с учетной записи B на учетную запись А, тогда диапазон изменения данных данных 2 транзакций может быть выражен как (B, A);

данные 3 транзакций: передача с учетной записи C на учетную запись E, тогда диапазон изменения данных данных 3 транзакций может быть выражен как (C, E);

данные 4 транзакций: передача с учетной записи F на учетную запись X, тогда диапазон изменения данных данных 4 транзакций может быть выражен как (F, X);

данные 5 транзакций: передача с учетной записи X на учетную запись E, тогда диапазон изменения данных данных 5 транзакций может быть выражен как (X, E).

Можно увидеть, что диапазоны изменения данных данных 1 транзакций и данных 2 транзакций перекрываются, диапазоны изменения данных данных 3 транзакций и данных 5 транзакций перекрываются, и диапазоны изменения данных данных 4 транзакций и данных 5 транзакций перекрываются. Следовательно, набор транзакций, содержащий данные 1 транзакций и данные 5 транзакций, может быть разделен в следующие поднаборы транзакций:

поднабор 1 транзакций: содержащий данные 1 транзакций и данные 2 транзакций, и диапазоном изменения данных является (A, B) и

поднабор 2 транзакций: содержащий данные 3 транзакций, данные 4 транзакций и данные 5 транзакций, а диапазоном изменения является (C, E, F, X).

Можно увидеть, что диапазоны изменения данных поднабора 1 транзакций и поднабора 2 транзакций не перекрываются, и параллельное исполнение поднабора 1 транзакций и поднабора 2 транзакций не затронет результат исполнения. Следовательно, поднабор 1 транзакций и поднабор 2 транзакций могут исполняться параллельно для повышения эффективности исполнения. Для поднабора 1 транзакций диапазоны изменения данных данных 1 транзакции и данных 2 транзакции перекрываются (которые даже полностью идентичны), и исполнение этих двух фрагментов данных транзакций может зависеть от данных транзакций, предшествующих исполнению этих двух фрагментов данных транзакций. Следовательно, порядок исполнения должен быть определен в соответствии с временными отметками, соответствующими этим двум фрагментам данных транзакций, и эти два фрагмента данных транзакций будут исполняться последовательно во временном порядке. То же самое выполняется для поднабора 2 транзакций. Например, согласно временным меткам может быть определено, что данные 4 транзакций передачи с учетной записи F на учетную запись X исполняются в первую очередь, а затем исполняются данные 5 транзакций передачи с учетной записи X на учетную запись E. Этот порядок исполнения не может быть ни параллельным, ни обратным, поскольку возможно, что внесение денег, требуемое для передачи с учетной записи X на учетную запись E, когда исполняются данные 5 транзакций, зависит от исполнения данных 4 транзакций передачи с учетной записи F на учетную запись X.

Следует отметить, что обход (просмотр) диапазонов изменения данных данных транзакций в наборе транзакций может быть реализован таким образом S1022: получение любого фрагмента данных транзакций, как показано на примере на Фиг. 2. В качестве альтернативы, обход (просмотр) может быть реализован в соответствии с временным порядком генерации данных транзакций в наборе транзакций в соответствии с временными отметками данных транзакций.

(III) Определение поднабора транзакций в соответствии с типами транзакций и диапазонами изменения данных данных транзакций.

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

Этап S1027: определение поднабора уровня I, к которому принадлежат данные транзакций, в соответствии с типами транзакции данных транзакций;

затем определение поднабора уровня II, к которому принадлежат данные транзакций, в соответствии с диапазонами изменения данных данных транзакций в поднаборе уровня I, и использование поднабора уровня II в качестве поднабора транзакций, причем поднабор уровня II является поднабором поднабора уровня I.

Здесь выполнение первого разделения уровня на набор транзакций в соответствии с типом транзакций и определение поднабора уровня I, которому принадлежат данные транзакций, может дополнительно содержать:

в соответствии с типами транзакций данных транзакций в наборе транзакций, помещение данных транзакций одного и того же типа транзакций в один и тот же поднабор уровня I и разделение данных транзакций разных типов транзакции в разные поднаборы уровня I.

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

В одном примере определение поднабора уровня II, которому принадлежат данные транзакций согласно диапазонам изменения данных данных транзакций в поднаборе уровня I, содержит:

в соответствии с диапазонами изменения данных данных транзакций в поднаборе уровня I, помещение данных транзакций, имеющих перекрывающиеся диапазоны изменения данных, в один и тот же поднабор уровня II и разделение данных транзакций, имеющих диапазоны изменения данных, которые не перекрываются в разные поднаборы уровня II.

Кроме того, в соответствии с диапазонами изменения данных данных транзакций в поднаборе уровня I, помещение данных транзакций, имеющих перекрывающиеся диапазоны изменения данных в один и тот же поднабор уровня II и разделение данных транзакций, имеющих диапазоны изменения данных, которые не перекрываются в другие поднаборы уровня II могут содержать, как показано на Фиг. 3:

S1028: обход диапазонов изменения данных данных транзакций в первом поднаборе уровня I;

S1029: определение, перекрывает ли диапазон изменения данных вторых данных транзакций диапазон изменения данных первого поднабора уровня II;

S1030: если диапазон изменения данных вторых данных транзакций перекрывает диапазон изменения данных первого поднабора уровня II, добавление вторых данных транзакций в первый поднабор уровня II; и

S1031: если диапазон изменения данных вторых данных транзакций не перекрывает диапазон изменения данных первого поднабора уровня II, создание второго поднабора уровня II, который содержит вторые данные транзакций;

причем первый поднабор уровня I является любым поднабором уровня I в поднаборах уровня I, вторые данные транзакций являются любым фрагментом данных транзакций в первом поднаборе уровня I, первый поднабор уровня II является любым поднабором уровня II в первом поднаборе уровня I и второй поднабор уровня II отличается от первого поднабора уровня II.

Процесс разделения поднаборов уровня II из поднаборов уровня I аналогичен процессу и принципу разделения поднаборов транзакций из набора транзакций, как описано в п. (II), который не будет подробно описан здесь.

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

В современных технологиях, например, в качестве примера приложение на базе Ethereum, данные транзакций сортируются в соответствии с принятыми временными отметками данных транзакций при исполнении данных транзакций, а затем исполнение выполняется последовательно во временном порядке, чтобы обновлять информацию учетной записи после выполнения каждого фрагмента данных транзакций. В вариантах осуществления настоящей заявки после получения данных транзакций, которые должны быть записаны в цепочку блоков (то есть данных транзакций, полученных посредством цепочки блоков), данные транзакций в первую очередь классифицируются в соответствии с типами транзакций и/или диапазонами изменения данных для формирования поднаборов транзакций, в результате чего данные транзакций без отношения зависимости транзакций разделяются в разные поднаборы транзакций, а данные транзакций с отношением зависимости транзакций помещаются в один и тот же поднабор транзакций. Разделение данных транзакций и определение поднаборов транзакций может быть реализовано посредством модуля компоновки данных транзакций, показанного на Фиг. 4. После того как модуль компоновки данных транзакций завершает разделение данных транзакций, модуль компоновки данных транзакций может распределять поднаборы транзакций на компьютеры в кластере исполнения данных транзакций для обработки данных. Каждый компьютер в кластере исполнения данных транзакций только исполняет данные транзакций в выделенном поднаборе транзакций, следует процессу верификации–реализации–записи в цепочке блоков, чтобы записать результат исполнения в цепочку блоков. В примерной реализации модуль компоновки данных транзакций и кластер исполнения данных транзакций также могут быть совместно истолкованы как кластер исполнения транзакций для реализации функций приема, классификации, распределения и исполнения данных транзакций, суммирования результатов исполнения данных транзакций и записи итоговых результатов исполнения в цепочку блоков.

Вариант осуществления 2

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

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

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

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

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

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

Данные № Тип операции Диапазон изменения данных Замечания
1 контракт идентификатор A Исполнение изменит данные идентификатора A
2 контракт идентификатор A Исполнение изменит данные идентификатора A
3 контракт идентификатор B Исполнение изменит данные идентификатора B
4 контракт идентификатор C Исполнение изменит данные идентификатора C
5 Передача Учетная запись X, Учетная запись Y Исполнение изменит данные учетной записи X и учетной записи Y
6 Передача Учетная запись Z, Учетная запись D Исполнение изменит данные учетной записи Z и учетной записи D
7 Передача Учетная запись X, Учетная запись M Исполнение изменит данные учетной записи X и учетной записи M
8 Передача Учетная запись N, Учетная запись L Исполнение изменит данные учетной записи N и учетной записи L

В соответствии с диапазонами изменения данных данных транзакций можно увидеть, что диапазоны изменения данных данных 3, 4, 6 и 8 транзакций не перекрывают диапазон изменения данных любых других данных транзакций. Следовательно, порядок исполнения этих фрагментов данных транзакций не затрагивает согласованность в состоянии базы данных. В результате параллельное исполнение этих фрагментов данных транзакций способствует повышению эффективности исполнения обработки данных, тем самым снижая затраты, необходимые для повышения эффективности исполнения обработки данных и улучшая расширяемость.

Вариант осуществления 3

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

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

модуль 102 определения поднабора транзакций, сконфигурированный для определения поднабора транзакций, которому принадлежат данные транзакций, в соответствии с типами транзакций и/или диапазонами изменения данных данных транзакций, причем не существует отношения зависимости транзакций между данными транзакций, принадлежащими к различным поднаборам транзакций; и

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

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

Вариант осуществления 4

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

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

В одном примере определение поднаборов транзакций, к которым принадлежат данные транзакций в соответствии с типами транзакций и/или диапазонами изменения данных данных транзакций, может содержать:

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

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

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

Определение поднаборов транзакций, к которым относятся данные транзакций, в соответствии с типами транзакций и диапазонами изменения данных транзакций, может дополнительно содержать:

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

определение поднабора уровня II, к которому принадлежат данные транзакций в соответствии с диапазонами изменения данных данных транзакций в поднаборе уровня I, и использование поднабора уровня II в качестве поднабора транзакций, причем поднабор уровня II является поднабором поднабора уровня I.

Подробная реализация настоящего варианта осуществления соответствует этапу S102 в варианте осуществления 1, и все соответствующие описания варианта осуществления 1 применимы к настоящему варианту осуществления, который не будет здесь описываться.

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

Настоящее изобретение описано со ссылкой на последовательности операций и/или блок–схемы способа, устройства (системы) и компьютерный программный продукт согласно вариантам осуществления настоящего изобретения. Следует понимать, что инструкция компьютерной программы может использоваться для реализации каждого процесса и/или блока в последовательностях операций и/или блок–схемах и комбинаций процессов и/или блоков в последовательностях операций и/или блок–схемах. Эти инструкции компьютерной программы могут предоставляться для компьютера общего назначения, компьютера специального назначения, встраиваемого процессора или процессора других программируемых устройств обработки данных, чтобы генерировать машину, вынуждая инструкции, исполняемые компьютером или процессором другого программируемого устройства обработки данных, генерировать аппаратуру для реализации функции, заданной в одном или более процессах в последовательностях операций и/или в одном или более блоках в блок–схемах.

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

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

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

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

Машиночитаемые носители включают в себя постоянные, энергозависимые, мобильные и неподвижные носители, которые могут осуществлять хранение информации любым способом или технологией. Информация может быть машиночитаемыми инструкциями, структурами данных, программными модулями или другими данными. Примеры носителей данных компьютеров включают в себя, но не ограничиваются ими, запоминающее устройство с произвольным доступом с изменением фазы (PRAM), статические запоминающие устройства с произвольным доступом (SRAM), динамические запоминающие устройства с произвольным доступом (DRA Ms), другие типы запоминающих устройств с произвольным доступом (RA Ms), Постоянные запоминающие устройства (ПЗУ), электрически стираемые программируемые постоянные запоминающие устройства (EEPROM), флэш–память или другие технологии памяти, постоянные запоминающие устройства на компакт–дисках (CD–ROM), цифровые универсальные диски (DVD) или другие оптические запоминающие устройства, кассеты, кассетные и дисковые запоминающие устройства или другие устройства с магнитной памятью, или любые другие не передающие носители, которые можно использовать для хранения информации, доступной для вычислительного устройства. Согласно определениям в описании машиночитаемые носители не включают в себя временные носители (временные носители), такие как модулированные сигналы данных и несущие.

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

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

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

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

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

назначение данных транзакций, из упомянутого множества фрагментов данных транзакций, с перекрывающимся диапазоном изменения данных в один и тот же поднабор транзакций уровня I, а данных транзакций, из упомянутого множества фрагментов данных транзакций, без перекрывающегося диапазона изменения данных - в разные поднаборы транзакций уровня I;

назначение данных транзакций, которые назначены в поднаборы транзакций уровня I, в один или более поднаборов транзакций уровня II согласно типу транзакции, причем для каждого из поднаборов транзакций уровня I фрагменты данных транзакций, в соответствующем поднаборе транзакций уровня I, с одним и тем же типом транзакции назначаются в один и тот же поднабор транзакций уровня II, а фрагменты данных транзакций, в соответствующем поднаборе транзакций уровня I, с разными типами транзакций назначаются в разные поднаборы транзакций уровня II; и

параллельное исполнение одного или более поднаборов транзакций уровня II и запись результата исполнения в цепочку блоков.

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

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

3. Способ по п.1, в котором:

каждый фрагмент из упомянутого множества фрагментов данных транзакций соответствует временной отметке, и

параллельное исполнение одного или более поднаборов транзакций уровня II содержит:

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

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

обход типов транзакций для каждого фрагмента данных транзакций в каждом из поднаборов транзакций уровня I;

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

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

5. Способ по п. 4, в котором существует соответствующее соотношение между упомянутым множеством фрагментов данных транзакций и временными отметками и обход типов транзакций содержит:

обход типов транзакций для каждого фрагмента данных транзакций в каждом из поднаборов транзакций уровня I во временном порядке, соответствующем временным отметкам в соответствии с временными отметками данных транзакций.

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

7. Способ по п. 6, в котором заранее установленный объем обработки данных определяют в соответствии с объемом данных, разрешенным для записи в цепочку блоков.

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

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

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

назначение данных транзакций, которые назначены в поднаборы транзакций уровня I, в один или более поднаборов транзакций уровня II согласно диапазону изменения данных, причем для каждого из поднаборов транзакций уровня I фрагменты данных транзакций, в соответствующем поднаборе транзакций уровня I, с перекрывающимся диапазоном изменения данных назначаются в один и тот же поднабор транзакций уровня II, а фрагменты данных транзакций, в соответствующем поднаборе транзакций уровня I, с неперекрывающимся диапазоном изменения данных назначаются в разные поднаборы транзакций уровня II;

параллельное исполнение одного или более поднаборов транзакций уровня II и запись результата исполнения в цепочку блоков.

9. Способ по п.8, в котором параллельное исполнение одного или более поднаборов транзакций уровня II содержит:

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

10. Способ по п.8, в котором:

каждый фрагмент из упомянутого множества фрагментов данных транзакций соответствует временной отметке, и

параллельное исполнение одного или более поднаборов транзакций уровня II содержит:

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

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

обход диапазонов изменения данных для каждого фрагмента данных транзакций в каждом из поднаборов транзакций уровня I;

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

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

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

обход диапазонов изменения данных для каждого фрагмента данных транзакций в каждом из поднаборов транзакций уровня I во временном порядке, соответствующем временным отметкам в соответствии с временными отметками данных транзакций.

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

14. Способ по п. 13, в котором заранее установленный объем обработки данных определяют в соответствии с объемом данных, разрешенным для записи в цепочку блоков.

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

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

назначение данных транзакций, из упомянутого множества фрагментов данных транзакций, с перекрывающимся диапазоном изменения данных в один и тот же поднабор транзакций уровня I, а данных транзакций, из упомянутого множества фрагментов данных транзакций, без перекрывающегося диапазона изменения данных - в разные поднаборы транзакций уровня I;

назначение данных транзакций, которые назначены в поднаборы транзакций уровня I, в один или более поднаборов транзакций уровня II согласно типу транзакции, причем для каждого из поднаборов транзакций уровня I фрагменты данных транзакций, в соответствующем поднаборе транзакций уровня I, с одним и тем же типом транзакции назначаются в один и тот же поднабор транзакций уровня II, а фрагменты данных транзакций, в соответствующем поднаборе транзакций уровня I, с разными типами транзакций назначаются в разные поднаборы транзакций уровня II; и

параллельное исполнение одного или более поднаборов транзакций уровня II и запись результата исполнения в цепочку блоков.

16. Система по п.15, в которой параллельное исполнение одного или более поднаборов транзакций уровня II содержит:

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

17. Система по п.15, в которой:

каждый фрагмент из упомянутого множества фрагментов данных транзакций соответствует временной отметке, и

параллельное исполнение одного или более поднаборов транзакций уровня II содержит:

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

18. Система по п.15, в которой назначение данных транзакций, которые назначены в поднаборы транзакций уровня I, в один или более поднаборов транзакций уровня II согласно типу транзакции содержит:

обход типов транзакций для каждого фрагмента данных транзакций в каждом из поднаборов транзакций уровня I;

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

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

19. Система по п. 18, в которой существует соответствующее соотношение между упомянутым множеством фрагментов данных транзакций и временными отметками и обход типов транзакций содержит:

обход типов транзакций для каждого фрагмента данных транзакций в каждом из поднаборов транзакций уровня I во временном порядке, соответствующем временным отметкам в соответствии с временными отметками данных транзакций.

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

21. Система по п. 20, в которой заранее установленный объем обработки данных определяется в соответствии с объемом данных, разрешенным для записи в цепочку блоков.

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

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

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

назначение данных транзакций, которые назначены в поднаборы транзакций уровня I, в один или более поднаборов транзакций уровня II согласно диапазону изменения данных, причем для каждого из поднаборов транзакций уровня I фрагменты данных транзакций, в соответствующем поднаборе транзакций уровня I, с перекрывающимся диапазоном изменения данных назначаются в один и тот же поднабор транзакций уровня II, а фрагменты данных транзакций, в соответствующем поднаборе транзакций уровня I, с неперекрывающимся диапазоном изменения данных назначаются в разные поднаборы транзакций уровня II; и

параллельное исполнение одного или более поднаборов транзакций уровня II и сохранение результатов исполнения в цепочку блоков.

23. Система по п.22, в которой параллельное исполнение одного или более поднаборов транзакций уровня II содержит:

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

24. Система по п.22, в которой:

каждый фрагмент из упомянутого множества фрагментов данных транзакций соответствует временной отметке, и

параллельное исполнение одного или более поднаборов транзакций уровня II содержит:

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

25. Система по п.22, в которой назначение данных транзакций, которые назначены в поднаборы транзакций уровня I, в один или более поднаборов транзакций уровня II согласно диапазону изменения данных содержит:

обход диапазонов изменения данных для каждого фрагмента данных транзакций в каждом из поднаборов транзакций уровня I;

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

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

26. Система по п. 25, в которой существует соответствующее соотношение между одним или более фрагментами данных транзакций и временными отметками и обход диапазонов изменения данных содержит:

обход диапазонов изменения данных для каждого фрагмента данных транзакций в каждом из поднаборов транзакций уровня I во временном порядке, соответствующем временным отметкам в соответствии с временными отметками данных транзакций.

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

28. Система по п. 27, в которой заранее установленный объем обработки данных определяется в соответствии с объемом данных, разрешенным для записи в цепочку блоков.



 

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

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

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

Изобретение относится к способу оценки инженерно-психологического подобия объектов управления. Для оценки подобия объектов производят регистрацию и анализ характеристик перемещений рычагов управления на целевом летательном аппарате (ЛА), для которого достигается подобие управления, и на оцениваемом объекте управления выполняют тестовый маневр на целевом ЛА с одновременной регистрацией перемещений рычагов управления на автономный карманный регистратор, затем тот же летчик выполняет тот же тестовый маневр на оцениваемом объекте управления, производят сравнение профилей распределения действий летчика на целевом и оцениваемом объектах управления определенным образом, принимается решение об инженерно-психологическом подобии сравниваемых объектов.

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

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

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

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

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

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

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