Parsing Ethereum blockchains to sqlite datas: Effective approach

As the poplarity of cryptocurrencies and blockchain continues to grow, the analysis of blockchains into a relations, soch as SQLite3 ant for various purposes, souch as analysis, research and development. In this article, we will have an effective wey of analyzing

Why sqlite3?

Sqlite3 is an excellent choice for this task because of her:

1

3
Support for several databases : Can handle multipletabases at the same.

Blockchain Ethereum data strocture

Before we dive the dedeals of the implementation, let’s unit they are structured blockchaina ethereum:

* Time stamp

* Hash previous block (ie J. «Parenhash)

* Number of transactions in the block (NumtransactionCount)

* List of transactions within the block (transactions”

Implementation of Blockchain Analyzer

We will use Python as is programming language, allong with SQLite3 for data3 for operations. We are also to the «ETH-BLOCKS» library to the load on the blockchain ethereum.

`Python

Import sqlite3

From Datetsime Import Datetsme

Blockparser class:

Def __init __ (self):

self.conn = sqlitee3.Connect (': memory:')

self.cursor = self.conn.cursor ()

Def Parse_blockchain (self, blockchain_url):

Load the first block from URL Blockchain

block = et_blocks.get (blockchain_url)

If the block is it not:

false

Create a table for a dataabase

Self.Create_table ()

Insert the Data in the database

self.insert_data (block.timestamp, block.hash, block.parentash, block.numtransactionCount, block.traansactions)

Return Truth

Def Create_table (self):

"" "Create a table with the necessary columns." "

sql = " " " "

Create a table there is no blockchain_data (

ID integrate the Primary Key Autoincrement,

Text Timesstamp is not null,

Parent_hash textt is not null,

NUM_TRANSACTIONS INTERGER NOT NULL,

Transactions textt

);

"" ""

self.cursor.exeque (SQL)

self.conn.commit ()

Def insert_data (self, time stamp, hash, paranhash, numtransactions, transaction):

"" Insert the Data in the Blockchain. ""

sql = " " " "

Insert in blockchain_data (Timesstamp, Parent_hash, Num_Transactions, Transactions)

Values ​​(?,?,?,?);

"" ""

self.curs.execte (SQL, (time stamp, hash, numtransactions, transactions))

self.conn.commit ()

Example of the use

Parser = blockparser ()

URL = '

If parser.parse_blockchain (URL):

Print (“Blockchain succesfullly analyzed!”)

otherwise:

Print (“Blow Blockchain Analyzing.”)

Optimization of efficience

While the implementation provided the effactive for cases, thee are more than the optimizations that can be improvedr improve performance:

1.

20 cheme souch as PostgRESQL or MySQL.

3.

BITCOIN DOES SCHNORR WORK

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *