МОДУЛЬ ВИЗУАЛЬНОГО ПРОСМОТРА ЦЕПОЧКИ БЛОКОВ
MODULE FOR VISUAL VIEWING OF BLOCK CHAIN

[0001]
Системы распределенного реестра (DLS), которые также могут именоваться консенсусными сетями и/или сетями цепочек блоков, позволяют участвующим субъектам безопасно и неизменяемо хранить данные. DLS обычно именуют сетями цепочек блоков без ссылки на какой-либо конкретный случай использования. Примеры типов сетей цепочек блоков могут включать в себя общедоступные сети цепочек блоков, частные сети цепочек блоков и сети цепочек блоков консорциума. Общедоступная сеть цепочки блоков открыта для всех субъектов для использования DLS и участия в процессе консенсуса. Частную сеть цепочки блоков обеспечивают для некоторого конкретного субъекта, который централизованно контролирует разрешения на считывание и запись. Сеть цепочки блоков консорциума обеспечивается для выбранной группы субъектов, которые контролируют процесс консенсуса, и включает в себя уровень контроля доступа.
[0002]
Сеть цепочки блоков поддерживает одну или несколько цепочек блоков. Цепочка блоков представляет собой структуру данных для хранения данных, которая предотвращает фальсификацию и манипулирование данными со стороны злоумышленников (более подробно описано ниже). Данные, хранящиеся в цепочке блоков, могут включать в себя сложные значения, такие как хэш-значения, и просмотр данных цепочки блоков только в текстовом формате может быть сложным и не интуитивно понятным как для обладающих техническими знаниями пользователей, так и для пользователей, которые такими знаниями не обладают. Если информация о цепочке блоков отображается с использованием линейных списков информации, поиск информации и просмотр взаимосвязей между связанными данными могут быть затруднены. Продолжительный просмотр линейного списка информации может вызвать нежелательную зрительную усталость и расстройство.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0003]
Реализации этого описания включают в себя реализуемые компьютером способы для визуализации данных цепочки блоков. Более конкретно, реализации этого описания направлены на обеспечение браузера (модуля просмотра) цепочки блоков для графического просмотра и навигации по данным цепочки блоков. В некоторых реализациях действия включают в себя: прием от клиентского устройства запроса пользовательского интерфейса визуализации цепочки блоков; генерирование пользовательского интерфейса визуализации цепочки блоков на основе цепочки блоков, причем пользовательский интерфейс визуализации цепочки блоков включает в себя структуру графов цепочки, которая визуально изображает по меньшей мере часть цепочки блоков, и транзакционную информацию для транзакций, которые произошли в сети цепочки блоков; и обеспечение пользовательского интерфейса визуализации цепочки блоков для отображения на клиентском устройстве в ответ на запрос пользовательского интерфейса визуализации цепочки блоков.
[0004]
Другие реализации включают в себя соответствующие системы, устройства и компьютерные программы, выполненные с возможностью осуществления действий способов, закодированных на компьютерных запоминающих устройствах.
[0005]
Эти и другие реализации могут, при желании, включать в себя одну или несколько из следующих особенностей:
[0006]
Структура графов цепочки может включать в себя цепочку выбираемых представлений блоков, каждое из которых представляет некоторый блок в цепочке блоков. Запрос пользовательского интерфейса с деталями блока может быть принят в ответ на выбор пользователем некоторого конкретного представления блока, которое соответствует некоторому конкретному блоку в цепочке блоков. Информация о блоке для конкретного блока может быть извлечена из консенсусной версии цепочки блоков. Консенсусная версия цепочки блоков может быть определена на основе взаимодействия с узлами сети цепочки блоков. Например, веб-сервер, который является узлом сети цепочки блоков, может использовать критерии самой длинной цепочки и/или наиболее тяжеловесной цепочки, чтобы выбрать цепочку блоков в качестве консенсусной версии цепочки блоков из числа многочисленных возможных путей. Многочисленные возможные пути могут включать в себя разные блоки, принятые в разное время от разных узлов сети цепочки блоков. Пользовательский интерфейс с деталями блока может быть сгенерирован на основе извлеченной информации о блоке. Пользовательский интерфейс с деталями блока может быть обеспечен в ответ на запрос пользовательского интерфейса с деталями блока. Выбираемые представления блоков могут быть соединены выбираемыми связями и пользовательский интерфейс визуализации цепочки блоков может быть выполнен с возможностью изменения структуры графов цепочки в ответ на выбор пользователем некоторой конкретной выбираемой связи таким образом, чтобы выбираемое представление блока, которое является целью выбранной связи, позиционировалось вверху структуры графов цепочки. Транзакционная информация может включать в себя информацию о самых последних транзакциях, ассоциированных с консенсусной версией цепочки блоков. Транзакционная информация может включать в себя идентифицирующую транзакцию информацию для первой транзакции. Запроса пользовательского интерфейса с деталями транзакции для упомянутой первой транзакции может быть принят в ответ на выбор пользователем идентифицирующей транзакцию информации. Транзакционная информация для первой транзакции может быть извлечена с использованием консенсусной версии цепочки блоков. Пользовательский интерфейс с деталями транзакции может быть сгенерирован на основе транзакционной информации для упомянутой первой транзакции. Пользовательский интерфейс с деталями транзакции может быть обеспечен в ответ на запрос пользовательского интерфейса с деталями транзакции. Запрос пользовательского интерфейса со списком блоков может быть принят от клиентского устройства. Информация о блоке может быть извлечена из консенсусной версии цепочки блоков. Пользовательский интерфейс со списком блоков может быть сгенерирован на основе извлеченной информации о блоке. Пользовательский интерфейс со списком блоков может быть обеспечен в ответ на запрос пользовательского интерфейса со списком блоков. Запрос пользовательского интерфейса со списком транзакций может быть принят от клиентского устройства. Транзакционная информация может быть извлечена с использованием консенсусной версии цепочки блоков. Пользовательский интерфейс со списком транзакций может быть сгенерирован на основе извлеченной транзакционной информации. Пользовательский интерфейс со списком транзакций может быть обеспечен в ответ на запрос пользовательского интерфейса со списком транзакций. Запрос пользовательского интерфейса со списком учетных записей может быть принят от клиентского устройства. Информация об учетной записи для узлов сети цепочки блоков может быть извлечена с использованием консенсусной версии цепочки блоков. Пользовательский интерфейс со списком учетных записей может быть сгенерирован на основе извлеченной информации об учетной записи. Пользовательский интерфейс со списком учетных записей может быть обеспечен в ответ на запрос пользовательского интерфейса со списком учетных записей. Запрос пользовательского интерфейса со списком контрактов может быть принят от клиентского устройства. Информация о контракте может быть извлечена с использованием консенсусной версии цепочки блоков. Пользовательский интерфейс со списком контрактов может быть сгенерирован на основе извлеченной информации о контракте. Пользовательский интерфейс со списком контрактов может быть обеспечен в ответ на запрос пользовательского интерфейса со списком контрактов. Обновленная консенсусная версия цепочки блоков может быть идентифицирована. Пользовательский интерфейс визуализации обновленной цепочки блоков может быть сгенерирован на основе обновленной консенсусной версии цепочки блоков и обеспечен клиентскому устройству.
[0007]
Это описание также обеспечивает один или несколько долговременных считываемых компьютером носителей данных, связанных с одним или несколькими процессорами и хранящих инструкции, которые при исполнении упомянутым одним или несколькими процессорами побуждают один или несколько процессоров выполнять операции в соответствии с реализациями способов, раскрытых в данном документе.
[0008]
Это описание дополнительно обеспечивает систему для реализации способов, раскрытых в данном документе. Эта система включает в себя один или несколько процессоров и считываемый компьютером носитель данных, связанный с упомянутым одним или несколькими процессорами и хранящий инструкции, которые при исполнении упомянутым одним или несколькими процессорами побуждают один или несколько процессоров выполнять операции в соответствии с реализациями способов, раскрытых в данном документе.
[0009]
Понятно, что способы в соответствии с этим описанием могут включать в себя любую комбинацию аспектов и признаков, описанных в данном документе. Другими словами, способы в соответствии с этим описанием не ограничиваются комбинациями аспектов и признаков, конкретно описанными в данном документе, но также включают в себя любую комбинацию раскрытых аспектов и признаков.
[0010]
Детали одной или нескольких реализаций этого описания проиллюстрированы на прилагаемых чертежах и описаны в нижеследующем описании. Другие особенности и преимущества этого описания будут очевидны из описания и чертежей, а также из формулы изобретения.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0011]
ФИГ. 1 иллюстрирует пример среды, которая может быть использована для исполнения реализаций этого описания.
[0012]
ФИГ. 2 иллюстрирует пример концептуальной архитектуры в соответствии с реализациями этого описания.
[0013]
ФИГ. 3 иллюстрирует пример среды, которая может быть использована для исполнения реализаций этого описания.
[0014]
ФИГ. 4 иллюстрирует пример пользовательского интерфейса домашней страницы в соответствии с реализациями этого описания.
[0015]
ФИГ. 5 иллюстрирует пример пользовательского интерфейса со списком блоков в соответствии с реализациями этого описания.
[0016]
ФИГ. 6 иллюстрирует пример пользовательского интерфейса с деталями блока в соответствии с реализациями этого описания.
[0017]
ФИГ. 7 иллюстрирует пример пользовательского интерфейса со списком транзакций в соответствии с реализациями этого описания.
[0018]
ФИГ. 8 иллюстрирует пример пользовательского интерфейса со списком учетных записей в соответствии с реализациями этого описания.
[0019]
ФИГ. 9 иллюстрирует пример пользовательского интерфейса с деталями учетной записи в соответствии с реализациями этого описания.
[0020]
ФИГ. 10 иллюстрирует пример пользовательского интерфейса со списком контрактов в соответствии с реализациями этого описания.
[0021]
ФИГ. 11 иллюстрирует пример пользовательского интерфейса с деталями контракта в соответствии с реализациями этого описания.
[0022]
ФИГ. 12 иллюстрирует пример пользовательского интерфейса с деталями контракта для транзакций в соответствии с реализациями этого описания.
[0023]
ФИГ. 13 иллюстрирует пример пользовательского интерфейса с деталями контракта для кода контракта в соответствии с реализациями этого описания.
[0024]
ФИГ. 14 иллюстрирует пример процесса, который может быть исполнен в соответствии с реализациями этого описания.
[0025]
ФИГ. 15 иллюстрирует примеры модулей устройства в соответствии с реализациями этого описания.
[0026]
Одинаковые ссылочные обозначения на разных чертежах обозначают одинаковые элементы.
ПОДРОБНОЕ ОПИСАНИЕ
[0027]
Реализации этого описания включают в себя реализуемые компьютером способы для визуализации данных цепочки блоков. Более конкретно, реализации этого описания направлены на обеспечение браузера цепочки блоков для графического просмотра и навигации по данным цепочки блоков. В некоторых реализациях действия включают в себя: прием от клиентского устройства запроса пользовательского интерфейса визуализации цепочки блоков; генерирование пользовательского интерфейса визуализации цепочки блоков на основе цепочки блоков, причем пользовательский интерфейс визуализации цепочки блоков включает в себя структуру графов цепочки, которая визуально изображает по меньшей мере часть цепочки блоков, и транзакционную информацию для транзакций, которые произошли в сети цепочки блоков; и обеспечение пользовательского интерфейса визуализации цепочки блоков для отображения на клиентском устройстве в ответ на запрос пользовательского интерфейса визуализации цепочки блоков.
[0028]
Для обеспечения дополнительного контекста для реализаций этого описания, которые были кратко представлены выше, системы распределенного реестра (DLS), которые также могут именоваться консенсусными сетями (например, составленными из одноранговых узлов), и сети цепочек блоков, позволяют участвующим субъектам безопасно и неизменяемо проводить транзакции и хранить данные. Термин цепочка блоков используется в данном документе для общего обозначения DLS без ссылки на какой-либо конкретный вариант использования.
[0029]
Цепочка блоков представляет собой структуру данных, которая хранит транзакции таким образом, что транзакции являются неизменяемыми, и впоследствии могут быть верифицированы. Цепочка блоков включает в себя один или несколько блоков. Каждый блок в цепочке связан с предыдущим блоком, находящимся непосредственно перед ним в данной цепочке, путем включения криптографического хэша упомянутого предыдущего блока. Каждый блок также включает в себя временную метку, свой собственный криптографический хэш и одну или несколько транзакций. Транзакции, которые уже были верифицированы узлами сети цепочки блоков, хешируются и кодируются в дерево Меркла. Дерево Меркла представляет собой структуру данных, в которой данные в конечных узлах дерева хэшируются, и все хэши в каждой ветви дерева объединяются в корне этой ветви. Этот процесс продолжается по дереву вплоть до корня всего дерева, в котором сохраняется хеш, представляющий все данные в дереве. Хэш, предназначенный для транзакции, хранящейся в дереве, может быть быстро верифицирован посредством определения, соответствует ли он структуре дерева.
[0030]
В то время как цепочка блоков представляет собой структуру данных для хранения транзакций, сеть цепочки блоков представляет собой сеть вычислительных узлов, которые управляют, обновляют и поддерживают одну или несколько цепочек блоков. Как кратко представлено выше, сеть цепочки блоков может быть обеспечена как общедоступная сеть цепочки блоков, частная сеть цепочки блоков или сеть цепочки блоков консорциума. В общедоступной сети цепочки блоков процесс консенсуса контролируется узлами консенсусной сети. Например, сотни, тысячи и даже миллионы субъектов могут взаимодействовать с общедоступной сетью цепочки блоков, причем каждый из них управляет по меньшей мере одним узлом в общедоступной сети цепочки блоков. Соответственно, общедоступная сеть цепочки блоков может быть рассмотрена как общедоступная сеть по отношению к участвующим субъектам. В некоторых примерах большинство субъектов (узлов) должны подписывать каждый блок, чтобы этот блок был действительным и добавлялся в цепочку блоков (распределенный реестр) сети цепочки блоков. Примерные общедоступные сети цепочек блоков включают в себя конкретные одноранговые платежные сети, которые эффективно используют распределенный реестр, именуемый цепочкой блоков. Однако, как отмечено выше, термин «цепочка блоков» используется для общего обозначения распределенных реестров без конкретной ссылки на какую-либо конкретную сеть цепочки блоков.
[0031]
В общем, общедоступная сеть цепочки блоков поддерживает публичные транзакции. Публичная транзакция используется совместно всеми узлами в общедоступной сети цепочки блоков и хранится в глобальной цепочке блоков. Глобальная цепочка блоков представляет собой цепочку блоков, которая реплицируется на все узлы. Другими словами, по отношению к глобальной цепочке блоков все узлы находятся в состоянии идеального консенсуса. Для достижения консенсуса (например, соглашения о добавлении блока в цепочку блоков) в общедоступной сети цепочки блоков реализован протокол консенсуса. Примеры протоколов консенсуса включают в себя, без ограничения, доказательство выполнения работы (POW), доказательство доли владения (POS) и доказательство полномочий (POA). POW упоминается далее в данном документе как неограничивающий пример.
[0032]
В общем, частную сеть цепочки блоков обеспечивают для некоторого конкретного субъекта, который централизованно контролирует разрешения на считывание и запись. Субъект контролирует то, какие узлы могут участвовать в сети цепочки блоков. Следовательно, частные сети цепочки блоков обычно называют сетями закрытого типа, которые накладывают ограничения на то, кому разрешено участвовать в сети, и на их уровень участия (например, только в некоторых транзакциях). Различные типы механизмов контроля доступа могут быть использованы (например, голосование существующих участников в отношении добавления новых субъектов, регулирующий орган может контролировать допуск).
[0033]
В общем, сеть цепочки блоков консорциума является частной для участвующих субъектов. В сети цепочки блоков консорциума процесс консенсуса контролируется авторизованным набором узлов, в котором один или несколько узлов управляется соответствующим субъектом (например, финансовым учреждением, страховой компанией). Например, консорциум из десяти (10) субъектов (например, финансовые учреждения, страховые компании) может управлять сетью цепочки блоков консорциума, и при этом каждый из них управляет по меньшей мере одним узлом в сети цепочки блоков консорциума. Соответственно, сеть цепочки блоков консорциума может быть рассмотрена как частная сеть по отношению к участвующим субъектам. В некоторых примерах каждый субъект (узел) должен подписывать каждый блок, чтобы этот блок был действительным и добавлялся в цепочку блоков. В некоторых примерах по меньшей мере подмножество субъектов (узлов) (например по меньшей мере 7 субъектов) должны подписывать каждый блок, чтобы этот блок был действительным и добавлялся в цепочку блоков.
[0034]
Реализации этого раскрытия описаны в данном документе более подробно со ссылкой на сеть цепочки блоков, которая является общедоступной для участвующих субъектов. Предполагается, однако, что реализации этого описания могут быть реализованы в сети цепочки блоков любого подходящего типа.
[0035]
Реализации этого раскрытия описаны в данном документе более подробно с учетом вышеприведенного контекста. Более конкретно, как кратко представлено выше, реализации этого описания направлены на обеспечение браузера цепочки блоков для графического просмотра и навигации по данным цепочки блоков.
[0036]
Браузер цепочки блоков может быть обеспечен в качестве инструмента визуализации для просмотра информации цепочки блоков. Домашняя страница браузера цепочки блоков может отображать ключевые данные о цепочке блоков, в том числе информацию об узле, транзакционную информацию, информацию об учетной записи (счете) и информацию о контракте. Поскольку блоки являются важной частью информации цепочки блоков, информация о блоке может быть выделена для пользователя. Например, информация о блоке может быть отображена в браузере цепочки блоков в графической структуре, которая отображает графические соединения связанных блоков. Такой графический подход может привести к удобному и интуитивно понятному визуальному отображению взаимосвязи между блоками в цепочке блоков, позволяя пользователям визуально просматривать и осуществлять навигацию по структуре цепочки собственно цепочки блоков. Пользователь может выбирать графические связи, которые соединяют связанные блоки, чтобы осуществлять визуальную навигацию по цепочке блоков.
[0037]
Графическая структура может объединяться с содержащими текст представлениями. Например, информация о блоке может быть отображена непосредственно в графическом представлении блока, а дополнительные детали блока могут быть отображены в ответ на выбор представления блока. В браузере цепочки блоков пользователи могут выбрать идентифицирующую блок, учетную запись, транзакцию или контракт информацию, чтобы просмотреть детальную информацию о соответствующем блоке, учетной записи, транзакции или контракте. Браузер цепочки блоков может быть полезен как для пользователей, которые обладают техническими знаниями и осведомлены о деталях цепочки блоков, так и для пользователей, которые не очень знакомы с техническими деталями цепочки блоков.
[0038]
ФИГ. 1 иллюстрирует примерную среду 100, которая может быть использована для исполнения реализаций этого описания. В некоторых примерах примерная среда 100 позволяет субъектам участвовать в сети 102 цепочки блоков. Сеть 102 цепочки блоков может быть общедоступной, частной сетью цепочки блоков или сетью цепочки блоков консорциума. Примерная среда 100 включает в себя вычислительные устройства 106, 108 и сеть 110. В некоторых примерах сеть 110 включает в себя локальную сеть (LAN), глобальную сеть (WAN), Интернет или их комбинацию и соединяет веб-сайты, пользовательские устройства (например, вычислительные устройства) и внутренние системы. В некоторых примерах, к сети 110 может быть осуществлен доступ по проводной и/или беспроводной линии связи. В общем, сеть 110 представляет одну или несколько сетей связи. В некоторых случаях вычислительные устройства 106, 108 могут быть узлами системы облачных вычислений (не показана) или каждое вычислительное устройство 106, 108 может быть отдельной системой облачных вычислений, включающей в себя множество компьютеров, которые соединены друг с другом сетью и функционируют как распределенная система обработки.
[0039]
В проиллюстрированном примере каждая из вычислительных систем 106, 108 может включать в себя любую подходящую вычислительную систему, которая обеспечивает возможность участия в качестве узла в сети 102 цепочки блоков. Примерные вычислительные устройства включают в себя, без ограничения, сервер, настольный компьютер, ноутбук, планшетное вычислительное устройство и смартфон. В некоторых примерах вычислительные системы 106, 108 размещают одну или несколько реализуемых компьютером служб для взаимодействия с сетью 102 цепочки блоков. Например, вычислительная система 106 может размещать в себе реализуемые компьютером службы первого субъекта (например, пользователя A), такие как система управления транзакциями, которую первый субъект использует для управления своими транзакциями с одним или несколькими другими субъектами (например, другими пользователями). Вычислительная система 108 может размещать в себе реализуемые компьютером службы второго субъекта (например, пользователя B), такие как система управления транзакциями, которую второй субъект использует для управления своими транзакциями с одним или несколькими другими субъектами (например, другими пользователями). В примере на ФИГ. 1, сеть 102 цепочки блоков представлена как одноранговая сеть узлов, а вычислительные системы 106, 108 соответственно обеспечивают узлы первого субъекта и второго субъекта, которые участвуют в сети 102 цепочки блоков.
[0040]
ФИГ. 2 иллюстрирует примерную концептуальную архитектуру 200 в соответствии с реализациями этого описания. Примерная концептуальная архитектура 200 включает в себя уровень 202 субъекта, уровень 204 размещаемых служб и уровень 206 сети цепочки блоков. В проиллюстрированном примере уровень 202 субъекта включает в себя три субъекта: Entity_1 (E1), Entity_2 (E2) и Entity_3 (E3), причем каждый субъект имеет соответствующую систему 208 управления транзакциями.
[0041]
В проиллюстрированном примере уровень 204 размещаемых служб включает в себя интерфейсы 210 для каждой системы 210 управления транзакциями. В некоторых примерах соответствующая система 208 управления транзакциями осуществляет связь с соответствующим интерфейсом 210 по сети (например, сети 110 с ФИГ. 1) с использованием протокола (например, защищенного протокола передачи гипертекста (HTTPS)). В некоторых примерах каждый интерфейс 210 обеспечивает соединение связи между соответствующей системой 208 управления транзакциями и уровнем 206 сети цепочки блоков. Более конкретно, интерфейс 210 осуществляет связь с сетью 212 цепочки блоков уровня 206 сети цепочки блоков. В некоторых примерах связь между интерфейсом 210 и уровнем 206 сети цепочки блоков осуществляется с использованием удаленных вызовов процедур (RPC). В некоторых примерах интерфейсы 210 «размещают в себе» узлы сети цепочки блоков для соответствующих систем 208 управления транзакциями. Например, интерфейсы 210 обеспечивают интерфейс прикладного программирования (API) для доступа к сети 212 цепочки блоков.
[0042]
Как описано в данном документе, сеть 212 цепочки блоков обеспечивается как одноранговая сеть, включающая в себя множество узлов 214, которые неизменяемо записывают информацию в цепочку 216 блоков. Хотя схематически проиллюстрирована единственная цепочка 216 блоков, многочисленные копии этой цепочки 216 блоков обеспечиваются и поддерживаются в сети 212 цепочки блоков. Например, каждый узел 214 хранит копию цепочки блоков. В некоторых реализациях цепочка 216 блоков хранит информацию, ассоциированную с транзакциями, которые выполняются между двумя или более субъектами, участвующими в сети цепочки блоков.
[0043]
ФИГ. 3 иллюстрирует пример среды 300, которая может быть использована для исполнения реализаций этого описания. В некоторых примерах примерная среда 300 позволяет субъектам участвовать в сети 302 цепочки блоков. Примерная среда 300 включает в себя вычислительные устройства 304, 305, 306, 308, 310 и сеть 312. В некоторых примерах сеть 312 включает в себя локальную сеть (LAN), глобальную сеть (WAN), Интернет или их комбинацию и соединяет веб-сайты, пользовательские устройства (например, вычислительные устройства) и внутренние системы. В некоторых примерах, к сети 310 может быть осуществлен доступ по проводной и/или беспроводной линии связи.
[0044]
В проиллюстрированном примере каждая из вычислительных систем 304, 305 и 306 может включать в себя любую подходящую вычислительную систему, которая обеспечивает возможность участия в качестве узла в сети 302 цепочки блоков. Каждое из вычислительных устройств 304, 305 и 306 может хранить копию цепочки блоков, поддерживаемой сетью 302 цепочки блоков. Вычислительное устройство 304 может представлять собой или включать в себя веб-сервер, который выполнен с возможностью обеспечения браузера цепочки блоков для визуализации информации сети 302 цепочки блоков.
[0045]
В некоторых реализациях вычислительное устройство 304 не участвует в проверке блока, но контролирует сеть 302 цепочки блоков, чтобы определить, была ли достигнута консенсусная версия цепочки блоков другими участвующими узлами, в том числе вычислительными устройствами 305 и 306. Вычислительное устройство 304 может хранить консенсусную версию цепочки блоков для использования при генерировании пользовательского интерфейса визуализации цепочки блоков.
[0046]
Вычислительное устройство 304 может принимать запрос пользовательского интерфейса визуализации цепочки блоков от клиентского устройства, такого как вычислительное устройство 308 или вычислительное устройство 310. В некоторых реализациях узел сети 302 цепочки блоков может функционировать как клиентское устройство. Например, пользователь вычислительного устройства 306 может использовать браузер, работающий на вычислительном устройстве 306, для отправки запроса пользовательского интерфейса визуализации цепочки блоков на вычислительное устройство 304.
[0047]
В ответ на запрос пользовательского интерфейса визуализации цепочки блоков вычислительное устройство 304 может сгенерировать пользовательский интерфейс визуализации цепочки блоков (например, в виде веб-страницы) на основе сохраненной консенсусной версии цепочки блоков и отправить сгенерированный пользовательский интерфейс визуализации цепочки блоков на запрашивающее клиентское устройство. Если сеть 302 цепочки блоков является частной сетью цепочки блоков или сетью цепочки блоков консорциума, запрос пользовательского интерфейса визуализации цепочки блоков может включать в себя информацию пользовательской авторизации, которая может быть верифицирована вычислительным устройством 304 до того, как пользовательский интерфейс визуализации цепочки блоков будет сгенерирован и отправлен запрашивающему клиентскому устройству.
[0048]
Пользовательский интерфейс визуализации цепочки блоков может быть отображен на запрашивающем клиентском устройстве (например, как проиллюстрировано в виде отображаемого пользовательского интерфейса 314). Как более подробно описано ниже, отображаемый пользовательский интерфейс 314 может быть обновлен, чтобы отражать новую информацию в новой консенсусной версии цепочки блоков. Кроме того, взаимодействие пользователя с отображаемым пользовательским интерфейсом 314 может приводить к запросам других пользовательских интерфейсов, например для отображения списков блоков, деталей блока, списков транзакций, деталей транзакции, списков учетных записей, деталей учетной записи, списков контрактов, деталей контракта или страниц результатов поиска, получаемых в результате поиска пользователем информации о сети цепочки блоков.
[0049]
ФИГ. 4 иллюстрирует пример пользовательского интерфейса 400 домашней страницы в соответствии с реализациями этого описания. Пользовательский интерфейс 400 домашней страницы может быть начальной страницей, которая отображается, когда клиентское устройство отправляет запрос инструмента визуализации цепочки блоков на веб-сервер.
[0050]
Область 402 сводки отображает сводную информацию для сети цепочки блоков, в том числе общее количество 404 блоков, общее количество 406 транзакций, общее количество 408 контрактов и число 410 узлов. Контракты, которые могут называться смарт-контрактами, являются исполняемыми программами, которые хранятся в цепочке блоков и исполняются узлами сети цепочки блоков. Исполнение контрактов может привести к транзакциям сети цепочки блоков.
[0051]
Область 412 статуса узлов отображает сводную информацию для узлов сети цепочки блоков, в том числе идентификаторы узлов, информацию об адресе узла и информацию о статусе узла. График 414 статуса узлов указывает соотношение участвующих узлов, в котором заштрихованная часть 416 представляет неучаствующие узлы, а остальная часть графика 414 статуса узлов представляет участвующие узлы. Участвующие узлы участвуют в формировании консенсуса для сети цепочки блоков.
[0052]
Область 420 истории транзакций отображает информацию предыстории о последних транзакциях для сети цепочки блоков. Объем транзакции в день представлен на графике 422 объема транзакций. Как отмечено примечанием 424, 10.09.2018 в сети цепочки блоков произошло 170 транзакций.
[0053]
Область 430 блоков отображает информацию о блоках, включенных в консенсусную версию цепочки блоков. Структура 431 графов цепочки включает в себя представления 432, 434, 436 и 438 блоков, которые представляют набор блоков, которые могут быть, например, самыми последними блоками, которые подлежат добавлению к консенсусной версии цепочки блоков. Каждое представление 432, 434, 436 или 438 блока может отображать значение высоты блока и время генерации блока. Высота блока для блока может указывать количество блоков, которые предшествуют данному блоку в цепочке блоков.
[0054]
Дополнительная информация может быть отображена рядом с каждым представлением 432, 434, 436 или 438 блока. Например, для блока, соответствующего представлению 432 блока, отображаются хэш 440 блока, транзакционная информация 442 блока и информация 444 о потреблении газа блоком. Хеш 440 блока является хеш-значением содержимого блока, соответствующего представлению 432 блока. Транзакционная информация 442 блока указывает, что блок, соответствующий представлению 432 блоков, накопил пять транзакций за пять секунд перед тем, как он был добавлен в цепочку блоков. Информация 444 о потреблении газа блоком представляет вычислительное усилие, требуемое для исполнения контрактов, ассоциированных с блоком, соответствующим представлению 432 блока.
[0055]
Пользователь может выбрать конкретное представление 432, 434, 436 или 438 блока, чтобы запросить пользовательский интерфейс с деталями блока (обсуждается ниже со ссылкой на ФИГ. 6), который отображает детальную информацию для конкретного блока. Количество представлений блоков, отображаемых в области 430 блоков, может быть основано на размере экрана клиентского устройства. В некоторых реализациях пользователь может осуществлять прокрутку в области 430 блоков для просмотра других блоков в цепочке блоков. Ссылка 446 на просмотр всех блоков может быть выбрана для запроса пользовательского интерфейса со списком блоков (обсуждается ниже со ссылкой на ФИГ. 5), в котором пользователь может просматривать список блоков и осуществлять навигацию к конкретным блокам цепочки блоков.
[0056]
Пользователь может выбрать ссылку (например, ссылку 448) между представлениями блоков, чтобы изменять структуру 431 графов блоков в области 430 блоков. Например, если пользователь выбирает ссылку 448, представление 436 блока может быть расположено вверху структуры 431 графов цепочки, причем представления 432 и 434 блоков могут быть удалены из (например, больше не отображаться) области 430 блоков, а два других представления блоков, представляющих два блока, которые следуют за упомянутым представлением 438 блока, могут быть отображены в структуре графов цепочки ниже и соединенными с представлением 438 блока.
[0057]
Область 450 транзакций включает в себя транзакционную информацию для набора транзакций. Набор транзакций может быть, например, самым последним набором транзакций, которые произошли для цепочки блоков. В качестве другого примера, в некоторых реализациях пользователь может выбирать некоторое конкретное представление 432, 434, 436 или 438 блока (или элемент транзакционной информации для некоторого конкретного блока, например транзакционной информации 442), чтобы просматривать транзакции для соответствующего блока в области 450 транзакций.
[0058]
Различные детали транзакции могут быть отображены для каждой транзакции в области 450 транзакций. Например, для транзакции 452 отображаются идентификатор 454 транзакции, идентификатор 456 отправляющей учетной записи, идентификатор 458 принимающей учетной записи и временная метка 460 транзакции. Конкретная транзакция может быть выбрана для запроса пользовательского интерфейса с деталями транзакции (обсуждается ниже со ссылкой на ФИГ. 8), который отображает детальную информацию для конкретной транзакции. Ссылка 462 на просмотр всех транзакций может быть выбрана для запроса пользовательского интерфейса со списком транзакций (обсуждается ниже со ссылкой на ФИГ. 7), в котором пользователь может просматривать список транзакций.
[0059]
Пользовательский интерфейс 400 домашней страницы может быть выполнен с возможностью обновления, чтобы показывать информацию для обновленной консенсусной версии блокчейна. Например, узлы сети цепочки блоков могли согласовать обновленную консенсусную версию цепочки блоков с момента последнего обновления пользовательский интерфейса 400 домашней страницы. Пользовательский интерфейс 400 домашней страницы может быть выполнен с возможностью периодической (например, каждую минуту) отправки запроса на веб-сервер, чтобы запрашивать обновленный пользовательский интерфейс. Веб-сервер может определять, доступна ли обновленная консенсусная версия цепочки блоков, и если она доступна, отправлять обновленный пользовательский интерфейс 400 клиентскому устройству. В качестве другого примера, различные области или компоненты пользовательского интерфейса 400 домашней страницы могут быть выполнены с возможностью приема информационных обновлений (с новой информацией от веб-сервера) и обновления соответствующей области или компонента для показа обновленной информации. Веб-сервер может быть выполнен с возможностью принудительной передачи новой информации в пользовательский интерфейс 400 домашней страницы (или в конкретные области или компоненты) в ответ на определение того, что доступна новая консенсусная версия цепочки блоков.
[0060]
Пользовательский интерфейс 400 домашней страницы включает в себя заголовок 470 страницы. Заголовок 470 страницы включает в себя ссылку 472 на учетные записи, ссылку 474 на контракты, ссылку 476 на блоки и ссылку 478 на транзакции, которые позволяют пользователю осуществлять навигацию соответственно к пользовательскому интерфейсу со списком учетных записей (обсуждается ниже со ссылкой на ФИГ. 9), пользовательскому интерфейсу со списком контрактов (обсуждается ниже со ссылкой на ФИГ. 12), пользовательскому интерфейсу со списком блоков или пользовательскому интерфейсу со списком транзакций. Заголовок 470 страницы может быть отображен в каждом последовательно отображаемом пользовательском интерфейсе. При нахождении в пользовательском интерфейсе, отличном от пользовательского интерфейса 400 домашней страницы, ссылка 480 на домашнюю страницу, отображаемая в соответствующем заголовке страницы, может быть выбрана для возврата к пользовательскому интерфейсу 400 домашней страницы.
[0061]
Заголовок 470 страницы включает в себя поле 482 поиска, которое позволяет пользователю искать информацию, ассоциированную с сетью цепочки блоков. Например, поле 482 поиска может позволить пользователю ввести значение высоты блока или хеш-значение блока для поиска конкретного блока. Может быть показана страница результатов поиска, которая позволяет пользователю выбрать конкретный результат поиска блока, чтобы просмотреть детали блока (например, в пользовательском интерфейсе с деталями блока). Другие примеры поиска включают в себя поиск пользователем транзакции с использованием идентификатора транзакции или хеш-значения транзакции, поиск учетной записи с использованием идентификатора учетной записи или хеш-значения учетной записи или поиск контракта с использованием идентификатора контракта или хеш-значения контракта. Пользователь может кликнуть по соответствующему результату поиска, чтобы просмотреть конкретную транзакцию, учетную запись или контракт в соответствующем пользовательском интерфейсе с деталями транзакции, с деталями учетной записи или с деталями контракта.
[0062]
В некоторых реализациях пользовательский интерфейс 400 домашней страницы включает в себя одну или несколько опций фильтра. Например, пользователь может выбрать элемент 490 управления фильтром для просмотра доступных фильтров для области 430 блоков. Элемент 490 управления фильтром может обеспечить возможность фильтрации области 430 блоков, чтобы показать блоки, сгенерированные в некотором временном диапазоне, непустые блоки (например, отфильтровав пустые блоки) и т. д. В качестве другого примера пользователь может выбрать элемент 492 управления фильтром, чтобы просмотреть доступные фильтры для области 450 транзакций. Элемент 490 управления фильтром может обеспечить возможность фильтрации области 450 транзакций для показа транзакций, сгенерированных в некотором временном диапазоне, транзакций, ассоциированных с некоторой конкретной учетной записью, или транзакций, соответствующих другим критериям.
[0063]
ФИГ. 5 иллюстрирует примерный пользовательский интерфейс 500 со списком блоков в соответствии с реализациями этого описания. Пользовательский интерфейс 500 со списком блоков может быть сгенерирован веб-сервером, обеспечен запрашивающему клиентскому устройству и отображен на клиентском устройстве в ответ на выбор ссылки 446 на просмотр всех блоков в области 430 блоков пользовательского интерфейса 400 домашней страницы, или в ответ на выбор ссылки 476 на блоки в заголовке 470 страницы пользовательского интерфейса 400 домашней страницы или ссылки на блоки, представленной в другом пользовательском интерфейсе.
[0064]
Информация о блоке для блоков сети 102 цепочки блоков может быть отображена в пользовательском интерфейсе 500 со списком блоков на страницах. Предопределенное количество блоков (например, десять) может быть отображено на каждой странице. Область 502 навигации по страницам может обеспечивать возможность пользователю осуществлять навигацию на некоторую конкретную страницу или конфигурировать то, сколько блоков отображается на каждой странице. По умолчанию самый последний набор блоков может быть изначально отображен на первой странице. Информация о блоке для блоков на отображаемой в данный момент странице может быть отображена в списке 503 блоков. Каждая строка в списке 503 блоков соответствует некоторому конкретному блоку. Например, список 503 блоков включает в себя строку 504.
[0065]
Для каждого блока на отображаемой в данный момент странице в списке 503 блоков в соответствующей строке может быть отображена следующая информация: высота 505 блока, время 506 генерации блока, число 508 транзакций, объем 510 потребляемого газа и хеш 512 блока.
[0066]
Высота 505 блока для блока указывает количество блоков, которые предшествуют данному блоку в цепочке блоков. Высота 505 блока может быть использована для идентификации некоторого определенного блока. Например, строка 504 включает в себя высоту 516 блока, составляющую 170468.
[0067]
Время 506 генерации блока для блока указывает время, когда данный блок был добавлен узлом в сеть цепочки блоков. Например, время 518 генерации блока указывает, что блок, ассоциированный со строкой 504, был сгенерирован в 14:26:14 11.08.2018.
[0068]
Число 508 транзакций для блока указывает, сколько транзакций включено в данный блок. Например, число 520 транзакций указывает, что данный блок, ассоциированный со строкой 504, включает в себя пять транзакций.
[0069]
Объем 510 потребляемого газа для блока указывает объем вычислительных усилий, требуемых для исполнения контрактов, ассоциированных с блоком. Например, строка 504 включает в себя значение 522 потребления газа, составляющее 200. Если у блока нет контрактов, объем потребляемого газа может быть равен нулю.
[0070]
Хеш 512 блока для блока является хеш-значением содержимого данного блока. Например, строка 504 включает в себя хеш-значение 524 блока, которое начинается с «d8fc5856051ba6314e9e4fef5207d53580».
[0071]
Пользователь может выбрать некоторый конкретный блок для просмотра пользовательского интерфейса с деталями блока для выбранного блока. Например, для выбора блока пользователь может выбрать значение высоты блока, например высоту 516 блока, или хеш-значение блока, например хеш-значение 524 блока. В качестве другого примера, в некоторых реализациях каждая строка списка 503 блоков (в том числе строка 504) является выбираемой единицей, и пользовательский интерфейс с деталями блока для блока, ассоциированного с выбранной строкой, может быть отображен в ответ на выбор выбранной строки. Определенная строка может быть выбрана, например, щелчком мыши или нажатием в пределах данной строки.
[0072]
ФИГ. 6 иллюстрирует примерный пользовательский интерфейс 600 с деталями блока в соответствии с реализациями этого описания. Пользовательский интерфейс 600 с деталями блока может быть сгенерирован веб-сервером, обеспечен запрашивающему клиентскому устройству и отображен на клиентском устройстве в ответ на выбор блока в пользовательском интерфейсе 500 со списком блоков или пользовательском интерфейсе 400 домашней страницы, или выбор блока или идентифицирующей блок информации в другом пользовательском интерфейсе.
[0073]
Следующая информация может быть отображена для выбранного блока: идентификатор 601 блока, хэш 602 блока, время 604 генерации блока, статус 606 транзакции, высота 607 блока, хэш 608 предыдущего блока, объем 610 потребляемого блоком газа, корень 612 транзакций, корень 614 записей о транзакциях и корень 616 статуса.
[0074]
Как описано выше, хэш 602 блока является хеш-значением содержимого блока, время 604 генерации блока указывает время, когда данный блок был добавлен узлом в сеть цепочки блоков, высота 607 блока указывает количество блоков, которые предшествуют данному блоку в цепочке блоков, а объем 610 потребляемого блоком газа указывает объем вычислительных усилий, требуемых для исполнения контрактов, ассоциированных с данным блоком.
[0075]
Статус 606 транзакции отображает статус транзакции, которая привела к генерации данного блока. Хеш 608 предыдущего блока является хеш-значением блока, который предшествует данному блоку в цепочке блоков. В некоторых реализациях выбор хэша 608 предыдущего блока может привести к отправке на веб-сервер запроса пользовательского интерфейса 600 с обновленными деталями блока, который показывает детали для блока, имеющего хэш 608 предыдущего блока.
[0076]
Корень 612 транзакций представляет собой хэш корневого узла дерева транзакций, которое включает в себя транзакции, перечисленные в данном блоке. Корень 614 записей о транзакциях представляет собой хеш-значение корня дерева записей о транзакциях для данного блока. Дерево записей о транзакциях включает в себя записи о транзакциях, исполненных в данном блоке. Запись о транзакции для транзакции включает в себя информацию, полученную в результате исполнения данной транзакции. Записи о транзакциях генерируются после обработки транзакции и включают в себя пост-транзакционную информацию. Корень 616 состояния представляет собой хеш-значение корня дерева состояний для данного блока. Дерево состояний включает в себя информацию о состоянии каждой исполненной транзакции, ассоциированной с данным блоком. Дерево состояний может быть сгенерировано после того, как все транзакции блока были исполнены и финализированы.
[0077]
ФИГ. 7 иллюстрирует примерный пользовательский интерфейс 700 со списком транзакций в соответствии с реализациями этого описания. Пользовательский интерфейс 700 со списком транзакций может быть сгенерирован веб-сервером, обеспечен запрашивающему клиентскому устройству и отображен на клиентском устройстве в ответ на выбор ссылки 462 на просмотр всех транзакций в области 450 транзакций пользовательского интерфейса 400 домашней страницы, или в ответ на выбор ссылки 478 на транзакции в заголовке 470 страницы пользовательского интерфейса 400 домашней страницы или ссылки на транзакции, представленной в другом пользовательском интерфейсе.
[0078]
Транзакционная информация может быть отображена в пользовательском интерфейсе 700 со списком транзакций на страницах. Предопределенное количество транзакций (например, десять) может быть отображено на каждой странице. Область 702 навигации по страницам может обеспечивать возможность пользователю осуществлять навигацию на некоторую конкретную страницу или конфигурировать то, сколько транзакций отображается на каждой странице. По умолчанию самый последний набор транзакций может быть изначально отображен на первой странице. Транзакционная информация для транзакций на отображаемой в данный момент странице может быть отображена в списке 703 транзакций. Каждая строка в списке 703 транзакций соответствует некоторой конкретной транзакции. Например, список 703 транзакций включает в себя строку 704.
[0079]
Для каждой транзакции на отображаемой в данный момент странице в списке 703 транзакций в соответствующей строке может быть отображена следующая информация: хэш 705 транзакции, тип 706 транзакции, высота 708 блока, номер 710 инициирующей учетной записи, номер 712 принимающей учетной записи, статус 714 транзакций, сумма 716 транзакции и временная отметка 718 транзакции.
[0080]
Хэш 705 транзакции для транзакции является уникальным идентификатором для данной транзакции. Например, строка 704 включает в себя хеш-значение 720 транзакции, которое начинается с «0fa72825313af97b».
[0081]
Тип 706 транзакции для транзакции указывает тип данной транзакции. Например, транзакция, ассоциированная со строкой 704, имеет тип 722 транзакции «Вызов Контракта», указывающий, что данная транзакция, ассоциированная со строкой 704, была инициирована исполнением контракта. Типы транзакций могут быть из предопределенного набора типов транзакций. Другие типы транзакций могут включать в себя «транзакцию», которая указывает, что транзакция была инициирована учетной записью, ассоциированной с узлом сети цепочки блоков (а не инициирована в результате исполнения контракта).
[0082]
Высота 708 блока для транзакции представляет собой высоту блока для блока, который включает в себя данную транзакцию. Например, транзакция, ассоциированная со строкой 704, имеет высоту 724 блока, составляющую 149270.
[0083]
Номер 710 инициирующей учетной записи для транзакции является номером учетной записи (номером счета) собственно учетной записи, которая инициировала данную транзакцию. Например, транзакция, ассоциированная со строкой 704, имеет номер 726 инициирующей учетной записи, который начинается с «e7d3e769f3f593dad».
[0084]
Номер 712 принимающей учетной записи для транзакции является номером учетной записи собственно учетной записи, которая является получателем данной транзакции. Например, транзакция, ассоциированная со строкой 704, имеет номер 728 принимающей учетной записи, который начинается с «87e89abb4c1c551f».
[0085]
Статус 714 транзакции для транзакции указывает значение статуса для данной транзакции. Например, транзакция, ассоциированная со строкой 704, имеет значение 730 статуса транзакции - «успешная». Значения статуса транзакции могут быть из предопределенного набора значений статуса транзакции. Другие значения статуса транзакции могут включать в себя значения, которые указывают, что транзакция находится в состоянии ожидания, была неуспешной или находится в каком-либо другом состоянии.
[0086]
Сумма транзакции для транзакции представляет собой сумму, ассоциированную с данной транзакцией. Например, транзакция, ассоциированная со строкой 704, имеет сумму 732 транзакции, составляющую 10.
[0087]
Временная метка транзакции для транзакции указывает время, когда данная транзакция была сгенерирована. Например, транзакция, ассоциированная со строкой 704, имеет временную метку 734 транзакции, которая указывает, что данная транзакция произошла в 20:42:45 11.07.2018. Хотя это не показано, в некоторых реализациях пользовательский интерфейс с деталями транзакции может быть отображен в ответ на выбор идентификатора транзакции, который отображает значения для некоторой конкретной транзакции.
[0088]
ФИГ. 8 иллюстрирует примерный пользовательский интерфейс 800 со списком учетных записей в соответствии с реализациями этого описания. Пользовательский интерфейс 800 со списком учетных записей может быть сгенерирован веб-сервером, обеспечен запрашивающему клиентскому устройству и отображен на клиентском устройстве в ответ на выбор ссылки 472 на учетные записи в заголовке 470 страницы в пользовательском интерфейсе 400 домашней страницы, или ссылки на учетные записи, представленной в других пользовательских интерфейсах.
[0089]
Информация об учетной записи может быть отображена в пользовательском интерфейсе 800 со списком учетных записей на страницах. Предопределенное количество учетных записей (например, десять) может быть отображено на каждой странице. Область 802 навигации по страницам может обеспечивать возможность пользователю осуществлять навигацию на некоторую конкретную страницу или конфигурировать то, сколько учетных записей отображается на каждой странице. По умолчанию набор недавно созданных учетных записей может быть изначально отображен на первой странице. В качестве другого примера, учетные записи могут быть отсортированы по номеру учетной записи, и изначально отображаемый набор учетных записей может представлять собой набор учетных записей, имеющих номера учетных записей с наименьшими (или наивысшими) значениями номера учетной записи. Информация об учетной записи для учетных записей на отображаемой в данный момент странице может быть отображена в списке 803 транзакций. Каждая строка в списке 803 учетных записей соответствует некоторой конкретной учетной записи. Например, список 803 транзакций включает в себя строку 804.
[0090]
Для каждого блока на отображаемой в данный момент странице в списке 803 учетных записей в соответствующей строке может быть отображена следующая информация: номер 805 учетной записи, баланс 806 учетной записи, статус 808 учетной записи, число 810 транзакций и хеш 812 транзакции создания учетной записи.
[0091]
Номер 805 учетной записи для учетной записи может быть открытым ключом, ассоциированным с данной учетной записью. Например, учетная запись, ассоциированная со строкой 804, имеет номер 814 учетной записи, который начинается с «6f2656b6d6cfc42ef2753beb2cb0f7ca321».
[0092]
Баланс 806 учетной записи для учетной записи является значением баланса учетной записи для данной учетной записи в сети цепочки блоков. Например, учетная запись, ассоциированная со строкой 804, имеет значение 816 баланса учетной записи, составляющее 210.
[0093]
Статус 808 учетной записи для учетной записи представляет собой статус, ассоциированный с данной учетной записью. Например, учетная запись, ассоциированная со строкой 804, имеет статус 818 учетной записи - «Нормальная».
[0094]
Число 810 транзакций для учетной записи указывает, в каком числе транзакций данная учетная запись участвовала с момента ее создания. Например, учетная запись, ассоциированная со строкой 804, имеет число 820 транзакций, равное трем.
[0095]
Хэш 812 транзакции создания учетной записи для учетной записи представляет собой идентификатор транзакции, которая была исполнена для создания данной учетной записи. Например, учетная запись, ассоциированная со строкой 804, имеет хэш 822 транзакции создания учетной записи, который начинается с «bdcf9174635807c69e0611ac666ee6774». Пользовательский интерфейс с деталями транзакции (например, пользовательский интерфейс 800 с деталями транзакции) может быть отображен в ответ на выбор хеш-значения транзакции создания учетной записи, такого как хеш-значение 822 транзакции создания учетной записи.
[0096]
Пользователь может выбрать некоторую конкретную учетную запись для просмотра пользовательского интерфейса с деталями учетной записи для выбранной учетной записи. Например, чтобы выбрать учетную запись, пользователь может выбрать номер учетной записи, такой как номер 814 учетной записи. В качестве другого примера, в некоторых реализациях каждая строка списка 803 учетных записей (в том числе строка 804) является выбираемой единицей, и пользовательский интерфейс с деталями учетной записи для учетной записи, ассоциированной с выбранной строкой, может быть отображен в ответ на выбор выбранной строки. Определенная строка может быть выбрана, например, щелчком мыши или нажатием в пределах данной строки.
[0097]
ФИГ. 9 иллюстрирует примерный пользовательский интерфейс 900 с деталями учетной записи в соответствии с реализациями этого описания. Пользовательский интерфейс 900 с деталями учетной записи может быть сгенерирован веб-сервером, обеспечен запрашивающему клиентскому устройству и отображен на клиентском устройстве в ответ на выбор учетной записи в пользовательском интерфейсе 900 со списком учетных записей или выбор учетной записи или идентифицирующей учетную запись информации в другом пользовательском интерфейсе. Значения 902 и 904 адреса учетной записи указывают, какая учетная запись была выбрана до отображения пользовательского интерфейса 900 с деталями учетной записи. Значения 902 и 904 адреса учетной записи могут представлять собой открытый ключ, ассоциированный с выбранной учетной записью.
[0098]
Хэш 906 транзакции создания учетной записи представляет собой идентификатор транзакции, которая была исполнена для создания выбранной учетной записи. Баланс 908 учетной записи указывает значение баланса учетной записи для выбранной учетной записи в сети цепочки блоков. Статус 910 учетной записи представляет собой статус, ассоциированный с выбранной учетной записью. Число 912 транзакций указывает, в каком числе транзакций выбранная учетная запись участвовала с момента ее создания.
[0099]
Время 914 восстановления указывает время, когда выбранная учетная запись была восстановлена. Ключ 916 восстановления представляет собой криптографический ключ, который был использован для восстановления выбранной учетной записи. Открытый ключ 918 представляет собой открытый криптографический ключ, ассоциированный с учетной записью и используемый для идентификации учетной записи в сети цепочки блоков. Вес 920 представляет собой вес (например, вес Хэмминга), ассоциированный с открытым ключом 918. Ссылка 922 на список транзакций может быть выбрана для просмотра транзакций, ассоциированных с учетной записью.
[00100]
ФИГ. 10 иллюстрирует примерный пользовательский интерфейс 1000 со списком контрактов в соответствии с реализациями этого описания. Пользовательский интерфейс 1000 со списком контрактов может быть сгенерирован веб-сервером, обеспечен запрашивающему клиентскому устройству и отображен на клиентском устройстве в ответ на выбор ссылки 475 на контракты в заголовке 470 страницы в пользовательском интерфейсе 400 домашней страницы, или ссылки на контракты, представленной в других пользовательских интерфейсах.
[00101]
Информация о контракте может быть отображена в пользовательском интерфейсе 1000 со списком контрактов на страницах. Предопределенное количество контрактов (например, десять) может быть отображено на каждой странице. Область 1002 навигации по страницам может обеспечивать возможность пользователю осуществлять навигацию на некоторую конкретную страницу или конфигурировать то, сколько контрактов отображается на каждой странице. По умолчанию набор недавно созданных (или исполненных) контрактов может быть изначально отображен на первой странице. В качестве другого примера, контракты могут быть отсортированы по идентификатору контракта, и изначально отображаемый набор контрактов может представлять собой контракты, имеющие набор идентификаторов контрактов с наименьшими (или наивысшими) значениями идентификаторов контрактов. Информация о контракте для контрактов на отображаемой в данный момент странице может быть отображена в списке 1003 контрактов. Каждая строка в списке 1003 контрактов соответствует некоторому конкретному контракту. Например, список 1003 контрактов включает в себя строку 1004.
[00102]
Для каждого контракта на отображаемой в данный момент странице в списке 1003 контрактов в соответствующей строке может быть отображена следующая информация: идентификатор 1005 контракта, баланс 1006, статус 1008 контракта, число 1010 транзакций, хеш 1012 транзакции создания контракта и хеш 1014 кода.
[00103]
Идентификатор 1005 контракта для контракта может быть уникальным идентификатором для данного контракта. Например, контракт, ассоциированный со строкой 1004, имеет идентификатор 1015 контракта, который начинается с «03732bc6062b51ce62acd80cc993a79fd1». Идентификатор 1005 контракта для контракта может быть хэш-значением информации о контракте, ассоциированной с данным контрактом.
[00104]
Баланс 1006 для контракта является значением баланса для контракта в сети цепочки блоков. Например, контракт, ассоциированный со строкой 1004, имеет значение 1016 баланса, составляющее 10.
[00105]
Статус 1008 контракта для контракта представляет собой статус, ассоциированный с данным контрактом. Например, контракт, ассоциированный со строкой 1004, имеет статус 1018 контракта - «Нормальный». Статус 1008 контракта для контракта может отражать результат последнего исполнения данного контракта. Статус 1018 контракта может быть предопределенным значением из числа других предопределенных значений статуса контракта.
[00106]
Число 1010 транзакций для контракта указывает, сколько транзакций было создано в результате исполнения контракта. Например, контракт, ассоциированный со строкой 1004, имеет число 1020 транзакций, равное четырем.
[00107]
Хэш 1012 транзакции создания контракта для контракта представляет собой идентификатор транзакции, которая была исполнена для создания данного контракта. Например, контракт, ассоциированный со строкой 1004, имеет хэш-значение 1022 транзакции создания контракта, которое начинается с «a1ebbbd6831febb8d3c27b303a7d81200». Пользовательский интерфейс с деталями транзакции (например, пользовательский интерфейс 800 с деталями транзакции) может быть отображен в ответ на выбор хеш-значения транзакции создания контракта, такого как хеш-значение 1022 транзакции создания контракта.
[00108]
Пользователь может выбрать некоторый конкретный контракт для просмотра пользовательского интерфейса с деталями контракта для выбранного контракта. Например, чтобы выбрать контракт, пользователь может выбрать идентификатор контракта, такой как идентификатор 1015 контракта. В качестве другого примера, в некоторых реализациях каждая строка списка 1003 контракта (в том числе контракта 1004) является выбираемой единицей, и пользовательский интерфейс с деталями контракта для контракта, ассоциированного с выбранной строкой, может быть отображен в ответ на выбор выбранной строки. Определенная строка может быть выбрана, например, щелчком мыши или нажатием в пределах данной строки.
[00109]
ФИГ. 11 иллюстрирует примерный пользовательский интерфейс 1100 с деталями контракта в соответствии с реализациями этого описания. Пользовательский интерфейс 1100 с деталями контракта может быть сгенерирован веб-сервером, обеспечен запрашивающему клиентскому устройству и отображен на клиентском устройстве в ответ на выбор контракта в пользовательском интерфейсе 1200 со списком контрактов или выбор контракта или идентифицирующей контракт информации в другом пользовательском интерфейсе. Значения 1102 и 1104 идентификатора контракта указывают, какой контракт был выбрана до отображения пользовательского интерфейса 1100 с деталями контракта. Каждое из значений 1102 и 1104 идентификатора контракта может однозначно идентифицировать выбранный контракт.
[00110]
Баланс 1106 контракта указывает значение баланса контракта для выбранного контракта в сети цепочки блоков. Статус 1108 контракта представляет собой статус, ассоциированный с выбранным контрактом. Число 1110 транзакций указывает, сколько транзакций было создано в результате исполнения выбранного контракта. Хэш 1112 транзакции создания контракта представляет собой идентификатор транзакции, которая была исполнена для создания выбранного контракта. Хэш-значение 1114 кода является хэш-значением кода, ассоциированного с представленным контрактом.
[00111]
Открытый ключ 1116 является открытым ключом, используемым для авторизации. Вес 1118 представляет собой вес (например, вес Хэмминга), ассоциированный с открытым ключом 1116.
[00112]
ФИГ. 12 иллюстрирует примерный пользовательский интерфейс 1200 с деталями контракта в соответствии с реализациями этого описания. Список 1201 транзакций может быть сгенерирован веб-сервером, обеспечен запрашивающему клиентскому устройству и отображен на клиентском устройстве в ответ на выбор ссылки 1202 на список транзакций. Список 1201 транзакций отображает транзакционную информацию для транзакций, которые были созданы в результате исполнения выбранного контракта, имеющего идентификатор 1203 контракта. Каждая строка в списке 1201 транзакций соответствует некоторой конкретной транзакции. Например, список 1203 транзакций включает в себя строку 1204.
[00113]
Транзакционная информация может быть отображена в списке 1201 транзакций на страницах. Предопределенное количество транзакций (например, десять) может быть отображено на каждой странице. Область 1206 навигации по страницам может обеспечивать возможность пользователю осуществлять навигацию на некоторую конкретную страницу или конфигурировать то, сколько транзакций отображается на каждой странице. По умолчанию самый последний набор транзакций, сгенерированных от исполнения контракта, может быть изначально отображен на первой странице.
[00114]
Для каждой транзакции на отображаемой в данный момент странице в списке 1201 транзакций в соответствующей строке может быть отображена следующая информация: хэш 1208 транзакции, высота 1210 блока, номер 1212 инициирующей учетной записи, номер 1214 принимающей учетной записи и сумма 1216 транзакции.
[00115]
Хэш 1208 транзакции для транзакции является уникальным идентификатором для данной транзакции. Например, строка 1204 включает в себя хеш-значение 1218 транзакции, которое начинается с «0f04e67cc26a8895a5b97b».
[00116]
Высота 1210 блока для транзакции представляет собой высоту блока для блока, который включает в себя данную транзакцию. Например, транзакция, ассоциированная со строкой 1204, имеет высоту 1220 блока, составляющую 86375.
[00117]
Номер 1212 инициирующей учетной записи для транзакции является номером учетной записи (номером счета) собственно учетной записи, которая инициировала данную транзакцию. Например, транзакция, ассоциированная со строкой 1204, имеет номер 1222 инициирующей учетной записи, который начинается с «c60a9d48105950a0cca07a».
[00118]
Номер 1214 принимающей учетной записи для транзакции является номером учетной записи собственно учетной записи, которая является получателем данной транзакции. Например, транзакция, ассоциированная со строкой 1204, имеет номер 1224 принимающей учетной записи, который начинается с «03732bc6062b51ce62acd8».
[00119]
Сумма транзакции для транзакции представляет собой сумму, ассоциированную с данной транзакцией. Например, транзакция, ассоциированная со строкой 1204, имеет сумму 1226 транзакции, составляющую 100.
[00120]
ФИГ. 13 иллюстрирует примерный пользовательский интерфейс 1300 с деталями контракта в соответствии с реализациями этого описания. Область 1302 кода контракта может быть отображена в ответ на выбор ссылки 1304 на код контракта. Область 1302 кода контракта может показывать код контракта (например, байт-код) для контракта с идентификатором 1306 контракта. Пользователь может выбрать элемент 1308 управления пользовательским интерфейсом, чтобы выбрать файл кода контракта, который включает в себя код контракта. В качестве другого примера пользователь может ввести ссылку на файл кода контракта в области 1310 ввода. Пользователь может выбрать элемент 1312 управления пользовательским интерфейсом для отправки, чтобы отправить файл кода контракта, который был выбран с использованием элемента 1308 управления пользовательским интерфейсом или который указан в области 1310 ввода.
[00121]
ФИГ. 14 иллюстрирует примерный процесс 1400, который может быть исполнен в соответствии с реализациями этого описания. Для ясности изложения последующее описание в целом описывает примерный процесс 1400 в контексте других фигур в этом описании. Однако будет понятно, что примерный процесс 1400 может быть выполнен, например, любой системой, средой, программным обеспечением и аппаратным обеспечением или комбинацией систем, сред, программного обеспечения и аппаратного обеспечения, в зависимости от ситуации. В некоторых реализациях различные этапы примерного процесса 1400 могут выполняться параллельно, в комбинации, в циклах или в любом порядке.
[00122]
На этапе 1404 запрос пользовательского интерфейса визуализации цепочки блоков принимается от клиентского устройства. Например, пользовательский интерфейс визуализации цепочки блоков может быть ассоциирован с идентификатором ресурса (например, URL (Uniform Resource Locator)), и пользователь клиентского устройства может ввести идентификатор ресурса в браузер, работающий на клиентском устройстве. Запрос пользовательского интерфейса визуализации цепочки блоков может быть принят на веб-сервере.
[00123]
На этапе 1406 цепочка блоков используется для генерирования пользовательского интерфейса визуализации цепочки блоков. Пользовательский интерфейс может включать в себя структуру графов цепочки, которая визуально изображает по меньшей мере часть цепочки блоков, и транзакционную информацию для транзакций, которые произошли в сети цепочки блоков. Транзакционная информация может включать в себя информацию о самых последних транзакциях, ассоциированных с цепочкой блоков. Сгенерированный пользовательский интерфейс визуализации цепочки блоков может представлять собой, например, веб-страницу. Структура графов цепочки может включать в себя цепочку выбираемых представлений блоков, каждое из которых представляет некоторый блок в цепочке блоков. Выбираемые представления блоков могут быть соединены выбираемыми связями и пользовательский интерфейс визуализации цепочки блоков может быть выполнен с возможностью изменения структуры графов цепочки в ответ на выбор пользователем некоторой конкретной выбираемой связи таким образом, чтобы выбираемое представление блока, которое является целью выбранной связи, позиционировалось вверху структуры графов цепочки.
[00124]
На этапе 1408 пользовательский интерфейс визуализации цепочки блоков обеспечивается на клиентское устройство в ответ на запрос пользовательского интерфейса визуализации цепочки блоков. Клиентское устройство может представлять пользовательский интерфейс визуализации цепочки блоков, например, в браузере. После того, как пользовательский интерфейс визуализации цепочки блоков был представлен на клиентском устройстве, веб-сервер может идентифицировать или определить обновленную цепочку блоков. Обновленный пользовательский интерфейс визуализации цепочки блоков может быть сгенерирован с использованием обновленной цепочки блоков. Обновленный пользовательский интерфейс визуализации цепочки блоков может быть обеспечен клиентскому устройству для представления на клиентском устройстве.
[00125]
В некоторых случаях цепочка блоков может быть консенсусной версией цепочки блоков. В некоторых реализациях до приема запроса пользовательского интерфейса визуализации цепочки блоков, консенсусная версия цепочки блоков может быть определена на основе взаимодействия с узлами сети цепочки блоков, ассоциированной с цепочкой блоков (как описано выше).
[00126]
ФИГ. 15 иллюстрирует примеры модулей устройства в соответствии с реализациями этого описания. Устройство 1500 может быть примерной реализацией сервера, выполненного с возможностью обеспечения визуализации цепочки блоков, ассоциированной с сетью цепочки блоков, например, сетью цепочки блоков консорциума. Устройство 1500 может соответствовать реализациям, описанным выше, и устройство 1500 включает в себя следующее: приемник или блок 1502 приема для приема от клиентского устройства запроса пользовательского интерфейса визуализации цепочки блоков; средство генерирования или блок 1504 генерирования для генерирования пользовательского интерфейса визуализации цепочки блоков на основе цепочки блоков, причем пользовательский интерфейс визуализации цепочки блоков включает в себя структуру графов цепочки, которая визуально изображает по меньшей мере часть цепочки блоков, и транзакционную информацию для транзакций, которые произошли в сети цепочки блоков; и средство обеспечения или блок 1506 обеспечения для обеспечения пользовательского интерфейса визуализации цепочки блоков для отображения на клиентском устройстве в ответ на запрос пользовательского интерфейса визуализации цепочки блоков.
[00127]
Система, устройство, модуль или блок, проиллюстрированные в предыдущих реализациях, могут быть реализованы с использованием компьютерного чипа или объекта или могут быть реализованы с использованием продукта, имеющего некоторую функцию. Типичным устройством реализации является компьютер, и компьютер может представлять собой персональный компьютер, ноутбук, сотовый телефон, телефон с камерой, смартфон, персональный цифровой помощник, медиаплеер, навигационное устройство, устройство приема и отправки электронной почты, игровую приставку, планшетный компьютер, носимое устройство или любую комбинацию этих устройств.
[00128]
Для процесса реализации функций и ролей каждого блока в устройстве могут быть сделаны ссылки на процесс реализации соответствующих этапов в предыдущем способе. Детали опущены здесь для простоты.
[00129]
Поскольку реализация устройства в основном соответствует реализации способа, для связанных частей могут быть сделаны ссылки на связанные части описания в реализации способа. Ранее описанная реализация устройства является просто примером. Блоки, описанные как отдельные части, могут быть или могут не быть физически отдельными, а части, отображаемые как блоки, могут быть или могут не быть физическими единицами, могут быть расположены в одной позиции или могут быть распределены по ряду сетевых блоков. Некоторые или все модули могут быть выбраны на основе фактических требований для достижения целей решений согласно данному описанию. Специалист в данной области техники поймет и реализует реализации настоящей заявки без творческих усилий.
[00130]
Обращаясь снова к ФИГ. 15, ее можно интерпретировать как иллюстрирующую внутренний функциональный модуль и структуру сервера, выполненного с возможностью визуализации цепочки блоков, ассоциированной с сетью цепочки блоков.
[00131]
Подходы, описанные в данном описании, позволяют компьютеру предоставлять интерактивное визуальное представление цепочки блоков. Данные подходы позволяют компьютеру обеспечивать различные виды данных в цепочке блоков в ответ на клиентские запросы. Соответственно, данные подходы позволяют компьютеру обеспечивать интерактивное и всестороннее визуальное представление цепочки блоков пользователям, тем самым упрощая задачу анализа данных в цепочке блоков. Кроме того, подходы могут позволить компьютеру обеспечить визуальное представление цепочки блоков на основе текущего представления цепочки блоков (то есть консенсусной версии) в ассоциированной сети цепочки блоков. Основание визуального представления на самом актуальном представлении цепочки блоков, которое выводят из взаимодействий с узлами сети цепочки блоков, позволяет компьютеру обеспечивать визуальное представление цепочки блоков, которое является текущим и точным на момент приема запроса на визуальное представление.
[00132]
Реализации изобретения и действий и операций, описанных в данном описании, могут быть выполнены в цифровых электронных схемах, в материально-воплощенном компьютерном программном обеспечении или встроенном программном обеспечении, в компьютерном аппаратном обеспечении, в том числе в структурах, раскрытых в данном описании, и в их структурных эквивалентах или в комбинациях из одного или более из вышеупомянутого. Реализации изобретения, описанного в данном описании, могут быть реализованы в виде одной или нескольких компьютерных программ, например, одного или нескольких модулей инструкций компьютерной программы, закодированных на носителе компьютерной программы, для исполнения посредством или для управления работой устройства обработки данных. Носителем может быть материальный долговременный компьютерный носитель данных. Альтернативно или в дополнение, носителем может быть искусственно сгенерированный распространяемый сигнал, например, сгенерированный машиной электрический, оптический или электромагнитный сигнал, который генерируется для кодирования информации для передачи в подходящее приемное устройство для исполнения устройством обработки данных. Компьютерный носитель данных может представлять собой или быть частью машиночитаемого запоминающего устройства, машиночитаемой запоминающей подложки, устройства памяти с произвольным или последовательным доступом или комбинации из одного или более из вышеупомянутого. Компьютерный носитель данных не является распространяемым сигналом.
[00133]
Термин «устройство обработки данных» охватывает все виды устройств, оборудования и машин для обработки данных, в том числе, например, программируемый процессор, компьютер или многочисленные процессоры или компьютеры. Устройство обработки данных может включать в себя логические схемы специального назначения, например FPGA (программируемая пользователем вентильная матрица), ASIC (специализированная интегральная схема) или GPU (графический процессор). Устройство может также включать в себя, помимо аппаратного обеспечения, код, который создает среду исполнения для компьютерных программ, например код, который составляет микропрограммное обеспечение процессора, стек протоколов, систему управления базой данных, операционную систему или комбинацию одного или более из вышеупомянутого.
[00134]
Компьютерная программа, которая также может упоминаться или описываться как программа, программное обеспечение, программное приложение, приложение, модуль, программный модуль, движок, скрипт или код, может быть написана на любом языке программирования, в том числе компилируемые или интерпретируемые языки или декларативные или процедурные языки; и она может быть развернута в любой форме, в том числе как отдельная программа или как модуль, компонент, движок, подпрограмма или другой блок, подходящий для исполнения в вычислительной среде, причем эта среда может включать в себя один или несколько компьютеров, соединенных между собой сетью связи для передачи данных в одном или нескольких местах.
[00135]
Компьютерная программа может, но не обязательно, соответствовать файлу в файловой системе. Компьютерная программа может храниться в части файла, которая содержит другие программы или данные, например, в одном или нескольких скриптах, хранящихся в документе на языке разметки, в одном файле, выделенном для рассматриваемой программы, или в нескольких скоординированных файлах, например файлах, в которых хранится одно или несколько из модулей, подпрограмм или частей кода.
[00136]
Процессы и логические потоки, описанные в данном описании, могут выполняться одним или несколькими компьютерами, исполняющими одну или несколько компьютерных программ для выполнения операций, работая с входными данными и генерируя выходные данные. Процессы и логические потоки также могут выполняться с помощью логических схем специального назначения, например FPGA, ASIC или GPU, или с помощью комбинации логических схем специального назначения и одного или нескольких программируемых компьютеров.
[00137]
Компьютеры, подходящие для исполнения компьютерной программы, могут быть основаны на общих или специализированных микропроцессорах или на обоих, или на любом другом типе центрального процессора. Как правило, центральный процессор будет принимать инструкции и данные из постоянной памяти или из оперативной памяти или из обеих. Элементы компьютера могут включать в себя центральный процессор для исполнения инструкций и одно или несколько запоминающих устройств для хранения инструкций и данных. Центральный процессор и память могут быть дополнены логическими схемами специального назначения или включены в них.
[00138]
Как правило, компьютер будет связан с по меньшей мере одним долговременным считываемым компьютером носителем данных (также именуемым считываемой компьютером памятью). Носитель данных, связанный с компьютером, может быть внутренним компонентом компьютера (например, встроенным жестким диском) или внешним компонентом (например, жестким диском с универсальной последовательной шиной (USB) или системой хранения, доступ к которой осуществляется через сеть). Примерами носителей данных могут быть, например, магнитные, магнитооптические или оптические диски, твердотельные накопители, сетевые ресурсы хранения, такие как облачные системы хранения, или другие типы носителей данных. Однако компьютеру не обязательно иметь такие устройства. Кроме того, компьютер может быть встроен в другое устройство, например мобильный телефон, персональный цифровой помощник (PDA), мобильный аудио- или видеоплеер, игровую приставку, приемник глобальной системы позиционирования (GPS) или портативное запоминающее устройство, например, флэш-накопитель с универсальной последовательной шиной (USB), и это лишь некоторые из них.
[00139]
Чтобы обеспечить взаимодействие с пользователем, реализации изобретения, описанного в данном описании, могут быть реализованы на или выполнены с возможностью связи с компьютером, имеющим устройство отображения, например ЖК монитор (жидкокристаллический дисплей), для отображения информации пользователю и устройство ввода, с помощью которого пользователь может обеспечить ввод в компьютер, например клавиатуру и указательное устройство, например мышь, трекбол или сенсорную панель. Другие виды устройств также могут быть использованы для обеспечения взаимодействия с пользователем; например, обратная связь, обеспечиваемая пользователю, может быть любой формой сенсорной обратной связи, например визуальной обратной связью, звуковой обратной связью или тактильной обратной связью; и ввод от пользователя может быть принят в любой форме, в том числе акустический, речевой или тактильный ввод. Кроме того, компьютер может взаимодействовать с пользователем, отправляя документы и принимая документы на/от устройства, которое используется пользователем; например, путем отправки веб-страниц в веб-браузер на устройстве пользователя в ответ на запросы, принимаемые из веб-браузера, или путем взаимодействия с приложением, запущенным на пользовательском устройстве, например смартфоне или электронном планшете. Кроме того, компьютер может взаимодействовать с пользователем, отправляя текстовые сообщения или другие формы сообщений на персональное устройство, например смартфон, на котором запущено приложение обмена сообщениями, и принимая ответные сообщения от пользователя в ответ.
[00140]
В данном описании термин «выполненный с возможностью» используется в связи с системами, устройствами и компонентами компьютерной программы. Если система из одного или нескольких компьютеров выполнена с возможностью осуществления конкретных операций или действий, это означает, что система имеет установленное программное обеспечение, встроенное программное обеспечение, аппаратное обеспечение или их комбинацию, которые при работе заставляют систему выполнять эти операции или действия. Если одна или несколько компьютерных программ выполнены с возможностью осуществления конкретных операций или действий, это означает, что эта одна или несколько программ включают в себя инструкции, которые при исполнении устройством обработки данных побуждают это устройство выполнять упомянутые операции или действия. Если логические схемы специального назначения выполнены с возможностью осуществления конкретных операций или действий, это означает, что эта схема имеет электронную логику, которая выполняет упомянутые операции или действия.
[00141]
Хотя это описание содержит многочисленные конкретные детали реализации, их следует истолковывать не в качестве ограничений объема заявленного изобретения, который определяется самими пунктами формулы изобретения, а скорее как описания признаков, которые могут быть специфическими для конкретных реализаций. Некоторые признаки, которые описаны в этом описании в контексте отдельных реализаций, также могут быть реализованы в комбинации в единой реализации. И наоборот, различные признаки, которые описаны в контексте единой реализации, также могут быть реализованы в нескольких реализациях отдельно или в любой подходящей подкомбинации. Более того, хотя признаки могут быть описаны выше как действующие в некоторых комбинациях и даже первоначально заявлены как таковые, один или несколько признаков из заявленной комбинации может в некоторых случаях быть исключен из такой комбинации, и пункт формулы изобретения может быть направлен на подкомбинацию или некоторый вариант подкомбинации.
[00142]
Аналогично, хотя операции изображены на чертежах и изложены в формуле изобретения в конкретном порядке, это не следует понимать как требование, чтобы такие операции выполнялись именно в таком конкретном порядке или в последовательном порядке, или чтобы выполнялись все проиллюстрированные операции, чтобы достичь желаемых результатов. При определенных обстоятельствах многозадачность и параллельная обработка могут быть выгодными. Кроме того, разделение различных системных модулей и компонентов в реализациях, описанных выше, не следует понимать как обязательное разделение во всех реализациях, и следует понимать, что описанные программные компоненты и системы обычно могут быть объединены вместе в едином программном продукте или запакованы в несколько программных продуктов.
[00143]
Конкретные реализации изобретения были описаны. Другие реализации находятся в пределах объема нижеследующей формулы изобретения. Например, действия, изложенные в формуле изобретения, могут выполняться в другом порядке и при этом достигать желаемых результатов. В качестве одного примера, процессы, изображенные на прилагаемых фигурах, не обязательно требуют конкретного показанного порядка или последовательного порядка для достижения желаемых результатов. В некоторых случаях многозадачность и параллельная обработка могут быть выгодными.