ethereum / ethereum/ddht

Expand proof benchmarks

Open
#181 0 comments 0 reactions 0 assignees View on GitHub
good first issue
Dominant language
Python
Stars
19
Forks
15
PR merge metrics
No merged PRs in 30d

Description

## What was wrong?

The benchmarking suite introduced in #147 doesn't test the full performance critical proof API

## How can it be fixed?

The benchmark suite should be expanded to include:

1. Proof merging:
- For a few different sized pieces of content (1kb, 2kb, 4kb, 10kb, 50kb, 100kb), split the proof up into partials of around 700kb and measure the time to merge them all together.
- Same test as above, but instead measure the time it takes to merge as combined proof grows. Does the merge speed change as the combined proof grows in size.
2. Computation of the hash-tree-root
- For a few different sized pieces of content (1kb, 2kb, 4kb, 10kb, 50kb, 100kb) measure the time it takes to compute the `hash_tree_root`
- Take partial proofs of the above content and measure `hash_tree_root` computation time.
3. Real world examples
- From recent mainnet blocks extract a sample of ~1000 (headers, block-bodies, transactions, receipts) in their canonical RLP encoded format. Measure the cost of computing full proofs and partials for these data structures.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the benchmarking suite introduced in issue #147 and read its existing proof benchmarks. Add measurements for proof merging, hash_tree_root computation, and canonical RLP-encoded mainnet headers, block bodies, transactions, and receipts, covering the sizes and partial proofs listed here; done means the expanded benchmark results are recorded for comparison.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.