СПОСОБ И УСТРОЙСТВО ОБРАБОТКИ УСЛУГ
SERVICE PROCESSING METHOD AND DEVICE

Область техники
Настоящая заявка относится к области компьютерных технологий, и в частности, к способу и устройству обработки транзакций.
Предшествующий уровень техники
Технологии блокчейна (цепочки блоков) также называются технологиями распределенного реестра. Технологии блокчейна привлекли широкое внимание со времени своего появления ввиду таких свойств, как неизменность и децентрализация данных, сохраненных с использованием таких технологий. При продолжающемся развитии компьютерных технологий, технологии блокчейна обеспечат людей все более безопасной средой хранения данных и удобством для хранения данных.
В примерном применении, технологии блокчейна обычно используются, чтобы хранить информацию транзакции, генерируемую в транзакции. Однако появление смарт-контрактов дополнительно расширяет диапазон услуг блокчейнов. Смарт- контракт обычно представляет собой сегмент кодов, сохраненных в блокчейне (или узле обработки транзакции в блокчейне). Условия исполнения и логика обработки транзакции смарт-контракта предписаны в сегменте кодов. А именно, для запроса обработки транзакции, предписаны условия для вызова смарт-контракта и то, как следует обрабатывать принятый запрос обработки транзакции после того, как вызван смарт-контракт. Поэтому, когда пользователю требуется обработать назначенную транзакцию через смарт-контракт, пользователь может отправить параметр транзакции, требуемый для обработки назначенной транзакции, на узел обработки транзакции в блокчейне, предписывая узлу обработки транзакции исполнять параметр транзакции, когда определено, что параметр транзакции удовлетворяет условию исполнения, предписанному смарт-контрактом, и затем завершать задание обработки назначенной транзакции.
Например, когда пользователю требуется обработать некоторые назначенные транзакции через смарт-контракт, адрес хранения смарт-контракта в блокчейне может переноситься в запросе обработки транзакции, предписывая узлу обработки транзакции в блокчейне определять параметр транзакции и адрес хранения смарт-контракта в блокчейне из запроса обработки транзакции, когда запрос обработки транзакции исполняется. В соответствии с адресом хранения, узел обработки транзакции может вызвать смарт-контракт, хранящийся в адресе хранения, и определить, удовлетворяет ли параметр транзакции условию исполнения смарт-контракта. Если да, узел обработки транзакции обрабатывает параметр транзакции в соответствии с логикой обработки транзакции, предварительно предписанной в смарт-контракте, чтобы завершить задание обработки назначенных транзакций.
Ввиду того признака, что данные, сохраненные в блокчейне, являются неизменными, невозможно изменить смарт-контракт, когда смарт-контракт сохранен в блокчейне. С продолжающимися обновлениями транзакций, смарт-контракт может быть не способным поддерживать задание обработки новых (обновленных) транзакций. Чтобы обеспечить возможность смарт-контракту поддерживать задание обработки новых транзакций, смарт-контракт должен повторно разрабатываться в соответствии с новыми транзакциями и повторно записываться в блокчейн.
Поэтому, существует настоятельная потребность в способе обработки транзакции для решения в блокчейнах проблемы, состоящей в том, что способы обработки транзакции не являются гибко адаптируемыми к обновлениям транзакции в блокчейнах.
сущностЬ изобретения
Варианты осуществления настоящей заявки обеспечивают способ и устройство обработки транзакции для решения в блокчейнах проблемы, состоящей в том, что способы обработки транзакции не являются гибко адаптируемыми к обновлениям транзакций.
Варианты осуществления настоящей заявки обеспечивают способ обработки транзакции, содержащий:
прием запроса транзакции;
определение типа транзакции целевой транзакции, включенной в запрос транзакции;
загрузку, в соответствии с типом транзакции, шаблона транзакции, соответствующего типу транзакции; и
обработку целевой транзакции в соответствии с шаблоном транзакции и запись информации транзакции, полученной из обработки, в блокчейн.
Варианты осуществления настоящей заявки обеспечивают способ обработки транзакции, содержащий:
прием запроса транзакции и определение типа транзакции целевой транзакции, включенной в запрос транзакции;
загрузку, в соответствии с типом транзакции, шаблона транзакции, соответствующего типу транзакции;
обработку целевой транзакции в соответствии с шаблоном транзакции и запись информации транзакции, полученной из обработки, в целевой блок в блокчейне; и
при записи полученной информации транзакции в целевой блок, определение и сохранение значения изменения состояния целевого блока, причем значение изменения состояния используется, чтобы проверять, согласована ли информация транзакции, записанная в целевом блоке, с информацией транзакции, записанной в других блоках в блокчейне.
Варианты осуществления настоящей заявки обеспечивают устройство обработки транзакции, содержащее:
модуль приема, выполненный с возможностью принимать запрос транзакции;
модуль определения, выполненный с возможностью определять тип транзакции целевой транзакции, включенной в запрос транзакции;
модуль загрузки шаблона, выполненный с возможностью загружать, в соответствии с типом транзакции, шаблон транзакции, соответствующий типу транзакции; и
модуль обработки, выполненный с возможностью обрабатывать целевую транзакцию в соответствии с шаблоном транзакции и записывать информацию транзакции, полученную из обработки, в блокчейн.
Варианты осуществления настоящей заявки обеспечивают устройство обработки транзакции, содержащее:
модуль приема, выполненный с возможностью принимать запрос транзакции и определять тип транзакции целевой транзакции, включенной в запрос транзакции;
модуль загрузки шаблона, выполненный с возможностью загружать, в соответствии с типом транзакции, шаблон транзакции, соответствующий типу транзакции; и
модуль обработки, выполненный с возможностью обрабатывать целевую транзакцию в соответствии с шаблоном транзакции и записывать информацию транзакции, полученную из обработки, в целевой блок в блокчейне; и при записи полученной информации транзакции в целевой блок, определять и сохранять значение изменения состояния целевого блока, причем значение изменения состояния используется, чтобы проверять, согласована ли информация транзакции, записанная в целевом блоке, с информацией транзакции, записанной в других блоках в блокчейне.
Вышеописанное по меньшей мере одно техническое решение, используемое вариантами осуществления настоящей заявки, может достигать следующих полезных результатов:
В вариантах осуществления настоящей заявки, после того, как запрос транзакции, отправленный пользователем, принят, в соответствии с типом транзакции целевой транзакции, включенной в запрос транзакции, может быть загружен шаблон транзакции, соответствующий типу транзакции, и целевая транзакция обрабатывается в соответствии с шаблоном транзакции. Здесь, поскольку узел обработки транзакции может загружать модель транзакции, которая может обрабатывать целевую транзакцию, включенную в запрос транзакции, в соответствии с запросом транзакции, отправленным пользователем в процессе обработки транзакции, ограничение в блокчейнах в текущих технологиях, состоящее в том, что обработка транзакции фиксирована и нерасширяема, устраняется, тем самым делая обработку транзакции в блокчейнах более гибкой и облегчая обработку транзакции на основе блокчейна для пользователя.
Краткое описание чертежей
Прилагаемые чертежи, как описывается здесь, используются, чтобы обеспечивать лучшее понимание настоящей заявки, и составляют часть настоящей заявки. Примерные варианты осуществления настоящей заявки и описание примерных вариантов осуществления используются, чтобы описывать настоящую заявку, и не налагают ненадлежащих ограничений на настоящую заявку. На прилагаемых чертежах:
Фиг. 1 представляет собой схематичную диаграмму процесса обработки транзакции в соответствии с некоторыми вариантами осуществления настоящей заявки;
Фиг. 2 представляет собой схематичную диаграмму пользователей, освобождающих инсталляционные пакеты шаблона транзакции на платформе транзакции в соответствии с некоторыми вариантами осуществления настоящей заявки;
Фиг. 3 представляет собой схематичную диаграмму процесса обработки транзакции в соответствии с некоторыми вариантами осуществления настоящей заявки;
Фиг. 4 представляет собой схематичную диаграмму устройства обработки транзакции в соответствии с некоторыми вариантами осуществления настоящей заявки;
Фиг. 5 представляет собой схематичную диаграмму устройства обработки транзакции в соответствии с некоторыми вариантами осуществления настоящей заявки.
Подробное описание
Чтобы обеспечить специалисту в данной области техники лучшее понимание технических решений настоящей заявки, технические решения в вариантах осуществления настоящей заявки будут ясно и полностью описаны ниже со ссылкой на прилагаемые чертежи в вариантах осуществления настоящей заявки. Очевидно, что описанные варианты осуществления представляют собой только некоторые, а не все варианты осуществления настоящей заявки. На основе вариантов осуществления настоящей заявки, все другие варианты осуществления, полученные специалистом в данной области техники без творческих усилий, должны соответствовать объему настоящей заявки.
Фиг. 1 представляет собой схематичную диаграмму процесса обработки транзакции в соответствии с некоторыми вариантами осуществления настоящей заявки, содержащего следующие этапы:
S101: прием запроса транзакции.
В вариантах осуществления настоящей заявки, объект исполнения вариантов осуществления настоящей заявки может представлять собой узел обработки транзакции. Узел обработки транзакции здесь оснащен при помощи технологии обработки блокчейна, а именно, узел обработки транзакции способен обрабатывать транзакции блокчейна. Тогда, S101 может толковаться как узел обработки транзакции, принимающий запрос транзакции.
Запрос транзакции может толковаться как отправляемый пользователем на узел обработки транзакции посредством терминального устройства (терминальное устройство здесь может толковаться как мобильный терминал, PC терминал и т.д.) или может толковаться как отправляемый сервером, который принял запрос транзакции, отправленный пользователем (сервер может быть оснащен при помощи технологии обработки блокчейна и способен выполнять передачу данных с узлом обработки транзакции), или может даже толковаться как отправляемый сервером, не оснащенным при помощи технологии обработки блокчейна, на узел обработки транзакции после того, как сервер принимает запрос транзакции, отправленный пользователем, что не ограничено вариантами осуществления в настоящем документе.
Например, в процессе выполнения обработки транзакции, пользователь может вводить соответствующие данные транзакции в терминал, такой как компьютер, мобильный телефон и т.д., чтобы запустить запрос транзакции. Например, когда пользователю требуется выполнить транзакцию перевода, пользователь может ввести сумму перевода и получателя перевода в терминал, причем сумма перевода и получатель перевода, введенные пользователем, и инициатор перевода (т.е. пользователь) могут составлять данные транзакции для транзакции перевода, введенные пользователем. Пользователь затем отправляет запрос транзакции, который переводит данные транзакции, содержащие сумму перевода, получателя перевода и инициатора перевода, на узел обработки транзакции. В качестве другого примера, когда пользователю требуется сохранить данные в блокчейне, пользователь может ввести данные в терминал, причем данные представляют собой данные транзакции для транзакции сохранения данных, введенные пользователем, и затем пользователь отправляет запрос транзакции, который переносит данные транзакции, содержащие данные, подлежащие сохранению на узле обработки транзакции. Способ, которым пользователь отправляет запрос транзакции на узел обработки транзакции, не ограничен вариантами осуществления в настоящем документе.
В качестве еще одного другого примера, когда терминал обнаруживает, что пользователь исполняет назначенную операцию (например, щелчком на назначенном элементе управления, отображаемом на интерфейсе терминала, и т.д.), терминал может определить данные транзакции, введенные пользователем в терминал, затем сгенерировать соответствующий запрос транзакции в соответствии с данными транзакции и отправить запрос транзакции на узел обработки транзакции, предписывая узлу обработки транзакции принимать запрос транзакции и обрабатывать целевую транзакцию, включенную в запрос транзакции, в последующем процессе. Способ, которым пользователь отправляет запрос транзакции на узел обработки транзакции, не ограничен вариантами осуществления в настоящем документе.
Следует отметить, что в процессе обработки транзакции в вариантах осуществления настоящей заявки, пользователь может ввести соответствующие данные транзакции в терминал и может также ввести данные транзакции в назначенное приложение, установленное на терминале. Соответственно, после того как данные транзакции, введенные пользователем, приняты, назначенное приложение может генерировать соответствующий запрос транзакции. Затем, когда обнаруживается назначенная операция пользователем (например, щелчком на назначенном элементе управления и т.д.), назначенное приложение может отправить запрос транзакции на узел обработки транзакции.
S102: определение типа транзакции целевой транзакции, включенной в запрос транзакции.
После того, как узел обработки транзакции принимает запрос транзакции, отправленный пользователем через терминал, узел обработки транзакции может дополнительно определить тип транзакции целевой транзакции, включенной в запрос транзакции. Это действие обеспечено для следующей цели: в вариантах осуществления настоящей заявки, шаблоны транзакции предварительно сохраняются в узле обработки транзакции, и разные шаблоны транзакции соответствуют разным заданиям обработки транзакции; поэтому, после того, как узел обработки транзакции принимает запрос транзакции, отправленный пользователем, узлу обработки транзакции требуется определить, какой шаблон транзакции из предварительно сохраненных шаблонов транзакции способен обрабатывать целевую транзакцию, включенную в запрос транзакции. Узел обработки транзакции обычно хранит шаблоны транзакции, соответствующие типам транзакции. Поэтому, в процессе определения того, какой шаблон транзакции способен обрабатывать целевую транзакцию, включенную в запрос транзакции, узел обработки транзакции может определить тип транзакции целевой транзакции, затем определить шаблон транзакции, соответствующий типу транзакции, в соответствии с предварительно сохраненным отношением между типами транзакции и шаблонами транзакции и дополнительно обработать целевую транзакцию, включенную в запрос транзакции, посредством шаблона транзакции в последующем процессе.
В одном примере, после того, как узел обработки транзакции принимает запрос транзакции, отправленный пользователем, узел обработки транзакции может определить идентификатор транзакции целевой транзакции, включенной в запрос транзакции, и определить тип транзакции целевой транзакции в соответствии с идентификатором транзакции, причем идентификатор транзакции может представлять собой строку чисел, и часть строки чисел представляет собой код транзакции, способный представлять целевую транзакцию. Например, в идентификаторе #244340923 транзакции, #2 представляет собой код транзакции, представляющий целевую транзакцию. Идентификатор транзакции может также быть в других формах. Например, когда запрос транзакции содержит символы ʺтипа переводаʺ, ʺтип переводаʺ представляет собой идентификатор транзакции целевой транзакции, включенной в запрос транзакции.
Следует отметить, что шаблоны транзакции, предварительно сохраненные в узле обработки транзакции в соответствии с вариантами осуществления настоящей заявки, могут формироваться посредством API и сохраняться в узле обработки транзакции.
S103: загрузка, в соответствии с типом транзакции, шаблона транзакции, соответствующего типу транзакции.
В вариантах осуществления настоящей заявки, шаблоны транзакции, соответствующие различным типам транзакции, предварительно сохраняются в узле обработки транзакции. Поэтому, после того, как узел обработки транзакции принимает запрос транзакции, отправленный пользователем, узел обработки транзакции может загружать, в соответствии с определенным типом транзакции, соответствующим целевой транзакции, включенной в запрос транзакции, шаблон транзакции, соответствующий типу транзакции, из предварительно сохраненных шаблонов транзакции. Затем в последующем процессе, узел обработки транзакции может обрабатывать целевую транзакцию посредством шаблона транзакции.
Например, полагая, что пользователь инициирует запрос перевода (т.е. запрос транзакции) на узел обработки транзакции, после того, как узел обработки транзакции принимает запрос перевода, узел обработки транзакции может анализировать запрос перевода и определять, что тип транзакции, соответствующий запросу перевода, представляет собой транзакцию перевода. Затем, узел обработки транзакции определяет и загружает шаблон перевода, соответствующий транзакции перевода (т.е. типу транзакции), из предварительно сохраненных шаблонов транзакции. В последующем процессе, узел обработки транзакции обрабатывает запрос перевода посредством шаблона перевода.
После того, как узел обработки транзакции определяет тип транзакции целевой транзакции, включенной в запрос транзакции, узел обработки транзакции находит, что не существует шаблона транзакции, соответствующего типу транзакции, в предварительно сконфигурированных шаблонах транзакции. А именно, никакой из шаблонов транзакции не способен обрабатывать целевую транзакцию, включенную в запрос транзакции. Тогда, узел обработки транзакции может генерировать шаблон транзакции, способный обрабатывать целевую транзакцию в соответствии с кодом транзакции, введенным пользователем, и затем обрабатывать целевую транзакцию посредством сгенерированного шаблона транзакции.
В одном примере, когда узел обработки транзакции принимает запрос транзакции, отправленный пользователем, узел обработки транзакции определяет, что не существует шаблона транзакции, соответствующего запросу транзакции, в предварительно сконфигурированных шаблонах транзакции. Затем, узел обработки транзакции может оповещать пользователя о том, что целевая транзакция, включенная в запрос транзакции, не может быть обработана. Когда пользователь видит это оповещение, пользователь может компилировать код транзакции, требуемый для обработки целевой транзакции в узле обработки транзакции для целевой транзакции, и узел обработки транзакции может генерировать соответствующий шаблон транзакции в соответствии с кодом транзакции, введенным пользователем. Затем, узел обработки транзакции может загружать сгенерированный шаблон транзакции и обрабатывать целевую транзакцию.
В примерном применении, форматы данных, которые могут считывать разные шаблоны транзакции, обычно являются разными. Поэтому, после того, как узел обработки транзакции принимает запрос транзакции, отправленный пользователем в вариантах осуществления настоящей заявки, узел обработки транзакции может также считывать запрос транзакции последовательно посредством предварительно сохраненных шаблонов транзакции. Когда узел обработки транзакции способен считать запрос транзакции посредством шаблона транзакции (т.е. формат данных запроса транзакции соответствует шаблону транзакции), узел обработки транзакции может обработать целевую транзакцию, включенную в запрос транзакции, посредством шаблона транзакции в последующем процессе.
Поскольку данные в узле обработки транзакции могут изменяться, шаблоны транзакции, предварительно сохраненные в узле обработки транзакции, могут обновляться и корректироваться. Поэтому, когда транзакция непрерывно обновляется, пользователь может соответственно обновлять шаблоны транзакции в узле обработки транзакции. Пользователю не требуется повторно разрабатывать шаблон транзакции, а необходимо только выполнить обновление и коррекцию на основе исходных шаблонов транзакции, чтобы позволить шаблонам транзакции поддерживать обновленную транзакцию, тем самым значительно улучшая эффективность поддержания транзакции.
Однако, поскольку данные, хранящиеся в блокчейне, являются неизменными, использование блокчейна пользователем для хранения данных будет эффективно гарантировать безопасность хранения данных, тем самым обеспечивая предпочтительную основу верификации для последующей верификации данных пользователем. С другой стороны, неизменность данных также ведет к неудобству в обработке транзакции для блокчейна, и одна из самых значительных проблем состоит в том, что смарт-контракты, в настоящее время поддерживающие расширение транзакции блокчейна, обычно все хранятся в блокчейне, и поэтому смарт-контракты не могут обновляться при непрерывных обновлениях транзакций. Чтобы позволить смарт-контрактам поддерживать задание обработки новых транзакций, пользователю требуется повторно разработать смарт-контракты и записать повторно разработанные смарт-контракты в блокчейн. Поэтому, непрерывные обновления транзакций неизбежно заставят пользователя продолжать повторную разработку смарт-контрактов, тем самым приводя к значительному неудобству в поддержании транзакции для пользователя.
В вариантах осуществления настоящей заявки, все шаблоны транзакций для обработки различных целевых транзакций могут быть предварительно сохранены в узле обработки транзакции, а не храниться в блокчейне. Поэтому, когда транзакция обновляется, пользователю только требуется выполнить соответствующие обновления шаблонов транзакции, хранящихся в узле обработки транзакции, чтобы сделать шаблоны транзакции способными поддерживать обновленную транзакцию. Нет необходимости повторно разрабатывать шаблоны транзакции для адаптации к обновленной транзакции, и стоимость поддержания транзакции будет намного уменьшена относительно современных технологий, в которых пользователь может только повторно разрабатывать смарт-контракты, чтобы позволять повторно разработанным смарт-контрактам поддерживать обработку транзакции для обновленной транзакции. Тем самым решается проблема, состоящая в том, что способы обработки транзакции не являются гибко адаптируемыми к обновлениям транзакции, и гибкость обработки транзакции в блокчейнах намного повышается.
Дополнительно, в примерных применениях, системные ресурсы, требуемые в процессе исполнения смарт-контракта, обычно распределяются виртуальной машиной. Однако поскольку виртуальная машина отделена от сервера, виртуальная машина может иметь только часть системных ресурсов сервера. Распределение, виртуальной машиной, системных ресурсов, требуемых смарт-контрактом, означает, что смарт-контракт может получать требуемые системные ресурсы только из части системных ресурсов сервера, которым владеет виртуальная машина. Таким образом, смарт-контракт получает малое количество системных ресурсов. Однако чтобы адаптироваться к возрастающему объему потребностей транзакций, смарт-контракту необходимо получать больше системных ресурсов от виртуальной машины, чтобы обеспечить достаточную поддержку возрастающего объема транзакций. Проблема собственной производительности виртуальной машины (т.е. виртуальная машина обладает относительно малым объемом системных ресурсов, и объем системных ресурсов, распределенных смарт-контракту, также является относительно низким) делает невозможным для смарт-контракта обеспечить хорошую поддержку возрастающему объему транзакций, тем самым значительно снижая эффективность обработки транзакций блокчейна и приводя к неудобству для пользователей.
В вариантах осуществления настоящей заявки, шаблоны транзакций, соответствующие различным транзакциям, предварительно сохранены в узле обработки транзакции. В процессе инициирования шаблона транзакции, чтобы обрабатывать запрос транзакции, узел обработки транзакции может распределить больше системных ресурсов процессу обработки запроса транзакции, так как узел обработки транзакции владеет тем же самым количеством системных ресурсов, что и сервер. Поэтому, при непрерывном возрастании количества транзакций, узел обработки транзакции может все еще устойчиво поддерживать обработку различных транзакций, тем самым обеспечивая эффективность обработки транзакции блокчейна.
S104: обработка целевой транзакции в соответствии с шаблоном транзакции и запись информации транзакции, полученной из обработки, в блокчейн.
После того, как узел обработки транзакции определяет шаблон транзакции, соответствующий типу транзакции, узел обработки транзакции может обрабатывать целевую транзакцию, включенную в запрос транзакции, посредством шаблона транзакции, причем шаблон транзакции содержит предварительно предписанное правило обработки транзакции, и узел обработки транзакции может обрабатывать целевую транзакцию в соответствии с правилом обработки транзакции.
В примерных применениях, каждый тип транзакций обычно содержит несколько под-транзакций. Например, финансовые транзакции могут содержать под-транзакции, такие как транзакция перевода, транзакция администрирования финансов и т.д., на основе чего, в вариантах осуществления настоящей заявки, правило обработки транзакции в каждом шаблоне транзакции может отвечать за обработку транзакции главного типа транзакций, в то время как каждое правило обработки транзакции содержит множество правил обработки с разными правилами обработки, соответственно обрабатывающими разные под-транзакции в типе транзакций. Например, для финансовых транзакций, узел обработки транзакции может хранить шаблон финансовой транзакции, отвечающий за обработку финансовой транзакции, причем шаблон финансовой транзакции содержит различные правила обработки для перевода обработки, администрирования финансов и других под-транзакций.
Поэтому, в вариантах осуществления настоящей заявки, после того, как узел обработки транзакции загружает, в соответствии с типом транзакции целевой транзакции, включенной в запрос транзакции, шаблон транзакции, соответствующий типу транзакции, узел обработки транзакции может определить правило обработки транзакции, содержащееся в шаблоне транзакции. Затем, узел обработки транзакции может дополнительно определить правило обработки, соответствующее целевой транзакции, из правил обработки, содержащихся в правиле обработки транзакции, и обработать целевую транзакцию посредством правила обработки.
Например, полагая, что запрос транзакции, принятый узлом обработки транзакции, представляет собой запрос перевода, отправленный пользователем, узел обработки транзакции может определить, что тип транзакции запроса транзакции является финансовым. Затем, узел обработки транзакции может определить и загрузить шаблон транзакции, способный обрабатывать финансовые транзакции, из предварительно сохраненных шаблонов транзакции. После того, как узел обработки транзакции загружает шаблон транзакции, узел обработки транзакции может определить правило обработки транзакции, содержащееся в шаблоне транзакции. Затем, узел обработки транзакции может определить правило обработки перевода (т.е. вышеописанное правило обработки), соответствующее транзакции перевода, из правил обработки, содержащихся в правиле обработки транзакции, и обработать транзакцию перевода посредством правила обработки.
В примерных применениях, запросы транзакции, введенные пользователем на узел обработки транзакции, могут создавать ситуации, такие как несовместимость формата данных с положениями, незаконный запрос транзакции и т.д. Когда узел обработки транзакции обрабатывает эти запросы транзакции с проблемами, операции узла обработки транзакции могут подвергаться влиянию, и узел обработки транзакции может даже испытывать обрушение в сложных ситуациях.
Чтобы обеспечить эффективные операции узла обработки транзакции и обеспечить эффективность обработки транзакции узла обработки транзакции, в вариантах осуществления настоящей заявки, узел обработки транзакции может проверить принятый запрос транзакции в соответствии с определенным шаблоном транзакции (шаблоном транзакции, используемым для обработки запроса транзакции, принятого узлом обработки транзакции).
В одном примере, после того, как узел обработки транзакции определяет шаблон транзакции, соответствующий запросу транзакции (т.е., шаблон транзакции, соответствующий типу транзакции целевой транзакции), узел обработки транзакции может определить правило обработки транзакции, содержащееся в шаблоне транзакции, из шаблона транзакции, причем правило обработки транзакции содержит правила обработки для исполнения обработки транзакции и правила проверки для проверки запросов транзакции. Поэтому, узел обработки транзакции может проверить запрос транзакции в соответствии с правилами проверки. Когда узел обработки транзакции определяет, что запрос транзакции удовлетворяет предварительно установленному условию, предписанному в правилах проверки (т.е. запрос транзакции представляет собой законный и нормальный запрос), узел обработки транзакции может обрабатывать целевую транзакцию; когда узел обработки транзакции определяет, что запрос транзакции не удовлетворяет предварительно установленному условию, предписанному в правилах проверки (т.е., запрос транзакции может иметь проблемы, такие как несовместимый формат данных, незаконный запрос транзакции и т.д.), узел обработки транзакции не может обработать целевую транзакцию и возвращает пользователю оповещение о том, что обработка запроса транзакции безуспешна, побуждая пользователя повторно инициировать запрос транзакции на узел обработки транзакции в соответствии с оповещением.
После того, как узел обработки транзакции завершает обработку запроса транзакции посредством шаблона транзакции, узел обработки транзакции может получить соответствующую информацию транзакции. Информация транзакции здесь может представлять собой результаты транзакции, полученные после того, как узел обработки транзакции обрабатывает транзакцию, записи транзакции, чтобы показать весь процесс обработки транзакции, или данные транзакции, содержащиеся в запросе транзакции. Узел обработки транзакции может затем записать информацию транзакции в блокчейн. Таким образом, пользователь может после этого выполнять поиск информации транзакции в блокчейне и затем выполнять операции, такие как верификация данных, на информации транзакции.
В вариантах осуществления настоящей заявки, шаблоны транзакции, предварительно сохраненные в узле обработки транзакции, могут быть направлены на множество транзакций, и в примерных применениях, транзакции, использующие блокчейны, могут главным образом разделяться на следующие четыре типа:
I. Транзакции отслеживания, которые записывают путь перевода назначенного элемента данных подробно, обеспечивая возможность пользователю определять исходного держателя назначенного элемента данных через путь перевода назначенного элемента данных, записанных в блокчейне, т.е. отслеживая источник назначенного элемента данных.
II. Транзакции аутентификации, которые используют неизменность данных, сохраненных в блокчейне, и сохраняют назначенные данные в блокчейне для дальнейшей верификации назначенных данных или для верификации других данных посредством назначенных данных.
III. Транзакции на основе смарт-контракта, которые представляют собой конкретные транзакции, реализуемые с использованием смарт-контрактов в современных технологиях, такие как регулярно возвращающие прибыли от продуктов администрирования финансов пользователям путем исполнения смарт-контракта в блокчейне.
IV. Транзакции обмена, которые реализуют взаимные транзакции между пользователями через блокчейн и записывают подробности транзакции в процессе транзакций в блокчейне.
В отношении вышеописанных четырех типов транзакций, шаблоны транзакции, способные обрабатывать эти четыре типа транзакций, предварительно сохраняются в узле обработки транзакции в вариантах осуществления настоящей заявки. Поэтому, после того, как узел обработки транзакции принимает запросы транзакции для этих четырех типов транзакций, узел обработки транзакции может загружать предварительно сохраненные четыре типа шаблонов транзакции, чтобы обрабатывать целевые транзакции, включенные в четыре типа запросов транзакции, причем четыре типа запросов транзакции могут представлять собой шаблон отслеживания, шаблон аутентификации, шаблон контракта и шаблон обмена, соответственно.
Чтобы дополнительно описать процесс обработки транзакции в вариантах осуществления настоящей заявки, процессы обработки транзакции этих четырех типов запросов транзакции будут описаны подробно ниже.
Когда узел обработки транзакции принимает запрос данных отслеживания, отправленный пользователем, узел обработки транзакции может определить, в соответствии с идентификатором транзакции отслеживания, содержащимся в запросе данных отслеживания, тип транзакции отслеживания, соответствующий идентификатору транзакции отслеживания, и затем узел обработки транзакции может определить и загрузить, в соответствии с типом транзакции отслеживания, модель отслеживания, соответствующую типу транзакции отслеживания, из предварительно сохраненных шаблонов транзакции. Затем, путем активирования шаблона отслеживания, узел обработки транзакции обрабатывает транзакцию отслеживания, включенную в запрос данных отслеживания.
В процессе, при котором узел обработки транзакции обрабатывает транзакцию отслеживания посредством шаблона отслеживания, узел обработки транзакции может определить правило обработки транзакции отслеживания, соответствующее типу транзакции отслеживания, и затем исполнить правило обработки транзакции отслеживания, чтобы получить, через анализ, данные отслеживания, адрес получателя данных отслеживания и адрес отправителя данных отслеживания, включенные в запрос данных отслеживания. После этого, узел обработки транзакции может дополнительно отправить данные отслеживания получателю данных отслеживания и сгенерировать соответствующую информацию перевода данных отслеживания. Затем, узел обработки транзакции записывает информацию перевода в блокчейн, обеспечивая возможность пользователю после этого определять путь перевода данных отслеживания через информацию перевода, сохраненную в блокчейне.
В отношении транзакций аутентификации, когда узел обработки транзакции принимает запрос данных аутентификации, отправленный пользователем, узел обработки транзакции может определить тип транзакции аутентификации, соответствующий запросу данных аутентификации, и загрузить шаблон аутентификации, соответствующий типу транзакции аутентификации, из предварительно сохраненных шаблонов транзакции. Узел обработки транзакции может определить правило обработки транзакции аутентификации, соответствующее типу транзакции аутентификации, из шаблона аутентификации, получить через анализ, посредством правила обработки транзакции аутентификации, данные аутентификации, подлежащие записи в блокчейн, как требуется пользователем из запроса данных аутентификации, и затем записать данные аутентификации в блокчейн.
В вариантах осуществления настоящей заявки, узел обработки транзакции может также исполнять транзакции посредством смарт-контракта, сохраненного в блокчейне; а именно, шаблон контракта (т.е., шаблон транзакции), соответствующий транзакции, подлежащей исполнению через смарт-контракт, может быть предварительно сохранен в узле обработки транзакции. Затем, когда узел обработки транзакции принимает запрос данных контракта, отправленный пользователем, узел обработки транзакции может определить тип транзакции контракта, соответствующий запросу данных контракта, и определить, в соответствии с типом транзакции контракта, шаблон контракта, соответствующий типу транзакции контракта, из предварительно сохраненных шаблонов транзакции. Блокчейн может дополнительно определять правило обработки транзакции контракта, соответствующее типу транзакции контракта, из шаблона контракта, и анализировать, через исполнение правила обработки транзакции контракта, чтобы получить адрес контракта и параметры транзакции, включенные в запрос данных контракта, причем адрес контракта представляет собой адрес хранения смарт-контракта в блокчейне. После этого узел обработки транзакции может выполнять поиск смарт-контракта в блокчейне в адресе контракта и затем передавать определенные параметры транзакции на смарт-контракт, предписывая смарт-контракту автоматически исполнять параметры транзакции и возвращать соответствующие результаты транзакции (т.е., информацию транзакции) на узел обработки транзакции. После того, как узел обработки транзакции принимает результаты транзакции, возвращенные смарт-контрактом, узел обработки транзакции может отобразить результаты транзакции пользователю и в то же самое время записать результаты транзакции в блокчейн для дальнейших операций пользователя, таких как выполнение верификации данных на результатах транзакции.
В отношении транзакций обмена, когда узел обработки транзакции принимает запрос транзакции, отправленный пользователем, узел обработки транзакции может определить шаблон обмена, способный обрабатывать запрос транзакции, из предварительно сохраненных шаблонов транзакции, и обработать транзакцию обмена, включенную в запрос транзакции, путем загрузки шаблона обмена, причем узел обработки транзакции может сначала определить, в соответствии с определенным типом транзакции обмена, правило обработки транзакции обмена, соответствующее типу транзакции обмена, из шаблона обмена. Посредством правила обработки транзакции обмена, узел обработки транзакции получает информацию, включенную в запрос транзакции, через анализ, например, инициатора транзакции, получателя транзакции, сумму транзакции и т.д., реализует вычитание соответствующей суммы транзакции из расчетного счета инициатора транзакции путем исполнения правила обработки транзакции обмена, и затем переводит эту сумму транзакции в обработку транзакции в расчетном счете получателя транзакции. В этом процессе, узел обработки транзакции может получить подробности транзакции этой транзакции (т.е., информацию транзакции). Чтобы пользователь увидел подробности транзакции в блокчейне в последующем процессе, и чтобы сертификат транзакции подробностей транзакции был обеспечен пользователю в последующем процессе, узел обработки транзакции может записывать подробности транзакции в блокчейн.
В вариантах осуществления настоящей заявки, узел обработки транзакции может также поддерживать обработку транзакции других транзакций, и пользователю требуется только загрузить шаблон транзакции желаемой транзакции в узел обработки транзакции, чтобы осуществить обработку транзакции узлом обработки транзакции.
Можно видеть из вышеописанных способов, что шаблоны транзакции для обработки различных целевых транзакций предварительно сохранены в узле обработки транзакции, а не в блокчейне. Поэтому, когда транзакция обновляется, пользователю требуется только выполнить соответствующие обновления шаблонов транзакции, сохраненных в узле обработки транзакции, чтобы сделать шаблоны транзакции способными поддерживать обновленную транзакцию. Нет необходимости повторно разрабатывать шаблоны транзакции для адаптации к обновленной транзакции, и стоимость поддержания транзакции будет намного уменьшена относительно современных технологий, в которых пользователь может только повторно разрабатывать смарт-контракты, чтобы повторно разработанные смарт-контракты могли поддерживать обработку транзакции обновленной транзакции.
В вариантах осуществления настоящей заявки, пользователь может предварительно компилировать все шаблоны транзакции и вводить шаблоны транзакции в узел обработки транзакции. Соответственно, после того как узел обработки транзакции принимает шаблоны транзакции, введенные пользователем, узел обработки транзакции может сохранить шаблоны транзакции в узле обработки транзакции. В последующем процессе, узел обработки транзакции может обрабатывать принятые запросы транзакции путем загрузки этих шаблонов транзакции.
В вариантах осуществления настоящей заявки, пользователь может упаковывать и освобождать все шаблоны транзакции на платформе транзакции, побуждая других пользователей, нуждающихся в инсталляционном пакете шаблона транзакции, загружать соответствующий инсталляционный пакет шаблонов транзакции из платформы транзакции и сохранять инсталляционный пакет шаблонов транзакции в локальном узле обработки транзакции. После того, как локальный узел обработки транзакции загружает инсталляционный пакет шаблонов транзакции, узел обработки транзакции обладает способностью обрабатывать транзакции соответственно шаблону транзакции, как показано на фиг. 2.
Фиг. 2 представляет собой схематичную диаграмму пользователей, освобождающих инсталляционные пакеты шаблона транзакции на платформе транзакции в соответствии с некоторыми вариантами осуществления настоящей заявки.
На фиг. 2, пользователь A может компилировать шаблоны транзакции с использованием компилированного языка и упаковывать шаблоны транзакции, соответственно, для выгрузки на платформу транзакции. После того, как платформа транзакции принимает инсталляционные пакеты шаблонов транзакции, выгруженные пользователем A, платформа транзакции может освободить инсталляционные пакеты шаблонов транзакции для загрузки и использования другими пользователями. Инсталляционные пакеты шаблонов транзакции могут также выгружаться другими пользователями, и пользователи могут совместно использовать свои соответственно компилированные инсталляционные пакеты шаблонов транзакции на платформе транзакции для использования пользователями.
Следует отметить, что в примерных применениях, смарт-контракты обычно компилируются и записываются в блокчейн самими пользователями. Если пользователь компилирует и записывает вредоносный смарт-контракт в блокчейн, смарт-контракт может привести к неудобству и потерям в обработке транзакции на основе смарт-контракта другими пользователями.
Чтобы предотвратить вышеописанную ситуацию, в вариантах осуществления настоящей заявки, платформа транзакции может проверять инсталляционные пакеты шаблонов транзакции, выгруженные пользователями. Когда обнаруживается, что инсталляционный пакет шаблонов транзакции, выгруженный пользователем, содержит вредоносные коды, инсталляционный пакет шаблонов транзакции не будет освобожден, тем самым обеспечивая благоприятную среду, чтобы загружать инсталляционные пакеты шаблонов транзакции для пользователей.
Варианты осуществления настоящей заявки дополнительно обеспечивают способ обработки транзакции. Фиг. 3 представляет собой схематичную диаграмму способа обработки транзакции в соответствии с некоторыми вариантами осуществления настоящей заявки.
Узел обработки транзакции принимает запрос транзакции и определяет тип транзакции целевой транзакции, включенной в запрос транзакции; загружает, в соответствии с типом транзакции, шаблон транзакции, соответствующий типу транзакции; дополнительно обрабатывает целевую транзакцию в соответствии с шаблоном транзакции и записывает информацию транзакции, полученную из обработки, в целевой блок в блокчейне; и при записи полученной информации транзакции в целевой блок, определяет и сохраняет значение изменения состояния целевого блока, причем значение изменения состояния используется, чтобы проверять, согласована ли информация транзакции, записанная в целевом блоке, с информацией транзакции, записанной в других блоках в блокчейне.
Более того, определение и сохранение значения изменения состояния целевого блока содержит:
после записи полученной информации транзакции в целевой блок, вычисление значения проверки целевого блока; определение значения проверки как значения изменения состояния целевого блока; и сохранение значения изменения состояния в блокчейне.
А именно, когда информация транзакции записывается в разные блоки, значения изменения блоков могут быть определены через вычисление. Таким образом, значения изменения разных блоков последовательно сохраняются в структуре дерева, такой как дерево Меркла (Merkle), и затем то, согласованы ли данные, хранящиеся в разных блоках в блокчейне, может быть определено через значение хеша корневого узла дерева Меркла.
Блокчейн в соответствии с вариантами осуществления настоящей заявки может представлять собой блокчейн, такой как Bitcoin-блокчейн, Ethereum-блокчейн, Litecoin-блокчейн и т.д.
Следует дополнительно отметить, что после того, как узел обработки транзакции завершает обработку целевой транзакции, желательной пользователю (т.е., целевой транзакции, включенной в запрос транзакции, отправленный пользователем), посредством определенного шаблона транзакции, узел обработки транзакции может сбросить загруженную модель транзакции, тем самым сберегая пространство памяти узла обработки транзакции. Альтернативно, после того как узел обработки транзакции завершает обработку целевой транзакции, узел обработки транзакции может также перевести шаблон транзакции в неактивное состояние (сон) и повторно активировать шаблон транзакции, после того как запрос транзакции, соответствующий шаблону транзакции, принят в дальнейшем, чтобы обработать запрос транзакции.
В вариантах осуществления настоящей заявки, все шаблоны транзакции для обработки различных целевых транзакций предварительно сохранены в узле обработки транзакции, а не хранятся в блокчейне. Поэтому, когда транзакция обновлена, пользователю требуется только выполнить соответствующие обновления шаблонов транзакции, хранящихся в узле обработки транзакции, чтобы сделать шаблоны транзакции способными поддерживать обновленную транзакцию. Нет необходимости повторно разрабатывать шаблоны транзакции, чтобы адаптироваться к обновленной транзакции, и стоимость поддержания транзакции будет намного уменьшена относительно современных технологий, в которых пользователь может только повторно разрабатывать смарт-контракты, чтобы повторно разработанные смарт-контракты могли поддерживать обработку транзакции обновленной транзакции. При этом решается проблема, состоящая в том, что способы обработки транзакции не являются гибко адаптируемыми к обновлениям транзакции, и гибкость обработки транзакции в блокчейнах существенно повышается.
Более того, в процессе, при котором узел обработки транзакции выполняет обработку транзакции посредством предварительно сохраненных шаблонов транзакции, все системные ресурсы, требуемые для обработки целевой транзакции посредством шаблона транзакции, распределяются самим узлом обработки транзакции, и узел обработки транзакции может использовать все системные ресурсы узла обработки транзакции для обработки целевой транзакции, что эффективно избегает свойственной современным технологиям проблемы, состоящей в том, что системные ресурсы, вызываемые виртуальной машиной в процессе исполнения смарт-контракта, недостаточны, намного повышает эффективность обработки транзакции блокчейна и облегчает обработку транзакции пользователя.
В вариантах осуществления настоящей заявки, в процессе обработки транзакции, пользователь может ввести соответствующий запрос транзакции в узел обработки транзакции. После того, как узел обработки транзакции принимает запрос транзакции, узел обработки транзакции определяет тип транзакции целевой транзакции, включенной в запрос транзакции, загружает шаблон транзакции, соответствующий типу транзакции, и обрабатывает целевую транзакцию посредством шаблона транзакции, причем узел обработки транзакции может представлять собой терминал, способный обрабатывать транзакции блокчейна, сервер для обработки транзакций блокчейна или клиент или приложение для обработки транзакций блокчейна.
Вышеописанное представляет собой способ обработки транзакции в соответствии с вариантами осуществления настоящей заявки. На основе того же самого принципа, варианты осуществления настоящей заявки дополнительно обеспечивают устройство обработки транзакции, как показано на фиг. 4.
Фиг. 4 представляет собой схематичную диаграмму устройства обработки транзакции в соответствии с некоторыми вариантами осуществления настоящей заявки, содержащего:
модуль 401 приема, выполненный с возможностью принимать запрос транзакции;
модуль 402 определения, выполненный с возможностью определять тип транзакции целевой транзакции, включенной в запрос транзакции;
модуль 403 загрузки шаблона, выполненный с возможностью загружать, в соответствии с типом транзакции, шаблон транзакции, соответствующий типу транзакции; и
модуль 404 обработки, выполненный с возможностью обрабатывать целевую транзакцию в соответствии с шаблоном транзакции и записывать информацию транзакции, полученную из обработки, в блокчейн.
Модуль 402 определения выполнен с возможностью определять идентификатор транзакции целевой транзакции и определять тип транзакции для транзакции, подлежащей обработке в соответствии с идентификатором транзакции.
Модуль 403 загрузки шаблона выполнен с возможностью определять шаблон транзакции, соответствующий типу транзакции, из сконфигурированных шаблонов транзакции и загружать шаблон транзакции.
Модуль 403 загрузки шаблона выполнен с возможностью генерировать, если не существует шаблона транзакции, соответствующего типу транзакции, в сконфигурированных шаблонах транзакции, шаблон транзакции, соответствующий типу транзакции; и загружать сгенерированный шаблон транзакции.
Модуль 404 обработки выполнен с возможностью обрабатывать целевую транзакцию в соответствии с правилом обработки транзакции, включенным в шаблон транзакции.
Модуль 404 обработки выполнен с возможностью определять правило обработки транзакции в шаблоне транзакции, соответствующем целевой транзакции; и обрабатывать целевую транзакцию в соответствии с правилом обработки транзакции.
Модуль 404 обработки выполнен с возможностью определять правило проверки, включенное в правило обработки транзакции; проверять, удовлетворяет ли запрос транзакции предварительно установленному условию в соответствии с правилом проверки; если запрос транзакции удовлетворяет предварительно установленному условию в соответствии с правилом проверки, обрабатывать целевую транзакцию в соответствии с правилом обработки в правиле обработки транзакции; и если запрос транзакции не удовлетворяет предварительно установленному условию в соответствии с правилом проверки, оповещать о том, что обработка целевой транзакции безуспешна.
Модуль 403 загрузки шаблона выполнен с возможностью определять, если определенный тип транзакции представляет собой тип транзакции отслеживания, правило обработки транзакции отслеживания, соответствующее типу транзакции отслеживания, из шаблона отслеживания, причем шаблон отслеживания соответствует типу транзакции отслеживания; и
модуль 404 обработки выполнен с возможностью получать через анализ, на основе правила обработки транзакции отслеживания, данные отслеживания, данные получателя и отправителя данных отслеживания, включенные в запрос данных отслеживания; переводить данные отслеживания от отправителя к получателю, генерировать соответствующую информацию перевода и записывать информацию перевода в блокчейн.
Модуль 403 загрузки шаблона выполнен с возможностью определять, если определенный тип транзакции представляет собой тип транзакции аутентификации, правило обработки транзакции аутентификации, соответствующее типу транзакции аутентификации, из шаблона аутентификации, причем шаблон аутентификации соответствует типу транзакции аутентификации; и
модуль 404 обработки выполнен с возможностью получать через анализ, на основе правила обработки транзакции аутентификации, данные аутентификации, включенные в запрос данных аутентификации; и записывать данные аутентификации в блокчейн.
Модуль 403 загрузки шаблона выполнен с возможностью определять, если определенный тип транзакции представляет собой тип транзакции контракта, правило обработки транзакции контракта, соответствующее типу транзакции контракта, из шаблона транзакции контракта, причем шаблон транзакции контракта соответствует типу транзакции контракта; и
модуль 404 обработки выполнен с возможностью получать через анализ, на основе правила обработки транзакции контракта, адрес контракта и параметры транзакции, включенные в запрос данных контракта; передавать, в соответствии с адресом контракта, параметры транзакции на смарт-контракт, соответствующий адресу контракта, предписывая смарт-контракту исполнять параметры транзакции и возвращать соответствующие результаты транзакции; и записывать принятые результаты транзакции в блокчейн.
Модуль 403 загрузки шаблона выполнен с возможностью определять, если определенный тип транзакции представляет собой тип обмена, правило обработки обмена, соответствующее типу обмена, из шаблона обмена, причем шаблон обмена соответствует типу обмена; и
модуль 404 обработки выполнен с возможностью получать через анализ, на основе правила обработки обмена, расчетный счет инициатора транзакции, сумму транзакции и расчетный счет получателя транзакции, включенные в запрос транзакции; вычитать сумму транзакции из расчетного счета инициатора транзакции, и переводить сумму транзакции на расчетный счет получателя транзакции, чтобы получить подробности транзакции; и записывать подробности транзакции в блокчейн.
В вариантах осуществления настоящей заявки, после того, как узел обработки транзакции принимает запрос транзакции, отправленный пользователем, узел обработки транзакции может загружать, в соответствии с типом транзакции целевой транзакции, включенной в запрос транзакции, шаблон транзакции, соответствующий типу транзакции, и обрабатывать целевую транзакцию посредством шаблона транзакции. Здесь, все шаблоны транзакции для обработки различных целевых транзакций предварительно сохранены в узле обработки транзакции, а не хранятся в блокчейне. Поэтому, когда транзакция обновляется, пользователю требуется только выполнить соответствующие обновления шаблонов транзакции, хранящихся в узле обработки транзакции, чтобы шаблоны транзакции могли поддерживать обновленную транзакцию. Нет необходимости повторно разрабатывать шаблоны транзакции, чтобы адаптироваться к обновленной транзакции, и стоимость поддержания транзакции будет намного уменьшена относительно современных технологий, в которых пользователь может только повторно разрабатывать смарт-контракты, чтобы повторно разработанные смарт-контракты могли поддерживать обработку транзакции обновленной транзакции. При этом решается проблема, состоящая в том, что способы обработки транзакции не являются гибко адаптируемыми к обновлениям транзакции, и гибкость обработки транзакции в блокчейнах существенно повышается.
Более того, в процессе, при котором узел обработки транзакции выполняет обработку транзакции посредством предварительно сохраненных шаблонов транзакции, все системные ресурсы, требуемые для обработки целевой транзакции посредством шаблона транзакции, распределяются самим узлом обработки транзакции, и узел обработки транзакции может использовать все системные ресурсы узла обработки транзакции для обработки целевой транзакции, что эффективно избегает присущей современным технологиям проблемы, состоящей в том, что системные ресурсы, вызываемые виртуальной машиной в процессе исполнения смарт-контракта, недостаточны, существенно повышает эффективность обработки транзакции блокчейна и облегчает обработку транзакции пользователя.
На основе того же самого принципа, варианты осуществления настоящей заявки дополнительно обеспечивают устройство обработки транзакции, как показано на фиг. 5.
Фиг. 5 представляет собой схематичную диаграмму устройства обработки транзакции в соответствии с некоторыми вариантами осуществления настоящей заявки, содержащего:
модуль 501 приема, выполненный с возможностью принимать запрос транзакции и определять тип транзакции целевой транзакции, включенной в запрос транзакции;
модуль 502 загрузки шаблона, выполненный с возможностью загружать, в соответствии с типом транзакции, шаблон транзакции, соответствующий типу транзакции; и
модуль 503 обработки, выполненный с возможностью обрабатывать целевую транзакцию в соответствии с шаблоном транзакции и записывать информацию транзакции, полученную из обработки, в целевой блок в блокчейне; и при записи полученной информации транзакции в целевой блок, определять и сохранять значение изменения состояния целевого блока, причем значение изменения состояния используется, чтобы проверять, согласована ли информация транзакции, записанная в целевом блоке, с информацией транзакции, записанной в других блоках в блокчейне.
В некоторых других вариантах осуществления настоящей заявки, модуль 503 обработки, определяющий и сохраняющий значение изменения состояния целевого блока, содержит:
после записи полученной информации транзакции в целевой блок, вычисление значения проверки целевого блока;
определение значения проверки как значения изменения состояния целевого блока; и
сохранение значения изменения состояния в блокчейне.
В 1990-х, может, очевидно, явно различаться то, является ли совершенствование технологии совершенствованием аппаратных средств (например, улучшением структуры схемы, такой как диод, транзистор и переключатель) или совершенствованием программного обеспечения (улучшением процедуры способа). Однако с развитием технологий, современные улучшения многих процедур способа могут рассматриваться как непосредственные улучшения структур схем аппаратных средств. Разработчики почти всегда получают соответствующую структуру схемы аппаратных средств путем программирования последовательности операций способа в схему аппаратных средств. Поэтому, нельзя заключить, что улучшение последовательности операций способа не может быть реализовано при помощи модуля аппаратных средств. Например, программируемое логическое устройство (PLD) (например, программируемая вентильная матрица (FPGA)) является такой интегральной схемой, что логические функции интегральной схемы определяются пользователем посредством программирования устройства. Разработчик может программировать самостоятельно, чтобы ʺинтегрироватьʺ цифровую систему на один элемент PLD, без необходимости запрашивать производителя чипа спроектировать и произвести чип специализированной IC. В настоящее время, более того, этот тип программирования часто реализуется через программное обеспечение ʺлогического компилятораʺ, а не путем ручного производства чипов IC. Программное обеспечение логического компилятора аналогично компилятору программного обеспечения, используемому для разработки и написания программ, в то время как конкретный язык программирования должен использоваться для написания исходных кодов до компилирования, который упоминается как язык описания аппаратных средств (HDL). Существует не один, а множество типов HDL, таких как ABEL (усовершенствованный язык булевых выражений), AHDL (язык описания аппаратных средств Altera), Confluence, CUPL (язык программирования Корнеллского университета), HDCal, JHDL (язык описания аппаратных средств Java), Lava, Lola, MyHDL, PALASM, RHDL (язык описания аппаратных средств Ruby) и т.д. Наиболее часто используемое в настоящее время включает в себя VHDL (язык описания аппаратных средств на быстродействующих интегральных схемах) и Verilog. Специалист в данной области техники должен также знать, что будет легко получить аппаратную схему, чтобы реализовать логическую последовательность операций способа путем использования вышеописанных HDL, чтобы выполнить в небольшом объеме логическое программирование на последовательности операций способа и запрограммировать последовательность операций способа в IC.
Контроллер может быть реализован любым подходящим способом. Например, контроллер может быть в форме микропроцессора или процессора, а также машиночитаемого носителя, который хранит машиночитаемый программный код (такой как программное обеспечение или прошивка), который может исполняться (микро)процессором, логической схемой, переключателем, специализированной интегральной схемой (ASIC), программируемым логическим контроллером или встроенным микропроцессором. Примеры контроллера включают в себя, но без ограничения, следующие микроконтроллеры: ARC 625D, Atmel AT91SAM, Микрочип PIC18F26K20 и Silicone Labs C8051F320. Контроллер памяти может также быть реализован как часть управляющей логики памяти. Специалист в данной области техники также должен знать, что, в дополнение к реализации контроллера с использованием чисто считываемых машиночитаемых программных кодов, логическое программирование может быть выполнено на этапах способа, чтобы позволять контроллеру реализовывать те же самые функции в форме логической схемы, переключателя, ASIC, программируемого логического контроллера, встроенного микроконтроллера и т.д.. Поэтому, такой контроллер может рассматриваться как компонент аппаратных средств, и устройства, содержащиеся в контроллере и выполненные с возможностью реализовывать различные функции в контроллере, могут также рассматриваться как структура в компоненте аппаратных средств. Альтернативно, устройства, выполненные с возможностью реализовывать различные функции, могут даже рассматриваться как модули программного обеспечения для реализации способа и как структура в компоненте аппаратных средств.
Система, устройство, модуль или блок, описанные в предыдущих вариантах осуществления, могут быть реализованы с использованием компьютерного чипа или объекта или могут быть реализованы с использованием продукта, имеющего определенную функцию. Обычным устройством реализации является компьютер. Компьютер может быть, например, персональным компьютером, ноутбуком, сотовым телефоном, камерофоном, смартфоном, персональным цифровым ассистентом, медиа-плеером, устройством навигации, устройством электронной почты, игровой консолью, планшетным компьютером или носимым устройством или комбинацией любых из этих устройств.
Для удобства описания, представленное выше устройство разделено на различные блоки в соответствии с функциями для иллюстрации. Функции блоков могут быть реализованы в одной или нескольких частях программного обеспечения и/или аппаратных средств, при реализации настоящей заявки.
Специалист в данной области техники должен понимать, что варианты осуществления настоящего изобретения могут быть обеспечены как способ, система или компьютерный программный продукт. Поэтому, настоящее изобретение может быть реализовано как вариант осуществления полностью в аппаратных средствах, вариант осуществления полностью в программном обеспечении или вариант осуществления, комбинирующий программное обеспечение и аппаратные средства. Более того, настоящее изобретение может быть в форме компьютерного программного продукта, реализованного на одном или нескольких используемых компьютером носителях хранения (включая, но без ограничения, память на магнитном диске, CD-ROM, оптическую память и т.д.), содержащих используемые компьютером программные коды.
Настоящее изобретение описано со ссылкой на блок-схемы последовательности операций и/или блок-схемы способа, устройства (системы) и компьютерного программного продукта в соответствии с вариантами осуществления настоящего изобретения. Следует отметить, что компьютерные программные инструкции могут использоваться для реализации каждого процесса и/или каждого блока в блок-схемах последовательности операций и/или блок-схемах устройства и комбинации процессов и/или блоков в блок-схемах последовательности операций и/или блок-схемах устройства. Эти компьютерные программные инструкции могут быть обеспечены для универсального компьютера, специализированного компьютера, встроенного процессора или процессора другого программируемого устройства обработки данных, чтобы генерировать машину, так что инструкции, исполняемые компьютером или процессором другого программируемого устройства обработки данных, генерируют устройство для реализации конкретной функции, заданной в одном или нескольких процессах в блок-схемах последовательности операций и/или в одном или нескольких блоках в блок-схемах устройства.
Эти компьютерные программные инструкции могут также храниться в машиночитаемой памяти, которая может инструктировать компьютер или другое программируемое устройство обработки данных работать конкретным образом, так что инструкции, хранящиеся в машиночитаемой памяти, предписывают генерировать промышленное изделие, которое включает в себя устройство инструкций. Устройство инструкций реализует конкретную функцию, заданную в одном или нескольких процессах в блок-схемах последовательности операций и/или в одном или нескольких блоках в блок-схемах устройств.
Эти компьютерные программные инструкции могут быть загружены на компьютер или другое программируемое устройство обработки данных, предписывая выполнение последовательности операций и этапов на компьютере или другом программируемом устройстве, тем самым генерируя реализуемую компьютером обработку. Поэтому, инструкции, исполняемые на компьютере или другом программируемом устройстве, обеспечивают этапы для реализации функции, заданной в одном или нескольких процессах в блок-схемах последовательности операций и/или в одном или нескольких блоках в блок-схемах устройств.
В типовой конфигурации, вычислительное устройство включает в себя один или несколько процессоров (CPU), интерфейсов ввода/вывода, сетевых интерфейсов и память.
Память может включать в себя машиночитаемые носители, такие как энергозависимая память, память с произвольным доступом (RAM) и/или энергонезависимая память, например, постоянная память (ROM) или флэш-RAM. Память представляет собой пример машиночитаемого носителя.
Машиночитаемые носители включают в себя постоянные, энергозависимые, мобильные и немобильные носители, которые могут реализовывать хранение информации посредством любого способа или технологии. Информация может представлять собой машиночитаемые инструкции, структуры данных, программные модули или другие данные. Примеры компьютерных носителей хранения включают в себя, но без ограничения, блоки памяти с произвольным доступом с фазовым изменением (PRAM), статической памяти с произвольным доступом (SRAM), динамической памяти с произвольным доступом (DRAM) или другие типы блоков памяти с произвольным доступом (RAM), постоянной памяти (ROM), электрически стираемой программируемой постоянной памяти (EEPROM), флэш-памяти или других технологий памяти, блоки постоянной памяти на компакт-диске (CD-ROM), цифровые универсальные диски (DVD) или другие блоки оптической памяти, кассеты, кассетные и дисковые устройства памяти или другие блоки магнитной памяти или любые другие носители, не являющиеся средами передачи, которые могут использоваться для хранения информации, доступ к которой может осуществляться вычислительным устройством. В соответствии с определением в настоящей спецификации, машиночитаемые носители не включают в себя переходные носители (среды), такие как модулированные сигналы данных и несущие.
Следует дополнительно отметить, что термины ʺвключающий в себяʺ, ʺсодержащийʺ или любые другие варианты этих терминов предназначены, чтобы охватывать не исключающее включение, позволяющее процессу, способу, продукту или устройству, содержащему последовательность элементов, не только содержать эти элементы, но также содержать другие элементы, которые не перечислены явно, или дополнительно содержать элементы, которые являются присущими процессу, способу, продукту или устройству. Когда не имеется дополнительного ограничения, элементы, определяемые утверждением ʺсодержащий один…ʺ, не исключают того, что процесс, способ, продукт или устройство, содержащие вышеуказанные элементы, также содержат дополнительные идентичные элементы.
Специалист в данной области техники должен понимать, что варианты осуществления настоящей заявки могут быть обеспечены как способ, система или компьютерный программный продукт. Поэтому, настоящая заявка может быть реализована как вариант осуществления полностью в аппаратных средствах, вариант осуществления полностью в программном обеспечении или вариант осуществления, комбинирующий программное обеспечение и аппаратные средства. Более того, настоящая заявка может быть в форме компьютерного программного продукта, реализованного на одном или нескольких используемых компьютером носителях хранения (включая, но без ограничения, память на магнитном диске, CD-ROM, оптическую память и т.д.), содержащих используемые компьютером программные коды.
Настоящая заявка может быть описана в общем контексте исполняемой компьютером инструкции, которая исполняется компьютером, например, программным модулем. В общем, программный модуль включает в себя стандартную программу, программу, объект, компонент, структуру данных и т.д. для исполнения конкретной задачи или реализации специального абстрактного типа данных. Настоящая заявка может также быть практически реализована в распределенных вычислительных средах. В этих распределенных вычислительных средах, задачи выполняются удаленными устройствами обработки, соединенными через сети связи. В распределенных вычислительных средах, программный модуль может быть расположен как в локальных, так и в удаленных компьютерных носителях хранения, включающих в себя устройства хранения.
Варианты осуществления в настоящей спецификации описаны постепенным образом, причем каждый вариант осуществления фокусируется на отличиях от других вариантов осуществления, и на варианты осуществления могут даваться взаимные ссылки касательно идентичных или аналогичных частей. В частности, вариант осуществления системы описан относительно простым образом, так как вариант осуществления системы, по существу, аналогичен варианту осуществления способа. На описание варианта осуществления способа могут даваться ссылки в отношении связанных частей.
Вышеописанное представляет собой только варианты осуществления настоящей заявки, которые не используются для ограничения настоящей заявки. Для специалиста в данной области техники, настоящая заявка может иметь различные модификации и изменения. Любая модификация, эквивалентная замена или усовершенствование, выполненные в пределах сущности и принципа настоящей заявки, должны охватываться формулой изобретения настоящей заявки.