Open Aviksaikat opened 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.
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.
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!
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 | | @lit-protocol/auth-helpers | | @lit-protocol/bls-sdk | | @lit-protocol/constants | | @lit-protocol/contracts-sdk | | @lit-protocol/core | | @lit-protocol/crypto | | @lit-protocol/ecdsa-sdk | | @lit-protocol/encryption | | @lit-protocol/logger | | @lit-protocol/misc | | @lit-protocol/nacl | | @lit-protocol/pkp-base | | @lit-protocol/pkp-client | | @lit-protocol/pkp-cosmos | | @lit-protocol/pkp-ethers | | @lit-protocol/pkp-sui | | @lit-protocol/pkp-walletconnect | | @lit-protocol/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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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