Distributed Ledger Computing Platforms and Associated Methods, Systems and Devices
IndexedDB is used to manage distributed ledger data on user devices, addressing the challenges of complex blockchain operations and ensuring secure, efficient data persistence and synchronization without extensive infrastructure.
Patent Information
- Authority / Receiving Office
- AU · AU
- Patent Type
- Applications
- Current Assignee / Owner
- CHRISTOPHER HIGGINS
- Filing Date
- 2024-03-20
- Publication Date
- 2026-07-09
Smart Images

Figure 00000058_0000 
Figure 00000093_0000 
Figure 00000094_0000
Abstract
Description
Initialises a new instance of the Node class Description Contains a list of the current active full nodes Contains a list of nodes alive that messages are received from contains the current list of full nodes A flag as to whether the chain was loaded from the central functions or not the count of current full nodes The last error message Flag if an active node is found 2024201824 20 Mar 2024 Public property FullNodesContactCompleted Flag if the full nodes contact cycle has completed Public property StaticFullNodesContacted member A list of fully contacted nodes Public property InactiveFullNodes A list of inactive full nodes Static member Public property StaticMaxChildCount The max_children member Public property MaxFullNodesCount The max_FULL Static member Public property StaticMyPendingMessages pending messages member Public property StaticMyRequestsExpectedResponses A list of requests expecting responses member Public property Myllser The address of the current user Public property StaticMyVotes My List of Votes member Public property NodeDistrustMax Node distrust max limit Static member Public property StaticPingMessageRecievedFrom member a list of nodes where we have a ping message Public property PingResponseTimes a list of ping response times Static member Public property StaticlIpTime My Uptime in ticks member Methods Type Name Description Public method AddFullNodeToDb Create a brand new node and advertise centrally Protected BuildRenderTree method Public method CheckForMyMessagesInChain Check for my messages in the blockchain 2024201824 20 Mar 2024 Public methodDistrustNode Static member Public method DistrustNodeByld Static member Public method GenKeys Public method GetAllFullNodesAsync Public methodMessageMyChildNodes Static member Public method MessageMyParentNode Static member Public methodMessageMyPeerNodes Static member Protected OnAfterRender method Protected method OnlnitAsync Protected Protected method method Public methodReceiveMessage Static member Protected method ReloadChainFrom Database Static member Protected method StartRTC Distrust a node by extracting its id from the peerJS error message Distrust a node by its id Generates Keys Async method to get all full nodes from the DB MessageMyChild Nodes Send a message to my parent node Send a message to all my peer nodes OnAfterRender Decide what I am on initiate event Lifecycle event ReceiveMessage 2nd action: Register me as a new peer on the peerJS network and get me an RTC Id Persist me to the database Appendix One: IndexedDB IndexedDB is a large-scale, NoSQL storage system, included in the specification for modern browsers. It lets you store just about anything in the user's browser. In addition to the usual search, get, and put actions, IndexedDB also supports transactions. Here is the definition of IndexedDB on MDN: "IndexedDB is a low-level API for client-side storage of significant amounts of structured data, including files / blobs. This API uses indexes to enable high-performance searches of this data. While DOM Storage is useful for storing smaller amounts of data, it is less useful 2024201824 20 Mar 2024 for storing larger amounts of structured data. IndexedDB provides a solution." Each IndexedDB database is unique to an origin (typically, this is the site domain or subdomain), meaning it cannot access or be accessed by any other origin. Data storage limits are usually quite large if they exist at all, but different browsers handle limits and data eviction differently. IndexedDB Terms • Database - This is the highest level of IndexedDB. It contains the object stores, which in turn contain the data you would like to persist. You can create multiple databases with whatever names you choose, but generally, there is one database per app. • Object store - An object store is an individual bucket to store data. You can think of object stores as being similar to tables in traditional relational databases. Typically, there is one object store for each 'type' (not JavaScript data type) of data you are storing. For example, given an app that persists blog posts and user profiles, you could imagine two object stores. Unlike tables in traditional databases, the actual JavaScript data types of data within the store do not need to be consistent (for example, if there are three people in the 'people' object store, their age properties could be 53, 'twenty-five', and unknown ). • Index - An Index is a kind of object store for organising data in another object store (called the reference object store) by an individual property of the data. The index is used to retrieve records in the object store by this property. For example, if you're storing people, you may want to fetch them later by their name, age, or favourite animal. • Operation - An interaction with the database. • Transaction - A transaction is a wrapper around an operation, or group of operations, that ensures database integrity. If one of the actions within a transaction fails, none of them is applied, and the database returns to the state it was in before the transaction began. All read or write operations in IndexedDB must be part of a transaction. Storing operations within transactions allows for atomic read-modify-write operations without worrying about other threads acting on the database at the same time. • Cursor - A mechanism for iterating over multiple records in the database. Our use of IndexedDB As Unblocked was developed, it became apparent that we needed a system for local persistence of data and information. On a low powered device, navigating through blocks and Merkle trees was computationally intensive and complex. If we could persist data in a structured database, it would make the development of application simpler and faster and enable multiple new scenarios. We initially stumbled across this implementation: wtulloch / Blazor. IndexedDB which formed the basis for our implementation. While Bill's implementation is naive, we have extended the platform 2024201824 20 Mar 2024 to provide the full functionality we need while ensuring that this open source project is kept up to date with the latest Blazor developments. IndexedDB, therefore, provides the persistence model for our applications, delivering a full document database allowing developers to write code that does not need to consider how this data will work with other instances of the application. The following are the various actions and how they operate: IndexedDBService The IndexedDB Service class provides the core functionality to access the browser IndexedDB from a Blazor application running in WebAssembly. It consists of the following Methods: • CreateDatabase - Creates a Database • GetDatatabase - Obtains a database given the database name • GetDatabases - Retrieves a list of databases in the browsers IndexedDB Database The database class is used to define, create and work with IndexedDB Database. It has the following methods • Database - This constructor creates a new database It has the following properties • Name - The name of the database • Stores - a list<Store>of stores in the database • Version - the version of the database Index The index is a special type of store that allows the incredibly quick retrieval of items based on an index It has the following methods: • Index - This constructor creates a new index It has the following properties: • Auto • KeyPath • Name • Unique Store The store represents an indexedDB store, the key area of data storage. It has the following constructors: • Store - Creates a new instance of the store class 2024201824 20 Mar 2024 It has the following Properties • Indexes * IsDeleted 2024201824 20 Mar 2024 • Name • Primary Key It has the following methods • Add Record - Adds a record • Clear - Clears all records from the store • Delete - Deletes the store • DeleteRecord - Deletes a record • GetAIIRecordBylndex - Gets all record by index in the store • GetAIIRecords - Gets all records from the store • GetRecord - Gets a record by Id in the store • GetRecordBylndex - Get a record by Index in the store • Update - Updates indexes of this store • UpdateRecord - Updates a record The foregoing method and system has a number of benefits vs traditional systems and methods of working, not the least that it can provide a distributed platform whereby minimal infrastructure is required to run applications and complex multiuser applications can operate securely without the requirement for extensive hosting services. One or more embodiments of the invention may comprise one or more of distributed ledgers or blockchains ( blockchains) as a way of synchronising data between a blockchain instance running fully operational or participating, ephemeral or otherwise, blockchain nodes possessing a full copy of the blockchain or Epoch and one or more SQL or Non SQL Databases or Indexed Databases such as or similar to IndexedDB3. Said Database may advantageously be located in persistent storage on the User device. If a User device was lost or damaged a fresh copy of the database could be recovered at least by replaying the blockchain whereby the blockchain node running on the User device would unpack all blockchain transactions with a User related Address and send it to Database management system to be written in a new database. It is proposed that Applications employing the present invention would operate as if the said Application was addressing a database and the transactions or messages to create ,read, update or delete transactions in the database are passed to a data access layer API (DAL) which manages or assembles transactions messages so they can be passed to Node management software and or to 3 https: / / developers.google.com / web / ilt / pwa / working-with-indexeddb 2024201824 20 Mar 2024 Database management software and written to one or more of or both of blockchains and databases and including one or more local database in a User device. In other instances a Node on a blockchain and software controlling a database may send data to and receive data from each other. Said Databases in said User device could, for example, be set up to contain only transactions related to the user of the device in which the database and blockchain are held also in a blockchain and said blockchain transactions having addresses for which the user possesses the address and public and private keys. Said Address and Public key are stored in the blockchain or in a server or other database. Said addresses are User addresses or addresses necessary or useful for the User to be able to perform actions including gain access to, or run certain applications i.e. addresses for which the User has the private key (Addresses). Said addresses may contain an indicator or code to identify the ID of a blockchain to assist in determining the actions to be taken by software managing the system. Said addresses may also additionally identify business entities, divisions, departments, operations, groups, personnel, assets, projects, expenses, income, processes, procedures, actions, authorisations or anything required to be or which can usefully be identified within a business or government or not-for profit enterprise such that for example authorizarions by particular personnel could be promptly identified. Said local database could provide instant access for a User to Create , read, update or delete transactions whilst also creating and adding a transaction to a queue of proposed transactions for the next block to be written into a blockchain and write into the next block in a blockchain. Transactions in the blockchain and database may for example contain the executable code of any Application capable of running in a web browser and which can be launched and run within the User device without, or at least with minimal, dependency on a central server or database. The sequentially written blockchain records could as necessary be read and or searched and records recovered and compared with a corresponding database to verify that the said database reflects exactly the transactions in the blockchain. Said blockchain transactions could be written out again to refresh an existing database or create another or copy database. For example if a User obtained a new Address then upon demand or automatically on detection of a new address the management system could launch an update of a users database by "replaying" the blockchain to filter into the Users database all blockchain transactions having addresses and private keys, including said new address, to which the Users Node management software has access. User / Clients addresses created by the User in relation to one or more Blockchains and which said addresses are recorded with or as part of, and to identify, each of transactions initiated by a user or addressed to a User using said Users unique address on each particular blockchain and said 2024201824 20 Mar 2024 transaction may also record, either appended to Users address or separately, additional addresses or identifier portions identifying the transaction within a hierarchy appropriate to the function of a particular enterprise blockchain or distributed ledger system and said addresses or identifier portions or any of their parts identify the transactions added to the local database or databases maintained on each User device . Optionally, further identification of Blockchains may be accomplished by providing an identity code as part of each block unique to each blockchain. With the database and Blockchain records in a state of synchronisation the Database can provide fast access for all User purposes including creating a new transaction or updating an existing transaction or deleting a transaction. The system will reflect these Database transactions by creating corresponding blockchain transactions . The Database is generally updated immediately so the user has instant access to all database transactions information. There is some delay between the writing of a database transaction to a database and the writing to a blockchain of a copy of that database transaction but the present invention blockchain using a proof of stake consensus method referred to elsewhere herein is quite fast at writing blocks to the blockchain relative to writing of blocks to other blockchains . The operating code of the system 1) identifies which transactions in a blockchain have been applied / added to User databases and 2) decrypts said blockchain transactions having an address relating to the User and said address and private key of said address available to the Node software and adds as transactions to the User database said blockchain transactions. 3) In addition when User database transactions are initiated by a User running an application said transactions pass to and / or through a Data Access Layer API for translation or manipulation as necessary to:- a) input for Database software to immediately write the transaction to the User database with a flag as necessary to indicate a transaction not yet written to the blockchain. Once the candidate block, containing the relevant flagged transaction, has been validated and written and added to the blockchain or distributed ledger, there is a process described elsewhere to remove said flag. 2024201824 20 Mar 2024 b) and also input to, and in a form for, the Node software to receive the data as a transaction to be placed in the queue of proposed transactions to be written to the blockchain (candidate blocks) and subsequently written to the blockchain. Said transaction data sent to said node may include compiled computer code c) Note: the system can be arranged so that at least a copy of the transaction data is in a proper form and said data passes straight to the User database from the APP . 4) Blockchain nodes receive a copy of new blocks after they are written to the said blockchain and upon receipt of a new block a Node:- a) commences validation of new block & upon validation of said new blocks then applies an address filter to identify any of the transactions in the new block with addresses matching any of the addresses associated with said node or its user client account or User device and for which addresses the Node has access to private keys of the said addresses, so that these "identified" transactions can then be de-crypted and passed to the Data Access Layer API. b) Updating the Database directly by executing the code in the transaction to update the database or c) translation or manipulation into a form suitable for a database transaction and said translation can then be executed directly to update the database or passed to the Database Software which writes the "identified" transaction to a database. d) Some transactions in said new blocks may confirm earlier transactions written to the database with a flag that have now been written to the blockchain . Upon receipt of said confirming transaction having been written to the blockchain, said flag is removed or replaced by an indicator that the transaction is recorded in the blockchain . Any one or more of the above embodiments or preferred features can be combined with any other embodiment or feature and / or with any one or more of the above aspects. While there has been shown and described at least one preferred embodiment of an Improved computer architecture and software systems and methods supporting simpler and more secure blockchains, it will be appreciated that many changes and modifications may be made therein without, however, departing from the essential spirit thereof. The term "comprising" as used in this specification and claims means "consisting at least in part of". When interpreting each statement in this specification and claims that includes the term 2024201824 20 Mar 2024 "comprising", features other than that or those prefaced by the term may also be present. Related terms such as "comprise" and "comprises" are to be interpreted in the same manner. As used herein the term "and / or" means "and" or "or", or both. As used herein "(s)" following a noun means the plural and / or singular forms of the noun. In this specification a database (be it SQL or NoSQL / Non-SQL) , is intended to mean a series of transactions written in an order and able to be updated or deleted. In this specification the term "blockchain" is intended to mean: a construct of blocks of data connected together using hash pointers and representing a series of transactions performed between users of a peer-to-peer network, and / or a sequential series of records or transactions immutably written to and stored in a sequential chain of blocks. In this specification the term "node" or "user node" is intended to mean a software application which participates in the management of a blockchain. In this specification the term "wallet" is intended to mean a piece of software which communicates with and proposes blocks for the blockchain. In this specification, the term "WebAssembly" or the acronym "WASM" refers to a technology whereby common browsers operate a stack based virtual machine that allows common development languages to be compiled for it, such as described in https: / / en.wikipedia.org / wiki / WebAssembly. In this specification, the term "Blazor" is intended to refer to an experimental framework allowing .Net code to run under WebAssembly, such as described in https: / / dotnet.microsoft.com / apps / aspnet / web-apps / blazor. In this specification the term "WebRTC" is intended to refer to a proposed standard for peer to peer data, voice and video conversations between computers running browsers, such as described in https: / / en.wikipedia.org / wiki / WebRTC. 2024201824 20 Mar 2024 The invention consists in the foregoing and also envisages constructions of which the following gives examples only. All publications, patents, patent applications and other documents cited in this application are incorporated by reference in their entirety for all purposes to the same extent as if each individual publication and / or other document were individually indicated to be incorporated by reference for all purposes. BRIEF DESCRIPTION OF DRAWINGS Preferred embodiments of the invention will be described by way of example only and with reference to the drawings, in which: Fig. 1 is a block diagram demonstrating a preferred form distributed ledger system and method of the invention; and Fig. 1A is a block diagram demonstrating a preferred implementation of the distributed ledger system of Fig. 1 in which a group of users can connect to the system. Fig 2 is a block diagram of a system enabling Users to update financial details with multiple Providers in one operation Fig 3 is a Block diagram of a system of providing secure access to an application Which itself controls secure access to a Users bank accounts and other financial assets Fig 4 is a block diagram of a system providing Users with at least one a personal Indexed Database linked to at least one Blockchain . Fig 4a is a block diagram of an alternate version of the system of Fig 4. Fig 4b is a block diagram of an alternate version of the system of Fig 4. Fig 5 is a block diagram of an example of a document record system to be used association with a blockchain and indexed database system. 2024201824 20 Mar 2024 DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS This application relates to the following provisional patent application, the contents of which are all hereby incorporated by reference: Australian provisional patent application no. 2019900403 Filed on 8 Feb 2019; Australian provisional patent application no. 2019900875 Filed on 17 Mar 2019; Australian provisional patent application no. 2019900898 Filed on 19 Mar 2019; Australian provisional patent application no. 2019901022 Filed on T1 Mar 2019; Australian provisional patent application no. 2019901127 Filed on 3 April 2019; Australian provisional patent application no. 2019901191 Filed on 7 April 2019; Australian provisional patent application no. 2019901192 Filed on 7 April 2019; Australian provisional patent application no. 2019901202 Filed on 9 April 2019; Australian provisional patent application no. 2019901288 Filed on 14 April 2019; Australian provisional patent application no. 2019901289 Filed on 14 April 2019; Australian provisional patent application no. 2019901617 Filed on 13 May 2019; Australian provisional patent application no. 2019901625 Filed on 13 May 2019; Australian provisional patent application no. 2019901632 Filed on 13 May 2019; Australian provisional patent application no. 2019901672 Filed on 17 May 2019; Australian provisional patent application no. 2019901673 Filed on 17 May 2019; Australian provisional patent application no. 2019902368 Filed on 4 July 2019. In the following description, specific details are given to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, software modules, functions, circuits, etc., may be shown in block diagrams in order not to obscure the embodiments in unnecessary detail. In other instances, well-known modules, structures and techniques may not be shown in detail in order not to obscure the embodiments. Also, it is noted that the embodiments may be described as a process that is depicted as a flowchart, a flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be rearranged. A process is terminated when its operations are completed. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc., in a computer program. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or a main function. Aspects of the systems and methods described below may be operable on any type of general purpose computer system or computing device, including, but not limited to, a desktop, laptop, notebook, tablet or mobile device. The term "mobile device" includes, but is not limited to, a 2024201824 20 Mar 2024 wireless device, a mobile phone, a mobile communication device, a user communication device, personal digital assistant, mobile hand-held computer, a laptop computer, an electronic book reader and reading devices capable of reading electronic contents and / or other types of mobile devices typically carried by individuals and / or having some form of communication capabilities (e.g., wireless, infrared, short-range radio, etc.). FIG. 1 Is a schematic view of a preferred embodiment of an improved computer architecture software system enabling and supporting simpler more secure and efficient systems deploying one or more blockchains as part of the system. System 100 is an improved computer architecture software system enabling and supporting simpler more secure and efficient systems deploying one or more blockchains as part of the system ( System) comprising; an application server or server system API Server 250 having communication connections 20 with Client Applications 150a, 150b and 150c which reside on Client Devices. Said Client Devices may also be referred to as Client Devices 150a, 150b & 150c and may consist of one or more of mobile or smartphones, personal computers, tablets or any device capable of supporting the running of a modern web browser. The Client Applications 150a, b & c each contain a synchronously operating fully operational blockchain node respectively 200a, 200b, 200c each of which are able to communicate freely using WebRTC with each other and others of said synchronously operating fully operational blockchain nodes on others of Client Devices and any others of synchronously operating fully operational blockchain nodes such as 200G and 200N connected to the API Server System 250. Node 200N has communication connection 10 with API server system 250. Communication connection 15 connects API Server System 250 with SQL Database system 300. A PEERSERVER 280 may as necessary be included with connections similar to those shown or as shown for Node200N and / or API server 250 and said PEERSERVER provides to Nodes, for one or more blockchains, one or more of Blockchain Node Id address, WebRTC address, IP address , so that Nodes may communicate with other of Nodes in one or more of text / video / image / voice means and by one or more of methods broadcast to all or 1 to 1, or 1 to many, or many to many. Communication connections 10a to 10g provide peer to peer communication capabilities between nodes 200a, 200b, 200c, 200G and 200N. Node 200N also shows yet another preferred embodiment whereby Nodes may be provided with direct communication connection to each API server here shown is communication connection 12 between node 200N and API server system 250. 2024201824 20 Mar 2024 One or more Node Communication Servers 280 may be connected to provide and maintain node addresses for all nodes registered and / or participating in one or more blockchain systems so that new node addresses may be issued to new participants on a blockchain and active participating nodes on a blockchain may be recorded and monitored as active or otherwise. Node Communication Servers 280 are shown connected via link 10g but may be positioned where appropriate in the system to be in direct communication with one or more of nodes, API Server , persistent nodes, SQL database. Preferably at least said API Server System 250 and SQL Database system 300 and nodes 200G and 200N and Nodes Communication Server or PEERSERVER 280 are scalable and all reside within a public cloud computing environment 400. FIG 2 Is a schematic view of a another preferred embodiment of an improved computer architecture software system such as a decentralized Application or DApp enabling and supporting simpler more secure and efficient business systems deploying one or more blockchains as part of the system. System 105 consists the entire system comprising; an application server or server system API Server 250 ; one or more of a SQL Database 300 ; one or more of a persistent fully participating blockchain Node 255; one or more Clients 50; one or more client mobile or other devices 100 running a web browser containing a fully participating Blockchain Node 110 ; one or more Merchants and in the present instance Merchant 80- having computer / device 207 running a web browser with blockchain Node 245 running therein and also having a connection H to Merchant 80 Legacy software / software system ( Legacy System) 265 and Merchant 82- having computer / device 202 running a web browser with blockchain Node 250 running therein and said computer / device 202 also having a connection F to Merchant 82 Legacy System 270. The various components connected by a virtual private network (VPN) given effect by Peer Server 500 which provides addresses, for valid users of the Blockchain and or the DApp (User or Users), to the blockchain Nodes associated with each User as their devices come online and commence to run the DApp. The connections depicting said VPN in the present example are marked Al, A2, B, C , D & E . Connections B & C not depicted as directly in connection with any Nodes on the blockchain are or may be necessary for communications between devices and may be considered as part of the VPN. The method of operating the system comprises; Client 50 desiring to convey new credit card details to multiple merchants / subscription providers uses personal mobile device or computer 100 and by visiting a website is able to run the present 2024201824 20 Mar 2024 invention DApp commences to produce messages to convey said new Credit card details via an encrypted blockchain message such as message 400A and 400B to respective blockchain nodes 245 and 250 running in the respective devices 207 and 202 of respective Merchant providers 80 and 82 said devices 207 and 202 are also able to run the Merchant part of the DApp. The method to create the message comprises; the DApp having been provided with a list of merchants selected by the Client 50 and the Card details to be provided to said list of Merchants / providers and the Client Private encryption Key, the DApp automatically obtains from secure storage in one or more of the Blockchain Nodes or via connection E and C from Database 300 via API server 250; the particular message layout required to mesh with the legacy computer / software systems maintained by each Merchant / provider in the said list as well as the Merchants Public key,the Merchants address on the blockchain to which the said message will be sent. The DApp then does one or more of loading the Client Card details and the Clients Id No or Account number with each Merchant / provider in the correct format into each message form for each Merchant providers in said list, encrypting, validating and signing with the Clients Private Key and addressing the message and upon completion of composing each message and, optionally, receiving confirmation from the Client 50 to proceed, to send the messages, the Node 110 associated with the Client 50 sends the multiple messages as shown in the example messages 400A and 400B as transactions to the blockchain addressed respectively to Merchants 80 and 82. Upon writing of the transactions into the blockchain the messages are in effect delivered and for all Nodes that are live on the Blockchain, said live Nodes commence to validate the blocks and if Nodes associated with Merchant addressees / recipients of the switch messages, in this example Merchants 80 and 82, are live then those Nodes 245 and 250 respectively in the present example will, upon reviewing the new block(s), as addressees / recipients then do one or more of note / validate / decrypt the message as originating sent by a particular customer to update customers records and pass the new Client Card details to the DApp to pass to or otherwise pass directly to the Legacy System to record the new Client details. Upon completion of the Update a message is created or instigated by the DApp, to notify the client / User that the new Card Details have been recorded. Said message is then encrypted with the Recipients Public Key and validated and signed with Merchants Private Key. Said messages are then written as transactions for the blockchain by Nodes 245 and 250 respectively associated with Merchants 80 and 82 and when a block containing the transaction is written to the Blockchain it is transmitted to all live Nodes and the dotted line paths for connections 2024201824 20 Mar 2024 Al and A2 depict the return Message path and if Client 50 Node 110 is live then the said node 110 will then do one or more of note / validate / decrypt the return Message as originating from the particular Merchant and said Node and / or Said DApp will add a notification to an unread or waiting messages or similar display on the clients screen and display the message for the Client to read as required or if in the present example Node 110 is not live then as soon as the Client next logs in then the Node 110 will request the current Blockchain and will search for transactions messages addressed to itself and / or its Client or will discover same as part of its review & validation of blocks. Said Node and / or said DApp will then proceed as may be required by the client to display said return message. In yet another embodiment of the present invention the recording of sensitive Client details in relatively unsecure Legacy computer systems may be replaced by Merchants relying on the present invention highly secure blockchain and / or DApp to be the source of Client Card details when Merchants require such information for billing purposes. FIG 3 Is a schematic view of another preferred embodiment of an improved computer architecture software system such as a decentralized Application or App enabling a structured system and method of securely storing and accessing data of a user temporarily or permanently unable to access said data. System 132 consists of and is populated or given effect by method such that any User 50 having a device 100 operating a modern web browser with a Web- Assembly instance 112 containing / running one or more Apps required by a User and in this example:- a) User 50 has created or arranged creation of certain User accounts in an Application Appl 65 refer Table 1 which table is a part representation of some of the data capturable by Appl of User Id entities at Lines 1 to 8 and columns A to at least Fleast F of said Table 1 and specifically:-i) Entities P1,P2,P3,P4 - or any one or more of them collectively Trust Group 60 in effect may have access to the device(s) and Apps of User 50 and in this example said Trust group60 entities have Id and ii) access / security data recorded at Lines 4 to 7 columns A to at least column F of said Table 1 plus other columns not shown which may represent other data stored including but not limited to protocol / permissions / procedures set up by User 50 to allow for access by one or more members of Trusted Group 60 in certain events of inability of User 50 to access critical Apps including Other Apps Data referred to at lines 9 to at least 12 and columns A to at least F of said 2024201824 20 Mar 2024 Table 1. b) User 50 could commence by running Appl Refer Tablel which Table shows a representation of some of the data captured by Appl of User Id entities P1,P2,P3,P4 & the User respectively at lines 4 to 8 of Column A in Table 1 and each of said User Id entities being required to verify identity to gain access to Appl by providing password and / or other verification means previously arranged as follows:- Example User ID " User" would have to provide at least Password X5 (refer Column B row 8 of Table 1) to gain initial access to Appl. Thereafter the further security process is to Set up of Appl whereby User 50 having already set up and entered User 50's own access data for Appl refer row 8 Columns A to at least columns F said User 50 then allocates or provides to each of Entities Pl to P4 User Id's represented by Appl Table 1 rows 4 to 7 Column A to individuals or entities and obtained or obtaining names and details (Name Id) represented at Table 1 rows 4 to 7 in columns E &F or higher and had said entities Pl to P4 privately and separately be or are directed to enter passwords XI through X4 represented at lines 4 to 7 in column A of Table 1. and said entities are further directed to enter; personal biometric characteristics and record also the data type of said biometric characteristics provided such data type being for example Static retinal or live motion retinal , or static facial , or live facial or static fingerprint and preferably live motion facial image but any of said biometric characteristics discussed elsewhere herein and referred to as Biometric Data Storage 1 represented at column C Rows 4 to 8 of Table 1 and Entities Pl, P2, P3 & P4 and User 50 Biometric Data Storage 1 and Appl Access Data represented at Table 1 rows 4 to 8 and columns A. B, C, E & Fi are shown in Fig 3 as 37 which is stored in Database 310. Said Entities Pl to P4 and User 50 may be further directed to repeat the acquisition of biometric data represented at Table 1 Column C rows 4 to 8 or copy the corresponding data stored in database 310 in a form suitable for a blockchain transaction to blockchain Node 110 and shown in Fig 3 as 35 which is stored in a blockchain by blockchain Node 110 . Said Entities P1,P2, P3, P4 and User 50 may also be invited or directed by Appl to enter further challenges and secret questions and answers and other static biometric data to enable recovery of access in certain circumstances. Collectively all foregoing data (Security Details) of the User 50 and trust group 60 comprising relatives friends of the User or in the case of corporate Users said trust group 60 comprising other officers of the corporation collectively referred to as (Trust Group 60),said Security Details obtained by known means and / or in the case of bio-metric data, created with a mobile phone or other device having electronic camera capability or other device (Biometric Data Capture), and store it electronically in Database 310 and sent to Blockchain node 2024201824 20 Mar 2024 110 as a transaction to be stored and is stored in a Blockchain and said Security Details, including image or images or other recording means of one or more of biometric characteristics of the User and the Trust Group and where appropriate recording of motion and said Biometric Data Capture stored so that said store of data relating to each individual may be accessed and stored separately ( Biometric Data Storage). Said Biometric Data or some of it is stored in more than one location and in the present invention example in 2 locations as shown in Fig 3 as follows; a) firstly in Fig 3 reference 37 in other storage on a mobile phone or other User device including storage such as personal or corporate cloud storage and / or in a database 310 (Biometric Data Storage 1). b) Secondly in Fig 3 reference 35 is sent in a transaction in a secure blockchain (Biometric Data Storage 2) Connection F from Appl and or App2 to Database 310. Said database 310 is shown as being located in Cloud Computing 800 but said Database 310 may instead be located (not shown) to operate in a web browser within User Device 100. c) Connection 'E' which may be cloud communication means, enables Blockchain Nodes 110,17,15 and Peerserver500 and API server 250 and Database 300 via 'C' to communicate as necessary bi-directionally across Network Address Translators via means of WebRTC.and PeerServer 500 leveraging PeerJS and WebRTC. 8 (https: / / webassembly.org / ) FIG 4 Is a schematic diagram of a User 2 having User device 5 deploying a fully operational node ( as distinct from a construct which is not communicating, or not able to communicate, with a group of its peers but in communication with one node of a blockchain may perform one but not all of the actions which are performed by a full or fully participating node of a blockchain sometimes described as a "lite node" ) of a blockchain 40 said node 40 having a full copy of the blockchain or Epoch / interval of a blockchain 70 and able to function as a fully participating node which may fulfil any of the actions and roles of nodes in the system. Said user device 5 runs a web browser 6 containing or running an instance of a Web Assembly 2024201824 20 Mar 2024 environment or WASM . Said WASM containing and facilitates running of one or more Applications 20 and 21 employed by the User, Software Stack 75 containing elements comprising or combining one or more of and / or employing the functionality of- Database Access Layer API software 30. ; Blockchain Node & Blockchain management software API 40. And 42; Database Software or database management system 50.; Address Filter 60.; and elements of said Software Stack 75 running and maintaining Blockchains 70. , 72 & Databases 80. , 82. Note: Positions of elements in stack are examples only and may vary and in another example of the present invention a single database contains all the blockchain transactions for which the User has private keys. User 2 has accepted or been granted use of or purchased or licensed Application 20 and said User acquires the address and private key of the Application 20 or other means of obtaining valid access to said Application 20 . User 2 uses Application 20 which creates a Database transaction 12 including a blockchain ID 33 and said transaction is passed to the Data Access Layer API 30. Said Data Access API Layer determines the transaction requires interaction with Blockchain Node and / or Database and in this instance both so the Transaction data is passed to Database Software 50 for immediate writing to the database 80. Then Data Access Layer API 30 translates or manipulates the database transaction instruction into code which it then compiles and passes the compiled code to Node API 40 and said Node software 40 is able to run unit tests as may be required against the compiled code of the transaction to test that it works or is valid or contains no malicious code and if it is valid, said Node API 40 then places the transaction in a queue of proposed transactions to be written into the blockchain as a transaction and sends a copy of the proposed transaction to all the blockchain Nodes it communicates with and these Nodes will also validate the Transaction. Said transaction will then be included in the next block to be written to the blockchain. Said transaction 12 is thereby written to a blockchain 70. and a Database 80 preferably with a flag or similar indicator (flag not shown but said flag is meant to indicate in the database that the transaction origin is the Application and has not yet been written into a block of the blockchain). Said blockchain transaction 12 is a proposed blockchain transaction in a proposed transaction queue, said blockchain transaction eventually becoming all or part of proposed new block, Block 2 and said proposed Block 2 sent (refer 13) to all Other User Devices 16. active on the blockchain system and said proposed new block, Block 2 is written by a selected Founder or blockwriter Node as Block 2. After new Block 2 is written a copy of all new blocks including Block 2 is sent to all active nodes by the blockchain system and when received from the blockchain system (refer 14) Node software 40 identifies the blockchain ID 33, verifies the new block, removes from its pending transactions queue 2024201824 20 Mar 2024 any pending transactions which have been included in the new block and applies an address filter 60. process by identifying and or decrypting any encrypted message or transaction in the received block 14 for which the Node has the private key for the target or recipient address or addresses and sends all decrypted transactions data from said new block to the Data Access Layer API software 30. and / or to the Database management software 50. So that said blockchain transaction data can be manipulated as necessary by Data Access Layer API software 30 and passed to Database management software 50 to be written to the database or if already in a form suitable for Database management software 50 to write the transaction data into the database or if already in a form suitable to write the transaction data into the database, to immediately write the transaction into the relevant database. User 2 also uses another blockchain Application 21 to read a document by creating a transaction 15 which in this example Application 21 communicates directly to the Database Software 50 which recovers the document from the Database 82 and passes it to Application 21 which enables User 2 to read said retrieved document. In an alternate arrangement Application 21 may send the read request 15 to Data Access Layer API software 30 which determines requires a read request and passed to Database Software 50 which provides said document to Application 21 In yet another example, application 21 also receives (referl7) a new Block 2 shown with dotted line outline to represent that said Block 2 has not yet been verified by the blockchain node of its blockchain 72 said new Block 2 is actually received by node software 42 managing said blockchain 72 and after receipt of any new block the blockchain node validates the block and in the process it determines if there are any transactions which have User related addresses. In this example the Node determines that there is one transaction in the said new Block 2 for which said Node 42 having read the Blockchain ID 34 as pertaining to its blockchain and said Node 42 having the Users private key and thereby decrypts and passes decrypted transaction data to the Data Access Layer API software 30 (DAL) and said DAL interprets the data and having determined that the data needs to be sent to database storage said DAL as necessary transcribes or manipulates data into appropriate form and sends said transaction data 17 to Database software 50 to be written into the database 82. Nodes 40 and 42 software may also communicate directly with Database software 50 performing as depicted via connection 49 at least part of the function of what is also referred to as the DAL i.e. the node software performs this with and in communication with the database software. 2024201824 20 Mar 2024 In yet another example of the present invention block chain nodes 40 and 42 and their respective Node management software may be replaced by a single node with node management software capable of managing multiple blockchains based on the Blockchain ID of each block refer Blockchain ID 33 in blocks contained in Blockchain 70 and Blockchain ID 34 in blocks contained in Blockchain 72 (Super Nodes). Operation of said Super Nodes will require modifications to said PeerServer (not shown) software to enable issuing, recording and storage in or in association with said Peerserver of more than one blockchain ID address for Super Nodes so that said Peerserver can for example, in response to nodes requesting a list of active nodes for a particular blockchain, at least provide or include in a list of active nodes for a particular blockchain, the appropriate Super Node blockchain address or addresses. Implementation of Super Nodes software would also require at least modification to software for 20 Application 1 and 21 Application 2 to correspond with obtaining of node addresses for a particular blockchain from said Peerserver and advantageously also one or more modifications to other software to implement use of; Block chain ID's contained in each block ; and or addresses or address portions additional to said User address, so that software for each of 20,21,30,50 and 60 ( Software Elements) may implement appropriate actions based on said modifications including said Blockchain ID's. One example of such modifications would enable Database Access Layer API 30 and or Database management software 50 to identify or associate a database and / or write transaction with a particular blockchain ID and or particular transaction addresses or address portions and thus a Database and or a Blockchain may be at least addressable or searchable based on said Blockchain ID and / or said transaction address and / or said address portions. Said Implementation of Super Nodes software could also enable, for example where an enterprise, having multiple blockchains and corresponding Databases, the exploration of the efficacy of the concept of creation of one or more of a Super Blockchain containing the transactions of all enterprise blockchains transactions and a Super Database containing the database transactions of each of the blockchain transactions in said enterprise blockchains. User 2 also uses another blockchain Application 21 to read a document by creating a transaction 15 which in this example Application 21 communicates directly to the Database Software 50 which recovers the document from the Database 82 and passes it to Application 21 which enables User 2 2024201824 20 Mar 2024 to read said retrieved document. In an alternate arrangement Application 21 may send the read request 15 to Data Access Layer API software 30 which determines requires a read request and passed to Database Software 50 which provides said document to Application 21 FIG 4A is a schematic diagram of another embodiment. User 2 having User device 5 deploying a fully operational node ( as distinct from a node sometimes described as a "lite node") of a blockchain 40 said node 40 having a full copy of the blockchain or Epoch / interval of a blockchain 70 and able to function as a fully participating node which may fulfil any of the roles of nodes in the system. Said user device 5. runs a web browser 6. containing or running an instance of a Web Assembly environment or WASM . Said WASM containing and facilitates running of one or more Applications 20 and 21 employed by the User, Software Stack 75 containing elements comprising or combining one or more of and / or employing the functionality of- Database Access Layer API software 30. ; Blockchain Node & Blockchain management software API 40. And 42; Database Software or database management system 50.; Address Filter 60.; and elements of said Software Stack 75 running and maintaining Blockchains 70. , 72 & Databases 80. , 82. Note: Positions of elements in stack are examples only and may vary and in another example of the present invention a single database contains all the blockchain transactions for which the User has private keys. User 2 has accepted or been granted use of or purchased or licensed Application 20 and said User acquires the address and private key of the Application 20 or other means of obtaining valid access to said Application 20 . User 2 uses Application 20 which creates a Database transaction 12 which is passed to the Data Access Layer API 30. Said Data Access API Layer determines the transaction requires interaction with Blockchain Node and / or Database and in this instance both so the Transaction data is passed to Database Software 50 for immediate writing to the database 80. Then Data Access Layer API 30 translates or manipulates the database transaction instruction into code which it then compiles and passes the compiled code to Node API 40 and said Node API 40 is able to run unit tests against the compiled code of the transaction to test that it works or is valid and if it is valid, said Node API 40 then places the transaction in a queue of proposed transactions to be written into the blockchain as a transaction 2024201824 20 Mar 2024 and sends a copy of the proposed transaction to all the blockchain Nodes it communicates with and these Nodes will also validate the Transaction. Said transaction will then be included in the next block to be written to the blockchain. Said transaction 12 is thereby written to a blockchain 70. and a Database 80 preferably with a flag or similar indicator ( flag not shown but said flag is meant to indicate in the database that the transaction origin is the Application and has not yet been written into a block of the blockchain). Said blockchain transaction 12 is a proposed blockchain transaction in a proposed transaction queue, said blockchain transaction eventually becoming all or part of proposed new block, Block 2 and said proposed Block 2 sent ( refer 13) to all Other User Devices 16. active on the blockchain system and said proposed new block, Block 2 is written by a selected Founder or blockwriter Node as Block 2. After new Block 2 is written a copy of all new blocks including Block 2 is sent to all active nodes by the blockchain system and when received from the blockchain system (refer 14) Node software 40 verifies the new block, removes from its pending transactions queue any transactions which have been included in the new block and applies an address filter 60. process by decrypting any message for which the Node has the private key for the target or recipient address and sends all decrypted transactions data from said new block to the Data Access Layer API software 30. and / or to the Database management software 50. So that said blockchain transaction data can be manipulated as necessary by Data Access Layer API software 30 and passed to Database management software 50 to be written to the database or if already in a form suitable for Database management software 50 to write the transaction data into the database or if already in a form suitable to write the transaction data into the database. User 2 also uses another blockchain Application 21 to read a document by creating a transaction 15 which in this example Application 21 communicates directly to the Database Software 50 which recovers the document from the Database 82 and passes it to Application 21 which enables User 2 to read said retrieved document. In an alternate arrangement Application 21 may send the read request 15 to Data Access Layer API software 30 which determines requires a read request and passed to Database Software 50 which provides said document to Application 21 In yet another example example, application 21 also receives (referl7) a new Block 2 shown with dotted line outline to represent that said Block 2 has not yet been verified by the blockchain node of its blockchain 72 said new Block 2 is actually received by node software 42 managing said blockchain 2024201824 20 Mar 2024 72 and after receipt of any new block the blockchain node validates the block and in the process it determines if there are any transactions which have User related addresses. In this example the Node determines that there is one transaction in the said new Block 2 for which said Node 42 has the Users private key and thereby decrypts and passes decrypted transaction data to the Data Access Layer API software 30 (DAL) and said DAL interprets the data and having determined that the data needs to be sent to database storage said DAL as necessary transcribes or manipulates data into appropriate form and sends said transaction data 17 to Database software 50 to be written into the database 82. Fig 4b Is a schematic diagram of a User 2 having User device 5 deploying a fully operational node ( as distinct from a node sometimes described as a "lite node") of a blockchain 40 said node 40 having a full copy of the blockchain or Epoch / interval of a blockchain 70 and able to function as a fully participating node which may fulfil any of the roles of nodes in the system. Said user device 5. runs a web browser 6. containing or running an instance of a Web Assembly environment or WASM. Said WASM containing and facilitates running of one or more Applications 20 and 21 employed by the User, Software Stack 75 containing elements comprising or combining one or more of and / or employing the functionality of- Database Access Layer API software 30. ; Blockchain Node & Blockchain management software API 40.; Database Software or database management system 50.; Address Filter 60.; and elements of said Software Stack 75 running and maintaining Blockchains 70. , 72 & Databases 80. , 82. Note: Positions of elements in stack are examples only and may vary and in another example of the present invention a single database contains all the blockchain transactions for which the User has private keys. User 2 has accepted or been granted use of or purchased or licensed Application 20 and said User acquires the address and private key of the Application 20 or other means of obtaining valid access to said Application 20 . User 2 uses Application 20 which creates a Database transaction 12 which is passed to the Data Access Layer API. Said Data Access API Layer determines the transaction requires interaction with Node and / or Database and in this instance both so the Transaction data is passed to Database Software 50 for immediate writing to the database 80.. Then Data Access Layer API 30 translates the database instruction code into text which it then compiles and passes the compiled code to Node API 40 and said Node API 40 runs unit tests against the compiled code of the transaction to test that it works or 2024201824 20 Mar 2024 is valid and if it is valid, said Node API 40 then places the transaction in a queue of proposed transactions to be written into the blockchain as a transaction and sends a copy of the proposed transaction to all the blockchain Nodes it communicates with and these Nodes will also validate the Transaction. Said transaction will then be included in the next block to be written to the blockchain. Said transaction 12 is thereby written to a blockchain 70. and a Database 80 preferably with a flag or similar indicator ( flag not shown but said flag is meant to indicate in the database that the transaction has not yet written into a block of the blockchain) but is a transaction in a proposed transaction queue, said blockchain transaction eventually becoming all or part of proposed new block, Block 3., and said proposed Block 3 sent (refer 13) to all Other User Devices 16. active on the blockchain system and said proposed new block, Block 3 is written by a selected Founder or blockwriter Node as Block 3. After new Block 3 is written a copy of all new blocks including Block 3 is sent to all active nodes by the blockchain system and when received from the blockchain system (refer 14) Node software 50 verifies the new block, removes from its pending transactions queue any transactions which have been included in the new block and applies an address filter 60. process by decrypting any message for which the Node has the private key and sends all decrypted transactions data from said new blocks to the Data Access Layer API software 30. and / or to the Database management software 50. So that said blockchain transaction data can be manipulated as necessary by Data Access Layer API software 30 and passed to Database management software 50 to be written to the database or if already in a form suitable for Database management software 50 to write the transaction data into the database. Application 21 may also deal directly with the said Database Management Software 50 for exam. Node does this Said Database Software 50 updates the relevant Database 80 existing unverified transactions entries to remove any corresponding "not verified " flags, and or creates new Database entries for each of said new "identified" blockchain transactions. After new Block 3 is written a copy of all new blocks including Block 3 is sent to all active nodes by the blockchain system and when received from the blockchain system (refer 14) Node software 50 verifies the new block, removes from its pending transactions queue any transactions which have been included in the new block and applies an address filter 60. process by decrypting any message for which the Node has the private key and sends all decrypted transactions data from said new blocks to the Data Access Layer API software 30. and / or to the Database management software 50. So that said blockchain transaction data can be manipulated as necessary by Data Access Layer API software 30 and passed to Database management software 50 to be written to the database or if already in a form suitable for Database management software 50 to write the transaction data into 2024201824 20 Mar 2024 the database. Application 21 may also deal directly with the said Database Management Software 50 for exam. Node does this Said Database Software 50 updates the relevant Database 80 existing unverified transactions entries to remove any corresponding "not verified " flags, and or creates new Database entries for each of said new "identified" blockchain transactions. User 2 also uses another blockchain Application 21 to read a document by creating a transaction 15 which in this example Application 21 communicates directly to the Database Software 50 which recovers the document from the Database 82 and passes it to Application 21 which enables User 2 to read said retrieved document. In an alternate arrangement Application 21 may send the read request 15 to Data Access Layer API software 30 which determines requires a read request and passed to Database Software 50 which provides said document to Application 21 In yet another example example, application 21 also receives (referl7) a new Block 3 shown with dotted line outline to represent that said block 3 has not yet been verified by the blockchain node of its blockchain 72 said new block 3 is actually received by node software 42 managing said blockchain 72 and after receipt of any new block the blockchain node validates the block and in the process it determines if there are any transactions which have User related addresses. In this example the Node determines that there is one transaction in the said new Block 3 for which said Node 42 has the Users private key and thereby decrypts and passes decrypted transaction data to the Data Access Layer API software 30 (DAL) and said DAL interprets the data and having determined that the data needs to be sent to database storage said DAL sends said transaction data 17 to Database software 50 to be written into the database 82. Fig.5 is a schematic showing another embodiment of a present invention whereby blockchain addresses and or address parts forming a blockchain address or a structured address string as a blockchain address may be applied to identify personnel , personnel roles and actions, documents and artifacts , work items, personnel actions / activity , authorisations or indeed any item or thing relevant to the work flow and efficient operation of of a business and which may be documented can be given a blockchain address or can form part of a structured blockchain address system and method as depicted in System 205 whereby personnel generally are provided with blockchain addresses or address strings containing address parts identifying aspects of personnel involvement and contribution to the work flow and advancement of an enterprise. Personnel 630 are provided at least with Position address 200, Signature authority address 205 and personal address 210. 2024201824 20 Mar 2024 Personnel 625 are also provided with blockchain addresses or address strings containing address parts identifying aspects of personnel involvement and contribution to the work flow and advancement of an enterprise such as a Division address 10, a Department Address 20, a Position address 30, Signature authority address 40 and personal address 50. Personnel 620 are also provided with blockchain addresses or address strings containing address parts identifying aspects of personnel involvement and contribution to the work flow and advancement of an enterprise such as a Division address 110, a Department Address 115, a Position address 120, Signature authority address 125 and personal address 130. Said addresses and or address parts may collectively be in the form of a Q.R code such that the address could be easily read / recorded by a user device such as a mobile phone. Fig 5 provides a present example of addresses and tracking of various elements relating to efficient operations of businesses including the concepts of; 1) Work items or tasks ID 600 and implementing use same having a a) ; Project or Task ID 910 ; b) Document Id 900; c) Identifying Stage or activity of a project ID 915; d) Identifying Work items relating to said project or task e) Identifying Personnel responsible for or contributing to advancement of said project or task 2) Work Item activity persona or identity references for each document, task or event number / transactional event and showing in the example in Fig 5 at 610 Work item activity records identifying the various persona and actions within or comprising one or more of:- a) A particular Manager entities function / position within the enterprise ID 305; b) A particular Author entity re a document or task ID 310; c) A particular Authors Assistant entity re a document or task ID 315; d) A particular Reviewer entity re a document or task ID 320; e) A particular Approval action ID 325 particular to an entity regarding a decision on a task or work item 910 at a stage 915; f) A particular Dissent action ID 330 particular to an entity regarding a decision on a task or work item 910 at a stage 915; g) A particular Abstaining vote action ID 335 particular to an entity regarding a decision on a task or work item 910 at a stage 915; 2024201824 20 Mar 2024 h) A particular address ID identifying one or more of Division, Department, Position, Signature authority applied or given, or personal address for use within an enterprise so as to differentiate between official and personal communications within an enterprise and or any other address which may be applicable to an entity, employee or contractor to an enterprise or actions by said entity, employee or contractor in relation to an enterprise and in the present example respectively ID 10,20,30,40 and 50 in group 625 and similarly in group 620 (or separately in group 620 respectively at 110, 115, 120, 125 and 130 if it were determined desirable to separately identify and access this level of ID between groups 620 and 625) and ID 200 in group 630 in Fig 5 3) Tracking of assets 700 and ownership responsibilities 710, 715, 720 and events 725 relating thereto including identification of persona involved in any related action or event and details of actions or events. While there has been shown and described at least one preferred embodiment of an Improved computer architecture supporting simpler and more secure blockchains, it will be appreciated that many changes and modifications may be made therein without, however, departing from the essential spirit thereof. Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine-readable medium such as a storage medium or other storage(s). A processor may perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and / or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc. In the foregoing, a storage medium may represent one or more devices for storing data, including read-only memory (ROM), random access memory (RAM), magnetic disk storage mediums, optical storage mediums, flash memory devices and / or other machine readable mediums for storing information. The terms "machine readable medium" and "computer readable medium" include, but are not limited to portable or fixed storage devices, optical storage devices, and / or various other mediums capable of storing, containing or carrying instruction(s) and / or data. 2024201824 20 Mar 2024 The various illustrative logical blocks, modules, circuits, elements, and / or components described in connection with the examples disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic component, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, circuit, and / or state machine. A processor may also be implemented as a combination of computing components, e.g., a combination of a DSP and a microprocessor, a number of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. The methods or algorithms described in connection with the examples disclosed herein may be embodied in a software module executable by a processor in the form of programming instructions, or other directions, and may be contained in a single device or distributed across multiple devices. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD- ROM, or any other form of storage medium known in the art. A storage medium may be coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. One or more of the components and functions illustrated the figures may be rearranged and / or combined into a single component or embodied in several components without departing from the invention. Additional elements or components may also be added without departing from the invention. Additionally, the features described herein may be implemented in software, hardware, as a business method, and / or combination thereof. In its various aspects, the invention can be embodied in a computer-implemented process, a machine (such as an electronic device, or a general purpose computer or other device that provides a platform on which computer programs can be executed), processes performed by these machines, or an article of manufacture. Such articles can include a computer program product or digital information product in which a computer readable storage medium containing computer program instructions or computer readable data stored thereon, and processes and machines that create and use these articles of manufacture.
Claims
1. A distributed computing system comprising:a network of user nodes configured to communicate with one another to perform transactions and to maintain at least one blockchain recording the transactions;wherein each user node comprises a user computing device having at least one processor and memory, and is configured to execute a user node application in a web browser using a WebAssembly execution environment;wherein the user node application causes the user computing device to operate as a blockchain node for the at least one blockchain, including by communicating with other user nodes, receiving blockchain transactions, validating blockchain data, and participating in creation, maintenance or updating of the at least one blockchain;wherein the user computing device includes a local indexed database accessible by the user node application through the web browser, the local indexed database being configured to record and read transaction data relating to transactions of the at least one blockchain;wherein the user node application includes a data access layer configured to convert local database operations directed to the local indexed database into corresponding blockchain transactions for processing by the blockchain node, and to convert blockchain transaction data received from the at least one blockchain into corresponding local database records for storage in the local indexed database;wherein the user node application is configured to apply address filtering to validated blockchain data to identify blockchain transactions associated with one or more addresses of the user node and to store, in the local indexed database, transaction data corresponding to the identified blockchain transactions;wherein the user node application is configured, in response to a recovery condition, to replay at least part of the at least one blockchain and to reconstruct or refresh the local indexed database by applying the address filtering to the replayed blockchain data; andwherein at least one user node is an ephemeral user node configured to temporarily join and operate within the network of user nodes by initiating a temporary instance of the user node application, the at least one blockchain remaining active after the temporary instance of the user node application is terminated.
2. The distributed computing system of claim 1, wherein the local indexed database is anIndexedDB database provided by the web browser.2024201824 01 Jun 20263. The distributed computing system of claim 2, wherein the IndexedDB database is unique toan origin associated with the user node application.
4. The distributed computing system of any one of claims 1 to 3, wherein the local indexeddatabase is a NoSQL database.
5. The distributed computing system of any one of claims 1 to 4, wherein the local indexeddatabase stores transaction data relevant to the user node and omits transaction data of the at least one blockchain that is not relevant to the user node.
6. The distributed computing system of any one of claims 1 to 5, wherein the one or moreaddresses of the user node comprise at least one of a user address, a node address, an application address, a blockchain identifier, or an entity identifier.
7. The distributed computing system of any one of claims 1 to 6, wherein the address filteringidentifies a blockchain transaction by determining that the blockchain transaction includes an address matching an address for which the user node has access to a corresponding private key.
8. The distributed computing system of claim 7, wherein the user node application is configuredto decrypt the identified blockchain transaction using the corresponding private key before storing transaction data corresponding to the identified blockchain transaction in the local indexed database.
9. The distributed computing system of any one of claims 1 to 8, wherein the data access layer isconfigured to receive a create, read, update or delete operation directed to the local indexed database and to determine whether the operation requires a corresponding blockchain transaction.
10. The distributed computing system of claim 9, wherein, when the operation requires the corresponding blockchain transaction, the data access layer is configured to generate the corresponding blockchain transaction and provide the corresponding blockchain transaction to the blockchain node for validation or propagation to one or more other user nodes.
11. The distributed computing system of claim 10, wherein the user node application is configured to record the operation in the local indexed database with a pending status before the corresponding blockchain transaction is recorded in the at least one blockchain.
12. The distributed computing system of claim 11, wherein the user node application is configured to update the pending status after a block containing the corresponding blockchain transaction is validated.
13. The distributed computing system of any one of claims 1 to 12, wherein the user node application is configured to maintain a queue of proposed blockchain transactions generated from2024201824 01 Jun 2026local database operations and to remove a proposed blockchain transaction from the queue when the proposed blockchain transaction is included in a validated block.
14. The distributed computing system of any one of claims 1 to 13, wherein the recovery condition comprises detection of a new address associated with the user node.
15. The distributed computing system of any one of claims 1 to 14, wherein the recovery condition comprises a request to recreate the local indexed database after deletion, corruption or absence of local database data.
16. The distributed computing system of any one of claims 1 to 15, wherein replaying at least part of the at least one blockchain comprises replaying an epoch of the at least one blockchain.
17. The distributed computing system of any one of claims 1 to 16, wherein the ephemeral user node is configured to rejoin the network of user nodes in a subsequent web browser session and to refresh the local indexed database by replaying blockchain data and applying the address filtering.
18. The distributed computing system of any one of claims 1 to 17, wherein the user nodes communicate with one another using peer-to-peer browser communication.
19. A computer-implemented method performed by a user computing device in a distributed computing system, the method comprising:executing a user node application in a web browser using a WebAssembly execution environment;temporarily operating the user computing device as an ephemeral blockchain node within a network of user nodes maintaining at least one blockchain;accessing, through the web browser, a local indexed database configured to record and read transaction data relating to transactions of the at least one blockchain;receiving, by a data access layer of the user node application, a local database operation directed to the local indexed database;converting, by the data access layer, the local database operation into a corresponding blockchain transaction;providing the corresponding blockchain transaction for processing by the ephemeral blockchain node;receiving blockchain data from the at least one blockchain;validating the received blockchain data;2024201824 01 Jun 2026applying address filtering to the validated blockchain data to identify blockchain transactions associated with one or more addresses of the ephemeral blockchain node;storing, in the local indexed database, transaction data corresponding to the identified blockchain transactions;in response to a recovery condition, replaying at least part of the at least one blockchain and reconstructing or refreshing the local indexed database by applying the address filtering to the replayed blockchain data; andterminating the temporary operation of the ephemeral blockchain node while the at least one blockchain remains active in the network of user nodes.
20. A non-transitory computer-readable medium storing instructions which, when executed by at least one processor of a user computing device, cause the user computing device to perform the method of claim 19.Christopher Lyndon HigginsPatent Attorneys for the Applicant / Nominated PersonSPRUSON & FERGUSON