LIT-Protocol / LitGrants

Apply for a Lit grant and be part of the Lit ecosystem!
23 stars 2 forks source link

Open Grant: Lit Protocol Python SDK Development #74

Open Aviksaikat opened 7 months ago

Aviksaikat commented 7 months ago

Open Grant Proposal: Lit Protocol Python SDK Development

Name of Project: Lit Protocol Python SDK Development

Proposal Category: Choose one of app-dev

Proposer: @aviksaikat

Do you agree to open source all work you do on behalf of this grant and dual-license under MIT, APACHE2, or GPL licenses?: Yes

Project Description

I. Executive Summary

Project Overview

This proposal seeks funding for the development of a Python SDK for the Lit Protocol, providing developers with a framework for implementing Lit functionality into their own Python applications. The Python SDK will offer seamless integration with the Lit network, enabling developers to interact with Lit's features in a Python environment.

Objectives

The primary objective of this project is to create a comprehensive Python SDK for the Lit Protocol, mirroring the functionality provided by the existing JavaScript/TypeScript SDK. The Python SDK will be modular, easy to use, and optimized for performance, allowing Python developers to leverage Lit's features effortlessly.

II. Project Details

Technical Overview

The Python SDK will include modules corresponding to the packages available in the Lit JavaScript/TypeScript SDK. These modules will cover various aspects such as access control conditions, authentication helpers, cryptography, encryption, logger, and more. The SDK will provide Pythonic interfaces for interacting with Lit's network, contracts, and utilities.

Compatibility

The Python SDK will be compatible with Python 3.9+ versions.

Value

Developing a Python SDK for the Lit Protocol will empower developers to integrate Lit functionality into their applications seamlessly. Your support will accelerate the development of this SDK, fostering innovation and growth within the Lit ecosystem.

Deliverables

A python libaries for all of these following npm packages | @lit-protocol/access-control-conditions | access-control-conditions | @lit-protocol/auth-helpers | auth-helpers | @lit-protocol/bls-sdk | bls-sdk | @lit-protocol/constants | constants | @lit-protocol/contracts-sdk | contracts-sdk | @lit-protocol/core | core | @lit-protocol/crypto | crypto | @lit-protocol/ecdsa-sdk | ecdsa-sdk | @lit-protocol/encryption | encryption | @lit-protocol/logger | logger | @lit-protocol/misc | misc | @lit-protocol/nacl | nacl | @lit-protocol/pkp-base | pkp-base | @lit-protocol/pkp-client | pkp-client | @lit-protocol/pkp-cosmos | pkp-cosmos | @lit-protocol/pkp-ethers | pkp-ethers | @lit-protocol/pkp-sui | pkp-sui | @lit-protocol/pkp-walletconnect | pkp-walletconnect | @lit-protocol/sev-snp-utils-sdk | sev-snp-utils-sdk

Development Roadmap

Project Timeline and Milestones

Phase 1: Planning and Design

Milestone 1: Understanding Lit Protocol (Week 1)

Milestone 2: SDK Architecture Design (Week 2-3)

Milestone 3: Environment Setup (Week 4)

Phase 2: Development and Testing

Milestone 4: Core SDK Development (Week 5-8)

Milestone 5: Testing and Optimization (Week 9-10)

Phase 3: Documentation and Release

Milestone 6: Documentation (Week 11)

Milestone 7: Release (Week 12)

Total Budget Requested

We are requesting a grant of $15,000 to support the development, testing, and documentation phases of the Lit Protocol Python SDK.

Maintenance and Upgrade Plans

VI. Maintenance and Upgrade Plans

Upon completion of the initial development phase, maintaining and upgrading the Lit Protocol Python SDK will be crucial to ensure its continued effectiveness and relevance within the ecosystem. The following strategies outline our approach to ongoing maintenance and upgrades:

  1. Regular Code Review: Implement a process for regular code reviews to identify and address any bugs, vulnerabilities, or areas for improvement. This will involve the active participation of the development team to review each other's code and ensure adherence to best practices.

  2. Community Feedback: Establish channels for collecting feedback from the community, including developers using the SDK. This feedback will be valuable in identifying user needs, addressing pain points, and prioritizing future enhancements.

  3. Version Control: Implement a version control system to manage releases and updates to the SDK. This will allow users to track changes, understand compatibility requirements, and safely upgrade to newer versions as they become available.

  4. Patch Releases: Respond promptly to critical issues or security vulnerabilities by issuing patch releases as needed. These releases will contain fixes for urgent issues without introducing major changes that could disrupt existing integrations.

  5. Feature Enhancements: Continuously evaluate the evolving needs of developers and the broader ecosystem to identify opportunities for feature enhancements. New features will be prioritized based on their potential impact, feasibility, and alignment with the project's roadmap.

  6. Documentation Updates: Maintain up-to-date documentation for the SDK, including usage guides, API references, and troubleshooting resources. This will ensure that developers have access to accurate and comprehensive information when integrating the SDK into their projects.

  7. Compatibility Testing: Conduct regular compatibility testing to ensure that the SDK remains compatible with the latest versions of Python, as well as other relevant libraries and frameworks. Compatibility issues will be addressed promptly to maintain a seamless development experience.

  8. Ecosystem Integration: Explore opportunities for deeper integration with other projects and platforms within the Lit Protocol ecosystem. Collaboration with ecosystem partners will enable synergistic developments and expand the utility of the SDK.

  9. Long-Term Roadmap: Maintain a long-term roadmap for the SDK, outlining planned enhancements, features, and improvements. This roadmap will be regularly reviewed and updated based on changing market dynamics, technological advancements, and community feedback.

  10. Community Engagement: Foster an active and engaged community around the SDK through communication channels such as forums, social media, and developer meetups. Engaging with the community will facilitate knowledge sharing, collaboration, and the exchange of ideas.

