Skip to content

Jalingpp/MEST

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 Name Description Parameters
run.sh complete all experiments at once
test_thread.sh experiments over various threads thread_option=(1 2 4 8 16 32)
test_scale.sh experiments over various data scales U7Num=(1000000 1500000 2000000 2500000 3000000)
test_cache.sh experiments before-after hotness adjustment skewratio=(S1 S2 S3 S4 S5)
test_real.sh experiments on NFTTrans dataset Num=(1000000 1500000 2000000 2500000 3000000)
test_batchSize.sh experiments over various batchsize batch_size=(1 100 1000 10000 100000)
test_mehtBC.sh experiments over various BC of meht mehtBC=(250 500 750 1000 1250)
test_mehtBS.sh experiments over various BS of meht mehtBS=(0 1 2 3 4)
test_mbtBN.sh experiments over various BN of mbt BN=1000;BN<=50000;BN+=1000
test_bsfg.sh experiments over BSFG parameters mehtWs=(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)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages