funded
Plutus Bench - Test, Measure, Inspect Smart Contracts
Current Project Status
in_progress
Total
amount
Received
₳83,000
Total
amount
Requested
₳130,000
Total
Percentage
Received
63.85%
₳83,000 Received out of ₳130,000
Solution

Plutus bench is a simple and unified framework set up a mock environment for Smart Contracts in a simple manner. Plutus Bench provides this as a Python framework with accessible documentation.

Problem

Different Cardano Smart Contract langauges are on the rise (aiken, opshin, …). They make a unified, simple benchmark and testing environment necessary, which Plutus Bench will provide.

Impact Alignment
Feasibility
Value for money

Team

1 member

This proposal was approved and funded by the Cardano Community via Project F11: Cardano Open: Developers - technical Catalyst funding round.

[SOLUTION] Please describe your proposed solution.

This proposal suggest to introduce a program that incentivizes removing bugs from the OpShin tool chain by prizing out the resolution of issues. But what is OpShin?

This is OpShin: a toolchain that lets developers construct Cardano smart contracts in Python. Why Python?

The problems of Haskell

Haskell is hard

As an exotic language, Haskell has very few people able to work on it, ranking only the 25th most used language on GitHub, with only 0.39% of the userbase actively using it. Very few people are proficient in Haskell, and even fewer can help you out with the peculiarities of PlutusTx: with how to implement smart contracts on Cardano.

Instead of building in the language you already know and use in everyday work and life, you have to learn a completely new language – and peer support for it is limited.

On-chain code doesn’t integrate smoothly with off-chain code

Whilst the on-chain part of a dApp handles the transactions on the blockchain, the off-chain part often handles the rest of the dApp. Developers are forced to use two completely separate tools, often in separate languages. This costs Focus - and introduces unnecessary friction at integration and potential security issues.

Instead of working on how to best solve a problem to serve your users’ needs, you’re pulling your hair trying to make the two halves of your dApp work together.

Smart Contract size is limited, and PlutusTx is hefty

Smart Contracts have tight constraints on size and execution steps. PlutusTx and other tools often translate type constraints to expensive and unnecessary on-chain transactions, limiting developers in the complexity of what they can build.

Instead of building the best solution possible, you’re hamstringing yourself just to make sure the most critical parts of your smart contract can be executed on the blockchain.

How OpShin frees you

The OpShin Toolchain comprises several projects that aim to facilitate the development of Smart Contracts and dApps on Cardano. They are largely based on Python, or integrate well with it for maximal accessibility.

Python has a wide and growing community

At the time of writing, Python is the second-most used language on GitHub, with 14.75% of the active userbase working with Python, and enjoys a 22.5% year-over-year increase in users; this is driven in part by its utility in data science and machine learning.

Image file

Everyone who knows Python can leverage the toolstack available for Python development to build on Cardano; and that is a lot of people, with a lot of tools.

OpShin natively integrates with Python Cardano tooling

Developers can build both off-chain and on-chain tooling in just Python, and are able to directly import definitions and functions that are defined in the on-chain contract, into their off-chain tooling. This reduces the friction that is naturally-induced by Cardano’s design when building combined tools.

Everyone who knows Python can develop fluently and without interruption, without the cost of constantly having to change gears and mindsets just to build dApps.

OpShin is light, fast, and maintains security

OpShin enforces strict typing on the high-level programming: it implements a type system on top of Python type hints. However, all traces of typing are erased during compilation, for a maximum efficiency program. OpShin beats many programming languages when taken to the test for real use-cases.

Everyone who knows Python can build a dApp that runs faster, costs their users less, and executes more.

How does OpShin perform?

Image file

How much does OpShin save?

Image file

Testimonials

“OpShin makes smart contract development the easy part of dApp development. I have spent far longer on off-chain code than on implementing smart contracts.” - while0x1 SPO

“My experience was very positive. As a python library, eopsin does well at performing as expected. It’s clear when things don’t work and the language is intuitive.” - Julius Frost, Full-time Python dev

[IMPACT] Please define the positive impact your project will have on the wider Cardano community.

The rise of various Cardano smart contract languages like Aiken and Opshin represents a significant advancement in the blockchain and decentralized application (dApp) space. However, this diversity also introduces complexity, particularly when it comes to benchmarking and testing these smart contracts. This is where Plutus Bench, a pioneering project, steps in to make a substantial positive impact on the community.

Simplifying Development: Plutus Bench, as a unified framework, drastically simplifies the process of setting up a mock environment for smart contracts. By providing a standardized platform, it reduces the learning curve for developers, enabling them to focus on creating robust and efficient smart contracts rather than grappling with the intricacies of various testing environments.

Enhancing Quality and Reliability: The availability of a simple and unified testing environment ensures that smart contracts can be rigorously tested under consistent conditions. This uniformity in testing leads to higher quality and more reliable smart contracts, which is crucial given the often critical and high-value nature of blockchain transactions.