We understand that securing further funding for ongoing maintenance and upgrades is essential for the long-term sustainability of the Lit Protocol Python SDK. We are open to discussing future funding opportunities and collaborating with relevant stakeholders, including the grantsDAO and other potential funding sources within the Lit Protocol ecosystem.

As we progress with the development and initial rollout of the SDK, we will actively monitor its performance, gather feedback from the community, and assess future funding needs based on evolving requirements and objectives. We are committed to transparent communication and collaboration to ensure that the SDK receives the necessary support to thrive and continue delivering value to developers and users within the Lit Protocol ecosystem.

Team

Team Members

Saikat Karmakar

Team Website

https://aviksaikat.github.io/

Relevant Experience

Our team, led by @Aviksaikat, brings a wealth of experience in smart contract auditing, systems security engineering, and Python development. With a track record of successful projects in similar domains, we believe we are the right team to undertake the development of the Lit Protocol Python SDK.

Relevant Experience

  1. Smart Contract Auditing: Our team has extensive experience in auditing smart contracts for security vulnerabilities and ensuring the integrity and robustness of blockchain-based systems. This expertise will be invaluable in developing a secure and reliable Python SDK for the Lit Protocol.

  2. Systems Security Engineering: We have a deep understanding of systems security principles and best practices, allowing us to design and implement secure solutions that adhere to industry standards and mitigate potential risks.

  3. Python Development: As seasoned Python developers, we are well-versed in the intricacies of the language and proficient in leveraging its features to build efficient and maintainable software solutions. Our prior projects, such as bee-py and swarm-cid-py, demonstrate our proficiency in Python development and our ability to deliver high-quality code.

  4. Blockchain Development: We have a strong background in blockchain development, including Ethereum-based projects, which provides us with valuable insights into the unique challenges and requirements of building decentralized applications and protocols.

Why Us?

Team code repositories

https://github.com/Aviksaikat/ https://github.com/alienrobotninja/bee-py https://github.com/Aviksaikat/swarm-cid-py

Additional Information

Telegarm : https://t.me/kamab0k0_g0npachir0 Discord: avik_saikat

glitch003 commented 7 months ago

Hi, thanks for the submission!

Why do you want to make a python SDK? Like is this for some app you want to build that will use it?

I ask because, typically python is a backend language. And Lit was designed to have the users talk directly to the lit nodes from the frontend, because if the user talked to Lit through a backend, the backend would be a man in the middle. The backend could impersonate and authenticate as a user, without their consent. This is why the only Lit SDK that exists right now is JS - because it's a frontend language and runs in the user's browser.

I'm just wondering because there are some rare use cases where talking to Lit from the backend does make sense. But I don't know your use case for this Python SDK and I would want to understand that.

Aviksaikat commented 7 months ago

As the landscape of backend languages evolves, Python continues to play a significant role in full-stack applications. With the rise of frameworks like ApeWorx and the increasing popularity of languages like Vyper, Python remains a crucial language for developers building decentralised applications (DApps) on the Ethereum blockchain.

The vyper programming language, which is gaining traction in the Ethereum community, is a Python-based language that allows developers to write more secure and efficient smart contracts. This shift towards Python-based modules for building native applications is likely to continue in the coming years.

To stay ahead in this rapidly evolving field, Python developers should actively explore and utilize Python-based modules and frameworks. By doing so, they can enhance their skills and remain competitive in the ever-changing world of blockchain development.

According to the current use case, I am including it here. Consider the following example of bls-sdk.

import { initWasmBlsSdk } from '@lit-protocol/bls-sdk';

initWasmBlsSdk().then((exports) => {
  globalThis.wasmExports = exports;
  log(
    `✅ [BLS SDK] wasmExports loaded. ${
      Object.keys(exports).length
    } functions available. Run 'wasmExports' in the console to see them.`
  );
});

The Python SDK can be like this


from bls-sdk import initWasmBlsSdk

[...]

Regarding the current user base of Lit-Protocol, I do not have specific numbers. However, as the demand for secure key management options continues to rise, it is expected that the user base of Lit-Protocol will grow in the coming days. As more individuals and organisations recognize the need for secure key management, the appeal of Lit-Protocol's decentralized network is likely to increase. Which will attract developers from different background to work with the protocol. And having language specific tools will speedup the process for both of the parties.

pileks commented 5 months ago

Hi, just as a side-note, I was searching for ways to integrate Lit into Python via an SDK as it's an actual use-case for a project my team is working on.

So, if this does come to fruition, there's at least one vocal dev that would benefit from it out there. :)

All the best!