A platform for multiple blockchain-related services

The platform processor with an API enables clients to securely and efficiently interact with multiple blockchain services by processing HTTP requests into blockchain transactions, addressing the need for a user-friendly and secure method to access blockchain applications.

JP7661350B2Active Publication Date: 2025-04-14NCHAIN LICENSING AG
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
JP2022549509
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-02-19
Filing Date
2021-02-15
Publication Date
2025-04-14
Estimated Expiration
2041-02-15

AI Technical Summary

Technical Problem

Existing solutions lack a secure, user-friendly, and efficient method for clients to access and interact with multiple blockchain-related applications without requiring complex processing or blockchain libraries.

Method used

A platform processor associated with an application programming interface (API) that receives client requests in HTTP format, processes them to generate blockchain transactions, and returns results to clients in HTTP format, enabling access to various blockchain services without needing blockchain libraries or complex processing.

Benefits of technology

This solution allows clients to securely and efficiently interact with multiple blockchain services, providing a user-friendly interface for writing and reading data to the blockchain, managing event streams, and performing transactions, all without the need for advanced blockchain knowledge or libraries.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007661350000002
    Figure 0007661350000002
  • Figure 0007661350000003
    Figure 0007661350000003
  • Figure 0007661350000004
    Figure 0007661350000004
Patent Text Reader

Abstract

In a first aspect, the present disclosure proposes a method, device, and system for implementing a platform that provides multiple blockchain-related services using a platform processor associated with an application programming interface (API) that can receive client requests for the services in a Hypertext Transfer Protocol (HTTP) transmission protocol format. In addition to appropriate verification of the client and / or request identity, a destination address or endpoint for the requested blockchain service is determined, and at least one blockchain transaction is generated based on the destination address to obtain an output script. Results based on the output script are then sent to the given client in an HTTP transmission protocol format. In some aspects, blockchain transactions are associated with an event stream implemented as a finite state machine on the blockchain.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure generally relates to methods and systems for implementing a platform for one or more services related to a distributed ledger, i.e., blockchain, for one or more clients. In particular, the present disclosure relates to providing access to a number of functions and applications related to blockchain, such as, but not limited to, implementing event streams or machine-readable contracts, for one or more clients. [Background technology]

[0002] In this document, we use the term "blockchain" to include all forms of electronic, computer-based distributed ledgers. These include consensus-based blockchain and transaction chain technologies, permissioned and permissionless ledgers, shared ledgers, public and private blockchains, and variations thereof. The most widely known application of blockchain technology is the Bitcoin ledger, but other blockchain implementations have been proposed and developed. Although Bitcoin may be referenced herein for convenience and illustration, it should be noted that the present disclosure is not limited to use with the Bitcoin blockchain, and alternative blockchain implementations and protocols related to any type of digital asset or representation of a digital asset fall within the scope of the present disclosure. The terms "client," "entity," "node," "user," "sender," "recipient," "payer," and "payee" may refer to computing or processor-based resources herein. The term "Bitcoin" is used herein to include any version or variation derived from or based on the Bitcoin protocol. The term "digital asset" may refer to any transferable asset, such as cryptocurrency, a token representing at least a portion of a property, a smart contract, a license, i.e., a software license, or a DRM contract for media content. It is understood that the term "digital asset" is used throughout this document to denote a commodity that may be associated with value that can be transferred or provided as payment in a transaction from one entity to another.

[0003] A blockchain is a peer-to-peer electronic ledger implemented as a computer-based, decentralized system made up of blocks made up of transactions. Each transaction is a data structure that encodes the transfer of control of digital assets between participants in the blockchain system and contains at least one input and at least one output. Each block contains a hash of the previous block so that blocks are chained together to create a permanent, immutable record of all transactions written to the blockchain since the blockchain's inception. Transactions contain small programs, known as scripts, embedded in their inputs and outputs that specify how and by whom the transaction's outputs can be accessed. In the Bitcoin platform, these scripts are written using a stack-based scripting language.

[0004] In order for a transaction to be written to the blockchain, it must be "validated." Network nodes (miners) perform work to ensure that each transaction is valid, and invalid transactions are rejected from the network. A software client installed on the node performs this validation work on unspent transactions (UTXOs) by executing its lock and unlock scripts. If the execution of the lock and unlock scripts evaluates to true, the transaction is valid and the transaction is then written to the blockchain. Thus, for a transaction to be written to the blockchain, it must i) be verified by the first node that receives the transaction, and if the transaction is verified, the node relays it to other nodes in the network, ii) be added to a new block constructed by miners, and iii) be mined, i.e., added to the public ledger of past transactions.

[0005] It will be appreciated that the nature of the work performed by miners depends on the type of consensus mechanism used to maintain the blockchain. While proof of work (PoW) is associated with the original Bitcoin protocol, proof of stake (PoS), delegated proof of stake (DPoS), proof of capacity (PoC), proof of elapsed time (PoET), proof of authority (PoA), etc. are used. Different consensus mechanisms differ in how mining is distributed among nodes, and the probability of successfully mining a block depends, for example, on the miner's hashing power (PoW), the amount of cryptocurrency held by the miner (PoS), the amount of cryptocurrency staked in the delegated miners (DPoS), the ability of the miner to memorize a given solution to a cryptographic puzzle (PoS), a waiting time randomly assigned to the miner (PoET), etc. Typically, miners are provided with an incentive or reward for mining a block. Bitcoin blocks, for example, reward miners with newly minted cryptocurrency (Bitcoins) and fees associated with transactions in the block (transaction fees). In the case of the Bitcoin blockchain, the amount of cryptocurrency mined decreases over time, and incentives eventually consist solely of transaction fees. It will therefore be appreciated that the processing of transaction fees is part of the underlying mechanism for committing data to a public blockchain, such as the Bitcoin blockchain.

[0006] As mentioned above, each transaction in a given block encodes the transfer of control of a digital asset between participants in the blockchain system. The digital asset does not necessarily correspond to a cryptocurrency. For example, a digital asset may relate to a digital representation of a document, an image, a physical object, etc. Payment of cryptocurrency and / or transaction fees to miners may simply act as an incentive to maintain the validity of the blockchain by performing the necessary work. The cryptocurrency associated with the blockchain may act as security for miners, and the blockchain itself may be a ledger primarily for transactions related to digital assets other than cryptocurrency. In some cases, transfers of cryptocurrency between participants may be handled by entities different and / or independent from the entities using the blockchain to maintain a ledger of transactions.

[0007] Once stored in the blockchain as a UTXO, a user can transfer control of the associated resource to another address associated with an input in another transaction. This transfer is usually, though not inherently, done using a digital wallet. This digital wallet can be a device, a physical medium, a program, an application (app) on a computing device such as a desktop, laptop, or mobile terminal, or a remotely hosted service associated with a domain on a network such as the Internet. Digital wallets can be used to store public and private keys, track ownership of resources such as tokens and assets associated with a user, receive or consume digital assets, and transfer tokens that may be related to digital assets such as cryptocurrency, licenses, property, or other types of resources.