Fostering Community Collaboration: With Plutus Bench being a Python framework accompanied by accessible documentation, it becomes more approachable for a wider range of developers, including those who are new to the Cardano ecosystem. This inclusivity fosters a collaborative community where developers can easily share knowledge, tools, and best practices.

Accelerating Innovation: The ease of testing and benchmarking provided by Plutus Bench enables faster development cycles. Developers can quickly iterate on their smart contracts, test new ideas, and deploy innovative solutions at a pace that was not possible before. This acceleration in development can lead to more rapid advancements and adoption of blockchain technology.

Reducing Barriers to Entry: For new developers entering the blockchain space, the complexity of smart contract development can be daunting. Plutus Bench lowers these barriers, making it easier for new talents to contribute to the ecosystem, thereby enriching the community with fresh ideas and perspectives.

Promoting Standardization and Best Practices: By offering a unified testing environment, Plutus Bench encourages the adoption of standard practices and methodologies in smart contract development. This standardization is vital for the long-term health and scalability of blockchain networks.

Encouraging Transparency and Trust: The thorough testing and benchmarking of smart contracts promote transparency and trust in the applications built on the Cardano blockchain. This trust is essential for the widespread acceptance and use of decentralized applications.

The role in simplifying and standardizing the testing of smart contracts not only benefits developers but also has far-reaching implications for the quality, innovation, and trust in blockchain applications, ultimately enriching the entire community.

[CAPABILITY & FEASIBILITY] What is your capability to deliver your project with high levels of trust and accountability? How do you intend to validate if your approach is feasible?

The main proposer, Niels, has already bootstrapped the main part of the project. In its current form the tool is able to be used and already being used. The proposer is completely doxed and well-known in the Community.

He also has a strong network of competent and experienced developers interested and capable in supporting the project.

The main goal of this proposal is to improve usability and developer experience with respect to Smart Contracts on Cardano. With the given funds, the continued development of the toolchain is secured as developers can be hired to tackle basic issues in the toolchain whereas the main proposer is able to allocate more time of the day towards developing OpShin himself.

[Project Milestones] What are the key milestones you need to achieve in order to complete your project successfully?

Project setup and Orientation

In the first milestone, a matching team is assembled and a vision for the project is outlined.

  1. Project Inception and Team Assembly: Establishing a clear vision for Plutus Bench and assembling a team of skilled developers and blockchain experts who are proficient in Python and understand the Cardano smart contract environment.
  2. Market Research and Community Feedback: Conducting thorough market research to understand the needs of developers using Cardano smart contracts and gathering feedback from the community to ensure Plutus Bench aligns with their requirements.

At the end of this milestone a document will be provided that clearly outlines the demands for Plutus Bench based on the community and market research. A clear set of requirements is what needs to be present for this milestone.

Project Start

The second milestone will cover a longer stretch of work that covers core functionalities, developed in lockstep with the design and documentation.

  1. Framework Design and Documentation: Designing the architecture of Plutus Bench, ensuring it is scalable, user-friendly, and adaptable. Simultaneously, developing comprehensive documentation that is accessible to developers of varying skill levels.
  2. Development of Core Functionalities: Building the core functionalities of Plutus Bench, which includes the mock environment setup, testing and benchmarking tools, and integration capabilities with different Cardano smart contract languages.

The outcome of this step will be an MVP for running tests for Cardano Smart Contracts and proper documentation, based on which developers can provide feedback on the platform usability.

Project Launch

The third milestone covers a first release iteration and continuing development on the project.

  1. Alpha Release and Initial Testing: Pitching an alpha version of Plutus Bench for limited user testing. This phase focuses on identifying bugs, assessing usability, and making necessary adjustments based on initial user feedback.
  2. Community Engagement and Collaboration: Engaging with the Cardano developer community through forums, social media, and developer conferences to promote collaboration, gather feedback, and foster a user base for Plutus Bench.
  3. Beta Release and Wider Testing: Launching a beta version of the framework for broader public use. This stage involves more extensive testing, bug fixing, and feature enhancements based on user feedback.

The outcome is a solid platform that allows for developers to run and debug contracts. Ideally, it will come with some implementations of contracts in sample languages.

Release and Open-Source Contributions

In the final step we will consult external opinions on checking specific topics and adding their thoughts or test cases concerning known vulnerabilities and problems.

  1. Security Audits and Compliance Checks: Conducting thorough security audits and ensuring compliance with relevant standards and best practices in blockchain development to ensure the reliability and security of Plutus Bench.
  2. Ongoing Support and Updates: Providing continuous support to users, regularly updating the framework to keep up with the evolving Cardano platform, and incorporating new features based on emerging trends and user requirements.
  3. Expansion and Scalability: Exploring opportunities to expand Plutus Bench’s capabilities, such as supporting additional blockchain platforms or integrating advanced testing features, to ensure it remains a valuable tool in the rapidly evolving blockchain landscape.
  4. Community-Led Development and Open-Source Contributions: Transitioning to a community-led development model where the open-source community can contribute to the continuous improvement and evolution of Plutus Bench.

