echain-sqlite v0.0.5
Eventchain-sqlite
An eventchain to sqlite bridge.
Eventchain-sqlite extends Eventchain by storing query results in an sqlite database.
Install
npm install -g echain-sqliteUsage
See Eventchain for details on how to configure and run eventchain.
Run eventchain-sqlite:
echain-sqlite startEventchain-sqlite will create an eventchain/chain.sqlite file containing the sqlite database.
Schema
Eventchain receives TXO transaction objects from Planaria. A TXO object contains information about the transaction, the block, the inputs and outputs.
Eventchain-sqlite creates the database eventchain/chain.sqlite with the following tables:
in
outThe in and out tables represent the inputs and outputs from a transaction. Each table has the same base schema:
type VARCHAR ('ONMEMPOOL' or 'ONBLOCK')
timestamp VARCHAR
txid VARCHAR
blockindex VARCHARIn addition to the base columns, eventchain-sqlite will create columns for each of the project properties in the query.
The following event.json config file will generate the columns below:
{
"eventchain": 1,
"name": "metanet",
"from": 587000,
"q": {
"find": { "out.h1": "6d657461" },
"project": { "in.e.a": 1, "out.s2": 1, "out.s3": 1, "out.s4": 1, "out.s8": 1 }
}
}Columns created:
[in.e.a] VARCHAR
[out.s2] VARCHAR
[out.s3] VARCHAR
[out.s4] VARCHAR
[out.s8] VARCHARYou can then create queries such as:
SELECT * FROM [out] WHERE [out.s4] = 'My metanet node';The square brackets help with the unconventional column and table naming.
If the chain.sqlite file is deleted it will be recreated. However, it will only receive new transactions, if you want all of the previous transactions you will also need to delete the chain.txt and tape.txt files.