AMA session overview: “SDK Bindings for TON Client Library” contest
On October 28, 2020, the next AMA session of Free TON was held. We present to you information related to the SDK contest.
The mass adoption of TON depends on the as-yet-defunct ecosystem of DApps (Decentralized Applications). However, as a result of the contest, developers will receive a set of materials, libraries and tools that will make it possible to create TON DApps in any language, architecture and platform. Do you have any ideas for software development tools? Then welcome to participate in the competition!
How will the SDK contest benefit users and the project in general?
Ekaterina believes that the user will be able to write applications in different programming languages, and not only web applications.
Mikhail Vlasov clarifies that at the moment the technological basis for the development of distributed applications (similar to the Win API in Windows) is being developed and after its release, third-party developers will begin to create convenient frameworks for various application areas. Currently, the main thing is to ensure the output of this platform for the main application development tools (java, java-scrip, .NET, etc.).
Are there any plans to involve third-party developers, such as Android and IOS developers, in the SDK contest?
Vlasov noted that the community is present at the birth of an entire ecosystem. The subject area is still being formed, so it is difficult to predict something. The SDK will not solve the problems of Apple or Android, but will allow developers on these platforms to solve problems related to the blockchain and the decentralized financial system (DeFi).
What should the tests cover?
If there is no business logic for the task in the wrapping object itself, then you need to know that the tests should cover the functionality that the core of the TON OS platform provides.
On Mikhail’s advice, you can take old tests from the java-scripting suite: today they are the most comprehensive and varied. The rust library can also be used.
The presence of original interesting tests, test suite completeness can become one of the criteria for evaluating a solution. There are also ready-made repositories, where there are many test suites, basic test data and expected results.
TON Surf and P2P
When asked if there are any ideas for implementing P2P (peer-to-peer) in TON Surf, Mitya Goroshevsky replied that there is encrypted interaction, but it was done centrally, through the database. The community developer experience is currently researching and developing a decentralized database that will be deployed with TON, where similar products can be made.
Library Integration in Angular
Who owns the entries?
Mitya Goroshevsky is sure that everyone should have a Free Software license. Alex clarified whether he, as an individual, can use the competition works without any problems. Mitya confirmed this, reminding that these are the contest requirements.
The ton.dev/graphql endpoint is currently used as a link to the blockchain. Will there be a contest to launch new endpoints?
As Mikhail Vlasov notes, the graphql endpoint is the entry point to the blockchain. DApp server includes special nodes that allow external applications using the SDK platform to interact with the blockchain. It is also “open source”, i.e. this solution is completely open and any decentralized person can download all the repositories and deploy this entry point at all capacities. There is no violation of decentralization. You can write your own DApp server, but you need to implement the same GraphQl endpoint protocol. The implementation itself can be completely rewritten, but the main thing is compatibility with the TON OS protocol. And there is an opportunity to take a ready-made one, which is available to anyone.
Mitya agrees and adds that an economic model will also be worked out. Then the validators will be interested in deploying DApp servers. Anyone can make a profit if they provide real help to the community.
Alternative DApp server: to be or not to be
When Alex asked if it was planned to implement an alternative DApp server in another language, Mitya Goroshevsky replied that TON Labs would not support other servers, since there was no point in that. This led to a whole discussion. Alex is convinced that it is better for a developer user to have two SDKs in order to use different protocols. Mitya is adamant: this will only complicate the transition from stack to stack.
Mitya is sure that you don’t need two different APIs, you need to support one, and then there will be no bugs. But two nodes are needed. There is a protocol – a processor, and there is a protocol implementation – virtual machines, which can have several implementations. There is also a request to resources and API. You can also use a light client – an absolutely independent endpoint.
Mikhail Vlasov believes that decentralization is a blockchain. Nobody controls the contents of the database in which the blocks are chained. It makes no difference how they are produced. There is no forgery and this is the essence of the blockchain.
Ivan Kotelnikov summed up that after the contest, many programmers will find the opportunity to set their configuration in the SDK, write their own copy of tonos-cli which will look like a light server.
About the transaction debugger contest
Ivan Kotelnikov is sure that after debugging, it will be possible to use smart contract development, conduct transactions in the blockchain locally (what happens step by step) and link it to the source code on Solidity.
Regarding the use of Solidity, Mitya Goroshevsky explained that low-level languages are discouraged since they are not user friendly. Obviously, a tiny number of programmers in the world will write in such languages, so initially TON Labs decided to make compilers that support popular languages.
Will results be added to tonos-cli?
When Alex asked if it is planned to add the results to the stack in tonos-cli, as in the lite client, Ekaterina replied that it is planned and will be pretty soon.
Mitya Goroshevsky summed up the meeting, noting that the main task is to provide developers with a good, convenient tool.