The result of this will be a complete and well documented repository with website that clearly outlines the use cases and some test cases for newly developed contracts.

[RESOURCES] Who is in the project team and what are their roles?

Niels Mündler aka nielstron is well-known in the Cardano Community. He has co-founded the MuesliSwap DEX and gave birth to the programming language OpShin. His background is computer science at ETH Zurich, Switzerland.

In the OpShin team, he is taking over the role of Founder, CTO and CEO, running the whole thing as a one-man show.

He is supported by Julius Frost, Boston U graduate and working in the ML field, who created the opshin pioneer program and is a highly experienced Python developer. He is a frequent contributer and maintainer and helps assessing the quality of submitted issues and PRs.

[BUDGET & COSTS] Please provide a cost breakdown of the proposed work and resources.

Project Inception and Team Assembly

  • Team Assembly: Recruitment costs, initial team meetings, and planning sessions.
  • Estimated Cost: 5,000 ADA

Market Research and Community Feedback

  • Surveys and Feedback Tools: Subscription to survey tools and analysis software.
  • Estimated Cost: 3,000 ADA

Framework Design and Documentation

  • Software for Design and Prototyping: Licenses for design and prototyping tools.
  • Documentation Tools: Subscription to documentation platforms.
  • Estimated Cost: 5,000 ADA

Development of Core Functionalities

  • Development Tools and Software: Integrated Development Environment (IDE) licenses, Continuous Deployment tools.
  • Developer Hours: Effort spent by developers on building the platform.
  • Estimated Cost: 25,000 ADA

Alpha Release and Initial Testing

  • Testing Tools: Subscription to testing platforms and services.
  • Estimated Cost: 7,000 ADA

Community Engagement and Collaboration

  • Community Outreach: Hosting community events, webinars, and participation in developer conferences.
  • Estimated Cost: 12,000 ADA

Beta Release and Wider Testing

  • Beta Testing Platforms: Costs associated with wider distribution and testing feedback collection.
  • Estimated Cost: 8,000 ADA

Security Audits and Compliance Checks

  • Security Audit Services: Hiring third-party services for comprehensive security audits.
  • Estimated Cost: 20,000 ADA

Ongoing Support and Updates

  • Support Tools: Customer service software, bug tracking systems.
  • Update Costs: Continuous integration/deployment tools.
  • Estimated Cost: 10,000 ADA

Expansion and Scalability

  • Research and Development: Costs for exploring new features and scalability options.
  • Estimated Cost: 10,000 ADA

Community-Led Development and Open-Source Contributions

  • Open Source Management Tools: Platforms for managing open-source contributions.
  • Estimated Cost: 5,000 ADA

Project Management, Documentation, and Reporting

  • Project Management Tools: Subscriptions to project management software.
  • Documentation and Reporting: Costs for preparing and disseminating progress reports to the community.
  • Estimated Cost: 10,000 ADA

Miscellaneous and Contingency

  • Contingency Fund: For unforeseen expenses and emergencies.
  • Estimated Cost: 10,000 ADA

Total Estimated Cost: 130,000 ADA

This budget plan covers all the necessary stages and elements of the project while staying within the allocated budget of 130,000 ADA. The team is responsible for managing these funds effectively and transparently, ensuring that each stage of the project receives adequate financial support. Alternative sources of funding will be sought if the project cost exceeds the initial budget.

[VALUE FOR MONEY] How does the cost of the project represent value for money for the Cardano ecosystem?

  1. Enhancing Developer Productivity and Efficiency: By simplifying the testing and benchmarking process for Cardano smart contracts, Plutus Bench saves developers significant time and effort. This efficiency translates into faster development cycles, enabling more projects to be completed within shorter timeframes, thus accelerating innovation within the Cardano ecosystem.
  2. Improving Smart Contract Quality: High-quality, robust smart contracts are essential for the trust and reliability of the Cardano network. Plutus Bench facilitates rigorous testing, which helps to reduce bugs and vulnerabilities, enhancing the overall quality of applications on the Cardano blockchain.
  3. Attracting New Developers: The user-friendly nature of Plutus Bench, with its Python framework and accessible documentation, makes it easier for new developers, including those from non-blockchain backgrounds, to enter the Cardano ecosystem. This expansion of the developer base can lead to more diverse and innovative applications.
  4. Promoting Standardization and Best Practices: By providing a standardized testing environment, Plutus Bench encourages the adoption of best practices in smart contract development. This standardization is crucial for the long-term sustainability and scalability of the Cardano network.
  5. Security and Reliability: The budget allocation for comprehensive security audits ensures that Plutus Bench itself is secure and reliable. This investment is critical given the sensitive nature of blockchain applications, where security breaches can have significant repercussions.
  6. Ongoing Support and Evolution: The allocation of funds for ongoing support and updates ensures that Plutus Bench remains relevant and effective as the Cardano platform evolves. This adaptability is crucial in the fast-paced world of blockchain technology.

Community Reviews (1)

Comments

Monthly Reports

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00