RELATIONAL DATA MANAGEMENT AND ORGANIZATION USING DISTRIBUTED LEDGER TECHNOLOGY (DLT)

MX431667BActive Publication Date: 2026-02-25KNNX CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
MX2021009969
Authority / Receiving Office
MX · MX
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-06-11
Filing Date
2021-08-18
Publication Date
2026-02-25
Estimated Expiration
2040-08-19

Smart Images

  • Figure MX431667B0
    Figure MX431667B0
Patent Text Reader

Abstract

This document describes a set of smart contract and off-chain tools that enable data management and organization, allowing data to be stored in a distributed ledger according to relational database principles. A cross-platform distributed ledger specification, along with reusable core components, creates a system that can be deployed on distributed ledger platforms to enable data storage and retrieval to and from the distributed ledger governed by relational principles. One implementation of this system allows the addition of System Chain Code to Hyperledger(r) Fabric and uses schemas and data represented as JSON. In use, the user can create, update, and query data from code, a console, or a smart contract, where each update is a distributed ledger transaction.
Need to check novelty before this filing date? Find Prior Art

Description

Relational Data Management and Organization Using Distributed Major Book Technology (DLT) Field of invention

[0001] The application is aimed at the administration and organization of data to allow the storage and recovery of this data in / of a major book distributed in accordance with the principles of the relational databases. Background of the invention

[0002] Original relational database systems arose in response to a novel development in computer science at the end of the 1960s. As the systems became larger and more complex, it became clear that new and up -to -date programs were necessary to work with data created with the oldest. The existing systems made this difficult because the programs often stored data each in their own way. The important aspects of the standardized relational model of storage and recovery and those who adapted it enjoyed a variety of benefits, including cheaper updates and lower blocking of suppliers.

[0003] On the contrary, those who were still guided by computer suppliers to specific storage approaches suffered higher maintenance costs and a greater effort further forward, particularly when it was taken what was sometimes a very long decision to finally move on to a platform for the management system of relational databases (RDBMS). The years of the Australian Department of Defense in the 1970s to finally leave the non -relational language of Honeywell Fact is a testimony of these costs.

[0004] Occasionally, since then, advances in other areas of computing have made existing relationship tools incompatible or inconvenient. For example, nature -oriented nature of the early Web Web Web brought many projects to inefficient times before relational databases until the connection of websites was achieved and practiced to a RDBMS data access layer. Similarly, the rise of object -oriented programming temporarily made it less natural for programmers to represent data using the relational data model. Empsulated object data were difficult to divide in RDBMS tables. However, the advantages of relational representation were significant enough for now the relational mapping of objects (ORM) is a common approach where object -oriented programming is still used.

[0005] On the other hand, distributed major book technology (DLT) has the potential to turn on the spark and make possible what is equivalent to the information technology revolution of this century. The distributed major book technology is addressing and solving one of the greatest and most disconcerting challenges of the Internet the lack of trust. Distributed older book technology is a paradigm of distributed incipient but powerful computing and the only technology to date that has the potential to provide confidence to the Internet by immutable data for practical purposes. Unfortunately, RDBMS platforms and tools RQRRNN / LZNZ / ε / υιλι existing are not compatible with the restrictions of distributed major book technology. As a result, the blocking of programs / data, where the data is inextricably linked to the program, is even greater for smart contracts in major books than what it was for the programs in the days of the prerelational databases of the 1960s. Systems and methods are desired through which the data in older books distributed only are blocking in the details of an intelligent contract implemented if that is the specific intention of the developer. Brief description of the invention

[0006] The systems and methods described in the present address the need in the state of the technique of providing a set of intelligent contracts and tools outside the chain that allow the relational administration and organization of data before storing in a major book distributed, making it possible to take advantage of the knowledge of the previously existing developers on the relational databases without sacrificing the benefits of the distributed major book. In show modalities, the data is administered and organized according to the relational principles, are stored on a distributed major book platform and have access to them using programming languages, such as structured consultation language (SQL), which are already relatives to the developer. The result is a highly safe and auditable relational database in a distributed older book. Also, the systems and methods described in this can be used with intelligent contracts to make data storage aspects of those most treatable intelligent contracts.

[0007] In modalities show, a specification of the most reusable crucible distributed cruciate -distributed components together create a data management and data organization that can be implemented on common book technology platforms such as Hyperledger® Fabric distributed and which can be accessed from popular programming platforms such as NODE.JS®. The Data Relational Administration and Organization System makes possible the ability to add the system chain code to be used with Hyperledger® Fabric and uses schemes and data represented as notation of Java Script objects (JSON). Also, Fabric World Database is used to store data and the MANUBIC identity provider is used for data access control over, for example, five levels including creating databases, authorizing user access to databases, adding tables and modifying schemes, writing data and just consulting. In use, the user can create, update and consult code tables, a console or an intelligent contract where each update is a distributed major book transaction.

[0008] In show modalities, systems and methods are provided to consult a distributed major book platform that implements a distributed major book that includes transaction data in the distributed main book with a Relationship Database Administration Consultation. The method includes creating a database and records information about the database in the distributed main book and converting a relational database administration consultation received in a consultation operation that can be processed by the distributed major book platform. The consultation operation is executed on the distributed major book platform to generate a consultation result and the consultation result is recorded on the distributed major book platform RQRRNN / LZNZ / ε / υιλι in a way that can be processed by the major book platform for inclusion in the distributed main book. In modalities, the consultation of relational databases is generated (1) receiving a structured consultation language (SQL) consultation of a user through a user interface; (2) Receive an SQL query from a user application through an interface of the application program; or (3) an intelligent contract that executes a SQL consultation.

[0009] In show modalities, the system of administration and organization of relations relationships adapts to analyze the SQL consultation in an SQL operation that can be any of a data manipulation language writing operation (DML), DML reading operation, or a data definition language (DDL) operation. A representation of notation of Java Script objects (JSON) of the SQL operation and any relational data included in the SQL operation is created by processing with the distributed major book platform.

[0010] In other modalities it shows, if it is determined that a transaction resulting from the execution of the SQL operation has progressed towards acceptance in a major book distributed to a relevant extent for the platform, for example, adding an instruction of the operating transmission status (OPSTAT) at the end of a DML writing operation Search for a more definitive state of a corresponding transaction. The execution of the consultation operation on the distributed major book platform may also include confirming that an entity that invokes the SQL consultation has the authority to carry out the requested SQL operation. The execution of the consultation operation on the distributed major book platform may also include creating a consultation operation that can be processed and stored with the major book platform as a JSON representation of the consultation operation and its result.

[0011] In the case where the SQL operation is a DML writing operation of SQL, the methods may include data recovery from the distributed major book platform when required to execute the DML writing operation of SQL, execute the SQL DML writing operation including recovered data, prepare JSON representations of any new or updated record in the result of the outcome and confirm SQL DML writing and any updated record to the major book platform distributed in a way that can be processed by the distributed major book platform for inclusion in the distributed main book. The methods can also include monitoring the distributed main book for the acceptance of the SQL DML writing operation in the distributed major book and informing the entity that invokes the SQL consultation if the DML writing operation of SQL was successful.

[0012] On the other hand, in the case where the SQL operation is a DML reading operation of SQL, the methods can include data recovery from the distributed major book platform when required to execute the SQL DML reading operation, execute the SQL DML reading operation including the recovered data, prepare a JON representation of the result of the result of the consultation and record the representation of JON. on the major book platform distributed in a way that can be processed by the major book platform for inclusion in the distributed main book. The method may also include returning JSON's representation of the result of the consultation to an entity that invokes the SQL consultation. RQRRNN / LZNZ / ε / υιλι

[0013] In show modalities, the distributed major book platform is an Hyperledger® Fabric platform. In these modalities, the database can be created as a world status database for the distributed main book of the Hyperledger® Fabric platform executing a configuration transaction that creates a channel and defines which participating computers will retain a copy of the database and a regular transaction that writes metadata on the relational database. Also, a chain code that defines transaction data can be created in the distributed main book and transaction instructions to modify transaction data. In the modalities shows, the chain code can define attributes of the relational database in a notation of Java Scrípt (JSON) objects such as transaction data on the distributed major book platform. At the end of an operation, the world database is updated with the attributes of the relational database. Also, the method may include creating a structured consultation language consultation (SQL) analyzed and translated that considers the form that can be processed by the distributed major book platform for inclusion in the distributed major book. For example, the SQL consultation can consider JSON elements of the specification of the administration and relational organization system on the Hyperledger® Fabric platform.

[0014] In other modalities, a system is provided that includes a distributed major book platform that implements a distributed major book that includes transaction data and at least one processor that executes instructions to implement the system of administration and organization of relational databases that carry out operations that include creating a database and registering information about the database in the distributed major book; convert a relationship of relational databases received in a consultation operation that can be processed by the distributed major book platform; the execution of the consultation operation on the distributed major book platform to generate a consultation result; and register the consultation result on the major book platform distributed in a way that can be processed by the distributed major book platform for inclusion in the distributed main book. The system may also include means to generate the Relationship Database Consultation including (1) A User Interface for the Relational Data Management and Organization System through which a user provides a structured consultation language consultation (SQL), (2) A user application that passes a SQL query to the Data Relational Administration and Organization system through an interface of the application program to the application system of the administration system and relations. Intelligent that runs a SQL query.

[0015] In system sample modalities, at least one processor executes additional instructions to analyze the SQL consultation in a SQL operation including as alternatives a data manipulation language writing operation (DML), a DML reading operation, a data definition language (DDL) operation and create a representation of the notation of java script objects (JON) Relational data included in the SQL operation. At least one processor can execute additional instructions to determine whether a transaction resulting from the execution of the SQL operation has progressed towards acceptance in the main book distributed to a relevant measure for the platform. For example, an OPSTAT instruction can be added at the end of a DML writing operation to find a more definitive state of a corresponding transaction. RQRRNN / LZNZ / ε / υιλι

[0016] In modalities it shows additional, the distributed major book platform is an Hyperledger® Fabric platform and at least one processor executes instructions to create the database as a world status database for the distributed main book of the Hyperledger® Fabric platform. Metadata based on relational database and to create a chain code that defines transaction data in the distributed main book and transaction instructions to modify transaction data. At least one processor can execute additional instructions corresponding to the chain code that defines attributes of the relational database in a notation of Java Script (JSON) objects such as transaction data in the main book distributed on the distributed major book platform and to update the world database with the attributes of the relational database. At least one processor can also execute instructions to create a structured consultation language consultation (SQL) analyzed and translated that considers the form that can be processed by the distributed major book platform for inclusion in the distributed main book.

[0017] The modalities described in the present also cover computer systems and computer legible means encoded with instructions to implement the methods described through this description. For example, the systems and methods described in this can be implemented on a cloud computer platform to provide functionality for access and storage data to a database implemented on a distributed larger book platform as described in the present. Brief description of the figures

[0018] This description is luster as an example and not of limitation in the figures of the accompanying drawings, in which similar references indicate similar elements and in which:

[0019] Figure 1 is a block diagram of the administration and relational organization system of data shows.

[0020] Figure 2 is a block diagram of an implementation of the administration and relational organization system in a realization where Node.JS® is the programming language and Hyperledger® Fabric is the distributed major book platform used in sample modalities.

[0021] Figure 3 is a block diagram that lusters the activities, components and data involved in the creation of the database for the Relational Data Administration and Organization System in Modalities Sams.

[0022] Figure 4 is a block diagram that lusters an operation for writing relational data in an existing database of the administration and relational organization of data in modalities shows.

[0023] Figure 5 is a block diagram that lusters the execution of Data Manipulation Language Language Reading (DML) (DML) queries requested by the user interface of the Data Relational Administration and Organization System or by a user application through SDK Specific Language and Language SDK and Application Program Interface of the Relational Data Administration and Organization System in Modalities Sams. RQRRNN / 1 7π7 / β / υιλι

[0024] Figure 6 is a block diagram that lusters the components and data involved in the first part of relations access control relations for the addition of users for access below the level of surplus administration in sample modalities.

[0025] Figure 7 is a block diagram that lusters the interaction of the Element Fabric-Node.js® SDK with a user application and the execution environment in which both are housed, which is modeled as the User application node shows.

[0026] Figure 8 is a logical flow diagram of an example of a successful DML writing operation in a distributed larger book using the system of relational administration and organization of data in sample modalities.

[0027] Figure 9 is a logical flow diagram of an example of a successful SQL DML reading operation of a distributed larger book using the Data Relational Administration and Organization System in Sample Modalities.

[0028] Figure 10 is a block diagram that lusters the successful execution of data definition language (DDL) in modalities shows.

[0029] Figure 11 is a block diagram of a computer for general purposes, typical that can be programmed on a computer for special purposes suitable for implementing one or more modalities of the administration and relational organization of data described in the present.

[0030] Figure 12 lustra a “first execute and then order” design.

[0031] Figure 13 lustra to a block chain network included nodes, each of which can contain copies of older books and copies of intelligent contracts.

[0032] Figure 14 lustra a participant who houses cases of major books and chain codes.

[0033] Figure 15 lustra a participant who houses multiple older books.

[0034] Figure 16 Lusters an example of a participant that houses multiple chain codes.

[0035] Figure 17 Lustra participants, in conjunction with orders, which ensure that the main book is kept updated in each participant.

[0036] Figure 18 illustrates channels that allow a specific set of participants and applications to communicate with each other within a block chain network.

[0037] Figure 19 Lustra participants in a block chain network with multiple organizations.

[0038] Figure 20 lustra that when a participant connects to a channel, his digital certificate identifies his own organization through an MSP channel.

[0039] Figure 21 illustrates transaction proposals that are executed independently by participants that return response to backed or endorsed proposals.

[0040] Figure 22 lustra the second role of an order node, which is to distribute blocks to RQRRNN / LZNZ / ε / υιλι participants.

[0041] Figure 23 lusters a world state of major book that contains two states.

[0042] Figure 24 Lustra that having a valid credit card is not enough - it must also be accepted by the store.

[0043] Figure 25 lustra the elements of the public key infrastructure (PKI).

[0044] Figure 26 illustrates a digital certificate describing a part called Mary Morris.

[0045] Figure 27 Lusters an example where Mary uses her private key to sign the message.

[0046] Figure 28 lusters a certified authority that dispenses certificates to different actors.

[0047] Figure 29 Lusters a chain of trust that is established between a root and a set of intermediates provided that the certificate of the certificate of each of these intermediate ca is the root itself or has a chain of trust with the root.

[0048] Figure 30 lustra using a CRL to verify that a certificate remains valid.

[0049] Figure 31 lusters levels of access and determination of permits.

[0050] Figure 3 lusters an overview of the data and operation objects. Detailed description of the invention

[0051] The following description with respect to Figures 1-32 Luster sufficiently specific modalities to allow those experts in the state of the technique to practice them. Other modalities can incorporate structural, logical processes and other changes. The portions and characteristics of some modalities can be included in or replaced by those of other modalities. The modalities set forth in the claims cover all the equivalent available of those claims. TERMINOLOGY

[0052] Distributed major book technology (DLT): any of a number of technologies that allow replicated, shared and synchronized digital data through multiple computers that participate in a network. The distributed major book technology is designed to be inherently resistant to the modification of digital data which, once synchronized, are known collectively as a “distributed major book”. A distributed older book is typically managed by a network of equal to the same as a protocol to validate new information. A system that is capable of producing and maintaining a distributed older book is known as the distributed major book platform. The “Distributed Major Book Platforms” include platforms known as Alón, Arcbiock, Cardano ™, Corda, Enigma, EOS, Ethereum, Hyperledger® Fabric, Hyperledger® Iroha, Hyperledger® Sawtooth, icon, Iota, Komodo, Lisk ™, Multichain, Neblio, Neblio, Nem, Nem, NEM, NEM, NEM, NEM, NEM NXT, QTUM, SMILO, Stella, Straitis, Tazos, Wanchain, Waves and Zilliqa, more referrals of the above and others. Many of these platforms are also the “block chain technology” or “block chain” platforms, a sub -conjunct of distributed major book technology platforms.

[0053] Intelligent contract: a computer protocol that provides computing for general purposes that takes place on the distributed major book platform. The transaction of the smart contract can be simple or implement a sophisticated logic. The resulting transactions are typically transparent to the participants of the main, traceable and irreversible book. RQRRNN / LZNZ / ε / υιλι

[0054] JSON: Notation of Java Script objects is a human -readable data exchange format, based on lightweight text.

[0055] SQL: Structured consultation language is the standard language for access and manipulation of relational database management systems.

[0056] Node.JS®: a free open source server environment that executes the JavaScript code outside a browser. The Node.JS® is an asynchronous programming platform built in the execution time of chrome browser. More information about Node.js® can be found in "About node.js®." Node.js, node.js Foundation, https: / / nodejs.org / en / about / .

[0057] Hyperledger® Fabric: A platform of the Book Book Authorized Business Level offered by modularity and versatility for a wide range of industrial use cases. Fabric's architecture includes an identity provider, channels, a world -status database and user and system chain code. Additional details with respect to Hyperledger® Fabric are available in the Appendix to attach to the present.

[0058] Chain Code: IN FABRIC, software that defines an asset or assets and instructions and transaction to modify assets; In other words, business logic or (b) extends or modifies the platform including the rules and activities that govern the execution of the first. The chain code enforces the rules to read or alter key value participants or other status database information. The functions of the chain code are executed against the current status database of the main book and begin through a transaction proposal. The execution of the chain code results in a set of key value deeds (writing set) that can be presented to the network and apply to the main book in all participants. The chain code can be considered equivalent to the independent concept of the intelligent contract platform.

[0059] Apache Couchdb®: An option for the world -status database that is incorporated into Hyperledger® Fabric. The Apache CouchdB® supports rich consultations when chain code data values ​​are modeled as JSON. COUCHDB® Indexation and Consultation are an option for use in modalities Sample of the Data Relational Administration and Organization System described in the present. Additional details with respect to CouchDB® are available in the Appendix to attach to the present. General Panorama

[0060] The value of the relational model comes from the establishment of independence between the representation of data and the programs that read them and write them. In addition, to promote reusable frames for data management, the relations management systems (RDBMS) impose rules on the writing of data that make it impossible for data manipulations of a program to break the ability of other programs to locate and have access to those data. The first of these principles is the prescription of the “dependence on order. If a program depends on data that are physically maintained in a specific order, then another program that is obvious to this requirement can be the first to break. The second principle is the prevention of“ indexation dependence. Indexation is the redundant data storage to improve the performance of some operations, perhaps at the expense of others. Although it is impossible to address the preferences of RQRANN / LZNZ / ε / υιλι performance of each program, the relational model guarantees at least that no program will break if the indexes of a data set change. The third principle is to prevent the “dependence on the access route’ ’. In the relational model, a program only needs to know what data to read and write and there is no additional information about how the data in the warehouse is organized. Before the RDBMS, it was common for the data to be organized in hierarchical structures which could subsequently be reargured, unnecessarily breaking the capacity of a program to locate and work with those data.

[0061] The Data Relational Administration and Organization System described in this achieves these three principles. But to understand the challenges that were involved in the creation of a system of administration and relational organization of data to be used with distributed older books that achieve these three principles, it is first necessary to understand some particular considerations of the platforms of the distributed major book.

[0062] Distributed older book technology is closely associated in the public's mind with cryptocurrency, the use of which was invented in 2009. But the creation of the pair -to -to -to -to -to -Parque was also the invention of a totally novel approach to the computing distributed for other purposes. A wide variety of uses is being explored to take advantage of characteristics such as the availability of guaranteed data, freedom of centralized control or cryptographic manipulation test.

[0063] The current energy around the adoption of the distributed main book is a reminder of the early adoption of the Internet. There is a potential to revive or avoid the same strokes with respect to the administration of data that the websites were shaking as they matured. Analogous to the first websites, the uses of cryptocurrencies of older books distributed presented relatively simple data structures and highly encoded business logic to govern them. However, the subsequent invention of open intelligent contracts opened the door to data and rules of arbitrary complexity.

[0064] Business use cases such as supply chain logistics are placing information and logic about the older books distributed in volumes that rival and soon leave traditional solutions behind, but without the benefit of the existence of standardized data management tools. With each programmer designing their own warehouse, the result once again is strongly coupled data to the programs (intelligent contracts) that write them. A system of relations and relational organization of data such as the one described in the present needs to reduce this coupling.

[0065] Unfortunately, breaking that connection in distributed older books is more complicated than the situation faced when relational databases are implemented. In its original completely decentralized form, the older books really depend on the strong connection between logic and data to create consensus and trust among the participants. All participants execute the same exact logic, confirming that they receive exactly the same results. This leads to some major implications for data management on those platforms of distributed older books. For example, any portion of a data management system that affects data writing to a distributed major book is located inside and under the control of intelligent contracts that govern the data, essentially making this part of the contract RQRRNN / LZNZ / ε / υιλι intelligent in itself. Also, as part of the smart contract, the data is scheduled for all participants in the network, so that participants can execute the same logic of data creation.

[0066] However, this coupling between logic and data does not make the advantages of the irrelevant relational model, even for restrictive distributed major book platforms. First, the same consensus mechanism that allows the data to be updated by collective agreement can be configured so that participants can agree on updates or additions to existing intelligent contracts. However, if those contracts cannot be read and use the existing distributed major book data, they will not be useful. Smart contracts generally cannot do that today and, as a result, these updates are not commonly observed in the production systems of the distributed major book, despite their usefulness.

[0067] Even within individual intelligent contract programs, a consistent storage approach is increasingly important as contracts increase in scope and complexity. The relatively simple rules of current electronic currencies and negotiable assets are making their way to supply chains based on fully distributed older books and social platforms that involve many developers, reusable components and evolving requirements. Those developers will desire a predictable approach to data storage, just as they do with large traditional programs and the relational model provides that predictable approach.

[0068] The usefulness of the relational model is even larger for pure reading operations because they are not governed by consensus, unlike the access permit itself on some platforms. This leads to more situations where it is worth using existing data for new reasons. If the data in the distributed main book is stored according to relationships, then they can be read and efficiently processed by an RDBMS system that is executed inside or outside the distributed older book, for purposes that go beyond what is contemplated by the programmers in the original intelligent contract.

[0069] Not all implementation of distributed major book technology takes advantage of each characteristic of distributed major book technology or is forced to assume the level of mutual distrust that is observed in public networks such as cryptocurrencies. Especially in the business environment, partial adoption is currently more common for a variety of reasons. Common situations include the use of distributed major book platforms as a convenient way to obtain characteristics such as cryptographic manipulations and data replication. Companies also implement a network of the main book distributed under their total control, with relaxed consensus rules or a centralized entry layer, perhaps as a first step towards a more distributed application in the future. Also, consortiums with high levels of confidence establish networks of the major book distributed together with the imposition of a strict intelligent contract to support staff, but also to internal administrators and auditors to update the data of the main book distributed directly in their own authority. In each of those cases, there are times when the data of the distributed major book can be administered exactly as a traditional database for both reading and writing, as would be for reading operations. Modalities show RQRRNN / LZNZ / ε / υιλι

[0070] The Data Relational Administration and Organization System described in this provides the benefits discussed above and provides a set of specifications that can standardize implementations of the Data Relational Administration and Organization System through different distributed major book platforms and programming languages. The relational administration and organization described in the present also provides a subset of a standard SQL dialect (structured consultation language) to be used in the direction of the administration and relational organization of data for a major book distributed. The Data Relational Administration and Organization System described in this has also been designed for its implementation through a variety of platforms and languages. In Modalities, the Data Relational Administration and Organization System is implemented in the Network of the Distributed Mayor Hyperledger® Fabric and the Node.JS® programming language, with mechanisms to support the user programs written on Node.JS®. However, it will be appreciated that other distributed major book platforms and programming languages ​​can be used, with the corresponding advantages and disadvantages of these platforms and languages.

[0071] The description of the Data Relational Administration and Organization System will begin with a set of specifications, interfaces and central components that are intended to guide all implementations. Figure 1 is a block diagram of the administration and relational organization system of data 100 shows. The parts of the Data Relational Administration and Organization System lustrated in Figure 1 are common to all implementations, while other parts adapt or personalize, but follow a set of common specifications. Figure 1 is an adapted component diagram that shows those components and specifications. Through this description, the Data Relational Administration and Organization System also refers as “element” to facilitate the description.

[0072] Common specifications are represented as object elements with the "specification" stereotype to indicate the conceptual requirements. The specifications are aspects that are expected to be commonly implemented among all the implementations of the Data Relational Administration and Organization System. The "extract" stereotype represents the real software components that are required to be presented but will be implemented differently in each realization. The interfaces shown are also common specifications for all implementations.

[0073] The components of the Specific Software Development Team (SDK) 102 are integrated with user applications and forward orders to the Data Relational Administration and Organization System (ELEMENT) AP1104. The specific SDK specification 102 is intended to create a common experience through different user programming languages. Among the supported orders is a subset of SQL, which is specified here as SQL of the element 105. Together with other calls of the specific SDK of the 102 language and entries of the User Interface (UL) of the Element 106, the orders received are analyzed, validated and managed by the Element 108 (DDL) of Element 110. The UL of the ELEMENT 106 directly manages human interactions for administrative and reporting tasks. The UL of the Element 106 is a graphic web platform that helps the user to build valid input consultations and represents system responses in an organized format. RQRANN / LZNZ / ε / υιλι

[0074] In modalities it shows, only DDL operations are managed by the Element 108 console via the DDL analyzer of the element 110. The data manipulation language operations (DML) are passed along the specific components of the distributed major book platform 112 on the 114 service layer interface and are analyzed by the SQL DML analyzer 116 For the management by the specific components of the Distributed Book Platform 112. The functionality is not described above is made by a series of specific components of the Distributed Book Platform 112. The 114 service layer interface acts as a link between the Element 108 console and the specific service layer of the Distributed Book platform distributed 118 which is the entry point to those components and its functionality. The 114 service layer interface is involved in all shares with the possible exception of operations initiated by user intelligent contracts.

