Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
A PERMISSIONED BLOCKCHAIN DEVELOPMENT SYSTEM BASED ON OPEN BLOCKCHAIN CONNECTOR (OBCC)
Document Type and Number:
WIPO Patent Application WO/2018/223214
Kind Code:
A1
Abstract:
The present invention provides a permissioned blockchain development system based on Open Blockchain Connector (OBCC), comprising: (1) a user IP configuration module for a user to set up a blockchain server-side IP address with a jar package provided by OBCC; (2) a communication module for the user to invoke the function provided by the jar package, providing communication between the OBCC client and the server on blockchain; (3) a call request module for OBCC client to send call requests to the blockchain; (4) a service invoking module, which is used by the server agent to broadcast the invoking request to each of the blockchain nodes and provide respective invoking interfaces for the respective functions, and each invoking interface calls its corresponding function provided by OBCC. This development system enables the rapid creation and use of a new permissioned blockchain with simple code and configuration, greatly reducing the development cycle of a permissioned blockchain application.

Inventors:
DENG ENYAN (CN)
Application Number:
PCT/CA2018/000111
Publication Date:
December 13, 2018
Filing Date:
June 06, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ZEU CRYPTO NETWORKS INC (CA)
International Classes:
H04L12/12; G06F17/30; H04L29/06
Other References:
CROSBY ET AL.: "BlockChain Technology", 16 October 2015 (2015-10-16), pages 1 - 35, XP055554266, Retrieved from the Internet [retrieved on 20180822]
GORECKI: "Package 'Rbitcoin'", 29 August 2016 (2016-08-29), pages 1 - 26, XP055554273, Retrieved from the Internet [retrieved on 20160822]
Attorney, Agent or Firm:
BIRD, Keith (CA)
Download PDF:
Claims:
What is claimed is:

1. 1. A permissioned blockchain development system based on Open Blockchain Connector (OBCC) providing an interface for a plurality of functions, the system comprising:

a) a user internet protocol (IP) configuration module, adapted to set up a connection to a blockchain server for a blockchain comprising a plurality of nodes, and to configure an IP address for the blockchain server;

b) a communication module providing communication between an OBCC client and the blockchain server, to permit a user of the OBCC client to invoke said plurality functions; c) a call request module, for use by the OBCC client to send a call request to the blockchain server;

d) a service invoking module, for use by a server agent to broadcast the request to each of the plurality of nodes, and for providing a respective invoking interface for each of the plurality functions.

2. The system of claim 1, wherein the user of the communication module only needs the IP address of the blockchain server, and said connection is set up without information on specific addresses of the plurality of nodes.

3. The system of claim 1, wherein said plurality of functions comprise:

a) a function to create a permissioned blockchain;

b) a function store service data;

c) a function to create service data;

d) a function to update business data;

e) a function to delete business data; and

f) a function to query blockchain data.

4. The system of claim 1 , wherein the service invoking module provides a second plurality of functions comprising:

a) a function to add transactions to the blockchain; b) a function to query transactions from the blockchain;

c) a function to quickly query transactions from the blockchain;

d) a function to create transaction blockchain; and

e) a function to create account blockchain.

5. The system of claim 4, wherein calls of the second plurality of functions provided by the service invoking module follow a sequence of steps, whereby:

a) a first step of calling the function to create a transaction blockchain and the function to create an account blockchain;

b) a second step of calling the function to add transactions to the blockchain; and

c) a third step of calling the function to query transactions and the function of quickly query transactions from the blockchain.

6. The system of claim 1, wherein said service invoking module broadcasts the request to each of a plurality of nodes using the server agent, and returns a result of the request to the user.

7. The system of any one of the claims 1 to 6, comprising a specification of interface parameters for use by the user to define data for an application.

8. The system of any one of claims 1 to 6, wherein service data is stored and wherein storing the service data is performed by using a consensus mechanism.

9. The system of any one of claims 1 to 6 wherein the blockchain uses a Byzantine algorithm to build a block.

10. A method of creating a permissioned blockchain, using a blockchain development system based on Open Blockchain Connector (OBCC), the system comprising: a user internet protocol (IP) configuration module, a communication module, a call request module, and a service invoking module, the method comprising: a) using the user internet protocol (IP) configuration module, to set up an OBCC connection to a blockchain server for a blockchain comprising a plurality of nodes, and to configure an IP address for the blockchain server;

b) using the communication module to provide communication between an OBCC client and the blockchain server;

c) using call request module to send a call request to the blockchain server; and

