Skip to main content

ink!/pallet/solidity performance benchmarking

  • Team Name: Talentica Software
  • Payment Address: 0x8bd54ec34A35f3A2f668A33d9578b5C3A6b730dE
  • Level: 1

Project Overview :

Proposal for the RFP titled ink!/pallet/solidity performance benchmarking.

Overview

There are multiple ways to implement the logic in substrate i.e using pallets or ink smart contracts, or even writing solidity code and compiling it to WASM with the help of a solang compiler. We have to benchmark the performance metrics of the logic implemented using each of the above methods. This will help new developers to decide the best tool to implement the logic.

Project Details

We will use following tools to benchmark the ink smart contract/pallet:

Team Members

Contact

  • Registered Address: B-7/8, Anmol Pride, Baner Road, Baner, Pune, Maharashtra 411045, India
  • Registered Legal Entity: Talentica Software India Pvt. Ltd.

Team Code Repos

Team LinkedIn Profiles (if available)

Development Status :

We have explored the tools specified in the RFP. We have also come up with a high-level implementation plan and will start implementing it soon.

Development Roadmap :

NumberObjectiveDeliverableTime Estimate
1.Create a unified framework to work with both, Substrate Runtime Benchmarking Framework and Smart-benchMilestone 1, Deliverable 43 days
2.Test it with existing palletsMilestone 1, Deliverable 42 days
3.Create new pallets for benchmarkingMilestone 1, Deliverable 23 days
4.Test it with the new palletsMilestone 1, Deliverable 22 days
5.Create new Ink smart contracts for benchmarkingMilestone 1, Deliverable 33 days
6.Test it with the new Ink smart contractsMilestone 1, Deliverable 32 days
7.Adapt Smart Bench to work with arbitrary Solidity smart contractsMilestone 1, Deliverable 41 week
8.Create new Solidity smart contracts for benchmarkingMilestone 2, Deliverable 13 days
9.Test it with the new Solidity smart contractsMilestone 2, Deliverable 12 days
10.Adapt the framework to work with the above smart contractsMilestone 2, Deliverable 21 Week

Overview

  • Total Estimated Duration: 6 weeks
  • Full-Time Equivalent (FTE): 1
  • Total Costs: 10,000 DAI

Languages

  • Rust
  • Solidity

Milestones

Milestone 1 — Basic benchmarking

  • Estimated duration: 3 weeks
  • FTE: 1
  • Costs: 5000 DAI
NumberDeliverableSpecification
0a.LicenseApache 2.0
0b.DocumentationWe will provide both inline documentation of the code and a live demo.
0c.Testing GuideCore functions will be fully covered by unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests.
0e.ArticleWe will publish an article that explains how each implementation technique performs, and when to choose which.
1.Performance metricsAfter examining the existing benchmarking tools and discussing with their developers, we believe weight alone serves as a good metric to analyse performance.
2.Pallet: Basic Read & WriteWe will create some pallets which expose simple methods for writing to storage and reading from on-chain storage.
3.Ink Smart Contract: Basic Read & WriteWe will create some ink smart contracts which expose simple methods for writing to storage and reading from on-chain storage.
4.Library: BenchmarkingWe will deliver a Rust library that allows calling both the pallet's extrinsics and contract's public methods multiple times and return the benchmarks.

Milestone 2 — Integrate native solidity & solang-compiled solidity

  • Estimated duration: 3 weeks
  • FTE: 1
  • Costs: 5000 DAI
NumberDeliverableSpecification
0a.LicenseApache 2.0
0b.DocumentationWe will provide both inline documentation of the code and a live demo.
0c.Testing GuideCore functions will be fully covered by unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests.
0e.ArticleWe will publish an article that explains how each implementation technique performs, and when to choose which.
1.Solidity(native and WASM) Smart Contract: Basic Read & WriteWe will create some solidity smart contracts which expose simple methods for writing to storage and reading from on-chain storage.
2.Adapt the benchmarking frameworkWe will adapt the benchmarking framework so it can handle WASM and native solidity code benchmarking.

Additional Information:

Gautam Dhameja told us about the Grants program and encouraged us to apply to the same.