[0008] Although blockchain technology is most widely known for its use in implementing cryptocurrencies, digital entrepreneurs are exploring the use of both the cryptographic security system on which Bitcoin is based, and the data that can be stored on the blockchain, to implement new systems. It would be highly advantageous if blockchain could be used for automated tasks and processes that are not limited to the realm of cryptocurrencies. Such solutions would be more versatile in their applications, while still being able to take advantage of the advantages of blockchain (e.g., permanent and tamper-proof recording of events, distributed processing, etc.).

[0009] One area of ​​current research is the use of blockchain for the implementation of "smart contracts". These are computer programs designed to automate the execution of the terms of a machine-readable agreement or pact. Unlike traditional contracts written in natural language, smart contracts are machine-executable programs with rules that can process inputs to generate outcomes and then cause actions to be taken in response to those outcomes. Another blockchain-related area of ​​interest is the use of "tokens" (or "colored coins") to represent and transfer real-world entities via the blockchain. Potentially sensitive or secret items may be represented by tokens that have no discernible meaning or value. Thus, tokens act as identifiers that allow real-world items to be referenced from the blockchain.

[0010] The above examples or scenarios require the client, client entity, computing device, or terminal associated with the client to include or implement software and / or hardware or processors / modules, such as a digital wallet to implement functionality for managing digital assets, managing cryptographic keys for the Elliptic Curve Digital Signature Algorithm (ECDSA) used by the BSV (Bitcoin Satoshi's Vision) blockchain, while utilizing the benefits of blockchain to provide a permanent, tamper-proof record of events. In addition, there is also a need for the client device to implement blockchain transaction mechanisms and be able to access BSV libraries. Thus, the client not only needs to include processing to implement such functionality, but also needs to ensure that appropriate security measures are in place for such processes before the blockchain network can be utilized to send, receive, and view data and / or digital assets associated with smart contracts or tokens representing real-world asset transactions. [Prior art documents] [Patent documents]

[0011] [Patent Document 1] U.S. Patent Application No. 16 / 384696 [Patent Document 2] UK Patent Application No. 1907180.2 [Patent Document 3] UK Patent Application No. 2007597.4 Summary of the Invention [Problem to be solved by the invention]

[0012] It is therefore desirable to implement a secure, low-complexity, user-friendly, efficient, and robust technique that allows any client, whether computationally advanced or not, to instantly access and interact with useful applications related to blockchain in a simple, fast, accurate, reliable, and secure manner that is computationally and functionally low burden. More specifically, it is desirable to utilize the benefits of distributed ledger (blockchain) technology and increased security, transparency, and reliability of records to provide a common platform or interface for multiple blockchain-related services or applications that allows any client computing device to ensure that any data, event, or digital asset associated with the client can be easily mined or written to the blockchain instantly and securely, thereby providing a permanent, tamper-proof, and auditable record thereof that can be created, written, updated, read, or viewed as needed. [Means for solving the problem]

[0013] Such an improved solution has now been devised. The present disclosure addresses the above technical concerns by proposing one or more techniques whereby data or information related to a client may be easily, securely, and instantly written to and retrieved from a blockchain by methods, devices, and systems that provide an application programming interface (API) for one or more services related to the blockchain, without the need for such clients to implement processes or functionality for using the blockchain, while still being able to utilize all the benefits associated with the blockchain.

[0014] In a first aspect, the present disclosure proposes a method, device, and system for implementing a platform that provides multiple services related to blockchain using a platform processor associated with an application programming interface (API) that can receive client requirements in a Hypertext Transfer Protocol (HTTP) transmission protocol format for the services. In addition to appropriate validation of the client's identity and / or request, a request, destination address, or endpoint for the requested blockchain service is determined, and at least one blockchain transaction is generated based on the destination address to obtain an output script. The result based on the output script is then sent to the given client in an HTTP transmission protocol format.

[0015] In a second aspect, the present disclosure proposes a method, device, and system for implementing a data writing service for a transaction related to a blockchain for a client based on an HTTP request from the client, and relating to an event stream ES implemented using a blockchain, where the event stream can be used to represent or track a finite state machine (FSM). For example, the FSM can be a smart contract. Event Stream ES in Blockchain n The current state of is determined and a new or next event E n+1 is identified in the received request, and inputs related to transaction outputs from a previous transaction TX on the event stream ES, and new events E n+1 When submitted to the blockchain, the current state of the event stream in the blockchain is updated with the new event E n+1 Based on the ESn+1 The current state is updated to ES. n+1 The results related to are provided in HTTP transmission protocol format.

[0016] Throughout this specification, the word "comprises" or variations such as "including," "comprises," or "comprising" will be understood to imply the inclusion of a stated element, integer, step, or group of elements, integers, or steps, but not the exclusion of any other element, integer, step, or group of elements, integers, or steps.

[0017] Aspects and embodiments of the present disclosure will now be described, by way of example only, with reference to the accompanying drawings, in which: [Brief description of the drawings]

[0018] [Figure 1] FIG. 1 is a schematic diagram illustrating an overview of a platform for multiple blockchain-related services according to a first embodiment. [Figure 2a] 1 is a flowchart illustrating a method for providing a platform for multiple blockchain-related services according to a first aspect, implemented by one or more processors associated with the platform. [Figure 2b] 1 is a flowchart illustrating a method for accessing a platform of multiple blockchain-related services according to a first aspect, implemented by one or more processors associated with a client. [Diagram 3] FIG. 1 is a schematic diagram illustrating components of a platform for multiple blockchain-related services according to a first embodiment. [Figure 4] 11 is a flowchart illustrating a method for implementing a data writing service for a blockchain-related transaction according to a second aspect, implemented by one or more processors associated with the platform service. [Diagram 5]FIG. 1 is a schematic diagram illustrating a computing environment in which various aspects and embodiments of the present disclosure may be implemented. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0019] According to a first aspect, the present disclosure provides a computer-implemented method for providing a platform of multiple blockchain related services, the platform being provided to a number of clients, the method being implemented by a platform processor associated with an application programming interface (API).

[0020] Advantageously, the platform processor API is a web-based interactive interface, i.e., in some embodiments, may be implemented as a web service for one or more clients, such that communication may occur over the Internet using standard Internet communication protocols for web-based services. For example, in some embodiments, HTTP messages or requests at the application level, or layer between the client and the server (in this case, the platform service), such as HTTP, HTTPS, etc., may be sent and received based on a transport layer protocol, such as TCP / IP. Reference herein to the HTTP transport protocol or HTTP API also encompasses all standard Internet communication protocols, such as TCP / IP, UDP, HTTPS, etc.

[0021] In some embodiments, the platform processor is implemented as an HTTP API endpoint. In some embodiments, the platform processor is implemented as a Representational State Transfer (REST) ​​endpoint. Advantageously, the API may be implemented as a REST endpoint, thereby allowing clients to communicate using standard Internet or web-based protocols such as HTTP or HTTPS.

[0022] The method of the first aspect includes receiving a request from a given client of the plurality of clients, the request from the given client relating to a given service of the plurality of services based on a HyperText Transfer Protocol (HTTP) transmission protocol format. Then, based on an identification of the client and / or a determination that the request is valid, the method includes obtaining a destination address associated with the given service. In some embodiments, the destination address may be an IP address or a network address endpoint. For example, this may be a universal resource identifier (URI) of an endpoint and may include a universal resource location (URL) of a web server from which the requested service may be accessed by a payment processor or one or more other entities (including the client) for the requested service.

[0023] In some embodiments, the destination address may be the same endpoint as the platform API endpoint. This may be the case when the platform provides such requested services as a main or core service. In other embodiments, when there are multiple different types of services provided by the platform, each implemented by a different processor or web server, the destination address may be different from the platform API, which may act as a host server for other processors and web servers associated with the platform. In this case, the platform processor comprises or is associated with multiple processors, each configured to implement a given service of the multiple services in the blockchain, and each associated with a particular destination address or endpoint unique to the respective processor.

[0024] The method of the first aspect further includes processing the request for the given service based on at least one blockchain transaction corresponding to the obtained destination address to obtain an output script. In some embodiments, the output script is associated with data related to the requested service, or a result of the requested service is included in the UTXO, including such data or digital assets related to the transaction. In the first aspect, this result associated with the output script is then transmitted to the given (requesting) client in HTTP or a similar transmission protocol format.

[0025] Advantageously, the method of the first aspect of the disclosure implements the platform provided as an API for one or more clients, thereby enabling one or more processors associated with the clients to sign up for or use a web service provided by the platform processor to write or access data to the blockchain. The one or more processors associated with the platform may implement one or more of the provided services using a standards-based interface design, such as, but not limited to, REST (Representational State Transfer), an architectural style for developing web services and web-based interactions. A resource may be defined in the context of a REST API as an object having a type, associated data, relationships with other resources, and a set of methods to operate on it. Thus, the platform or service implemented by the platform processor of the first aspect is advantageously provided as an API implementation to access (the state of) a blockchain or distributed ledger, such as the Bitcoin SV (BSV) blockchain, and trigger operations or functions that can change its state and expose it as a REST API via an application interface. In other words, one or more servers or processors associated with the platform may be considered as a REST endpoint for one or more clients that choose to use such services. Thus, advantageously, clients can communicate with the platform services via HTTP or similar Internet commands. More advantageously, no knowledge of BSV, Bitcoin, blockchain, ECDSA or other cryptographic key management libraries, or transaction construction software such as digital wallet software, is required to be implemented by clients for any of the services provided.A client using one or more processing resources or user terminals can simply register to use the platform via some well-known authentication technique, such as password-protected authentication or standard public key infrastructure (PKI) to verify the client's identity. The client should then simply be able to communicate with the platform services via basic HTTP or the like.

[0026] In some embodiments, some examples of blockchain related services that may be provided via the platform include: A data service for writing / submitting data to the blockchain to change the blockchain state; A data service to read / get data reflecting the current state of the blockchain, Services relating to simplified payment verification for blockchain related transactions; Services relating to the management of one or more event streams and / or machine-readable contracts related to blockchain; Services relating to the management of a digital wallet framework for multiple clients; Channel services relating to the provision of peer-to-peer communications channels; Storage services related to data storage It is.

[0027] In an embodiment where there are multiple processors or web services associated with the platform processor of the first aspect, the method of the first aspect further includes providing an application programming interface (API) converter for receiving a request from a client in HTTP transport protocol format, converting the received request to a Remote Procedure Call (RPC), and sending the RPC request to a given processor of the multiple processors configured to implement the service identified in the received request. In the reverse flow path, this embodiment includes receiving an associated response from the given processor in RPC format and converting each response to be sent to the client using HTTP or a similar transport protocol.

[0028] This is advantageous because it allows clients to communicate blockchain-related requests via simple HTTP, providing seamless interoperability with any of the nodes or services that use the web-based platform API and implement the services described above but do not communicate using the Internet Protocol communication standard for web services. The API converter implemented in this embodiment is not limited to converting from HTTP to RPC and vice versa, or for that matter from other web service protocols to alternative communication protocols supported by the platform processor that implements one or more of the above services, the network for a given cryptocurrency, or other digital assets that may be envisioned. In the reverse flow path, the method of the first aspect also includes receiving responses related to the corresponding blockchain transactions from the respective processors in RPC format and correspondingly converting the respective responses using HTTP for sending to the client. Thus, advantageously implementing the proposed interface by the platform processor allows seamless communication for submitting transactions to the blockchain when the client (payer) and the miner use different wireless data communication protocols and mechanisms.

[0029] In some embodiments of the first aspect, the request received from the client is an HTTP GET or HTTP POST or HTTP PUT or HTTP PATCH request that includes or is associated with a client identifier unique to the given client, as well as a service identifier for the requested given service of the multiple services provided by the platform, as described above. In some embodiments, the result sent to the client is an HTTP POST request based on the client identifier.

[0030] In some embodiments, mechanisms already exist whereby memorable and more user-friendly aliases are used instead of complex public addresses for one or more client entities to make client addressing simpler for blockchain transactions. Such solutions have been proposed in US Patent Application No. 16 / 384696 and UK Patent Application No. 1907180.2, both in the name of nChain Holdings Limited. These documents present an alias-based payment service and associated protocols, called bsvalias payment service, where aliases are used to specify destination addresses instead of the public addresses of client entities. Aliases in such systems are typically associated with the domain names of the sending / receiving client entities and may be URIs or email addresses. Thus, as long as the sender or entity is aware of the alias or has been provided with it, this is sufficient for the bsvalias payment system or alias-based addressing mechanism. Messages may be sent to the client aliases using instructions provided in a machine-readable resource, such as a JavaScript Object Notation JSON document, stored at a better-known URI or location for bsvalias or other payment services. In some embodiments of the present disclosure, one or more of the multiple clients may have an alias as described above to identify the respective client.

[0031] In a related embodiment, the method of the first aspect includes verifying the client based on the client identifier and a record associated with the platform processor, the record corresponding to the client identifier. For example, such a record may be created and stored in or associated with the platform processor upon client sign-up or registration. Then, based on successful verification of the client, determining whether a received request from the client is valid based on the service identifier and attributes or settings included within the respective record. In some embodiments, the attributes or settings may indicate whether a given client is authorized to access all or part of the requested service. For example, one or more levels of authorization associated with the client identifier may be provided in the attributes or settings. For example, a given client may be authorized to request a service to read data on the blockchain regarding a particular event, but may not be authorized to modify, delete, or terminate such event, while another client may have authorization for all actions related to one or more services.

[0032] In some embodiments, the step of verifying the identity of a given client may be based on a digital signature associated with the client. A cryptographic key pair including a private key and a public solution (or public address) associated with each client may be used to verify that a request made to a service really originates from a given client, i.e., data signed by a private key can only be restored or verified using the corresponding public solution. If the verification is based on a digital signature, standard public key infrastructure (PKI) techniques may be used and implemented.

[0033] In some embodiments of the first aspect, a computer-implemented method for accessing a platform of a plurality of services implemented by one or more processors of a given client of the plurality of clients includes obtaining or identifying an application programming interface (API) endpoint associated with one or more processors associated with the platform, and transmitting a request related to a given service of the plurality of services, the request including or associated with a client identifier for the given client and a service identifier for the requested given service. As described above, the request is transmitted using Hypertext Transfer Protocol (HTTP) or a similar transfer protocol format. The method also includes a result related to an output script of a blockchain transaction related to the request, the result being provided to the client in an HTTP transfer protocol format.