d) using the service invoking module to broadcast the request to each of the plurality of nodes.

1 1. The method of claim 10, further comprising, service invoking module for the steps of:

a) calling the function to create a transaction blockchain and the function to create an account blockchain;

b) calling the function to add transactions to the blockchain; and

c) calling the function to query transactions and the function of quickly query transactions from the blockchain.

12. The method of claim 10, further comprising invoking one of said plurality of functions, said plurality of functions comprising:

a) a function to create a permissioned blockchain;

b) a function store service data;

c) a function to create service data;

d) a function to update business data;

e) a function to delete business data; and

f) a function to query blockchain data.

Description:
A Permissioned Blockchain Development System Based on Open Blockchain

Connector (OBCC)

Technical Field

[0001] The present invention relates to a blockchain technology, in particular to a permissioned blockchain development system based on Open Blockchain Connector (OBCC).

Background Art

[0002] Blockchain is a distributed database system involving nodes. It can also be understood as Distributed Ledger Technology, which is jointly maintained by multiple nodes. It can be characterized as highly tamper-resistant, difficult to forge or counterfeit, and traceable. Blockchain records all transactions that have ever occurred on the blockchain. The process is efficient and transparent, data is kept secure. Blockchain technology can be applied in situations that demand a fair and unbiased system without the need for a central authority.

[0003] A permissioned blockchain is a kind of blockchain where only authorized nodes can participate in voting, accounting and block building. Permissioned blockchain do not require mining, which leads to lower transaction costs and more efficient storage. As existing permissioned blockchains are generally only suitable for a specific application, or a specific type of data storage, different businesses need to develop different permissioned blockchains to address specific data storage requirements. This leads to a longer development cycles for new permissioned blockchains, as the underlying process flow for blockchains is not reused but recreated. There are many ways building a permissioned blockchain. For example, the journal article by L. Lamport, S. Shostak and M. Pease, The Byzantine Generals Problem, J. ACM Trans. Programming Languages and Systems, 1982, 4 (3): 382-401 discusses methods of building permissioned blockchains.

[0004] At present, there are still many challenges faced by users in using the blockchain in the application process. These include applying for blockchain, getting user data into the chain store, and querying historical data information. This invention addresses at least some of these problems.

Summary of Invention

[0005] In accordance with one aspect of the present invention, there is provided a permissioned blockchain development system based on Open Blockchain Connector. The system includes a user internet protocol (IP) configuration module, adapted to set up a connection to a blockchain server for a blockchain comprising a plurality of nodes, and to configure an IP address for the blockchain server; a communication module providing communication between an OBCC client and the blockchain server, to permit a user of the OBCC client to invoke the plurality functions; a call request module, for use by the OBCC client to send a call request to the blockchain server; and a service invoking module, for use by a server agent to broadcast the request to each of the plurality of nodes, and for providing a respective invoking interface for each of the plurality functions.

[0006] In accordance with another aspect of the present invention, there is provided a method of creating a permissioned blockchain, using a blockchain development system based on Open Blockchain Connector (OBCC). The system comprising: a user internet protocol (IP) configuration module, a communication module, a call request module, and a service invoking module. The method includes using the user internet protocol (IP) configuration module, to set up an OBCC connection to a blockchain server for a blockchain comprising a plurality of nodes, and to configure an IP address for the blockchain server; using the communication module to provide communication between an OBCC client and the blockchain server; using call request module to send a call request to the blockchain server; and using the service invoking module to broadcast the request to each of the plurality of nodes.

Brief Description of Drawings

[0007] In the figures, which illustrate by way of example only, embodiments of the present invention: [0008] FIG. 1 is a schematic diagram of a system of blockchains and related applications, deploying and utilizing OBCC;

[0009] FIG. 2 is a layered architectural diagram for OBCC;

[0010] FIG. 3 is an exemplary state transition diagram for a system utilizing the OBCC, in one exemplary embodiment; and

[0011] FIG. 4 is a simplified a schematic diagram depicting components of an OBCC-based permissioned blockchain development system.

[0012] Specific embodiments will be described in detail, by way of example only, with reference to the attached drawings. The same reference label in the drawings identifies the same or similar elements, parts or portions thereof. Persons of skill in the art will readily understand that the drawings are not necessarily drawn to scale.

Description of Embodiments

[0013] A description of various embodiments of the present invention is provided below. Embodiments utilize the open blockchain connector (OBCC), which is a blockchain application programming interface (API) standard jointly designed by Beijing University of Aeronautics and Astronautics, Peking University and Tsinghua University.

