Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal application for RUST SDK for TON #868

Closed
Victorius opened this issue Nov 6, 2024 · 2 comments
Closed

Proposal application for RUST SDK for TON #868

Victorius opened this issue Nov 6, 2024 · 2 comments
Labels
Developer Tool Related to tools or utilities used by developers

Comments

@Victorius
Copy link

Summary

The proposed project involves creating a comprehensive RUST SDK for the TON ecosystem, focusing initially on core modules:

  • ADNL communication,
  • TL/TL-B code generation,
  • Encoding/decoding tools
  • Light client.

These components will enable developers to build decentralized applications (dApps) on the TON blockchain more efficiently by providing essential tools for secure networking, data encoding, and lightweight blockchain access. This SDK will bridge existing tooling gaps and foster a robust ecosystem of RUST-based dApps on TON.

Context

The TON blockchain, with its highly scalable and secure infrastructure, is well-suited for building next-generation decentralized applications (dApps). However, developers looking to leverage TON’s full capabilities currently lack a comprehensive RUST SDK, which is critical for creating secure, high-performance applications. RUST is increasingly favored in blockchain development due to its memory safety, concurrency advantages, and performance, making it an ideal language for applications requiring high reliability and efficiency. Despite these advantages, the lack of a robust RUST SDK limits TON’s developer reach, as RUST developers encounter significant barriers in accessing core blockchain functions necessary for efficient dApp development.

This SDK project addresses these limitations by implementing essential modules that fill the functionality gap for RUST developers on TON. By focusing on the development of ADNL communication, TL/TL-B code generation, encoding/decoding tools, and a light client, this project lays the foundation for a comprehensive toolkit that meets the needs of modern dApp development.

Each module in this SDK is designed to solve specific problems and introduce essential capabilities for RUST developers working within the TON ecosystem:

1. ADNL (Abstract Datagram Network Layer) Communication Module

  • Description: ADNL is a low-level communication protocol in TON that supports encrypted, datagram-based messaging between nodes. For developers, ADNL provides a way to manage secure peer-to-peer connections and send/receive encrypted messages efficiently.
  • Purpose: By implementing ADNL in RUST, this SDK enables developers to build decentralized applications that need fast, reliable, and secure communication across nodes without reinventing the network layer. This module will support both unicast (one-to-one) and multicast (one-to-many) message transmissions, a critical feature for creating decentralized, highly resilient applications.
  • Value: ADNL’s integration in RUST will make secure communication simpler and more efficient, improving application performance and robustness while reducing development time.

2. TL/TL-B Code Generation Module

  • Description: The TON blockchain uses Type Language (TL) and TL-Binary (TL-B) schemes to define data structures and protocols. This module automates code generation in RUST from TL and TL-B specifications, allowing developers to easily create type-safe, blockchain-compatible data structures and protocols.
  • Purpose: Manual creation of these data structures is error-prone and time-intensive. Automated TL/TL-B code generation provides a standardized way to create complex data types, reducing the potential for errors and enabling faster development.
  • Value: This module ensures that developers have access to accurate, type-safe data structures directly in RUST, allowing for smoother integration with TON’s messaging and data handling conventions. It is particularly valuable for developing complex applications like DeFi platforms and NFT projects that require accurate data representation and manipulation.

3. Encoding/Decoding Module

  • Description: This module provides encoding and decoding functions that handle the transformation of data to and from TON-compatible formats. This includes serialization, deserialization, and cryptographic hashing required for data integrity.
  • Purpose: Proper encoding and decoding are essential for any interaction with the TON blockchain, as they ensure that data is correctly structured for on-chain processing. This module will allow developers to efficiently handle transactions, state updates, and communication with smart contracts by automating the formatting of data.
  • Value: By offering built-in support for encoding and decoding, this module simplifies the development of dApps that need to interact with TON’s on-chain environment. It ensures data integrity and compliance with blockchain protocols, enabling more secure and reliable operations for decentralized applications.

4. Light Client Module

  • Description: The light client provides a streamlined interface for interacting with the TON blockchain without the need for a full node. This module will enable dApps to perform essential blockchain operations, such as querying transaction states, balances, and smart contract data, with minimal resource usage.
  • Purpose: Running a full node is often resource-intensive and impractical for many dApps, especially on devices with limited resources. A light client allows developers to interact with the blockchain efficiently, supporting verification of transaction data and access to blockchain state while using a fraction of the resources required by a full node.
  • Value: This module makes blockchain interactions accessible and efficient, even for lightweight applications and resource-constrained devices. The light client is essential for applications that need to query blockchain data frequently or operate on devices that cannot support a full node, such as mobile apps or IoT devices.

Overall Impact
Together, these modules will create a comprehensive toolkit that fills essential gaps in TON's current developer offerings. The SDK will empower RUST developers by providing standardized, high-performance tools to build robust, secure dApps on the TON blockchain, lowering the entry barrier and fostering innovation in the ecosystem. By delivering these foundational modules first, this project lays the groundwork for subsequent expansions, which could include additional features like storage management, forward error correction, and overlay protocols, ultimately positioning the TON ecosystem as an accessible and powerful environment for RUST developers.

References

Similar tools in other blockchain ecosystems highlight the demand for high-performance SDKs in RUST:

  • Polkadot’s Substrate RUST SDK: Provides modular development tools for blockchain and decentralized applications, demonstrating the efficiency and security benefits of RUST in the Web3 space.
  • Solana’s Anchor Framework: Although it’s specific to Solana, Anchor shows how streamlined RUST tooling can boost developer productivity and dApp security.
  • TON SDKs in other languages: Existing SDKs for TON in languages like Go and Python indicate the need for a RUST version to broaden accessibility and performance optimization for TON.

These references illustrate the impact and utility of a high-quality SDK for developer engagement and ecosystem growth.

Estimate suggested reward

The total estimated reward for this project is $50,000, with the work divided into two milestones, each requiring six weeks for completion.

  • Milestone 1 ($24,000): Implementation of the TL/TL-B code generation module and the Encoding/Decoding module, which will automate code creation from TON schemas and provide efficient data encoding and decoding for secure blockchain interactions.
  • Milestone 2 ($26,000): Development of the ADNL (Abstract Datagram Network Layer) communication module and the Light Client, enabling secure network messaging and lightweight interaction with the TON blockchain.

This budget supports the design, development, testing, and documentation of these foundational modules within the 12-week project timeline.

@Victorius Victorius added the Developer Tool Related to tools or utilities used by developers label Nov 6, 2024
@hacker-volodya
Copy link
Contributor

@delovoyhomie
Copy link
Collaborator

Thank you for submitting your proposal!

Thank you also to @hacker-volodya for your response — I completely agree that much of this functionality has already been developed, including the Rust SDK, as part of the Bounty program (see bounty #182).

@delovoyhomie delovoyhomie closed this as not planned Won't fix, can't repro, duplicate, stale Nov 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Developer Tool Related to tools or utilities used by developers
Projects
None yet
Development

No branches or pull requests

3 participants