[0034] In a second aspect, the present disclosure provides a computer-implemented method for implementing a data writing service, the method being implemented by a platform associated with an application programming interface (API) to allow a client to access the service to write data to a blockchain. The method of the second aspect includes receiving a request from a client, the request being related to an event stream ES implemented using a blockchain, the request from the client being based on a Hypertext Transfer Protocol (HTTP) transmission protocol format. In some embodiments, the event stream may be tracked or represented as a finite state machine (FSM), such as a deterministic finite automaton (DFA), a well-known computing term that uses transition functions or trigger events to transition from one stage to the next, has a finite number of states, and may only be in one state at a given time. In some embodiments, such an event stream is useful for representing control measures or techniques of technical processes. In some embodiments, the event stream may represent or track inputs, states, and / or events associated with a machine-readable contract or smart contract on a blockchain, advantageously recording an immutable record of the contract's past and current states. In some embodiments, the received request from the client includes a trigger event to enable a state transition to occur in a smart contract associated with the event stream.

[0035] The method of the second aspect comprises: i=n, where i is an integer from 0 to N, each integer i representing a given state of the event stream ES, whereby i=0 represents the created event stream ES, i=n represents the event stream ES in its current state in the blockchain, and i=N represents the final state of the event stream ES. In some embodiments, the determination of the current state may be an indication of the current state based on the most recent results associated with the event stream, said results being stored on the blockchain or in one or more separate off-chain storage resources for the event stream. This may be based on an identifier of a previous or prior blockchain transaction associated with the event stream. If there is no previous state identified for the event stream, this results in a determination that the current state is n=0, i.e., a new event stream should be created. In some embodiments, the current state may also be obtained or read from the blockchain. This may be performed by a data reader as described above, which may be a service among multiple services provided by the platform processor.

[0036] In the method of the second aspect, a new event E for the event stream ES is generated based on the received request. n+1 The step of processing the blockchain transaction TX n+1 Creating a blockchain transaction TX n+1 is the previous transaction TX n Transaction Output (TXO) from n ), including any unspent outputs (UTXOs) n+1 ) is a new event E n In some embodiments, when n=0, there is no input that consumes the previous output. However, there may be other inputs that represent digital assets associated with the event stream ES. The method then n+1The method includes submitting the token to a blockchain.

[0037] Once submitted, the current state of the event stream is updated based on the submitted blockchain transaction, i.e., the state is updated based on the ES i=n =ES n+1 Like, the newly created event E n+1 Based on ES i=n+1 In some embodiments, the updated state is the unspent output, UTXO, of the latest transaction in the event stream. n+1 The method then includes sending a result based on the updated current state of the event stream ESn+1, the result being provided based on an HTTP transport protocol format.

[0038] A second aspect of the present disclosure discusses an implementation of a data writing service implemented by a platform processor, in other words, the implementation enables the ability to write data related to real-world processes, such as controlling the state of a smart contract. The platform processor of the second aspect is associated with that discussed in the first aspect, and the second aspect discusses one of a number of blockchain services, namely, a service for writing data to a blockchain to change the current state of the blockchain. Since requests and responses are received using an API for the platform, the second aspect provides all the advantages associated with the first aspect. In addition, the data writing service advantageously enables one or more clients to transact the state of a blockchain-implemented smart contract by simply extracting a trigger or event from an effect. Thus, an immutable record of the various stages of a smart contract may be provided by the data writing service of the second aspect.

[0039] Aspects of the present disclosure also include a computing device comprising a processor and a memory, the memory including executable instructions that, upon execution by the processor, cause the device to perform a computer-implemented method as discussed above, and the computing device is associated with a platform processor.

[0040] Aspects of the present disclosure also include a computing device comprising a processor and a memory, the memory including executable instructions that, upon execution by the processor, cause the device to perform a computer-implemented method as discussed above, the computing device being associated with a client.

[0041] Aspects of the present disclosure also include a computer system comprising at least one platform processor communicatively coupled to at least one client via a wireless communications network, the at least one platform processor associated with an application programming interface (API) endpoint for processing HTTP requests from the at least one client, the at least one platform processor implemented in accordance with the computing device described above, and the at least one client implemented in accordance with the client computing device described above.

[0042] Aspects of the present disclosure also include a computer-readable storage medium having stored thereon executable instructions that, when executed by a processor of a computer, cause the computer to perform the method of any of the above aspects and embodiments.

[0043] Several specific embodiments will now be described, by way of example only, with reference to the accompanying drawings, in which like reference numbers refer to like features, and in which:

[0044] First aspect – Platform API for multiple blockchain related services The platform processor for providing the services described above for the first aspect may be a Platform as a Service (PaaS) and Software as a Service (SaaS) that advantageously provides enabling rapid delivery of useful real-world business and technical applications, such as management of software-controlled technical systems or smart contracts using a blockchain network such as the BSV blockchain. An overview of the platform service can be seen in FIG. 1, which shows a high-level schematic of the system. The platform service has a platform processor 100 that provides an API 108, through which the services can be accessed by one or more clients.

[0045] The platform services 100 shown in this figure are composed of three service families, which aim to enable users or organizations to easily and securely take advantage of the benefits offered by the unique properties of blockchain, without actually implementing any blockchain-based software, knowledge or libraries on the client side. These services are: A data service 102 aimed at simplifying the use of the chain as a product data ledger; A computational service 104 that aims to provide a generalized computational framework backed by digital assets such as Bitcoin SV; Commerce services that provide enterprise-class capabilities for transacting using digital assets such as Bitcoin SV; and Additional services that may be associated with the above core services, such as Simple Payment Verification (SPV) based services, channel services for peer-to-peer communication, and / or storage services. It is.

[0046] As mentioned above, the API is implemented as a web service, so that requests may be received from clients at the API via or using the HTTPS protocol. The requested service is then implemented by one or more service modules or processing resources 102-106 using underlying software 110, such as underlying software 110 associated with the blockchain, to implement resources, libraries, and / or key management wallet implementations for creating, processing, and submitting transactions related to the blockchain. Once processed, the transaction may be submitted to the blockchain network 112 (instead of the client implementing any such functionality or transaction library). At most, the client may or may implement a digital wallet or the like associated with cryptocurrency or some other digital asset, although this is not required as the platform service 100 may also provide and manage digital assets for the client.

[0047] Fig. 2a relates to a first aspect of the disclosure and illustrates a computer-implemented method for providing a platform of multiple blockchain-related services, such as the platform 100 illustrated in Fig. 1. The method of Fig. 2a is implemented by a platform processor associated with an application programming interface (API).

[0048] Step 202a illustrates receiving a request from a given client of a plurality of clients. In some embodiments, a client may be one or more computing devices, resources, or processors associated with a client that have signed up or registered to access a plurality of services provided by a platform processor. As described above, a platform processor may be one or more processors each providing different types of functions or services implemented using a blockchain, such as the Bitcoin SV blockchain (such as the processor for data, computation, and commerce services seen in FIG. 1). Thus, there may be only one processor for a single service. Because the platform processor is associated with an API endpoint, such as a URI, for the platform, the request from a given client may be based on a standard Internet protocol, such as the Hypertext Transfer Protocol (HTTP) transmission protocol format. In some embodiments, the request may include an identifier for the client as well as an identifier for the requested service.