[0014] In this disclosure, the use of the word "a" or "an" when used herein in conjunction with the term "comprising" may mean "one," but it is also consistent with the meaning of "one or more," "at least one" and "one or more than one." Any element expressed in the singular form also encompasses its plural form. Any element expressed in the plural form also encompasses its singular form. The term "plurality" as used herein means more than one, for example, two or more, three or more, four or more, and the like. Directional terms such as "top", "bottom", "upwards", "downwards", "vertically" and "laterally" are used for the purpose of providing relative reference only, and are not intended to suggest any limitations on how any article is to be positioned during use, or to be mounted in an assembly or relative to an environment.

[0015] The terms "comprising", "having", "including", and "containing", and grammatical variations thereof, are inclusive or open-ended and do not exclude additional, un-recited elements and/or method steps. The term "consisting essentially of when used herein in connection with a composition, use or method, denotes that additional elements, method steps or both additional elements and method steps may be present, but that these additions do not materially affect the manner in which the recited composition, method, or use functions. The term "consisting of when used herein in connection with a composition, use, or method, excludes the presence of additional elements and/or method steps.

[0016] A "blockchain" is a tamper-evident, shared digital ledger that records transactions in a public or private peer-to-peer network of computing devices. The ledger is maintained as a growing sequential chain of cryptographic hash-linked blocks.

[0017] A "node" is a device on a blockchain network. The device is typically be a computer having a processor interconnected to a processor readable medium including memory, having processor readable instructions thereon.

[0018] In addition, the terms "first", "second", "third" and the like are used for descriptive purposes only and cannot be interpreted as indicating or implying relative importance.

[0019] In the description of the invention, it should also be noted that the terms "mounted", "linked" and "connected" should be interpreted in a broad sense unless explicitly defined and limited otherwise. For example, it could be fixed connection, or assembled connection, or integrally connected; either hard-wired or soft-wired; it may be directly connected or indirectly connected through an intermediary. For technical professionals, the specific meanings of the above terms in the invention may be understood in context.

[0020] In the drawings illustrating embodiments of the present invention, the same or similar reference labels correspond to the same or similar parts. In the description of the invention, it should be noted that the meaning of "a plurality of means two or more unless otherwise specified; The directions or positions of the terms "up", "down", "left", "right", "inside", "outside", "front end", "back end", "head", "tail", the orientation or positional relationship shown in the drawings is merely for the convenience of describing the invention and simplifying the description rather than indicating or implying that the indicated device or element must have a particular orientation and be constructed and operated in a particular orientation, and therefore cannot be used as a limitation of the invention.

[0021] Embodiments of the present disclosure include a permissioned blockchain development system, based on OBCC which provides a toolkit that a user or developer can import into his or her software project and use the functions of the blockchain in a manner similar to calling local functions or methods. When the user program calls a function of the blockchain, the OBCC client agent sends the call request to the server on the blockchain. The server agent is responsible for broadcasting the request to blockchain nodes for processing, and finally storing the result on the blockchain or returning the queried information. The permissioned blockchain development system is based on a unified application programming interface (API). The API is easy to use and enables applications to use the blockchain to store and query data.

[0022] The OBCC-based permissioned blockchain development system can quickly create and use a new permissioned blockchain with simple code and configuration. This greatly reduces the development cycle of the permissioned blockchain application.

[0023] In one embodiment, a permissioned blockchain system based open blockchain connector (OBCC) API includes a User IP Configuration Module, a Communication Module, a Call Request Module and a Service Invoking Module.

[0024] The User IP Configuration Module is for users to set up an OBCC connection based on a package file format called jar provided by OBCC and configure the internet protocol (IP) address of the server on the blockchain. [0025] The Communication Module is used by the user to invoke the function provided by the jar package, the OBCC client communicates with the server on the blockchain.

[0026] The Call Request Module is used by the OBCC client to send the call request to the server agent(s) on the blockcham.

[0027] The Service Invoking Module is used by a server agent to broadcast the request to each of the blockchain nodes on its blockchain.

[0028] There are different interfaces for different functions provided by OBCC. Preferably, the user of the communication module only needs to know the IP address of the server on the blockchain, and does not need to know the address of the specific node of the blockchain and the specific implementation method of various functions.

[0029] Preferably, the functions provided by OBCC include permissioned blockchain creation, service data storage, service data creation, service data update, service data deletion, and blockchain data query.

[0030] Preferably, the service invoking module includes: a function to add a transaction to the blockchain system, a function to query the transaction from the blockchain, a function to quickly query the transaction from the blockchain, a function to create a transaction blockchain, a function to create an account blockchain and a function to create index.