[0075] The specific service layer of the Distributed Book Platform 118 forms the main operation logic of the Data Relational Administration and Organization System and is responsible for carrying out all user management operations and data. These operations are divided between the specific service layer of the Distributed Mayor Platform 118 itself and the Distributed Book Platform with characteristics of the ELEMENT 120 added. The exact division of work depends on the capabilities of the distributed major book platform. The functionality is provided by three subspecifications: 1. The Relationship Access Control Specification 122 specifies the five -level large grain access access control model that is followed by all implementations of the Data Relational Administration and Organization System 100. This specification documents the user's papers and how they affect access to the functionality of the system of administration and relational organization of data 100 including access to data. Access control will use significantly different approaches on different platforms. Specification is Appendix B that documes common aspects. 2. The specification of relational data on the distributed main book 124 defines the requirements for data representations (JSON schemes) and data operations that are supported. This specification documents the requirements for the storage of relational data in Appendix C. 3. The intelligent contract integration specification 126 specifies which characteristics of relational data are accessible from smart contracts.

[0076] Specific SDKs of language 102 provide each interfaces to have access to all the functionality of the Element 104 API from a popular programming language with the implementers of the application of the distributed major book. The specification of these SDKs maximizes consistency with respect to names of function, ordering and meaning of parameters, return values ​​and errors and so on. Below is a realization implemented using Fabric and Node.js®.

[0077] In show modalities, the API of the Element 104 is an internally used interface within the administration and relational organization of data 100 as a common point of entry to invoke database operations. This is called by both of the UL of the element 106 and any specific SDK of the 102 language that exists in the realization that is being used. This is specified in the form of a web interface, RQRRNN / LZNZ / ε / υιλι sometimes referred to as an “API rest”. The Element 104 API is implemented by the_ementDB 108 console and all achievements of the Data Relational Administration and Organization System are reused 100. The additional details of the ELEMENT 104 API are provided in Appendix D.

[0078] The UL of the ELEMENT 106 is a user interface component that allows users to manually work with databases implemented by the Data Relational Administration and Organization System 100. The UL of the ELEMENT 106 provides users with the ability to add users and adjust the levels of access to the user, execute SQL queries on available databases using the integrated text editor Consultation and syntax of the specific SQL language extensions of the element and, views of state information made and data views returned from consultations whose execution was successfully completed.

[0079] The Element 108 console and the SQL DDL analyzer of the Element 110 are central components that are present in all the achievements of the Data Relational Administration and Organization System 100. The Element 108 console accepts database orders via the ELEMENT 104 API (which can be a representative state transfer (Rest) API), which originates from the specific SDK of the specific SDK of the SDK Language 102 or directly from users via the UL of the Element 106, console of the element 108 which also serves. The Element 108 console converts those orders to the form that can be analyzed by the 114 service layer interface that is linked to the specific components of the Distributed Book Platform 112 of the Data Relational Administration and Organization System.

[0080] In modalities show, the common components of the Data Relational Administration and Organization System (104, 106, 108, 110) are implemented in Node.JS® as a web service, which allows flexibility of deployment and horizontal escalation if necessary.

[0081] The SQL of Element 105, which includes typical SQL operations together with the specific extensions of the element, is a grammar to describe RDBMS operations in the most familiar way to developers. In Sample Modalities, the SQL syntax for the Data Relational Administration and Organization System was designed to be compatible with a subset of ISO / IEC 9075 (currently SQL: 2016). For the purpose of the administration and implementation of access, the operations in the SQL of the Element have been classified in DDL consultations, DML writing and DML reading.

[0082] Element extensions for SQL include adaptations to work in a distributed major book data environment, as well as convenience functions. These extensions are specific keywords of the element that can be used in combination with SQL syntax to form significant consultations for the element system. Those key extension words shows include: 1. OPSTAT (state of transmission of the operation) - This operation verifies whether the transaction of a particular operation has progressed towards the main book distributed to a relevant point for the particularly distributed book platform used. The OPSTAT for DDL operations is established by default by the Data Relational Administration and Organization System; However, the OPSTAT can be added to the end of a DML writing operation to seek a more definitive state of that transaction. RQRRNN / LZNZ / ε / υιλι There are 3 possible expected responses while the OPSTAT is used - success, failure or pause. 2. Consultation level - The characteristic of the consultation level works exclusively with DML reading operations (for example, select) to search for metadata information about a particular registration of the Data Relational Administration and Organization System 100. There are two levels of information that can be obtained using level of consultation - the first is the basic information to about a record and the second is a deeper consult User and other details. 3. Mariapaginas - This feature is related to the recovery of table data on pages defined by the registration count in the Data Relial Administration and Organization System 100. In a default, each consultation executed with a limit on the row count is accompanied by a brand value that acts as a reference for the next page of equal size data on the basis of the same criteria. It will be included with the outcome of the consultation if the key word marks (applicable to selection consultations only) is provided 4. Element_Columna_Predterminado - This keyword is used with the SQL update and insertion operations to indicate that the default value should be used for a table column in the system of administration and relational organization of data 100. The predetermined value can be assigned to a column creating one table at the same time. The columns configured without a default value will not be impacted by this keyword. The SQL specification of the element in Appendix E below provides additional details of each of those keywords in combination with the SQL syntax to form a variant of the SQL syntax that can be used to represent consultations and orders for processing by the administration and relational organization of data 100.

[0083] The 114 service layer interface includes functionalities that will be supported in each realization of the Data Data Administration and Organization 100 for a distributed major book platform. The specification for this 114 service layer interface covers the entire interface plus the subsets of functions that can be performed in any of these service layers or on the major book platform itself. Those functions include: Creation and disposal of databases Creation, alteration and elimination of table Recovery of database objects DML operations, for example, insert and select records Additional DDL operations such as creation, alteration and index elimination User privileges administration. It should be noted that the modification and elimination in the context of the distributed major book will always be carried out by annexing changes of changes or suppression, due to the immutability of the history history of the distributed major book. It is also required that the Data Relational Administration and Organization System provides RQRRNN / LZNZ / ε / υιλι bulk transactions support, covering at least changes at the registration level. [0 084] In show modalities, the 114 service layer interface is implemented in the Node.js® and reuses regardless of the language of the SDK or platform of the distributed major book target. The service of the requests received through the interface is carried out through the specific components of the distributed main book 112; With some performable functions only on the major book platform distributed in itself, as required to achieve the integration of the smart contract.

[0085] The Distributed Book Platform with the specification of AGREGED ELEMENT Characteristics 120 describes the functionality that will be implemented directly on the distributed major book platform so that the relational functionality is reusable for intelligent contracts on that platform. Like the platforms themselves, these implementations will differ greatly in focus. These specifications expose what will be common, including a common JSON -based data format for data and relational schemes. The specifications are divided into three categories: Relationship data on distributed major book, access control and intelligent contract integration. 1. Relationship data specification in the distributed main book (RDODL)

[0086] Five family abstractions are used in the specification of relationships and related functionality in the system of relational administration and organization of data 100. They are: database, table, field, index and registration. There are significant differences in the way in which these concepts can be implemented for different distributed major book platforms, but the following is true about each platform: 1. Each case of each of the five types of elements will be represented by an independent JSON document in the standard element format. 2. These documents are written in the distributed main book using the same method and consensus as other distributed major book transactions. 3. Each modification or change of state to one of these elements is represented by annexing a complete, updated version of the JSON document. The definitions of the JSON scheme for the five objects and the minimum requirements for indexation are formally specified in the design of the Data Relational Administration and Organization system 100. 2.

[0087] The implementations of the Data Relational Administration and Organization System support a coarse grain access control which is defined by identities of the individual distributed books at the database level. The privileges granted to the five access levels are as follows: - Overdmin - Database Administration how to create, delete, plus all privileges of the admin access level. - ADM - Access to privilege administration functionality, plus all privileges of an DDL access level. RQRRNN / 1 7π7 / β / υιλι - DDL - Access to functionality classified as DDL, which includes (for example) functions that change the scheme of tables and indices, plus all privileges of the level of access to DML writing. - DML writing - Access to functionality classified as DML writing, which includes data deeds such as inserts, plus privileges of the level of access to DML reading. - DML reading - Access to functionality classified as DML reading. Include selecting relationships of relational data, recovery of schemes, observation of statistics and so on. The data definition language (DDL) refers to operations that change the structure, organization or description of relational data. The data manipulation language (DML) refers to operations that involve relational data itself.

[0088] The implementations of the Data Relational Administration and Organization System are based on access on the same identities that are used for distributed major book operations, which allows the integration of the intelligent contract and for the requirement that the relational data have characteristics of the major book distributed equivalent to other data stored in the distributed main book. 3. Smart contract integration specification

[0089] As mentioned, a key aspect of the Data Relational Administration and Organization System is the ability to access most of the data functionality directly from intelligent contracts. For the integration of smart contract, intelligent contracts have the ability to execute functions equivalent to those specified for SDK Specific Language 102, excluding DDL database operations. The considerations of the main book distributed for these invocations, for example consensus and immutable records of entries and results, are equivalent to the execution of the native intelligent contract. Also, the invocation of these functions must be conducted to the form, appointment and semantics described in the specific SDK of language 102 to the point where possible on the distributed major book platform in which the data management and data management system is being carried out 100. DDL operations as scheme changes are excluded from the integration of the intelligent contract because those operations often involve those extended updates to the extensive storage They execute within a single transaction of distributed major book that would not be bearable.

[0090] It will be appreciated that the platform of the main book distributed with the specification of characteristics element aggregates 120 describes a set of interfaces, syntax and common requirements that regardless of the implementation, allow the storage and data operations of relational data on the distributed main book using the syntax and semantics already familiar to programmers of major books not distributed and that are identical through the platforms of the book Greater distributed, particularly the ability to use SQL syntax, which is common to all implementations of the Data Management and Organization of Relationship Data 100. Storage is implemented using a standardized JSON Data format that facilitates the future data portability through distributed major book platform implementations. A set of required features is standardized through platforms, so that the choice of the distributed major book platform can be a separate problem from the decision to use an RDODL platform as well as the administration system and RQRRNN / 1 7π7 / β / υιλι Relational Organization of Data 100. These capabilities make access to the storage of relational data that is consistent through the specific SDK of language 102, user console and API or intelligent contracts. Data Relial Administration and Organization System at Hyperledger® Fabric

[0091] In show modalities, a software development team for Node.JS® applications that uses Hyperledger® Fabric for its distributed major book platform is provided.

[0092] Figure 2 provides a visual outline of how the MANUBIC implementation performs the specifications of the Data Data Administration and Organization 100 described in this plus the additional functionality. In modalities show, the realization of RDODL of the administration and relational organization system of data 100 in the FABRIC involves the following aspects. The databases of the Data Relational Administration and Organization System make use of the concept of “Channel” of Fabric. The Fabric Service layer of the Data Relational Administration and Organization System uses the MANUBIC SDK (included with the distributed major book platform) to create a Fabric channel each time a new database is requested. The system chain code, which includes the functionality of the Data Relational Administration and Organization System is already present in the even nodes and becomes accessible to the newly created channel. The creation of the channel also automatically configures a new distributed older book and “World State” database in all participating pairs. Also, the text starts a transaction, invoking the chain code of the system of administration and relational organization of data 100 to record high level information about the database in the distributed main book. All subsequent database writing operations involve similar transactions and the annexation of data objects to the older book in JSON formats due to the RDODL specification. Each database information annexed to the main book is also reflected for each pair in its database of the world state. This makes the current version of each data object quickly available for reading operations.

[0093] In addition to the central components and specifications of the Data Relational Administration and Organization System, Figure 2 is a block diagram of a implementation of the Data Relational Administration and Organization System in a realization where the NODE.JS® is the programming language and the Hyperledger® Fabric is the most distributed book platform used. Figure 2 focuses on how the implementation of Fabric / Node.JS® performs the specifications outlined in Figure 1 along with some additional features.

[0094] As it is lustra in Figure 2, the SDK component of Node.JS® 200 performs the specific functionality of the user language of the specific SDK of the Language 102 and allows developers to interact with the administration and relational organization system of data 100 directly from its application code. The details of the version of the SDK component of the Node.JS® 200 developed for use with node.js® applications are provided in Appendix F. The ElementDB 108 console, Element 104 API, UL of Element 106 and service layer 114 Make the facade for all platform operations. The Fabric Service RQRRNN / 1 7π7 / β / υιλι of Element 202 implements the 114 service layer interface that acts as an intermediary for the interaction between the API layer and the distributed main book. It serves to help carry out operations related to RDBMS as described in greater detail in Appendix G. The realization of Element's SQL analysis is carried out by a component called the 204 Elementary Analyzer that appears twice in the realization of Fabric. First, the 204 element analyzer appears as a dependency of the ElementDB 108 console and performs the DDL analysis. This is common to all achievements. Second, the 204 element analyzer appears as if it depends on the chain code_lement 206 and provides the DML analysis, which makes the SQL of DML bearable in intelligent user chain code contracts. The specification for the 204 element is provided in Appendix H.

[0095] The Fabric 202 Service support through its dependence on the distributed main book platform plus the ELEMENT features specification is an identity provider (for example, a Certified Authority of Fabric 208) with which users are registered and the access privileges and a world -state database are recorded (for example, the World State Database of Fabric 210) to which it is directly accessed Of certain indexing capabilities and the image of the Element 212 manufacture pair, a central component of Hyperledger® Manufacture 214 that is customized for the Data Relational Administration and Organization System 100.

[0096] The 206 chain code is a system chain code additionally created added to the image of the Element 212 manufacturer that makes all the operations related to the Database in Fabric and also depends on the identity provider (for example, certified authority 208) and the world status database (for example, World State Database of Fabric 210). Combined with the warehouse of the biggest book in the pair itself, that empowers the manufacture pair of Element 214 to carry out relationships with access control. Also, since user intelligent contracts can call the system chain code, this makes the integration of the smart contract as well. The specification for the 206 chain code is provided in Appendix I.

[0097] Figure 3 is a block diagram that lusters the activities, components and data involved in the creation of the database for the Data Relational Administration and Organization System. The first is a “configuration transaction” that creates the channel and defines which pairs will retain a copy of the database. The second is a regular transaction which writes metadata about the relational database itself.

[0098] Figure 3 is a combination of a Unified Modeling Language Activity Model (UML) shown to the left and an OML Object diagram superimposed on the topology of the Element 202 manufacture service layer (right) and a displayed manufacturing network that houses those objects. Figure 3 lusters the sequence of operations on the left side and the relevant data that exist during and immediately after the system is requested to create a new database in the Data Data Administration and Organization System 100 in Fabric on the right side. The creation of a database makes use of the Creation of the Fabric Canal (segregation of distributed major book data) more added functionalities. RQRRNN / 1 7π7 / β / υιλι

[0099] The blocks to the left of Figure 3 are relevant components for the creation of the database, that is, Fabric 202 and PAR of FABRIC 214. Three data objects are created by the service layer when an initially processed application for the creation of the database. As shown, a preparation of Fabric 300 channel configuration file creates a "channel configuration file" Channel.tx 302 for use by the network. A generation of configuration transaction with the genesis block activity 304 creates a special manufacturing fabric transaction "306 that contains a block of genesis and starts the channel. A block of Genesis is the first proposed data piece that will be registered in the distributed main book, which contains its initial configuration. <data_base>. The block is the genesis block itself. Both of these and the channel are given consisting names with the name of the database of the Data Relational Administration and Organization System 100. A Creation of Channel and Authorized Union of Pares Authorized Nodes for the Activity of Channel 308 Create Channel 310 configuration data from «Fabric Config Tx» 306 Genesis 314 and a corresponding world -empty state database 322. A manufacture 312 manufacturing transaction activity preparation that contains representations of attributes of the database of the Data Relationship and Data Organization System 100 Create a transaction of the Distributed Major Book of Fabric «Tx de Fabric» 316 that contains an object of JSON that represents the relational scheme and other attributes that will govern the data that will govern the data that will govern the data that will govern the data that will be stored in this system of Data Relational Administration and Organization 100. A presentation of the manufacture 318 transaction with the initial database scheme incorporates the transaction of the Distributed Book of Fabric «TX of Fabric» 316 in a 320 Fabric Block. Finally, the PAIR OF FABRIC 214 automatically updates the world status database 322 with attributes of the database of the administration system and relational organization of data 100 in 324.

[00100] The channels are limits within which the data is shared in a distributed manufacturer of Fabric. A torque node outside area 326 does not receive information or data from the scheme. Although the network connections between the nodes are shown. They include normal interconnections between Fabric Nodes, plus a HTTPS 328 route through which the Fabric SDK Library (not shown) within the Fabric Service layer comes into contact with a torque node. It should be noted that the Fabric SDK is a component provided by Hyperledger® Fabric and is included as a dependency in the manufacture service of the Data Data Administration and Organization System that allows customer programs to start basic distributed book operations on the Fabric platform.

[00101] The complete process by which the channels are created and transactions are processed in the Fabric Network is not modeling, but the previous objects communicate to the network during those steps and the remaining objects are created. First, when the channel is created, three elements that are normal in the Fabric are obtained for this process: 1. channel configuration from conflict. RQRRNN / LZNZ / ε / υιλι 2. «Greater book» <data_base> - data storage Only annex for the database / database channel that is created and replicated in each participant Par node. 3. «World State» <data_base>- Complementary storage to the main book containing only the last value for each element in the largest book that is provided in a form that is consulted in a much more efficient way. In the Data Relational Administration and Organization System, this database could be a case of CouchDB®, which is one of the standard elections for Fabric. After creating the channel, a normal manufacturing transaction is processed that contains the JSON representation of the database scheme (relational data attributes).

[00102] After the operations of the relational database are represented as an object of JON in manufacturing transactions additional annexes (with the exception of reading consultations for which the commitment to the main book was explicitly exhibited). Figure 4 lustra the exclusion of DML writing operations. This process creates JSON relational data objects that, once brought to the world -status database, can be used by the Chain Code of the Relationship Capales 100 to respond to consultations and other requests. Figure 5 shows this, describing the execution of DML reading queries requested by the UL of the ELEMENT 106 or by a user application through the specific SDK of the 102 language and the Element 104 API.

[00103] Figure 4 is a block diagram that lusters an operation for writing relational data in an existing database of the Data Relational Administration and Organization System 100. The left lanes represent two participating components, Fabric Service and the Chain Code of the System of the System of Relationship and Relational Organization of data 100. UML activities within each lane represent the key activities they carry out. The black arrows connect the activities in order and the additional arrows connect to the data object affected by the activity.

[00104] progressing through an update operation, the object of "major book" <data_base> 400 within the pair node of Fabric 402 on the defined channel is the same major book created in Figure 3 that can be replicated in each torque node. An additional "manufacturing block" has been annexed within this which contains a "manufacturing transaction" 406 that specific a relational database operation. This specific operation would have been received from the user in a upstream process that includes the preparation of a Fabric 408 transaction that contains a desired operation that creates "manufacturing TX" and presents the manufacture transaction that contains the operation to a torque node in 412 for the execution of the transaction and the generation of the data resulting in 414 as it is lusted under the section of activities located in the left half of the left. of that operation, which would have been executed by the chain code of the system of administration and relational organization of data 100 when the transaction was processed in a block. In some cases, this execution would also involve the reading data of the World State Database. This flow is not shown, but can be understood from the DML reading operation in Figure 5.

[00105] The JSON of Relationship Data Resulting 416 contains objects that RQRRNN / LZNZ / ε / υιλι represent new or modified tables, records, users and database attributes. Each of those has a unique key that identifies the affected data. The Fabric network processes the transaction and the resulting data in a manufacture block in 418 and annexes the Fabric Block to the Book Mayor 400. In addition to permanently registering in the main book 400 as part of the transaction, the system chain code updates the World Database 420 with the data current Figure 3. There, the oldest inputs with the same key are rewritten, with the relational data such as the world -state database that only the current status of the database of the Data Relational Administration and Organization System 100, while the main book 400 preserves its history. One of those 424 objects is shown within the 420 World Database, but in practice there will be many keys and objects.

[00106] Figure 5 has a premise similar to that of Figure 4, with all components and data objects remaining without change. The only difference is the activities and processes that data objects are going through while a DML reading operation is processed. The Activities Section in the Fabric Service Component is very similar to Figure 4 except that the service layer receives a consultation response in 500 after the DML reading operation is successfully executed.

[00107] In show modalities, the system chain code executes a 502 consultation against the 504 World State Database case with relevant Element data json that flow back. The system chain code also processes this data to produce a 500 -backward consultation result to the initiator of the consultation. Reading occurs in world status data, so that there are subsequently no modifications made on the world state such as the update scenario. The DML reading does not access the main book of the torque 400. However, the manufacture transaction is recorded in the main book of the torque node after which the transaction is convened to conserve a record of the operation, unless the option OPSTAT ”predetermined is overwhelmed. If the option option was selected in 506, the manufacture network processes the transaction in a block and annex the block to the block to the block to the block to the block to the block. Memorized transaction contains the entrance, which is the JSON that represents the consultation, but not the resulting records.

[00108] DML reading operations that are initiated from the User Chain Code (Intelligent Contracts) operate similarly to Figure 5, except that the result of the consultation is returned directly to the intelligent contract for additional processing.

[00109] To carry out the five required levels of access permits to the database, the two MANUBIC mechanisms are reused. First, since the creation of the database requires the force of the prerequisite to create Fabric channels, only the manufacturing network administrator is eligible for that permission. For the remaining four access levels, the Element's Fabric carries in tow the functionality of the existing identity supplier of Fabric. The performance control of the Element's MANUFER RELATIONSHIPS DATA on FABRIC thus involves specific attributes of the database that are attached to each user while registering with the identity provider. Also, the attributes linked to the user registration belong to their specific access for that database. Subsequently, a transaction can be initiated with the chain code of the RQRRNN / LZNZ / ε / υιλι element system to add the user to the database metadata.

[00110] Figure 6 is a block diagram that lusters the components and data involved in the first part of the relationship access control relations for the addition of users for access below the surface level. The control process involves two steps. The first is the user's registration with specific attributes of the database in an identity provider as a Certified MANUBLY Authority preparing a manufacture transaction that memorizes the operation of adding users in 600 to create the operation of adding users 602. The second is a regular transaction which adds users to the database itself using the authority of the requesting entity to add a representation of JSON 604 of the new level of user access to the user of the user in the identity provider 606 in 608.

[0111] Like Figure 3, Figure 6 is a UML object model placed on the topology of the execution of an Element Fabric Service layer and relevant Fabric Network. The UML object models the manufacture service component and the related sequential activities mentioned in the left section of the model and the representation of data associated to the right to add a user to the Data Relational Administration and Organization System 100. The explanations and operational premises of the model of Figure 3 apply here, with the remarkable addition of an identity provider such as the Certified Authority Node of the Certified Authority of Fabric 606. Affected in the model. The UML model is connected to the service layer, the manufacturing torque node and order service nodes, serving information about identities of the distributed major book. The order service and its connections are not shown in this model since they do not play a special role in this process, beyond what is usual in the processing of the manufacture transaction. It should be noted that the order service node and the identity provider (for example certified authority) are probable at the same time giving service to other nodes of torque, channels and perhaps databases of the administration and relational organization system of data 100.

[0112] Data objects in Figure 6 are created during the addition of a new user to an element database. The addition of a user is built on the existing identity administration of Fabric, similar to how the Database on the Fabric Canal and its main book is built. Indeed, the highest access level of, OVERADMIN is an exact reuse of the role of the manufacture administrator. Figure 6 is related to the addition of a user with one of the four lower element access levels. The model can be divided into three parts in the approximate order of its involvement in the process: 1. Element Fabric Service Layer Node 2. Identity supplier node, for example, certificate provider (CA) 3. Element manufacturing torque nodes and order service nodes

[00113] The initial part of the process involves the first two of these: the Element Fabric Service layer fixes the identity provider (for example, Certified Authority of Fabric 606) to register a user identity or to locate the relevant identity if it already exists and to add attributes of element privileges to that identity. Note that it is possible, but, although it is not shown that multiple identity supplier nodes can support a given channel and its element database. In this case, the process is essentially RQRRNN / LZNZ / ε / υιλι the same, except because it specifies which authority is involved.

[00114] The "user" object is the representation of that identity in the identity supplier (for example, certified authority 606), sometimes called "Identity Card". This is extensible with personalized attributes and the Data Relational Administration and Organization System takes advantage of this by adding an attribute that represents the level of access privilege of identity to an element database. The attribute takes the form of user access level attributes labeled as the object of JSON 604 in the model.

[00115] The other part of the process is a corresponding manufacturing transaction 610 to record the change of access level in the distributed main book 612. This transaction 610 is prepared in the service layer (the "manufacture tx" 614 that contains the JSON operation of adding user) and adds it to the "major book" 612 in a process that passes first through a torque node, then the service torque as part of a block which is added to the Book Mayor 612 in 616.

[00116] The Book Mayor 612 is the same one that shown in Figure 3-5. The model focuses on the new "manufacture block" contained in the JSON operation of adding users 614, but that 614 block would really be added after the genesis and configuration blocks (excluded in this model) of Figure 3 and any number of blocks for relations for relations such as lustra in Figure 4 and Figure 5.

[00117] After the user's access levels are defined, the specific components of the distributed main book during each relational database operation to determine whether the operation is authorized. Relationship database operations occur in two steps. The identity is verified by an identity provider and the access level is verified. It grants access to the corresponding function only is found that the level of access of the invoking user is appropriate to invoke the function, after which the real function is executed as described above with respect to Figure 3.

[00118] Achieving the required integration with intelligent user contracts is simple in manufacturing. The user chain code is capable of calling the element system chain code directly, which gives access to all DML characteristics except bulk operations.

[00119] However, the default Fabric configuration does not allow supplements of the system chain code. The main change involves reconstructing the manufacture torque with a building label that allows the element system chain code to be deployed. After this, the Base configuration file requires modification on the route to the Binary Compilation System Chain Code. This allows the manufacture pairs to read and begin the Element System Chain Code after restarting.

