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

ADNL over TCP implementation in C# #337

Closed
purpleguy99 opened this issue Oct 22, 2023 · 7 comments
Closed

ADNL over TCP implementation in C# #337

purpleguy99 opened this issue Oct 22, 2023 · 7 comments
Assignees
Labels
Approved This proposal is approved by the committee Developer Tool Related to tools or utilities used by developers

Comments

@purpleguy99
Copy link
Contributor

purpleguy99 commented Oct 22, 2023

Summary

The development of an ADNL over TCP implementation is crucial for the TON ecosystem, as it provides a secure, efficient, and reliable communication protocol between nodes. By creating an ADNL over TCP implementation, developers will be able to easily integrate this protocol into their projects and improve the overall performance and security of their applications.

Context

ADNL (Abstract Datagram Network Layer) is an essential protocol for TON, which enables secure and efficient communication between nodes. Currently, there is a lack of an easy-to-use implementation of ADNL over TCP, which makes it difficult for developers to adopt this protocol and leverage its benefits.

This proposal aims to create an ADNL over TCP implementation, which will make it easier for developers to incorporate ADNL into their projects and improve the overall performance and security of the TON ecosystem.

Goals

Implement ADNL over TCP:

  • Generate ADNL address from key
  • Send messages (client side)
  • Receive messages (server side)
  • Encrypt and sign messages, Diffie Hellman
  • Packet data (de)serialization

Implement LiteClient over ADNL:

  • LiteServer methods provided in lite_api.tl
  • TL data (de)serialization

References

https://github.com/tonstack/adnl-js

Estimate suggested reward

2.250 USD in TON

@purpleguy99 purpleguy99 added the Developer Tool Related to tools or utilities used by developers label Oct 22, 2023
@purpleguy99
Copy link
Contributor Author

@Naltox what do you think?

@aldetkov
Copy link

Well, I hope the C# SDK will develop, it greatly simplifies the life of indie Unity developers :)

@unboxedtype
Copy link

The proposal looks constructive and timely.
The TON development toolchain keeps expanding with new development tools, and some of them will need the client-side module to to interact with blockchain natively.
C#/.NET also seems like a good choice: the managed language with clear structure and semantics leaves less room for subtle bugs.

@delovoyhomie delovoyhomie added the Approved This proposal is approved by the committee label Oct 29, 2023
@purpleguy99
Copy link
Contributor Author

Done! I have released v0.1.0 of the ADNL SDK for C#.

C# SDK repository: https://github.com/continuation-team/TonSdk.NET/tree/main/TonSdk.Adnl/src
Nuget Package: https://www.nuget.org/packages/TonSdk.Adnl

My wallet: UQDHtMV5SG45AwIip7cnmVTvbDz4T8s-nSBtWGl9H0E58trC
@delovoyhomie

@purpleguy99
Copy link
Contributor Author

Ton docs successfully updated - ton-community/ton-docs#420

@purpleguy99
Copy link
Contributor Author

Based on the fact that without implementing a Lite Client for this library, it will be less used, I suggest you add a Lite Client implementation to the conditions for performing this task.

It will include the implementation of the main methods - sending and receiving Lite Server data presented in the topic
https://github.com/ton-blockchain/ton/blob/ad736c6bc3c06ad54dc6e40d62acbaf5dae41584/tl/generate/scheme/lite_api.tl#L62-L84

Additional suggested reward - 250 USD in TON.
Estimated development time is 4 days.

@purpleguy99
Copy link
Contributor Author

I have add lite client wrap for this library.

continuation-team/TonSdk.NET#49

purpleguy99 added a commit to purpleguy99/grants-and-bounties that referenced this issue Dec 15, 2023
delovoyhomie added a commit that referenced this issue Dec 20, 2023
ADNL over TCP implementation in C# #337
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Approved This proposal is approved by the committee Developer Tool Related to tools or utilities used by developers
Projects
None yet
Development

No branches or pull requests

4 participants