[0031] Preferably, calls of the service invoking module are in accordance with a certain sequence of relationships. First, call the functions to create transaction blockchains and account blockchains, then call the function to add transactions to the blockchain, and finally call the function to query transactions from the blockchain and the function to quickly query transactions from the blockchain.

[0032] Preferably, the service invoking module, by the relay of the server agent, broadcasts the invoking request to each of the blockchain nodes, and the processing result is returned to the user application. [0033] Preferably, the OBCC-based permissioned blockchain development system provides a series of specifications related to interface parameters, and users need to define their own application data in accordance with the specifications.

[0034] Preferably, the service data storage is performed using a consensus mechanism.

[0035] Preferably, the establishment of the permissioned blockchain adopts the Byzantine algorithm.

[0036] The permissioned blockchain development system based on OBCC as described in the present disclosure has several advantages. It shortens the development cycle for a new permissioned blockchain. The developer does not need to develop the blockchain processing flow module but instead just calls the OBCC API to use the blockchain. OBCC is easy to get started on, and use.

[0037] OBCC is applicable for use in a variety of business scenarios. OBCC is scalable and adaptable - one need only define interface parameters in accordance with the specification, to tailor it to the needs of a different scenario. Finally, OBCC's underlying permissioned blockchain core system, with its high operating speed, can handle large amounts of data per second, allowing it to meet the requirements of large-density data storage.

[0038] FIG. 1 is a schematic diagram of a system deploying OBCC according to one exemplary embodiment. The system 100 includes an application 102, an application layer OBCC client agent 104, a plurality of OBCC server agents 106a, 106b,..., 106n (individually and collectively server agents 106), and a plurality of associated blockchain core systems 108a, 108b,..., 108n (individually and collectively blockchain core systems 108).

[0039] FIG. 2 is a schematic block diagram depicting the hierarchical layers of a blockchain system that utilizes the OBCC API, exemplary of an embodiment of the present invention. The system includes an OBCC interface layer 202, core blockchain layer 204 and a storage layer 208. The OBCC interface layer 202 has a creation interface 208 for creation, a write interface 210, and a query interface 212, which respectively map to corresponding functions such as the illustrated functions Create(), Insert(), and Select(), as used in this particular embodiment.

[0040] The blockchain core layer 204 uses the consensus mechanism to synchronize management and build blocks. The blockchain core layer 204 also includes a reputation system. The security of system operation is guaranteed by signature and associated signature verification. The storage layer 208 includes a first database 224 and a second database 226. In this particular embodiment, first database 224 is the LevelDB database while second database 226 is the MySQL database.

[0041] As noted above, an OBCC-based permissioned blockchain development system includes a plurality of modules. This is further illustrated in FIG. 4. Development system 400 includes: (1) User IP Configuration Module 402 for users to set up OBCC connection according to the jar package provided by OBCC and configure the IP address of the blockchain server; (2) Communication Module 404 for the user to invoke the function provided by the jar package, the OBCC client communicates with the blockchain server; (3) Call Request Module 406, which is used by the OBCC client to send the call request to the blockchain server; and (4) Service Invoking Module 408, used by the server agent to broadcast the invoking request to each of the blockchain nodes, and provide respective invoking interfaces for the respective functions provided by each OBCC.

[0042] The functions provided by OBCC include the creation of a permissioned blockchain, the storage of service data, the creation of service data, the update of service data, the deletion of service data, and the query of blockchain data. The functions of the service calling module include: add transactions onto blockchain, query transactions from blockchain, quickly query transactions from blockchain, create transaction blockchain, create account blockchain, and create index.

[0043] Calling of service invocation modules needs to be done in a certain sequence, the first call to create a transaction chain and create an account chain, and then call to add transactions onto blockchain, the last call to query transactions from blockchain and quickly query transactions from blockchain. The service invoking module, through the server agent, broadcasts the call request to each blockchain node, it also return results to the user application.

[0044] The OBCC-based permissioned blockchain development system provides a series of specifications related to interface parameters. Users need to define their own application data according to the specifications.

[0045] According to a preferred implementation of the invention, the business data storage is performed using a consensus mechanism, and the establishment of the permissioned blockchain is built using the Byzantine algorithm.

[0046] The order of API calls is illustrated in FIG. 3 that resembles a state transition diagram. The OBCC-based permissioned blockchain development system may have at least five states 302, 304, 306, 308, 310.

