Short description
Provide non-docker TON OS Startup Edition (TON OS SE) installers for Mac, Win and Linux.
Contest dates
March 9, 2021 — March 26, 2021, 23:59 UTC
Voting cycle:
9 days
Motivation
TON OS Startup Edition - local blockchain for the Free TON smart contract/DApp development and testing - is now shipped as a docker image which becomes a stopper for many users who do not understand what Docker is and don’t want to learn this tool to get onboard. Additionally, docker does not work on every platform, which was also a stopper for Windows Home Edition some time ago and probably is a stopper for some platforms now.
Task
The task of this contest is to provide TON OS SE with a platform-suitable installer for Win, MacOS or Linux. One platform - one submission. If a developer supports more than 1 platform, these are to be separate submissions. Winners are chosen for each platform separately.
Solution should use this TON OS SE release 0.24.13, so that active development will not interfere and interrupt the contest.
Winners will have to publish their work to a repository in Free TON Community github account where they will support it for the next 6 months.
Requirements
- Installation MUST be easy and fast - solution should include or download precompiled binaries.
- Solution MUST provide command line interface for TON OS SE Management API (alternative to current docker API usage):
- start network
- stop network
- reset (restart the local blockchain from scratch)
- configure port where it runs
- expose arangoDB web interface to some port
- and other possible/required or desired configuration options
so that it is possible to add a dashboard for its management later and integrate it with other clients that will allow its management.
-
TON OS SE MUST be fully functional after installation: check used ports during installation and ask to use another port if the default port is busy, etc.
-
Solution MUST have CI/CD pipeline dependable on new releases of GitHub - tonlabs/evernode-se: Local Node for Everscale DApp development and testing so that each time release happens, the new installer is published
-
Solution MUST have older versions available for installation so that if a user encounters any bug in the new release they can roll back.
-
Optional: Javascript package for TON OS SE management providing access to Management API.
-
All tests from test suite https://github.com/tonlabs/ton-client-js#run-tests-on-node-js from commit pass successfully and tests from https://github.com/tonlabs/TON-SDK/tree/master/ton_client also pass successfully (run cargo test, these tests use the same environment variables as ton-client-js test suite).
Submission format
Submission must be published to a public github repository to the contest
branch which MUST be fixed (no changes should be committed there) after the contest dates are over.
README must have the following documentation:
- How to create installer via scripts for the specific platform
- How to install TON OS SE with installer for the specific platform
- Management API Reference with CLI usage samples
- If the solution provides a JS package, there should also be JS API Reference
- Documentation and tests with an instruction how to run them.
PDF should be attached to the submission with the link to the repository’s contest branch along with the telegram id of the participant so that jury members can access the participant and ask questions.
Reject criteria
Submission is rejected if any of these criterias are present.
- Documentation described in submission format is not provided in full for any of the supported platforms (need to fully support at least 1 platform)
- Build scripts do not work
- Installation scripts do not work
- Not all the Management API Functionality implemented and works via CLI
- Test suites listed in Requirements Section do not pass for any supported platform
Evaluation criteria
Considering the following criteria set, the submission score increases:
- Easiness of installation
- Time of installation
- JS package definitely will give you additional points
- Readable source code
- Detailed documentation
Jury
- The juror must have a solid understanding of the described technology to provide a score and feedback. If not, the juror should choose to “Abstain”.
Voting:
- The juror must have a solid understanding of the described technology to provide a score and feedback. If not, the juror should choose to “Abstain”.
- Jurors or whose team(s) intend to participate in this contest by providing submissions lose their right to vote in this contest.
- Each juror will vote by rating each submission on a scale of 1 to 10 or can choose to reject it if it does not meet requirements or vote “Abstain” if they feel unqualified to judge.
- Jurors must provide feedback on submissions or lose their reward.
- The Jury will reject duplicate, sub-par, incomplete, or inappropriate submissions.
- The number of days for jury voting is hereby set at 21 day.
Contest Rewards
Linux rewards
- 30’000
- 20’000
- 10’000
MacOS rewards
- 30’000
- 20’000
- 10’000
Windows rewards
- 30’000
- 20’000
- 10’000
BONUS
DevOps SG offers a special reward of 20 000 for the most elegant installation which works on Windows, Mac OS and Linux using a similar approach and not using docker. It should be a separate submission which covers all operating systems.
Reward Distribution
- Winners receive 50% of their rewards when contest results are evaluated.
- Another 50% will be vested in equal parts over a 6-month period with monthly payouts.
- To receive all 6 distributions, the solution should be supported for 6 months
- The Installer should be updated within a reasonable timeframe - 1 week maximum after GitHub - tonlabs/evernode-se: Local Node for Everscale DApp development and testing is released.
- Major GitHub Issues should be resolved within a reasonable timeframe - 2 weeks maximum.
Jury Rewards:
An amount equal to 10% of the total sum of all total tokens awarded to contest winners will be distributed among jurors who vote and provide feedback. This percentage will be awarded on the following basis:
- The percentage of tokens awarded to the jury will be distributed based on the number of votes each juror casts. For example, if one juror votes 50 times and another juror votes 5 times, the juror who votes 50 times will get 10 times more tokens than the juror who votes 5 times.
- Feedback is mandatory to collect any rewards.
- In this particular contest the contestants have a vesting period for their reward distributions. The jurors do not. Jurors will receive their rewards upon completion of the contest in one lump sum, i.e., no vesting period, and as a part of the cumulative 100% reward figure regardless of the long term outcome.
Org Rewards:
An amount equal to 2% of the total sum of all total tokens awarded to contest winners will be distributed among org members who helped to organize and promote the contest, and organize rewards distribution in proportion to the time spent.
Procedural requirements:
Accessibility. All submissions must be accessible for the jury to open and view, so please double-check your submission. If the submission is inaccessible or does not fit the criteria described, jurors may reject the submission.
Timing. Contestants must submit their work before the closing of the filing of applications. If not submitted on time, the submission will not count.
Contact. Each submission must have an identifiable contact that can be matched with your description. If you have not provided a forum description for discussion, then your application should contain links to your online persona, for example, a Telegram ID (preferred) or other direct contact information that can confirm that the submitted work is yours. In the absence of confirmation by the contestant of the authorship of the submitted work, the submission may be rejected.
Multiple submissions.
- Each contestant has the right to provide several submissions if they are all different from one another. If they are too similar, or in any way appear to be partially the same work done twice, or if they appear to be one whole body of work divided into parts to create the illusion of several submissions, jurors have the right to reject such submissions.
- If the contestant wants to make an additional submission to replace a previously published submission, the contestant must inform the jury about this fact and indicate which submission is the one to be judged. In this case, only the indicated work will count. If the contestant fails to indicate which submission to judge, only the first submission that is uploaded by timestamp will count. The Jury will reject all others.