CN110622488B - 用于管理用户与区块链的交互的系统和方法 - Google Patents

用于管理用户与区块链的交互的系统和方法 Download PDF

Info

Publication number
CN110622488B
CN110622488B CN201980001569.0A CN201980001569A CN110622488B CN 110622488 B CN110622488 B CN 110622488B CN 201980001569 A CN201980001569 A CN 201980001569A CN 110622488 B CN110622488 B CN 110622488B
Authority
CN
China
Prior art keywords
blockchain
command
user input
cli
manager
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201980001569.0A
Other languages
English (en)
Other versions
CN110622488A (zh
Inventor
王士峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Advanced New Technologies Co Ltd
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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Publication of CN110622488A publication Critical patent/CN110622488A/zh
Application granted granted Critical
Publication of CN110622488B publication Critical patent/CN110622488B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/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/3247Cryptographic 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 involving digital signatures
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Power Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

用于管理用户与区块链的交互的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。所述方法之一包括:在命令行接口(CLI)中接收用户输入,其中,所述用户输入包括对一个或多个配置的引用;由命令管理器基于用户输入确定区块链相关操作和与所述区块链相关操作相关联的命令插件;由所确定的命令插件基于所确定的操作和所述一个或多个配置生成命令;以及通过与区块链相关联的软件开发工具包(SDK)将命令发送到与区块链相关联的一个或多个节点。

Description

用于管理用户与区块链的交互的系统和方法
技术领域
本申请总体上涉及用于管理用户与区块链的交互的方法和设备。
背景技术
区块链可以包括使用密码术链接的区块中包含的日益增长的记录列表。区块链的每个区块可以包含交易信息、账户信息、关于一个或多个先前区块的信息以及其他相关信息。区块链可以在对等网络中实现,该对等网络包括遵守用于节点间通信、交易或区块有效性确认以及共识形成的协议的多个节点。用户可以使用脚本命令或者与区块链相关联的一个或多个应用程序接口(“API”)与区块链交互。这些方法可能是用户不友好的并且针对于特定的区块链,并且可能需要重复输入配置信息。在开发与区块链相关的应用或产品时,开发人员可能必须使用上述方法与区块链进行交互,这使得在实现甚至简单功能时也可能需要大量的专业知识和努力。因此,开发和验证此类应用或产品的效率可能受到现有接口选项的限制的约束。
发明内容
本文的各种实施例包括但不限于用于管理用户与区块链的交互的系统、方法和非瞬态计算机可读介质。
根据一些实施例,计算机实现的用于管理用户与区块链的交互的方法可以包括:在命令行接口(“CLI”)中接收用户输入,其中,所述用户输入包括对一个或多个配置的引用;由命令管理器基于用户输入确定区块链相关操作和与区块链相关操作相关联的命令插件,通过所确定的命令插件基于所确定的操作和所述一个或多个配置生成命令,并通过与所述区块链相关联的软件开发工具包(SDK)将所述命令发送到与所述区块链相关联的一个或多个节点。
在一些实施例中,该方法可以进一步包括由SDK从区块链获得响应于所述命令的输出并在CLI中提供输出。
在本文的实施例中,所述方法还可以包括:在接收用户输入之前,对用于管理用户与区块链的交互的控制台进行初始化,其中,所述控制台包括主机、所述CLI、所述命令管理器、多个命令插件和SDK。所述初始化可以包括:启动与控制台相关联的主机;由主机生成CLI的实例;由CLI基于与一个或多个节点相关联的一个或多个配置对SDK进行初始化,所述一个或多个节点与区块链相关联;由CLI调用命令管理器,并由所述命令管理器加载命令插件,以注册到CLI的实例中。
根据一些实施例,控制台还可以包括工具管理器,所述工具管理器被配置为计算哈希值,计算数字签名或验证区块链交易。
在一些实施例中,CLI可以被配置为预处理用户输入,提供用户输入的历史记录,或提供推荐命令。
在本文的实施例中,所述命令管理器可以被配置为注册或移除一个或多个命令。
根据一些实施例,所述命令管理器可以被配置为在CLI中提供已注册命令的列表和关于已注册命令的信息。
在一些实施例中,所述命令插件可以包括交易插件、区块插件或事件插件。
在本文的实施例中,所述交易插件可以被配置为生成用于将区块链交易添加到区块链的命令,用于查询关于与区块链相关联的一个或多个区块链交易的信息的命令,或者用于查询关于与区块链相关联的一个或多个账户的信息的命令。
根据一些实施例,所述区块插件可以被配置为生成用于查询关于与区块链相关联的区块的信息的命令或用于查询关于与区块链相关联的区块头的信息的命令。
在一些实施例中,所述事件插件可以被配置为生成用于订阅与区块链相关联的区块链合约相关事件的命令,用于订阅与区块链相关联的区块相关事件的命令,用于订阅与区块链相关联的账户相关事件的命令,或者用于订阅与区块链相关联的主题相关事件的命令。
在本文的实施例中,将命令发送到与区块链相关联的一个或多个节点可以包括:从用户输入获得对区块链的引用,从多个SDK中选择与所引用的区块链相关联的SDK,并将生成的命令推送给SDK。
根据一些实施例,所述区块链可以是联盟区块链。
在一些实施例中,一种用于管理用户与区块链的交互的系统可以包括一个或多个处理器及一个或多个计算机可读存储器,所述一个或多个计算机可读存储器耦合到所述一个或多个处理器并且其上存储有指令,所述指令可由所述一个或多个处理器执行以执行任何前述实施例的方法。
在一些实施例中,一种用于管理用户与区块链的交互的装置可包括用于执行任何前述实施例的方法的多个模块。
根据一些实施例,一种用于管理用户与区块链的交互的系统可以包括一个或多个处理器及一个或多个计算机可读存储器,所述一个或多个计算机可读存储器耦合到所述一个或多个处理器并且其上存储有指令,所述指令可由所述一个或多个处理器执行以执行包括以下的操作:在CLI中接收用户输入,其中,所述用户输入包括对一个或多个配置的引用;由命令管理器基于所述用户输入确定区块链相关操作和与所述区块链相关操作相关联的命令插件,由所确定的命令插件基于所确定的操作和所述一个或多个配置生成命令,以及由与区块链相关联的SDK将所述命令发送到与所述区块链相关联的一个或多个节点。
在本文的实施例中,一种非瞬态计算机可读存储介质可以被配置有可由一个或多个处理器执行以促使所述一个或多个处理器执行包括以下的操作的指令:在CLI中接收用户输入,其中,所述用户输入包括:对一个或多个配置的引用;由命令管理器基于用户输入确定区块链相关操作和与所述区块链相关操作相关联的命令插件,由所确定的命令插件基于所确定的操作和所述一个或多个配置生成命令,以及由与区块链相关联的SDK将命令发送到与所述区块链相关联的一个或多个节点。
根据一些实施例,一种用于管理用户与区块链的交互的装置可包括:用于接收用户输入的接收模块,其中,所述用户输入包括对一个或多个配置的引用;用于基于所述用户输入,确定区块链相关操作和与所述区块链相关操作相关联的命令插件的确定模块820;用于由所确定的命令插件基于所确定的操作及所述一个或多个配置生成命令的生成模块830;以及用于将命令发送到与区块链相关联的一个或多个节点的发送模块840。
本文公开的实施例具有一个或多个技术效果。在一些实施例中,所述方法和设备将与区块链相关联的SDK与控制台集成,所述控制台包括用于将CLI中的用户输入转换为与区块链兼容的命令并将与区块链相关联的信息转换为用户想得到的信息的各种其他组件。这允许使用除源自区块链的编程语言或协议之外的编程语言或协议与区块链进行交互。根据一些实施例,命令管理器及一个或多个命令插件将对应于与区块链相关联的操作的预设命令加载并注册到控制台。这允许使用与所述操作相关联的现有配置和参数的简单输入和自动应用来执行与区块链相关联的操作。在其他实施例中,所述控制台包括可以被独立修改或替换的代码模块。这样能够平稳有效地扩展以及修改可由控制台执行的命令。在其他实施例中,所述方法和设备提供与多个SDK兼容的接口,所述多个SDK与多个区块链相关联。这允许使用单个且一致的协议和命令集与不同的区块链进行交互。
参考附图考虑以下描述和所附权利要求,本文公开的系统、方法和非瞬态计算机可读介质的这些和其他特征,以及操作方法和相关结构的元件的功能以及部件的组合和制造经济性将变得更加明显。所有这些附图形成本说明书的一部分,其中,相同的附图标记表示各附图中的对应部分。然而,应该清楚地理解,附图仅用于说明和描述的目的,而不是限制性的。
附图说明
图1示出了与区块链相关联的网络环境的示例。
图2示出了用于管理用户与区块链的交互的控制台的示例。
图3示出了用于对用于管理用户与区块链的交互的示例性控制台进行初始化的方法的示例。
图4示出了用于管理用户与区块链的交互的方法的示例。
图5示出了用于将区块链交易添加到区块链的方法的示例。
图6示出了用于查询关于与区块链相关联的区块的信息的方法的示例。
图7示出了用于订阅与区块链相关联的事件的方法的示例。
图8示出了用于管理用户与区块链的交互的计算机系统的示例的框图。
图9示出了可以实现本文描述的任何实施例的计算机系统的示例的框图。
具体实施方式
本文描述的实施例提供与用于管理用户与区块链的交互的控制台相关联的方法、系统和装置。所述控制台可以被设计成具有模块化结构并包括多个代码模块。每个代码模块可以对应于在流水线中执行的特定操作,以提供允许用户与区块链进行交互的接口。在一些实施例中,所述控制台可以通过纳入并封装与区块链相关联的SDK(或相关API)来集成与区块链相关联的各种功能(例如,与区块链交易、区块、事件相关的功能),从而提供对区块链的统一入口或接口。
在一些实施例中,所述控制台可包括主机、命令行接口(“CLI”)、命令管理器、交易插件、区块插件、事件插件、区块链SDK、工具管理器、一个或多个其他组件、或其任何组合。在一些实施例中,所述控制台可以在CLI中接收用户输入,并且由命令管理器基于用户输入确定区块链相关操作。所述命令管理器可以调用与区块链相关操作相关联的命令插件,然后所述命令插件可以基于所确定的操作和一个或多个相关配置来生成命令。所述区块链SDK可以将命令发送到与区块链相关联的一个或多个节点。所述区块链SDK还可以从区块链获得响应于所述命令的输出,并在CLI中提供输出。所述控制台可以允许用户方便地指定配置文件并使用命令行来实现诸如发送或查询区块链交易、订阅区块事件或账户事件或者其他合适的操作之类的操作。以这种方式,所述控制台可以将用户输入转换为区块链可接受的命令,并将从区块链获得的信息转换为用户想得到的信息,从而使用户能够与区块链进行交互。
本文描述的实施例经由终端仿真器提供了用于与区块链交互的对用户友好的解决方案。它们可以应用于各种基于区块链的应用中。区块链的范围可以从创建的与控制台兼容的区块链到开源的公共可用区块链。所述控制台的模块化设计可提供强大的可扩展性和多功能性。命令类可以作为插件被容易地集成到控制台中,只要它们遵守区块链SDK的限制并符合其数据规范即可。所述命令管理器可以方便地存储并注册新命令以供用户使用。此外,所述控制台可以同时与多个区块链兼容,只要它包括用于每个区块链的SDK并且每个SDK符合所述控制台的输入或输出协议。这允许个体用户定制他们与区块链交互的方式,并通过统一且用户友好的接口有效地与区块链交互。
在各种实施例中,所公开的系统、方法和非瞬态计算机可读介质可以基于各种类型的区块链,这取决于谁被允许参与网络、执行共识协议以及维护共享区块链账本。各种类型的区块链可以包括例如公有区块链、联盟区块链、私有区块链等。区块链可以被认为是去中心化的或部分中心化的数据库,通常被称为分布式账本,因为操作由网络中的各种节点(例如,计算设备)执行。信息可以被写入区块链并被保存于区块链或被从区块链中读取。节点例如是支持区块链网络的计算设备或大型计算机系统。每个节点可以提供区块链的部分或全部功能。例如,提供共识验证的节点可以被称为共识参与节点(或共识节点)。共识可以是与区块链节点网络达成共同接受的处理结果有关的规则的算法。通过共识,数据不断被添加到区块的链中。
联盟区块链可以指具有由预设节点控制的共识过程的区块链。区块链可以允许每个人或仅被批准的参与者访问或采用混合访问方法。例如,根哈希值和应用程序接口(“API”)可以向公众开放;允许外部各方使用API进行一定数量的查询并获得与区块链状态相关的信息。可通过与公有区块链进行比较来理解联盟区块链。公有区块链可能不会施加访问限制。任何具有互联网连接的人都可以通过访问区块链中包含的数据并执行区块链交易、参与区块链的共识处理,成为公有区块链的参与者。公有区块链可以被认为是完全去中心化的,对区块链的控制不在任何单个个体或实体的控制之下。联盟区块链可以与公有区块链不同,因为它是需要授权的。只有获得授权的个人或实体才可以成为联盟区块链的参与者。联盟区块链可能是半去中心化的。对联盟区块链的控制可以被授予一组经批准的个人或实体或网络上的一组节点。联盟区块链可以具有公有区块链所固有的安全特征,同时还允许对网络进行更大程度的控制。
图1示出了与区块链相关联的网络环境100的示例。网络环境可以包括区块链系统110,区块链系统110可以支持和维护本文的各种实施例中提到的区块链。区块链系统110可以包括多个节点115(例如,节点1 115a、节点2 115b、节点3 115c、节点4 115d、一个或多个节点i 115x)。节点可以彼此通信并形成网络(例如,对等网络)。节点115可以实现在服务器、计算机、移动电子设备、其他合适的设备或其任何组合中。每个节点115可以对应于经由诸如TCP/IP的各种类型的通信方法耦合在一起的一个或多个物理硬件设备或者虚拟设备。节点115可以包括全量节点、Geth节点、共识节点、其他合适的节点或其任何组合。每个节点115可以存储或不存储与区块链相关联的分布式账本的完整副本。每个节点115可以被配置为执行诸如存储账户的一个或多个标识符、创建区块链交易、确认区块链交易有效性、汇总区块链交易以创建区块、确认区块有效性、发现和维护与对等节点的连接、创建区块链合约(例如,智能合约)、执行区块链合约、通过检查区块链获得信息之类的操作,或者一个或多个其他合适的操作。
在一些实施例中,区块链可以记录多个区块链交易。区块链交易可以对应于价值转移、区块链合约的创建、区块链合约的执行、其他操作或其任何组合。所述区块链交易可以包括诸如表示一个或多个先前区块链交易的引用的一个或多个标识符、账户、区块、或区块链合约、一个或多个密钥、基于密钥创建的一个或多个数字签名、一个或多个哈希值等的信息,或其他合适的信息。如果交易涉及区块链合约,则接收交易的节点115可以本地执行区块链合约。区块链合约可以包括被配置为基于所需输入或状态自动执行操作的计算机程序。区块链合约可以包括用户编写的合约代码、一个或多个标识符、一个或多个哈希值、交易信息、其他合适的信息或其任何组合。对于部署在与区块链相关联的节点上的区块链合约,可以稍后通过访问其在区块链上的相应地址来执行。可以从区块链中检索存储在已部署的区块链合约中的数据。
在一些实施例中,一个或多个设备120(例如,设备1 120a、设备2 120b)可以通过与一个或多个节点115交互来与区块链进行交互,所述区块链与区块链系统110相关联。这里公开的控制台可以在设备120上实现,并且可以用于与区块链进行交互。每个设备120可以是或不是区块链系统110中的节点。在一些实施例中,设备120可以将区块链交易添加到区块链。设备120可以生成区块链交易并将其发送到区块链系统110中的一个或多个节点115。当节点115接收到区块链交易时,它可以独立地确认区块链交易的有效性,如果被确认有效,则将区块链交易转发到一个或多个其他节点115。节点115中的一个或多个节点可以维护区块链交易的本地池并将多个区块链交易汇总成区块。每个区块可以包括头、主体及一个或多个其他字段。每个区块可以存储与一个或多个区块链交易、一个或多个账户、一个或多个先前区块、一个或多个区块链合约、区块的有效性证据、其他合适信息或其任何组合有关的信息。可以使用例如哈希算法和树数据结构将信息集成在区块中。每个节点115可以将成功形成的区块发送到一个或多个其他节点115以添加到区块链中,并且可以从其他节点115接收可以被确认有效并添加到本地存储的区块链的一个或多个区块。在一些实施例中,设备120可以从一个或多个节点115获得与区块链相关联的信息。特别地,设备120可以向区块链系统110的一个或多个节点115发送请求以获得这样的信息。节点115可以查询区块链的一个或多个区块以获得所请求的信息并将其发送到设备120。设备120还可以从本地存储的区块链副本获得关于区块链的信息。
图2示出了用于管理用户与区块链的交互的控制台200的示例。控制台200可以包括利用软件(例如,存储在存储器中的指令)和/或硬件(例如,处理器)实现的多个组件或模块。在一些实施例中,控制台200可以包括主机210、CLI 220、命令管理器230、交易插件231、区块插件232、事件插件233、区块链SDK 240和工具管理器250。
在一些实施例中,主机210可以向控制台200提供入口或者使用控制台200的起始点。用户可以通过启动主机210来启动控制台200。然后,主机200可以通过调用、加载、初始化或配置控制台200的一个或多个其他组件向用户提供终端仿真器,一个或多个其他组件包括例如CLI 220、命令管理器230、区块链SDK 240以及工具管理器250。
在一些实施例中,CLI 220可以提供接口以接收用户输入、管理用户交互、缓存用户输入以及向用户显示信息。CLI 220还可以被配置为预处理用户输入,提供用户输入的历史记录,或者提供推荐命令。在一些实施例中,CLI 220可以被配置为加载并注册命令管理器230并与命令管理器230通信。在一些实施例中,CLI 220可以提供用于用户输入一个或多个命令以及配置信息和参数的接口。用户输入的命令可以被直接转发给命令管理器。在其他实施例中,CLI 220可以提供交互式服务以帮助用户输入命令。例如,CLI220可以预处理用户的输入或者提供用户输入的一个或多个历史记录以供显示和用户使用。CLI 220还可以响应于用户输入命令类、寻求帮助的请求或命令的若干首字母,向用户提供一个或多个建议的命令。CLI 220可以自动地或响应于用户输入加载一个或多个公共配置或默认配置或全局参数(例如,关于与区块链相关联的节点的、用于与该节点建立连接的信息)。然后,这些配置或参数将被应用于用户的后续输入,以执行与区块链相关联的特定操作(例如,查询区块链交易)。
在一些实施例中,命令管理器230可以解释CLI 220中的用户输入以确定与用户输入相关联的区块链相关操作。命令管理器230可以被配置为注册或移除一个或多个命令。命令管理器230可以维护已注册命令的列表,用户可以利用控制台200使用所述列表。为了在CLI 220中进行显示,可以提供已注册命令的列表和关于已注册命令的信息。用户可以提供与一个或多个已注册命令相对应的输入。所述命令管理器可以管理用于发送与区块链相关联的命令的一个或多个命令接口。所述命令接口可以被实现为控制台200的一个或多个命令插件,包括例如交易插件231、区块插件232、事件插件233、其他合适的命令插件或接口(例如,用于隐私相关命令的命令插件)或其任何组合。经由所述命令接口,命令管理器230可以生成与根据用户输入确定的区块链相关操作相对应的一个或多个命令,并将这些命令传送到区块链SDK 240,以便传输到与区块链相关联的一个或多个节点。以这种方式,命令管理器230可以管理用户与区块链的交互。
在一些实施例中,命令管理器230可以被配置为注册或生成多个命令。所述命令可以包括用于执行账户操作的一个或多个命令;用于获得账户队列信息的一个或多个命令;用于查询区块信息的一个或多个命令(例如,根据区块编号);用于查询区块头信息的一个或多个命令(例如,根据区块编号或哈希值);用于获得高速缓存中的区块队列的一个或多个命令,所述区块队列可以包括经验证或未经验证的区块;用于查询关于多个区块链节点针对特定交易或区块链状态的共识情况的信息的一个或多个命令;用于创建、编辑、编译或部署区块链合约的一个或多个命令;用于将与区块链相关联的信息转储或存储在数据库中的一个或多个命令;用于订阅事件、合约或区块的一个或多个命令;用于执行组相关操作的一个或多个命令;用于查询或设置由控制台的一个或多个组件或其他合适工具生成的消息或日志的日志记录级别的一个或多个命令,所述日志记录级别反映例如此类消息或日志的重要性或严重性;用于查询与区块链节点相关联的度量信息(例如,区块链节点在特定时段中接收的交易或查询的数量)的一个或多个命令;用于获得关于一个或多个区块链节点的信息的一个或多个命令;用于执行隐私相关操作的一个或多个命令;用于将区块链交易发送到区块链节点的一个或多个命令;用于确定区块链节点是否正在同步来自一个或多个其他节点的信息(例如,与一个或多个区块相关联的信息)的一个或多个命令;用于获得关于区块链系统固有的一个或多个区块链合约(例如,自区块链系统创建以来部署的区块链合约)的信息的一个或多个命令;用于生成或配置交易操作的一个或多个命令;用于获得高速缓存中的交易队列的一个或多个命令,所述交易队列包括经验证或未经验证的区块链交易;用于退出当前操作的一个或多个命令;一个或更多其他合适的命令;或其任何合适的组合。
在一些实施例中,命令管理器230可以使用一个或多个命令接口或命令插件来生成一个或多个命令。例如,图2示出了交易插件231、区块插件232和事件插件233。控制台200可以包括所示的命令插件中的一个或多个以及其他合适的命令插件。每个命令插件可以被配置为生成特定类型或特定组的命令。在一些实施例中,交易插件231可以提供用于访问与区块链相关联的区块链交易的接口和用于管理这种区块链交易的命令。特别地,交易插件231可以被配置为生成用于将区块链交易添加到区块链的一个或多个命令、用于查询关于与区块链相关联的一个或多个区块链交易的信息的一个或多个命令、用于查询关于与区块链相关联的一个或多个账户的信息的一个或多个命令、其他合适的交易相关命令或其任何组合。在一些实施例中,区块插件232可以提供用于访问关于与区块链相关联的区块的信息并且有助于对区块进行同步访问的接口。特别地,区块插件232可以被配置为生成用于查询关于与区块链相关联的区块的信息的一个或多个命令、用于查询关于与区块链相关联的区块头的信息的一个或多个命令、其他合适的区块相关命令或者其任何组合。在一些实施例中,事件插件233可以提供用于访问关于与区块链相关联的事件的信息的接口。特别地,事件插件233可以被配置为生成用于订阅与区块链相关联的区块链合约相关事件的一个或多个命令、用于订阅与区块链相关联的区块相关事件的一个或多个命令、用于订阅与区块链相关联的账户相关事件的一个或多个命令、用于订阅与区块链相关联的主题相关事件的一个或多个命令(例如,包含特定关键字的区块链交易的发生、特定类型的区块链交易的发生)、一个或多个其他事件相关命令或其任何组合。
在一些实施例中,区块链SDK 240可以包括与区块链相关联的、实现区块链上的各种操作(例如,交易相关操作、区块相关操作、事件相关操作)的一个或多个API。SDK 240还可以包括用于其输入和输出的数据规范。SDK 240可以被配置为符合与控制台200相关联的一个或多个协议,以便接收由控制台200的一个或多个其他组件(例如,命令管理器230、命令插件231、232和233)输出的格式的数据。或者,控制台200的一个或多个其他组件可以被配置为符合与SDK 240相关联的一个或多个协议或数据规范,以便将数据以正确格式推送到区块链SDK 240,并与区块链SDK 240进行交互。SDK 240可以被定制成特定区块链。区块链可以是公有区块链、私有区块链、联盟区块链、其他类型的区块链、或其任何组合。
在一些实施例中,控制台200可以使得方便地适应不同的区块链。特别地,为了适应于新区块链,可以用与新区块链相关联的新SDK替换现有区块链的SDK 240。新SDK可以类似地符合用于控制台200的其他组件的数据规范。这种替换可以改变与区块链的交互式接口的封装而不改变用户接口,并且使用户能够使用相同的命令接口方便地操纵不同的区块链。
在一些实施例中,控制台200可以包括多个区块链SDK 240。每个SDK240可以与特定区块链相关联并且与控制台200的其他组件兼容。这使得控制台200能够支持与多个区块链的交互。在一些实施例中,在CLI 220中接收的用户输入可以包括对由控制台支持的区块链之一的引用。控制台200可以从多个SDK 240中选择对应于所引用的区块链的SDK 240。由命令管理器230或者命令插件231、命令插件232和命令插件233中的一个或多个插件生成的命令可以被推送到所选择的SDK,以便被传输到所引用的区块链的一个或多个节点。
在一些实施例中,工具管理器250可以包括支持与一个或多个其他组件相关联的一个或多个功能的多个工具。例如,工具管理器250可以被配置为计算哈希值(例如,将哈希算法应用于数据的数值结果),计算数字签名(例如,唯一地标识基于密钥计算的账户的数据串),验证区块链交易,执行其他合适的操作,或执行上面列出的操作的任意组合。工具管理器250支持的功能可以包括生成并发送区块链交易、订阅事件、其他合适的功能或其任何组合。在执行一个或多个操作时,另一组件可以针对所述操作的特定子步骤调用工具管理器250,并且基于工具管理器250的输出继续所述一个或多个操作。作为示例,交易插件231可以在生成区块链交易时调用工具管理器250,使得所述工具管理器可以计算数字签名和与区块链交易相关联的哈希值。工具管理器250可以将计算结果发送回交易插件231,然后交易插件231可以基于所述结果生成区块链交易。在一些实施例中,工具管理器250的一个或多个功能可以不被集成为单个模块,而是被分布在与控制台200相关联的多个组件之间。例如,在上面的示例中,可以将生成数字签名的功能集成到交易插件231中。
图3示出了用于对用于管理用户与区块链的交互的示例性控制台200进行初始化的方法的示例。该方法可以由主机210、CLI 220、命令管理器230和区块链SDK 240执行。在一些实施例中,可以在能够处理输入和输出之前对控制台200进行初始化。图3中所示的方法在启动与控制台200相关联的主机210时开始。在步骤310,主机210可以通过调用CLI 220来生成CLI 220的实例。可以基于与控制台200相关联的一个或多个配置来生成CLI 220的实例。在一些实施例中,主机210可以生成可以同时开放的CLI 220的一个或多个其他实例,每个实例可以与或可以不与相同配置相关联。在步骤320,CLI 220的实例可以基于与一个或多个节点相关联的一个或多个配置加载区块链SDK 240并对其进行初始化,所述一个或多个节点与所述区块链相关联。SDK 240可以提供用于访问区块链的一个或多个API。在步骤330,SDK 240可以返回确认初始化成功的确认。在加载SDK 240之后,在步骤340,CLI 220可以调用命令管理器230。然后,命令管理器230可以加载命令插件。在步骤350,命令管理器230可以加载交易插件231,在步骤360,命令管理器230可以加载区块插件232,在步骤370,命令管理器230可以加载事件插件233。通过这样做,命令管理器230可以将与每个命令插件相关联的一个或多个命令注册到CLI 220的实例中。然后,在步骤380,命令管理器230可以向CLI 220返回确认加载成功的确认。在步骤390,CLI 220可以向主机210返回确认初始化成功的确认。此时,可以完成初始化处理,并且主机210可以退出初始化处理。控制台200可以通过在CLI 220中接收用户输入来提供交互服务。
图4示出了用于管理用户与区块链的交互的方法400的示例。在一些实施例中,控制台200的各种组件可以以特定顺序执行相应的操作,以使用户能够与区块链进行交互。图4所示的方法可以在步骤410处开始,其中控制台200可以在CLI 220中接收用户输入。所述用户输入可以包括对一个或多个配置的引用。所述配置可以包括,例如,与区块链相关联的、用于通信的一个或多个节点的信息、与区块链相关联的一个或多个账户的信息、与区块链相关联的一个或多个区块的信息、一个或多个私钥或公钥、一个或多个参数和初始设置、一个或多个命令类、其他合适的配置信息或其任何组合。所述配置可以存储在控制台200可访问的一个或多个文件中。对所述配置的引用可以包括配置文件的一个或多个文件名、目录或地址。
在步骤420,命令管理器230可以基于所述用户输入确定区块链相关操作和与区块链相关操作相关联的命令插件。这里,区块链相关操作可以包括,例如,将区块链交易添加到区块链,查询与区块链相关联的信息,将区块链合约上传到区块链,创建账户,其他合适的操作或其任何组合。所述命令插件可以包括交易插件231、区块插件232、事件插件233、其他适当的命令插件或其任何组合。
在步骤430,由命令管理器230确定的命令插件可以基于所确定的操作和所述一个或多个配置来生成命令。然后,在步骤440,与区块链相关联的SDK 240可以将命令发送到与区块链相关联的一个或多个节点。
在一些实施例中,在将命令发送到与区块链相关联的一个或多个节点之后,可以将与命令相关联的信息添加到区块链中或可以在区块链中修改与命令相关联的信息。在步骤450,SDK 240可以从区块链获得响应于所述命令的输出。例如,SDK 240可以通过扫描存储在一个或多个区块链节点115处的一个或多个区块链副本来获得输出,以获得在发送所述命令之后创建的一个或多个新区块。SDK 240可以从新区块获得例如关于与所述命令相关的一个或多个新交易的数据、关于与所述命令相关的一个或多个账户改变的数据、关于与所述命令相关的一个或多个区块链合约改变的数据、其他合适的数据或其任何组合。在步骤460,可以在CLI 220中提供输出。以这种方式,控制台200可以将用户输入转换为与区块链相关联的网络可接受的命令,并将来自区块链的输出转换为用户想得到的信息,从而管理用户和区块链之间的交互。
图5示出了用于将区块链交易添加到区块链的方法的示例。该方法可以由CLI220、命令管理器230、交易插件231和区块链SDK 240来执行。图5所示的方法可以在步骤510处开始,其中CLI 220可以接收用户输入。所述用户输入可以由CLI 220提供的交互式环境辅助,所述交互式环境包括诸如命令预处理、命令建议或命令历史显示之类的服务。可以在终端仿真器或图形用户界面中输入用户输入。可以以全部的形式或以分多个部分的形式输入用户输入。在步骤520,CLI 220可以将用户输入发送到命令管理器230。在步骤530,命令管理器230可以解释用户输入以确定与用户输入相对应的区块链相关操作。在此示例中,操作可以是将指定的区块链交易添加到区块链。在步骤540,命令管理器230可以基于所确定的操作的性质来调用交易插件231以添加区块链交易。在步骤550,交易插件231可以生成与用户输入相对应的区块链交易和将所生成的区块链交易添加到区块链的命令。在步骤560,交易插件231可以将区块链交易和命令推送到区块链SDK 240,并调用与SDK 240相关联的用于发送区块链交易的API。在步骤570,基于所述命令,区块链SDK 240可以将区块链交易发送到与区块链相关联的一个或多个节点,其然后可以将区块链交易发送到与区块链相关联的网络中的一个或多个其他节点。以这种方式,可以将与用户输入相对应的区块链交易添加到区块链中。在一些实施例中,区块链网络可以验证区块链交易,将区块链交易添加到区块,并将区块链接到区块链。然后,用户可以经由控制台200访问与向区块链添加区块链交易的命令相关联的结果。
图6示出了用于查询关于与区块链相关联的区块的信息的方法的示例。该方法可以由CLI 220、命令管理器230、区块插件232和区块链SDK 240来执行。所述方法可以在步骤610开始,其中CLI 220可以接收用户输入。在步骤620,CLI 220可以处理用户输入并将结果发送到命令管理器230。在步骤630,命令管理器230可以解释用户输入以确定与用户输入相对应的区块链相关操作。在该示例中,所述操作可以是查询关于与区块链相关联的区块的信息。在步骤640,命令管理器230可以基于所确定的操作的性质来调用区块插件232以查询区块信息。在步骤650,区块插件232可以生成用于查询关于在用户输入中识别的区块的信息的命令。在步骤660,区块插件232可以向区块链SDK 240推送所述命令,并调用API以查询关于所述区块链的信息。在步骤670,区块链SDK 240可以从与区块链相关联的网络中的一个或多个节点获得关于所识别的区块的信息。在步骤680,可以在CLI 220中提供所获得的信息。
图7示出了用于订阅与区块链相关联的事件的方法的示例。该方法可以由CLI220、命令管理器230、事件插件233和区块链SDK 240来执行。所述方法可以在步骤710开始,其中CLI 220可以接收用户输入。在步骤720,CLI 220可以处理用户输入并将结果发送到命令管理器230。在步骤730,命令管理器230可以解释用户输入以确定与用户输入相对应的区块链相关操作。在该示例中,所述操作可以订阅具有特定特征的事件(例如,添加新区块、特定区块链合约的改变、特定账户的更新、特定类型的区块链交易、特定主题的区块链交易)。在步骤740,命令管理器230可以基于所确定的操作的性质来调用事件插件233以订阅事件。在步骤750,事件插件233可以生成与订阅符合所述特征的事件对应的一个或多个命令。在步骤760,事件插件233可以将一个或多个命令推送到区块链SDK 240,并调用API以查询关于与区块链相关联的相关事件的信息。在步骤770a,区块链SDK 240可以从与区块链相关联的网络中的一个或多个节点获得关于所订阅的事件发生的信息。在步骤780a,可以在CLI220中提供并显示所获得的信息。然后,在步骤770b,区块链SDK 240可以从与区块链相关联的网络中的一个或多个节点获得关于所订阅的事件发生的信息。在步骤780b,可以在CLI220中提供并显示所获得的信息。在接收到指示订阅将被终止的命令之前,当符合用户输入中指示的特征的事件发生时,区块链SDK 240可以重复步骤770(a或b)和步骤780(a或b)。
图8示出了用于管理用户与区块链的交互的计算机系统800的示例的框图。所述系统800可以是图1的设备120的一个或多个组件的实现的示例。方法400可以由计算机系统800实现。计算机系统800可以包括一个或多个处理器以及一个或多个非瞬态计算机可读存储介质(例如,一个或多个存储器),所述非瞬态计算机可读存储介质耦合到一个或多个处理器并配置有可由一个或多个处理器执行以促使系统或设备(例如,处理器)执行上述方法,例如方法400的指令。计算机系统800可以包括与指令(例如,软件指令)相对应的各种单元/模块。在一些实施例中,计算机系统800可以被称为用于管理用户与区块链的交互的装置。所述装置可以包括用于接收用户输入的接收模块810,其中,所述用户输入包括对一个或多个配置的引用;用于基于用户输入确定区块链相关操作和与所述区块链相关操作相关联的命令插件的确定模块820;用于由所确定的命令插件,基于所确定的操作和所述一个或多个配置生成命令的生成模块830;用于将命令发送到与区块链相关联的一个或多个节点的发送模块840;用于从区块链获得响应于所述命令的输出的获得模块850;和用于提供输出的显示模块860。
如图8所示,通过基于用户输入确定区块链相关操作,基于所确定的操作生成命令,并将命令发送到区块链,用户输入可以被自动转换为与区块链兼容的命令。通过从区块链获得响应于所述命令的输出并提供输出以进行显示,可以将与区块链相关联的信息转换为用户想得到的信息。可以注册多个命令以供用户用来执行与区块链相关联的操作,而无需在输入命令信息或配置信息中付出实质性努力。此外,所述装置使得能够使用标准化的输入方式与具有不同协议或编程语言的各种区块链进行交互。
这里描述的技术由一个或多个专用计算设备实现。专用计算设备可以是台式计算机系统、服务器计算机系统、便携式计算机系统、手持设备、网络设备或包含硬连线和/或程序逻辑以实现这些技术的任何其他设备或设备的组合。专用计算设备可以被实现为个人计算机、膝上型计算机、蜂窝电话、照相电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板电脑、可穿戴设备或其组合。计算设备通常由操作系统软件控制和协调。传统的操作系统控制和调度用于执行的计算机进程,执行存储器管理,提供文件系统、网络、I/O服务,以及提供用户接口功能,例如图形用户界面(“GUI”)等。这里描述的各种系统、装置、存储介质、模块和单元可以在专用计算设备或者一个或多个专用计算设备的一个或多个计算芯片中实现。在一些实施例中,这里描述的指令可以在专用计算设备上的虚拟机中实现。当被执行时,指令可以促使专用计算设备执行本文描述的各种方法。虚拟机可以包括软件、硬件或其组合。例如,虚拟机可以包括为以太坊中的智能合约提供运行时环境的以太坊虚拟机(EVM)软件。
图9示出了可以实现本文描述的任何实施例的计算机系统900的示例的框图。系统900可以在与区块链相关联的任何节点115中实现,并且被配置为执行针对本文描述的区块链操作的相应步骤。系统900可以在与区块链相关联的一个或多个节点115通信的设备120中实现。本文描述的控制台200或其一个或多个组件可以在一个或多个计算机系统900上实现。图3至图7所示的一个或多个示例性方法可以由计算机系统900执行。
计算机系统900可以包括用于通信信息的总线902或其他通信机制、与总线902耦合以处理信息的一个或多个硬件处理器904。硬件处理器904可以是例如一个或多个通用微处理器。
计算机系统900还可以包括耦合到总线902、用于存储可由处理器904执行的信息和指令的主存储器906,例如随机存取存储器(RAM)、高速缓存和/或其他动态存储设备。主存储器906还可以用于在执行可由处理器904执行的指令期间存储临时变量或其他中间信息。当这些指令存储在处理器904可访问的存储介质中时,这些指令将计算机系统900呈现为被定制以执行指令中指定的操作的专用机器。计算机系统900还可以包括耦合到总线902、用于存储处理器904的静态信息和指令的只读存储器(ROM)908或其他静态存储设备。诸如磁盘、光盘或USB拇指驱动器(闪存驱动器)等的存储设备910可以被提供并被耦合到总线902以存储信息和指令。
计算机系统900可以使用与计算机系统相结合使得计算机系统900成为专用机器或将计算机系统700编程为专用机器的定制硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑实现本文所述的技术。根据一个实施例,这里描述的操作、方法和处理由计算机系统900响应于处理器904执行主存储器906中包含的一个或多个指令的一个或多个序列而执行。这些指令可以从例如存储设备910的另一存储介质读入主存储器906。主存储器906中包含的指令序列的执行可以促使处理器904执行这里描述的处理步骤。在替代实施例中,可以使用硬连线电路代替软件指令或与软件指令组合。
主存储器906、ROM 908和/或存储设备910可以包括非瞬态存储介质。这里使用的术语“非瞬态介质”和类似术语是指存储促使机器以特定方式操作的数据和/或指令的介质,所述介质不包括瞬态信号。这种非瞬态介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,例如存储设备910。易失性介质包括动态存储器,例如主存储器906。常规形式的非瞬态介质包括,例如,软磁盘、软盘、硬盘、固态驱动器、磁带或任何其他磁数据存储介质、CD-ROM、任何其他光学数据存储介质、具有孔图案的任何物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其他存储器芯片或盒式磁带以及它们的网络版本。
计算机系统900还可以包括耦合到总线902的网络接口918。网络接口918可以提供耦合到一个或多个网络链路的双向数据通信,所述一个或多个网络链路连接到一个或多个本地网络。例如,网络接口918可以是综合业务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器或调制解调器,以提供与相应类型的电话线的数据通信连接。作为另一示例,网络接口918可以是局域网(LAN)卡,以提供与兼容LAN(或WAN组件以与WAN通信)的数据通信连接。还可以实现无线链路。在任何这样的实施方式中,网络接口918可以发送和接收携带表示各种类型的信息的数字数据流的电信号、电磁信号或光信号。
计算机系统900可以通过网络、网络链路和网络接口918发送消息和接收数据,包括程序代码。在因特网示例中,服务器可以通过因特网、ISP、本地网络和网络接口918发送用于应用程序的请求代码。
所接收的代码当被接收时可以由处理器904执行,和/或存储在存储设备910或其他非易失性存储器中以用于稍后执行。
前面部分中描述的每个处理、方法和算法可以体现在由包括计算机硬件的一个或多个计算机系统或者计算机处理器执行的代码模块中并且被其完全或部分自动化地实现。处理和算法可以部分或全部地在专用电路中实现。
上述各种特征和处理可以彼此独立地使用,或者可以以各种方式组合。所有可能的组合和子组合都旨在落入本文的范围内。另外,在一些实施方式中可以省略某些方法或处理框。本文描述的方法和处理也不限于任何特定顺序,与其相关的框或状态可以以适当的其他顺序执行。例如,所描述的框或状态可以以不同于具体公开的顺序执行,或者多个框或状态可以在单个框或状态中组合。框或状态的示例可以串行、并行或以某种其他方式执行。可以将框或状态添加到所公开的实施例中或从所公开的实施例中移除。这里描述的系统和组件的示例可以与所描述的不同地被配置。例如,与所公开的实施例相比,可以添加、移除或重新布置元件。
本文描述的方法的各种操作可以至少部分地由被临时配置(例如,通过软件)或被永久配置为执行相关操作的一个或多个处理器执行。无论是临时配置还是永久配置,这样的处理器可以构成处理器实现的引擎,所述处理器实现的引擎用于执行本文描述的一个或多个操作或功能。
类似地,这里描述的方法可以至少部分地由处理器实现,其中特定处理器是硬件的示例。例如,所述方法的至少一些操作可以由一个或多个处理器或处理器实现的引擎执行。此外,一个或多个处理器还可以操作以支持“云计算”环境中的相关操作的性能或作为“软件即服务”(SaaS)。例如,至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可以经由网络(例如,因特网)经由一个或多个适当的接口(例如,应用程序接口(API))被访问。
某些操作的性能可以在处理器之间分配,不仅驻留在单个机器中,而且跨多个机器被部署。在一些实施例中,处理器或处理器实现的引擎可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器群内)。在其他实施例中,处理器或处理器实现的引擎可以分布在多个地理位置。
在本文中,多个实例可以实现作为单个实例所描述的组件、操作或结构。尽管一个或多个方法的各个操作被示出并描述为独立的操作,但是可以同时执行一个或多个独立的操作,并且不需要以所示的顺序执行所述操作。在配置中作为独立组件呈现的结构和功能可以实现为组合结构或组件。类似地,作为单个组件呈现的结构和功能可以实现为独立的组件。这些和其他变化、修改、添加和改进都落入本文中的主题的范围内。
尽管已经参考具体实施例描述了主题的概述,但是在不脱离本文的实施例的较宽范围的情况下,可以对这些实施例进行各种修改和改变。具体实施方式不应被视为具有限制意义,并且各种实施例的范围仅由所附权利要求以及这些权利要求所赋予的等同物的全部范围限定。此外,这里使用的相关术语(诸如“第一”、“第二”、“第三”等)不表示任何顺序、高度或重要性,而是用于将一个元件与另一元件区分开。此外,术语“一”、“一个”和“多个”在本文中并不表示对数量的限制,而是表示存在至少一个所述的物品。