[0049] In step 204a, the identity of the client is checked to see if it is a valid client registered to use the platform processor and the functions provided thereby. In some embodiments, this may be based on known authentication methods such as password-protected login authentication. In this case, a record may be created for a given client based on the client identifier or alias and password contained in the request. Verification may be based on the password received at the API matching the password in the record. In other embodiments, standard PKI techniques based on cryptographic private / public key pairs may also be used to verify the digital signature present in the request received from the client in step 202a. In this case, the identity of the client may be verified by checking whether the request signed by the private key can be successfully restored or verified using the public key.

[0050] If the client's identity cannot be verified, or if the verification fails, then in step 206a the request is not processed further.

[0051] If the client is successfully verified, then in step 208a, the validity of the request for service in step 202a is checked to ensure that a given client is indeed authorized to use the requested service. Permissions or attributes for this may be present in the record for the client to indicate one or more types of access levels or services that may or may not be provided to the respective client.

[0052] If the request is found to be unauthorized or invalid for the requesting client, then in step 210a the request is not processed further.

[0053] It should be understood that the above embodiments of validating the client and / or service, while useful, are not required for the operation of the first aspect. In some cases, only the validation in steps 204a or 208a may be performed. In some cases, no validation is performed. In this case, any client, whether registered or not, may use the service or platform with appropriate payment for such access.

[0054] In step 212a, a destination address is obtained, which may be an endpoint URI for a server or processor responsible for implementing the service requested in step 202a. In some embodiments where there are multiple platform processors, the host server or platform API may convert the received request into a remote procedure call (RPC) format to be sent to a destination address associated with the processor configured to implement the identified service.

[0055] In step 214a, the requested service is processed by the respective platform processor responsible for it. The blockchain transaction is obtained, read, or generated by the platform processor based on the destination address / endpoint of the responsible processor, and an output script for this transaction is obtained. Although FIG. 2a refers to generating a blockchain transaction in this step, it will be understood that the first aspect of the disclosure is not so limited. If the request in step 202a is to read or obtain data from the blockchain, the transaction may not be generated, it may simply be read or obtained from the blockchain. There may be multiple blockchain transactions or multiple output scripts for one or more of the generated blockchain transactions.

[0056] In step 216a, the output script may include a data output as a result (e.g., there may be a data carrier UTXO), or a result may be obtained based on the transaction identifier, or the remaining output of the transaction. There may also be a non-consumable OP-RETURN output associated with the transaction from which a result may be obtained.

[0057] In step 218a, the results associated with the output script are provided to the given client in HTTP or a similar transaction protocol format. In some embodiments, if the responsible processor of the service is located remotely relative to the host platform API, the platform processor receives the response associated with the blockchain transaction from the responsible processor in RPC format. The API converter then converts this into a message that can be sent based on the HTTP format before sending it to the client. As described above, if the client used an alias addressing service such as bsvalias, the results are sent in an HTTP message addressed to the client's alias in a format dictated by the bsvalias machine-readable resource.

[0058] Fig. 2b relates to a first aspect of the disclosure and illustrates a computer-implemented method for accessing a blockchain-related multiple services platform, such as the platform 100 illustrated in Fig. 1. The method of Fig. 2b is implemented by one or more processors associated with a client.

[0059] In step 202b, an application programming interface (API) endpoint associated with the platform is identified. As mentioned above, this may be an API associated with the host platform processor, and there may be one or more additional processors responsible for executing the service, each with its own service endpoint or destination address.

[0060] In step 204b, the client prepares a request for a service, such as the data writing service 102 in Figure 1. The client in some embodiments includes a client alias or identifier and / or a service identifier in the request so that it can be routed to the correct service endpoint. This is useful for platform processor checks on the validity of the requesting client and the client's authorization to use the requested service.

[0061] In step 206b, since the platform processor is implemented as an HTTP or REST API, the request prepared in step 204b is transmitted using the HyperText Transfer Protocol (HTTP) or a similar transmission protocol format.

[0062] In step 208b, a result associated with the output script of the blockchain transaction associated with the request is provided from the platform processor, the result being provided to the client in an HTTP transaction protocol format.

[0063] Advantageously, in the method of the first aspect, requests for the blockchain-based service are sent and received by the client in HTTP transaction protocol format, so that the client can utilize all the advantages and services inherent to blockchain without implementing any transaction functions or blockchain libraries. This is because the services are provided through a platform API, which can be an HTTP or REST API endpoint. For example, the REST API design standard can process and communicate HTTP requests using the following HTTP commands over the Internet, which are all the functions required by the client, i.e., to enable sending and receiving messages over the Internet. The platform processor implements the commands remotely or separately for the client.

[0064] [Table 1]

[0065] FIG. 3 provides a more detailed schematic diagram of multiple services related to blockchain, which may be implemented by platform 300 associated with an API through which any one or more of the services offered may be accessed. As seen in this figure, data service 302 may include data writer 302a and data reader service 302b. An implementation of an event stream using data writer service 302a is detailed in the figure to allow clients to write data to the blockchain in a simple, secure, and optimized way. Data reader service 302b allows clients to submit queries, which return data to be stored in the blockchain. This may be using filtered streams where clients may predefine the type of data they want to read from the blockchain ad-hoc or periodically, i.e., within a specific time frame, or related to a set of related or unrelated events or documents to be processed in the blockchain 310. A data archive function allows access to logs of previous transactions related to a specified event or contract.

[0066] The computation services 306 of the platform 300 include smart contract-related applications 306a and frameworks 306b, which in some embodiments may be represented as state machines in a blockchain 310. For example, the computation services may manage smart contracts related to the blockchain for clients associated with the platform services. The computation services 306 interact with the data services 302 as data must be input for such computations and results provided to clients.

[0067] The commerce service 304 is responsible for providing enterprise-class functionality via the enterprise wallet 304a for transacting over the blockchain 310 based on best-in-class security practices and technology. For example, in some embodiments, the enterprise wallet may implement functionality to enable blockchain transaction processing when more than one person or user or account may need to sign off on a transaction that meets defined criteria, i.e., a transaction involving a large value of cryptocurrency that exceeds a certain predefined limit. The enterprise wallet may also include functionality to implement threshold numbers and / or types of signatures to transfer large amounts of digital assets, such as cryptocurrency or tokens representing another resource. Transfers of these assets may be represented on the blockchain after processing based on criteria applied by such enterprise wallet implementation.

[0068] SPV services 308 (simplified payment verification) are applications that require information from the blockchain but do not include a direct link to the blockchain, since they do not run miner nodes. Such SPV services 308 allow light clients to verify that transactions are included in the blockchain without downloading the entire blockchain 310. This may be advantageous if observers may receive a version of the event stream (discussed below in the second aspect) using a different API, such as an API related to simplified payment verification (SPV) for transaction verification. In this configuration, the platform service may act as an SPV server, and observers that receive a version of the event stream, i.e., a replica, for the purpose of verification may be SPV clients. Thus, the SPV service 308 may improve scalability and efficiency, and reduce network complexity. In combination with the use of channels (see Channel Service below), delivery and verification of data between peers may be significantly improved.

