paint-brush
Can We Simplify Blockchain Data with a Cross-Chain Query System?by@interoperability

Can We Simplify Blockchain Data with a Cross-Chain Query System?

tldt arrow

Too Long; Didn't Read

This section demonstrates the feasibility of implementing the proposed cross-chain query language through a prototype application. The application, built using Python 3.9 and web3.py, interacts with local blockchain nodes (Bitcoin, Ethereum, Cardano, and Avalanche) to execute queries. The implementation was tested on a consumer-grade laptop with fully validating nodes, showing that query performance is dependent on local hardware and not affected by network latency. The setup ensures the query language’s functionality across multiple blockchains without relying on external APIs or services.
featured image - Can We Simplify Blockchain Data with a Cross-Chain Query System?
Interoperability in Software Publication HackerNoon profile picture
0-item

Abstract and 1 Introduction

2 Background and Related Work and 2.1 From Bitcoin to Blockchains

2.2 Open and Permissionless Blockchains

2.3 Interoperability Between Blockchains

3 Cross-Chain Query Language and 3.1 Integrated Data Model

3.2 Grammar and Query Processing Architecture

4 Evaluation of Implementation Feasibility and 4.1 Software and Hardware Configuration

4.2 Query Processing

4.3 Discussion

5 Conclusion and Outlook, Acknowledgment, and References

4 Evaluation of Implementation Feasibility

The aim of this section is to illustrate the feasibility of implementing the proposed query language with a data model and processing architecture. An implementation compatible with OPB previously introduced has been developed for this purpose[15]. It is composed of two main components: (1.) a language grammar that is formalized using the Eclipse Modeling Framework with a concrete syntax specified on the basis of Xtext[16]. In this way, the syntax is used to derive an external Domain-Specific Language (DSL) with corresponding development and editor environments based on Eclipse. Furthermore, the grammar is implementation-independent and can be re-used in future applications. (2.) a prototype command-line application implementing the language and the data model. The application operates according to the proposed architecture and interacts with nodes of the selected OPB to execute queries. It was developed using Python 3.9 and utilizes the web3.py library to access the OPB[17].

4.1 Software and Hardware Configuration

Setting up the application involved the following blockchain nodes with a configuration that fully validates all blocks:


– Bitcoin node: Bitcoin Core, version 25.0[18]. The initial data synchronization completed after 1 day including the indexing of all transactions.


– Ethereum node: Nethermind execution client, version 1.19.0[19], together with Nimbus consensus client, version 23.5.1[20] with full validation and execution of transactions. Initial data synchronization completed after approximately 4 weeks.


– Cardano node: Cardano node, version 8.1.1[21]. Initial data synchronization completed after approximately 2 days.


– Avalanche node: AvalancheGo, version 1.10.3[22]. Initial data synchronization completed after approximately 4 days.


Accounting for typical application scenarios related to businesses or individuals, the data synchronization was carried out on a consumer-grade laptop in all cases. The laptop was equipped with AMD Ryzen 7 5700U CPU, 16 GB RAM, and SK Hynix BC711 NVMe SSD running Ubuntu 22.04. For the synchronization, the laptop was continuously connected to a 1 Gbit/s fiber internet connection.


To establish feasibility, query statements were evaluated using the prototype, which will be elaborated in the subsequent section. Each statement was executed on the laptop and the locally running blockchain node software without the involvement of further web services or APIs, realizing the processing architecture. As the node software was fully validating and storing data locally, it enabled


Fig. 3. Prototype with query examples for Ethereum and Avalanche showing blocks (Query 1 and 2), transactions (Query 3), and accounts (Query 4).


the generation of query results without network access. It follows that query performance is independent of network latency and solely constrained by the local CPU and IO performance of the device at hand.


Author:

(1) Felix Härer[0000 −0002 −2768 −2342], Digitalization and Information Systems Group, University of Fribourg, Switzerland ([email protected]).


This paper is available on arxiv under CC BY-NC-ND 4.0 DEED license.

[15] Available at https://github.com/fhaer/CCQL/tree/main


[16] https://www.eclipse.org/Xtext, 2023-06-30


[17] https://web3py.readthedocs.io/en/stable/, 2023-06-30


[18] https://github.com/bitcoin/bitcoin/, 2023-06-30


[19] https://downloads.nethermind.io/, 2023-06-30


[20] https://github.com/status-im/nimbus-eth2/releases, 2023-06-30


[21] https://github.com/input-output-hk/cardano-node, 2023-06-30


[22] https://github.com/ava-labs/avalanchego/releases, 2023-06-30