Claims (16)

1.一种计算机实现的用于管理用户与区块链的交互的方法,所述方法包括:
在命令行接口CLI中接收用户输入,其中,所述用户输入包括对一个或多个配置的引用;
由命令管理器基于所述用户输入确定区块链相关操作和与所述区块链相关操作相关联的命令插件;其中,所述命令管理器用于命令注册及存储,以将注册及存储的命令提供给用户在命令行接口CLI中输入;
由所述确定的命令插件基于所述确定的操作和所述一个或多个配置生成命令;以及
由与所述区块链相关联的软件开发工具包SDK将所述命令发送到与所述区块链相关联的一个或多个节点。
2.如权利要求1所述的方法,还包括:
由所述SDK从所述区块链获得响应于所述命令的输出;以及
在所述CLI中提供所述输出。
3.如前述任一权利要求所述的方法,还包括:在接收用户输入之前,对用于管理用户与所述区块链的交互的控制台进行初始化,其中,所述控制台包括主机、所述CLI、所述命令管理器、多个命令插件和所述SDK,并且所述初始化包括:
启动与所述控制台相关联的所述主机;
由所述主机生成所述CLI的实例;
由所述CLI基于与一个或多个节点相关联的一个或多个配置对所述SDK进行初始化,其中,所述一个或多个节点与所述区块链相关联;
由所述CLI调用所述命令管理器;以及
由所述命令管理器加载所述命令插件,以注册到所述CLI的所述实例中。
4.如权利要求3所述的方法,其中,所述控制台还包括工具管理器,所述工具管理器被配置为:
计算哈希值;
计算数字签名;或
验证区块链交易。
5.如前述任一权利要求所述的方法,其中,所述CLI被配置为:
预处理所述用户输入;
提供所述用户输入的历史记录;或
提供推荐的命令。
6.如前述任一权利要求所述的方法,其中:
所述命令管理器被配置为注册或移除一个或多个命令。
7.如权利要求6所述的方法,其中:
所述命令管理器被配置为在所述CLI中提供已注册命令的列表和关于所述已注册命令的信息。
8.如前述任一权利要求所述的方法,其中,所述命令插件包括:
交易插件;
区块插件;或
事件插件。
9.如权利要求8所述的方法,其中,所述交易插件被配置为生成:
用于向所述区块链添加区块链交易的命令;
用于查询关于与所述区块链相关联的一个或多个区块链交易的信息的命令;或
用于查询关于与所述区块链相关联的一个或多个账户的信息的命令。
10.根据权利要求8和9中任一项所述的方法,其中,所述区块插件被配置为生成:
用于查询关于与所述区块链相关联的区块的信息的命令;或
用于查询关于与所述区块链相关联的区块头的信息的命令。
11.根据权利要求8至10中任一项所述的方法,其中,所述事件插件被配置为生成:
用于订阅与所述区块链相关联的区块链合约所涉及的事件的命令;
用于订阅与所述区块链相关联的区块所涉及的事件的命令;
用于订阅与所述区块链相关联的账户所涉及的事件的命令;或
用于订阅与所述区块链相关联的主题所涉及的事件的命令。
12.如前述任一权利要求所述的方法,其中,将所述命令发送到与所述区块链相关联的一个或多个节点,包括:
从所述用户输入获得对所述区块链的引用;
从多个SDK中选择与所述被引用的区块链相关联的SDK;以及
将所述生成的命令推送给所述SDK。
13.如前述任一权利要求所述的方法,其中:
所述区块链是联盟区块链。
14.一种用于管理用户与区块链的交互的系统,包括:
一个或多个处理器;和
耦合到所述一个或多个处理器且其上存储有指令的一个或多个计算机可读存储器,所述指令能由所述一个或多个处理器执行以执行权利要求1至13中任一项所述的方法。
15.一种用于管理用户与区块链的交互的装置,所述装置包括用于执行权利要求1至13中任一项所述的方法的多个模块。
16.一种存储有指令的非暂时性计算机可读介质,所述指令在由设备的处理器执行时,促使所述设备执行权利要求1至13中任一项所述的方法。
CN201980001569.0A 2019-03-27 2019-03-27 用于管理用户与区块链的交互的系统和方法 Active CN110622488B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/079801 WO2019120319A2 (en) 2019-03-27 2019-03-27 System and method for managing user interactions with a blockchain

