ton-society / grants-and-bounties

TON Foundation invites talent to imagine and realize projects that have the potential to integrate with the daily lives of users.
https://ton.org/grants
310 stars 137 forks source link

TON Installer Tool — setup environment on any system in one-line of code #38

Closed SwiftAdviser closed 1 year ago

SwiftAdviser commented 2 years ago

Summary

TON Dev Chat has many questions and complaints about smart-contract binaries (func, fift, lite-client). On every system binaries need their setup and dependencies to work appropriately (Windows, Debian, Ubuntu, MacOS x86, MacOS arm64). That provides complexity and tons of questions for new developers in the ecosystem and lower conversion to future smart-contracts developers.

Tal Kol already simplified the process with pre-built binaries. But it is still not enough to make your "first smart contract in one evening". If TON wants to provide a first-class experience for developers the process should be as simple as possible.

Tal Kol's experience could be used to make the releases versioning to split versions of TON binaries used by the one-line installer in the future. But today we could start from the MVP of the one-line installer.

Context

Solana

To resolve this issue, other blockchains already have "one-line installer" solutions like Solana Install Tool:

image

Geth

Or Geth for Ethereum:

image

TON Installer Tool

image

TON Installer Tool solution must provide a simple experience for anyone curious about TON and smart-contract development. It must help to avoid a problem where you have many binaries for many versions of OS, which you should update every 3 months!

Goals

Deliverables

Definition of Done

Reward

Hiyorimi commented 2 years ago

LGTM

tvorogme commented 2 years ago

Ok, we're already doing it in a long time. Firstly, we got docker slim image for all systems and binaries with toncli in it with just 60mb size - https://github.com/disintar/toncli/pull/59 Soon we will present easy to use scripts one-liners, so if your machine support docker you will just use curl | bash.

Secondary, soon we will introduce packages to all systems, so you will do apt get install ton or brew install ton and that's all. Work is ongoing here

SwiftAdviser commented 2 years ago

Ok, we're already doing it in a long time. Firstly, we got docker slim image for all systems and binaries with toncli in it with just 60mb size - disintar/toncli#59 Soon we will present easy to use scripts one-liners, so if your machine support docker you will just use curl | bash.

Secondary, soon we will introduce packages to all systems, so you will do apt get install ton or brew install ton and that's all. Work is ongoing here

Sounds cool! 🔥 That's very cool that the community already has results to solve this problem. I have some questions here.

tvorogme commented 2 years ago

What about users who can't run docker emulation on their machine for some reason?

That's why we work on packages for systems. apt install ton don't need docker.

What about a one-line solution for Windows users?

@tonthemoon packages will support windows. Docker images also runs in Windows very easelly.

What about arm64 binaries? (macOS M* series for today)

M1 already supported in docker and in @tonthemoon brew package.

SwiftAdviser commented 2 years ago

What about users who can't run docker emulation on their machine for some reason?

That's why we work on packages for systems. apt install ton don't need docker.

What about a one-line solution for Windows users?

@tonthemoon packages will support windows. Docker images also runs in Windows very easelly.

What about arm64 binaries? (macOS M* series for today)

M1 already supported in docker and in @tonthemoon brew package.

Sounds perfect! This means all goals will be covered by the @tonthemoon project.

Maybe, you could become a responsible contributor to this Footstep?

I would be happy to integrate your project to the tonspace.co as soon as it would be ready to use instead of a giant "Installation" step!

Termina1 commented 2 years ago

Hi, I recently forked ton-compiler nodejs package and built tonc (https://github.com/Termina1/tonc). It has WASM-built func and fift, inspired by ton-contract-executor, but I also automated building WASM-binaries, so anyone can do it and it’s easy to update. The only thing it’s missing is lite-client, but fift and func can now be installed with one-liner:

npm install -g tonc

It should work on any system with nodejs. I probably could add lite-client to compiled binaries, but it would require a bit more work.

Naltox commented 1 year ago

Now that we have https://github.com/ton-community/blueprint i think we can close this Footstep