forked from dojoengine/dojo
-
Notifications
You must be signed in to change notification settings - Fork 1
Open
dojoengine/dojo
#1148Labels
documentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or request
Description
Overview
With a goal to achieve optimal storage efficiency, it's essential to evaluate how Dojo performs in terms of improving storage efficiency, especially focusing on gas consumption. Between Scarb and Katana, the latter is the preferred choice for benchmarking due to its ability to export gas usage information, unlike Scarb.
Goals
Conduct a comprehensive benchmark using Katana to measure gas consumption related to storage operations in various scenarios:
- Native Storage: Benchmarking storage operations without integrating Dojo.
- Simple Dojo Storage: Standard storage operations with the integration of Dojo.
- Dojo Packing Storage: Storage operations with Dojo's packing feature.
- Dojo Indexing Storage: Storage operations using Dojo's indexing.
Proposed Architecture
- Katana running locally (or remotely)
- Dojo contracts as test ground, because of compability with tooling and familiarity for developers
proptestcrate generating cases for property testing, failure persistence and regression (as well as async capabilities)- Each contract is deployed, and called with data generated by proptest
- Fee is read from receipts
Levels of Test Complexity
To provide a comprehensive understanding of how Dojo performs across different use-cases, benchmarking should be carried out under three distinct complexities:
- Simple Data Structures: Mainly basic data structures.
- Medium Complexity Data Structures: Intermediate level structures that offer more complexity than the basic ones but aren't highly intricate.
- Complex Data Structures: Highly intricate structures that are robust and multifaceted.
Suggested Development Order
-
Basic Katana Setup
- Branch Name:
24-1-basic-katana-setup
- Branch Name:
-
Simple Benchmark
- Task: Benchmark using simple data structures.
- Branch Name:
24-2-simple-benchmark
-
Medium Benchmark
- Task: Benchmark using medium complexity data structures.
- Branch Name:
24-3-medium-benchmark
-
Complex Benchmark
- Task: Benchmark using highly intricate data structures.
- Branch Name:
24-4-complex-benchmark
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or request