Publications (2)

Publication Number Publication Date
CN110622488A CN110622488A (zh) 2019-12-27
CN110622488B true CN110622488B (zh) 2021-02-09

Family

ID=66992752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980001569.0A Active CN110622488B (zh) 2019-03-27 2019-03-27 用于管理用户与区块链的交互的系统和方法

Country Status (5)

Country Link
US (2) US11201727B2 (zh)
EP (1) EP3610357B1 (zh)
CN (1) CN110622488B (zh)
SG (1) SG11201908937RA (zh)
WO (1) WO2019120319A2 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110110269B (zh) * 2019-04-09 2023-04-18 深圳前海微众银行股份有限公司 一种基于区块链的事件订阅方法及装置
US10503905B1 (en) * 2019-06-26 2019-12-10 Capital One Services, Llc Data lineage management
US20210029163A1 (en) * 2019-07-24 2021-01-28 International Business Machines Corporation Security layer for configuring blockchain
EP3669263B1 (en) * 2019-09-12 2022-03-02 Advanced New Technologies Co., Ltd. Log-structured storage systems
CN110826026B (zh) * 2020-01-13 2020-04-24 江苏万链区块链技术研究院有限公司 基于区块链技术的出版物及其关联版权保护的方法和系统
US11233640B2 (en) 2020-05-13 2022-01-25 Ridgeline, Inc. Mutation processing for events
US11818259B2 (en) * 2020-05-13 2023-11-14 Ridgeline, Inc. Query and projection processing for events
US11949784B2 (en) 2020-05-13 2024-04-02 Ridgeline, Inc. Auditing for events
CN114371628B (zh) * 2020-10-19 2023-11-10 中国移动通信集团辽宁有限公司 区块链系统、管理装置、智能家电的控制方法及智能家电
US11960469B2 (en) 2020-12-07 2024-04-16 Deixis, PBC Heterogeneous integration with distributed ledger blockchain services
EP4030803A1 (en) * 2021-01-13 2022-07-20 Tata Consultancy Services Limited Method and system for secure iot device onboarding using a blockchain network
CN115220707B (zh) * 2022-06-21 2023-02-28 深圳市马博士网络科技有限公司 一种基于区块链的软件开发管理方法及系统
CN115811442B (zh) * 2023-02-09 2023-05-05 上海特高信息技术有限公司 一种基于积木形式的联盟链BaaS平台搭建方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1929396A (zh) * 2005-09-09 2007-03-14 中兴通讯股份有限公司 一种网络中实现对网元进行数据配置的方法
CN101135966A (zh) * 2006-11-24 2008-03-05 中兴通讯股份有限公司 一种基于命令行的图形界面开发方法及系统
US10013573B2 (en) * 2015-12-16 2018-07-03 International Business Machines Corporation Personal ledger blockchain
CN108921551A (zh) * 2018-06-11 2018-11-30 西安纸贵互联网科技有限公司 基于Kubernetes平台的联盟区块链系统

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030069956A1 (en) * 2001-10-05 2003-04-10 Gieseke Eric James Object oriented SNMP agent
KR100767111B1 (ko) 2006-01-27 2007-10-17 삼성전자주식회사 동력전달기구 및 이를 이용한 화상형성장치의 현상기구동장치
US20080209316A1 (en) 2007-02-27 2008-08-28 Yahoo! Inc. System and method of implementing an extensible command-line interface
WO2010120549A2 (en) 2009-03-31 2010-10-21 Ecrio, Inc. System, method and apparatus for providing functions to applications on a digital electronic device
US10872077B2 (en) 2013-09-23 2020-12-22 David D. Wright, SR. Management of entitlements using blockchain
KR20150067883A (ko) 2013-12-10 2015-06-19 주식회사 케이티 스토리 컨텐츠 생성 방법, 컴퓨팅 장치 및 컴퓨터 판독 가능 매체
US20160012465A1 (en) 2014-02-08 2016-01-14 Jeffrey A. Sharp System and method for distributing, receiving, and using funds or credits and apparatus thereof
US10095549B1 (en) 2015-09-29 2018-10-09 Amazon Technologies, Inc. Ownership transfer account service in a virtual computing environment
US10445698B2 (en) 2016-06-30 2019-10-15 Clause, Inc. System and method for forming, storing, managing, and executing contracts
US10915969B2 (en) 2016-08-11 2021-02-09 Jpmorgan Chase Bank, N.A. Systems and methods for enhanced organizational transparency using a credit chain
WO2018111302A1 (en) 2016-12-16 2018-06-21 Visa International Service Association System and method for securely processing an electronic identity
CN110582788A (zh) 2017-01-13 2019-12-17 摩根大通国家银行 用于管理分布式系统上的资产或债务支持虚拟凭证的系统和方法
US20180218455A1 (en) 2017-01-30 2018-08-02 Dais Technology, Inc. System for creating and utilizing smart policies on a blockchain
US20180247191A1 (en) 2017-02-03 2018-08-30 Milestone Entertainment Llc Architectures, systems and methods for program defined entertainment state system, decentralized cryptocurrency system and system with segregated secure functions and public functions
US10375105B2 (en) 2017-03-03 2019-08-06 International Business Machines Corporation Blockchain web browser interface
US20180285810A1 (en) 2017-03-29 2018-10-04 Ripe Technology, Inc. Systems and methods of blockchain transaction recordation in a food supply chain
US10680915B2 (en) 2017-03-29 2020-06-09 Cisco Technology, Inc. Consumption-based licensing of network features based on blockchain transactions
US20180367528A1 (en) 2017-06-12 2018-12-20 Cyberark Software Ltd. Seamless Provision of Authentication Credential Data to Cloud-Based Assets on Demand
WO2019018776A1 (en) 2017-07-21 2019-01-24 Patientory, Inc. BLOCK CHAIN NETWORK FOR SECURE EXCHANGE OF HEALTH CARE INFORMATION
US20190095992A1 (en) 2017-09-24 2019-03-28 Annie Mafotsing Soh Method and system to facilitate decentralized money services software as a service
US20190097895A1 (en) 2017-09-28 2019-03-28 Oracle International Corporation System and method for dynamic auto-scaling based on roles
US11184432B2 (en) 2017-09-28 2021-11-23 Oracle International Corporation System and method for dynamic auto-scaling based on roles
US11556521B2 (en) 2017-09-29 2023-01-17 Oracle International Corporation System and method for providing an interface for a blockchain cloud service
US11397962B2 (en) 2017-10-09 2022-07-26 American Express Travel Related Services Company, Inc. Loyalty point distributions using a decentralized loyalty ID
US11048228B2 (en) 2018-03-16 2021-06-29 General Electric Company System and method to protect items associated with additive manufacturing
US10365922B1 (en) 2018-04-10 2019-07-30 Sap Se Distributed-ledger based enterprise application deployment and management
CN108769173B (zh) 2018-05-21 2021-11-09 阿里体育有限公司 运行智能合约的区块链实现方法及设备
WO2020006138A1 (en) * 2018-06-29 2020-01-02 Arcblock, Inc. Blockchain adapter, protocol, and access layer
CN109345159A (zh) 2018-08-21 2019-02-15 深圳市口袋网络科技有限公司 一种数据写入方法及装置、设备、存储介质
US10270770B1 (en) 2018-08-23 2019-04-23 Xage Security, Inc. Generic computing device attestation and enrollment
US11615416B2 (en) 2018-10-12 2023-03-28 Eugenia Roxanne Miller Child support and centralized distributed network
US11100090B2 (en) 2018-11-06 2021-08-24 International Business Machines Corporation Offloaded chaincode execution for a database
US10901983B2 (en) * 2019-03-01 2021-01-26 Wanchain Ltd. System and method for universal blockchain interoperability
US10503905B1 (en) 2019-06-26 2019-12-10 Capital One Services, Llc Data lineage management
US10528890B1 (en) 2019-07-24 2020-01-07 Kpmg Llp Blockchain-based training data management system and method for trusted model improvements

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1929396A (zh) * 2005-09-09 2007-03-14 中兴通讯股份有限公司 一种网络中实现对网元进行数据配置的方法
CN101135966A (zh) * 2006-11-24 2008-03-05 中兴通讯股份有限公司 一种基于命令行的图形界面开发方法及系统
US10013573B2 (en) * 2015-12-16 2018-07-03 International Business Machines Corporation Personal ledger blockchain
CN108921551A (zh) * 2018-06-11 2018-11-30 西安纸贵互联网科技有限公司 基于Kubernetes平台的联盟区块链系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
hyperledger-fabricdocs Documentation;无;《URL:https://buildmedia.readthedocs.org/media/pdf/nick-fabric/latest/nick-fabric.pdf》;20180306;第7、19-31、43-51、98-101、149-151、183-197页 *