[0069] The present disclosure also relates to a computer-implemented method for implementing a channel service for one or more clients, the method being implemented by a channel processor and including receiving a request from a given client of the one or more clients, the request relating to the creation of a channel and providing the given client with access to one or more functions enabling direct communication between the given client and another entity over the channel. The channel service may be provided in combination with the SPV service 308 or as a separate service within the platform 300. The method includes storing and / or providing one or more notifications related to the channel for the given client.

[0070] Advantageously, the use of channels enables direct or peer-to-peer communication for clients via methods, devices, and systems that provide an interface or functionality for channels or messaging services without the need for such clients to implement any processing or functionality related to the blockchain, while still being able to take advantage of all the benefits associated therewith.

[0071] The channel services may be provided by a separate channel processor, or may be provided by the aforementioned platform or platform processor, or may be implemented separately / independently from the client and / or platform. A channel enables a direct or peer-to-peer communication path or session for the transfer of messages or data between entities, for example, as may be required for validation. One example of a channel service and / or channel processor is described in UK Patent Application No. 2007597.4, filed in the name of nChain Holdings Limited, the subject matter of which is incorporated herein by reference.

[0072] In addition to the above, storage services may also be provided via the platform 300. In some embodiments, any underlying data related to the platform may optionally be stored in a separate and / or geofenced storage option provided to clients of the platform services. This may be used to store data necessary for validation of any blockchain transactions related to the platform, or for secure retrieval of data related to clients or data related to smart contracts. Geofenced data storage advantageously ensures that data may be held in compliance with local laws (e.g., GDPR), thus allowing the platform / service provider for the platform 300 to have some legal or other accountability for data held in storage.

[0073] Second aspect – A platform that provides blockchain-related data writing services Figure 4 relates to a second aspect of the disclosure and illustrates a computer-implemented method for providing a data writing service for blockchain-related transactions, such as data writer 302a seen in Figure 3 of the first aspect. The method of Figure 3 is implemented by a platform processor associated with an application programming interface (API) for the service.

[0074] Step 402 illustrates receiving a request from a client, the request being associated with an event stream ES implemented using a blockchain. As with the first aspect, the request from the client is in a HyperText Transfer Protocol (HTTP) transmission protocol format. In some embodiments, the event stream is associated with a state machine and represents a machine-readable contract or smart contract implemented as a finite state machine in the blockchain. A finite state machine (FSM) is a well-known mathematical model of computation. An FSM is an abstract machine that can be in exactly one of a finite number of states at any given time. An FSM can change from one state to another in response to some external inputs, and the change from one state to another is called a transition. An FSM may be defined by its states, its initial state, and a list of conditions for each transition. In the Bitcoin SV blockchain, the UTXO set can be thought of as a state machine, where the consumption state of a given output is a function of previous inputs to the transaction (machine). Thus, by replaying all transactions, the current consumption state of any output, and the current contents of the UTXO set, can be deterministically established using the blockchain. Thus, in the embodiment of FIG. 4, the request can be viewed as a request to change the current state of the smart contract, implemented as an event stream ES in the blockchain.

[0075] Step 404 includes, by a data writer or platform processor for implementing a data writing service, generating the event stream ES i=n Let i be an integer between 0 and N, with each integer i representing a given state of the event stream ES having a finite number of states, whereby i=0 represents the created event stream ES, i=n represents the event stream ES in its current state in the blockchain, and i=N represents the final state of the event stream ES. Thus, the current state of the event stream ES is En.

[0076] Step 406 selects a next or new event E for the event stream ES based on the received request in step 402. n+1 In this embodiment, the new event may be data or a function that triggers a change in state such that the event stream transitions to the next state.

[0077] Step 408 includes one or more processors associated with the platform processor that implements the data writer to generate a blockchain transaction TX n+1 Next event E n+1 The steps to create a blockchain transaction TX are shown below. n+1 At least, Previous transaction TX n Transaction Output (TXO) from n ) and this input is the TXO from the previous transaction. n An input that consumes an output, New Event E n+1 Event data representing the unspent outputs (UTXOs) associated with n+1 ), which in some embodiments is a data output, i.e., represents the data carrier element of the transaction, and There may be additional inputs, such as a funds input to cover network mining fees if necessary, and there may also be other outputs, such as a change output for the transaction.

[0078] Step 410 illustrates submitting the transaction TXn+1 created in step 408 to a blockchain, where the transaction may be submitted to a blockchain such as Bitcoin SV for inclusion in a subsequent block by a miner node or BSV node software associated with the platform processor.

[0079] Step 412 is i=n =ES n+1So that the newly created event E n+1 The current state of the event stream based on the i=n+1 This indicates that the latest transaction, TX, submitted to the blockchain on ES is to be updated. n+1 In some embodiments, the new state corresponds to the last transaction output UTXO n+1 The event information is identified and updated based on the event data output in

[0080] Step 414 is a step of converting the current state ES n+1 and the results are provided to the client based on the HTTP transfer protocol format.

[0081] Turning now to FIG. 5, an exemplary simplified block diagram of a computing device 2600 that may be used to implement at least one embodiment of the present disclosure is provided. In various embodiments, the computing device 2600 may be used to implement any of the systems illustrated and described above. For example, the computing device 2600 may be configured to be used as one or more components of the illustrated DBMS, or the computing device 2600 may be configured to be a client entity associated with a given user, where the client entity makes database requests to a database managed by the DBMS of FIG. 5. Thus, the computing device 2600 may be a portable computing device, a personal computer, or any electronic computing device. As shown in FIG. 5, the computing device 2600 may include one or more processors (collectively labeled 2602) having one or more levels of cache memory and a memory controller configured to communicate with a storage subsystem 2606, which includes a main memory 2608 and persistent storage 2610. The main memory 2608 may include dynamic random access memory (DRAM) 2618 and read only memory (ROM) 2620 as shown. The storage subsystem 2606 and cache memory 2602 may be used for storage of information such as details related to transactions and blocks as described in this disclosure. The processor 2602 may be utilized to provide the steps or functions of any embodiment as described in this disclosure.

[0082] The processor 2602 may also be in communication with one or more user interface input devices 2612 , one or more user interface output devices 2614 , and a network interface subsystem 2616 .

[0083] The bus subsystem 2604 may provide a mechanism for allowing the various components and subsystems of the computing device 2600 to communicate with each other as intended. Although the bus subsystem 2604 is shown diagrammatically as a single bus, alternative embodiments of the bus subsystem may utilize multiple buses.

[0084] The network interface subsystem 2616 may provide an interface to other computing devices and networks. The network interface subsystem 2616 may act as an interface to receive data from and transmit data to other systems from the computing device 2600. For example, the network interface subsystem 2616 may allow a data technician to connect the device to a network such that he or she may be able to send data to and receive data from the device while at a remote location, such as a data center.

[0085] The user interface input devices 2612 may include one or more user input devices, such as a keyboard, a pointing device, such as an integrated mouse, trackball, touchpad, or graphics tablet, a scanner, a barcode scanner, a touch screen integrated into a display, a voice recognition system, an audio input device, such as a microphone, and other types of input devices. In general, use of the term "input device" is intended to include all possible types of devices and mechanisms for inputting information into the computing device 2600.

