book icon indicating copy to clipboard operation
book copied to clipboard

Improve Katana Documentation

Open ponderingdemocritus opened this issue 1 year ago • 19 comments
trafficstars

In depth information about Katana

  • [x] 1.0.0 Spec including RPC 6.0
  • [ ] How Katana works as an L3 including persistent storage and genesis setup examples
  • [ ] Point to Alpha L3s as examples (Dope World, Realms World)
  • [x] How Katana works as a development network
  • [x] Contributing to Katana Core
  • [ ] Adding Katana to a wallet provider (Argent X), including images and a basic example
  • [ ] Example of adding Katana as a network into Starknet React
  • [ ] Spinning a Katana up on slot

ponderingdemocritus avatar Feb 27 '24 23:02 ponderingdemocritus

i would love to be assigned a task

aji70 avatar Apr 15 '24 18:04 aji70

Please ! @aji70 try tackle one of the issues

ponderingdemocritus avatar Apr 22 '24 03:04 ponderingdemocritus

okay then @ponderingdemocritus

aji70 avatar Apr 22 '24 22:04 aji70

@ponderingdemocritus i have written something about How Katana works as an L3 including persistent storage and genesis setup examples where should i push it to in the book?

aji70 avatar Apr 25 '24 13:04 aji70

@ponderingdemocritus i have written something about How Katana works as an L3 including persistent storage and genesis setup examples where should i push it to in the book?

hey @aji70 thanks for wanting to help on this!

the list above might not be up-to-date but have you seen the genesis and storage modes sections in the book?

im curious on what you've written and would consider adding them if they're meaningful and haven't already been included in the book!

feel free to open a PR and extend those sections, or create new pages if it make sense.

kariy avatar Apr 25 '24 14:04 kariy

Hi, @ponderingdemocritus and @kariy,I'm thrilled to assist with spinning up a Katana node on slot and have drafted a simplified guide for it. My goal is to create something straightforward and user-friendly, possibly with a quick-start script to help first-timers get up and running without a hitch. I’d be glad to get your input and work together to enhance the setup process.

juandiegocv27 avatar Apr 28 '24 02:04 juandiegocv27

Hi, @ponderingdemocritus and @kariy,I'm thrilled to assist with spinning up a Katana node on slot and have drafted a simplified guide for it. My goal is to create something straightforward and user-friendly, possibly with a quick-start script to help first-timers get up and running without a hitch. I’d be glad to get your input and work together to enhance the setup process.

Hi @juandiegocv27

Yes, more documentations/examples on slot is always appreciated. Though i dont think we'd need a start script, I think it'd be helpful if you could help improving the CLI references for slot.

As you can see in here, the docs are quite lacking compared to sozo/katana. Ideally we want to have slot commands be documented the same way as sozo, where each of the possible commands,arguments, and options are documented clearly along with some short examples.

Would you like to take on this task?

kariy avatar Apr 29 '24 02:04 kariy

I'd love to. For questions where can I contact u? @kariy

juandiegocv27 avatar Apr 29 '24 17:04 juandiegocv27

I'd love to. For questions where can I contact u? @kariy

awesome! you can contact me thru discord @kariiyy

kariy avatar Apr 30 '24 05:04 kariy

Thank u, could you assing it to me? @kariy @ponderingdemocritus

juandiegocv27 avatar Apr 30 '24 15:04 juandiegocv27

Thank u, could you assing it to me? @kariy @ponderingdemocritus

feel free to open a new issue specifically for your task and i will assign it to you.

kariy avatar May 01 '24 14:05 kariy

Thank u, could you assing it to me? @kariy @ponderingdemocritus

feel free to open a new issue specifically for your task and i will assign it to you.

I created the Issue, and I contact u thru discord, but I think he username is @kariy

juandiegocv27 avatar May 01 '24 23:05 juandiegocv27

I am applying to this issue via OnlyDust platform.

Mitish98 avatar Jun 26 '24 21:06 Mitish98

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I believe I can leverage my extensive experience to provide in-depth information and guidance on Katana, the Layer 3 (L3) scaling solution within the Hylé platform.

How I plan on tackling this issue

I would approach this issue with following steps 1 Katana 1.0.0 Spec and RPC 6.0: I can perform a thorough examination of the Katana 1.0.0 specification, including the RPC 6.0 protocol, and present a comprehensive overview of its features and capabilities. 2 How Katana Works as an L3: Leveraging my understanding of scalable and distributed systems, I can explain Katana's role in providing persistent storage and scalability within the Hylé ecosystem, including the genesis setup process and data management strategies. 3 Katana as a Development Network: Drawing from my frontend development expertise, I can demonstrate how Katana can be utilized as a development network, creating examples and guides to help developers integrate it into their workflows. 4 Contributing to Katana Core:
Based on my knowledge of Katana's architecture, I can identify areas where I can contribute to the Katana core codebase, proposing and implementing improvements, bug fixes, or new features. 5 Integrating Katana with Wallet Providers: As a frontend developer experienced in web3 integrations, I can provide detailed guidance on adding Katana support to popular wallet providers, such as Argent X, ensuring a seamless user experience. 6 Integrating Katana with StarkNet React: Leveraging my expertise in React and web3 technologies, I can create a comprehensive example showcasing the integration of Katana as a network within a StarkNet React-based application. 7 Spinning up Katana on Slot: With my background in deployment and infrastructure management, I can provide detailed guidance on the process of spinning up a Katana instance on the Slot layer of the Hylé platform.