Also Published As

Publication number Publication date
US10764032B2 (en) 2020-09-01
CN110622488A (zh) 2019-12-27
WO2019120319A3 (en) 2020-02-06
US11201727B2 (en) 2021-12-14
EP3610357A4 (en) 2020-07-15
SG11201908937RA (en) 2019-10-30
EP3610357B1 (en) 2023-06-14
US20200153608A1 (en) 2020-05-14
EP3610357A2 (en) 2020-02-19
US20200313857A1 (en) 2020-10-01
WO2019120319A2 (en) 2019-06-27

Similar Documents

Publication Publication Date Title
CN110622488B (zh) 用于管理用户与区块链的交互的系统和方法
JP6955026B2 (ja) 並列処理ブロックチェーントランザクションのためのシステムおよび方法
US11429617B2 (en) System and method for blockchain-based data synchronization
WO2020143853A2 (en) Distributed blockchain data storage under account model
EP3837652B1 (en) Distributed blockchain data storage under account model
CN111066047B (zh) 实现基于区块链的工作流
TWI706284B (zh) 用於智慧合約的軟體介面
US10785233B2 (en) System and method for registering subscribable states in blockchain
US10754716B2 (en) System and method for blockchain-based notification
CA3098942C (en) Taking snapshots of blockchain data
US11023271B2 (en) System and method for registering subscribable sub-states in blockchain
EP3769219B1 (en) Taking snapshots of blockchain data
US20220407707A1 (en) Generative cryptogram for blockchain data managment
US11683173B2 (en) Consensus algorithm for distributed ledger technology
US20230267220A1 (en) Privacy preserving asset token exchange

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40019997

Country of ref document: HK

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200927

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200927

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

GR01 Patent grant
GR01 Patent grant