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

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

Closed
10 tasks
SwiftAdviser opened this issue Sep 12, 2022 · 7 comments
Closed
10 tasks
Labels
footstep This is a TON Footstep issue

Comments

@SwiftAdviser
Copy link
Contributor

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

  • Provide a one-step environment setup experience of TON binaries for every potential smart-contract developer.
  • Gather feedback from developers from the community using different types of systems (macOS, Linux, Windows)
  • Be sure that all works fine by feedback from the community

Deliverables

  • Create an MVP of a one-line installer for TON binaries from master branch of ton-blockchain
  • Make an open-source repository that TON Community could improve in the future
  • Create installer for macOS x86/arm64
  • Create installer for Windows x86
  • Create installer for Linux Debian/Ubuntu (16-22.04)
  • Test every installer on new developers from the community and fix bugs from feedback

Definition of Done

  • open-source one-line installer tool working on macOS x86/arm64 operating systems.
  • open-source one-line installer tool working on Linux Debian/Ubuntu operating systems.
  • open-source one-line installer tool working on Windows operating systems.
  • applied one-line install used in onboarding every smart-contract developer (tonspace.co, ton.org/docs)

Reward

  • Standard TON Footstep NFT
  • Amount of TON — TBD
@SwiftAdviser SwiftAdviser added the footstep This is a TON Footstep issue label Sep 12, 2022
@Hiyorimi
Copy link
Contributor

LGTM

@tvorogme
Copy link
Contributor

tvorogme commented Sep 12, 2022

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

@SwiftAdviser
Copy link
Contributor Author

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.

  • What about users who can't run docker emulation on their machine for some reason?
  • What about a one-line solution for Windows users?
  • What about arm64 binaries? (macOS M* series for today)

@tvorogme
Copy link
Contributor

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
Copy link
Contributor Author

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
Copy link

Termina1 commented Sep 13, 2022

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
Copy link

Naltox commented Feb 1, 2023

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

@delovoyhomie delovoyhomie closed this as not planned Won't fix, can't repro, duplicate, stale Feb 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
footstep This is a TON Footstep issue
Projects
None yet
Development

No branches or pull requests

6 participants