dipdup-io / stone-packaging

Various forms of distribution for the Starkware Stone prover and verifier
https://stone-packaging.pages.dev/
MIT License
14 stars 28 forks source link

Generate reference test files #33

Closed dmirgaleev closed 1 week ago

dmirgaleev commented 2 weeks ago

Extend the examples page in the documentation with more Cairo programs. You can take any program you like or you can find on Github.

[!IMPORTANT] More that one person can be assigned, BUT please add the link to repo with the Cairo program you will be working on to avoid duplicates.

Where to store test files: test_files/<your_program_name>

References:

martinvibes commented 2 weeks ago

hello @dmirgaleev please let me work on this :)

onlydustapp[bot] commented 2 weeks ago

Hi @martinvibes! Maintainers during the ODHack # 8.0 will be tracking applications via OnlyDust. Therefore, in order for you to have a chance at being assigned to this issue, please apply directly here, or else your application may not be considered.

onlydustapp[bot] commented 2 weeks ago

Hi @martinvibes! Maintainers during the ODHack # 8.0 will be tracking applications via OnlyDust. Therefore, in order for you to have a chance at being assigned to this issue, please apply directly here, or else your application may not be considered.

petersdt commented 2 weeks ago

hi @dmirgaleev kindly make me a part of the multiple contributors as i have some experience developing few contracts using cairo.

  1. I will choice a program e.g a simple count function
  2. do a brief explanation of the program.
  3. Test cases will be added under test_files/fibonacci_program
  4. verify the program works using stone provider.

source

evgongora commented 2 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hi, I'm Erick part of Dojo Coding, and I'll be working on issue #33 as part of ODHack8.0.

While I don't have direct experience in documentation, I have a solid background in working with Cairo and blockchain technologies, which aligns well with this issue's requirements. I am confident in adapting code examples to improve the user experience, and my previous experience with blockchain tools will ensure that the new Cairo programs are accurately implemented.

How I plan on tackling this issue

Here's how I will approach the task:

Review available Cairo programs to identify a suitable one that complements the current examples in the documentation. Set up the test files for the selected program, storing them in the appropriate directory as outlined in the issue. Integrate the program into the documentation, ensuring it is clear and easy to understand, while following best practices. Focus on accuracy and consistency, ensuring the program aligns with existing examples. Self-review for clarity and correctness before submitting the PR for review. Excited to start working on this issue!

bitfalt commented 2 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hii! My name is Daniel, I’m a Computer Science student and web3 developer. I’ve done some contributions, finished a Starknet Bootcamp, exercises on NodeGuardians, finished Starklings and I have participated in multiple Hackathons. I’m also a member of the Dojo Coding community. I've done documentation contributions in the past.

How I plan on tackling this issue

I would approach this issue in the following way:

I would love to work along @evgongora, we're both interested in the project and would love to contribute!

Benjtalkshow commented 2 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hi there! I’m Benjamin, and I’m excited to help out by creating reference test files and adding more examples of Cairo programs to our project’s documentation. Since joining OnlyDust, I’ve made 18 contributions, and I have experience in writing documentation, so I’m looking forward to this task.

How I plan on tackling this issue

The main goal is to gather some test files that show how different Cairo programs work. I’ll add these new examples to our documentation to make it easier for everyone to understand Cairo.

To get started, I’ll pick a Cairo program that I find interesting from GitHub or any other source. I’ll make sure to explain what the program does and how to use it so that it’s clear for anyone reading the documentation.

I’ll save the test files in the test_files/ folder to keep everything organized. It’s important that everyone working on this adds a link to the Cairo program they choose. This way, we won’t duplicate our work and can work together smoothly.

I’ll also check out these helpful links for inspiration:

  1. DipDup Stone Packaging Test Files: This has various test files we can look at.

  2. Stone Prover Repository: This page has good info on how to create and check proofs for Cairo programs.

No-bodyq commented 2 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I am a computer science student, fullstack and blockchain dev. I have contributed to open source projects in the past via only dust. Here is my profile: https://app.onlydust.com/u/No-bodyq

How I plan on tackling this issue

I will select a program and provide a brief explanation of how it works. Test cases for the program will be added under the test_files/ directory. Finally, I'll verify the program's functionality using the stone provider to ensure everything works as expected.

ShantelPeters commented 2 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

i am a blockchain developer / technical writer with experience with languages like typescript,javascript ,css,react just to name a few , please i will like to take this up

How I plan on tackling this issue