ScottyDavies avatar Aug 23 '24 18:08 ScottyDavies

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I'm a frontend and also blockchain developer(I write smart contract). I will love to work on this. i will be grateful if assigned

CollinsC1O avatar Sep 01 '24 16:09 CollinsC1O

Hi @ponderingdemocritus , please can I work on Example of adding Katana as a network into Starknet React?

od-hunter avatar Sep 12 '24 17:09 od-hunter

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Memoria actualizada Aquí te dejo una propuesta para que apliques al issue sobre Katana, con respuestas técnicas y ejemplos específicos:

  1. Tell us about your background and how it can be leveraged:

I have experience working on blockchain projects, particularly within the StarkNet ecosystem, where I’ve dealt with tools like dojo.js, Starkli, and L3 rollups. I’m also familiar with blockchain development networks, and have a solid understanding of persistent storage, RPC protocols, and how to set up environments like Katana. I’ve previously worked on projects that involve setting up local development environments with test chains, which gives me a strong foundation to document the inner workings of Katana.

Specifically, I’ve helped in setting up development networks that replicate production environments and I’ve written documentation on how these environments can be leveraged by developers for local testing. My hands-on experience with rollup architectures (L2/L3) would help in breaking down the setup and usage of Katana, making it easier for developers to get started.

How I plan on tackling this issue

Step 1: Explain Katana's 1.0.0 Spec and RPC 6.0 I would start by documenting the Katana 1.0.0 spec, focusing on how it implements the RPC 6.0 specification. I’d provide clear examples of RPC requests and responses, detailing how they work within Katana. Using tools like Postman or curl, I would include specific calls such as:

RPC Example: curl -X POST http://localhost:5050 -H "Content-Type: application/json" -d '{ "jsonrpc": "2.0", "method": "katana_getWorldState", "params": ["0x1"], "id": 1 }' This example could show how developers can interact with Katana's blockchain using RPC, ensuring the documentation includes detailed explanations of each method.

Step 2: How Katana Works as an L3 (Persistent Storage, Genesis Setup) Next, I would dive into how Katana functions as an L3. I’d explain the role of persistent storage and show examples of how developers can set up genesis blocks for testing. I’d create a hands-on example using configuration files that detail how to initialize a development network with Katana and persist blockchain states across runs.

Genesis Setup Example: katana --genesis_path ./genesis.json --persist ./katana_db This would help developers spin up a local Katana network that can be reset or continued from a saved state.

Step 3: Point to Alpha L3s (Dope World, Realms World) I’d provide links and references to Alpha L3s like Dope World and Realms World, showcasing how Katana is used in these environments. These examples would help developers understand Katana’s potential in real-world projects and how to use it for their own decentralized games or dApps.

Step 4: Katana as a Development Network I’d explain how to use Katana as a local development network, providing clear steps on how to configure and run it. I’d also explain how developers can test smart contracts locally before deploying them on StarkNet’s mainnet.

Example:katana --dev --port 5050 This command spins up Katana in development mode, allowing users to simulate network interactions.

Step 5: Contributing to Katana Core To encourage contributions, I’d create a section that outlines how to set up a local environment for contributing to Katana Core. This would include steps to clone the repository, run tests, and follow the contribution guidelines.

Example: git clone https://github.com/somekatana-repo cd katana cargo build i include instructions on submitting pull requests and common coding conventions.

Step 6: Add Katana to Wallet Providers (Argent X) I would walk through the process of adding Katana to wallet providers like Argent X. This would include detailed screenshots and step-by-step instructions on how to configure the wallet to recognize the Katana network.

Example in yami: In Argent X, I’d show how to manually add a network by inputting the necessary RPC details for Katana, such as: Network Name: Katana Devnet RPC URL: http://localhost:5050

Step 7: Example of Adding Katana to StarkNet React I’d provide a practical example of adding Katana to a React app that uses StarkNet. This would include code snippets to configure starknet.js to point to the Katana network.

Example in javascript

const provider = new Provider({ rpc: { nodeUrl: 'http://localhost:5050', }, }); I’d ensure that the example is beginner-friendly and comes with a complete project setup, including steps to run the React app locally with Katana.

Spinning up Katana on a Slot Finally, I’d give an example of running Katana on a specific slot, explaining how to configure and control it. This would include command-line examples and config file setups to help users understand how to manage multiple slots.

