ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящая заявка относится к области техники связанных распределенных реестров (блокчейн) и, в частности, к способу и устройству для отправки информации о транзакциях и для проверки консенсуса.
УРОВЕНЬ ТЕХНИКИ
В области техники связанных распределенных реестров, узел связанных распределенных реестров, ответственный за выполнение проверки консенсуса над транзакциями, упоминается как узел консенсуса.
На фазе проверки консенсуса, узлу консенсуса, который инициирует проверку консенсуса, необходимо упаковывать информацию о транзакциях у транзакций, сформированных в течение периода времени, в предварительно обработанный блок и отправлять предварительно обработанный блок на другой узел консенсуса для проверки консенсуса, и другой узел консенсуса проверяет, включает ли в себя совокупность транзакций другого узла консенсуса всю информацию от транзакции из предварительно обработанного блока. Результат проверки состоит в том, что проверка консенсуса преуспевает, если совокупность транзакций включает в себя всю информацию о транзакциях из предварительно обработанного блока. Результат проверки состоит в том, что проверка консенсуса не удается, если совокупность транзакций не включает в себя всю информацию о транзакциях из предварительно обработанного блока. Впоследствии, узлы консенсуса достигают консенсуса, что информация о транзакциях в предварительно обработанном блоке действительна или недействительна, на основании результатов проверки узлов консенсуса над предварительно обработанным блоком и используют консенсус в результате выполнения проверки консенсуса узлами консенсуса над предварительно обработанным блоком. Поэтому, необходимо гарантировать, что информация о транзакциях, хранимая в совокупности транзакций узлов консенсуса, непротиворечива, чтобы сделать результат проверки консенсуса узлов консенсуса как можно более точным.
На фазе обработки транзакции, что касается разных транзакций, каждый узел консенсуса может служить в качестве узла обработки транзакции (который упоминается ниже как обрабатывающий узел) для получения информации о транзакциях у транзакции. Применительно к транзакции, необходимо, чтобы обрабатывающий узел, который соответствует транзакции, отправлял информацию о транзакциях на каждый другой узел консенсуса, и другой узел консенсуса, который принимает информацию о транзакциях, сохраняет информацию о транзакциях в совокупности транзакций другого узла консенсуса. Узлы консенсуса поддерживают непротиворечивую информацию о транзакциях, которая хранится в совокупностях транзакций узлов консенсуса, посредством такого способа.
Однако, так как нарушения нормального режима сети всегда неизбежны, нестабильность сети часто приводит к нестабильности передачи информации между узлами консенсуса, и некоторым узлам консенсуса может не удаваться принимать отправленную информацию. Например, обрабатывающий узел отправляет информацию о транзакциях на другие узлы консенсуса. Если происходит нарушение нормального режима сети, информация о транзакциях, отправленная обрабатывающим узлом на другие узлы консенсуса, может не быть принята всеми другими узлами консенсуса. Следовательно, информация о транзакциях, хранимая в совокупностях транзакций узлов консенсуса, не может сохранять непротиворечивость, тем самым, снижая точность результата проверки консенсуса узлов консенсуса.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Варианты осуществления настоящей заявки предусматривают способ и устройство для отправки информации о транзакциях и для проверки консенсуса, чтобы ослабить проблему, что точность результата проверки консенсуса узлов консенсуса снижается при использовании существующего способа для отправки информации о транзакциях и выполнения проверки консенсуса.
Для ослабления предыдущей технической проблемы, варианты осуществления настоящей заявки реализованы, как изложено ниже:
Вариант осуществления настоящей заявки предусматривает способ для отправки информации о транзакциях, где способ включает в себя следующее: получение, посредством узла консенсуса, информации о транзакциях; отправку информации о транзакциях на другой узел консенсуса; и повторно отправляют информацию о транзакциях на основании уведомления о несостоятельности проверки консенсуса при приме уведомления о несостоятельности проверки консенсуса, которое отправлено другим узлом консенсуса, и которое содержит идентификатор информации у информации о транзакциях.
Вариант осуществления настоящей заявки предусматривает способ для проверки консенсуса, где способ включает в себя следующее: прием, посредством узла консенсуса, предварительно обработанного блока, отправленного другим узлом консенсуса; выполнение проверки консенсуса над предварительно обработанным блоком на основании информации о транзакциях, хранимой в совокупности транзакций, и информации о транзакциях, включенной в предварительно обработанный блок; и в процессе проверки консенсуса, если определено, что по меньшей мере одного фрагмента информации о транзакциях, включенной в предварительно обработанный блок, не существует в совокупности транзакций, определение идентификатора информации у информации о транзакциях, отсутствующей в совокупности транзакций, в информации о транзакциях, включенной в предварительно обработанный блок, и отправку уведомления о несостоятельности проверки консенсуса, которое включает в себя идентификатор информации, на другие узлы консенсуса.
Вариант осуществления настоящей заявки предусматривает устройство для отправки информации о транзакциях, где устройство включает в себя следующее: модуль сбора данных, выполненный с возможностью получать информацию о транзакциях; первый модуль отправки, выполненный с возможностью отправлять информацию о транзакциях на другой узел консенсуса; и второй модуль отправки, выполненный с возможностью повторно отправлять информацию о транзакциях на основании уведомления о несостоятельности проверки консенсуса при приеме уведомления о несостоятельности проверки консенсуса, которое отправлено другим узлом консенсуса, и которое включает в себя идентификатор информации у информации о транзакциях.
Вариант осуществления настоящей заявки предусматривает устройство для проверки консенсуса, где устройство включает в себя следующее: модуль приема, выполненный с возможностью принимать предварительно обработанный блок, отправленный другим узлом консенсуса; модуль проверки консенсуса, выполненный с возможностью выполнять проверку консенсуса над предварительно обработанным блоком на основании информации о транзакциях, хранимой в совокупности транзакций, и информации о транзакциях, включенной в предварительно обработанный блок; и модуль отправки, выполненный с возможностью: в процессе проверки консенсуса, если определено, что по меньшей мере одного фрагмента информации о транзакциях, включенной в предварительно обработанный блок, не существует в совокупности транзакций, определять идентификатор информации у информации о транзакциях, отсутствующей в совокупности транзакций, в информации о транзакциях, включенной в предварительно обработанный блок, и отправлять уведомление о несостоятельности проверки консенсуса, которое включает в себя идентификатор информации, на другие узлы консенсуса.
Из технических решений, предусмотренных в предыдущих вариантах осуществления настоящей заявки, может быть видно, что, в вариантах осуществления настоящей заявки, если другому узлу консенсуса не удается принять информацию о транзакциях, отправленную обрабатывающим узлом на фазе обработки транзакции, другой узел консенсуса может отправлять уведомление о несостоятельности проверки консенсуса, которое включает в себя идентификатор консенсуса у информации о транзакциях, на обрабатывающий узел на фазе проверки консенсуса, если другой узел консенсуса определяет, что информации о транзакциях, включенной в предварительно обработанный блок, не существует в совокупности транзакций другого узла консенсуса, так что обрабатывающий узел повторно отправляет информацию о транзакциях на другой узел консенсуса. Согласно вариантам осуществления настоящей заявки, может быть в как можно большей степени гарантировано, что информация о транзакциях, хранимая в совокупности транзакций узлов консенсуса, непротиворечива и, таким образом, не снижается точность результата проверки консенсуса узлов консенсуса.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Чтобы яснее описать технические решения в вариантах осуществления настоящей заявки или в существующей технологии, нижеследующее кратко описывает прилагаемые чертежи, необходимые для описания вариантов осуществления или существующей технологии. Очевидно, что прилагаемые чертежи в нижеследующем описании показывают всего лишь некоторые варианты осуществления настоящей заявки, и рядовой специалист в данной области техники, кроме того, может получить другие чертежи из этих прилагаемых чертежей без творческих усилий.
Фиг. 1 - блок-схема последовательности операций способа, иллюстрирующая способ для отправки информации о транзакциях, согласно варианту осуществления настоящей заявки;
фиг. 2 - принципиальная схема, иллюстрирующая надежный механизм на фазе обработки транзакции, согласно варианту осуществления настоящей заявки;
фиг. 3 - блок-схема последовательности операций способа, иллюстрирующая способ для проверки консенсуса, согласно варианту осуществления настоящей заявки;
фиг. 4 - принципиальная схема, иллюстрирующая устройство для отправки информации о транзакциях, согласно варианту осуществления настоящей заявки; и
фиг. 5 - принципиальная схема, иллюстрирующая устройство для проверки консенсуса, согласно варианту осуществления настоящей заявки.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Варианты осуществления настоящей заявки предусматривают способ и устройство для отправки информации о транзакциях и для проверки консенсуса.
Чтобы побудить специалиста в данной области техники лучше понимать технические решения из настоящей заявки, нижеследующее ясно и полно описывает технические решения в вариантах осуществления настоящей заявки со ссылкой на прилагаемые чертежи в вариантах осуществления настоящей заявки. Очевидно, что описанные варианты осуществления являются всего лишь некоторыми, но не всеми из вариантов осуществления настоящей заявки. Все другие варианты осуществления, полученные рядовым специалистом в данной области техники на основании вариантов осуществления настоящей заявки без творческих усилий, будут подпадать под объем защиты настоящей заявки.
Технические решения, предусмотренные в вариантах осуществления настоящей заявки, подробно описаны ниже со ссылкой на прилагаемые чертежи.
Фиг. 1 - блок-схема последовательности операций способа, иллюстрирующая способ для отправки информации о транзакциях, согласно варианту осуществления настоящей заявки. Способ включает в себя следующие этапы:
S101. Узел консенсуса получает информацию о транзакциях.
В данном варианте осуществления настоящей заявки, информацией о транзакциях могут быть все подробности, вовлеченные в транзакцию, такие как адрес счета, сумма транзакции и тип транзакции.
На фазе обработки транзакции, узел консенсуса служит в качестве обрабатывающего узла и может принимать информацию о транзакциях, отправленную клиентским устройством. Клиентское устройство может быть клиентским устройством узла связанных распределенных реестров, которое участвует в транзакции. Безусловно, узел консенсуса может инициировать транзакцию самостоятельно и формировать информацию о транзакциях по транзакциях.
Ради легкости описания, узел обработки, описанный ниже, является узлом консенсуса, который обрабатывает транзакцию на фазе обработки, и является основной частью исполнения данного варианта осуществления настоящей заявки.
S102. Отправить информацию о транзакциях на другой узел консенсуса.
После получения информации о транзакциях, обрабатывающий узел сохраняет информацию о транзакциях в совокупности транзакций обрабатывающего узла и отправляет информацию о транзакциях на другой узел консенсуса, так чтобы другой узел консенсуса сохранял информацию о транзакциях в совокупности транзакций другого узла консенсуса после приема информации о транзакциях. Затем, на фазе проверки консенсуса, каждый узел консенсуса может проверять предварительно обработанный блок, определяя, включает ли в себя информация о транзакциях, хранимая в совокупности транзакций узла консенсуса, всю информацию о транзакциях из предварительно обработанного блока.
Другой узел консенсуса является узлом консенсуса, иным чем обрабатывающий узел. Совокупностью транзакций является база данных, используемая для хранения информации о транзакциях. Каждый узел консенсуса имеет свою собственную совокупность транзакций. Совокупность транзакции может быть построена в памяти узла консенсуса или внешней памяти узла консенсуса.
Стоит подчеркнуть, что каждый узел консенсуса может выполнять многозадачную обработку, то есть, одновременно обрабатывать транзакцию A и участвовать в проверке консенсуса над предварительно обработанным блоком (который не включает в себя транзакцию A), который включает в себя пакет информации о транзакциях. До тех пор, пока вычислительных возможностей достаточно, узел консенсуса может одновременно обрабатывать разные транзакции или выполнять проверку консенсуса с помощью множества процессов.
В данном варианте осуществления настоящей заявки, чтобы подробно описать, каким образом в как можно большей степени гарантировать, что каждый другой узел консенсуса принимает информацию о транзакциях у транзакции, фаза обработки транзакции и фаза проверки консенсуса описаны относительно информации о транзакциях одной и той же транзакции.
В данном варианте осуществления настоящей заявки, узел консенсуса может создавать порожденный поток операций для каждого другого узла консенсуса и отправлять информацию о транзакциях на другой узел консенсуса с помощью порожденного потока операций. Узел консенсуса может отправлять информацию о транзакциях с помощью порожденного потока операций, пользуясь технологии асинхронного вызова. После того, как информация о транзакциях отправлена, порожденный поток операций отменяется независимо от того, может ли другой узел консенсуса принять информацию о транзакциях. В качестве альтернативы, узел консенсуса может отправлять информацию о транзакциях, пользуясь технологией асинхронного вызова. После отправки информации о транзакциях, узел консенсуса продолжает использовать порожденный поток операций для ожидания приема ответного сигнала, возвращенного другим узлом консенсуса, после того, как другой узел консенсуса принимает информацию о транзакциях.
S103. Повторно отправить информацию о транзакциях на основании уведомления о несостоятельности проверки консенсуса при приеме уведомления о несостоятельности проверки консенсуса, которое отправлено другим узлом консенсуса, и которое включает в себя идентификатор информации у информации о транзакциях.
В данном варианте осуществления настоящего изобретения, уведомление о несостоятельности проверки консенсуса отправляется другим узлом консенсуса на следующей фазе проверки консенсуса. На фазе проверки консенсуса, узел консенсуса (который упоминается ниже как ведущий узел), который вызывает дает начало консенсусу, упаковывает информацию о транзакциях из пакета транзакций в совокупности транзакций узла консенсуса в предварительно обработанный блок и отправляет предварительно обработанный блок на узел консенсуса (который упоминается как узел реплики), иной чем ведущий узел, так что узлы консенсуса (ведущий узел и узел реплики) выполняют проверку консенсуса над предварительно обработанным блоком. Ведущий узел может выбираться узлами консенсуса или может быть задан случайным образом.
Стоит подчеркнуть, что данный вариант осуществления настоящей заявки выполняется обрабатывающим узлом на фазе обработки транзакции. В фазе проверки консенсуса, обрабатывающий узел может быть ведущим узлом или узлом реплики. Варианты осуществления не ограничены настоящей заявкой. В дополнение, другой узел консенсуса является узлом консенсуса, иным чем обрабатывающий узел на фазе обработки, а другой узел консенсуса обычно может быть узлом реплики или ведущим узлом.
Вкратце, идентичность каждого узла консенсуса может изменяться соответствующим образом после перехода из фазы обработки транзакции в фазу проверки консенсуса. Прежний обрабатывающий узел может становиться узлом реплики, а прежний другой узел консенсуса может становиться ведущим узлом.
В данном варианте осуществления настоящей заявки, при проверке предварительно обработанного блока, узел реплики сравнивает информацию о транзакциях из предварительно обработанного блока с информацией о транзакциях, хранимой в совокупности транзакций узла реплики. Если информация о транзакциях, хранимая в совокупности транзакций узла реплики, включает в себя всю информацию о транзакциях из предварительно обработанного блока, это указывает, что узел реплики успешно принимает информацию о транзакциях на предыдущей фазе обработки транзакции.
Если информация о транзакциях, хранимая в совокупности транзакций узла реплики, не включает в себя всю информацию о транзакциях из предварительно обработанного блока, другими словами, если какая-то информация о транзакциях из предварительно обработанного блока отсутствует в информации о транзакциях, хранимой в совокупности транзакций узла реплики, это указывает, что узел реплики не принял успешно информацию о транзакциях на предыдущей фазе обработки транзакции. В этом случае, проверка, выполняемая узлом реплики над предварительно обработанным блоком, претерпевает неудачу, и узел реплики широковещательно передает уведомление о несостоятельности проверки консенсуса, которое включает в себя идентификатор информации отсутствующей информации о транзакциях, на другие узлы реплики и ведущий узел. Каждый узел консенсуса, который принимает уведомление о несостоятельности проверки консенсуса, может контролировать совокупность транзакций узла консенсуса и отправлять информацию о транзакциях, которая соответствует идентификатору информации, на узел реплики, который отправляет уведомление о несостоятельности проверки консенсуса, если совокупность транзакций узла консенсуса хранит информацию о транзакциях, которая соответствует идентификатору информации, включенному в уведомление о несостоятельности проверки консенсуса (узел консенсуса успешно принимает информацию о транзакциях на фазе обработки транзакции, или узел консенсуса является обрабатывающим узлом).
Стоит подчеркнуть, что обычно есть очень большое количество фрагментов информации о транзакциях, включенной в предварительно обработанный блок, и информация о транзакциях обычно широковещательно передается разными обрабатывающими узлами. Поэтому, на фазе проверки консенсуса, каждому узлу консенсуса может недоставать какой-то информации о транзакциях, включенной в предварительно обработанный блок. Информация о транзакциях, которой недостает каждому узлу консенсуса, безусловно хранится в совокупности транзакций обрабатывающего узла, который изначально широковещательно передает информацию о транзакциях. В дополнение, информация о транзакциях, которой не достает каждому узлу консенсуса, может храниться в совокупности транзакций более чем одного другого узла консенсуса. Другими словами, на фазе проверки консенсуса, информация о транзакциях, которой недостает каждому узлу консенсуса, может компенсироваться с помощью совместного содействия других узлов консенсуса.
Например, есть пять узлов A, B, C, D и E консенсуса в сети связанных распределенных реестров. На фазе проверки консенсуса, A, который служит в качестве ведущего узла, формирует предварительно обработанный блок, и информацией о транзакциях, включенной в предварительно обработанный блок являются L, M и N. L широковещательно передается из E, когда E служит в качестве обрабатывающего узла, M широковещательно передается из A, когда A служит в качестве обрабатывающего узла, и N широковещательно передается из D, когда D служит в качестве обслуживающего узла. Допустим, что B и C не удается принять L на фазе обработки L, B и E не удается принять M на фазе обработки M, B не удается принять N на фазе обработки N. В этом случае, на фазе проверки консенсуса, после того, как A отправляет предварительно обработанный блока на B, C, D и E, B отправляет уведомление о несостоятельности проверки консенсуса, которое включает в себя идентификаторы информации L, M и N, на A, C, D и E, так как L, M и N отсутствуют в совокупности транзакций на B. По существу, B отдельно принимает L, M и N, отправленные из A; M и N, отправленные из C; L, M и N, отправленные из D; и L и N, отправленные из E. Другими словами, информация о транзакциях, отсутствующая в совокупности транзакций на B, может компенсироваться посредством содействия консенсусу из A, C, D и E.
В дополнение, вследствие нарушений нормального режима сети, все узлы консенсуса, которые принимают уведомление о несостоятельности проверки консенсуса, отправляют информацию о транзакциях на узел реплики с помощью процедуры компенсации. Фактически, может быть гарантировано, что узел реплики принимает информацию о транзакциях с большой вероятностью, тем самым, облегчая нарушения нормального режима сети и обеспечивая непротиворечивость совокупностей транзакций узлов консенсуса.
В заключение, в данном варианте осуществления настоящего изобретения, после отправки информации о транзакциях на другой узел консенсуса, независимо от того, принимает ли каждый другой узел консенсуса информацию о транзакциях, узел консенсуса может дожидаться фазы проверки консенсуса для повторной отправки, благодаря процедуре компенсации, информации о транзакциях на другой узел консенсуса, который отправляет уведомление о несостоятельности проверки консенсуса, на основании принятого уведомления о несостоятельности проверки консенсуса.
Может быть видно, что, согласно способу для отправки информации, показанному на фиг. 1, если другому узлу консенсуса не удается принять информацию о транзакциях, отправленную обрабатывающим узлом на фазе обработки транзакции, другой узел консенсуса может отправлять уведомление о несостоятельности проверки консенсуса, которое включает в себя идентификатор консенсуса у информации о транзакциях, на обрабатывающий узел на фазе проверки консенсуса, если другой узел консенсуса определяет, что информации о транзакциях, включенной в предварительно обработанный блок, не существует в совокупности транзакций другого узла консенсуса, так что обрабатывающий узел повторно отправляет информацию о транзакциях на другой узел консенсуса. Согласно данному варианту осуществления настоящей заявки, может быть в как можно большей степени гарантировано, что информация о транзакциях, хранимая в совокупности транзакций узлов консенсуса, непротиворечива и, таким образом, не снижается точность результата проверки консенсуса узлов консенсуса.
Кроме того, в данном варианте осуществления настоящей заявки, некоторые надежные механизмы могут использоваться на фазе обработки транзакции для повышения надежности отправки информации о транзакциях узлом консенсуса на другой узел консенсуса.
На этапе S102, узел консенсуса создает порожденный поток операций для каждого другого узла консенсуса и отправляет информацию о транзакциях на другой узел консенсуса с помощью порожденного потока операций; и повторно отправляет информацию о транзакциях на другой узел консенсуса с помощью порожденного потока операций, если определено, что другому узлу консенсуса не удается принять информацию о транзакциях, до тех по, пока не определено, что другой узел консенсуса принимает информацию о транзакциях, или не удовлетворено предопределенное условие прекращения отправки.
Определяется, что другой узел консенсуса принимает информацию о транзакциях, если определено, что ответный сигнал, возвращенный другим узлом консенсуса, принят с помощью порожденного потока операций в течение заданного периода времени. Определяется, что другому узлу консенсуса не удается принять информацию о транзакциях, если определено, что ответный сигнал, возвращенный другим узлом консенсуса, не принят с помощью порожденного потока операций в течение заданного периода времени.
Предопределенное условие прекращения отправки может быть следующим: Кратность отправки информации о транзакциях на другой узел консенсуса достигает предопределенной кратности, или время, истекшее после первого раза, когда информация о транзакциях была отправлена на другой узел консенсуса, не превышает предопределенную длительность. Предопределенная кратность и предопределенная длительность в настоящей заявке не ограничены.
Стоит отметить, что узел консенсуса может повторно отправлять информацию о транзакциях на другой узел консенсуса с помощью порожденного потока операций, каждый раз пользуясь следующим способом: Узел консенсуса может повторно отправлять информацию о транзакциях, как только определено, что предыдущая отправка претерпевает неудачу, или может ожидать конкретный временной интервал, чтобы отсрочить отправку. Конкретный временной интервал может конфигурироваться, и конкретный временной интервал для ожидания каждой повторной отправки может быть одинаковым или разным. Например, конкретный временной интервал постепенно возрастает или убывает.
Например, узел консенсуса создает порожденный поток операций для каждого другого узла консенсуса и сначала отправляет информацию о транзакциях на другой узел консенсуса с помощью порожденного потока операций. Повторная отправка информации о транзакциях продолжается в том же духе до тех пор, пока кратность не достигает предопределенной кратности, или время, истекшее после первого раза, когда информация о транзакциях была отправлена на другой узел консенсуса, не превышает предопределенную длительность.
В частности, в предыдущем примере, если кратность, с которой узел консенсуса отправляет информацию о транзакциях, достигает предопределенной кратности, узел консенсуса дополнительно может добавлять информацию о транзакциях в резервную очередь и создавать порожденный поток операций процедуры восстановления, используемый специально для сканирования резервной очереди. Процедура восстановления сканирует резервную очередь каждый конкретный временной интервал, чтобы идентифицировать информацию о транзакциях, и информация о транзакциях отправляется с помощью процедуры восстановления до тех пор, пока время, которое истекло после первого раза, когда информация о транзакциях была отправлена на другой узел консенсуса, не превышает предопределенную длительность. Безусловно, также может быть сконфигурирован конкретный временной интервал, который процедура восстановления сканирует резервную очередь. То есть, порожденный поток операций, чья кратность отправки информации о транзакциях достигает предопределенной кратности, отменяется для сбережения ресурсов узла консенсуса, информация о транзакциях добавляется в резервную очередь, и постоянно действующий порожденный поток операций процедуры восстановления ответственен за сканирование резервной очереди и отправку информации о транзакциях каждый конкретный временной интервал. По существу, растрата ресурсов, вызванная поддержкой относительно большого количества порожденных потоков операций узлом консенсуса, может быть уменьшена.
В предыдущем примере, узел консенсуса фактически отправляет информацию о транзакциях на другой узел консенсуса, пользуясь технологией вызова со слабой синхронизацией. После асинхронного вызова порожденного потока операций для каждого другого узла консенсуса, узел консенсуса отправляет информацию о транзакциях на другой узел консенсуса с помощью порожденного потока операций, пользуясь синхронным вызовом. Порожденный поток операций занимает вычислительный ресурс узла консенсуса, и узел консенсуса ожидает, с помощью порожденного потока операций, чтобы другой узел консенсуса возвратил ответный сигнал. В дополнение, если другому узлу консенсуса не удается вернуть ответный сигнал в течение заданного периода времени, это указывает, что другому узлу консенсуса не удается принять информацию о транзакциях, и узел консенсуса повторно отправляет информацию о транзакциях на другой узел консенсуса с помощью порожденного потока операций. По существу, с использованием технологии вызова со слабой синхронизацией на фазе обработки транзакции может делать ненужным, чтобы узел консенсуса откладывал на время более важные рабочие процессы, чтобы специально ожидать ответного сигнала, возвращенного другим узлом консенсуса, и узел консенсуса также может пользоваться порожденным потоком операций, который соответствует каждому другому узлу консенсуса, для ожидания ответного сигнала и для повторной отправки информации о транзакциях, тем самым, гарантируя, что другой узел консенсуса успешно принимает информацию о транзакциях.
В дополнение, в настоящем варианте осуществления настоящей заявки, когда предопределенное условие прекращения отправки удовлетворено, информация о транзакциях может добавляться в предопределенную очередь, если другой узел консенсуса все еще не возвращает ответный сигнал. При приеме уведомления о несостоятельности проверки консенсуса, в очереди отыскивается информация о транзакциях, которая соответствует идентификатору информации, на основании идентификатора информации, включенного в уведомление о несостоятельности проверки консенсуса, и информация о транзакциях отправляется.
Очередь является пространством для хранения в памяти узла консенсуса и выполнена с возможностью хранить информацию о транзакциях, которую узел консенсуса повторно пытается отправить на фазе обработки, но которая все еще не принята каждым другим узлом консенсуса. Информация о транзакциях, которую узел консенсуса повторно пытается отправить, но которую не удается принять, сохраняется в очереди, когда совокупность транзакций узла консенсуса не построена в памяти, так что узел консенсуса может быстрее отправлять информацию о транзакциях на другой узел консенсуса, которому недостает информации о транзакциях, на фазе проверки консенсуса.
В частности, когда совокупность транзакций не построена в памяти, на фазе проверки консенсуса, при приеме уведомления о несостоятельности проверки консенсуса, отправленного узлом реплики, узел консенсуса должен контролировать, включает ли в себя очередь узла консенсуса информацию о транзакциях, которой недостает узлу реплики, вместо контроля совокупности транзакций узла консенсуса; и может отправлять информацию о транзакциях на узел реплики, если очередь узла консенсуса включает в себя информацию о транзакциях, которой недостает узлу реплики; или не нуждается в отправке информации о транзакциях на узел реплики, если очередь узла консенсуса не включает в себя информацию о транзакциях, которой недостает узлу реплики (даже если совокупность транзакций узла консенсуса включает в себя транзакцию, которой недостает узлу реплики). По существу, если узлу реплики недостает информации X о транзакциях, всегда будет обеспечиваться, чтобы обрабатывающий узел, который широковещательно передает информацию X о транзакциях, получал информацию X о транзакциях из очереди обрабатывающего узла и отправлял информацию X о транзакциях. Поэтому, узел реплики, которому недостает информации о транзакции, всегда может быстро компенсироваться.
Фиг. 2 - принципиальная схема, иллюстрирующая надежный механизм на фазе обработки транзакции, согласно варианту осуществления настоящей заявки. Как показано на фиг. 2, на фазе обработки транзакции, обрабатывающий узел пытается отправить информацию о транзакциях на другой узел консенсуса, пользуясь способом, таким как задержка на 5 с или задержка на 10 минут, а способ для попытки отправлять информацию о транзакциях ограничивается. То есть, информация о транзакциях отправляется посредством использования большей задержки, когда кратность отправки является большей, чем 3. Информация о транзакциях добавляется в предопределенную очередь, и отправка прекращается, когда период действия информации о транзакциях (время, которое истекло после первого раза, когда информация о транзакциях отправлялась на другой узел консенсуса) превышает предопределенную длительность (например, один час). На фазе проверки консенсуса, узел консенсуса вводит в действие информацию о транзакциях в очереди, только при приеме уведомления о несостоятельности проверки консенсуса.
Стоит подчеркнуть, что предопределенная длительность может определяться на основании периода, в котором каждый узел консенсуса выполняет проверку консенсуса, или может определяться на основании периода устранения неполадок общей неисправности сети.
Согласно надежному механизму, показанному на фиг. 2, узел консенсуса задерживает попытку отправить информацию о транзакциях и, после того, как узел консенсуса повторно отправляет информацию о транзакциях спустя задержку в 5 с два раза, это указывает, что есть проблема с передачей, которая временно не может быть решена (которая может состоять в том, что другой узел консенсуса, который не принял успешно информация о транзакциях, выходит из строя, или происходит крупная неисправность в сети). Поэтому, узел консенсуса на время прекращает отправку информации о транзакциях на другой узел консенсуса. После ожидания в течение относительно длительного времени (например, 10 минут), проблема передачи могла быть сглажена, и тогда, узел консенсуса продолжает отправлять информацию о транзакциях. Если период действия информации о транзакциях слишком долог, информация о транзакциях может добавляться в предопределенную очередь, чтобы ожидать более поздней повторной отправки, с помощью процедуры компенсации, информации о транзакциях на другой узел консенсуса, которому недостает информации о транзакциях.
В данном варианте осуществления настоящей заявки, на фазе проверки консенсуса, узлы консенсуса совместно компенсируют каждый узел консенсуса, которому недостает информации о транзакциях, так чтобы проблема несовместимости совокупностей транзакций узлов консенсуса, которая вызвана нарушениями нормального режима сети, могла быть как следует уменьшена. На этой основе, согласно надежному механизму, показанному на фиг. 2, могут использоваться меры на фазе обработки транзакции для повышения доли успешных попыток приема информации о транзакциях другим узлом консенсуса.
Фиг. 3 - способ для проверки консенсуса согласно варианту осуществления настоящей заявки. Способ включает в себя следующие этапы:
S301. Узел консенсуса принимает предварительно обработанный блок, отправленный другим узлом консенсуса.
S302. Выполнить проверку консенсуса над предварительно обработанным блоком на основании информации о транзакциях, хранимой в совокупности транзакций, и информации о транзакциях, включенной в предварительно обработанный блок.
S303. В процессе проверки консенсуса, если определено, что по меньшей мере одного фрагмента информации о транзакциях, включенной в предварительно обработанный блок, не существует в совокупности транзакций, определять идентификатор информации у информации о транзакциях, отсутствующей в совокупности транзакций, в информации о транзакциях, включенной в предварительно обработанный блок.
S304. Отправлять уведомление о несостоятельности проверки консенсуса, которое включает в себя идентификатор информации, на другой узел консенсуса.
В данном варианте осуществления настоящей заявки, узел консенсуса является узлом консенсуса, который проверяет предварительно обработанный блок на фазе проверки консенсуса, а именно, узлом реплики. Другой узел консенсуса является узлом, который инициирует консенсус, а именно, ведущим узлом.
Подробное описание способа для проверки консенсуса, показанного на фиг. 3, было письменно зафиксировано в описании способа для отправки информации о транзакциях, показанного на фиг. 1. Подробности здесь опущены ради простоты.
На основании способа для отправки информации о транзакциях, показанного на фиг. 1, вариант осуществления настоящей заявки соответственно дополнительно предусматривает устройство для отправки информации о транзакциях. Как показано на фиг. 4, устройство включает в себя следующее: модуль 401 сбора данных, выполненный с возможностью получать информацию о транзакциях; первый модуль 402 отправки, выполненный с возможностью отправлять информацию о транзакциях на другой узел консенсуса; и второй модуль 403 отправки, выполненный с возможностью повторно отправлять информацию о транзакциях на основании уведомления о несостоятельности проверки консенсуса при приеме уведомления о несостоятельности проверки консенсуса, которое отправлено другим узлом консенсуса, и которое включает в себя идентификатор информации у информации о транзакциях.
Модуль 401 сбора данных выполнен с возможностью принимать информацию о транзакциях, отправленную клиентским устройством.
Первый модуль 402 отправки выполнен с возможностью создавать порожденный поток операций для каждого другого узла консенсуса и отправлять информацию о транзакциях на другой узел консенсуса с помощью порожденного потока операций.
Первый модуль 402 отправки выполнен с возможностью повторно отправлять информацию о транзакциях на другой узел консенсуса с помощью порожденного потока операций, если определено, что другому узлу консенсуса не удается принять информацию о транзакциях, до тех по, пока не определено, что другой узел консенсуса принимает информацию о транзакциях, или не удовлетворено предопределенное условие прекращения отправки.
Первый модуль 402 отправки выполнен с возможностью определять, что другой узел консенсуса принимает информацию о транзакциях, если определено, что ответный сигнал, возвращенный другим узлом консенсуса, принят с помощью порожденного потока операций в течение заданного периода времени; или определять, что другому узлу консенсуса не удается принять информацию о транзакциях, если определено, что ответный сигнал, возвращенный другим узлом консенсуса, не принят с помощью порожденного потока операций в течение заданного периода времени.
Предопределенное условие прекращения отправки может включать в себя следующее: Кратность отправки информации о транзакциях на другой узел консенсуса достигает предопределенной кратности, или время, истекшее после первого раза, когда информация о транзакциях была отправлена на другой узел консенсуса, не превышает предопределенную длительность.
Устройство дополнительно включает в себя модуль 404 добавления, выполненный с возможностью добавлять информацию о транзакциях в предопределенную очередь, когда удовлетворено предопределенное условие прекращения отправки.
Второй модуль 403 отправки выполнен с возможностью отыскивать в очереди информацию о транзакциях, которая соответствует идентификатору информации, на основании идентификатора информации, включенного в уведомление о несостоятельности проверки консенсуса, и отправлять информацию о транзакциях.
На основании способа для проверки консенсуса, показанного на фиг. 3, вариант осуществления настоящей заявки соответственно дополнительно предусматривает устройство для проверки консенсуса. Как показано на фиг. 5, устройство включает в себя следующее: модуль 501 приема, выполненный с возможностью принимать предварительно обработанный блок, отправленный другим узлом консенсуса; модуль 502 проверки консенсуса, выполненный с возможностью выполнять проверку консенсуса над предварительно обработанным блоком на основании информации о транзакциях, хранимой в совокупности транзакций, и информации о транзакциях, включенной в предварительно обработанный блок; и модуль 503 отправки, выполненный с возможностью: в процессе проверки консенсуса, если определено, что по меньшей мере одного фрагмента информации о транзакциях, включенной в предварительно обработанный блок, не существует в совокупности транзакций, определять идентификатор информации у информации о транзакциях, отсутствующей в совокупности транзакций, в информации о транзакциях, включенной в предварительно обработанный блок, и отправлять уведомление о несостоятельности проверки консенсуса, которое включает в себя идентификатор информации, на другие узлы консенсуса.
В 1990-ые, может быть ясно проведено различие, является ли техническое усовершенствование улучшением аппаратных средств (например, улучшением в отношении структуры схемы, таким как диод, транзистор или переключатель) или улучшением программного обеспечения (улучшением в отношении процедуре способа). Однако, по мере того, как технологии развиваются, текущие усовершенствования в отношении многих процедур способа могут рассматриваться в качестве непосредственных улучшений в отношении структур схемы аппаратных средств. Конструктор обычно программирует усовершенствованную процедуру способа в аппаратную схему для получения соответствующей структуры схемы аппаратных средств. Поэтому, процедура способа может быть улучшена посредством использования объектного модуля аппаратных средств. Например, программируемое логическое устройство (ПЛУ, PLD) (например, программируемая пользователем вентильная матрица (FPGA)) является такой интегральной схемой, и логическая функция ПЛУ определяются пользователем в результате программирования устройства. Конструктор выполняет программирование, чтобы «интегрировать» цифровую систему в единое ПЛУ, не требуя, чтобы производитель микросхем проектировал и выпускал специализированную интегральную микросхему. В дополнение, в настоящее время, вместо ручного производства интегральной микросхемы, такое программирование главным образом реализуется посредством использования программного обеспечения «логического компилятора». Программное обеспечение логического компилятора аналогично компилятору программного обеспечения, используемому для разработки и написания программы. Необходимо, чтобы исходный код был написан на конкретном языке программирования для компиляции. Язык упоминается как язык описания аппаратных схем (HDL). Есть много HDL, таких как усовершенствованный язык булевых выражений (ABEL), язык описания аппаратных схем Altera (AHDL), Confluence, язык программирования Корнелльского университета (CUPL), HDCal, язык описания аппаратных схем Lava (JHDL), Lava, Lola, MyHDL, PALASM и язык описания аппаратных схем Ruby (RHDL). Наиболее широко используются язык описания аппаратных схем на сверхбыстродействующих интегральных схемах (VHDL) и Verilog. Специалист в данной области техники также должен понимать, что аппаратная схема, которая реализует логическую процедуру способа, может быть без труда получена, как только процедура способа логически запрограммирована, пользуясь некоторыми описанными языками описания аппаратных схем, и запрограммирован в интегральную схему.
Контроллер может быть реализован посредством использования любого надлежащего способа. Например, контроллер может быть микропроцессором или процессором, и машинно-читаемым носителем, хранящим машинно-читаемую управляющую программу (такую как программное обеспечение или микропрограммное обеспечение), которая может приводиться в исполнение микропроцессором или процессором, логическим вентилем, переключателем, специализированной интегральной схемой (ASIC), программируемым логическим контроллером или встроенным микроконтроллером. Примеры контроллера включают в себя, но не в качестве ограничения, следующие микропроцессоры: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, и Silicone Labs C8051F320. Контроллер памяти также может быть реализован в виде части управляющей логики памяти. Специалист в данной области техники также осознает, что, в дополнение к реализации контроллера посредством использования машинно-читаемой управляющей программы, логическое программирование может быть выполнено над этапами способа, чтобы предоставить контроллеру возможность осуществлять одну и ту же функцию в качестве логического вентиля, переключателя, специализированной интегральной схемы, программируемого логического контроллера и встроенного микроконтроллера. Поэтому, контроллер может рассматриваться в качестве компонента аппаратных средств, а устройство, включенное в контроллер и выполненное с возможностью осуществлять различные функции, также может рассматриваться в качестве структуры в компоненте аппаратных средств. Или устройство, выполненное с возможностью осуществлять различные функции, может рассматриваться даже в качестве как программного модуля, реализующего способ, так и структуры в компоненте аппаратных средств.
Система, устройство, модуль или блок, проиллюстрированные в предыдущих вариантах осуществления, могут быть реализованы посредством использования компьютерной микросхемы или сущности, или могут быть реализованы посредством использования изделия, имеющего определенную функцию. Типичным устройством реализации является компьютер. Компьютером, например, может быть персональный компьютер, дорожный компьютер, сотовый телефон, телефон с камерой, смартфон, персональный цифровой секретарь, медиаплеер, навигационное устройство, устройство электронной почты, игровая консоль, планшетный компьютер, носимое устройство, или комбинация любых из этих устройств.
Ради легкости описания, устройство, приведенное выше, описано посредством разделения функций на различные блоки. Безусловно, когда настоящая заявка осуществляется, функции блоков могут быть реализованы в одном или более фрагментов программного обеспечения и/или аппаратных средств.
Специалист в данной области техники будет понимать, что вариант осуществления настоящего изобретения может быть предусмотрен в виде способа, системы или компьютерного программного продукта. Поэтому, настоящее изобретение может использовать форму исключительно аппаратных реализаций, исключительно программных реализаций или реализаций с комбинацией программного обеспечения и аппаратных средств. В дополнение, настоящее изобретение может использовать форму компьютерного программного продукта, который реализован на одном или более машинно-читаемых запоминающих носителей (в том числе, но не в качестве ограничения, дисковой памяти, CD-ROM, оптической памяти, и т. д.), которые заключают в себе используемую компьютером управляющую программу.
Настоящее изобретение описано со ссылкой на блок-схемы последовательности операций и/или структурные схемы способа, устройства (системы) и компьютерного программного продукта согласно реализациям настоящего изобретения. Следует понимать, что команды компьютерной программы могут использоваться для реализации каждого процесса и/или каждого блока на блок-схеме последовательности операций и/или структурных схемах, и комбинации процесса и/или блока на блок-схемах последовательности операций и/или структурных схемах. Эти команды компьютерной программы могут быть выполнены с возможностью, чтобы компьютер общего применения, специализированный компьютер, встроенный процессор или процессор другого программируемого устройства обработки данных формировал машину, так что команды, исполняемые компьютером или процессором другого программируемого устройства обработки данных формируют устройство для реализации заданной функции в одном или более процессов на блок-схемах последовательности операций и/или в одном или более блоков на структурных схемах.
Эти команды компьютерной программы могут храниться в машинно-читаемой памяти, которые могут инструктировать компьютер или другое программируемое устройство обработки данных работать определенным образом, так чтобы команды, хранимые в машинно-читаемой памяти, формировали искусственный объект, который включает в себя командоаппарат. Командоаппарат реализует конкретные функции в одном или более процессов на блок-схемах последовательности операций способа и/или в одном или более блоков на структурных схемах.
Эти команды компьютерной программы могут загружаться в компьютер или другое программируемое устройство обработки данных, так чтобы последовательности операций и действия, и этапы выполнялись на компьютере или другом программируемом устройстве, тем самым, порождая реализуемую компьютером обработку. Поэтому, команды, исполняемые на компьютере или другом программируемом устройстве, предусматривают этапы для реализации заданной функции в одном или более процессов на блок-схемах последовательности операций способа и/или в одном или более блоков на структурных схемах.
В типичной конфигурации, вычислительное устройство включает в себя один или более процессоров (ЦПУ, CPU), один или более интерфейсов ввода/вывода, один или более сетевых интерфейсов и одно или более устройств памяти.
Память может включать в себя непостоянную память, оперативное запоминающее устройство (ОЗУ, RAM), энергонезависимую память и/или другую форму, которые находятся на машинно-читаемом носителе, например, постоянное запоминающее устройство (ПЗУ, ROM) или флэш-память (ОЗУ на флэш-памяти). Память является примером машинно-читаемого носителя.
Машинно-читаемый носитель включает в себя постоянные, непостоянные, съемные и несъемные носители, которые могут хранить сообщения, пользуясь любыми способом или технологией. Сообщение может быть машинно-читаемой командой, структурой данных, программным модулем или другими данными. Примеры компьютерного запоминающего носителя включают в себя, но не в качестве ограничения, оперативное запоминающее устройство параметров (PRAM), статическое оперативное запоминающее устройство (SRAM), динамическое оперативное запоминающее устройство (DRAM) или другой тип оперативного запоминающего устройства (ОЗУ), постоянное запоминающее устройство (ПЗУ, ROM), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ, EEPROM), флэш-память или другую технологию памяти, постоянное запоминающее устройство на компакт диске (CD-ROM), цифровой многофункциональный диск (DVD) или другое оптическое запоминающее устройство, магнитную кассету магнитную ленту, память на магнитной ленте/магнитном диске, или другое магнитное запоминающее устройство или любой другой не связанный с передачей носитель, который может использоваться для хранения сообщений, к которым может осуществлять доступ вычислительное устройство. На основании определения в настоящем описании изобретения, машинно-читаемые носители не включают в себя эфемерные машинно-читаемые носители (эфемерные носители), такие как модулированный сигнал данных и несущая.
Дополнительно стоит отметить, что термины «включает в себя», «содержит» или любые другие их варианты подразумеваются покрывающими неисключительное включение, так что процесс, способ, изделие или устройство, которые включают в себя список элементов, включают в себя не только такие элементы, но также включают в себя другие элементы, которые не перечислены в прямой форме, или дополнительно включают в себя элементы, присущие таким процессу, способу, изделию или устройству. Без дополнительных ограничений, элемент, предваренный выражением «включает в себя...», не исключает существования дополнительных идентичных элементов в процессе, способе, изделии или устройстве, которые включают в себя элемент.
Специалист в данной области техники будет понимать, что вариант осуществления настоящей заявки может быть предусмотрен в виде способа, системы или компьютерного программного продукта. Поэтому, настоящая заявка может использовать форму исключительно аппаратных реализаций, исключительно программных реализаций или реализаций с комбинацией программного обеспечения и аппаратных средств. В дополнение, настоящая заявка может использовать форму компьютерного программного продукта, который реализован на одном или более машинно-читаемых запоминающих носителей (в том числе, но не в качестве ограничения, дисковой памяти, CD-ROM, оптической памяти, и т. д.), которые заключают в себе используемую компьютером управляющую программу.
Настоящая заявка может быть описана в общем контексте машинно-исполняемых команд, исполняемых компьютером, например, программного модуля. Как правило, программный модуль включает в себя процедуру, программу, объект, компонент, структуру данных, и т. д., исполняющие конкретную задачу или реализующие конкретный абстрактный тип данных. Настоящая заявка также может быть осуществлена на практике в распределенных вычислительных средах. В распределенных вычислительных средах, задачи выполняются удаленными устройствами обработки, соединенными через сеть связи. В распределенной вычислительной среде, программный модуль может быть расположен на запоминающих носителях, в том числе, запоминающих устройствах как локального, так и удаленного компьютера.
Варианты осуществления в настоящей заявке описаны последовательным образом. Что касается идентичных или сходных частей вариантов осуществления, может быть сделана ссылка на варианты осуществления. Каждый вариант осуществления ставит в центре внимания отличие от других реализаций. В частности, вариант осуществления системы в основном аналогичен варианту осуществления способа, а потому, описан кратко. Что касается функционально сходных частей, может быть сделана ссылка на связанные описания в варианте осуществления способа.
Предыдущие варианты осуществления являются вариантами осуществления настоящей заявки и не подразумеваются ограничивающими настоящую заявку. Специалист в данной области техники может произвести различные модификации и изменения в отношении настоящей заявки. Любая модификация, эквивалентная замена или усовершенствование, произведенные, не отходя от сущности и принципа настоящей заявки, будут подпадать под объем формулы изобретения в настоящей заявке.
Изобретение относится к вычислительной технике. Технический результат заключается в повышении точности результата проверки консенсуса узлов консенсуса. Компьютерно-реализуемый способ для отправки информации о транзакциях, в котором получают, посредством первого узла консенсуса, информацию о транзакциях; отправляют информацию о транзакциях на второй узел консенсуса; получают уведомление о несостоятельности проверки консенсуса от второго узла консенсуса, при этом уведомление о несостоятельности проверки консенсуса содержит идентификатор информации у информации о транзакциях, при этом уведомление о несостоятельности проверки консенсуса указывает на то, что по меньшей мере часть информации о транзакциях отсутствует в совокупности транзакций второго узла и что проверка информации о транзакциях завершена неудачей; и в ответ на определение того, что совокупность транзакций первого узла консенсуса хранит информацию о транзакциях, которая соответствует идентификатору информации, содержащемуся в уведомлении о несостоятельности проверки консенсуса, повторно отправляют, посредством первого узла консенсуса, информацию о транзакциях, которая соответствует идентификатору информации, на второй узел консенсуса. 3 н. и 17 з.п. ф-лы, 5 ил.
1. Компьютерно-реализуемый способ для отправки информации о транзакциях, содержащий этапы, на которых:
получают, посредством первого узла консенсуса, информацию о транзакциях;
отправляют информацию о транзакциях на второй узел консенсуса;
получают уведомление о несостоятельности проверки консенсуса от второго узла консенсуса, при этом уведомление о несостоятельности проверки консенсуса содержит идентификатор информации у информации о транзакциях, при этом уведомление о несостоятельности проверки консенсуса указывает на то, что по меньшей мере часть информации о транзакциях отсутствует в совокупности транзакций второго узла и что проверка информации о транзакциях завершена неудачей;
в ответ на получение уведомления о несостоятельности проверки консенсуса определяют, хранит ли совокупность транзакций первого узла консенсуса информацию о транзакциях, которая соответствует идентификатору информации, содержащемуся в уведомлении о несостоятельности проверки консенсуса; и
в ответ на определение того, что совокупность транзакций первого узла консенсуса хранит информацию о транзакциях, которая соответствует идентификатору информации, содержащемуся в уведомлении о несостоятельности проверки консенсуса, повторно отправляют, посредством первого узла консенсуса, информацию о транзакциях, которая соответствует идентификатору информации, на второй узел консенсуса.
2. Компьютерно-реализуемый способ по п. 1, в котором получение, посредством первого узла консенсуса, информации о транзакциях состоит в том, что:
получают, посредством первого узла консенсуса, информацию о транзакциях, от клиентского устройства.
3. Компьютерно-реализуемый способ по п. 1, в котором отправка информации о транзакциях на второй узел консенсуса состоит в том, что:
создают порожденный поток операций для каждого другого узла консенсуса; и
отправляют информацию о транзакциях на второй узел консенсуса посредством порожденного потока операций.
4. Компьютерно-реализуемый способ по п. 3, в котором отправка информации о транзакциях на второй узел консенсуса посредством порожденного потока операций состоит в том, что:
повторно отправляют информацию о транзакциях на второй узел консенсуса посредством порожденного потока операций в ответ на определение того, что второму узлу консенсуса не удается принять информацию о транзакциях, до тех пор, пока не определено, что второй узел консенсуса принимает информацию о транзакциях, или удовлетворено предопределенное условие прекращения отправки.
5. Компьютерно-реализуемый способ по п. 4, в котором определение того, что второй узел консенсуса принимает информацию о транзакциях, состоит в том, что:
определяют, что второй узел консенсуса принимает информацию о транзакциях, в ответ на определение того, что ответный сигнал, возвращенный вторым узлом консенсуса, принят посредством порожденного потока операций в течение заданного периода времени; и
при этом определение того, что второму узлу консенсуса не удается принять информацию о транзакциях, содержит:
определение того, что второму узлу консенсуса не удается принять информацию о транзакциях в ответ на определение того, что не получен ответный сигнал, возвращенный вторым узлом консенсуса, посредством порожденного потока операций в течение заданного периода времени.
6. Компьютерно-реализуемый способ по п. 4, в котором предопределенное условие прекращения отправки состоит в том, что:
кратность отправки информации о транзакциях на второй узел консенсуса достигает предопределенной кратности; или
время, которое истекло после первого раза, когда информация о транзакциях была отправлена на второй узел консенсуса, превышает предопределенную длительность.
7. Компьютерно-реализуемый способ по п. 4, в котором, в ответ на определение того, что предопределенное условие прекращения отправки удовлетворено, способ также содержит этапы, на которых:
добавляют информацию о транзакциях в предопределенную очередь; и
при этом повторная отправка информации о транзакциях на второй узел консенсуса, основанная на уведомлении о несостоятельности проверки консенсуса, содержит:
поиск предопределенной очереди для информации о транзакциях, которая соответствует идентификатору информации у информации о транзакциях, содержащемуся в уведомлении о несостоятельности проверки консенсуса; и
отправку информацию о транзакциях на второй узел консенсуса.
8. Компьютерно-реализуемый способ по п. 1, содержащий также этапы, на которых:
получают, посредством второго узла консенсуса, предварительно обработанный блок от первого узла консенсуса;
выполняют проверку консенсуса предварительно обработанного блока, основываясь на информации о транзакциях, сохраненной в совокупности транзакций второго узла консенсуса, и информации о транзакциях, содержащейся в предварительно обработанном блоке;
в ответ на определение того, что по меньшей мере часть информации о транзакциях, содержащаяся в предварительно обработанном блоке, не существует в совокупности транзакций второго узла консенсуса, определяют, посредством второго узла консенсуса, идентификатор информации у информации о транзакциях, содержащийся в предварительно обработанном блоке; и
отправляют, посредством второго узла консенсуса, уведомление о несостоятельности проверки консенсуса на первый узел консенсуса, при этом уведомление о несостоятельности проверки консенсуса содержит идентификатор информации у информации о транзакциях.
9. Постоянный машиночитаемый носитель, содержащий одну или более инструкций, исполняемых компьютерной системой, для выполнения операций, содержащих:
получение, посредством первого узла консенсуса, информации о транзакциях;
отправление информации о транзакциях на второй узел консенсуса;
получение уведомления о несостоятельности проверки консенсуса от второго узла консенсуса, при этом уведомление о несостоятельности проверки консенсуса содержит идентификатор информации у информации о транзакциях, при этом уведомление о несостоятельности проверки консенсуса указывает на то, что по меньшей мере часть информации о транзакциях отсутствует в совокупности транзакций второго узла и что проверка информации о транзакциях завершена неудачей;
в ответ на получение уведомления о несостоятельности проверки консенсуса определение того, хранит ли совокупность транзакций первого узла консенсуса информацию о транзакциях, которая соответствует идентификатору информации, содержащемуся в уведомлении о несостоятельности проверки консенсуса; и
в ответ на определение того, что совокупность транзакций первого узла консенсуса хранит информацию о транзакциях, которая соответствует идентификатору информации, содержащемуся в уведомлении о несостоятельности проверки консенсуса, повторное отправление, посредством первого узла консенсуса, информации о транзакциях, которая соответствует идентификатору информации, на второй узел консенсуса.
10. Постоянный машиночитаемый носитель по п. 9, в котором отправка информации о транзакциях на второй узел консенсуса состоит в том, что:
создают порожденный поток операций для каждого другого узла консенсуса; и
отправляют информацию о транзакциях на второй узел консенсуса посредством порожденного потока операций.
11. Постоянный машиночитаемый носитель по п. 10, в котором отправка информации о транзакциях на второй узел консенсуса посредством порожденного потока операций состоит в том, что:
повторно отправляют информацию о транзакциях на второй узел консенсуса посредством порожденного потока операций в ответ на определение того, что второму узлу консенсуса не удается принять информацию о транзакциях, до тех пор, пока не определено, что второй узел консенсуса принимает информацию о транзакциях, или удовлетворено предопределенное условие прекращения отправки.
12. Постоянный машиночитаемый носитель по п. 11, в котором определение того, что второй узел консенсуса принимает информацию о транзакциях, состоит в том, что:
определяют, что второй узел консенсуса принимает информацию о транзакциях, в ответ на определение того, что ответный сигнал, возвращенный вторым узлом консенсуса, принят посредством порожденного потока операций в течение заданного периода времени; и
при этом определение того, что второму узлу консенсуса не удается принять информацию о транзакциях, содержит:
определение того, что второму узлу консенсуса не удается принять информацию о транзакциях в ответ на определение того, что не получен ответный сигнал, возвращенный вторым узлом консенсуса, посредством порожденного потока операций в течение заданного периода времени.
13. Постоянный машиночитаемый носитель по п. 11, в котором предопределенное условие прекращения отправки состоит в том, что:
кратность отправки информации о транзакциях на второй узел консенсуса достигает предопределенной кратности; или
время, которое истекло после первого раза, когда информация о транзакциях была отправлена на второй узел консенсуса, превышает предопределенную длительность.
14. Постоянный машиночитаемый носитель по п. 11, в котором, в ответ на определение того, что предопределенное условие прекращения отправки удовлетворено, операции также содержат:
добавление информации о транзакциях в предопределенную очередь; и
при этом повторная отправка информации о транзакциях на второй узел консенсуса, основанная на уведомлении о несостоятельности проверки консенсуса, содержит:
поиск предопределенной очереди для информации о транзакциях, которая соответствует идентификатору информации у информации о транзакциях, содержащемуся в уведомлении о несостоятельности проверки консенсуса; и
отправку информации о транзакциях на второй узел консенсуса.
15. Постоянный машиночитаемый носитель по п. 9, в котором операции также содержат:
получение, посредством второго узла консенсуса, предварительно обработанного блока от первого узла консенсуса;
выполнение проверки консенсуса предварительно обработанного блока, основываясь на информации о транзакциях, сохраненной в совокупности транзакций второго узла консенсуса, и информации о транзакциях, содержащейся в предварительно обработанном блоке;
в ответ на определение того, что по меньшей мере часть информации о транзакциях, содержащаяся в предварительно обработанном блоке, не существует в совокупности транзакций второго узла консенсуса, определение, посредством второго узла консенсуса, идентификатора информации у информации о транзакциях, содержащегося в предварительно обработанном блоке; и
отправку, посредством второго узла консенсуса, уведомления о несостоятельности проверки консенсуса, на первый узел консенсуса, при этом уведомление о несостоятельности проверки консенсуса содержит идентификатор информации у информации о транзакциях.
16. Компьютерно-реализуемая система, содержащая:
один или более компьютер;
одно или более компьютерных запоминающих устройств, соединенных с возможностью взаимодействия с одним или несколькими компьютерами и имеющих материальные, постоянные, машиночитаемые носители информации, хранящие одну или более инструкций, которые при исполнении одним или более компьютерами выполняют одну или более операций, содержащих:
получение, посредством первого узла консенсуса, информации о транзакциях;
отправление информации о транзакциях на второй узел консенсуса;
получение уведомления о несостоятельности проверки консенсуса от второго узла консенсуса, при этом уведомление о несостоятельности проверки консенсуса содержит идентификатор информации у информации о транзакциях, при этом уведомление о несостоятельности проверки консенсуса указывает на то, что по меньшей мере часть информации о транзакциях отсутствует в совокупности транзакций второго узла и что проверка информации о транзакциях завершена неудачей;
в ответ на получение уведомления о несостоятельности проверки консенсуса определение того, хранит ли совокупность транзакций первого узла консенсуса информацию о транзакциях, которая соответствует идентификатору информации, содержащемуся в уведомлении о несостоятельности проверки консенсуса; и
в ответ на определение того, что совокупность транзакций первого узла консенсуса хранит информацию о транзакциях, которая соответствует идентификатору информации, содержащемуся в уведомлении о несостоятельности проверки консенсуса, повторное отправление, посредством первого узла консенсуса, информации о транзакциях, которая соответствует идентификатору информации, на второй узел консенсуса.
17. Компьютерно-реализуемая система по п. 16, в которой отправка информации о транзакциях на второй узел консенсуса состоит в том, что:
создают порожденный поток операций для каждого другого узла консенсуса; и
отправляют информацию о транзакциях на второй узел консенсуса посредством порожденного потока операций.
18. Компьютерно-реализуемая система по п. 17, в котором отправка информации о транзакциях на второй узел консенсуса посредством порожденного потока операций состоит в том, что:
повторно отправляют информацию о транзакциях на второй узел консенсуса посредством порожденного потока операций в ответ на определение того, что второму узлу консенсуса не удается принять информацию о транзакциях, до тех пор, пока не определено, что второй узел консенсуса принимает информацию о транзакциях, или удовлетворено предопределенное условие прекращения отправки.
19. Компьютерно-реализуемая система по п. 18, в которой определение того, что второй узел консенсуса принимает информацию о транзакциях, состоит в том, что:
определяют, что второй узел консенсуса принимает информацию о транзакциях, в ответ на определение того, что ответный сигнал, возвращенный вторым узлом консенсуса, принят посредством порожденного потока операций в течение заданного периода времени; и
при этом определение того, что второму узлу консенсуса не удается принять информацию о транзакциях, содержит:
определение того, что второму узлу консенсуса не удается принять информацию о транзакциях в ответ на определение того, что не получен ответный сигнал, возвращенный вторым узлом консенсуса, посредством порожденного потока операций в течение заданного периода времени.
20. Компьютерно-реализуемая система по п. 18, в котором предопределенное условие прекращения отправки состоит в том, что:
кратность отправки информации о транзакциях на второй узел консенсуса достигает предопределенной кратности; или
время, которое истекло после первого раза, когда информация о транзакциях была отправлена на второй узел консенсуса, превышает предопределенную длительность.
CN 106372868 A, 01.02.2017 | |||
Bitcoin Core "Compact Blocks FAQ", опубл | |||
Способ восстановления хромовой кислоты, в частности для получения хромовых квасцов | 1921 |
|
SU7A1 |
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
CN 106506146 A, 15.03.2017 | |||
СИСТЕМА И СПОСОБ НАДЕЖНОЙ ПРОВЕРКИ ДОСТОВЕРНОСТИ ТРАНЗАКЦИЙ | 2011 |
|
RU2580086C2 |
Авторы
Даты
2020-10-28—Публикация
2018-03-19—Подача