To approach this problem :

  1. Identify Programs: Browse GitHub or other repositories to find Cairo programs that you can use as examples. Ensure the programs are relevant and well-documented.

  2. Select a Program: Choose a program and copy its repository link. This will help avoid duplicates and allow others to see what you are working on.

  3. Create Test Files: Store any test files related to your selected program

  4. Extend Documentation: Update the examples page in the documentation by:

    • Adding a section for your chosen program.
    • Including a brief description, purpose, and any important details
  5. Review and Submit: Ensure your additions are clear and formatted properly. Then, submit the changes for review.

  6. Communicate: If collaborating with others, keep track of who is working on which programs to avoid overlaps.

petersdt commented 2 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Am a frontend developer and a technical writer with experience in document code base.

in the past i have handle issues like this:

How I plan on tackling this issue

I will explore starknet by examples to find suitable Cairo programs. I will select programs that showcases interesting features or functionality.

I will document its purpose, functionality, and any relevant code snippets or examples on the examples page.

I will create a new folder under test_files/ with the name of the chosen program (e.g., test_files/my_cairo_program). I will place all related test files in this folder.

I will run any necessary tests and verify that the program works as expected, ensuring that the examples provided are accurate and helpful.

NueloSE commented 2 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

My familiarity with documentation standards , GitHub version control and writing some smart contracts using cairo and solidity would help me in accomplishing this task. Kindly make me one of the assigned contributors

How I plan on tackling this issue

Identify a Program: Choose a Cairo program from GitHub or any suitable source. Ensure the program is relevant and adds value to the documentation.

Add Repository Link: Document the link to the chosen program repository in the assigned task to avoid duplication.

Create Test Files: Store the test files in the specified directory: test_files/. Organize the files logically, ensuring they are easy to navigate.

Document the Program: Update the examples page in the documentation with clear explanations of how the Cairo program works and how to run it. Include any necessary setup instructions.

Review References: Use the provided references to ensure compliance with the standards set in the documentation.

Kaminar-i commented 2 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

hello i am a frontend developer and a technical writer please can i work on this issue :) i would love to be a contributor on this repo

How I plan on tackling this issue

please kindly assign me and i'll get straight to work

dmirgaleev commented 2 weeks ago

Thank you for your interest everyone! Please note again, only contributors who will add the link to repo with the Cairo program they are going to generate test files will be assigned.

LazarusAA commented 2 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hi!! I'm Alvaro Lazarus a passionate blockchain developer with a good amount of experience on this ecosystem, I love working on documentation related tasks which makes me confident I can complete this issue cleanly, I haven't worked with Stone Packaging before, but would love to contribute to the project.

How I plan on tackling this issue

First I’ll select an intriguing Cairo program from GitHub or another source. I will provide a clear explanation of its functionality and usage in the documentation for easy understanding.

I’ll organize the test files in a designated folder named test_files/ for better management. And I'll make sure to include a link to my chosen Cairo program to prevent duplication.

Best regards, Lazarus

baitcode commented 2 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

https://www.linkedin.com/in/batiyiv/ I'm software engineer, leverage me.

How I plan on tackling this issue

I decided to write Cairo programs myself. Not entirely, I'll be using cairo book as a source of snippets.

I'm planning to create programs for following builtins (looked up here https://book.cairo-lang.org/ch204-02-builtins-list.html): Pedersen hashing (I'll adapt snippet from here. https://book.cairo-lang.org/ch11-04-hash.html) Poseidon hashing (I'll adapt snippet from here. https://book.cairo-lang.org/ch11-04-hash.html) Range check, AddMod, MulMod (I'll make a simple program that looks for a value in the array using after applying some operations) ECDSA (I'll adapt snipper from https://docs.cairo-lang.org/hello_starknet/signature_verification.html)

I have not found a good example for Keccak buitin. I'll try to adapt code from https://github.com/0xSpaceShard/Keccak_example/blob/main/contracts/cairo/solutions.cairo, but not sure if I can do that. This might move outside of that task.

I also couldn't find anything for bitwise operators. But for sure will be able to come up with a program.

operators |, '&^| will be out of scope

===============

I've performed tests with cairo-vm and will generate input and memory files for each program and place it in a test_folder.

Will require some guidance to update the README

dmirgaleev commented 2 weeks ago

Hello @baitcode! Thank you for such a detailed application and welcome aboard! Please don't hesitate to join our Telegram group https://t.me/baking_bad_odhack to ask questions and share your progress! Happy hacking!

dmirgaleev commented 1 week ago

Hey @baitcode! Do you have any progress so far?

baitcode commented 1 week ago

@dmirgaleev I do. Got into troubles with keccak program. Poseidon and Pedersen are done so far. Plan to finalise PR today.

baitcode commented 1 week ago

@dmirgaleev I've finished my research. Will summarise findings in PR. Written all the programs. Trying to run the prover.

dmirgaleev commented 1 week ago

Friendly heads up that you have till Sunday (October 6) to push final PR. @baitcode