[00120] The Specific Manufacture Service layer accepts console database / analyzer / component of common API and translates them into actions invoking a combination of the Element System chain code, an identity provider as a certified manufacturer authority and a world -state database as described above.

[00121] Element's Node.JS® SDK mainly includes enveloping functions to call the console / analyzer / Common API component of a Node.JS® application of a developer. Specifically, RQRRNN / LZNZ / ε / υιλι The Node.js® SDK of Element provides surround functions to create a connection with the Data Relational Administration and Organization System, performs DDL operations to define tables and indices, perform DML operations to write and consult data and add a custom intelligent contract to the channel.

[00122] Figure 7 is a block diagram that lusters the interaction of the Node.js® SDK of Element with a 702 user application and the execution environment in which both are lodged, which is modeled as the user application node 700. This 700 node covers a wide range of potential implementations, restricted by the support required by Node.JS® and the ability to configure to communicate on HTTPS with a case of execution of the Element 108 console via its Rest Element 104 API as shown.

[00123] Deepen the user application node 700 in Figure 7, the user application 702 Node.JS® is modeled as a component with dependence on the SDK of Element de Fabric / Node.JS® 704, which is also installed. The Node.JS® 706 envelope function interfaces define the directly available functions to the user application code 702. Those 706 interfaces are generally made up of the "specification" SKD Specific Language 102 described with respect to Figure 1. However, they go beyond the specification of a few ways, supporting some specific manufacturing features. This is reflected in modeling by inclusion of "Fabric" in the name of SDK. The code in SDK_ELEMENT 704 implements that interface, translating the calls of the SDK function into calls to the Element 104 API.

[00124] Beyond the functions required by Element specifications, the realization of Fabric / Node.JS® also includes the capacities to display intelligent contracts (user chain code) through the ElementDB 108 console or SDK Specific Language 102 and to maintain physical separation (in the physical sense against logical) between databases created.

[00125] It will be appreciated that the manufacture / node.JS® modality provides relations on a major book distributed with physical separation between databases, as well as an implementation of relational data in Fabric that maximizes the reuse of integrated properties of the Fabric platform, thus providing performance and reducing the possibility that platform changes introduce important changes. A friendly SDK with the programmer also unifies the structuring of relational data in the main book distributed with the deployment of intelligent contracts that use that data.

[00126] It will be appreciated by those experts in the state of the technique that the SQL language specification complete is not supported, nor are the procedures stored per se. However, the user chain code provides similar capacity to attach logical and relationships (if desired). As an example, Figure 8 and Figure 9 lust the use of the Data Data Administration and Relational Organization system to implement SQL DML writing and reading operations. Those experts in the state of the technique will appreciate that the technique described in the present can also be used to implement other SQL activities for interaction with data stored in databases implemented in the distributed book as described in the present.

[00127] Figure 8 is a logical flow diagram of an example of a writing operation of RQRRNN / LZNZ / ε / υιλι SQL DML successful in a distributed older book using the Data Relational Administration and Organization System Sample modalities. As it is possible, the SQL consultation can be received by the Data Relational Administration and Organization System in at least three ways: the user can introduce an SQL consultation in the UL of Element 106 in 800; The user application can pass an SQL query through the Element 200 SDK in 802; or an intelligent contract can execute an SQL consultation in 804. The SQL consultation received is analyzed in a DML writing operation in 806. The Data Relational Administration and Organization System then creates a JSON representation of the SQL operation and incorporates JON representations of any relational data included in 808. The representation of JSON (SQL of Element) is then processed by operations of operations Fabric / node.js® that preserve the identity, privacy and consensus provisions of the distributed main book. These operations include the confirmation that the invoking identity has at least DML writing authority in 810. The Relational Data Administration and Organization system then recovers data from the Distributed Book Platform as required to execute the relational operation in 812 and executes the operation and prepares JSON representations of the new or modified records resulting in 814. The operation and the updated registers are consigned on the platform of the book Greater distributed in an appropriate manner to the major book platform distributed in 816 to preserve records of any change. The distributed major book platform then incorporates the operation and data in its main book distributed in 818. Also, if requested, the Data Relational Administration and Organization System 100 monitors the main book network distributed by the progress of the operation in terms 822. This process can be repeated for each new SQL DML writing operation.

[00128] On the other hand, Figure 9 is a logical flow diagram of an example of an SQL success reading operation of a successful book distributed using the Data Relational Administration and Organization System 100 in sample modalities. As Lustra is, the SQL consultation can be received by the Data Relational Administration and Organization System in at least three ways: the user can enter an SQL query in the UL 106 of Element in 900; A user application can pass an SQL query through SDK from Element 200 in 902; or an intelligent contract can execute an SQL consultation in 904. The SQL consultation received is analyzed in a DML reading operation in 906. The Data Relational Administration and Organization System then creates a JSON representation of the SQL operation in 908. The representation of JSS of the distributed main book. These operations include the confirmation that the invoking identity has at least the DML reading authority in 910. The Data Relational Administration and Organization System then recovers data from the Distributed Book Platform as required to execute the reading operation in 912 and executes the requested operation and creates JSON representations of the outcome of the consultation in 914. Unless it is intentionally suppressed, the system of relations and relational organization of data 100 records JSON's representation of the operation with the RQRRNN / 1 7π7 / β / υιλι platform of the main book distributed in an appropriate way for the platform of the main book distributed in 916 to preserve the records. The distributed major book platform then incorporates the registration of the operation in its main book distributed in 918. Finally, the Data Relational Administration and Organization System 100 returns the JSON representation of the result of the consultation to whom he calls (UL 106, user application 200 or intelligent user contract) in 920. This process can be repeated for each new SQL DML reading operation.

[00129] Figure 10 is a block diagram that lusters the successful execution of data definition language (DDL) in the realization of Fabric. These operations modify or expand the scheme of a database of an existing relational administration and organization system. The lanes of the left portion of the diagram represent the components responsible for the DDL operations. The activities within each lane are specific to the marked component and describe the possible contribution of the component to the process. As in the previous figures, the process flow is indicated by bold arrows between the steps that can be connected causally. In addition, regular arrows connect activities with data objects that can create or modify, which are shown in the object model (indicated by data) to the right.

[00130] DML writing operations can be identified and managed by the_ementddb 108 console. For example, the_elementdB 108 console can receive an SQL order and identify this as DDL in 1000. The management of the SQL order can include analyzing by means A form that can be processed and represented on the distributed major book platform. The converted form can be processed additionally by a Fabric Service component in 1004 in a manufacture transaction that contains the desired operation including an updated JSON representation of attributes (scheme) of 1005 database that may exist as data within a manufacturing service layer deployed. The Fabric Service Component can also make the resulting Fabric Transaction presented on a network connection to a manufacturing torque node on the channel associated with the database of the Data Relational Administration and Organization System in 1006. The normal processing by the Fabric network would then incorporate the transaction in a block and add the block to the previous 1007 in the main book 1020 for that channel. It is implicit in that annexation that the block will be added identically to the other nodes in the channel. Because the modified relational data attributes can be represented as a piece of data from the Distributed Key-Value Distributed Book, the Fabric System Chain Code can subsequently update the world-state database entry in 1008, with these most recent relational database attributes, overwriting the previous attributes that would have been stored under the same key. In cases where there are index changes indicated by the DDL operation, the relational administration and organization system can carry them out in practice by direct modification of the indexing of the world state database, for example a collection of indexes of Couchdb® 1030 cases in 1010. The 1030 indices collection contains the indices that have been defined by the database of the administration system and relational organization of data after which the operation is executed. These changes can be requested by the Fabric Service, received by the implementation of World Database Indexing and subsequently applied to the "World State" database in 1012, making the application of indexation RQRRNN / LZNZ / ε / υιλι Updated subsequently see operations that involve the world -state database. Computer mode

[00131] Figure 11 is a block diagram of a computer for general purposes, typical 1100 that can be programmed on a computer for special purposes suitable to implement one or more modalities of the administration and relational organization system of data 100 described in the present. The Data Relational Administration and Organization System described above can be implemented in any processing component for general purposes, such as a computer with sufficient processing power, memory and communications resources and communications performance capacity to handle the necessary workload placed on it. The 1100 computer includes a 1102 processor (which can be referred to as a central processing unit or CPU) that is in communication with memory devices including secondary warehouse 1104, reading only memory (ROM) 1106, random access memory (RAM) 1108, input / output devices (l / o) 1110 and network connectivity devices 1112. The 1102 processor can be implemented as one or more microcircuits of CPU or can be part of one or more specific integrated circuits of the application (ASICS).

[00132] Secondary warehouse 1104 is typically understood of one or more disc units or tape units and is used for non -volatile data storage and as a overload data storage device if RAM 1108 is not large enough to contain all work data. Secondary warehouse 1104 can be used to store programs that are loaded in RAM 1108 when those programs are selected for execution. ROM 1106 is used to store instructions and perhaps data that are read during the execution of the program. ROM 1106 is a non -volatile memory device that typically has a lower memory capacity in relation to the largest memory capacity of secondary warehouse 1104. RAM 1108 is used to store volatile data and perhaps to store instructions. Access to both of the ROM 1106 and the RAM 1108 is typically faster than to the secondary warehouse 1104.

[00133] The devices described in the present can be configured to include computer -legible non -transient media that store readable computer instructions and one or more processors coupled to the memory and when they run the computer legible instructions configure the 1100 computer to perform the methods of method and operations described above with reference to Figure 1 up Legible by computer, including magnetic storage media, optical storage, flash media and solid state storage media.

[00134] It should also be understood that the software that includes one or more computer executable instructions that facilitate the process and operations as described above with reference to any one or all the steps of the description can be installed in and sold with one or more servers and / or one or more routers and / or one or more devices within consumer domains and / or producer consisting of the description. Alternatively, the software can be obtained and charged on one or more servers and / or one or more routers and / or one or more devices within consumer and / or producer domains consisting of the description, RQRRNN / LZNZ / ε / υιλι including obtaining the software through a physical means or distribution system, including, for example, a server possessed by the creator of the software or an unpant server but used by the creator of the software. The software can be stored on a server for distribution on the Internet, for example.

[00135] Also, an expert in the state of the technique will understand that this description is not limited in its application to the construction details and the arrangement of components exposed in the description or illustrated in the drawings. The modalities of the present are capable of other modalities and capable of being practiced or carried out in several ways. Also, it will be understood that the phraseology and terminology used in this is for description purposes and should not be considered as limiting. The use of "that includes", "which includes" or "that has" and variations of them here means that it covers the elements subsequently listed and equivalent to them as well as additional elements. Unless otherwise limited, the terms "connected", "coupled" and "mounted" and variations thereof are widely used and cover direct or indirect connections, couplings and assemblies. In addition, the terms "connected" and "coupled" and their variations are not restricted to physical or mechanical connections or couplings. In addition, terms such as above, below, lower and upper are relative and are used to help illustration, but are not limiting.

[00136] The components of the illustrative devices, systems and methods used in accordance with the poloring modalities can be implemented, at least in part, in a digital electronic circuit, analog electronic circuit in computer hardware, firmware, software or in combinations of them. These components can be implemented, for example, as a computer program product such as a computer program, program code or computer instructions incorporated tangibly into an information bearer or in a storage device readable by a machine, for execution by or to control the operation of, data processing devices such as a programmable processor, a computer or multiple computers.

[00137] A computer program can be written in any form of programming language, including compiled or interpreted languages ​​and can be deployed in any way, including as an autonomous program or as a module, component, subroutine or other adequate unit to be used in a computing environment. A computer program can be deployed to be executed on a computer or in multiple computers on a site or distributed through multiple sites and interconnect through a communication network. Also, functional programs, code codes and segments can be easily built to carry out the techniques described in the present within the scope of this description by expert programmers in the state of the technique. The method steps associated with illustrative modalities can be carried out by one or more programmable processors that execute a computer program, code or instructions to perform functions (for example, operating on input data and / or generating an output). The method steps can also be made by Y, the devices can be implemented such as a logical circuit for special purposes, for example, a FPGA (arrangement of programmable gates in the field) or an ASIC (specific integrated circuit of the application), for example.

[00138] The different logical blocks, modules and illustrative circuits described in relation to the RQRRNN / LZNZ / ε / υ described in the present. A processor for general purposes can be a microprocessor, but alternatively, the processor can be any processor, controller, microcontroller or conventional status machine. A processor can also be implemented as a combination of computer devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP nucleus or any other of those configurations.

[00139] The appropriate processors for the execution of a computer program include, as an example, microprocessors for general and special purposes and, any of one or more processors of any type of digital computer. Generally, a processor will receive instructions and data from a reading memory or a random access memory or both. The essential elements of a computer are a processor to run instructions and one or more memory devices to store instructions and data. Generally, a computer will also include or will be operatively coupled to receive data or transfer data to or both, one or more mass storage devices to store data, for example, magnetic discs, magnetoptic or optical discs. The appropriate information carriers to incorporate computer and data program instructions include all non -volatile memory forms, including as an example, semiconductor memory devices, for example, electrically programmable reading only memory memory or ROM (EPROM), Programmable ROM Electrically erase (EEPROM), flash memory devices and data storage discs (for example, magnetic discs, internal hard disc removable, magnetoptic discs and CD-ROM and DVD-ROM). The processor and memory can be supplemented or incorporated into a logical circuit for special purposes.

[00140] Those experts in the state of the technique understand that information and signals can be represented using any of a variety of different technologies and technologies. For example, data, instructions, orders, information, signals, bits, symbols and microcircuit that can be referred through the previous description can be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, fields or optical particles or any combination of them.

[00141] Those experts in the state of the technique also appreciate that the different blocks, logic, modules, circuits and illustrative algorithm steps described in relation to the modalities described in the present can be implemented as electronic hardware, computer software or combinations of both. To clearly raise this hardware and software interchangeability, several components, blocks, modules, circuits and illustrative steps have been described above in general in terms of their functionality. If this functionality is implemented as hardware or software depends on the particular application and design restrictions on the system as a whole. Experts in the state of the technique can implement the described functionality of several ways for each particular application, but those implementation decisions should not be interpreted as a cause of a deviation of the scope of the description. A software module can reside in the RQRRNN / LZNZ / ε / υιλι random access memory (RAM), Flash Memory, ROM, EPROM, EEPROM, REGISTERS, HARD DISK, A removable disc, a CD-ROM or any other form of storage medium known in the state of the technique. An exemplary storage medium is coupled to the processor so that the processor can read information on and write information A, the storage medium. Alternatively, the storage medium can be integrated into the processor. In other words, the processor and the storage medium can reside in an integrated circuit or can be implemented as discrete components.