Example: katana --slot 123 --genesis_path ./slot_genesis.json This command could show how to run a specific slot configuration for testing or development.

FroDev-CR avatar Sep 17 '24 03:09 FroDev-CR

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I've been coding in Python, JavaScript, and TypeScript for a good while now. I've worked on a few blockchain projects, so I'm familiar with the whole ecosystem. I've also written technical docs before, so I know how to break down complex stuff into bite-sized pieces that don't make people's eyes glaze over.

How I plan on tackling this issue

To tackle this documentation improvement task, I would begin by thoroughly researching Katana and its ecosystem to ensure a comprehensive understanding of its functionalities and use cases. My approach would involve creating a structured documentation plan that addresses all the specified areas. I would start with the 1.0.0 Spec and RPC 6.0 documentation, ensuring it's both comprehensive and accessible. For the L3 functionality, I'd craft detailed explanations of persistent storage and genesis setup, incorporating real-world examples from Alpha L3s like Dope World and Realms World. The development network section would focus on practical, step-by-step guides for developers of varying experience levels. To encourage community involvement, I'd create a clear, inviting guide for contributing to Katana Core. For wallet integration, I would develop a detailed tutorial on adding Katana to providers like Argent X, complete with visual aids and code examples. Similarly, I'd create a concise yet thorough guide for integrating Katana as a network in Starknet React. Throughout the documentation, I'd maintain a balance between technical accuracy and readability, ensuring that complex concepts are explained in an approachable manner. I'd also include practical examples and use cases to illustrate key points.

akintewe avatar Oct 07 '24 17:10 akintewe

Hi @ponderingdemocritus, I think the issue of Spinning a Katana up on slot is alerady done, you can look this pr: https://github.com/dojoengine/book/pull/271

juandiegocv27 avatar Oct 07 '24 22:10 juandiegocv27

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I have a solid background in Python, JavaScript, and Typescript, with several years of experience working on blockchain-based applications. My experience includes developing smart contracts, contributing to decentralized applications, and writing technical documentation for both developer and user-facing products. I have contributed to similar open-source projects where I focused on ensuring that documentation is clear, comprehensive, and easy to follow. Additionally, my work on projects like [your previous project name] involved setting up L2 and L3 networks, which gives me an understanding of how Katana could be documented for different use cases such as persistent storage, genesis setup, and development environments.

How I plan on tackling this issue

My approach would be to first familiarize myself with the existing Katana documentation, the RPC 6.0 spec, and how Katana functions as an L3. I would:

  1. Review and Revise Existing Documentation: Ensure that the current documentation covers all aspects of the 1.0.0 spec and provides a clear understanding of how Katana works. This would include breaking down complex concepts, adding practical examples, and ensuring that the documentation is up-to-date with the latest features, such as persistent storage and genesis setup.

  2. Add Examples and Use Cases: I would incorporate real-world examples, such as how Katana operates in Alpha L3s like Dope World and Realms World, to give developers context on its application. This helps bridge the gap between theory and practice.

  3. Improve Contribution Guidelines: I would add a detailed guide for contributing to Katana Core, making it easy for new developers to understand how they can contribute. This would involve creating a step-by-step process for setting up a development environment, running tests, and submitting pull requests.

  4. Wallet Integration: I would create a tutorial on adding Katana to wallet providers like Argent X, accompanied by images and example code, to simplify the process for developers.

  5. React Integration: For developers building on Starknet with React, I would provide a clear example of how to add Katana as a network. This would include detailed code snippets and explanations.

  6. Spinning Up Katana on Slot: Lastly, I would include a guide on how to spin up Katana on slot, with step-by-step instructions and troubleshooting tips to make the process as smooth as possible."

TechStudio316 avatar Oct 19 '24 20:10 TechStudio316

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I am a front-end developer specializing in responsive web design, device-compatible email templates, 3D web integration, and technical writing on programming topics. I also contribute to open-source documentation and help build documentation sites.

How I plan on tackling this issue

i will point to one of the above requested issue i will be picking Point to Alpha L3s as examples (Dope World, Realms World) and show many use case of katana and the example by doing research and finding on l3 that have use it in the past or the one still in development

emmz3230 avatar Oct 23 '24 01:10 emmz3230

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hi there. Unity Game developer and C# programmer here. Interested in taking on your work to improve Katana documentation

How I plan on tackling this issue

Learn about the Katana network and structure the interactions to its network as a comprehensive, algorithmic description. Also general contributions to the Katana network would be made where possible.

DavidOredu avatar Oct 24 '24 07:10 DavidOredu

Can I work on this, please?

blessingbytes avatar Oct 31 '24 09:10 blessingbytes

pls i would love to work on this documentation

blessingbytes avatar Oct 31 '24 09:10 blessingbytes

Can I take this from here?

Shaarps avatar Nov 01 '24 12:11 Shaarps

Is this issue still available? I would love to help out.

gchimelu avatar Nov 08 '24 08:11 gchimelu