crytic / crytic/echidna

Profiling Request: Slow fuzzing setup with conversions

Open
#992 15 comments 0 reactions 0 assignees View on GitHub
performance
Dominant language
Haskell
Stars
3.2k
Forks
432
Avg merge
1d 20h
Merged PRs (30d)
5

Description

I have created a fuzzing setup for a Code4rena competition that turned out to be very slow. Both compile time and fuzzing speed are slow.

The code contains a lot of conversion (`bytes`, `int`, unicode) so I thought someone at ToB might be interested in profiling this.

The code can be found here:
https://github.com/code-423n4/2023-03-canto-identity/tree/main/canto-namespace-protocol

Interesting conversion code:
- https://github.com/code-423n4/2023-03-canto-identity/blob/main/canto-namespace-protocol/src/Tray.sol#L245
- https://github.com/code-423n4/2023-03-canto-identity/blob/main/canto-namespace-protocol/src/Utils.sol#L73

The fuzzing setup repo is private but I can provide invites if necessary.

Note: The contest is over so I don't need the setup anymore. Feel free to close the issue if it's not an interesting subject to profile :smile:

Contributor guide

Open the contributing guide

Research direction

Start with the linked canto-namespace-protocol repository, especially src/Tray.sol around line 245 and src/Utils.sol around line 73. Reproduce or obtain access to the private fuzzing setup, then profile compilation and fuzzing separately to identify whether the conversion-heavy code is responsible. Done means documenting a reproducible bottleneck and actionable profiling results.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell, solidity
Domain
performance, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.