[00142] As used in the present, “medium legible by a machine” means a device capable of storing instructions and data temporarily or permanently and may include, but is not limited to random access memory (RAM), reading memory (ROM), intermediate memory, flash memory, optical means, magnetic media, cache memory, other types of storage (for example, free -and -Rom programmable read any proper combination of them. The term “medium legible by a machine” must be taken as if including a single medium or multiple means (for example, a centralized or distributed database or associated caches and servers) capable of storing processor instructions. The term “medium legible by a machine” must also be taken as if including any means or combination of multiple media that is capable of storing instructions for execution by one or more processors, so that the instructions, when they are executed by one or more processors make the one or more processors perform any or more of the methodologies described in the present. Consequently, a “medium legible by a machine” refers to a single storage device or device, as well as storage systems or “cloud -based” storage networks that include multiple devices or storage devices. The term "medium legible by a machine" as used in the present excludes the signals per se.

[00143] The description of the figures presented above is intended as an example and do not intend to limit illustrative modalities in any way, except as exposed in attached claims. It should be noted that several technical aspects of the different elements of the different exemplary modalities that have been described above can be combined in numerous other ways, all of which are considered within the scope of the description.

[00144] Consequently, although they have been described exemplary modalities for illustrative purposes, those experts in the state of the technique will appreciate that several modifications, additions and substitutions are possible. Therefore, the description is not limited to the modalities described above, but can be modified within the scope of the attached claims, together with its total equivalent reach. RQRRNN / LZNZ / ε / υιλι (writing set) that can be sent to the network and apply to the main book in all peers. Chain codes are completely free of identities. A chain code can also call another chain code, but the identity of the transaction always remains constant as the signer of the transaction that sent the transaction through the call chain. In a Fabric Network, configuring a warranty deposit account implies, therefore, adding an external part. As a result, the external account responsible for the warranty deposit must demonstrate its neutrality to the rest of the participants. The implementation of a chain code is a two -step process. Because the executable binary for the chain code does not actually reside in the biggest book, they must first be installed in all selected backup pairs to admit it. Next, the entire channel must agree on the exact version of the chain code to be executed and the backup policy for transactions, by means of a step called “instantiation of the chain code”. The user who sends the instance creation transaction must pass the validation against the “instance creation policy” to ensure that it is approved to do so in accordance with the predetermined rules when the consortium was established. The chain codes are update. They are assigned a name and a version. When updated, they will be assigned a new version and all existing states will be inherited automatically. CHARACTERISTICS OF THE GREATER BOOK The main book is the registration sequenced to the proof of manipulations of all state transitions in the Fabric. State transitions are the result of invocations of the chain code (“transactions”) sent by the participating parties. Each transaction results in a set of key-value pairs of assets that are recorded in the main book as they are created, updated or eliminated. The main book is understood as a block chain (“chain”) to store the sequenced registration, immutable in blocks, as well as a state database to maintain the current state of the Fabric. There is a major book on the channel. Each pair maintains a copy of the biggest book for each channel of which it is a member. Some characteristics of a manufacturer of Fabric: • Consult and update the main book using searches based on keys, scope consultations and composite key consultations • Reading consultations using an enriched consultation language (if you use COUCHDB® as a status database) • Reading history consultations - Check the history of the main book for a key, allowing data origin scenarios • Transactions consist of the keys of keys / values ​​that were read in the code. chain (reading assembly) and keys / values ​​that were written in the chain code (writing set) • Transactions contain signatures of all sponsors and are sent to the order of order. RQRRNN / 1 7π7 / β / υιλι Transactions are ordered in blocks and “delivered” from a service to the pairs in a channel • The pairs validate transactions against support policies and impose policies • Before adding a block, a verification of versions is made to ensure that the states of the assets that were read have not changed since the execution time of the chain code. • There is immutability once a transaction is validated and consigned. • The main book of a channel contains a configuration block that defines policies, access control lists and other relevant information • The channels contain instances of membership service providers that allow cryptographic materials to derive from different certification authorities. See the topic bigger to obtain a deeper immersion in the databases, the storage structure and the “consultation capacity’ ’. Privacy Hyperledger® Fabric uses an immutable major book by channel, as well as a chain code that can manipulate and modify the current state of assets (that is, update key-value peers). There is a greater book to a channel; It can be shared throughout the network (assuming that each participant is operating in a common channel) - or can be privatized to include only a specific set of participants In the last scenario, these participants would create a separate channel and, therefore, would isolate / segregate their transactions and their main book. To solve scenarios that wish to close the gap between total transparency and privacy, the chain code can be installed only in the peers that need to access the states of the assets to make readings and writings (in other words, if a chain code is not installed in a pair, it cannot be interconnected correctly with the main book). When a subset of organizations in that channel needs to maintain the confidentiality of its transaction data, a private data collection (collection) is used to segregate this data in a private database, logically separated from the main book of the channel, accessible only for the authorized subset of organizations. In this way, the channels maintain private transactions of the broadest network, while the compilations maintain the privacy of the data between subset organizations in the channel. To further obfuscate the data, the values ​​within the chain code can be encrypted (partly or totally) using common cryptographic algorithms such as AES before sending transactions to the service of order and add blocks to the main book. Once the data encrypted in the biggest book has been written, only a user who possesses the corresponding key that was used to generate the encrypted text can only be disregarded. For more details on the encryption of the chain code, see the topic chain code for developers. In Fabric, the private state is calculated during the backup phase by executing the torque of the RQRRNN / LZNZ / ε / υιλι private transaction and, the resulting private state is represented by the HASH function, together with the entrance. As a result, the HASH function consisting of all nodes after consensus guarantees that the participating nodes of private transactions always agree with private states. Fabric also offers complete data isolation as another privacy technique, with the concept of “channels”. Fabric channels can be considered as separate block chains, because each channel maintains its instance completely separated from a larger book, shared between the participating nodes of that channel. If a consortium is mainly deals with bilateral transactions, as is the case with most financial instruments, the number of channels becomes very large: ο (νλ2) being n the number of participants in the consortium. See the issue of private data to obtain more details on how to achieve privacy in your block chain network. Security and membership services Hyperledger® Fabric supports a transactional network in which all participants have known identities. Public key infrastructure is used to generate cryptographic certificates that are linked to organizations, network components and end users or customer applications. As a result, data access control can be manipulated and governed in the widest network and channel levels. This "authorized" notion of Hyperledger® Fabric, together with the existence and capabilities of the channels, helps address scenarios where privacy and confidentiality are primordial concerns. See the issue of membership services (MSP) to better understand cryptographic implementations and the signature, verification and authentication approach used in the Hyperledger® Fabric. Consensus In distributed major book technology, consensus has recently become synonymous with a specific algorithm, within a single function. However, the consensus covers more than simply to agree on the order of transactions and, this differentiation stands out in the Hyperledger® Fabric through its fundamental role in the entire flow of transactions, from the proposal and the support, to the order, the validation and the consignment. In a nutshell, consensus is defined as the complete circle verification of the accuracy of a set of transactions that comprise a block. Fabric Tolera, instead of eliminating, the absence of determinism in its consensus model. Fabric offers complete languages ​​for intelligent contracts as a design principle. Fabric chain codes can be written in three complete language execution times: Golang, Node.js® and Java. This is possible thanks to the adoption of the consensus design of executing-order-validar, so that the block chain system can support bad transactions caused by a non-deterministic chain code while developers continue to perfect logic and implementation. The design of “executing first and ordering later” polished in Figure 12 implies that some type of control of concurrence versions is necessary; Otherwise, when several transactions try to modify the same state value in parallel, the last one will overwritten the previous one and eliminate the transfer of state from the state of the RQRRNN / 1 7π7 / β / υιλι anterior transaction, instead of being built in the result of the previous transaction. Fabric uses a multiple versions concurrence control technique (MVCC) taken from the design of the database. The chain code engine monitor the status values ​​that are seen (in the reading set) and are updated (in the writing set) when the intelligent contract is executed. During the validation phase, where each transaction contained within a block is validated and the state transfer is applied, if the status value versions of a transaction in their reading assembly do not coincide with the current versions, generally because they have been updated by a previous transaction in the block, then the transaction is marked as not valid. The involvement is that, if a series of transactions needs to modify the same state value, they must be regulated so that no more than one transaction lands within a single block. Otherwise, the application will observe a large number of non -valid transactions due to concurrent modifications. There are techniques to program around this limitation, such as using the composite key capacity to assemble unique keys for each transaction while having the ability to group keys aimed at the same underlying state variable. Finally, the consensus is achieved when the order and results of the transactions of a block comply with the verifications of the explicit policy criteria. These controls and counterweights take place during the life cycle of a transaction and include the use of support policies to dictate which specific members should support a certain transaction class, as well as system chain codes to ensure that these policies are fulfilled and sustained. Before the consignment, the peers will use these system chain codes to ensure that there are enough backs and that they have derived from the appropriate entities. In addition, a verification of versions will be carried out during which the current state of the main book is agreed or consents, before the blocks containing transactions are added to the main book. This final verification provides protection against double expense operations and other threats that could compromise data integrity and allow functions against non -static variables. In addition to the multitude of backup checks, validity and versions that are carried out, continuous identity checks are also carried out in all directions of the transaction flow. The access control lists are implemented in hierarchical layers of the network (order service to the channels) and the useful charges are signed, verified and authenticated repeatedly as a transaction proposal passes through the different architectural components. To conclude, the consensus is not limited simply to the agreed order of a lot of transactions; Rather, it is a general characterization that is achieved as a byproduct of the current verifications that take place during the trip of a transaction from the proposal to consignment. Operational governance Governance is the process and politics around the execution time of the protocol to ensure that consortium members have adequate participation in decision -making processes. Fabric has permissions incorporated in each layer of architecture. Operations such as starting a new consortium, add or evict members, define a new channel, add and evict RQRRNN / 1 7π7 / β / υιλι participants of the channels, require the collection of approval signatures of appropriate organizations. The general policy model is applied throughout the system. Fabric has two levels of permits and governance support: consortium and channel. Ordering administers policies and configurations at the consortium level. Each Fabric block chain network begins with the initial sequence of the order from a genesis block configuration that defines organizations and consortiums. The pairs manage policies and configurations at the channel level. Modify configurations, such as adding new member organizations to a consortium or a channel, requires collecting signatures according to the modification policy: anyone, all or most existing members. The manufacturing architecture itself allows the implementation of decentralized orders. Actually, with the introduction of the implementation of orders based on RAFT version 1.4, it is no longer necessary to match order nodes with a centralized order engine. Each node of order itself is a pair of RAFT and can participate in the election of leader in the event that the current leader fails or becomes unattainable. This allows a more decentralized implementation where more than one organization can operate nodes of order and participate in consensus and propose blocks. Peers A block chain network consists mainly of a set of even nodes (or, simply, pairs). The pairs are a fundamental element of the network because they house major books and intelligent contracts. A major book immutable all transactions generated by intelligent contracts (which in Hyperledger® Fabric are contained in a chain code). Smart contracts and major books are used to encapsulate shared processes and shared information on a network, respectively. These aspects of a pair make them a good starting point to understand a manufacture network. Of course, other elements of the block chain network are important: major books and intelligent contracts, ordering, policies, channels, applications, organizations, identities and membership. This section focuses on pairs and their relationship with these other elements in a manufacture network. Figure 13 lustra a block chain network included in pairs, each of which can contain copies of older books and copies of intelligent contracts. In this example, Network N consists of pairs P1, P2 and P3, each of which maintains its own instance of the distributed main book L1, ρ1, P2 and P3 use the same chain code, S1, to access their copy of that distributed major book. The pairs can be created, start, reconfigure and even eliminate. They expose a set of APIS that allow administrators and applications to interact with the services they provide. A few words about terminology Fabric implements intelligent contracts with the chain code - simply a code fragment that accesses the main book, written in one of the supported programming languages. Major books and chain code It is the pair that houses both of the main book and the chain code. More exactly, the pair actually houses instances of the main book and instances of the chain code. Note that this provides a RQRRNN / 1 7π7 / β / υιλι deliberate redundancy in a manufacture network - this avoids unique failure points. Figure 14 lustra a pair that houses instances of major books and chain code instances. In this example, P1 houses an instance of the Book Mayor L1 and an instance of the S1 chain code. There may be many major books and chain codes housed in an individual pair. Because a couple is a host of older books and chain codes, applications and administrators must interact with a couple if they wish to have access to these resources. That is why the pairs are considered the most fundamental construction blocks of a Fabric network. When a pair is created for the first time, it has no major books or chain codes. Multiple major books A couple can house more than one greater book, which is useful because it allows a flexible system design. The simplest configuration is that a couple manages a single major book, but it is absolutely appropriate for a pair to host two or more older books when necessary. Figure 15 illustrates a couple that houses several major books. The pairs house one or more older books and each biggest book has zero or more chain code that are applied to them. In this example, we can see that the P1 hosts the older books L1 and L2. You can have access to the biggest book L1 using the S1 chain code. On the other hand, you can have access to the Book Mayor L2 using the S1 and S2 chain codes. Although it is perfectly possible for a pair to house a major book instance without hosting any chain code that has access to that major book, it is rare that the pairs be configured in this way. The vast majority of pairs will have at least one installed chain code that can consult or update the instances of the main book of the peers. It is worth mentioning in passing that, regardless of whether users have installed chain codes for use by external applications, the pairs also have special chain codes of the system that are always present. Multiple chain codes There is no fixed relationship between the number of major books that has a couple and the number of chain codes that can have access to that major book. A couple can have many chain codes and many older books available on it. Figure 16 illustrates an example of a couple that houses multiple chain codes. Each major book can have many chain codes that have access to it. In this example, we can see that the P1 hosts the older books L1 and L2, where you have access to L1 through the S1 and S2 chain codes and you have access to L2 through S1 and S3. S1 can have access to both of L1 and L2. Applications and pairs The major book consultation interactions imply a simple three -step dialogue between an application and a pair; The main book update interactions are a bit more complicated and require two additional steps. Applications always connect to their peers when they need to have access to major books and chain codes. The Fabric Software Development Team (SDK) makes this easy for programmers RQRRNN / 1 7π7 / β / υιλι - their APIs allow applications to connect to pairs, invoke chain codes to generate transactions, send transactions to the network that will be ordered and consigned in the distributed main book and will receive events when this process is completed. Through a pairs connection, applications can run chain codes to consult or update a major book. The result of a transaction of consultation of the main book is returned immediately, while the updates of the main book imply a more complex interaction between applications, pairs and ordering. Figure 17 lustra the pairs, together with the ordering, which guarantee that the main book is kept updated in all pairs. In this example, application A connects to P1 and invokes the S1 chain code to consult or update the main book L1. P1 invokes S1 to generate a proposal response that contains a consultation result or a proposed update of the main book. The application A receives the response of the proposal and, for consultations, the process is now complete. For updates, to build a transaction from all the answers, which sends to 01 for order. 01 Collect transactions from the entire network in blocks and distribute them to all peers, including P1. P1 validates the transaction before applying it to L1. Once L1 is updated, P1 generates an event, received by A, to indicate the completion. A pair can return the results of a consultation to an application immediately, since all the information necessary to satisfy the consultation is in the local copy of the main book of the torque. The peers never consult with other peers to respond to a consultation from an application. However, applications can connect to one or more pairs to issue a consultation; For example, to corroborate a result between several pairs or recover a more updated result of a different couple if there is suspicion that the information can be outdated. In the diagram, it can be seen that the consultation of the biggest book is a simple three -step process. An update transaction begins in the same way as a consultation transaction, but has two extra steps. Although the update applications of the main book also connect to the pairs to invoke a chain code, unlike the applications of consultation of the main book, an individual torque cannot perform an update of the main book at that time, because other peers must first accept the change - a process called consensus. Therefore, the pairs return to the application a proposed update - one that would apply subject to the previous agreement of other peers. The first extra step - step four - requires that the applications send an appropriate set of proposed updates coinciding to the entire peer network as a transaction to be consigned in their respective major books. This is achieved by applying an order to package blocks in blocks and distribute them to the entire peer network, where they can be verified before applying them to the local copy of the main book of each pair. Since all this order processing takes some time to be completed (second), the application receives a notification asynchronously, as shown in step five. Pairs and channels The pairs interact with each other and with the applications through channels - a mechanism by which a set of components within a block chain network can communicate and perform transactions RQRRNN / 1 7π7 / β / υιλι privately. These components are typically nodes of pairs, nodes of orders and applications and, by joining a channel, agree to collaborate and collectively administer identical copies of the main book associated with that channel. Conceptually, it can be thought that channels are similar to groups of friends. A person can have several groups of friends and each group has activities that do together. These groups can be totally separated (a group of work friends compared to a group of friends to spend time) or there may be some crossing between them. However, each group is their own entity, with rules of some kind. Figure 18 lustra channels that allow a specific set of pairs and applications to communicate with each other within a block chain network. In this example, application A can communicate directly with P1 and P2 pairs using channel C. can be thought of the channel as a communications route between particular and peer applications. (To simplify, orderrs are not shown in this diagram, but they must be present in an operational network). The channels do not exist in the same way as the pairs; It is more appropriate to think of a channel as a logical structure formed by a collection of physical pairs. The pairs provide the control point to access the channels and administer them. Pairs and organizations Block chain networks are managed by a collection of organizations rather than by a single organization. The pairs are fundamental for the way in which this type of distributed network is built because they are owned by - and are the connection points to the network for - those organizations. Figure 19 lustra pairs in a block chain network with multiple organizations. The block chain network is built from the peers it owns and provided by the different organizations. In this example, we see four organizations that contribute eight pairs to form a network. Channel C connects five of these pairs in the N -P1, P3, P5, P7 and P8 network. The other pairs owned by these organizations have not joined this channel, but typically joined another channel. Applications that have been developed by a particular organization will connect with the peers of their own organization, as well as those of different organizations. Again, with the purpose of simplifying, an order node is not shown in this diagram. The network is formed and administered by the multiple organizations that contribute resources for it. The pairs are the resources we are discussing in this issue, but the resources provided by an organization are more than simple pairs. There is a starting principle here - the network literally does not exist without organizations that contribute its individual resources to the collective network. In addition, the network grows and contracts with the resources provided by organizations that collaborate. In addition to the orders service, there are no centralized resources - in the previous example, the network, N, would not exist if organizations did not contribute their peers. This reflects the fact that the network does not exist significantly unless and until organizations contribute to the resources that form it. In addition, the network does not depend on any individual organization - it will continue to exist while an organization remains, regardless of what other organizations may appear and disappear. This is the core of what it means that a network RQRRNN / LZNZ / ε / υιλι be decentralized. Applications in different organizations, as in the previous example, can be the same or not. That is because it depends totally on an organization as to how its applications process copies of the main book of its peers. This means that both the logic of the application and the presentation may vary from one organization to another, even if their respective pairs house exactly the same data as the main book. Applications are connected with peers in their organization or with pairs in another organization, depending on the nature of the interaction of the main book that is required. For major book consultation interactions, applications typically connect to the pairs of their own organization. For the interactions of updating of the main book, applications must be connected with peers that represent all organizations that must support the update of the main book. Pairs and identity The pairs have an identity assigned through a digital certificate of a particular certifying authority. A digital certificate is like an ID card that provides a lot of verifiable information about a couple. Each and every one of the pairs of the network are assigned a digital certificate of an administrator of their own organization. Figure 20 lustra that when a pair connects to a channel, its digital certificate identifies its own organization through a MSP channel. In this example, P1 and P2 have identities issued by CA1. Channel C determines from a policy in its channel configuration that CA1 identities must be associated with org1 using org1.MSP. Similarly, Org2.MSP identifies P3 and P4 as part of Org2. Whenever a couple is connected using a channel to a block chain network, a policy in the channel configuration uses the identity of the torque to determine its rights. The mapping of identity to the organization is provided by a component called membership service provider (MSP) - this determines how a pair is assigned to a specific role in a particular organization and, consequently, obtains adequate access to the resources of the block chain. In addition, a couple can only be owned by a single organization and, therefore, is associated with a single MSP. An MSP provides a link between an individual identity and a particular organizational paper in a block chain network. The pairs, as well as all that interact with a block chain network, acquire their organizational identity based on their digital certificate and an MSP. The peers, applications, end users, administrators and ordering must have an associated identity and MSP if they want to interact with a block chain network. A name is provided to each entity that interacts with a block chain network using an identity - a director. It is not really important where the torque is physically - it could reside in the cloud or in a data center owned by one of the organizations or in a local machine - it is the identity associated with it that identifies it as the property of a particular organization. In the previous example, P3 could be housed in the Org1 data center, but provided that the associated digital certificate is issued by the CA2, then it is owned by Org2. RQRRNN / LZNZ / ε / υιλι Pairs and ordering The mechanism by which applications and pairs interact with each other to ensure that the main book of all pairs is maintained consistent is mediated by special nodes called ordering. An update transaction is very different from a consultation transaction because a single pair cannot, by itself, update the main book - the update requires the consent of other pairs on the network. A pair requires other pairs in the network to approve an update of the biggest book before it can be applied to the major local book of a couple. This process is called consensus, and it takes much longer to complete than a simple consultation. But when all the pairs required to approve the transaction do so and, the transaction is recorded in the main book, the peers will notify their connected applications that the main book has been updated. Specifically, applications that wish to update the main book are involved in a 3 -phase process, which ensures that all pairs in a block chain network maintain their major books consisting of each other. In the first phase, the applications work with a subset of pairs that support, each of which provide support for the proposed update of the main book to the application, but does not apply the update proposed to its copy of the main book. In the second phase, these separate backups are jointly collected as transactions and packaged in blocks. In the final phase, these blocks are distributed back to all pairs where each transaction is validated before applying to the copy of the main book of that pair. Order nodes are fundamental to this process. Applications and pairs use ordering to generate updates of the major book that can be consistently applied to a distributed, replicated book. Phase 1: Phase 1 of the workflow of the transaction involves an interaction between an application and a set of pairs - does not involve the ordering. Phase 1 only refers to an application that requests the pairs that support different organizations that are in accordance with the results of the invocation of the proposed chain code. To begin phase 1, the applications generate a transaction proposal which they send to each of the peer sets required for support. Each of these pairs that support it independently executes a chain code using the transaction proposal to generate an answer for the transaction proposal. This update does not apply to the main book, but simply the signature and returns to the application. Once the application has received a sufficient number of responses to the signed proposal, the first phase of the transaction flow is completed. Figure 21 lustra transaction proposals that are executed independently by pairs that return responses to supported proposals. In this example, the A1 application generates the proposal P of T1 transaction that sends both of the P1 and the P2 torque on the C. P1 channel executes S1 using the proposal p of the transaction T1 generating the response R1 of the transaction T1 that supports with E1. Regardless, P2 executes S1 using the proposal P of the T1 transaction, which generates the R2 response of the T1 transaction, which supports E2. Application A1 receives two responses supported for transaction T1, namely, E1 and E2. RQRRNN / LZNZ / ε / υιλι Initially, the application chooses a set of pairs to generate a set of updates of the main book proposals. The pairs chosen by the application depend on the backup policy (defined for a chain code), which defines the set of organizations that need to support a proposed major book change before it can be accepted by the network. This is literally what it means to achieve consensus - each organization that cares must have supported the change of the main book proposed before it is accepted in the main book of any pair. A PAR supports an answer to a proposal by adding its digital signature and signing all the payload using its private key. This support can be used later to demonstrate that the pair of this organization generated a particular response. In the previous example, if the P1 torque is owned by the Organ Organization, the E1 support corresponds to a digital test that the R1 response of the T1 transaction in the main book L1 has been provided by the P1 of Org1. Phase 1 ends when the application receives signed proposal responses of sufficient pairs. Different pairs can return different transaction responses and, therefore, inconsistent with the application for the same transaction proposal. It could simply be that the result was generated at different times in different pairs with major books in different states, in which case an application can simply request a more up -to -date proposal response. It is less likely, but much more serious, that the results are different because the chain code is not deterministic. The absence of determinism is an enemy of chain codes and major books and, if it occurs, it indicates a serious problem with the proposed transaction, because inconsistent results cannot obviously apply to major books. An individual pair cannot know that the result of its transaction is not deterministic - the responses of the transaction must meet to compare them before the absence of determinism can be detected. At the end of phase 1, the application is free to rule out inconsistent transactions responses if you wish, effectively ending the transaction workflow early. If an application tries to use an inconsistent set of transaction responses to update the main book, it will be rejected. Phase 2: order and package transactions in blocks The second phase of the transaction workflow is the packaging phase. The ordering is essential for this process - this receives transactions that contain responses of transaction proposals backed by many applications and orders block transactions. For more details about the ordering and packaging phase, see the conceptual information about the ordering phase. Phase 3: Validation and consignment At the end of phase 2, the ordering has been responsible for the simple but vital processes of collection of the updates of proposed transactions, of ordering and packaging them in blocks, ready for distribution to the peers. The final phase of the transaction workflow involves the subsequent distribution and validation of blocks from the ordering to the peers, where they can be applied to the main book. Specifically, in each pair, each transaction is validated inside a block to ensure that it has been constantly supported by all RQRRNN / LZNZ / ε / υιλι relevant organizations before the main book is applied. Falling transactions are retained for audit, but do not apply to the main book. Figure 22 lustra the second role of an ordering node, which is to distribute blocks to the peers. In this example, ordering 01 distributes block B2 to the P1 and torque p2. The P1 torque processes block B2, which results in a new block to the main book L1 in P1. In parallel, the P2 torque processes block B2, which results in a new block to the main book L1 in P2. Once this process is completed, the main book has been constantly updated in the P1 and P2 pairs and, each can inform the connected applications that the transaction has been processed. Phase 3 begins with the ordering by distributing blocks to all pairs connected to it. The pairs are connected to the ordering in the channels so that when a new block is generated, all the pairs connected to the order will send a copy of the new block. Each pair will process this block independently, but exactly in the same way as any other pair of the channel. In this way, the biggest book can be maintained consistent. In addition, not all pairs need to connect even ordering - pairs can send cascade blocks to other peers using the gossip protocol, who can also process them independently. After receiving a block, a couple will process each transaction in the sequence in which it appears in the block. For each transaction, each pair will verify that the transaction has been supported by the required organizations in accordance with the policy of support of the chain code that generated the transaction. For example, some transactions only need to be backed by a single organization, while others may require multiple support before they are considered valid. This validation process verifies that all relevant organizations have generated the same result or consequence. Also note that this validation is different from the backup verification in phase 1, where it is the application that receives the response of the peers that support and makes the decision to send the transactions of the proposal. In the event that the application violates the support policy by sending incorrect transactions, the PAR can still reject the transaction in the validation process of phase 3. If a transaction has been backed correctly, the pair will try to apply it to the main book. To do this, a couple must make a verification of consistency of the main book to verify that the current state of the main book is compatible with the state of the main book when the proposed update was generated. This is not always possible, even when the transaction has been totally supported. For example, another transaction may have updated the same asset in the main book so that the update of the transaction is no longer valid and, therefore, can no longer be applied. In this way, the copy of the main book of each pair remains consistent throughout the network because each one follows the same validation rules. After a pair has successfully validated each individual transaction, it updates the main book. Falling transactions do not apply to the main book, but are retained for audit purposes, as well as successful transactions. This means that the peer blocks are almost exactly the same as the blocks received from the ordering, except for a valid or not valid indicator in each transaction in the block. Phase 3 does not require the execution of chain codes - this is done only during phase 1 RQRRNN / LZNZ / ε / υιλι and, that is important. It means that chain codes should only be available in backup nodes, rather than in the entire block chain network. This is often useful, because it maintains the logic of the confidential chain code for sponsoring organizations. This contrasts with the exit of the chain codes (the responses to the transaction proposal) that are shared with all the pairs of the channel, whether or not to support the transaction. This specialization of support pairs is designed to help scalability. Finally, every time a block is recorded in the main book of a couple, that pair generates an appropriate event. Block events include the complete block content, while block transaction events only include summary information, as if each block transaction had been validated or invalidated. Chain code events that have produced the execution of the chain code can also be published at this time. Applications can be recorded for these types of events, so that they can be notified when they occur. These notifications conclude the third and final phase of the transaction workflow. In summary, phase 3 sees the blocks generated by the order applied consistently to the main book. The strict order of block transactions allows each valid pair that transaction updates are consistently applied throughout the block chain network. Ordering and consensus This entire transaction workflow process is called consensus because all pairs have reached an agreement on the order and content of transactions, in a process mediated by ordering. Consensus is a process of several steps and applications only receive notifications of the updates of the main book when the process is completed - which can happen to slightly different times in different pairs. In this way, the orderrs can be considered nodes that collect and distribute the updates of the main book proposals for the pairs to validate them and include them in the main book. On the other hand, the pairs form the network, host the chain codes and the main book, handle the transaction proposals and the answers and maintain the updated book by constantly applying transaction updates. World state A world state is a database that contains a cache memory of the current values ​​of a set of states of the main book. The world state facilitates the direct access of a program to the current value of a state instead of having to calculate it by touring the entire transaction record. The states of the main book are expressed, by default, as key-value pairs. The world state can frequently change, because states can be created, updated and eliminated. The world state contains the current value of the attributes of a commercial object as a unique major book state. That is useful because programs generally require the current value of an object; It would be cumbersome to cross the entire block chain to calculate the current value of an object - it is simply obtained directly from the world state. Figure 23 lusters a world state of the main book that contains two states. The first state is: RQRRNN / LZNZ / ε / υιλι key = CAR1 and Value = Audi. The second state has a more complex value: key = car2 and value = {Model: BMW, color = red, owner = jane}. Both states are in version 0. A state of the main book records a set of facts on a particular commercial object. The previous example shows the states of the main book for two cars, CAR1 and CAR2, each with a key and a value. An application program can invoke an intelligent contract used by simple major book APIS to obtain, place and eliminate states. Note how a state value can be simple (Audi ...) or compound (type: BMW ...). The world state is often consulted to recover objects with certain attributes, for example, to find all red BMWs. The world state is implemented as a database. A database provides a set rich in operators for efficient storage and recovery of states. Hyperledger® Fabric can be configured to use different world -state databases to address the needs of different types of state values ​​and access patterns required by applications, for example, in complex consultations. Applications send transactions that capture changes in the world and, these transactions end up consigned with the block chain of the main book. Applications are isolated from the details of this consensus mechanism by Hyperledger® Fabric SDK; They simply invoke an intelligent contract and are notified when the transaction has been included in the block chain (whether valid or not). The key point of design is that only the transactions signed by the required set of sponsoring organizations will result in an update of the world state. If a transaction is not signed with sufficient support, it will not be a change of the world. A state has a version number and, in the previous diagram, the Car1 and Car2 states are in their initial versions, 0. The version number is for internal use of Hyperledger® Fabric and increases every time the state changes. The version is verified every time the State is updated to ensure that the current states coincide with the version at the time of support. This ensures that the world state is changing as expected; that there has not been a concurrent update. Finally, when a greater book is created for the first time, the world state is empty. Because any transaction that represents a valid change in the world state is recorded in the block chain, this means that the world state can be generated again from the block chain at any time. This can be very convenient - for example, the world state is automatically generated when a couple is created. In addition, if a pair fails abnormally, the world state can regenerate in the restart of the torque, before transactions are accepted. The world state is physically implemented as a database, to provide a simple and efficient storage and recovery of the states of the main book. The states of the main book can have simple or compound values ​​and, to adapt to this, the implementation of the world -state database can vary, which allows these values ​​to be implemented efficiently. The options for the World State Database Currently include LeveldB and CouchDB®. RQRRNN / LZNZ / ε / υιλι Leveldb is the default value and is particularly appropriate when the states of the main book are simple key-value. A LeveldB database is very close co -lubicated with a network node - it is incorporated into the same operating system process. Couchdb® is a particularly appropriate option when the states of the main book are structured as JSON documents because CouchdB® supports enriched consultations and the update of richer data types that are often found in commercial transactions. Regarding the implementation, the CouchDB® is executed in a separate operating system process, but there is still a 1: 1 ratio between a torque node and an instance of Couchdb®. All this is invisible for an intelligent contract. In Leveldb and Couchdb®, we see an important aspect of Hyperledger® Fabric - it is connectable. The world status database could be a relationship warehouse, a graphic warehouse or a temporary database. This provides great flexibility in the types of states of the biggest book to which you can have access efficiently, allowing Hyperledger® Fabric to address many different types of problems. In Hyperledger® Fabric, each channel has a completely separated book. This means a completely separate block chain and completely separate world states, including names of names. It is possible that intelligent applications and contracts communicate between channels so that access to the information of the biggest book can be accessed. COUCHDB® as a state database Couchdb® is an optional external state database. CouchdB® can store any binary data modeling in the chain code (the functionality attached to Couchdb® is used internally for binary data that are not JSON). But as a JSON documents warehouse, CouchDB® also allows enriched consultations against chain code data, when chain code values ​​(for example, assets) are modeled as JSON data. CouchDB® supports basic chain code operations, such as obtaining and configuring a key (active) key -based inquiries. The keys can be consulted by rank and the composite keys can be modeled to allow equivalence consultations against multiple parameters. For example, a key composed of owner, ID_active can be used to consult all assets owned by a certain entity. These keys based on keys can be used for only reading queries in the biggest book, as well as in transactions that update the main book. If assets such as JSON and Use CouchDB® are modeled, you can also make complex and enriched consultations against chain code data values, using the JSON consultation language of CouchDB® within the chain code. These types of consultations are excellent to understand what is in the biggest book. The responses to the proposals for this type of consultations are often useful for the application of the client, although they are not normally sent as transactions to the orders. In fact, there is no guarantee that the results set is stable between the execution of the chain code and the consignment time for enriched consultations and, therefore, enriched consultations are not appropriate for use in update transactions, unless the application can ensure that the set of results is stable between the time of time RQRRNN / LZNZ / ε / υιλι Execution of the chain code and the consignment time or can handle potential changes in subsequent transactions. For example, if an enriched consultation is made for all Alice -owned assets and transferred to Bob, a new asset to Alice can be assigned through another transaction between the execution time of the chain code and the consignment time and, this ghost element would be lost. CouchDB® is executed as an independent database process together with the PAR, so there are additional considerations in terms of configuration, administration and operations. It is a good practice to model active data of the chain code such as JSON, so that you have the option of making complex and enriched consultations if necessary in the future. Use of CouchDB® of the Chain Code Chain code consultations Most chain code adjustment APIs can be used with a CouchDB® status database, for example, Getstate, Putstate, Getstatebyrange, Getstatebypartial Compositekey. In addition, when CouchDB® is used as a status database and model assets such as JSON in the chain code, enriched consultations against JSON can be made in the status database using the Getqueryresult API and passing a CouchDB® consultation chain. The consultation chain follows the JSON consulting syntax of Couchdb. The manufacturing sample 02 demonstrates the use of Couchdb® consultations from the chain code. It includes a QuerymarblesByowner () function that demonstrates parameterized consultations when passing an owner ID to the chain code. Then consult the status data of JSON's documents that coincide with the type of marble document and the identification of the owner using JSON's consultation syntax: {Selector: {t¡podoc: marble, owner: <id_propientary>}}} Couchdb® pagination Fabric supports the pagination of the results of the consultations for enriched consultations and ranges based. The APIs that support the paging allow the page size and the brands to be used for both rank and enriched inquiries. To support efficient pagination, Fabric paging APIs should be used. Specifically, the keyword of CouchDB® limit will not be respected in Couchdb® consultations, because Fabric manages the pagination of the consultation results and implicitly establishes the page size limit that is passed to Couchdb®. If a size is specified using paginated consultation APIs (obtained by gapoconpaginac¡ón (), obtained by compounding comparcial withpaginac¡ón () and obtaining disturbance consulting picking), a set of results (limited by size) will be returned to the chain code together with marks. The marks can be returned from the chain code to invoke customers, which can use the branding in a monitoring consultation to receive the following “page” of results. Pagination APIs are to be used in only reading transactions only, the consultation results are intended to support the customer paging requirements. For transactions that need to read and RQRRNN / LZNZ / ε / υιλι Write, use the non -page chain code consultation. Within the chain code, it can be items through sets of results to the desired depth. Regardless of whether the pagination APIs, all chain code consultations are limited by co -cultural limited (predetermined 100000) of Core.yaml. This is the maximum number of results that the chain code will signal through and return to the client, to avoid accidental or malicious prolonged execution consultations. COUCHDB® indices Couchdb® indices are required to make efficient JSON consultations and are required for any JSON consultation with a guy. The indices can be packaged together with the chain code in a directory / META-INF / STATEDB / COUCHDB / INDEXES. Each index must be defined in its own text file with the extension *.Jon with the definition of the index in JSON format after the couchdb syntax JSON index. For example, to withstand the previous marble consultation, a sample index is provided in the typodoc and owner fields: {Index {Campos [typodoc, owner]}, Ddoc: indentocpropietar¡o, name: indentopietar¡o, t¡po '': JSON} Any index in the META-INF / STATEDB / COUCHDB / Indexes of the Chain Code will pack with the chain code for its implementation. When the chain code is installed in a torque and creates an instance in one of the torque channels, the indices will automatically be implemented in the torque channel and the specific status database of the chain code (if configured to use CouchDB®). If the chain code is first installed and then the chain code instance is created in the channel, the index will be implemented when creating the chain code instance. If the chain code has already created the instance on the channel and one subsequently installs the chain code in a pair, the index will be implemented at the time of the installation of the chain code. After the implementation, the index will be used automatically for chain code consultations. Couchdb® can automatically determine which index to use based on the fields used in a query. Alternatively, in the selector consultation, the index can be specified using the keyword use. The same index may exist in subsequent versions of the chain code that are installed. To change the index, use the same index name but alter the index definition. After the installation / create instances, the index definition will be reimputed in the status database of the torque. If you already have a large volume of data and then the chain code is installed, the creation of the index after the installation can take some time. Similarly, if you already have a large volume of data and the instance is created for a later version of the chain code, the creation of the index can take some time. Avoid calling chain code functions that consult the status database at the moment, since the chain code consultation can expire while the index is initialized. During transaction processing, the indices will be automatically updated as the blocks are recorded in the main book. RQRRNN / 1 7π7 / β / υιλι COUCHDB® settings COUCHDB® is enabled as a status database by changing the configuration option of the GoleveldB state database to CouchdB®. In addition, direction with thechdb must be configured to point to CouchDB® to use the pair. User and password names should be completed with a administrator username and password if CouchDB® is configured with a username and password. Additional options are provided in the ConfectcuchdB section and are documented in place. Changes in Core.yaml will be effective immediately after restarting the pair. You can also pass environmental window variables to cancel the core.yaml values, for example, Centro_stado_libromayor_basedatsostado and Centro_Estado_libromayor_configcouchdb_direcciCiCiCuChdb. Next is the Basedatosos Statty section of Core.yaml ·. state: # Basedatosstado - The options are GoleveldB, CouchdB # GoleveldB - Default status database stored in GoleveldB. # CouchDB - Store status database in CouchDB Basedatosstado: GoleveldB # limit in the number of records that will be returned by consultation CLASS CULTATITAL: 10000 CONFECCUCHDB: # It is recommended to execute couchdb on the same server as the torque, and # Do not map the port of the CouchDB container to a server port in the composite coupling window. # Otherwise the appropriate security must be provided in the connection between # the CouchdB client (in the torque) and the server. AddressCouchdB: Couchdb: 5984 # This username must have the authority to read and write on the User Name: User name: # It is recommended that the password pass as an environment variable # during the beginning (for example, password_configuchdb_libromayor). # Yes it is stored here, the file must be protected with access control # To prevent unwanted users from discovering the password. password: # Number of retenters for Couchdb errors ReintentosMax: 3 # Number of Reintents for CouchdB errors during the start of pairs ReintentosMaxenconfiguration: 10 RQRRNN / 1 7π7 / β / υιλι # COUCHDB requests a pause (unit: duration, for example, 20s) Request: 35s # limit on the number of records for each Couchdb consultation # Note the chain code consultations are limited only by default limit. # Internally, the chain code can execute multiple couchdb consultations, # each size of limitconsultalnterna. Clear Internance: 1000 # Limit on the number of records by the mass update lot in CouchdB Size ActualizationLemax: 1000 # Warning indices after each n blocks. # This option warns about any index that has been # implemented in Couchdb after each n blocks. # A value of 1 will notice the indices after each block consignment, # to ensure fast selector consultations. # The increase in value can improve the writing efficiency of the torque and couchdb, # but can degrade the response time of the consultation. WARNINGS INDEXED LETTERNBIOQUES: 1 COUCHDB® housed in window containers Updied with Hyperledger® Fabric has the ability to configure the username and CouchDB® password with past environment variables with the environment variables COUCHDB_USUARIO and COUCHDB_CONTERASE Using sequence sequences of composition of composition of coupling window. For Couchdb® facilities outside the images of the coupling window provided with Fabric, the local file of that installation must be edited to establish the username and administrator password. The coupling window composition command sequences only establish the username and password in the creation of the container. The local archive.ini should be edited if the username or password is going to be changed after the creation of the container. Couchdb®'s options are read at each start of the pair. Identity The different actors in a block chain network include pairs, ordering, customer applications, administrators and more. Each of these actors - active elements inside or outside a network capable of consuming services - has an encapsulated digital identity in an X.509 digital certificate. These identities really matter because they determine the exact permits about resources and access to information that actors have in a block chain network. In addition, a digital identity has some additional attributes that Fabric uses to determine the permits and gives the Union an identity and the associated attributes a special name - principles. The principles are RQRRNN / LZNZ / ε / υιλι as a user ID or group ID, but a little more flexible because they can include a wide range of properties of an actor's identity, such as the organization of the actor, organizational unit, paper or even the specific identity of the actor. When we talk about principles, they are the properties that determine their permits. For an identity to be verifiable, it must come from a reliable authority. A membership service provider (MSP) is how this is achieved in Fabric. More specifically, an MSP is a component that defines the rules that govern the valid identities for this organization. The default MSP implementation in Fabric USA X.509 certificates as identities, adopting a hierarchical public key infrastructure (PKI) (more about PKI later). A simple scenario to explain the use of an identity Imagine visiting a supermarket to buy some provisions. In the box, you will see a sign that says that only Visa, Mastercard and Amex cards are accepted. If you try to pay with a different card - let's call it Imaginecard - it doesn't matter if the card is authentic and if you have enough funds in your account. It will not be accepted. Figure 24 Lustra that having a valid credit card is not enough - it must also be accepted by the store! PKIS and MSPS work together in the same way - a PKI provides a list of identities and a MSP says which of them are members of a given organization that participates in the network. PKI and MSPS certifying authorities provide a similar combination of functionalities. A PKI is like a card supplier - it dispenses many different types of verifiable identities. A MSP, on the other hand, is like the list of card suppliers accepted by the store, which determines what identities are the reliable (actors) of the store's payment network. MSPS convert verifiable identities into members of a block chain network. Pkis A public key infrastructure (PKI) is a collection of Internet technologies that provides safe communications in a network. Figure 25 lustra the elements of the public key infrastructure (PKI). A PKI is comprised of certifying authorities issued by digital certificates to the parties (for example, users of a service provider), who then use them to authenticate in the messages they exchange with their environment. The certificate revocation list (CRL) of a CA constitutes a reference for certificates that are no longer valid. The revocation of a certificate can occur for several reasons. For example, a certificate can be revoked because the private cryptographic material associated with the certificate has been exposed. Although a block chain network is more than a communications network, it depends on the PKI standard to ensure safe communication between several network participants and to ensure that messages published in the block chain are authenticated correctly. Therefore, it is important to understand the basic concepts of PKI and then why MSPS are so important. There are four key elements for PKI: • Digital certificates • Public and private keys RQRRNN / LZNZ / ε / υ Digital certificates A digital certificate is a document that contains a set of attributes related to the certificate holder. The most common type of certificate is the one that meets the X.509 standard, which allows the coding of the identification details of a part in its structure. For example, Mary Morris in the Mitchell Cars manufacturing division in Detroit, Michigan, could have a digital certificate with a subject attribute of C = US, ST = Michigan, L = Detroit, O = Mitchell Cars, Ou = Manufacturing, CN = Mary Morris / UID = 123456. The Mary certificate is similar to its governor identity card Provides information about Mary which can be used to provide key data on it. Figure 26 lustra a digital certificate describing a part called Mary Morris. Mary is the subject of the certificate and the subject's text highlighted shows key data about Mary. The certificate also contains many more pieces of information, as can be seen. The most important thing is that Mary's public key is distributed within her certificate, while her private signature key is not. This signature key must be kept private. The important thing is that all Mary's attributes can be registered using a mathematical technique called cryptography (literally, secret writing) so that the certificate's invalidal manipulation. The cryptography allows Mary to present his certificate to other people to demonstrate his identity provided that the other party trusts the certificate issuer, known as certifying authority (CA). Provided that the CA maintains certain cryptographic information safely (that is, its own private signature key), anyone who reads the certificate may be sure that the information about Mary has not been altered - will always have those particular attributes for Mary Morris. Think of Mary's X.509 certificate as a digital identity card that is impossible to change. Authentication, public keys and private keys The authentication and integrity of messages are important concepts in safe communications. Authentication requires that the parties that exchange messages have the security of the identity that created a specific message. For a message to have “integrity” it means that it cannot have been modified during its transmission. For example, you may want to make sure that the true Mary Morris is being communicated instead of an impostor. Or if Mary has sent you a message, you may want to make sure that no one else has manipulated during the transmission. Traditional authentication mechanisms are based on digital firms that, as the name implies, allow a part to digitally sign their messages. Digital signatures also provide guarantees on the integrity of the signed message. Technically speaking, the digital signature mechanisms require that each part have two keys to cryptographically connected: a public key that is widely available and acts as an authentication anchor RQRRNN / LZNZ / ε / υιλι and a private key that is used to produce digital signatures in the messages. Digitally signed messages recipients can verify the origin and integrity of a message received checking that the attached firm is valid under the public key of the expected sender. The unique relationship between a private key and the respective public key is the cryptographic magic that makes safe communications possible. The unique mathematical relationship between the keys is such that the private key can be used to produce a firm in a message that only the corresponding public key can match and only in the same message. In the example shown in Figure 27, Mary uses her private key to sign the message. The firm can be verified by anyone who sees the signed message using their public key. Certifying authorities An actor or node can participate in the block chain network, through a digital identity issued by a system of trust. In the most common case, digital identities (or simply identities) have the form of cryptographically validated digital certificates that meet the X.509 standard and are issued by a certifying authority (CA). CAS are a common part of Internet security protocols such as: Symantec (originally Verisign), Geotrust, Digicert, Godaddy and Comodo, among others. Figure 28 lustra a certifying authority that grants certified to different actors. These certificates are digitally signed by the CA and link the actor with the actor's public key (and, optionally, with a complete list of properties). As a result, if you trust the CA (and know your public key), you can trust that the specific actor is linked to the public key included in the certificate and has the attributes included, validating the signing of the CA in the actor's certificate. Certificates can be broadcast widely, since they do not include the private keys of the actors or the CA. Therefore, they can be used as an anchor of trust to authenticate messages from different actors. CAS also have a certificate, which makes them widely available. This allows identities consumers issued by a specific CA verifying them by verifying that the certificate could only have been generated by the head of the corresponding private key (the CA). In a block chain environment, every actor who wants to interact with the network needs an identity. In this configuration, I could tell you that one or more CAS can be used to define the members of an organization from a digital perspective. It is the CA that provides the basis for the actors of an organization to have a verifiable digital identity. Root cas, intermediate cas and trusted chains The cas come in two versions: Root cas and intermediate cas. Because the root cas (Symantec, Geotrust, etc.) have to safely distribute hundreds of millions of certificates to Internet users, it makes sense to distribute this process among the so -called intermediate cas. These intermediate cas have their certificates issued by the root or other intermediate authority, which allows the establishment of a “chain of Rqrrnn / 1 7π7 / β / υιλι trust ”for any certificate issued by any CA of the chain. This ability to track to the root not only allows the function of the CAS to increase without ceasing Intermediate is compromised, on the other hand, there will be a much smaller exposure. Figure 29 Lusters a chain of trust established between a root and a set of intermediate cas provided that the certificate of the certificate of each of these intermediate cas is the same root or has a confidence chain with the root. The intermediate cas provide a lot of flexibility when it comes to the issuance of certificates through multiple organizations and that is very useful in a block chain system with permission (such as Fabric). For example, different organizations can use different roots or the same root with different intermediate cas - in fact it depends on the needs of the network. CA of Fabric Fabric provides an integrated C component to allow users to create cas in block chain networks that are formed. This component - known as CA of Fabric, is a private CA root provider capable of administering the digital identities of Fabric participants who have the form of certificates x.509. Because the Fabric CA is a personalized CA aimed at the needs of the Fabric Root, inherently it is not able to provide SSL certificates for general / automatic use in browsers. However, because some CA should be used to administer identity (even in a trial environment), the FABRIC CA can be used to provide and administer certificates. It is also possible - and totally appropriate, use a public / commercial root or intermediate to provide identification. Certificate revocation lists A certificate revocation list (CRL) is a list of references to certify that a CA knows that they have been revoked for one reason or another. On the stage of a store, a CRL would be like a list of stolen credit cards. When a third wants to verify the identity of another, he first verifies the CRL of the Issuer CA to ensure that the certificate has not been revoked. A verifier does not have to verify the CRL, but if it does not, it runs the risk of accepting a compromised identity. Figure 30 lustra the use of a CRL to verify that a certificate remains valid. If an imposter tries to pass a digital certificate committed to a validity part, it can first be verified against the CRL of the CA transmitter to ensure that it is not listed as not valid. Note that the revocation of a certificate is very different from the expiration of a certificate. The revocated certificates have not expired - are, for any other purpose, a completely valid certificate. References: The previous information regarding Fabric and Couchdb® was taken from publicly available sources in the following links: Rqrrnn / 1 7π7 / β / υιλι https: / / hyperledqer-babric.readthedocs.io / en / release-1.4 / fabric model.html# https: / / kaleid https: / / hyperledqer-fabric.readthedocs.io / en / release-1.4 / peers / peers.html#applications-and-peers https: / / hyperledqer-fabric.readthedocs.io / en / release-1.4 / ledqer / ledqer.html#world-state-database-opptions https: / / hyperledqer-fabric.readthedocs.io / release-1.4 / couchdb database.html https: / / hyperledqer-fabric.readthedocs.io / en / release-1.4 / identitv / ¡dent¡tv.htnnl#¡dentitv https: / / hyperledqer-fabric.readthedocs.io / en / release-1.4 / ident¡tv / ¡dent¡ty.html#Fababr¡c-ca RQRRNN / 1 7π7 / β / υιλι Appendix b Relational data access control Super Administrator: Root permit A prerequisite for all other activities in Element is the creation of a database and the authorization of at least one identity to perform operations in that database. The Super Administrator access level gives permission to do this. Because the implementation of the databases will be highly specific to the platform, there are no independent specifications of the platform for this permission level in addition to its existence. Element access levels The remaining user access levels in the Element system are granted by a database. The Relationship Access Control Administration is based on certain unique attributes assigned to a distributed major book identity when registered successfully in ELEMENT. All distributed major book identities used by Element are classified and verified according to these attributes. The classification of users, depending on their identity in a specific database, determines the operational scope granted by ELEMENT. Figure 31 lustra levels of access and permissions determination. There are 5 access levels in Element and the respective privileges for these levels are analyzed below. Super administrator As discussed, Super Administrator is the level of root permission for Element and has permission for all operations, including the creation of databases: Create / delete databases Design / remove administrator user in specific / multiple databases add / remove users of specific / multiple databases See all users and user information through the network Perform DDL operations Perform DML reading / writing operations Administrator The administrator access level is the user with the highest privileges within a specified database. The administrators are appointed / registered in the Element database by the Super Administrator user. The privileges for the administrator access level are: Add / remove users in the assigned database See all user and user information through the assigned database perform DDL operations Perform DML reading / writing operations RQRRNN / 1 7π7 / β / υιλι Note: The administrator user can add / delete more administrators for the specified database. DDL This access level allows the user to perform certain DDL operations (see the SQL specification of Element for more details) together with DML operations. Although, it is not allowed to add users from this level of access and below. - Perform the DDL operation as - create / alter / remove tables, schemes, and columns (indexes) of Element within the specified database. - Perform DML reading / writing operations DML writing Users of this access level can perform certain DML functions such as: - Insert / update / delete records in the element table. - Element's SQL extensions as a limit and OPSTAT can be used together with DML writing operations. (Refer to the SQL of element specifications) DML reading The DML reading access level is the most basic access that allows users to read data. Users of this level have no access to modify any data in the database. The following operations can be performed at this level of access: Select several records of the specified database and order the data in ascending or descending order. Element SQL extensions such as marking, conmult level and limit can be used together with DML reading operations. (Refer to the SQL of element specifications) See the tables and details of the tables within the specified database. Note: DDL operations of the creation and deleting database are disabled for administrator access level and all access levels below the administrator. If a user tries to execute any of these operations, the element system will return an error - 403: denied access User registration The Element System (V1.0) has an registration system only by invitation. The registration process is not public: only a super administrator has the privilege of adding new users to use Element databases. Subsequently, the SUPEADO administrator can assign database owners (administrators), who can also add other users to that specific database. Element users are necessarily built from the existing set of identities in the distributed major book network, since Element operations are based on the capabilities of the distributed major book network. The user registration is handled by the Element API of *register user, which also specifies that it is accessible through the Element user interface, when Super Access levels RQRRNN / 1 7π7 / β / υιλι Administrator and administrator can give access to the user to databases manually. Assessment criteria: http: / / <domain>: 3000 / API / User / Register The body of the application for the API contains 3 mandatory parameters 1. Username: A unique / non -existing name for the member 2. Data ID_Base: Name of an existing database 3. Level_Access: Access privileges for the member, this field can have the following allowed values ​​- DDL, write_dml, read_dml, administrator Application body to register user shows: {Username: Matthew, Data Id Once the registration has been carried out successfully, (remit the specification document of the Element ™ API for successful responses and possible errors), the ELEMENT is required to preserve the operation in the distributed major book. This action adds user information to the specified database metadata. (User names within a database are saved in an arrangement called users). Revoke user Super administrator and administrator access levels can choose to disable a particular user from a specific database / multiple databases. This allows the user to selective access to multiple databases on the network. Access levels with adequate privileges can disable a user using the revoke element API. Assessment criteria: http: / / <domain>: 3000 / AP¡ / User / Revoke The body of the application for the API contains 2 mandatory parameters: 1. Username: Exact member name 2. ID_Base of data: name of an existing database of which the member is part Body of the Revocar User Application Sample: {Username: Matthew, Data ID: Client,} Once the revocation application is executed, the revocaruse function () is called through the invocation function (). The revocaruse function () eliminates user metadata in terms of the target database. (The user is deleted from the arrangement users of the database.) RQRRNN / LZNZ / ε / υιλι Delete user Super Administrator's access level has the privilege of completely eliminating the network user. This can be achieved using the element user elimination API. When a user is eliminated, related metadata are eliminated from all databases of 5 those that were part of the identity. In addition to metadata, the digital identity of the user in the network is also completely eliminated. Assessment criteria: http: / / <domain>: 3000 / AP¡ / User / Delte The body of the application for the API contains 1 mandatory parameter: 1. Username: Exact name of the member body of the request Remove user Sample: {Username: Matthew,} RQRRNN / LZNZ / ε / υιλι Appendix c Relationship data on Book Distributed High Level Requirements Distributed older books and consensus Relationship data must be accessible to intelligent contracts. The updates attached to the relational data are governed by a consensus mechanism equivalent to that used for the updates attached to the regular data of the distributed main book. Relationship data operations that modify data must be registered in the distributed main book. Relationship operations that modify schemes must also be registered in the distributed main book. The relational data must be stored within the distributed major book if possible and must reach the same level of immutability and evidence of manipulation as the data of the distributed major book. The information of the relational scheme should be stored within the distributed older book if possible. Relationships should not be stored within the distributed older book if local alternatives are available. Schemes and indexation Table schemes support unique primary keys of a single field. The non -grouped indexation of the main key for the current state of the table must be supported. Data visibility Data, schemes and registered operations are not visible in non -restorate or during transportation, except for authorized identities in the relation to relation to relational data control. Data and operation representation Relationship data and registered relational data operations are represented in the distributed main book (or equivalent as described above) as JSON in specific formats. Figure 32 illustrates an overview of data and operating objects. Element Relationship Data Objects RQRRNN / LZNZ / ε / υιλι Appendix d API ELEMENT: Definitions The functions that are supported by the API Element are the following: Database APIS: Create database Publish https: / / <element_base_url> / api / 1.0 / database / create Permission: Element ™ Admin or Element ™ user authenticated with ADMIN or DDL access level Header RQRRNN / LZNZ / ε / υιλι Type Description Authorization chain token of bearer with authentication X-ELEMENT-CUERTEAN NAME CHAIN ​​User Name of a user registered in ELEMENT ™ Type-Contanide Chain Application / JSON Example-Warm: Authorization: EyjhbgcioijSuzii Nilslnr5CClgoiaislduliwia2lk ¡A6icj, X-Element-Name User: User: admin, admin, admin. Type-concent: application / json Application body Type description field Object Body Create Database Application Body Data Base Caden • Example-solicitude: {Data ID_Base: DB22 Success 200 RQRRNN / LZNZ / ε / υιλι Type Description Body Object Successful Respond Successful Result Data Id • Answer-Exit: HTTP / 1.1 200 OK Result: Success, D_Base: DB22, D_transaction: BC78E5DCEE6F3C820F52BA4F8E06B59452E873EFA7B63B7A54FF71 A80410DE4C Delete database Publish https: / / <element_base_url> / api / 1.0 / database / drop Permission: Element ™ Admin or Element ™ user authenticated with ADMIN or DDL access level Header Type Description Authorization chain token of bearer with authentication X-ELEMENT-CHAIN ​​NAME User name registered in Element ™ USER Type-Type Chain Application / Json Example-Warm: Authorization: Eyjhbgcioijsuzl1n¡lslnr5CClgoiaislduliwia2lkl¡a6icj, χ-Element-name user: admin, admin, admin Type-concent: application / json RQRRNN / LZNZ / ε / υιλι Application body Type description field Object Delete object of database application body ID_Base data Database ID chain Example-Solicitude: Data ID_Base: DB22 Exilu Uu} Type Description Body Object Successful Respond Successful Result Data Id Answer-Exit: Http / 1.1 200 ok { Result ”: Success, Database ID: DB22, Id_transaction: BC78E5DCEE6F3C820F52BA4F8E06B59452E873EFA7B63B7A54FF71A80410DE4C Show databases OBTAIN Rqrrnn / lznz / ε / υιλι https: / / <element_base_url> / api / 1.0 / database / show Permission: Element ™ admin user or any authenticated element ™ Header Field Guy Description Authorization Chain Carrier token with authentication X-element-name of Chain User name registered at Element ™ USER Type-concent Chain Application / json • Example-wrapped: Authorization: Eyjhbgcioijuziinilnr5CClgoiaislduliwia2lklia6icj, X-Element-User: User: User Name: admin, type-concentrate: application / json Success 200 Type DESCRIPTION BODY OBJECT SUCCESSFUL RESPONSE Answer-Exit: Ηττρ / 1.1 200 οκ { CONSTITUTE_CONSULT: {Databases: [DB22, customers, ads, networks], d_transaction ”: BC78E5DCEE6F3C820F52BA4F8E06B59452E873EFA7B63B7A54FF71A80410DE4C}}}}}}} Table APIs: Create table Publish https: / / <element_base_url> / api / 1.0 / create Permission: Element ™ user authenticated with access to DDL Header Type Description Authorization Token chain of carrier with authentication X-ELEMENT-CUERTEAN NAME CHAIN ​​REGISTERED IN ELEMENT TYPE-CONTENDE APPLICATION CHAIN / JSON Example-Warm: { Authorization: bearer eyjhbgcioijsuzii n¡lslnr5cclgoiaislduliwia2lklia6ic, X-ELEMENT-User Name: Type-Content: Application / Json} Alice, application body Type Description Body Object Create Object Object Body Table ID_Base Data chain Existing Database ID Code_pnncipal Chain column name that will uniquely identify the table columns columns with its properties and restrictions Data type chain column data type Allowed values: number, chain, boolean no_ OPTIONAL BOOLANO BOOLEAN ID_Base of data: city_db, id_tabla: details, key_Principal: id ”, columns: {id: {Data type: number, city: {Data type: chain, no_nulus: true, value_fredterminate: new york” veteran_ej army: {data type: Boolean RQRRNN / LZNZ / ε / υιλι Success 200 Type Description Field Object Body Successful Response Result Successful Result IDJABLA TABLE ID chain idjransaction Transaction ID chain RQRRNN / LZNZ / ε / υιλι • Extension-Exit: Http / 1.1 200 ok { Result: Created Table, ID_TABLA: Tab_1, Idjransaction: BC78E5DCEE6F3C820F52BA4F8E06B59452E873EFA7B63B7A54FF71 A80410DE4C Alter table Publish https: / / <element_base_url> / api / 1.0 / tabla / alter Permission: Element ™ user authenticated with access to DDL Header Type Description Authorization Token chain of carrier with authentication X-ELEMENT-CUERTEAN CADE CHAIN ​​REGISTERED IN ELEMENT ™ TYPE-CONTENDO CHAIN ​​APPLICATION / JSON • Example-shaped: Authorization: carrier eyjhbgcioijsuzh nilslnr5cclgo¡aislduliwia2lklia6icj, x-element-username: Cameron, Cameron, Type-concent: application / json General application body RQRRNN / LZNZ / ε / υιλι Type Description Body Object Altering Application Body Object Table Data Base Caden IDJabla IDJABLA TABLE ID OPERATING CHAIN ​​ALTER TABLE OPERATION PERMITTED VALUES: Add, delete, modify, change name columns column column (s) with property (s) based (s) in the operation Example-General Solicitude: ID_Base of data: city_db • Id_tabla: Details Operation: Add, columns: {number_seguro_spcial: {data type: number, no_nulus: true} } Application body - Add column Type description field Object Modify Table - Add Column Object Object Object Body Data Base Caden Predetermined value chain value if a column is not assigned optional Example-Solicitude Add column: DATA ID_Base: D_TABLA FACTORY: EMPLOYEES OPERATION: Add, columns: {Group_anguineo: {Data type: chain, No_nulus: True} } RQRANN / ί7π7 / ε / υιλι Application body - Eliminate column Type description field object modify Table - Eliminate Column of Application Body Object ID_Base Database Chain Database IDS IDJABLA TABLE CHAIN ​​ID OPERATING COLUMN COLUMN PERFERM NAME COLUMN NAME (s) that will be removed RQRRNN / LZNZ / ε / υιλι • Example-Solicitude Delete column ID_Base of data: Id_tabla factory: Employees Operation: Delete, columns: [Surname, email] Application body - modify column Type description field object modify Table - Modify Column of Application Body Data Body Data Caden operation Modify chain Column columns column (s) and its type of data to be configured Name_Columna Object Column Name to Modify Data Type Chain Data Type of Column Allowed Securities: Number, Chain, Boolean RQRANN / ί7π7 / ε / υιλι • Example-Solicitude Modify column: ID_Base of Data: ID_TABLA FACTORY: EMPLOYEES ”OPERATION: MODIFY, COLUMNS: {ID_ZONA: {Data type: number}} Application body - Change column name Type Description Body Object Modify Table - Change Column Name Application Body Column Data ID DATA Base ID Database IDJABLA TABLE ID OPERATION CHANGE CHANGE COLUMN COLUMN NAME COLUMN OBJECT (s) with existing names and new name_Columna_Existo_Existent object column Name to modify Name Name Name Name Column Name • Example-solititude change column name: {Data id_ } Publish https: / / <element_base_url> / ap¡ / 1.0 / drop Header RQRRNN / 1 7π7 / β / υιλι Type Description Authorization Token chain of carrier with authentication X-ELEMENT-CUERTEAN CADE CHAIN ​​REGISTERED IN ELEMENT ™ TYPE-CONTENDO CHAIN ​​APPLICATION / JSON • Example-shaped: Authorization: carrier eyjhbgcioijuziinilnr5cclgoiaislduliwia2lklia6icj, x-element-name user: Beretta, type-connantide: application / json Application body Type description field Object Delete Table of application body application ID_Base data chain ID database IDJABFE EXAMPLE-SOLICITY TABLE ID { ID_TABLA: DATA ID DETAILS: Ciudad_DB} Success 200 RQRRNN / 1 7π7 / β / υιλι Type Description Field Object Object Successful Response Successful Result IDJABLA TABLE IDS IDJRANSACTION CHAIN ​​TRANSATION IDRSACTION • Answer-Exit: Http / 1.1 200 ok { Result: Eliminated Table, ID JABLA: Details, '' D_transaction: BC78E5DCEE6F3C820F52BA4F8E06B59452E873EFA7B63B7A54FF71A80410DE4C}c}c}c Show tables Get https: / / <element_ base_ url> / api / 1.0 / show Permission: Element ™ user authenticated Header Type Description Authorization chain token of bearer with authentication X-Element-Name of user chain registered username in Element ™ RQRANN / ί7π7 / ε / υιλι • Example-winding: { Authorization: bearer eyjhbgcioijsuzh nilslnr5cclgoiaislduliwia2lklia6ic, X-Element-User Name: Beretta, Type-Content: Application / Json} Type Description Body Object Object Successful Answer • Answer-Exit: Http / 1.1 200 ok { CONSTITUTE Type Description Field Object Object Successful response Answer-Exit: Ηττρ / 1.1 200 οκ { CONSTITUTE: {Table: { JD: TB12, _rev: 1-CC501925D30B2DCA4EB282CF429D66E3, columns: {Age: {type_dates: number, value_Predterminate: null, no_nulus: false }. City: {type_dates ”: chain, value_fredtering: null, no_nulus: true }. FIRST NAME ”: {type_dates: chain, value_fredter: null, no_nulus: false }. ID: {t¡po_datos ”: chain, value_noterminated: null, no_nulus: true }. Surname ”: {type_dates: chain, value_fredter: null, no_nulus: true} }. NAT COLUMNS: [ID ”, Surname”, First name, age, city], created_por: admin, created_en: 2019-06-20t19: 08: 07.338370235Z, process_ddl: false, type_doc ”: Table, key_priment: id, idjabla: TB12”, Updated_en ”: 2019-06-20T19: 08: 07.338370235Z,} }. D_Transaction: CB6571F16104E576B7BE953E0FE1E85C9D889E40027A79D8AEE80DCF2B8D85A8 RQRRNN / 1 7π7 / β / υιλι APIS Registration: Insert record Publish https: / / <element_base_url> / ap¡ / 1.o / record / insert Permission: Element ™ user authenticated with access to writing_dml Header Type description field Authorization carrier chain with authentication RQRRNN / LZNZ / ε / υιλι X-Element-Name Chain Name Registered User Name In Element ™ User X-Element-Boolean Word Word Word To Run Transaction With Opplying Follow-up of Operation Status Type-Content Chain Application / Json • Example-shaped: Authorization: Eyjhbgc¡oijsuzl1n¡lslnr5Cclgo¡aislduliwia2lkl A6icj, X-Element-Name of User: Robert Type-concent: application / json Field Body Type Description Body Object Insert Record of Application Body ID Database ID Database ID IDJABLA TABLE ID COL1 CADEL COL2 CHAIN ​​VALUE2 CO! 3 CHAIN ​​VALUE3 RQRRNN / LZNZ / ε / υιλι • Example-Solicitude: {ID_Base of Data: DB22, Id_Tabla: Tab967, Col1: Valol ”, Col2: Value2, Col3: Value3} Success 200 Type Description Field Object Object Successful Result Success Successful Result • Answer-Exit: Http / 1.1 200 ok { Result: inserted record IDJRANSATION: BC78E5DCEE6F 3C820F52BA4F8E06B59452E873EFA7 B63B7A54FF71 A80410DE4C} Update registration Publish https: / / <element_base_url> / ap¡ / 1.0 / record / update Permission: Element ™ user authenticated with access to writing_dml Header RQRANN / ί7π7 / ε / υιλι Type Description Authorization Token chain of carrier with authentication X-Element-Coat User Name User Name Registered in Element ™ X-Element- Boolean Opplica Opplying Word Oppat Keyword To execute transaction with monitoring of operation status. Type-Type Chain Application / Json • Example-shaped: Authorization: Eyjhbgcioijuzhnilnr5CClgoiaislduliwia2lklia6icJ, X-Element-User: User: User: Bob Type-concent: application / json Application body Type description field Object Update Recording Recording Application Object ID_Base Database ID Database ID Example-Solicitude: RQRRNN / LZNZ / ε / υιλι ID_Base of data: db22, id_tabla: tab967, col1: valuel, col2: value2, col3: value3 body Object Successful Response Object Result Chain Successful result Idjransaction Chain Transaction ID Answer-Exit: Http / 1.1 200 ok { Result: Updated Registration, Idjransaction: BC78E5DCEE6F3C820F52BA4F8E06B59452E873EFA7B63B7A54FF71A80410DE4C Delete record Publish https: / / <element_base_url> / api / 1.0 / record / delte Permission: Element ™ user authenticated with access to writing_dml Header 82 Type DESCRIPTION AUTHORIZATION CHAIN ​​TOKEN OF HUNDRED WITH AUTHENTICATION X-ELEMENT-CHAIN ​​NAME Registered User Name in Element ™ USER RQRRNN / LZNZ / ε / υιλι X-ELEMENT-BOOLEANO Key word of OPSTAT to execute transaction with optional monitoring of operation status. Type-Type Chain Application / Json • Example-shaped: { Authorization: bearer eyjhbgcioijsuzh nilslnr5cclgoiaislduliwia2lklia6ic, X-Element-User Name: Alice, Type-Content: Application / Json} DESCRIPTION TYPE DATA DATA BASE DATA IDS IDJABLA CHAIN ​​NAME TABLE NAME REGISTRATION ID • Example-solicitude: {ID_Base of Data: DB1, Id_tabla: "Tab_1, Id_registro: 123} Success 200 Type Description Field Object Object Successful Result Success Successful Result RQRANN / LZNZ / ε / υιλι • Answer-exit: Http / 1.1 200 ok { Result: Deleted Registration ”, Id_ Registration: 123, Idjransaction: BC78E5DCEE6F3C820F52BA4F8E06B59452E873EFA7B63B7A54FF71 A80410DE4C}c}c Select registration Publish https: / / <element_base_url> / api / 1.0 / record / select Permission: Element ™ user authenticated with access to writing_dml Header Type Description Authorization Token chain of carrier with authentication X-ELEMENT-CUERTEAN NAME CHAIN ​​REGISTERED IN ELEMENT TYPE-CONTENDE APPLICATION CHAIN / JSON • Example-shaped: Authorization: Eyjhbgcioijsuzii N¡lslnr5Cclgo Application body Type description field Object Body Select Registration of Application Body ID_Base Data chain of existing database ID allowed: info, system Example-Solicitude: ID_Base of Data: City_db, Idjabla: Details, where: Agent = ’Murphy ', Rama =' Civil ', Limit: 150, Order_por: Desc, Consultation_vel: Info Success 200 RQRRNN / LZNZ / ε / υιλι RQRRNN / LZNZ / ε / υιλι Type description field Body object of response body • Answer-Exit: Ηπρ / 1.1 200 οκ answer BC78E5DCEE6F3C820F52BA4F8E06B59452E873EFA7B63B7A54FF71A80410DE4C MARCAPAGINES: 34KL3R4LK423MRKL, User APIS: Record user Publish https: / / <element_base_url> / api / 1.0 / user / register Permission: Element ™ admin ™ user authenticated with admin access level Header Type Description Authorization Token chain with authorization X-Element-User Nam RQRRNN / LZNZ / ε / υιλι • Example-winding: Authorization: carrier eyjhbgcioijsuzhn ilslnr5cclgoiaislduliwia2lkl¡a6icj, x-element-username: Jim, type-concentrate: application / json Application body Type description field Object Register User of Application Body Object User Name Single User Name Data Id Allowed values: DDL, write_dml, read_dml, admin • Example-solititude: Username: Matthew, Data ID: Client, Access level: DDL Success 200 87 Type DESCRIPTION BODY OBJECT SUCCESSFUL RESPONSE SUCCESS SUCCESSFUL RESULT RESULT CHAIN ​​NAME User name IDJRANSACTION TRANSATION ID CHAIN RQRRNN / LZNZ / ε / υιλι • Extension-Exit: Http / 1.1 200 ok { Result: Registered User, User Name: Matthew, Idjransaction: BC78E5DCEE6F3C820F52BA4F8E06B59452E873EFA7B63B7A54FF71A80410DE4C}c} Revoke user Publish https: / / <element_base_url> / api / 1.0 / user / revoke Permission: Element ™ admin ™ user authenticated with admin access level Header Type Description Authorization Token carrier chain with type-Type-Type-Contens APPLICATION APPLICATION / JSON X-ELEMENT-CURE COLD User Name User Name Registered at ELEMENT ™ • Example-shaped: Authorization: Eyjhbgc Carrier Type-concent: application / json Application body Type description field Object Body Revoke User Application Body Name User Name Κοααωπ / ί7π7 / β / υιλι • Example-solititude: "D_ Data:" DB1, username: Jamie Success 200 Type DESCRIPTION FIELD OBJECT OBJECT SUCCESSFUL RESULT CHAIN ​​SUCCESSFUL RESULT USE User Name User Name TRANSACTION TRANSACTION ID TRANSACT • Answer-Exit result: Revocado user, Username: Jamie, Id_transaction: BC78E5DCEE6F3C820F52BA4F8E06B59452E873EFA7B63B7A54FF71A80410DE4C Delete user Publish https: / / <element_base_url> / api / 1.0 / user / delte Permission: Element ™ admin ™ user authenticated with admin access level Header Type Description Authorization Token carrier chain with type-Type-Type-Contens APPLICATION APPLICATION / JSON X-ELEMENT-CURE COLD User Name User Name Registered at ELEMENT ™ Κοααωπ / ί7π7 / β / υιλι • Example-winding: Authorization: EyjhbgcioijSuzil N¡lslnr5CClgoiaislduliwia2lkl¡a6icj, X-Element-Name User: Tom, Tom, Tom, Tom, Tom, Tom, Tom, Type-Content ”: Application / Json Application body Type description field object revoke user of application body username chain name existing • Example-solicitude: {Username: Jamie} Success 200 Type Description Field Object Object Successful Result Success Successful Result User Name User Name User Name RQRANN / LZNZ / ε / υ Index APIs: Create index Publish https: / / <element_base_uii> / ap¡ / 1.0 / index / create Permission: Element ™ user authenticated with access to writing_dml Header Type Description Authorization Token chain of carrier with authentication X-ELEMENT-CUERTEAN CADE CHAIN ​​REGISTERED IN ELEMENT ™ TYPE-CONTENDO CHAIN ​​APPLICATION / JSON • Example-shaped: Authorization: Eyjhbgcio¡jsuzl1nilnr5Cclgoiaislduliwia2lkl¡a6icj, X-Element-User: Alice: Alice: Alice: Alice, Alice: Alice, Type-concent: application / json Application body RQRRNN / LZNZ / ε / υιλι Type description field Object Body Create Application Body Table Database ID Database ID existing Idjabla chain existing table name SJUndice chain Index name (single identifier) ​​Camposjndex chain Name of the fields to be indexed • Example-Solicitude: {Id_base of data: city_db, idb, details, name jundice: Details City]} Success 200 Type DESCRIPTION BODY OBJECT SUCCESSFUL RESPONSE SUCCESS CADE SUCCESSFUL RESULT NAME JUNDICE CHAIN ​​NAME IDJRANSACTION TRANSACTION ID CHAIN • Answer-Exit: Http / 1.1 200 ok { Result: Created index, JNDE Name: Details Ldciudadlnd, Idjransaction: BC78E5DCEE6F3C820F52BA4F8E06B59452E873EFA7B63B7A54FF71A80410DE4C Delete index Publish https: / / <element_base_url> / API / 1.0 / irdex / delete Permission: Element ™ user authenticated with access to writing_dml Header Κοααωπ / ί7π7 / β / υιλι Type Description Authorization Token chain of carrier with authentication X-ELEMENT-CUERTEAN NAME CHAIN ​​REGISTERED IN ELEMENT TYPE-CONTENDE APPLICATION CHAIN / JSON • Example-shaped: Authorization: Eyjhbgcioijuzil N¡lslnr5Cclgoiaislduliwia2lkl¡a6icj, X-Element-Name User: Alice: Alice, Type-Content: Application / Json Application body Type Description Body Object Create Application Body Object Index DATA DATA BASE CHAIN ​​OF EXISTING Database IDS IDJABLA CHAIN ​​NAME OF EXISTING NAME_INDICE CHAIN ​​INDEX NAME (SINGLE IDENTIFICATOR) Example-Solicitude: Data ID_Base: Ciudad_DB, ID_TABLA: Details, Name_indice: Details Ldciudadlnd Success 200 Type Description Field Object Body Successful Response Set Successful Result Name Jnditage Chain Index Name Idjransaction Chain Transaction ID RQRRNN / LZNZ / ε / υιλι • Extension-Exit: Http / 1.1 200 ok { Result: Deleted Index, Name Jundice: Details Ldciudad Ind, Id_transacc¡ón: BC78E5DCEE6F3C820F52BA4F8E06B59452E873EFA7B63B7A54FF71A80410DE4C}c}c}c}c}c}c Bulk transaction apis: Insert bulk records Publish https: / / <element_base_url> / api / 1.0 / record / bulk / insert Permission: Element ™ user authenticated with access to writing_dml Header Type Description Authorization Token chain of carrier with authentication X-Element-Coat User Name User Name Registered in Element ™ X-Element- Boolean Opplica Opplying Word Oppat Keyword To execute transaction with monitoring of operation status. Type-Type Chain Application / Json Example-Warm: Κοααωπ / ί7π7 / β / υιλι { Authorization: carrier eyjhbgcioijsuzh n¡lslnr5Cclgoia¡slduliwia2lkl¡a6icj, X-User Name: Robert Type-Continuous: Application / Json} Application Body Description Type Body Type Object Registration of insert in bulk Application body ID_Base Data chain Database ID • Example-solicitude: Database ID: DB22, D_tabla: Tab967, records: [ Yo 799021, SAF89EFUEW099J, 78123.912341, Mined, null], [ 235235, WQKNT32IL23KNAFSS, 43534.43523, PENDER, TRUE L [ 764654, PODN4BFJS24O45SA, NULL, MINADO, TRUE], [ 235354, SDGLMD49WTW32R3WQ, 3554.34654, mined, false L [ 533246, 235oijjasfsfio¡, 457.47334, Falled, false RQRRNN / 1 7π7 / β / υιλι Success 200 Type Description Field Object Object Successful Response Successful Result Result idjransaction Transaction ID chain Answer-Exit: Http / 1.1 200 ok { Result: Idjransaction inserted records: BC78E5DCEE6F3C820F52BA4F8E06B59452E873EFA7B63B7A54FF71A80410DE4C}c} Update bulk records Publish https: / / <element_base_url> / api / 1.o / record / bulk / update Permission: Element ™ user authenticated with access to writing_dml Header RQRRNN / LZNZ / ε / υιλι Type Description Authorization chain token of bearer with authentication X-ELEMENT-CHAIN ​​NAME User name registered in Element ™ USER X-ELEMENT-BOOLEANO Key word of OPSTAT to execute transaction with optional monitoring of operation status. Type-Type Chain Application / Json • Example-shaped: Authorization: Eyjhbgcioijsuzh Nilslnr5CClgo Type-concent: application / json Type Description Body Object Registration of Update Registration In Application Purpose ID_Base Data chain Database ID Stro • Example-solicitude: ID_Base ”: DB22, Id_Tabla:, Where: Column2 = '002', Campo_registro: {column3: New_value} RQRRNN / LZNZ / ε / υιλι Success 200 Type Description Field Object Object Successful Result Success Successful Result • Answer-Exit: Http / 1.1 200 ok { Result: Updated records Idjransaction: BC78E5DCEE6F3C820F52BA4F8E06B59452E873EFA7B63B7A54FF71A80410DE4C} Delete bulk records Publish https: / / <element_base_url> / ap¡ / 1.0 / record / bulk / delte Permission: Element ™ user authenticated with access to writing_dml Header 98 Type DESCRIPTION AUTHORIZATION CHAIN ​​TOKEN OF HUNDRED WITH AUTHENTICATION X-ELEMENT-GRADE User Name Registered User Name In ELEMENT ™ X-ELEMENT-BOOLEANO Key word of OPSTAT to execute transaction with optional operating monitoring of operation status. Type-Type Chain Application / Json • Example-shaped: Authorization: EyjhbgcioijSuzil N¡lslnr5Cclgoiaislduliwia2lkl¡a6icj, X-Element-Name User: User: Robert Type-concent: application / json FIELD APPLICATION TYPE DESCRIPTION BODY OBJECT OF DELEBRING A BULF OF APPLICATION OBJECT OF APPLICATION DATA DATA IDS IDJABLA TABLE ID SET IDJABL • Example-solicitude: {ID_Base of Data: DB22, D_TABLA: 'Where: column2 = ό02, η Success 200 RQRANN / LZNZ / ε / υιλι Type description field object Object of Successful Response Success Successful Result • Answer-Exit: Http / 1.1 200 ok { Result ”: Recorded records SQL consultation apis: Execute SQL query Publish https: / / <element_base_url> / ap¡ / 1.0 / query Permit: Element ™ user with an access level based on the consultation between admin, DDL, write_dml and read_dml Header Type description field Authorization Token carrier chain with authentication X-element-name of Chain User name registered at Element ™ USER Type-concent Chain Application / Json Example-Warm: RQRRNN / LZNZ / ε / υιλι 100 { Authorization: carrier eyjhbgcioijsuzh nilslnr5cclgoiaislduliwia2lkl¡a6ic, Χ-electr-name user: admin, Type-Content: Application / JSon Type DESCRIPTION Object Delete Application body - all other consultations Type description field Object Creat • Example-solicitude: Data ID_Base: Organization, Consultation: Delete from reports where state = 'rejected' limit 50 opsat Successful response- Create database consultation Type description field Object object of Successful response idjransaction Transaction ID chain 101 Successful response- Delete database consultation Type Description Body Object Object Successful Response_ Consultation Chain Consultation Result ID_Base Database ID Database ID TRANSACTION TRANSACTION ID TRANSMANCE RQRRNN / LZNZ / ε / υιλι Successful response- Create Table Consultation Type Description Body Object Object Successful Response_ Consultation Chain Consultation Result IDJABLA TABLE CHAIN ​​ID TRANSACTION TRANSACTION TRANSACTION ID Successful response- Modify Table Consultation Type Description Body Object Object Successful Response_ Consultation Chain Consultation Result IDJABLA TABLE CHAIN ​​ID TRANSACTION TRANSACTION TRANSACTION ID Successful response- Delete table consultation 102 Type Description Body Object Object Successful Response_Consulting Chain Consultation Result Idjabla chain Id Id_transaction Transaction ID transaction ID Type description registration description Body object Successful response RQRANN / ί7π7 / ε / υιλι 103 Successful response- Delete registration consultation Type description field Object object Successful response RQRRNN / 1 7π7 / β / υιλι Successful response- Select Registration Consultation Type Description Body Object Object Successful response Successful response- Insert bulk registration consultation 104 Type Description Body Object Object Successful Response_ Consultation Chain Consultation Response Rais_affed Number Registration Number (s) Inserted (s) Id_ Registration ID Draft Registration (s) ID transaction transaction transaction chain of transaction ID Successful response- Show table consultation BODY FIELD_CONSULT IDJRANSACTION TABLES Guy Object Chain Arrangement Chain Description Successful response object Consultation response Table arrangement (s) Transaction ID RQRRNN / LZNZ / ε / υιλι 105 Successful response- Show database consultation Type Description Field Object Object Successful Response RQRRNN / LZNZ / ε / υ Transaction ID chain Successful answer- Describe Table Consultation Type Description Body Object Object Successful Answer_Consulting Chain Consultation Response Tables Arrangement Table Set Answer-Exit: 106 Ηττρ / 1.1 200 οκ { ID_TRANSACCIÓN: C0EEBE811 E3439C2C71849C88FDAF5DF9CA93661 CC85EB 129E95EEC01 E62AC09A, answer G1AAAAABMEJZLYWBGYMPGSMHGKKY5JLCRJTQ2MT8IPZKZJBYRZ5VAWJBIA6OVWFQUMGXMBHHHAVGGRZWLAPWWWFWFWFWFWFWF, REGISTRATIONS: {J32432: {Age: 23, City: Portland, first name ”: Surname: Williams}, M325253: {Age: 45, City: Toronto, First Name: Michael, ID: M325253, Surname: Corleone} }} RQRFTNN / 1 7π7 / β / υιλι 107 Appendix e Element SQL: High level requirements SQL consultation input routes Element 1.0's accomplishments accept element SQL consultations of three sources, as exposed In the following table: SQL entrance route Element console notes 108 The Element 108 console prepares consultations and orders in SQL of Element and has the ability to send them to the ELEMENT 104 API in the HTTP request bodies. Element 102 SDK Once the Element 102 SDK is properly configured, it provides an executing function () (with the exact appropriate form for the SDK language). The function accepts a chain, which is expected to be valid with an SQL statement from Element. Element 102 SDK passes the statement to the Element 104 API to be analyzed and executed. Intelligent contracts The Element System is also specified to allow user intelligent contracts to execute at least one subset of Element SQL queries. This allows a distributed major book identity for access to Element RDBMs characteristics to save data in a structured format without the requirements of the other routes. DML consultations are available to intelligent contracts; Creation of database, update access rights and DDL consultations are also available to the smart contract code. SQL concepts supported in element Implicit in the rest of this specification is the fact that Element implementations support equivalent to a number of common SQL constructs including: Columns Data types Identifiers Null values Ranks (also called records here) Scheme definitions SQL scheme statements SQL statements Tables 108 Data types Data types in element - background Records in the Element system are associated with a specific table. Each cell value belongs to a data type which is dictated by a column defined in its element table. In the SQL of Element, the name of a predefined data type is a reserved keyword. Data types are inspired by existing SQL types; However, the element system is composed of native precision metrics and rank that differ from previous SQL implementations. All predefined element types types are atomic, that is, types of data whose values ​​are not composed of values ​​of other data types. The element system currently supports 3 predefined data types: 1. number The type of data number ”of the Element System supports all types of operating numbers. It is a combination of family SQL data such as the number, whole and decimal types that also support details of decimal values. "Number" is a type of data, as well as a keyword that denotes any numerical value while building SQL queries. The maximum length or precision for number is exactly 16 digits that include the scale or digits of the decimal fraction. INTERVAL: From -999999999999998 to 99999999999999 Consider the following examples to determine the acceptable data type interval number. Insert in customers (idclient) values ​​(-99999999999998) © Insert in customers (idclient) values ​​(17458909.98754397) O Insert in customers (idclient) values ​​(99999999999999) Insert in customers (idclient) values ​​(136778390.9998477866658) 2. Chain The type of chain data for the Element system supports all chain -related values. It is a composition of character chain types of variable length and that resembles the type of data text in SQL. The chain data type is denoted by the keyword "chain" that accepts all chains of a variable length character. The V1.0 element does not support chains of fixed length. The interval defined by the implementation of Element of Data Type Chain does not have a strict established limit, but there is a physical limit that is defined by several factors such as the operating, connectivity and configurations of the distributed major book platform. Element input chain values ​​are encoded by UTF-8. Alternative codifications such as CESU-8 and UTF-8 are not treated as Valido UTF-8. 3. Boolean RQRRNN / LZNZ / ε / υιλι 109 A value of the Boolean data type is any true or false. A truth-unknown value is sometimes represented by null value. If a Boolean column has the value enabled, then void represents a true unknown value. Typographic conventions This documentation consists of text descriptions of a simple variant of the back-naur form (BNF) that includes the following typographic and syntax conventions: Bold description convention The bold typography indicates orders or characters of the user types, the names of user interface elements or more frequently indicates keywords. Keywords are sensitive to the case in some, but not all, operating systems. The words that are not in bold are position markers (prepared below) for which the user replaces a name or value. Fixed width A fixed wide source (Couer New) is used in syntax, code examples, system output and file names. Italics of fixed width The fixed wide italics (calibri) mark non -contextual content. Headers, additional information, etc. They can be represented using this convention. The definition operator is used to provide definitions of the element that appears on the left side of the operator in a production rule. [] The square brackets indicate that the elements within them are optional. {} The keys indicate that the elements within them are required. or angular parentheses refer to the entrance of specific variables such as SQL data and respective values. A vertical bar indicates an option that separates alternatives into square brackets or keys. The suspensive points show that the preceding syntactic element can be repeated. 110 SQL syntax glossary for element Standard SQL keywords Element 1.0 supports a SQL language subset that includes the following standard keywords, plus a few specific Element which will be described later in the specification: RQRANN / LZNZ / ε / υιλι Add everything to alter and any can create predetermined database column delete delete from inserting in within no in non -zero or ordering by primary key change name Select TABLE to UPDATE VALUES WHERE Note: The symbol * is also supported by the element system which denotes all the records / columns of an element table. Null keyword Null is used as a key word, as well as a value. Null differs from other values ​​in the following aspects: The null value can be used to show blank or without value for certain fields using the type of data "void for a registration. As a key word it can be used together with the operator not as validation to verify empty records. Null can be used to establish a default value of a column as void. The null value is not "equal" to any other value, similarly "is not the same" to any other value - it is unknown whether or not it is equal to any other given value. The absence of any significant data value can be represented as null. Identifiers The Element V1.0 supports only English as local language, the support for internationalization (18N) will be available for a future publication. Two types of identifiers are defined in element: Data name_ identifiers coincide with this regular expression: / A(? 111 All identifiers have a maximum length of 50 characters. The identified; It is used in the following contexts: Jabla name :: = Identifier Name_coium :: = Identifier Name_coium_viejo :: = Identifier Name_coium_nuevo :: = Identifier The Element system restricts the identifier to include predetermined and reserved keyword names. Data and values ​​types Element V1.0 supports 3 predefined data types: chain, number and Boolean as discussed at the beginning. type_dates ”= [number | chain | Boolean] Value :: = <valor>(Corresponding to the type of data selected) - Refers to data types in the Element section. Comparison operators Element's SQL comparison operators, as their name suggests, allows the comparison of two values. Equals chains or numbers for relationships such as equality, values ​​greater than or lower than. Comparison operators list: RQRANN / ί7π7 / ε / υιλι Operators Description <(less than) returns true when the opening of the left is less than the operand of the right. > (Greater than) returns true when the opening of the left is greater than the operand on the right. <= (less than or as well as) returns true when the opening of the left is less than or equal to the opening of the right. > = (greater than or equal) returns true when the opening of the left is greater than or equal to the opening of the right. = (the same) returns true when the operands are the same, but the type of operands are the same. <> o! = (not the same) True returns when the operands are not guales. 112 Comparison_perator :: = [<| > | or | ! = | > = | <= | =] Combination expressions The Element SQL supports the evaluation of two or more data or situation selections using conditional keywords generally used with the clause where. The logic together with some comparison operators forms combination operators in the Element system. Supported combination operators are mentioned below. ALL The operator all consults data by comparing a value with a list of values ​​or a set of values ​​returned by a subconsultation. All_Expression :: = name_name <valor> , <valor>, ...}) ANY The any operator compares a value with a list of values ​​or a set of values ​​returned by a subconsultation. any_expression :: = name_name <valor> , <valor>, ...}) IN The operator is used within the clause where to verify if a value coincides with any value in a list of values. en_xpression :: = name_name in ({subconsultation | <valor> , <valor>, ...}) The keywords and, o and are not logical operators of SQL of Element. These keywords are mainly used for union or investment conditions in an SQL statement, specifically in the clause where. The syntax for logical operators also explains with the combination of other SQL orders. Pattern coincidence Element's SQL supports the coincidence of the regx -based chain pattern. The patterns can coincide with the registration values ​​presented in the columns of the table using the operator as. The operator acts as an operator "match" (=) to match chain patterns. There are two commonly used bunns together with the operator as. % - The percentage sign represents zero, one or multiple characters. _ - The low script represents a single character Note: Asterisk (*) and interrogation sign (?) Are also supported. as_cláusula :: = name_name as ‘<puted pattern :: = {<character> | <Crunni>} [<character> | <Crunni>] [<character> | <blume>} ... Commodine: .- {% | _ | $ | * | ?} Subconsultation A subconsultation is a SQL consultation inside, usually embedded in the clause where, 113 A major SQL consultation. The subconsultation can be neat within a statement to select, insert, update or delete or within another subconsultation. It is usually added within the clause where another statement of selecting SQL. Comparison operators, such as>, <, O =, together with combination operators such as, anyone or everything can be used with sub -consuls. A subconsultation is also called internal consultation or internal selection, while the statement containing a subconsultation is also called external consultation or external selection. Rules for the subconsultation The subconsultation is executed before the execution of the main consultation. The result of the subconsultation is processed as an entry of the main consultation. A subconsultation is attached in parentheses, although to insert, the subconsultation is treated as a statement to regulate regular. A subconsultation is placed on the right side of the comparison operator. Subconsultations can manipulate the corresponding results internally, therefore, the clause ordered by cannot be added to a subconsultation. A clause ordered by can be used in the statement of selecting principal that will be the last clause. SQL operators must be used on the basis of rows numbers affected by the subconsultation. If a subconsultation returns a null value to the main consultation, the main consultation will not return any row while certain combination operators are used in a clause where. The element specifies keywords and extensions that may not be used in a subconsultation. Type of subconsultations Single row sub -consulting: returns from zero or a row. Multiple rows subconsultation: one or more rows returns. Multiple columns subconsultation: one or more columns returns. Nestened subconsultations: Subconsultations are placed within another subconsultation. Subconsultation :: = Select {* | <name_name> | <Columna>, <name_name>, ...} Where <name_tabla> Where to look for_condition [LIMIT <valor>] seeking_condition looking_cláusula [{and | O} search_ clause [{y | O} search_cláusula] ...] search_cláusula :: = [No] {comparison_cláusula | combination_cláusula | between_cláusula | as_cláusula} RQRRNN / LZNZ / ε / υιλι 114 Comparison_Cláusula :: = <Name_Columna> Comparison_operator { <valor>| Null} combination_cláusula :: = {all_expression | any_expression | en_xpression} entert_cláusula :: = {( <valor>[No] between <valor> Y <valor>)} DDL orders The data definition language (DDL) is a computer language used to create and modify the structure of database objects in a database. Element SQL database objects include schemes, tables and indexes. The following DDL SQL statements are supported by ELEMENT implementations, using the described syntax. As established in high -level requirements, DDL SQL statements can be supported by invocation by intelligent contracts. Create database Create a new database in the system. DATA DECLARATION_ DATA BASE :: CREATE DATA BASE NAME_Base of data [; ] data_ name :: = identifier Database name that will be created Create table Create a new table in the current database. A table can have multiple columns, with each column definition consisting of a name, data type and optional column definition. Declaration_Carjabla :: = Create ajabla name ({definition_columna}, ...) [; ] define_columna :: = name_name <type_datos> [predetermined | Null | No null | Primary key] [; ] Ajabla name :: = identifier Table name that will be created name_name :: = identifier Column name Alter table Modify the properties, columns or restrictions for an existing table. Note: Element's SQL grammar to alter table does not support more than one operation at the same time. In this syntax, the key action action shows all the variations supported by ELEMENT to alter the table consultation available for the user. RQRRNN / LZNZ / ε / υιλι 115 Declaration_Alterar_tabla :: = Alter TABLE NAME_TABLA {ACTION} ACTION :: = { Add Name_Columna <type_datos> [predetermined] <valor>| Remove name_columna | Alter name_Columna type_datos> (only applicable when the table has no records) | Change column name Name_columa_viejo in the name_columa_nuevo name Jabla :: = Identifier Name of the table to alter name_columna :: = Identifier Name of the column to rename name_columa_viejo :: = Identifier Name of the spine to modify name_columa_nuevo: Remove table Eliminate a current database table. Declare_elim¡nar_tabla :: = Delete Table Jabba [; ] Ajabla name :: = Identifier Name of the table that will be deleted deleted database Eliminate a database of the Element system. *Note: the data in the database is cleaned, however, the database is not completely deleted from the network. The name of the database, even after using the delete database operation, is unique and cannot be reused. Declaration_ Data :: = Delete Database Data Name_base [; ] Data name :: = Identifier Name of the database to be deleted show tables List the tables for which the user has access privileges. The order can be used to list tables for the current / specified database. The exit returns a list of tables, you order lexicographically by name of the table. RQRRNN / LZNZ / ε / υιλι 116 Declaration_Srajablas :: = Show tables [; ] Show databases List the databases for which the user has access privileges throughout the account, including the deleted databases that will be visible on the distributed major book platform. The exit returns a list of databases, you order lexicographically by name of the database. Declaration_ Data Data :: = Show databases [; ] Describe table Describe the current columns or values ​​in a table. The describe consultation returns all the details and target data in the selected table. Declaration JFest Writing :: = [Describe] [Table] Name_tabla [; ]_table name :: = identifier Name of the table for which the description will be returned DML (writing) orders The data manipulation language (DML) is a computer programming language used to add (insert), delete and modify (update) data in a database. A DML is often a sublanguage of a broader database language such as SQL, with the DML understanding some of the operators in the language, as is the case here. The following are SQL DML writing orders, which can alter the current status of the data and are supported by ELEMENT realizations. Insert record Update a table by inserting one or more rows in the table. The values ​​inserted in each column in the table can be explicitly specified. Insert_Declaration :: = Insert in name Jabla [name_name ,_name_name, ...] [Select_Declaration | Subconsultation] VALUES {Predetermined | Null | <valor> , <valor>, ...} [OPSTAT] [; ] Ajabla name :: = identifier Table name where the data_columna data will be added ;; = identifier Column name where the data will be added Note: The values ​​to insert are mandatory in at least one field (primary key field) will have a defined value. The rest of the values, if left without filling will be considered void by the system RQRRNN / LZNZ / ε / υιλι 118 [Consultation level {Info | System}] | [Mariapaginas <valor>] [; ] Ajabla name :: = identifier Name of the table of which the data_coium :: = identifier is read Name of the column from which the data is recovered or by which the results are ordered Note: The operation ordered by can be carried out in indexed columns Element extensions for SQL Element 1.0 realizations also support the following keywords as extensions for SQL. 1. Oppat OPSTAT is the request to monitor the indication that an operation has been incorporated into the main book. When OPSTAT is added at the end of a SQL DML writing consultation invoked from the console or SDK, who calls will receive one of three answers at the end of the configured pause. The 3 possible answers are: I. Success: Successful responses mean that the SQL operation was successfully updated and the data has been incorporated into the main book distributed to a relevant measure for the platform. II. Failure: The fault status represents that the SQL order was not successfully executed and the data was never updated in the main book. III. Pause: When the SQL order exceeds the configured pause period, users are returned to a pause response. There is currently no confirmation that the result of the FUSE consultation incorporated in the biggest book. OPSTAT is also assumed for all DDL operations, whether it is added to the consultation or not. For consultations, carry out directly from intelligent contracts, the OPSTAT is ignored if included and instead a regular consultation response is returned. This is because the element operation is a step within a larger transaction (the invocation of the smart contract) and for this reason, the success or failure of the operation is not defined, except as a part of the successful execution of the entire transaction of the smart contract. Syntax rules for Oppat: OPSTAT is used at the end of a valid consultation, this means that operations or clauses cannot appear after the keyword Oppat. The keyword Oppat is used with operations to select, update, insert and delete only. Examples: Insert in Tablajnrak'abc '.' Def ', 123, false)] Oppat Delete task where state = 'rejected' limit 50 opsat 2. Limit The limit keyword is similar to the traditional SQL limit operation along with some rules RQRRNN / LZNZ / ε / υιλι 119 Specific element. Limit restricts the maximum number of rows returned by a query. Syntax rules for limit: Limit is used with the operations of selecting, updating and deleting Limit is used before the keyword of OPSTAT for updating and erase consultations. In the selection query, limit is used before the key marks or level_consultation. Examples: Select Id_Contact, last_name, first contact of contacts where city = 'you final Task deletion where state = 'rejected' limit 50 opsat 3.Consultation level The characteristic conmult level provides metadata information about the selected records. The user receives the information in the consultation response after executing the order order with the selection consultation. There are two levels of information for this functionality: 1. Info: This is the level of predetermined information established by Element. At this level the user is provided with column names and their respective values. 2. System: The SYS or the system consulse of the system provides detailed information about the selected records. Detailed metadata include fields such as: to. Creation date b. last modification date c. created by d. Unique IDS: Registration ID, Table ID and. version details Syntax rules for conmust level: Consultation level is used for reading operations, that is, only with the selection consultation. It is used before the limit keyword and placed at the end of the query. The container level position can be exchanged with the keyword marks. Examples: Select * data where city = 'the' limit 70 marks Select Data ID where city = 'Newark' Diapáginas of the level system Erttnkel63ZE9FS02VFE 4. Mariapaginas RQRRNN / 1 7π7 / β / υιλι 120 Marcapaginas consultation is used for element table data pagination. The page size for a table is set using the limit keyword together with marks. By default, all pages have a unique designated marker to which the user can have access using the marking consultation. The consultation returns an object containing the mariapaginas and the response of the consultation. Using the marking obtained, the user can see / have access to the data on the next page. Syntax rules for marks: The key marking word is used with the selection consultation only. Mariapaginas is used at the end of the query; Consequently, it is used after the limit keyword. The marking position can be exchanged with the keyword level. Examples: Select * data where id = 'j3' limit 70 marks NW1E83GE6DS43UIA Select * data where city = 'the' limit 70 marks Http / 1.1 200 ok { ID_TRANSACTION: C0EBE811 E3439C2C71849C88FDAF5DF9CA93661 CC85EB 129E95EEC01 E62AC09A, ANSWER_CONSULT: {MARCAPÁGINAS: G1AAAABME3ZLYWBGYMPGSMHGKY5JLCRJTQ2MT8IPZKZJBYRZ5VAWJBIA6OVWFQUMGXMBHHHAVGGRZWLAPWWWW FW, REGISTRATION: {J32432: [AGE: 23, CITY: PORTLAND, FIRST NAME: J3 Williams }. M325253: {Age: 45, City: Toronto, First Name: Michael, ID: J3, Surname: Corleone RQRRNN / 1 7π7 / β / υιλι 121}} Consultation response with marks 5. Mass insertion records Element supports multiple record inserts to element tables using the characteristic mass insertion. The mass insertion operation works very similar to delete and update consultations where multiple rows are affected / modified. Consequently, the field "number of affected rows" (more details in the Element API specification - Appendix D) In ​​subsequent consultation responses for these operations it can be any "N" number. Although Element's specific limit for optimal operation has been established. On the contrary, the order to insert only deals with a single row so that the value of "number of affected rows" in the insert consultation response is set at 1. Example: Mass insertion in eventlogs [(799021, SAF89EFUEW099J, 78123.912341, MINADO, NULL), (235235, WQKNT32IL23KNAFSS, 43534.43523, pending, true), (764654, Podn4b^s24O45S SDGLMD49WTW32R3WQ, 3554.34654, MINADO, FALSE), (533246, 235OIJASFSSANFIO¡, 457.47334, FALLA, FALLA)]] Http / 1.1 200 ok { CONSTITUTE_CONSULT: {Rales_Affected: 3, Id_registros: [ Cardinal, Jones, Edward { ID_Transaction: CB6571F16104E576B7BE953E0FELE85C9D889E40027A79D8AEE80DCF2B8D85A8 RQRRNN / 1 7π7 / β / υιλι Mass insertion consultation response 122 Appendix f Node.js® SDK SDK Documentation of Element Introduction The specific SDK of Element's language is a tool which allows developers to interact with the Element ™ system directly from their application code. This document details the version of the SDK that has been developed for use with node.js® applications. The SDK node.js® (called "SDK_Elementj is very simple, comprising a builder that configures this for use by a specific user and the element database and a function that accepts the SQL statement parameter. Database operations by themselves are invoked using the syntax of the SQL parameter for details, see the Appendix E. Reuse in chain code_element In the realization of Fabric, the Node.JS® is also an accepted language to extend the distributed major book platform (through the "system chain code"). Due to this, there was the opportunity to reuse work on the SDK_ELEMENT of Node.js® in the Chain Code_Ele Def deployed on the Fabric Platform. As a result, the SDK_element has become two similar packages. The first is used as the SDK as it lustra in Element's specifications. The second version of the package was deployed as part of the Chain_Element code component that adds element features to manufacturer nodes. This makes available the function of executing consultation () for intelligent contracts of "user chain code", allowing its use of SQL when required by the Element specification. RQRANN / LZNZ / ε / υιλι Node.js® SDK of Element Constructor The builder can accept the configuration as an object (JSON) or chain arguments (Basurl, Database, Username, [Authtoken]). Configure as an object {Baseurl: Baseurl, Database: "Name of the database", username: "Username", Authtoken: "Token" (optional field)} Arguments of Cadena Baseurl: Chain <base url> Database: Database cname chain> Username: User Name> Authtoken: Chain <token>(optional fields) This is used to create instances of the clientelement. 123 Name of the entry parameter method Logical sequence Executing Consultation: Chain The Consultation is a Valid Element SQL statement, (for details, refer to the Element ™ 1.0 SQL specification of Element ™) Successful answer: {State: http status code, load: response object} Invoca / API consultation of the Console Erroneous answer: {State: http Status code, error: Error object} Error object list: {'msg1:' URL base non -valid1, 'code': 'url_base_noválid User chain code SDK RQRRNN / 1 7π7 / β / υιλι 124 Name of the Entrance Parameter Method Answer Logical Sequence 5 10 Executing Consultation: Chain The Consultation is a Valid Element SQL statement, (for details, refer to the Element ™ 1.0 -Sql specification of element ™) {response Chain_ement with the consultation provided. RQRANN / ί7π7 / ε / υιλι 125 Appendix g Fabric Service Layer Interface Specification Introduction The FABRIC service performs the abstraction component of the specific service layer of the platform in the 5 Element 1.0 specification and implements the service layer interface which acts as an intermediary for the interaction between the API layer and the distributed major book platform. It serves to help perform operations related to RDBMS. This Appendix details Fabric Service and its function forms (excluding a few specific FABRIC functions such as massive update) can be taken as the specification for the service layer interface. Prerequisite The following prerequisites are required to display Fabric Service with the Element ™ console: Node 8.x must be installed. Fabric must be configured properly. Service and methods RQRRNN / LZNZ / ε / υιλι 126 Method Name Entry parameter Response Logical sequence Database Creating data User name: chain, data idbase: chain {Result: Created database, database of data: data idbas Data deleted, Data ID: Data idbase, Idjransaction: Idtransaction} Invoke invocation () of manufacturing service flame delete () Table service method. TABLE SERVICE CREATABLA User name: chain, objtabla: json Example: Objtabla {Result: Table created, idjabla: idtabla, idjransaction: idtransaction} Invoke invocation () of manufacture service RQRRNN / LZNZ / ε / υιλι 127 Data ID_Base: Dbprueba, Id_Tabla: Tablar, Key_Primar: Id, columns: {Id: {Data type: number, city: {Data type: chain, non -_nulus: true, value_Predterminate: New York is active: {Data type: Boolean ,_Prade_Predterminate: True}. 1} Remove username: chain, objtabla: Json Example: Objtabla {{Result: Eliminated table, idjabla: idtabla, idjransaction: idtransaction} invokes invocation invocation () of manufacture service called invocation recursive () Κοβαπω / ί7Ω7 / ε / υιλι 128 Data id_base: dbprueba, id_tabla: box Altered, idjabla: idtabla, idjransaction: idtransaction} invokes invocation () of manufacture service called invocation recursive () to update the altered table records registration service inserting registration username: chain, objregistration: JSON, OPSTA: BOOLEAN IDJRAnsaction: Idtransaction} invokes invocation () Fabric Service Κοβαπω / ί7Ω7 / β / υιλι 129 ID_Base of Data: DB22, Idjabla: Tab967, Col1: Valol, Col2: Valo2, Col3: Value3} Update registration User Name: Chain, Objistration: JSON, OPSTAT: Boolean Exam Updated, Id_ Registration: Idregistro, Idjransaction: Idtransaction} Invoke invocation () of manufacturer service Delete username: chain, objregistro: JSON, OPSTAT: BOOLEANO {Result: Display record, ID_REGISTRY: IDGREGIST, IDJRANSACTION: IDRANSACTION} invoke invocation () of manufacturing service () RQRANN / ί7π7 / ε / υιλι 130 Example: Objistro {ID_Base of Data: DB1, IDJABLA: TABJ, ID_REGISTRY: 123 Mass Service Inserta Registromas 0 Username: Chain, Objistration: JSON, OPSTAT: BOOLEANO {Result: inserted records, idjransaction: Idtransaction I invoke invocation invocation () Fabric Service Example: Objregistration {Id_base of data: DB22, IDJABLA: TAB967, REGISTERS: [R L 799021, SAF89EFUEW099J, RQRRNN / LZNZ / ε / υιλι 131 78123.912341, mined, null], [235235, WQKNT32H23KNAFS S, 43534.43523, PENDING, TRUE]} UPDATE REGISTROM SIVO username: chain, objregistro: JSON, OPSTAT: BOOLEANO EXAMPLE: OBJRED '002', {Result: updated records, idjransaction: idtransaction} invokes invocation () manufacturing service RQRANN / LZNZ / ε / υιλι 132 Campo_registro: {column3: New_value ί} Deletion User name: chain, objregistro: Json, Oppat: Boolean {Result: Deleted records, idjransaction: Idtransaction} invokes invocation () of manufacture service Example: Objregistro r í id_base of data: db22, idjabla, where: '002', Campo_ Registration: {column3: New_value}}} Select service RQRANN / LZNZ / ε / υιλι 133 Select Registration User Name: Chain, Objistration: Json Example: Objregistro {Id_base of data: city_db, idjabla: details, where: agent = 'murphy', branch = 'civil', limit: 150, order_por: desc, level_consultation: info} {response Mariapáginascadena} Invouches invocation () of manufacture service consultation service User name: chain, objregistro: Json Example: objregistro {idjransaction: idtransaction, answer RQRRNN / LZNZ / ε / υιλι 134 {Consultation: <SQL consultation>} User Service User Name: Chain, objregistro: Json Example: Objregistro {User name: Matthew, Data Id User: Chain, Objistro: JSON Example: Objregistro {Result: Revocado user, user: user, idjransaction: Responestatransaction} invokes update the way of manufacturing () of manufacture service invokes invocation () manufacturing service () RQRANN / ί7π7 / ε / υιλι 135 {Data Id_Base: DB1, User Name: Jamie} RQRRNN / 1 7π7 / β / υιλι Fabric Service Those services are the specific services of the Distributed Major Book Platform. Below are the services and their methods: Name of the input parameter method Uses Logical sequence Fabric Service Constructor Confector: Object Configure object keys: confclient.catlScacerts - (optional) Certificate of CA (Read. RUTACARTERA - Place to store User Credentials. 136 Configcliente.namesporg - MSP Name of the Confect Organization. coupling) creates an instance of manufacture service that has those previous configuration parameters. OBTAINTICE OFM Provides the admin service instance according to the configuration provided obtain RQRRNN / LZNZ / ε / υιλι 137 Obtaining the user provides the user service instance according to the configuration provided by CreyAniranal Channel Service Username: Chain, Name: Chain, Pares: Chain arrangement, configigefacto: JSON, CreaPausacanalmúmero, unite knee KNO KEY CREATES CHANNEL AND UNE THE PARTY TO THESE. Create Fabric Puerta instance. The existence of the channel is verified specific artifacts of the channel. Channel is created and joins all the specified objective pairs. User service username username: chain, paper: chain, [attributes]: Object arrangement records the user in the Distributed Book of Fabric and generates identity artifacts. Obtains admin identity context. Κοβαπω / ί7Ω7 / ε / υιλι 138 Register user with specific user properties, in the event that the attributes are provided to the user is registered with the attributes. User's identity artifacts are generated and identity created. The user's specific artifacts are imported to the Fabric portfolio. Borrarusuario Username: Cadena Delete the specific artifacts of the manufacturer's wallet deletes the identity artifacts of the wallet. Update username username: chain, attributes: Object Arrangement Update the specific user manufacture attributes. It obtains the user's identity context and adds the attributes provided or updates the attributes in the event that they are already present. Transaction Service 139 Invocransaction Username: Chain, Name: Chain, Chain Name: Chain, Death Name: Chain, Argsfunction: Setting chain, Ehhabilitated: Boolean is used to invoke the chain code functions to perform the operation requested with the specified arguments. These invocation results are a transaction on the main book. Create Fabric Puerta instances. The existence of the channel is verified. Create and present the transaction in the Distributed Book of Fabric. ADMIN SERVICE. Registration is used to register manufacture admin and imports its identity artifacts to the fabric portfolio. The configuration related to C. The registration function of CA is invoked, which results in the registration of the admin. RQRANN / LZNZ / ε / υιλι 140 Appendix η Element ™ Analyzer Introduction The Element analyzer is an Element ™ component which deals with a consultation chain as follows: • Verify the query by valid syntax • Return an abstract syntax analyz of Element ™ The analyzer is implemented at the top of "PG-Annative-Native" that uses a Library C that uses the current Postgreql server source to analyze SQL inquiries and return the internal postgreql analysis tree. The analyzer provides a convenient way of dealing with relational data by analyzing SQL consultations in an object that can be recorded in the main book distributed by Element as data from the native distributed major book. The element capacity to analyze SQL allows developers to manipulate relational data in the distributed main book using the syntax that is already commonly understood. Element ™ Analyzer: High level requirements They need to satisfy the following requirements to ensure the successful consumption of the analyzer in the manufacturing element realization: • The Element System Chain Code must be up and operating • The Element console needs to be deployed • The analyzer must be installed as a Node.JS® module on the Element console • It must also be present in all manufacture pairs where the system chain code is installed. This ensures that the system chain code will be able to access the analyzer locally. Segregation of the analyzer functionality The element analyzer is implemented as a single unified component. However, the functionality of the analyzer is divided into 2 parts based on the proportion of the Element specification that is satisfied. Specifically, DDL and DML components. The DDL analysis of user consultations / inputs is carried out within the Element console, of which the DDL analyzer is a component. The console, with the help of the DDL analyzer, handles all requests for modification of database structure. It is not possible to make available the ddl functions in its entirety within the manufacture network itself without extensive modification, so that these functions are not accessible in the manufacturing realization. RQRRNN / LZNZ / ε / υιλι 141 DML analysis of entry consultations within the Distributed Book Platform with ASTRUGED ELEMENT features is required. For this realization of Nodejs / Fabric, the DML analyzer works from the ELEMENT system chain code and thus is accessible to intelligent contracts (user chain code). Type of entry The element analyzer takes the consultation inputs in the chain format and is invoked using a function present in the analyzer called "Analyze Consultation". The consultations follow the consultation specification for Postgre SQL. The specifications can be found in detail in the Element ™ 1.0 Element SQL ™ document. The consultations are presented with specific keywords of ELEMENT added, which provides better data management. Element ™ analyzer composition The analyzer is constituted of 4 categories of functions which are classified along the same lines as user access levels. The following table summarizes those functions: RQRRNN / LZNZ / ε / υιλι CLASSIFICATION OF THE CONSULTATION FUNCTION Return (JSON OBJECT) Exam • Function Name • Function Type: Data Show, TypeFunction: Sys} Table (DDL) Create Table • Table ID • Primary key • An object of columns with restrictions • An arrangement of column name 142 • Function • Name of the type of surname: {typodatos: chain, nonulum: true ί first name: {typodatos: chain, nonulum: false age: {typodatos: number, nonululo: false ί city: {typodatos: boolean Function: Create Table, Typofunfunc¡ón: DDL} Modify Table • Table ID {ldtabla: people, RQRRNN / LZNZ / ε / υιλι 143 • Operation: Add, modify, eliminate and change name • An arrangement or object (‘arrangement’ in the case of the operation of eliminating and object ’in other cases) of columns based on the operation, which also contain the restrictions • Name of the function • Type of function operation: add, columns: {ssn: {typodatos: chain, nonulo: true}, function: alteartabla, TABLE • FUNCTION NAME • FUNCTION TYPE {IDTABLA: EMPLOYEES, FUNCTION: REMOVE TABL, TYPEFUNCTION: DDL} Show tables • Function name • Function type {function: Show tabs, type type: Sys} Describe Table • Table ID • Function Name • Function Type {Idtabla: Employees, Function: Dectabla, Typofunction: Sys} 144 Registration (writing_dml) Insert Registration • Table ID • A registration field with a column name such as the key and column value such as the value or an arrangement of securities in the case that columns names are not specified • Name of the function • Function type • Limit that decides the number of records that will be affected • Opplast {ldtabla: clients, registrarcampo: {nomination: Name: Jane doe, Directorate: 1 Example RD, City: Stavanger, COD From the ‘CLAUSE Where’ that decides the target fields that will be updated • Name of the function {ldtabla: clients, registrarcampo: {zonehoraria: gmt-4}, consultation: {selector: {field_registro: {city: {$ eq: toronto}}, type_doc: record, id_ RQRRNN / LZNZ / ε / υιλι 145 • Type of function • Limit that decides the number of records that will be affected • OPSTAT Limit: 500}, Function: Update region, TypeFunction: DML, Limit: 500, Oppat: False} Delete record • Table ID • An object of consultation analyzed of the ‘clause of where’ that decides the objective fields that will be deleted • Name of the function • Type of function • Limit that decides the number of records {ldtabla: clients, query: {selector: {field_registration: {city: {$ eq: Atlanta}}, type_doc: registration, id_tabla: boundary clients: 500} · Function: Deletion, TypeFunction: DML, Limit: 500, OPSTA: TRUE} Mass insertion • Table ID • An arrangement of record arrangements { ldtabla: some_table, records] Κοβαπω / ί7Ω7 / β / υιλι 146 • Name of the function • Type of function • Limit that decides the number of records that will be affected customer, 52, +1 123 456 7890, false client, 35, +1 987 654 3210, null commercial partner, 29, +1 123 451 2345, false function: lonserction! • An object of consultation analyzed by the ‘clause from where’ that decides the objective fields that will be selected • Name of the function {ldtabla: clients, consultation: {selector: {field_registro: {city: {$ eq: Atlanta RQRRNN / LZNZ / ε / υιλι 147 • Type of function • Limit that decides the number of records that will be affected}}, type_doc: registration, ID_TABLA: Limit clients: 500 Function: Consulting selection, type of fun: DML, Limit: 50} RQRRNN / 1 7π7 / β / υιλι Analysis in the Element ™ system chain code Element ™ system chain code analysis involves the following steps: 1. The analyzer is consumed by the "execute consultation" function present in the system chain code. The system chain code. After the function is invoked with a DML query, the analyzer analyzes the consultation in an AST object. 2. The object is validated according to the commercial rules of the DML operations of the Element ™. Non -valid objects result in an error. 3. The validated AST object then transforms into an object which contains keys which are specific to the functions present in the Element ™ system chain code on the basis of the operation that the consultation is pretending. 4. This allows the Element ™ system chain code to additionally process the input data and handle all DML operations. Analysis in the Element ™ console The analysis on the Element ™ console follows the following process: 1. The "Execute Consultation" function present in the Element ™ console when invoked makes the analyzer use to analyze input queries. 2. Once the analyzer validates according to the commercial rules of the DDL and DML operations of Element ™, an object returns to the console which contains keys which are specific to the functions present in the console itself. 3. The console then processes the consultation on the basis of the consultation function. If it is DDL, then the functions of the console are invoked, and in the case of DML, the system chain code is invoked. Error management 148 The analyzer avoids unnecessary invocations of the Element ™ function validating the input query alone. The data that are not supported by commercial rules of Element ™ result in an error. The error contains an error message and relevant error code for the invalidated rule. This provides ease of consulting the consultation and the way in which the system handles customer errors as well. Errors in the analyzer-element: RQRRNN / 1 7π7 / β / υιλι ERROR OBJECT OF ERROR POSSIBLE REASONS I DBASEDATOSOVALIDO {Message: Non -valid database LD, Personal Code! Message: Non -valid table LD, Personal Code! Ovalid, stated code: 412 • The column name does not comply with the regex validation (remit on the Element ™ 1.0ement SQL ™ specification for more details) 149 KEYNOVALID {Message: Consultation_noválida, Personalized Code: Consultation_Note Stat code: 400} • The consultation does not follow the specifications and standards mentioned in the Element Specification ™ 1.0Document of the Element SQL ™ ClavePrincipalausent Main is not specified in the Creted Table Consultation Consultation {Message: Consultation Not supported, Personalized Code: Consultation_nosopor tada, Codestate: 422 • In the event that the consultation is valid but the Element ™ analyzer does not support the characteristics erroralizer {Message: ERM ERROR OF THE ELEMENT ANALY. Issued when the analyzer finds an internal error • Exceptions not handled RQRANN / LZNZ / ε / υιλι 150 References [1] https: / / www.npmjs.com / package / pg-query-native [2] https: / / github.com / lfittl / libpg_query RQRANN / LZNZ / ε / υιλι 151 APPENDIX! Introduction The Element chain code is the fundamental component of Element ™ to carry out all operations related to Databases in Fabric. User inputs in the form of consultations are processed in the distributed older book using the element chain code. The Element chain code has its dependence on an identity provider and a world -state database to achieve certain functionalities. The Element chain code is implemented as a system chain code and is executed as part of the torque process. Unlike the user chain code, a system chain code is not installed and an instance is created using SDKs or CLI proposals, instead of being registered and implemented by the torque at the start. This capacity is not enabled by default, instead requires that the torque build it separately. System chain codes can be linked to a pair statically or dynamically using Go accessories. However, a better approach is to load the system chain code as a complement to avoid the scenario where reconstruction is necessary when a change is made. The torque needs to be built only once to allow the loading of accessories. Each operation in the chain code is processed as a transaction, although some operations need to be processed as a set of transactions. The chain code processes an operation as a single transaction and a setback mechanism is used to simulate transactions in case they are processed in lots. Each operation in the chain code follows a similar flow, although its implementation may differ. As a main step, a general verification on the entry is made, in the case of any discrepancy the application is returned and its effect will not be exhibited in the main book. Second, the application is only sent only if the invoked entity has appropriate access to the process of that operation (managed by the identity provider). Access to each invoking entity is verified using their certificates. At the time of the registration, the appropriate attributes belonging to that database to your certificate are added. In each subsequent application, a verification is made. Only if the entity has privileges of access to that operation, the related application is processed and the entity will be granted permission to carry out that operation. In general terms, chain code operations can be classified as data definition language (DDL) and data manipulation language (DML). The chain code limits the access of DDL operations through another chain code since DDL operations are not analyzed in the chain code. Thus, at the beginning of each application, the Element System uses the transaction proposal to verify if the chain code is directly called. If the transaction comes from another source, access to any chain code (DDL) operation is prevented. For DML operations, consultations as entry can be sent directly. Each consultation is then sent to the analyzer and the corresponding operation is called the analysis of the analyzer. Additional detailed information about the implementation of each chain code aspect is provided in the sections RQRRNN / 1 7π7 / β / υιλι 152 below. Prerequisite The following previous requirements are mandatory for the registration and implementation of the Element chain code: • The Fabric Network must be working. • The pair needs to be built using the construction label called enabled accessories ”. Implementation Unlike a user chain code, a system chain code is not installed and an instance is created using SDKs or CLI proposals. It is recorded and implemented by the torque. This capacity is not enabled by default and instead, it requires that the pair build it using a construction label called "enabled accessories. System chain code can be linked to a couple of two ways: 1. Statically - for statically, build its chain code as part of the torque process, the approach would be to make the chain code implement the "SelfDesscribsSSCC" interface [1] and record an instance of this in the start file of the torque [2], after which the torque needs to be built using this modified code. 2. Dynamically - It is better to load the system chain code as a complement. In this way there is no need to rebuild the torque every time a change is made to the chain code. The pair needs to be built once to allow accessories. to. Implementation steps - Yo. Write an current chain code ¡i. Collect this ongoing complement using the modoconstruct indicator = build complement to produce a shared object library file (.SO). IRA Build - Modoconstruct = Complement -o <archivo-salida>.SO <¡R-Complement> .go III. Build your pair to allow the load of Go (IR) accessories: LINK_DINAMICO_VENTANA ACOPLAABLE = TERUEROLR_ETIQUETAS+= COMPLEMENT Habilitated to make par-ventana coupable Note - Remember to build the complement in the same IR version of the IR version of the Fabric version. IV. Start the network using the formed coupling window image. v. Copy the files of the complement and the .SO of the coupling window pair. VI. Add the system chain code and its information configuration file information (Core.yaml). VII. Restart the pair. References 1. https: / / github.com / hyperledger / Fabric / Blob / release-1,3 / core / Scc / Sysccapi.go#l78 2. https: / / github.eom / hyperledger / Fabric / Blob / release-1.3 / peer / node / start.go#l549 RQRRNN / LZNZ / ε / υιλι 153 Lniciar methods () Start is called during the chain code record. This method is used to load global configuration and initialization variables, which are used in all other methods. NEW This method must be present in each dynamically linked system chain code, since this method returns an implementation of the chain code interface. The chain code interface encapsulates all methods and sends them to be executed as part of the torque process. Invocarf) This method is used to carry out transactions in the chain code. This acts as a single contact point between the API of the chain code and the manufacture torque. The invoked entity calls the invocation method to process any other chain code method. After verifying if the invoking entity has appropriate access and tickets are correctly formulated as a Json campoadena. The request is retransmitted to the corresponding method that the invoker is trying to call. Createdatosq This method is called at the beginning of the creation of the database. The application is processed generating appropriate metadata for that specific database. These metadata are consumed by all other chain code methods. Delete metabasedatos () This method is called to start the elimination of a database, which is processed as a batch operation by the user. This method marks the beginning of the process and returns a list of all the tables present in that database. After which, they are made specific calls to erase metadata from the tables and all their records. Eliminating based -editing This method acts as a termination call for the deletion of a database after all the applications in the lot have been processed successfully. Registrarusuarioo This method is used to add new users to the database and this follows the addition of attributes to the certificate. Only users with administrator privileges are allowed to add other users, so that after the verification of the appropriate access of the invoking entity, the user identity provided in the consultation to the metadata of the database is added. Deleterusuaríoq This method is used to delete a user from the database and this follows the elimination of certificate attributes. Only users with administrator privileges are allowed to delete other users, after RQRRNN / LZNZ / ε / υιλι 154 Verify the appropriate access of the invoking entity. The user given in the application is deleted from the database metadata. Create Tablaq This method is used to create and add a new table to the existing database. First, a verification is made to verify if the current database is not in an inactive state. After which, the Element system verifies if there is already a table in the database. Together with these verifications, if the input data are consistent, then the table metadata is formed and added to the main book. The table information is also added to the database metadata. The metadata in the table are used to verify all the operations carried out on the table. Delete metatablao This method is called to start the elimination of a table, which is processed as a batch operation by the user. This method marks the beginning of the process and establishes the DDL indicator to restrict other operations on the table. Elimargistrostabla () This method is used to eliminate records from that table. This executes the recursively elimination operation on the specified table records. The elimination is carried out on a lot of records, although the size of the lot is configurable. This is done to avoid exceeding the time limit by a transaction. Eliminate conmispaciola This method acts as a completion call for the elimination of a table after all requests in the lot are successfully processed. The invoking entity is called to mark the conclusion of this process. All intermediary transactions IDs are stored in the biggest book so that the user can return a single transaction ID. After which, the metadata for that table are eliminated and the table name could be reused to create a new table in future operations. Altermetatablaq This method is called to start the modification of the structure of the table. It is processed as a lot operation. This method marks the beginning of the process and establishes the DDL indicator to restrict other operations in that table. Using the inputs given in the application elements system, an update template is formulated to be used to update all records of that table. That update template is returned in the answer. Alterargistrostabla () This method is used to modify records for that table. This modifies all records that are present in the table. The alteration is carried out in a lot of records, although the size of the lot is configurable. This is done to avoid exceeding the time limit for a transaction. Alterarconsignaciontaba () This method acts as a termination call for the modification of the table after all requests in the lot are successfully processed. The invoking entity makes a call to mark the RQRRNN / 1 7π7 / β / υιλι 155 termination of this process. All intermediate transactions IDs are stored in the main book so that the user can return a single transaction IDs. After which a request could be made on that table again. LNSERTREGISTRAL () This method is used to add a record to the table. Each registration added to the table must comply with the established rules when the table is created. In this way, each application, first is verified if column values ​​can be added on the basis of restrictions on table metadata. There are 2 variants of this method, one where the invoking entity can pass the columns and the second where column names are omitted. The processing of both variants is similar and only column names are removed from table metadata in the event that column names are omitted. If the registration passes all the verifications and validation, then it is added to the main book with the value of the main key placed as a registration ID. Update registration () This method is used to update values ​​of the existing columns of a table. Each update made in a registry must comply with the restrictions established in table metadata. In this way, in each application, the previous registration data is withdrawn from the main book and the changes intended to the registration are made. If the registration passes all the verifications and validation, then it is updated in the main book with the registration ID without changing. Note - The value of the main key cannot be updated as long as a record is updated. Delete () This method is used to delete a previously existing record of the table. If the registration is present and the table is not under any DDL process, the record is deleted from the main book. Its effect will be observed once the transaction is recorded. Creation () This method is used in the event that the invoking entity wants to add indices on existing columns. First, the application verifies if the indexation could be made on the columns given. After which the indices in the status database need to be added. This functionality is not present inherently in Fabric, so that separate requests are needed in the status database to add indices for the given columns. Delete This method is used in the event that the invoking entity wishes to eliminate indices in existing columns. First, the application verifies if indexation could be made in the columns given. After which previously created indices are deleted from the State Database. Select Conconsultation Pagination () This method is used to execute the consultation given in the status database. The result is returned to the invoking entity on the basis of the intended level of consultation. This method only makes a reading operation and thus has no effect on the main book. If the invoking entity does not specify a limit, then RQRANN / LZNZ / ε / υιλι 156 Take the default limit to avoid the execution of the transaction out of time. Insertomistromasivo This method is used to perform lot insertion operations. The insertion operation is carried out in all records and if any of them fails the lot returns without affecting the main book. All inserted records should be added only if column values ​​satisfy the restrictions established in table metadata. Refreshing This method is used to carry out lot operations. The update operation is carried out in all records in the lot obtained after executing the consultation in the status database. If any of them fails, the lot returns without affecting the biggest book. All updated records must comply with the restrictions established in table metadata. Borrarregistromasive () This method is used to perform lot elimination operations. In a recursive manner, the elimination operation is carried out on all records in the lot obtained after executing the consultation in the status database. If any of them fails there is no effect on the biggest book. RETOCEDRENSACTION () Some operations need to be processed as a set of transactions, which will appear as a single transaction to the invoking entity. If any of them is not processed then all the previous transactions need to be reversed. In this way, in this method the metadata for the recoil are cured and this method is used to reverse any previous transaction with the given transaction ID. Transacc¡ón delete () Some operations need to be processed as a set of transactions, which will appear as a single transaction to the invoking entity. If any of them is not processed, then all previous transactions need to be reversed. So that, in each method the metadata for the backward is cured. If all transactions have been processed successfully, then this method is used to erase the metadata for the given transaction ID. ExecuteConsultaq This method is used to execute DML inquiries in the chain code. The query in the application is sent to the analyzer, the analyzer output is used to process the corresponding method. After verifying the access of the invoking entity for that method. The request is forwarded to the appropriate method. Show bases () This method is used to list all databases to which any invoking entity can have access. All databases are mentioned in the certificate of the invoking entity, so that we use the invoking entity certificate to seek the name of all databases and return them. Showable () This method is used to list all tables present in a database. All data tables are RQRRNN / 1 7π7 / β / υιλι 157 mention in the database metadata, so that we look for the database metadata and return the list of all tables. DECTABLA () This method is used to obtain all established restrictions when the table is created. Table 5 metadata contain restrictions for all columns. In this way, when an application is made then the table metadata returns after stirring the internal information. < / token> < / valor> < / valor> < / valor> < / valor> < / valor> < / valor> < / valor> < / valor> < / valor> < / valor> < / valor> < / valor> < / valor> < / valor> < / valor> < / valor> < / domain> < / domain> < / domain>

Claims

1. A query method, comprising a relational database management query, and a distributed ledger platform implementing a distributed ledger that includes transaction data, comprising: creating, using at least one processor of the distributed ledger platform, a database in the distributed ledger and recording information about the database in the distributed ledger; converting, using at least one processor, a received relational database management query into a query operation that can be processed by the database in the distributed ledger; and executing, using at least one processor, the query operation on the database in the distributed ledger to generate a query result.and record, using at least one processor, the result of the query in the database in the distributed ledger in a form that can be processed by the database in the distributed ledger for inclusion in the distributed ledger.

2. The method of claim 1, further comprising generating, using at least one processor, the relational database management query as a structured query language (SQL) query from one of (1) a user through a user interface; (2) a user application through an application program interface; and (3) a smart contract.

3. The method of claim 2, further comprising parsing, using at least one processor, the SQL query into a SQL operation comprising a data manipulation language (DML) write operation, a DML read operation, and a data definition language (DDL) operation, and creating a JavaScript Object Notation (JSON) representation of the SQL operation and any relational data included in the SQL operation.

4. The method of claim 3, further comprising determining, using at least one processor, whether a transaction resulting from the execution of the SQL operation has progressed toward acceptance in the distributed ledger to a point relevant to the platform.

5. The method of claim 4, further comprising adding, using at least one processor, an operation transmission status (OPSTAT) instruction at the end of a DML Write operation to look up one or more final states of a corresponding transaction. RQRRnn / Lznz / E / YILI 159 6. The method of claim 3, wherein the execution of the query operation on the distributed ledger comprises confirming, using at least one processor, that an entity invoking the SQL query has the authority to perform the SQL operation.

7. The method of claim 3, wherein the execution of the query operation on the distributed ledger comprises creating, using at least one processor, a JSON representation of the query operation and a result of the query operation that can be processed and stored on the distributed ledger.

8. The method of claim 7, wherein the SQL operation is a SQL DML write operation, further comprising retrieving, using at least one processor, data from the distributed ledger that is required to execute the SQL DML write operation, executing, using at least one processor, the SQL DML write operation that includes the retrieved data, preparing, using at least one processor, JSON representations of any new or updated records in the query result, and committing, using at least one processor, the SQL DML write operation and any updated records to the distributed ledger in a form that can be processed by the database in the distributed ledger for inclusion in the distributed ledger.

9. The method of claim 8, further comprising monitoring, using at least one processor, the distributed ledger for the progress of the SQL DML write operation towards acceptance in the distributed ledger and informing, using at least one processor, an entity calling the SQL query whether the SQL DML write operation has progressed to a platform-relevant point.

10. The method of claim 7, wherein the SQL operation is a SQL DML read operation, further comprising retrieving, using at least one processor, data from the distributed ledger when the SQL DML read operation is required to be executed, executing, using at least one processor, the SQL DML read operation that includes the retrieved data, preparing, using at least one processor, a JSON representation of the query result, and recording, using at least one processor, the JSON representation of the query result to the distributed ledger in a form that can be processed by the database in the distributed ledger for inclusion in the distributed ledger.