[0086] The one or more user interface output devices 2614 may include a display subsystem, a printer, or a non-visual display such as an audio output device. The display subsystem may be a cathode ray tube (CRT), a flat panel device such as a liquid crystal display (LCD), a light emitting diode (LED) display, or a projection or other display device. In general, use of the term "output device" is intended to include all possible types of devices and mechanisms for outputting information from the computing device 2600. The one or more user interface output devices 2614 may be used, for example, to present a user interface that facilitates user interaction with applications that execute the described processes and variations thereof, when such interaction may be appropriate.

[0087] The storage subsystem 2606 may provide a computer-readable storage medium for storing basic programming and data structures that may provide functionality of at least one embodiment of the present disclosure. Applications (programs, code modules, instructions), which when executed by one or more processors, may provide functionality of one or more embodiments of the present disclosure, may be stored within the storage subsystem 2606. These application modules or instructions may be executed by one or more processors 2602. The storage subsystem 2606 may further provide a repository for storing data used in accordance with the present disclosure. For example, the main memory 2608 and the cache memory 2602 may provide volatile storage for programs and data. The persistent storage 2610 may provide persistent (non-volatile) storage for programs and data and may include flash memory, one or more solid state drives, one or more magnetic hard disk drives, one or more floppy disk drives with associated removable media, one or more optical drives with associated removable media (e.g., CD-ROM or DVD or Blue-Ray), and other similar storage media. Such programs and data may include programs for performing the steps of one or more embodiments as described in this disclosure, as well as data related to transactions and blocks as described in this disclosure.

[0088] The computing device 2600 may be of various types, including a portable computing device, a tablet computer, a workstation, or any other device described below. In addition, the computing device 2600 may include another device that may be connected to the computing device 2600 via one or more ports (e.g., USB, headphone jack, Lightning connector, etc.). The device that may be connected to the computing device 2600 may include multiple ports configured to accept fiber optic connectors. Thus, the device may be configured to convert optical signals into electrical signals that may be transmitted through ports that connect the device to the computing device 2600 for processing. Due to the ever-changing nature of computers and networks, the description of the computing device 2600 shown in FIG. 5 is intended only as a specific example to illustrate a preferred embodiment of the device. Many other configurations are possible having more or fewer components than the system shown in FIG. 5.

[0089] Enumerated exemplary embodiments In order to better explain, describe and understand the claimed aspects and embodiments, the present disclosure will now be discussed based on the following clauses related to the above aspects, which are provided as exemplary embodiments herein.

[0090] 1. A computer-implemented method for providing a platform for multiple blockchain related services, the platform being provided to multiple clients, the method being implemented by a platform processor associated with an application programming interface (API), the method comprising: receiving a request from a given client of the plurality of clients, the request relating to a given service of the plurality of services, the request from the given client being based on a HyperText Transfer Protocol (HTTP) transmission protocol format; obtaining a destination address associated with a given service based on the client's identity and / or a determination that the request is valid; Processing a request for a given service based on at least one blockchain transaction corresponding to the obtained destination address to obtain an output script; sending a result associated with the output script to a given client, the result being provided based on an HTTP transmission protocol format; 4. A computer-implemented method comprising:

[0091] 2. The method described in clause 1, wherein the platform processor is implemented as an HTTP API endpoint.

[0092] 3. The method of claim 2, wherein the platform processor is implemented as a Representational State Transfer (REST) ​​endpoint.

[0093] 4. The method of any one of clauses 1 to 3, wherein the platform processor comprises or is associated with a plurality of processors, each of the plurality of processors configured to implement a given service of a plurality of services on the blockchain, and each of the plurality of processors is associated with a particular destination address or endpoint unique to the respective processor.

[0094] 5. The platform processor is associated with an API converter, and the API converter: receiving a request from a given client in HTTP transmission protocol format; converting the received request into a remote procedure call (RPC) format and sending the RPC request to a given processor of the plurality of processors that is configured to implement a given service identified in the received request; receiving a response from a given processor in an RPC format related to at least one blockchain transaction; converting each response to be sent to the client using the HTTP transmission protocol; configured to run, 5. The method according to any one of clauses 1 to 4.

[0095] 6. The method of any one of clauses 1 to 5, wherein the received request is an HTTP GET or POST or PUT or PATCH request that includes or is associated with a client identifier for a given client and a service identifier for a given service requested, and the result sent to the client is an HTTP POST request based on the client identifier for the given client.

[0096] 7. validating the client based on a client identifier and a record corresponding to the client identifier, the record being associated with a platform processor; determining whether a request received from the client is valid based on the service identifier and attributes or settings contained within the respective record based on successful validation of the client; 7. The method according to clause 6, comprising:

[0097] 8. The method of clause 6 or 7, wherein the client identifier is an alias provided for a given client, the alias being unique to the given client and provided by an alias-based addressing service, the addressing service having machine-readable resources accessible from a defined or known location, the machine-readable resources including one or more capabilities associated with the given client.

[0098] 9. The method of claim 8, wherein the alias is associated with a domain name for a given client.

[0099] 10. The Platform provides the following services implemented using blockchain, namely: A data service for writing / submitting data to the blockchain to change the blockchain state; A data service to read / get data reflecting the current state of the blockchain, Services relating to simplified payment verification for blockchain related transactions; Services relating to the management of one or more blockchain-related event streams and / or smart contracts; Services relating to the management of a digital wallet framework for multiple blockchain-related clients; Services relating to the provision of peer-to-peer communication channels; Data storage related services at least one or more of 10. The method according to any one of clauses 1 to 9.

[0100] 11. A computer-implemented method for accessing a platform of multiple blockchain related services, the platform being provided to a plurality of clients, the method being implemented by one or more processors of a given client of the plurality of clients, the method comprising: obtaining or identifying application programming interface (API) endpoints associated with one or more processors associated with the platform; sending a request related to a given service of the plurality of services, the request including or associated with a client identifier for the given client and a service identifier for the given service requested, the request being sent based on a HyperText Transfer Protocol (HTTP) transmission protocol format; receiving a result associated with an output script of a blockchain transaction associated with the request, the result being provided to the client based on an HTTP transmission protocol format; Including, Computer-implemented method.

[0101] 12. A computer-implemented method for implementing a data writing service for a blockchain-related transaction, the method being implemented by a platform processor associated with an application programming interface (API), the method comprising: receiving a request from a client, the request relating to an event stream ES implemented using blockchain, the request from the client being based on a HyperText Transfer Protocol (HTTP) transmission protocol format; Event Stream ES i=n determining a current state of the event stream ES, where i is an integer between 0 and N, each integer i representing a given state of the event stream ES, i=0 representing the created event stream ES, i=n representing the event stream ES at its current state in the blockchain, and i=N representing the final state of the event stream ES; New Event E on Event Stream ES n+1 Based on the received request, the following steps are performed: Blockchain transaction TX n+1 A step of creating a blockchain transaction TX n+1 But the previous transaction TX n Transaction Output (TXO) from n ) and the new event E n+1 Event data representing the unspent outputs (UTXOs) associated with n+1 ) Transaction TX n+1 and submitting the token to the blockchain. and processing the Including, In response to the submission, the method comprises: i=n =ES n+1 So that the newly created event E n+1 The current state of the event stream based on the i=n+1 and updating the Updated current status ES n+1 transmitting a result based on the result, the result being provided based on an HTTP transmission protocol format; Including, Computer-implemented method.

