Source on GitHub
Smart Contract Address
Testing and Issues
You can test this entry and submit issues during the testing period of the Blockchain Contest, Stage 2 contest.
Entries with serious issues will not be able to win the contest, but even minor issues might be important for overall results.
This is possible thanks to a client-side implementation of the ADNL P2P protocol.
Connection to the liteservers is made through a simple websocket proxy that simply acts as a TCP <=> websocket proxy.
*All cryptography is done exclusively in the browser, allowing fully secure interaction with the chosen TON node*.
TL, ECC w/ TON ADNL, BOC deserialization is implemented.
Initially, I intended to submit an OUTPACE-inspired ad network controlled by the TON blockchain.
I initially decided to develop a custom TON workchain for the needs of my ad network, but then realized that I first needed a way to interact with the TON network, first, which is why I developed this pure-JS TON lite-client.
I also initially intended to create also a very basic ad network smart contract, but then decided to focus all efforts on finishing this library, first.
I will try to summarize what, in my opinion, is already implemented and how important/challenging it is.
Feel free to correct me.
I should note that this is NOT protocol for interaction with ADNL network itself. So "P2P" used in the description is a bit confusing.
Still, it is useful to have such implementation in js (or even php, huh?) in some cases.
2. TL (not TLB) serialization/deserialization. It is necessary to interact with lite-server.
I should note that (in my opinion) TLB is much more complicated than TL, especially when compared to the simplified version of TL, which is actually used.
3. Deserialization of Bag of Cells
To interpret results received from lite-server, one should be able to work with a bag of cells. It is partially implemented.
Also, no validation is supported. A proper lite-client would be able to validate all proofs from lite-server. Currently it
is impossible even to calculate a hash of a cell.
But in a lot of cases, such strict validation is not necessary. One could just trust a lite-server.
4. Cryptography primitives.
These primitives would be useful in the next stages too.
What is left (tlb, fift and tvm) would require much more work.
But what is done is quite impressive and useful.