Categorygithub.com/Jalingpp/MEST
modulepackage
0.0.0-20241202141649-77d5d6cad431
Repository: https://github.com/jalingpp/mest.git
Documentation: pkg.go.dev

# README

MEST: An Efficient Authenticated Secondary Index for the State Data in Blockchain Systems

This is a demo of a new storage engine for verifiable non-primary key queries in blockchain systems. The primary index is Merkle Patricia Tree (MPT). The secondary indexes include MPT, Merkle Bucket Tree (MBT), and Merkle Extendible Hash Table (MEST, proposal).

Download and Test Run

Step 1. Download the source code.

git clone https://github.com/Jalingpp/MEST.git

Step 2. Run test.sh to test insert and query.

./test.sh

Step 3. Find results in data.

Documentation Explains

sedb: a folder for the storage engine that encapsulate three solutions together.

meht: a folder for the implementation of Merkle Extendible Hash Table (MEST), consist of SEH.go, MEHT.go, etc. components.

mpt: a folder for the implementation of Merkle Patricia Trie (MPT).

mbt: a folder for the implementation of Merkle Bucket Tree (MBT).

mht: a folder for the implementation of Merkle Hash Tree (mht), which is used in meht.

util: provides some commonly used methods, such as data reading and writing, format conversion, etc.

test_xxx.go: entry files used to test system performance.

Evaluation

We conduct experimental evaluations by the bash scripts. All the parameters with different values are listed in the bash files. You can change paramenters to test the methods.

Script NameDescriptionParameters
run.shcomplete all experiments at once
test_thread.shexperiments over various threadsthread_option=(1 2 4 8 16 32)
test_scale.shexperiments over various data scalesU7Num=(1000000 1500000 2000000 2500000 3000000)
test_cache.shexperiments before-after hotness adjustmentskewratio=(S1 S2 S3 S4 S5)
test_real.shexperiments on NFTTrans datasetNum=(1000000 1500000 2000000 2500000 3000000)
test_batchSize.shexperiments over various batchsizebatch_size=(1 100 1000 10000 100000)
test_mehtBC.shexperiments over various BC of mehtmehtBC=(250 500 750 1000 1250)
test_mehtBS.shexperiments over various BS of mehtmehtBS=(0 1 2 3 4)
test_mbtBN.shexperiments over various BN of mbtBN=1000;BN<=50000;BN+=1000
test_bsfg.shexperiments over BSFG parametersmehtWs=(2 3 4 5 6)
mehtSts=(1 2 3 4)

An end-to-end experiment can be found in https://github.com/Jalingpp/Geth4MEST.

Publication

Jinping Jia, Yichen Gao, Yifei Zhen, Zhao Zhang*, Qian Kun, Cheqing Jin. MEST: An Efficient Authenticated Secondary Index in Blockchain Systems. (ICDE 2024, Regular Research Paper, Accepted)

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Structs

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author