11. The method of claim 10, further comprising returning, using at least one processor, the JSON representation of the query result to an entity that invoked the SQL query. RQRRnn / 1 7P7 / B / YILI 160 12. The method of claim 1, further comprising creating, using at least one processor, the database within the distributed ledger by executing a configuration transaction that creates a channel and defines which peer computers will maintain a copy of the database and a regular transaction that writes metadata about the database, and creating, using at least one processor, code that defines transaction data in the distributed ledger and transaction instructions to modify the transaction data.

13. The method of claim 12, further comprising creating, using at least one processor, code that defines database attributes in JavaScript Object Notation (JSON) as the transaction data in the distributed ledger and having, using at least one processor, the database be updated with the database attributes.

14. The method of claim 1, further comprising creating, using at least one processor, a parsed and translated structured query language (SQL) query that considers the form that can be processed by the database in the distributed ledger for inclusion in the distributed ledger.

15. A system comprising: a distributed ledger platform implementing a distributed ledger that includes transaction data; a database in the distributed ledger; and at least one processor executing instructions to implement a relational data management and organization system that performs operations comprising: recording information about the database in the distributed ledger; converting an received relational database management query into a query operation that can be processed by the database in the distributed ledger; executing the query operation on the database in the distributed ledger to generate a query result; and recording the query result in the database in the distributed ledger in a form that can be processed by the database in the distributed ledger for inclusion in the distributed ledger.