[0102] It should be noted that the above aspects and embodiments illustrate, rather than limit, the disclosure, and that those skilled in the art can design many alternative embodiments without departing from the scope of the disclosure, which is defined by the appended claims. In the claims, any reference signs placed in parentheses shall not be construed as limiting the scope of the claims. Terms such as "comprising" and "comprises" do not exclude the presence of elements or steps other than those recited in any claim or the specification as a whole. In this specification, "comprising" means "including or consisting of" and "comprising" means "comprising or consisting of". A singular reference of an element does not exclude a plural reference of such element and vice versa. The disclosure may be implemented by hardware comprising several distinct elements, and by a suitably programmed computer. In a device claim reciting several means, these means may be embodied by one and the same item. The mere fact that certain means are recited in mutually different dependent claims does not indicate that a combination of these means cannot be used to advantage. [Explanation of symbols]

[0103] 100 Platform Processors, Platform Services, Platform 102 Data services, service modules or processing resources 104 Computational services, service modules or processing resources 106 Commerce services, service modules or processing resources 108 API 110 Underlying Software 300 Platform 302 Data Services 302a Data writer service, data writer 302b Data Reader Service 304 Commerce Services 304a Enterprise Wallet 306 Computational Services 306a Application 306b Framework 308 SPV Services 310 Blockchain 2600 Computing Devices 2602 processor, cache memory 2604 Bus Subsystem 2606 Storage Subsystem 2608 Main memory 2610 Persistent Storage 2612 User Interface Input Device 2614 User Interface Output Device 2616 Network Interface Subsystem 2618 Dynamic Random Access Memory (DRAM) 2620 Read-Only Memory (ROM)

Claims

1. 1. A computer-implemented method for providing a platform for multiple blockchain related services, the platform being provided to multiple clients, the method being implemented by a platform processor associated with an application programming interface (API), the method comprising: receiving a request from a given client of the plurality of clients, the request relating to a given service of the plurality of services, the request from the given client being based on a HyperText Transfer Protocol (HTTP) transmission protocol format; obtaining a destination address associated with the given service based on the client's identity and / or a determination that the request is valid; Processing the request for the given service by generating at least one blockchain transaction corresponding to the obtained destination address to obtain an output script; sending a result associated with the output script to the given client, the result being provided based on the HTTP transmission protocol format; 4. A computer-implemented method comprising:

2. The method of claim 1 , wherein the platform processor is implemented as an HTTP API endpoint.

3. The method of claim 2 , wherein the platform processor is implemented as a Representational State Transfer (REST) ​​endpoint.

4. 4. The method of claim 1, wherein the platform processor comprises or is associated with a plurality of processors, each of the plurality of processors configured to implement a given service of the plurality of services on the blockchain, and each of the plurality of processors is associated with a particular destination address or endpoint unique to the respective processor.

5. The platform processor is associated with an API converter, the API converter comprising: receiving the request from the given client in the HTTP transmission protocol format; converting the received request into a remote procedure call (RPC) format and sending an RPC request to a given processor of a plurality of processors that is configured to implement the given service identified in the received request; receiving a response from the given processor in an RPC format related to at least one blockchain transaction; converting each response to be sent to the client using the HTTP transport protocol; configured to run, 5. The method according to any one of claims 1 to 4.

6. 6. The method of claim 1, wherein the received request is an HTTP GET or POST or PUT or PATCH request that includes or is associated with a client identifier for the given client and a service identifier for the requested given service, and the result sent to the client is an HTTP POST request based on the client identifier for the given client.

7. validating the client based on the client identifier and a record corresponding to the client identifier, the record being associated with the platform processor; determining, based on successful validation of the client, whether the received request from the client is valid based on the service identifier and attributes or settings contained within the respective record; 7. The method of claim 6, comprising:

8. 8. The method of claim 6 or 7, wherein the client identifier is an alias provided for a given client, the alias being unique to the given client and provided by an alias-based addressing service, the addressing service having machine-readable resources accessible from a defined or known location, the machine-readable resources including one or more capabilities associated with the given client.

9. The method of claim 8 , wherein the alias is associated with a domain name for the given client.

10. The platform provides the following services implemented using the blockchain: A data service for writing / submitting data to the blockchain to change the state of the blockchain; a data service for reading / obtaining data reflecting the current state of said blockchain; Services relating to simplified payment verification for transactions related to said blockchain; Services relating to the management of one or more event streams and / or smart contracts associated with said blockchain; Services relating to managing a digital wallet framework for a plurality of clients associated with said blockchain; Services relating to the provision of peer-to-peer communication channels; Data storage related services at least one or more of 10. The method according to any one of claims 1 to 9.

11. 1. A computer-implemented method for accessing a platform of multiple blockchain related services, the platform being provided to a plurality of clients, the method being implemented by one or more processors of a given client of the plurality of clients, the method comprising: obtaining or identifying application programming interface (API) endpoints associated with one or more processors associated with the platform; sending a request related to a given service of the plurality of services, the request including or associated with a client identifier for the given client and a service identifier for the requested given service, the request being sent according to a HyperText Transfer Protocol (HTTP) transmission protocol format; receiving a result associated with an output script of a blockchain transaction associated with the request, the result being provided to the client based on the HTTP transmission protocol format; Including, Computer-implemented method.

12. 1. A computer-implemented method for implementing a data writing service for a blockchain-related transaction, the method being implemented by a platform processor associated with an application programming interface (API), comprising: receiving a request from a client, the request relating to an event stream ES implemented using the blockchain, the request from the client being based on a HyperText Transfer Protocol (HTTP) transmission protocol format; The event stream ES i=n determining a current state of the event stream ES, where i is an integer between 0 and N, each integer i representing a given state of the event stream ES, with i=0 representing the created event stream ES, i=n representing the event stream ES in its current state in the blockchain, and i=N representing a final state of the event stream ES; A new event E for the event stream ES n+1 based on the received request, performing the following steps: Blockchain transaction TX n+1 A step of creating the blockchain transaction TX n+1 But the previous transaction TX n Transaction Output (TXO) from n ) and the new event E n+1 Event data representing the unspent outputs (UTXOs) associated with n+1 ) The transaction TX n+1 to the blockchain; and processing the Including, In response to the submission, the method comprises: i=n =ES n+1 The newly created event E n+1 ES the current state of the event stream based on i=n+1 and updating the Updated current status ES n+1 transmitting a result based on the HTTP transmission protocol format; Including, Computer-implemented method.

Citation Information

Patent Citations

  • Computer-implemented system and method

    GB201907180D0

  • Computer-implemented system and method

    GB202007597D0

  • System and method for implementing deterministic finite automaton (DFA) via blockchain

    JP2019522264A

  • US16/384696

  • System for control of secure access and communication with different process data networks with separate security features

    US20170230353A1