RU2744322C2 - ПЛАТФОРМА "ФУНКЦИЯ-КАК-УСЛУГА" (FaaS) В БЛОКЧЕЙН СЕТЯХ - Google Patents

ПЛАТФОРМА "ФУНКЦИЯ-КАК-УСЛУГА" (FaaS) В БЛОКЧЕЙН СЕТЯХ Download PDF

Info

Publication number
RU2744322C2
RU2744322C2 RU2019111902A RU2019111902A RU2744322C2 RU 2744322 C2 RU2744322 C2 RU 2744322C2 RU 2019111902 A RU2019111902 A RU 2019111902A RU 2019111902 A RU2019111902 A RU 2019111902A RU 2744322 C2 RU2744322 C2 RU 2744322C2
Authority
RU
Russia
Prior art keywords
function
controller
call
version
smart contract
Prior art date
Application number
RU2019111902A
Other languages
English (en)
Other versions
RU2019111902A (ru
RU2019111902A3 (ru
Inventor
Кайлай ШАО
Сюймин ЛУ
Original Assignee
Эдванст Нью Текнолоджиз Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Эдванст Нью Текнолоджиз Ко., Лтд. filed Critical Эдванст Нью Текнолоджиз Ко., Лтд.
Publication of RU2019111902A publication Critical patent/RU2019111902A/ru
Publication of RU2019111902A3 publication Critical patent/RU2019111902A3/ru
Application granted granted Critical
Publication of RU2744322C2 publication Critical patent/RU2744322C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Retry When Errors Occur (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Изобретение относится к способу, считываемому компьютером носителю данных и системе для предоставления платформы "функция-как-услуга" (FaaS) в блокчейн сети. Технический результат заключается в автоматическом выполнении узлом блокчейн сети транзакции, использующей смарт-контракт. В способе принимают из смарт-контракта и посредством первого приложения функции, содержащего первый контроллер функции, выполняемый в блокчейн сети, вызов первой функции, содержащий данные для выполнения первой функции, выполняемой посредством кода в первом приложении функции, содержащем множество версий первой функции, первый контроллер функции маршрутизирует вызов первой функции в соответствующую версию первой функции, при этом первое приложение функции хранится в блокчейн сети, первый контроллер функции имеет уникальный адрес в блокчейн сети, и каждая из версий первой функции имеет соответствующий уникальный адрес в блокчейн сети; посредством первого контроллера функции передают данные вызова первой функции в первый компонент функции, выполняющий первую функцию на основе данных вызова первой функции; принимают результат первой функции из первого компонента функции; и предоставляют результат первой функции в смарт-контракт. 3 н. и 21 з.п. ф-лы, 5 ил., 1 табл.

Description

Уровень техники
[0001] Системы распределенных реестров (Distributed Ledger Systems - DLS), которые также могут упоминаться как консенсусные сети и/или блокчейн сети, позволяют участвующим объектам защищенно и неизменно сохранять данные. DLS обычно упоминаются как блокчейн сети независимо от конкретных вариантов использования (например, криптовалют). Примерные типы блокчейн сетей могут включать в себя открытые блокчейн сети, закрытые блокчейн сети и консорциальные блокчейн сети. Открытая блокчейн сеть является открытой для всех объектов в том, чтобы использовать DLS и участвовать в консенсусном процессе. Закрытая блокчейн сеть предоставляется для конкретного объекта, который централизованно управляет разрешениями на считывание и запись. Консорциальная блокчейн сеть предоставляется для выбранной группы объектов, которые управляют консенсусным процессом, и включает в себя уровень управления доступом.
[0002] Смарт-контракты могут выполняться в блокчейн сетях для того, чтобы выполнять одну или более функций. Смарт-контракт может описываться как монолитное приложение, которое включает в себя кодированные функции. В качестве монолитного приложения, могут требоваться относительно надежные операции разработки для того, чтобы поддерживать смарт-контракт (например, кодирование каждой функции, обновления функций, приводящие к обновлениям всего смарт-контракта).
Сущность изобретения
[0003] Реализации настоящего описания изобретения включают в себя выполняемые компьютером способы для инициализации приложений в блокчейн сетях. Более конкретно, реализации настоящего описания изобретения направлены на платформу "функция-как-услуга" (function-as-a-service - FaaS), чтобы инициализировать функции в приложения, выполняемые в блокчейн сетях.
[0004] В некоторых реализациях, действия включают в себя прием, из смарт-контракта и посредством первого контроллера функции, выполняемого в блокчейн сети, вызова первой функции, чтобы выполнять первую функцию, причем вызов первой функции включает в себя данные для выполнения первой функции, передачу, посредством первого контроллера функции, данных вызова первой функции в первый компонент функции, причем первый компонент функции выполняет первую функцию на основе данных вызова первой функции, прием, посредством первого контроллера функции, результата первой функции из первого компонента функции и предоставление, посредством первого контроллера функции, результата первой функции в смарт-контракт. Другие реализации включают в себя соответствующие системы, оборудование и компьютерные программы, выполненные с возможностью выполнять действия способов, кодированных на компьютерных устройствах хранения данных.
[0005] Эти и другие реализации необязательно могут включать в себя один или более следующих признаков: вызов первой функции дополнительно включает в себя адрес первой функции и идентификатор версии первой функции; идентификатор версии является нулем, что указывает то, что последняя версия первой функции должна выполняться; действия дополнительно включают в себя обновление, посредством первого контроллера функции, статистики, ассоциированной с версией первой функции, которая выполнена в ответ на вызов первой функции; статистика указывает число раз, которое каждая версия первой функции выполнена; действия дополнительно включают в себя: прием, из смарт-контракта и посредством выполнения второго контроллера функции в блокчейн сети, вызова второй функции, чтобы выполнять вторую функцию, причем вызов второй функции включает в себя данные для выполнения второй функции, при этом вторая функция отличается от первой функции, и при этом второй контроллер функции отличается от первого контроллера функции, передачу, посредством второго контроллера функции, данных вызова второй функции во второй компонент функции, причем второй компонент функции выполняет вторую функцию на основе данных вызова второй функции, при этом второй компонент функции отличается от первого компонента функции, прием, посредством второго контроллера функции, результата второй функции из второго компонента функции и предоставление, посредством второго контроллера функции, результата второй функции в смарт-контракт; первая функция и вторая функция предоставляются посредством различных поставщиков; и смарт-контракт выполняет транзакцию по меньшей мере частично на основе результатов функций, причем транзакция записывается в блокчейне блокчейн сети.
[0006] Настоящее описание изобретения также предоставляет один или более энергонезависимых считываемых компьютером носителей хранения данных, соединенных с одним или более процессоров и имеющих сохраненные инструкции, которые, при выполнении посредством одного или более процессоров, инструктируют упомянутым одному или более процессорам выполнять операции в соответствии с реализациями способов, предусмотренных в данном документе.
[0007] Настоящее описание изобретения дополнительно предоставляет систему для реализации способов, предусмотренных в настоящем документе. Система включает в себя один или более процессоров и считываемый компьютером носитель хранения данных, соединенный с одним или более процессоров, имеющий сохраненные инструкции, которые, при выполнении посредством одного или более процессоров, инструктируют упомянутым одному или более процессорам выполнять операции в соответствии с реализациями способов, предусмотренных в данном документе.
[0008] Следует принимать во внимание, что способы в соответствии с настоящим описанием изобретения могут включать в себя любую комбинацию аспектов и признаков, описанных в данном документе. Таким образом, способы в соответствии с настоящим описанием изобретения не ограничены комбинациями аспектов и признаков, конкретно описанными в данном документе, но также включают в себя любую предоставленную комбинацию аспектов и признаков.
[0009] Подробности одной или более реализаций настоящего описания изобретения изложены на прилагаемых чертежах и в нижеприведенном описании. Другие признаки и преимущества настоящего описания изобретения должны становиться очевидными из описания и чертежей, а также из формулы изобретения.
Описание чертежей
[0010] Фиг. 1 иллюстрирует примерное окружение, которое может использоваться для того, чтобы выполнять реализации настоящего описания изобретения.
[0011] Фиг. 2 иллюстрирует примерную концептуальную архитектуру в соответствии с реализациями настоящего описания изобретения.
[0012] Фиг. 3 иллюстрирует примерную концептуальную архитектуру для платформы "функция-как-услуга" (FaaS) в соответствии с реализациями настоящего описания изобретения.
[0013] Фиг. 4 иллюстрирует общую диаграмму, показывающую связь между компонентами в соответствии с реализациями настоящего описания изобретения.
[0014] Фиг. 5 иллюстрирует примерный процесс, который может выполняться в соответствии с реализациями настоящего описания изобретения.
[0015] Аналогичные ссылки с номерами на различных чертежах указывают аналогичные элементы.
Подробное описание изобретения
[0016] Реализации настоящего описания изобретения включают в себя выполняемые компьютером способы для инициализации приложений в блокчейн сетях. Более конкретно, реализации настоящего описания изобретения направлены на платформу "функция-как-услуга" (FaaS), чтобы инициализировать функции в приложения, выполняемые в блокчейн сетях. В некоторых реализациях, действия включают в себя прием, из смарт-контракта и посредством выполнения контроллера функции в блокчейн сети, вызова функции, чтобы выполнять функцию, причем вызов функции включает в себя данные для выполнения функции, передачу, посредством контроллера функции, данных вызова функции в компонент функции, причем компонент функции выполняет функцию на основе данных вызова функции, прием, посредством контроллера функции, результата функции из компонента функции и предоставление, посредством контроллера функции, результата функции в смарт-контракт.
[0017] Чтобы предоставлять дополнительный контекст для реализаций настоящего описания изобретения, и как представлено выше, системы распределенных реестров (DLS), которые также могут упоминаться как консенсусные сети (например, состоящие из узлов между одноранговыми узлами) и блокчейн сети, позволяют участвующим объектам защищенно и неизменно проводить транзакции и сохранять данные. Хотя термин "блокчейн", в общем, ассоциирован с криптовалютной сетью биткоинов, блокчейн используется в данном документе, чтобы, в общем, означать DLS независимо от конкретных вариантов использования. Как представлено выше, блокчейн сеть может предоставляться в качестве открытой блокчейн сети, закрытой блокчейн сети или консорциальной блокчейн сети.
[0018] В открытой блокчейн сети, консенсусный процесс управляется посредством узлов консенсусной сети. Например, сотни, тысячи, даже миллионы объектов могут взаимодействовать в открытой блокчейн сети, каждый из которых управляет по меньшей мере одним узлом в открытой блокчейн сети. Соответственно, открытая блокчейн сеть может считаться открытой сетью относительно участвующих объектов. В некоторых примерах, большинство объектов (узлов) должны подписывать каждый блок для того, чтобы блок был достоверным и добавлялся в блокчейн (распределенный реестр) блокчейн сети. Примерная открытая блокчейн сеть включает в себя сеть биткоинов, которая представляет собой платежную сеть между одноранговыми узлами. Сеть биткоинов использует распределенный реестр, называемый "блокчейн". Тем не менее, как отмечено выше, термин "блокчейн" используется для того, чтобы, в общем, означать распределенные реестры без конкретной ссылки на сеть биткоинов.
[0019] В общем, открытая блокчейн сеть поддерживает открытые транзакции. Открытая транзакция совместно используется со всеми узлами в открытой блокчейн сети и сохраняется в глобальный блокчейн. Глобальный блокчейн представляет собой блокчейн, который реплицируется по всем узлам. Таким образом, все узлы находятся в идеальном консенсусе состояния относительно глобального блокчейна. Чтобы достигать консенсуса (например, соглашения с добавлением блока в блокчейн), консенсусный протокол реализуется в открытой блокчейн сети. Примерный консенсусный протокол включает в себя, без ограничения, доказательство выполнения работы (proof-of-work - POW), реализованное в сети биткоинов.
[0020] В общем, закрытая блокчейн сеть предоставляется для конкретного объекта, который централизованно управляет разрешениями на считывание и запись. Объект управляет тем, какие узлы имеют возможность участвовать в блокчейн сети. Следовательно, закрытые блокчейн сети, в общем, упоминаются в качестве сетей с контролируемым доступом, которые устанавливают ограничения касательно того, кому разрешается участвовать в сети, и касательно их уровня участия (например, только в определенных транзакциях). Различные типы механизмов управления доступом могут использоваться (например, существующие участники голосуют по добавлению новых объектов, контролирующий орган может управлять допуском).
[0021] В общем, консорциальная блокчейн сеть является закрытой между участвующими объектами. В консорциальной блокчейн сети, консенсусный процесс управляется посредством авторизованного набора узлов, причем один или более узлов управляются посредством соответствующего объекта (например, финансового учреждения, страховой компании). Например, консорциум из десяти (10) объектов (например, финансовых учреждений, страховых компаний) может управлять консорциальной блокчейн сетью, каждый из которых управляет по меньшей мере одним узлом в консорциальной блокчейн сети. Соответственно, консорциальная блокчейн сеть может считаться закрытой сетью относительно участвующих объектов. В некоторых примерах, каждый объект (узел) должен подписывать каждый блок для того, чтобы блок был достоверным и добавлялся в блокчейн. В некоторых примерах по меньшей мере поднабор объектов (узлов) (например, по меньшей мере 7 объектов) должен подписывать каждый блок для того, чтобы блок был достоверным и добавлялся в блокчейн.
[0022] Реализации настоящего описания изобретения подробнее описываются в данном документе со ссылкой на открытую блокчейн сеть, которая является открытой между участвующими объектами. Тем не менее, предполагается, что реализации настоящего описания изобретения могут быть реализованы в любом соответствующем типе блокчейн сети. Хотя технологии, описанные в настоящем описании изобретения, указываются как релевантные для открытых блокчейн сетей, технологии также могут использоваться, с/без изменений, в других типах блокчейн сетей, включающих в себя закрытые блокчейн сети и консорциальные блокчейн сети.
[0023] В дальнейшем подробнее описываются реализации настоящего описания изобретения в данном документе с учетом вышеизложенного контекста. Более конкретно, и как представлено выше, реализации настоящего описания изобретения направлены на FaaS-платформу, чтобы инициализировать функции в приложения, выполняемые в блокчейн сетях. Таким образом, разработчики могут разрабатывать приложения (например, смарт-контракты), которые являются относительно несложными (например, с точки зрения кодирования) и могут вызывать одну или более функций через FaaS-платформу настоящего описания изобретения.
[0024] Чтобы предоставлять дополнительный контекст для реализаций настоящего описания изобретения, в блокчейн сетях, приложения могут разрабатываться, тестироваться и развертываться для выполнения в блокчейн сети. Примерное приложение может включать в себя, без ограничения, смарт-контракт. Смарт-контракт может описываться как цифровые представления законных контрактов реального мира, имеющих контрактные условия, затрагивающие различные стороны. Смарт-контракт реализуется, сохраняется, обновляется (по мере необходимости) и выполняется, в примерном контексте, в консорциальной блокчейн сети. Стороны контракта, ассоциированные со смарт-контрактом (например, покупатели и продавцы), представляются как узлы в консорциальной блокчейн сети.
[0025] В некоторых примерах, смарт-контракт может сохранять данные, которые могут использоваться для того, чтобы записывать информацию, факты, ассоциирования, балансы и любую другую информацию, требуемую для того, чтобы реализовывать логику для выполнения договора. Смарт-контракты могут описываться как исполняемая компьютером программа, состоящая из функций, причем экземпляр смарт-контракта может создаваться, и функции могут активироваться для выполнения их логики.
[0026] В технических терминах, смарт-контракты могут реализовываться на основе объектов и объектно-ориентированных классов. Например, термины и компоненты смарт-контракта могут представляться как объекты, которые обрабатываются посредством приложений, реализующих смарт-контракты. Смарт-контракт (или объект в смарт-контракте) может вызывать другой смарт-контракт (или объект в идентичном смарт-контракте), идентично другим объектно-ориентированным объектам. Вызовы, которые выполняются посредством объекта, например, могут представлять собой вызов для того, чтобы создавать, обновлять, удалять, распространять или обмениваться данными с объектами другого класса. Вызовы между объектами могут реализовываться как функции, методы, интерфейсы прикладного программирования (API) или другие вызывающие механизмы. Например, первый объект может вызывать функцию, чтобы создавать второй объект.
[0027] Интегрированная среда разработки (IDE) может использоваться для того, чтобы разрабатывать, тестировать и развертывать приложения, такие как смарт-контракты, в блокчейн сетях. Примерная IDE включает в себя Remix IDE, предоставленную компанией Ethereum Foundation, Цуг, Швейцария, для создания смарт-контрактов в Solidity.
[0028] Фиг. 1 иллюстрирует примерное окружение 100, которое может использоваться для того, чтобы выполнять реализации настоящего описания изобретения. В некоторых примерах, примерное окружение 100 обеспечивает возможность объектам участвовать в закрытой блокчейн сети 102. Примерное окружение 100 включает в себя вычислительные устройства 106, 108 и сеть 110. В некоторых примерах, сеть 110 включает в себя локальную вычислительную сеть (LAN), глобальную вычислительную сеть (WAN), Интернет либо комбинацию вышеозначенного и соединяет веб-узлы, пользовательские устройства (например, вычислительные устройства) и внутренние интерфейсные системы. В некоторых примерах, к сети 110 может осуществляться доступ по линии проводной и/или беспроводной связи.
[0029] В проиллюстрированном примере, вычислительные системы 106, 108 могут включать в себя любую соответствующую вычислительную систему, которая обеспечивает участие в качестве узла в закрытой блокчейн сети 102. Примерные вычислительные устройства включают в себя, без ограничения, сервер, настольный компьютер, переносной компьютер, планшетное вычислительное устройство и смартфон. В некоторых примерах, вычислительные системы 106, 108 размещают одну или более выполняемых компьютером услуг для взаимодействия с закрытой блокчейн сетью 102. Например, вычислительная система 106 может размещать выполняемые компьютером услуги первого объекта (например, пользователя A), к примеру, система управления транзакциями, которую использует первый объект для того, чтобы управлять своими транзакциями с одним или более других объектов (например, других пользователей). Вычислительная система 108 может размещать выполняемые компьютером услуги второго объекта (например, пользователя B), к примеру, система управления транзакциями, которую использует второй объект для того, чтобы управлять своими транзакциями с одним или более других объектов (например, других пользователей). В примере по фиг. 1, закрытая блокчейн сеть 102 представляется как сеть с одноранговыми узлами узлов, и вычислительные системы 106, 108 предоставляют узлы первого объекта и второго объекта, соответственно, которые участвуют в закрытой блокчейн сети 102.
[0030] Фиг. 2 иллюстрирует примерную концептуальную архитектуру 200 в соответствии с реализациями настоящего описания изобретения. Примерная концептуальная архитектура 200 включает в себя уровень 202 объектов, уровень 204 предоставления размещаемых услуг и уровень 206 блокчейн сети. В проиллюстрированном примере, уровень 202 объектов включает в себя три объекта, объект_1 (E1), объект_2 (E2) и объект_3 (E3), причем каждый объект имеет соответствующую систему 208 управления транзакциями.
[0031] В проиллюстрированном примере, уровень 204 предоставления размещаемых услуг включает в себя интерфейсы 210 для каждой системы 208 управления транзакциями. В некоторых примерах, соответствующая система 208 управления транзакциями обменивается данными с соответствующим интерфейсом 210 по сети (например, по сети 110 по фиг. 1) с использованием протокола (например, протокола защищенной передачи гипертекста (HTTPS)). В некоторых примерах, каждый интерфейс 210 предоставляет соединение связи между соответствующей системой 208 управления транзакциями и уровнем 206 блокчейн сети. Более конкретно, интерфейс 210 обменивается данными с блокчейн сетью 212 уровня 206 блокчейн сети. В некоторых примерах, связь между интерфейсом 210 и уровнем 206 блокчейн сети проводится с использованием удаленных вызовов процедур (RPC). В некоторых примерах, интерфейсы 210 "размещают" узлы блокчейн сети для соответствующих систем 208 управления транзакциями. Например, интерфейсы 210 предоставляют интерфейс прикладного программирования (API) для доступа к блокчейн сети 212.
[0032] Как описано в данном документе, блокчейн сеть 212 предоставляется в качестве сети с одноранговыми узлами, включающей в себя множество узлов 214, которые неизменно записывают информацию в блокчейн 216. Хотя один блокчейн 216 схематично проиллюстрирован, несколько копий блокчейна 216 предоставляются и поддерживаются через блокчейн сеть 212. Например, каждый узел 214 сохраняет копию блокчейна. В некоторых реализациях, блокчейн 216 сохраняет информацию, ассоциированную с транзакциями, которые выполняются между двумя или более объектов, участвующих в закрытой блокчейн сети.
[0033] Фиг. 3 иллюстрирует примерную концептуальную архитектуру для FaaS-платформы 300 в соответствии с реализациями настоящего описания изобретения. Как подробнее описано в данном документе, FaaS-платформа 300 используется для того, чтобы инициализировать функции, которые поддерживают выполнение смарт-контрактов, таких как смарт-контракт 302 по фиг. 3. В некоторых примерах, смарт-контракт 302 может выполнять транзакции, которые записываются в блоках 304 блокчейна.
[0034] В примере по фиг. 3, FaaS-платформа 300 включает в себя инициатор 306 транзакций, который, например, может представлять собой узел, который инициирует действие, указывающее выполнение смарт-контракта 302. Например, инициатор 306 транзакций может отправлять запрос 308, чтобы вызывать выполнение смарт-контракта 302. В некоторых примерах, смарт-контракт 302 принимает запрос и выполняет логику, программируемую в смарт-контракте 302. В соответствии с реализациями настоящего описания изобретения, логика может включать в себя вызов в одно или более приложений 312 функции FaaS-платформы 300.
[0035] В некоторых примерах, каждое из приложений 312 функции предоставляется посредством соответствующего поставщика 310 функции. Например, поставщик 310 функции может включать в себя объект (например, разработчика), который разрабатывает приложение функции, чтобы принимать ввод, выполнять функцию и предоставлять вывод. В некоторых примерах, каждое приложение 312 функции включает в себя контроллер 314 функции и одну или более функций 316, 318, 320 (код функции). Поставщик 310 функции может предоставлять начальную версию функции (например, функции 316) и может обновлять функцию, чтобы предоставлять последующие версии (например, функции 318, 320).
[0036] В некоторых реализациях, смарт-контракт 302 выполняется до точки, в которой он вызывает функцию. Смарт-контракт 302 отправляет в соответствующее приложение 312 функции вызов функции, который включает в себя ввод, который должен обрабатываться посредством приложения 312 функции. Вызов функции принимается посредством соответствующего контроллера 314 функции. Контроллер 314 функции маршрутизирует ввод в соответствующую версию функции 316, 318, 320. Функция 316, 318, 320, которая принимает ввод, обрабатывает ввод, чтобы предоставлять вывод, который отправляется обратно в смарт-контракт 302.
[0037] В некоторых реализациях, приложения функции, которые предоставляются посредством FaaS-платформы 300, сохраняются в блокчейне и регистрируются в FaaS-платформе 300. В некоторых примерах, регистрация раскрывает информацию функций пользователям (например, разработчикам смарт-контрактов). Примерная информация может включать в себя, без ограничения, идентификатор поставщика 310, описание функции, версии функции и статистику функции (например, число раз, когда каждая версия вызвана). Пользователи могут использовать информацию, например, в качестве индикатора относительно доверительного уровня, ассоциированного с каждой функцией. Например, пользователь, разрабатывающий смарт-контракт, может анализировать реестр, чтобы идентифицировать функцию, которая необходима, и может программировать смарт-контракт, чтобы вызывать функцию.
[0038] Ниже приводится неограничивающий пример, чтобы иллюстрировать проектирование и использование FaaS-платформы в соответствии с реализациями настоящего описания изобретения. Один или более поставщиков функции, также называемых "FaaS-поставщиками" (например, поставщиков 310 функции по фиг. 3), предоставляют одну или более исполняемых компьютером функций. Например, поставщик функции может разрабатывать исполняемый компьютером код для выполнения функции, причем функция принимает ввод, обрабатывает ввод и предоставляет вывод. Примерная функция может включать в себя, без ограничения, функцию контрольной суммы Ривеста-Шамира-Аделмана (RSA), которая принимает, в качестве ввода, сообщение произвольной длины и формирует контрольную сумму в качестве вывода (например, 128-битовую (16-октетную) контрольную сумму). В некоторых примерах, функция представляет собой чистую функцию. Таким образом, функция не имеет информацию состояния, повторяющиеся вызовы и/или вложенные вызовы.
[0039] В некоторых реализациях, контроллер функции (также называемый "FaaS-контроллером") предоставляется для функции (например, контроллер 314 функции по фиг. 3). В некоторых примерах, контроллер функции и функция вместе формируют приложение функции, также называемое "FaaS-приложением" (например, приложение 312 функции по фиг. 3). В некоторых примерах, контроллер функции обрабатывает статистику и хранение для версий функции, а также информацию вызовов. Нижеприведенная таблица 1 иллюстрирует примерную информацию, сохраненную посредством контроллера функции:
Название Тип переменной Смысл
Latest Version (Последняя версия) Строка latestVersion Последняя версия для версии и адреса кода функции (например,
23d61f4a88f90be1290c0eeab344992 e1a2e8f6d,1.0.0), где 1.0.0 является версией.
Version Mapping(Отображение версии) Map<String, String>versionMap Key является адресом смарт-контракта, и Value является версией адреса кода функции. Когда существует пара ключ/значение "с преобразованием ключа в значение", вызов смарт-контракта из ключа использует указываемую версию кода функции, иначе версия по умолчанию вызывает последнюю версию.
Calling a Statistical Map (Вызов статистической карты) Map<String, Integer>statistics Key является версией, Value является числом вызовов, и каждый вызов инициируется посредством единицы.
Таблица 1: Примерная информация
[0040] В некоторых реализациях, когда функция готова к коммерческому использованию, поставщик функции отправляет функцию (в качестве исполняемого компьютером кода функции) в блокчейн сеть, и коду функции назначается уникальный адрес в блокчейн сети (например, 23d61f4a88f90be1290c0eeab344992e1a2e8f6d). В некоторых примерах, контроллер функции также отправляется в блокчейн сеть, и ему назначается собственный уникальный адрес в блокчейн сети. В некоторых примерах, когда функция в первый раз отправляется в блокчейн сеть, значение последней версии (например, latestVersion) задается равным значению по умолчанию (например, 1.0.0). В некоторых примерах, функция записывается в карту версий на основе значения адреса и версии (например, 23d61f4a88f90be1290c0eeab344992e1a2e8f6d, 1.0.0), и статистика для функции является пустой.
[0041] В некоторых реализациях, могут создаваться один или более смарт-контрактов (например, смарт-контракт 302), которые вызывают одну или более функций FaaS-платформы. В некоторых примерах, пользователь, создающий смарт-контракт, может просматривать библиотеку доступных функций с релевантной информацией функции (например, описанием, адресом, версией, статистикой) и может программировать смарт-контракт, чтобы вызывать одну или более функций. Например, смарт-контракт может включать в себя логику, которая вызывает примерную функцию контрольной RSA-суммы, представленную выше. В некоторых примерах, смарт-контракт может включать в себя идентификатор версии, указывающий версию (например, 1.0.0) функции, которая должна вызываться. В некоторых примерах, идентификатор версии может быть пустым (или нулем), что указывает то, что последняя версия функции должна вызываться. В некоторых реализациях, после того, как смарт-контракт закончен и готов к использованию, смарт-контракт отправляется в блокчейн сеть, и смарт-контракту назначается уникальный адрес в блокчейн сети (например, 39a1509440f8c549dfd6e995def14b1ce3c98e5d).
[0042] В некоторых реализациях, чтобы предотвращать влияние последующей модернизации (обновления) кода функции из влияющей логики выполнения смарт-контракта, карта версий (versionMap) контроллера функции обновляется. Если продолжать с неограничивающим вышеприведенным примером, карта версий приложения функции для функции контрольной RSA-суммы обновляется следующим образом:
{
"39a1509440f8c549dfd6e995def14b1ce3c98e5d"
: "23d61f4a88f90be1290c0eeab344992e1a2e8f6d, 1.0.0"
}
Это указывает то, что примерный смарт-контракт использует первую версию примерной функции контрольной RSA-суммы. Таким образом, первая версия функции должна всегда использоваться, когда конкретный смарт-контракт вызывает функцию.
[0043] Фиг. 4 иллюстрирует общую диаграмму 400, показывающую связь между компонентами в соответствии с реализациями настоящего описания изобретения. В соответствии с реализациями настоящего описания изобретения, транзакция с использованием смарт-контракта инициируется (402). Например, узел в блокчейн сети (например, автоматически или по указанию пользователя, служащего в качестве инициатора 404 транзакций) может инициировать транзакцию с использованием смарт-контракта (например, смарт-контракта 406). Смарт-контракт может идентифицировать (408) функции, которые необходимы для того, чтобы завершать транзакцию. В некоторых примерах, во время выполнения логики смарт-контракта, один или более вызовов функций могут осуществляться (410) в одно или более FaaS-приложений 412. Каждое FaaS-приложение 412 включает в себя FaaS-контроллер 414 и FaaS-код 416. FaaS-приложение 412 может существовать для каждого поставщика.
[0044] С дальнейшей ссылкой на вышеприведенный пример, смарт-контракт может передавать вызов 410 функции для значения контрольной RSA-суммы. В некоторых примерах, вызов функции принимается посредством контроллера 414 функции для выполнения посредством FaaS-кода 416. В некоторых примерах, вызов функции включает в себя ввод в функцию и переменную версии, которая указывает версию функции, которая должна выполняться. В некоторых примерах, вызов функции не указывает версию, которая должна выполняться (например, значение версии является нулем), причем в этом случае последняя версия функции используется.
[0045] Контроллер функции обрабатывает ввод (например, сообщение), чтобы предоставлять вывод (например, значение контрольной суммы). Запрос 418 функции осуществляется из FaaS-кода 416. Как отмечено выше, в ответе 420 по функции, выполняется либо указанная версия функции, либо последние версии функции. Дополнительно, значение счетчика карты статистики вызовов, соответствующее выполняемой версии функции, обновляется 422 (например, постепенно увеличивается). Если продолжать с вышеприведенным примером, после первого вызова, статистическое содержимое для примерной функции контрольной RSA-суммы может предоставляться следующим образом:
{
"23d61f4a88f90be1290c0eeab344992e1a2e8f6d,1.0.0": 1
}
[0046] Результат 424 функции предоставляется в смарт-контракт, который затем может завершать (426) транзакцию. Транзакция может записываться (428) посредством блокчейна (например, блокчейна 430). Подтверждение 432 может отправляться в инициатор 404 транзакций.
[0047] Последовательность этапов 410-424 может повторяться для каждой функции, вызванной посредством смарт-контракта 406. Например, смарт-контракт 406 может вызывать две функции из двух различных FaaS-поставщиков и принимать результаты функций из каждого из них, которые смарт-контракт 406 использует для того, чтобы завершать транзакцию.
[0048] В некоторых реализациях, поставщик функции может обновлять ранее предоставленную функцию. Например, поставщик функции может перекодировать по меньшей мере часть функции, чтобы повышать эффективность выполнения (например, ускорять, уменьшать объем вычислительных ресурсов). Следовательно, последующая версия функции может предоставляться. Если продолжать с вышеприведенным примером, вторая версия функции контрольной RSA-суммы может предоставляться и отправляться в блокчейн сеть. Второй версии функции назначается уникальный адрес в блокчейн сети (например, 2aae6a1150787a834382d0202ef1e89e3bc89d4d). Значение последней версии (latestVersion) в контроллере функции обновляется так, что оно включает в себя адрес обновленной функции и идентификатор версии (например, 2aae6a1150787a834382d0202ef1e89e3bc89d4d.2.0.0).
[0049] Другая транзакция (вторая транзакция) с использованием смарт-контракта инициируется. Например, и с дальнейшей ссылкой в вышеприведенный пример, смарт-контракт может передавать вызов функции для значения контрольной RSA-суммы. В некоторых примерах, вызов функции принимается посредством контроллера функции. В некоторых примерах, вызов функции включает в себя ввод в функцию и переменную версии, которая указывает версию функции, которая должна выполняться.
[0050] В некоторых реализациях, контроллер функции распознает, что идентичный смарт-контракт (например, 39a1509440f8c549dfd6e995def14b1ce3c98e5d) выдает вызов функции. Следовательно, хотя другая версия (например, 2.0.0) функции доступна, последняя используемая версия (например, 1.0.0) функции используется. Функция обрабатывает ввод (например, сообщение), чтобы предоставлять вывод (например, значение контрольной суммы), и значение счетчика карты статистики вызовов, соответствующее выполняемой версии функции, постепенно увеличивается. Если продолжать с вышеприведенным примером, после второго вызова, статистическое содержимое для примерной функции контрольной RSA-суммы может предоставляться следующим образом:
{
"23d61f4a88f90be1290c0eeab344992e1a2e8f6d,1.0.0": 2
}
[0051] В некоторых реализациях, можно определять то, что смарт-контракт может использовать другие версии функции. Например, пользователь, который инициирует смарт-контракт и указывает то, что конкретная версия (например, 1.0.0) должна использоваться, может определять то, что последующая версия (например, 2.0.0) смарт-контракта является удовлетворительной. Следовательно, пользователь может обновлять идентификатор версии в карте версий (например, указывать другую версию или устанавливать идентификатор версии равным нулю). В неограничивающем примере, идентификатор версии задается равным нулю. Таким образом, в следующий раз, когда смарт-контракт осуществляет вызов функции, последняя версия функции используется.
[0052] Другая транзакция (третья транзакция) с использованием смарт-контракта инициируется. Например, и с дальнейшей ссылкой в вышеприведенный пример, смарт-контракт может передавать вызов функции для значения контрольной RSA-суммы. В некоторых примерах, вызов функции принимается посредством контроллера функции. В некоторых примерах, вызов функции включает в себя ввод в функцию и переменную версии, которая указывает версию функции, которая должна выполняться.
[0053] В некоторых реализациях, контроллер функции распознает, что идентичный смарт-контракт (например, 39a1509440f8c549dfd6e995def14b1ce3c98e5d) выдает вызов функции, но что идентификатор версии является нулем. Следовательно, хотя первая версия (например, 1.0.0) функции ранее использована, последняя используемая версия (например, 2.0.0) функции используется. Функция обрабатывает ввод (например, сообщение), чтобы предоставлять вывод (например, значение контрольной суммы), и значение счетчика карты статистики вызовов, соответствующее выполняемой версии функции, постепенно увеличивается. Если продолжать с вышеприведенным примером, статистическое содержимое для примерной функции контрольной RSA-суммы может предоставляться следующим образом:
{
"23d61f4a88f90be1290c0eeab344992e1a2e8f6d,1.0.0": 2
"2aae6a1150787a834382d0202ef1e89e3bc89d4d.2.0.0" :1
}
[0054] Фиг. 5 иллюстрирует примерный процесс 500, который может выполняться в соответствии с реализациями настоящего описания изобретения. В некоторых реализациях, примерный процесс 500 может выполняться с использованием одной или более исполняемых компьютером программ, выполняемых с использованием одного или более вычислительных устройств.
[0055] На 502, транзакция инициируется. Например, транзакция может использовать смарт-контракт, который составляет часть блокчейн сети. Транзакция может инициироваться автоматически, либо транзакция может указываться пользователем. Транзакция, например, может представлять собой транзакцию, которую пользователь использует для того, чтобы формировать случайное число для использования в смарт-контракте.
[0056] На 504, функция вызывается посредством смарт-контракта. В качестве примера, вызов 410 функции может осуществляться, к примеру, чтобы вызывать функцию генератора случайных чисел, которая предоставляется посредством FaaS-платформы. В некоторых реализациях, вызов функции дополнительно может включать в себя адрес функции и идентификатор версии функции. Например, смарт-контракт 406 может включать в себя, в вызове 410 функции, адрес в блокчейне, который ассоциирован с функцией, и номер версии, который идентифицирует конкретную версию функции, которая должна вызываться.
[0057] На 506, смарт-контракт принимает результат(ы). Например, 412 может предоставлять результат 424 функции, такой как случайное число, определенное посредством функции случайных чисел. На 508, смарт-контракт завершает транзакцию на основе результата(ов). В качестве примера, после того, как случайное число принимается, смарт-контракт 406 может завершать операцию со случайными числами, которая запрошена пользователем. На 510, транзакция записывается в блокчейн. Например, транзакция 428 может записываться с обновлением статистики, которая указывает то, что функция случайных чисел использована в другой раз.
[0058] Описанные признаки могут реализовываться в цифровой электронной схеме или в компьютерных аппаратных средствах, микропрограммном обеспечении, программном обеспечении либо в комбинациях вышеозначенного. Оборудование может реализовываться в компьютерном программном продукте, материально осуществленном на носителе информации (например, на машиночитаемом устройстве хранения данных) для выполнения посредством программируемого процессора; и этапы способа могут выполняться посредством программируемого процессора, выполняющего программу инструкций, чтобы выполнять функции описанных реализаций посредством обработки входных данных и формирования вывода. Описанные признаки могут быть реализованы преимущественно в одной или более компьютерных программ, которые выполняются в программируемой системе, включающей в себя по меньшей мере один программируемый процессор, соединенный с возможностью принимать данные и инструкции и передавать данные и инструкции в систему хранения данных по меньшей мере одно устройство ввода и по меньшей мере одно устройство вывода. Компьютерная программа представляет собой набор инструкций, которые могут использоваться, прямо или косвенно, в компьютере, чтобы выполнять определенную активность или обеспечивать определенный результат. Компьютерная программа может быть написана на любой форме языка программирования, включающей в себя компилированные или интерпретируемые языки, и она может развертываться в любой форме, в том числе в качестве автономной программы или в качестве модуля, компонента, вложенной процедуры или другого блока, подходящего для использования в вычислительном окружении.
[0059] Подходящие процессоры для выполнения программы инструкций включают в себя, в качестве примера, микропроцессоры общего и специального назначения и единственный процессор либо один из нескольких процессоров любого вида компьютера. В общем, процессор принимает инструкции и данные из постоянного запоминающего устройства или оперативного запоминающего устройства, или из того и из другого. Элементы компьютера могут включать в себя процессор для выполнения инструкций и одно или более запоминающих устройств для сохранения инструкций и данных. Обычно, компьютер также может включать в себя или функционально соединяться с возможностью обмениваться данными с одним или более устройств хранения данных большой емкости для сохранения файлов данных; такие устройства включают в себя магнитные диски, такие как внутренние жесткие диски и съемные диски; магнитооптические диски; и оптические диски. Устройства хранения данных, подходящие для материального осуществления компьютерных программных инструкций и данных, включают в себя все формы энергонезависимого запоминающего устройства, включающие в себя в качестве примера полупроводниковые запоминающие устройства, таки как EPROM, EEPROM и устройства флэш-памяти; магнитные диски, такие как внутренние жесткие диски и съемные диски; магнитооптические диски; и CD-ROM- и DVD-ROM-диски. Процессор и запоминающее устройство могут дополняться посредством или включаться в специализированные интегральные схемы (ASIC).
[0060] Чтобы предоставлять взаимодействие с пользователем, признаки могут реализовываться на компьютере, имеющем устройство отображения, такое как монитор на электронно-лучевой трубке (CRT) или жидкокристаллический дисплей (ЖК-дисплей) для отображения информации пользователю, и клавиатуру и указательное устройство, такое как мышь или шаровой манипулятор, посредством которого пользователь может предоставлять ввод в компьютер.
[0061] Признаки могут реализовываться в компьютерной системе, которая включает в себя внутренний интерфейсный компонент, такой как сервер данных, либо которая включает в себя промежуточный программный компонент, такой как сервер приложений или Интернет-сервер, либо которая включает в себя внешний интерфейсный компонент, такой как клиентский компьютер, имеющий графический пользовательский интерфейс или Интернет-браузер, либо любую их комбинацию. Компоненты системы могут соединяться посредством любой формы или среды цифровой передачи данных, такой как сеть связи. Примеры сетей связи включают в себя, например, локальную вычислительную сеть (LAN), глобальную вычислительную сеть (WAN) и компьютеры и сети, формирующие Интернет.
[0062] Компьютерная система может включать в себя клиенты и серверы. Клиент и сервер, в общем, являются удаленными друг от друга и типично взаимодействуют через сеть, к примеру, через описанную сеть. Взаимосвязь клиента и сервера осуществляется на основе компьютерных программ, работающих на соответствующих компьютерах и имеющих клиент-серверную взаимосвязь друг с другом.
[0063] Помимо этого, логические последовательности операций, проиллюстрированные на чертежах, не требуют показанного конкретного порядка или последовательного порядка для того, чтобы достигать требуемых результатов. Помимо этого, другие этапы могут предоставляться, или этапы могут исключаться из описанных последовательностей операций, и другие компоненты могут добавляться или удаляться из описанных систем. Соответственно, эти и другие реализации находятся в пределах объема прилагаемой формулы изобретения.
[0064] Выше описывается определенное число реализаций настоящего описания изобретения. Тем не менее, следует понимать, что различные модификации могут вноситься без отступления от сущности и объема настоящего описания изобретения. Соответственно, эти и другие реализации находятся в пределах объема прилагаемой формулы изобретения.

Claims (59)

1. Выполняемый компьютером способ для предоставления платформы "функция-как-услуга" (FaaS) в блокчейн сети, причем способ осуществляется посредством одного или более процессоров и содержит этапы, на которых:
принимают, из смарт-контракта и посредством первого приложения функции, содержащего первый контроллер функции, выполняемый в блокчейн сети, вызов первой функции, чтобы выполнять первую функцию, причем вызов первой функции содержит данные для выполнения первой функции,
при этом первая функция выполняется посредством кода в первом приложении функции,
при этом первое приложение функции содержит множество версий первой функции, и первый контроллер функции маршрутизирует вызов первой функции в соответствующую версию первой функции, и
при этом первое приложение функции хранится в блокчейн сети, первый контроллер функции имеет уникальный адрес в блокчейн сети, и каждая из версий первой функции имеет соответствующий уникальный адрес в блокчейн сети;
передают, посредством первого контроллера функции, данные вызова первой функции в первый компонент функции, причем первый компонент функции выполняет первую функцию на основе данных вызова первой функции;
принимают, посредством первого контроллера функции, результат первой функции из первого компонента функции; и
предоставляют, посредством первого контроллера функции, результат первой функции в смарт-контракт.
2. Способ по п. 1, в котором вызов первой функции дополнительно содержит адрес первой функции и идентификатор версии первой функции.
3. Способ по п. 2, в котором идентификатор версии является нулем, что указывает то, что последняя версия первой функции должна выполняться.
4. Способ по п. 1, дополнительно содержащий этап, на котором обновляют, посредством первого контроллера функции, статистику, ассоциированную с версией первой функции, которая выполнена в ответ на вызов первой функции.
5. Способ по п. 4, в котором статистика указывает число раз, которое каждая версия первой функции выполнена.
6. Способ по п. 1, дополнительно содержащий этапы, на которых:
принимают, из смарт-контракта и посредством выполнения второго контроллера функции в блокчейн сети, вызов второй функции, чтобы выполнять вторую функцию, причем вызов второй функции содержит данные для выполнения второй функции, при этом вторая функция отличается от первой функции, и при этом второй контроллер функции отличается от первого контроллера функции;
передают, посредством второго контроллера функции, данные вызова второй функции во второй компонент функции, причем второй компонент функции выполняет вторую функцию на основе данных вызова второй функции, при этом второй компонент функции отличается от первого компонента функции;
принимают, посредством второго контроллера функции, результат второй функции из второго компонента функции; и
предоставляют, посредством второго контроллера функции, результат второй функции в смарт-контракт.
7. Способ по п. 6, в котором первая функция и вторая функция предоставляются посредством различных поставщиков.
8. Способ по п. 1, в котором смарт-контракт выполняет транзакцию по меньшей мере частично на основе результата первой функции, причем транзакция записывается в блокчейне блокчейн сети.
9. Считываемый компьютером носитель хранения данных, кодированных с помощью инструкций, которые, при выполнении посредством одного или более компьютеров, инструктируют упомянутым одному или более компьютерам выполнять операции для предоставления платформы "функция-как-услуга" (FaaS) в блокчейн сети, причем операции содержат:
прием, из смарт-контракта и посредством первого приложения функции, содержащего первый контроллер функции, выполняемый в блокчейн сети, вызова первой функции, чтобы выполнять первую функцию, причем вызов первой функции содержит данные для выполнения первой функции,
при этом первая функция выполняется посредством кода в первом приложении функции,
при этом первое приложение функции содержит множество версий первой функции, и первый контроллер функции маршрутизирует вызов первой функции в соответствующую версию первой функции, и
при этом первое приложение функции хранится в блокчейн сети, первый контроллер функции имеет уникальный адрес в блокчейн сети, и каждая из версий первой функции имеет соответствующий уникальный адрес в блокчейн сети;
передачу, посредством первого контроллера функции, данных вызова первой функции в первый компонент функции, причем первый компонент функции выполняет первую функцию на основе данных вызова первой функции;
прием, посредством первого контроллера функции, результата первой функции из первого компонента функции; и
предоставление, посредством первого контроллера функции, результата первой функции в смарт-контракт.
10. Считываемый компьютером носитель хранения данных по п. 9, в котором вызов первой функции дополнительно содержит адрес первой функции и идентификатор версии первой функции.
11. Считываемый компьютером носитель хранения данных по п. 10, в котором идентификатор версии является нулем, что указывает то, что последняя версия первой функции должна выполняться.
12. Считываемый компьютером носитель хранения данных по п. 9, в котором операции дополнительно содержат обновление, посредством первого контроллера функции, статистики, ассоциированной с версией первой функции, которая выполнена в ответ на вызов первой функции.
13. Считываемый компьютером носитель хранения данных по п. 12, в котором статистика указывает число раз, которое каждая версия первой функции выполнена.
14. Считываемый компьютером носитель хранения данных по п. 9, в котором операции дополнительно содержат:
прием, из смарт-контракта и посредством выполнения второго контроллера функции в блокчейн сети, вызова второй функции, чтобы выполнять вторую функцию, причем вызов второй функции содержит данные для выполнения второй функции, при этом вторая функция отличается от первой функции, и при этом второй контроллер функции отличается от первого контроллера функции;
передачу, посредством второго контроллера функции, данных вызова второй функции во второй компонент функции, причем второй компонент функции выполняет вторую функцию на основе данных вызова второй функции, при этом второй компонент функции отличается от первого компонента функции;
прием, посредством второго контроллера функции, результата второй функции из второго компонента функции; и
предоставление, посредством второго контроллера функции, результата второй функции в смарт-контракт.
15. Считываемый компьютером носитель хранения данных по п. 14, в котором первая функция и вторая функция предоставляются посредством различных поставщиков.
16. Считываемый компьютером носитель хранения данных по п. 9, в котором смарт-контракт выполняет транзакцию по меньшей мере частично на основе результата первой функции, причем транзакция записывается в блокчейне блокчейн сети.
17. Система для предоставления платформы "функция-как-услуга" (FaaS) в блокчейн сети, содержащая:
один или более компьютеров; и
одно или более считываемых компьютером запоминающих устройств, соединенных с одним или более компьютеров и сконфигурированных с помощью инструкции, выполняемых посредством одного или более компьютеров с возможностью выполнять операции, причем операции содержат:
прием, из смарт-контракта и посредством первого приложения функции, содержащего первый контроллер функции, выполняемый в блокчейн сети, вызова первой функции, чтобы выполнять первую функцию, причем вызов первой функции содержит данные для выполнения первой функции,
при этом первая функция выполняется посредством кода в первом приложении функции,
при этом первое приложение функции содержит множество версий первой функции, и первый контроллер функции маршрутизирует вызов первой функции в соответствующую версию первой функции, и
при этом первое приложение функции хранится в блокчейн сети, первый контроллер функции имеет уникальный адрес в блокчейн сети, и каждая из версий первой функции имеет соответствующий уникальный адрес в блокчейн сети;
передачу, посредством первого контроллера функции, данных вызова первой функции в первый компонент функции, причем первый компонент функции выполняет первую функцию на основе данных вызова первой функции;
прием, посредством первого контроллера функции, результата первой функции из первого компонента функции; и
предоставление, посредством первого контроллера функции, результата первой функции в смарт-контракт.
18. Система по п. 17, в которой вызов первой функции дополнительно содержит адрес первой функции и идентификатор версии первой функции.
19. Система по п. 18, в которой идентификатор версии является нулем, что указывает то, что последняя версия первой функции должна выполняться.
20. Система по п. 17, в которой операции дополнительно содержат обновление, посредством первого контроллера функции, статистики, ассоциированной с версией первой функции, которая выполнена в ответ на вызов первой функции.
21. Система по п. 20, в которой статистика указывает число раз, которое каждая версия первой функции выполнена.
22. Система по п. 17, в которой операции дополнительно содержат:
прием, из смарт-контракта и посредством выполнения второго контроллера функции в блокчейн сети, вызова второй функции, чтобы выполнять вторую функцию, причем вызов второй функции содержит данные для выполнения второй функции, при этом вторая функция отличается от первой функции, и при этом второй контроллер функции отличается от первого контроллера функции;
передачу, посредством второго контроллера функции, данных вызова второй функции во второй компонент функции, причем второй компонент функции выполняет вторую функцию на основе данных вызова второй функции, при этом второй компонент функции отличается от первого компонента функции;
прием, посредством второго контроллера функции, результата второй функции из второго компонента функции; и
предоставление, посредством второго контроллера функции, результата второй функции в смарт-контракт.
23. Система по п. 22, в которой первая функция и вторая функция предоставляются посредством различных поставщиков.
24. Система по п. 17, в которой смарт-контракт выполняет транзакцию по меньшей мере частично на основе результата первой функции, причем транзакция записывается в блокчейне блокчейн сети.
RU2019111902A 2018-11-27 2018-11-27 ПЛАТФОРМА "ФУНКЦИЯ-КАК-УСЛУГА" (FaaS) В БЛОКЧЕЙН СЕТЯХ RU2744322C2 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/117637 WO2019072282A2 (en) 2018-11-27 2018-11-27 FUNCTION-AS-A-SERVICE PLATFORM (FAAS) IN BLOCK CHAIN NETWORKS

Publications (3)

Publication Number Publication Date
RU2019111902A RU2019111902A (ru) 2020-10-19
RU2019111902A3 RU2019111902A3 (ru) 2020-10-19
RU2744322C2 true RU2744322C2 (ru) 2021-03-05

Family

ID=66100148

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2019111902A RU2744322C2 (ru) 2018-11-27 2018-11-27 ПЛАТФОРМА "ФУНКЦИЯ-КАК-УСЛУГА" (FaaS) В БЛОКЧЕЙН СЕТЯХ

Country Status (16)

Country Link
US (2) US10671380B2 (ru)
EP (1) EP3552166B1 (ru)
JP (1) JP6756914B2 (ru)
KR (1) KR102193533B1 (ru)
CN (1) CN110622192B (ru)
AU (1) AU2018348323C1 (ru)
BR (1) BR112019007939B1 (ru)
CA (1) CA3041223C (ru)
ES (1) ES2880455T3 (ru)
MX (1) MX2019004667A (ru)
PH (1) PH12019500872A1 (ru)
PL (1) PL3552166T3 (ru)
RU (1) RU2744322C2 (ru)
SG (1) SG11201903493YA (ru)
TW (1) TWI706647B (ru)
WO (1) WO2019072282A2 (ru)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112019007939B1 (pt) 2018-11-27 2021-09-21 Advanced New Technologies Co., Ltd. Método implementado por computador, meio legível por computador e sistema para implementar um método
US11263315B2 (en) 2018-12-03 2022-03-01 Ebay Inc. System level function based access control for smart contract execution on a blockchain
US11405182B2 (en) 2018-12-03 2022-08-02 Ebay Inc. Adaptive security for smart contracts using high granularity metrics
US11250125B2 (en) 2018-12-03 2022-02-15 Ebay Inc. Highly scalable permissioned block chains
US10841153B2 (en) * 2018-12-04 2020-11-17 Bank Of America Corporation Distributed ledger technology network provisioner
FR3094521A1 (fr) * 2019-03-29 2020-10-02 Orange Procédés et dispositifs permettant de prouver la connaissance d’une donnée par un utilisateur d’une chaîne de blocs
CN110704063B (zh) * 2019-09-30 2021-09-07 支付宝(杭州)信息技术有限公司 编译和执行智能合约的方法及装置
CN111158645B (zh) * 2019-12-10 2022-09-20 杭州中天微系统有限公司 提供集成开发环境的系统和方法
TWI804728B (zh) * 2020-05-15 2023-06-11 天宿智能科技股份有限公司 基於區塊鏈之資產動態價值管理系統及其方法
US11948010B2 (en) 2020-10-12 2024-04-02 International Business Machines Corporation Tag-driven scheduling of computing resources for function execution
CN112804359B (zh) * 2021-03-30 2021-07-06 支付宝(杭州)信息技术有限公司 提供跨链消息的方法和装置
CN113472512A (zh) * 2021-06-10 2021-10-01 东软集团股份有限公司 智能合约执行方法、装置、存储介质及电子设备
CN113542435B (zh) * 2021-09-15 2021-12-14 支付宝(杭州)信息技术有限公司 一种用户服务使用方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170140408A1 (en) * 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
WO2018051305A1 (en) * 2016-09-19 2018-03-22 Thomson Reuters Global Resources Unlimited Company Systems and methods for interception of smart contracts
RU2658784C1 (ru) * 2017-03-23 2018-06-22 Общество с ограниченной ответственностью "БУБУКА" Способ и система контроля за воспроизведением медиа-контента, включающего объекты интеллектуальных прав
US20180198630A1 (en) * 2015-11-26 2018-07-12 International Business Machines Corporation System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger
US10095888B1 (en) * 2018-06-04 2018-10-09 Capital One Services, Llc Secure decentralized system utilizing smart contracts, a blockchain, and/or a distributed file system
US20180331835A1 (en) * 2017-05-11 2018-11-15 Shapeshift Ag Trusted agent blockchain oracle

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6918110B2 (en) * 2001-04-11 2005-07-12 Hewlett-Packard Development Company, L.P. Dynamic instrumentation of an executable program by means of causing a breakpoint at the entry point of a function and providing instrumentation code
US7844574B2 (en) * 2008-04-16 2010-11-30 International Business Machines Corporation Systems, methods and computer program products for automatic network-based persistent XML storage and management
JP6374666B2 (ja) 2014-02-19 2018-08-15 キヤノン株式会社 通信装置およびその制御方法、ならびにプログラム
JP6037460B2 (ja) * 2014-04-14 2016-12-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation サービス提供装置、プログラム、及び、方法
US10033702B2 (en) * 2015-08-05 2018-07-24 Intralinks, Inc. Systems and methods of secure data exchange
WO2017070575A1 (en) 2015-10-23 2017-04-27 Oracle International Corporation Self describing configuration with support for sharing data tables
JP6923946B2 (ja) * 2015-12-21 2021-08-25 コチャバ インコーポレイテッドKochava Inc. 自己規制取引システム、その方法、プログラム、データ処理デバイスシステム、コンピュータ読み取り可能な記憶媒体システム、コンピュータプログラム製品およびコンピュータプログラム製品
US9898260B2 (en) * 2015-12-28 2018-02-20 Samsung Electronics Co., Ltd. Adaptive function-based dynamic application extension framework
EP3193299A1 (en) * 2016-01-15 2017-07-19 Accenture Global Services Limited Device, method and system for autonomous selection of a commodity supplier through a blockchain distributed database
WO2018039722A1 (en) 2016-08-30 2018-03-08 Commonwealth Scientific And Industrial Research Organisation Dynamic access control on blockchain
EP3532924B1 (en) * 2016-10-28 2022-02-09 Nchain Holdings Limited Systems and methods for implementing deterministic finite automata (dfas) via a blockchain
CN106603698A (zh) * 2016-12-28 2017-04-26 北京果仁宝科技有限公司 基于dpos的区块链共识方法和节点
CN107038242B (zh) * 2017-04-24 2020-02-07 杭州趣链科技有限公司 一种面向区块链全局智能合约业务数据解析方法
CN107220767A (zh) * 2017-05-26 2017-09-29 中山市博林树投资管理有限公司 一种虚拟化资源池环境下的资源共享系统
US10135607B1 (en) * 2017-08-11 2018-11-20 Dragonchain, Inc. Distributed ledger interaction systems and methods
JP6987594B2 (ja) * 2017-10-16 2022-01-05 株式会社日立製作所 アクセス権管理方法、アクセス権管理システム、および、アクセス権管理装置
CN108717466A (zh) * 2018-06-05 2018-10-30 中国平安人寿保险股份有限公司 征信数据存储方法、装置、计算机设备及存储介质
US10915366B2 (en) * 2018-09-28 2021-02-09 Intel Corporation Secure edge-cloud function as a service
BR112019007939B1 (pt) 2018-11-27 2021-09-21 Advanced New Technologies Co., Ltd. Método implementado por computador, meio legível por computador e sistema para implementar um método

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170140408A1 (en) * 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
US20180198630A1 (en) * 2015-11-26 2018-07-12 International Business Machines Corporation System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger
WO2018051305A1 (en) * 2016-09-19 2018-03-22 Thomson Reuters Global Resources Unlimited Company Systems and methods for interception of smart contracts
RU2658784C1 (ru) * 2017-03-23 2018-06-22 Общество с ограниченной ответственностью "БУБУКА" Способ и система контроля за воспроизведением медиа-контента, включающего объекты интеллектуальных прав
US20180331835A1 (en) * 2017-05-11 2018-11-15 Shapeshift Ag Trusted agent blockchain oracle
US10095888B1 (en) * 2018-06-04 2018-10-09 Capital One Services, Llc Secure decentralized system utilizing smart contracts, a blockchain, and/or a distributed file system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Documentation of Oraclize", 07.11.2018, доступно по адресу https://web.archive.org/web/20181107044842/https://docs.oraclize.it/#home. *
CHEN HUAN и др., "FBaaS: Functional Blockchain as a Service", International Conference on Financial Cryptography and Data Security, Lecture Notes in Computer Science; Lect.Notes Computer, 22.06.2018, Springer, Berlin, Heidelberg, стр. 243-250. *

Also Published As

Publication number Publication date
ES2880455T3 (es) 2021-11-24
RU2019111902A (ru) 2020-10-19
US20200225937A1 (en) 2020-07-16
BR112019007939B1 (pt) 2021-09-21
CN110622192B (zh) 2023-07-14
CN110622192A (zh) 2019-12-27
RU2019111902A3 (ru) 2020-10-19
CA3041223C (en) 2021-07-13
TW202021311A (zh) 2020-06-01
US20190244294A1 (en) 2019-08-08
CA3041223A1 (en) 2019-04-18
US10671380B2 (en) 2020-06-02
EP3552166B1 (en) 2021-05-05
PH12019500872B1 (en) 2019-12-02
US10824419B2 (en) 2020-11-03
SG11201903493YA (en) 2019-05-30
EP3552166A2 (en) 2019-10-16
WO2019072282A3 (en) 2019-10-03
BR112019007939A2 (pt) 2019-11-12
PL3552166T3 (pl) 2021-10-25
TWI706647B (zh) 2020-10-01
JP6756914B2 (ja) 2020-09-16
AU2018348323C1 (en) 2021-04-29
PH12019500872A1 (en) 2019-12-02
WO2019072282A2 (en) 2019-04-18
MX2019004667A (es) 2019-08-21
EP3552166A4 (en) 2020-01-22
KR102193533B1 (ko) 2020-12-23
JP2020507140A (ja) 2020-03-05
AU2018348323A1 (en) 2020-06-11
KR20200066255A (ko) 2020-06-09
AU2018348323B2 (en) 2020-11-05

Similar Documents

Publication Publication Date Title
RU2744322C2 (ru) ПЛАТФОРМА &#34;ФУНКЦИЯ-КАК-УСЛУГА&#34; (FaaS) В БЛОКЧЕЙН СЕТЯХ
US11210203B2 (en) Testing platform for blockchain networks
KR102206940B1 (ko) 스마트 계약을 사용하여 다자간 트랜잭션을 실행하는 방법
US10585657B2 (en) Setup, management, and packaging of applications accessing centralized and decentralized data
US10594477B2 (en) Blockchain smart contract updates using decentralized decision
US20200151017A1 (en) Event-driven blockchain workflow processing
US20200089672A1 (en) Multi-tenant distributed ledger interfaces
US11620126B2 (en) Dynamic multiple repository package management through continuous integration
US11836071B2 (en) Method and apparatus creating test environments for blockchain systems
US11966723B2 (en) Automatic management of applications in a containerized environment
CN113760467A (zh) 事务处理方法、装置、计算机系统及存储介质

Legal Events

Date Code Title Description
HZ9A Changing address for correspondence with an applicant
HZ9A Changing address for correspondence with an applicant