16. The system of claim 15, further comprising means for generating the relational database management query as a structured query language (SQL) query, which RQRRnn / 1 7P7 / B / YILI 161 comprises one of: (1) a user interface to the relational data management and organization system through which a user provides the SQL query; (2) a user application that passes the SQL query to the relational data management and organization system through an application programming interface to the relational data management and organization system; and (3) a smart contract.

17. The system of claim 16, wherein at least one processor further executes instructions to parse the SQL query into the SQL operation comprising a data manipulation language (DML) write operation, a DML read operation, and a data definition language (DDL) operation and create a JavaScript Object Notation (JSON) representation of the SQL operation and any relational data included in the SQL operation.

18. The system of claim 17, wherein at least one processor further executes instructions to determine whether a transaction resulting from the execution of the SQL operation has progressed toward acceptance in the distributed ledger to a point relevant to the platform.

19. The system of claim 18, wherein at least one processor further executes instructions to add an operation broadcast status (OPSTAT) instruction to the end of a DML Write operation to look up one or more final states of a corresponding transaction.

20. The system of claim 17, wherein at least one processor executes the query operation on the distributed ledger by executing instructions to confirm that an entity invoking the SQL query has the authority to perform the SQL operation.

21. The system of claim 17, wherein at least one processor further executes instructions to create a JSON representation of the query operation and a result of the query operation that can be processed and stored in the distributed ledger.

22. The system of claim 21, wherein the SQL operation is a SQL DML write operation, and wherein at least one processor further executes instructions to retrieve data from the distributed ledger when required to execute the SQL DML write operation, to execute the SQL DML write operation comprising data retrieval, to prepare JSON representations of any new or updated records in the query result, and to commit the SQL DML write operation and any updated records to the distributed ledger in a form that can be processed by the RQRRnn / Lznz / E / YILI 162 database in the distributed ledger for inclusion in the distributed ledger.

23. The system of claim 22, wherein at least one processor further executes instructions to monitor the distributed ledger for the progress of the SQL DML write operation toward acceptance in the distributed ledger and to inform an entity invoking the SQL query whether the SQL DML write operation has progressed to a platform-relevant point.

24. The system of claim 21, wherein the SQL operation is a SQL DML read operation, and wherein at least one processor further executes instructions to retrieve data from the distributed ledger as required to execute the SQL DML read operation, to execute the SQL DML read operation including the retrieved data, to prepare a JSON representation of the query result, and to record the JSON representation of the query result to the distributed ledger in a form that can be processed by the database in the distributed ledger for inclusion in the distributed ledger.

25. The system of claim 24, wherein at least one processor further executes instructions to return the JSON representation of the query result to an entity that invokes the SQL query.

26. The system of claim 15, wherein at least one processor executes instructions to create the database within the distributed ledger by executing a setup transaction that creates a channel and defines which peer computer will maintain a copy of the database and a regular transaction that writes metadata about the database and creates the code that defines transaction data in the distributed ledger and transaction instructions to modify the transaction data.

27. The system of claim 26, wherein at least one processor further executes instructions corresponding to the code that defines database attributes in a JavaScript Object Notation (JSON) such as transaction data in the distributed ledger and to cause the database to be updated with the database attributes.

28. The system of claim 15, wherein at least one processor further executes instructions to create a parsed and translated structured query language (SQL) query that considers the form that can be processed by the database in the distributed ledger for inclusion in the distributed ledger.