[0047] Initially, at state 302, a function call 322 (CreateTbc) may called to create a transaction blockchain and transition to state 304. At state 302, a function call 312 to create an account blockchain (CreateAbc) creates an account blockchain and transitions the system to state 306.

[0048] In state 304 another function call 322 (CreateTbc) may be made to create additional transaction blockchains while remaining in the same state. In state 304, an insert function call 326 transitions the system to state 308.

[0049] In state 306 another function call 314 (CreateAbc) may be made to create additional account blockchains while remaining in the same state. In state 306, an insert function call 324 transitions the system to state 308.

[0050] In state 308 another insert function call 318 may be made to create additional transaction blockchains while remaining in the same state. In state 308, a function call 326 (e.g., selectQ, fselectQ) transitions the system to state 310. [0051] In state 310 another function call 326 (e.g., select(), fselect()) may be made to query information while remaining in the same state. In state 310, upon a function call 316 (e.g.. select(), fselect()) the system remains in the same state 310.

[0052] Table I shows the functions, and the associated return value and description of the functions, that may be invoked or called.

Table I

[0053] In the exemplary embodiment, the OBCC based system includes at least eight nodes, wherein four nodes are used for deployment of the blockchain core system and the process of blockchain storage is completed based on the Byzantine algorithm. Each blockchain node has a corresponding OBCC server agent. The four blockchain nodes need to keep their communication with each other unobstructed, and the blockchain nodes and their corresponding OBCC server agent nodes should communicate with each other smoothly.

[0054] To implement one exemplary embodiment of the application, a developer creates a new application project and imports the jar package provided by the OBCC into the project. Before using the OBCC feature, the developer specifies the IP address of the OBCC server agent to be connected in the configuration file.

[0055] To use the OBCC, first an OBCC connection is created and the connection is established. Then, in accordance with the business requirements, the name of the new blockchain and the data fields to store are specified. The information is used to define interface parameters according to the OBCC specification. The OBCC function for creating blockchains is used to create a new blockchain.

[0056] After the blockchain starts normally, a message store request is sent over the OBCC connection, to store the data on the blockchain. In the same way, the data query only needs to call the corresponding interface function provided by the OBCC connection and pass the parameters for the interface function in accordance with the specification.

[0057] A sample java code for creating the transaction blockchain is shown in Table II below.

Table II

Sample java code for creating a transaction blockchain public jBCCResult create Tbc (DataBuilder paramBuilder) throws Exception {

List <DataBuilder> dataList = new ArrayList <DataBuilder> ();

dataList.add (paramBuilder);

JBCCMessage jbccMsg = createJBCCMsg (dataList);

jbccMsg.setAction (ActionType.CREATE Tbc);

List <JBCCResult> resultList = jbccActiveClien.sendAndCountReturn (jbccMsg, 1 5);

return countResult (resultList);

}

[0058] A sample java code for creating the transaction blockchain and creating blockchain interface is shown in Table III.

Table III

Sample java code for creating a blockchain interface:

JBCCClien jbccCIient = getJBCCClien ();

JBCCResult result = null;

DataBuilder dataBuilder = new DataBuilder ("third_pay_Tbc", "works", "y", new Date ()); dataBuilder.addParam ("copyright_id", "int (10)");

dataBuilder.addParam ("banquanjia_evidence_code", "tinytext");

dataBuilder.addParam ("evidence code", "char (l 1 )");

dataBuilder.addParam ("account", "int (1 1 )");

dataBuilder.addParam ("work id", "varchar (64)");

dataBuilder.addParam ("work name", "varchar (80)");

dataBuilder.addParam ("upload username", "varchar (64)");

dataBuilder.addParam ("account", "double (12,2)");

try {

result = jbccClient.createChain (dataBuilder);

} catch (Exception e)

{e.printStackTrace ();

}

finally

{

jbccClient.close ();

}

[0059] The OBCC-based permissioned blockchain development system provided by the above described embodiments can quickly complete the creation and use of a new permissioned blockchain by relatively simple code invocation and configuration procedures, greatly reducing the development cycle of the permissioned blockchain application.

[0060] The above is an example of implementing this invention, and not a restriction of what this invention can be used for. Any technical professional versed in this area, can make improvements upon its basis without leaving the scope of the invention. Any simple modifications, or improvements are still within the scope of this invention..

[0061] While the present invention has been described with reference to the particular illustrative embodiments, it is to be understood that the invention is not to be limited by the particular details of the embodiments described but only by the appended claims. Persons of skill in the art would understand that the implementation details of the present invention can be modified without departing from the scope of the claims.