Motivation
Organization of the DevExp SG contests, as well as assessing the submissions showed that Free TON DevExp SG declaration requires improvements.
It is proposed to improve the section “Governance proposal specification”. Unlike the previous edition of this section, two more subsections #8-9 have been added to it.
General description
This document suggests an implementation of on-chain governance for Free TON Dev Experience as a separate interface with all the functions that the main Free TON governance has, based on freeton.org/contests as an additional bookmark.
The mission of Free TON Dev Experience governance is to develop the Free TON services, tools, and software for developers with the goal of enhancing the Free TON ecosystem and making Free TON more attractive for software developers.
Governance proposal specification
It is proposed to create on-chain governance integration for Free TON Dev Experience within which the following will be available:
-
Free TON Dev Experience Initial Members are to form the initial Free TON Dev Experience Jury. Some of the Free TON Dev Experience Initial Members are to join the Free TON Dev Experience Org.
-
The initial Free TON Dev Experience Jury is:
- to run the Free TON Dev Experience Jury Contest to choose the Free TON Dev Experience Jury to be active until 15th February 2021. The description of the contest is given below.
-
The Free TON Dev Experience Jury has the the following characteristics:
- the max number of members is 15, the min number is 5;
- the jurors are split into topic-based Free TON Dev Experience Jury groups (a juror can
be a member of several groups); - the topic-based Free TON Dev Experience Jury groups have to consists of at least 3 members;
- the topic-based Free TON Dev Experience Jury groups make decisions on the relevant thematic proposals, including their review, and judge the relevant thematic contests;
- the decisions within the Free TON Dev Experience Jury groups are to be taken by 50% + 1 vote from a number of jurors within a group;
- the decisions within the Free TON Dev Experience Jury are to be taken by 50% + 1 vote from a number of jurors.
-
The Free TON Dev Experience Jury has to ensure:
- smooth running of the Free TON Dev Experience governance;
- running of Contests;
- development of Contest Proposals (CP);
- review of CPs;
- assessment of submissions for Contests;
- choosing the winners of the Contests;
- distribution of funds to everybody involved in the Free TON Dev Experience governance.
-
The Free TON Dev Experience Jury members can’t judge the submissions from themselves, organisations they belong to/companies they work for. It’s the responsibility of the Free TON Dev Experience Jury members to declare the affiliation and withdraw from assessment. The Free TON Dev Experience Jury members have to participate in the activities of the Free TON Dev Experience governance on a regular basis. The Free TON Dev Experience Jury makes decisions on dismissal of the jurors based on their inability to fulfil their responsibilities.
-
Any Free TON Dev Experience Jury member can join the Free TON Dev Experience Org. The Free TON Dev Experience Org has to assume the responsibilities for:
- development of CPs (including attracting any qualified third-party to draft the CPs);
- administrative work such as running of Contests, including announcing Contests, inviting developers to apply for Contests, consulting developers, announcing results of Contests, reminding winners about submission deadlines, consulting jurors, ensuring the timely payouts to the winners, jurors, etc.
-
The Contests that are to be run by Free TON Dev Experience governance have the following characteristics:
- to be on the topics mentioned below;
- could be multistaged with the limited access to the 2, 3, N stage for the winners from earlier stages;
- to be launched by accepting CPs by Free TON Dev Experience Jury groups;
- can be running in parallel;
- to set the remuneration criteria for the participants, the winners, and the jurors on case basis.
-
Regulation on assessing the submissions.
- Assessing the submissions is considered legitimate if a number of decision-making jurors is at least 50% + 1 of the total number of this topic-based group jurors.
For example, if a group consists of 3 jurors, then at least 2 of them must assess the submissions. Otherwise (if only one juror) contest assess results are considered invalid. - The juror must assess a submission on a scale of 1 to 10 (10 is the highest score, 1 is the lowest score) or vote as “abstained” or “rejected”.
- The “abstained” vote means that a submission is accepted (not rejected) by a juror, but not taken into account when a rating score is calculated.
Example. If a submission was assessed by 3 jurors as follows: “10”, “2” and “abstained”, then the resulting score will be equal to (10 + 2) / 2 = 6. - The “rejected” vote means that a submission does not meet at least one of the contest conditions.
- If a number of “rejected” is at least 50% + 1 of a total number of voted jurors, then a submission is rejected and is not taken into account in distribution of awards. In other cases, the submission is involved in distribution of awards.
Example 1. If a submission was assessed by 4 jurors as follows: “10”, “abstained”, “rejected” and “rejected”, the resulting score will be equal to “10”.
Example 2. If a submission was assessed by 2 jurors as follows: “abstained” and “rejected”, it will qualify for an award, but will have the lowest rating.
- The “abstained” vote means that a submission is accepted (not rejected) by a juror, but not taken into account when a rating score is calculated.
- A juror must provide a writing feedback with a clear justification for her/his assessment, including “abstained” for each submission.
- If a juror considers that a submission is useless, although it meets contest requirements, he/she must notify its author and clearly state in feedback a reason for low rating (or rejection).
- The vote “abstained” indicates either juror’s unwillingness to deeply analyze a submission, or about his/her insufficient qualification. The juror does not receive an award for voting “abstained”. If the juror votes too often as “abstained”, he/she can be removed from judging and his/her scores canceled by decision of initial group.
These statements can be clarified in relation to a specific contest.
- Assessing the submissions is considered legitimate if a number of decision-making jurors is at least 50% + 1 of the total number of this topic-based group jurors.
-
Regulation on signing a multi-signature transaction
- Only the initial group can sign a multi-signature transaction for awarding the winners, jurors and organizers of a contest.
- Signing a multi-signature transaction is a responsibility of each initial group member.
- If anyone refuses to sign a transaction, then he/she is obliged to notify other initial group members about it. Otherwise, this member will be considered inactive.
Free TON Dev Experience Initial Members
The Free TON Dev Experience Initial Members are the following:
- Andrey Falaleev (Telegram, public key c1bd606a3eb63c41eca20eef547e7e5ffd91aa92f025542b44e3192af91cba5d)
- Konstantin Konstantinov (Telegram, public key 0f07a7cb924c7420520d0d98afad87d9b5e1765920fda698c22da6d0cd3354b9)
- Alexandr Nazarov (Telegram public key f11b2cc3a9c7f4e67b0c92e18f54cd72ac19ff29f2abff8af4094d2db269573b)
- Boris Pimonenko (Telegram, public key a431eaa862d33d0a24f856552e303f38cf1c0fff379d9c137e1c91686e3e9c8e)
- Aleksandr Hramcov (Telegram, public key 3bdb99452a6ed9138af385d035e0967250d0e2da6f58b90245f285daf250915c )
- Ekaterina Pantaz (Telegram, public key c9ae3b1c6aca828864702999e7bf1bd6f760f62988e056a4ba3a6104cde5fc17)
- Boris Ivanovskiy (Telegram, public key 1a99622e54b4e87d603dd87c9cc936b388b2a0e1979bb56d4039cfad0fbadc8c)
- Mitya Goroshevskiy (Telegram, public key 6ff322ad669dfad2f396b98bdc8690cc49926f6a10cd7f10d07f031841cf09ef)
- Vladimir Maslyakov (Telegram, public key deb93a951c20140785ad7a9e7fa85fa6da5332cda85fbff6ef7784c805e963d3)
- Anatoly Ustinov (Telegram, public key 865a7eb0e94d2623135dc00f3c060efdc3211309e93b279ff7d4422c5f21195d)
- Ivan Kotelnikov (Telegram, public key b37e94b3177921824eeebb978bc2916f80a2fb19982e1b673171b5fe41dc0c9c)
- Peter Fedorov (Telegram, public key 9e808b1540babb85c428b9197b8df87860882d2db70607dfa134774a0513db30)
- Alexey Novikov (Telegram, public key 6bf867e7773038f9491b5d397cb7da8a20e112b45db9523cd8dae9deb608fb5a)
Free TON Dev Experience Org
The Free TON Dev Experience Initial Members assigned to the Free TON Dev Experience Org are the following:
- Andrey Falaleev (Telegram, public key c1bd606a3eb63c41eca20eef547e7e5ffd91aa92f025542b44e3192af91cba5d)
- Konstantin Konstantinov (Telegram, public key 0f07a7cb924c7420520d0d98afad87d9b5e1765920fda698c22da6d0cd3354b9)
- Alexandr Nazarov (Telegram, public key f11b2cc3a9c7f4e67b0c92e18f54cd72ac19ff29f2abff8af4094d2db269573b)
- Boris Pimonenko (Telegram, public key a431eaa862d33d0a24f856552e303f38cf1c0fff379d9c137e1c91686e3e9c8e)
- Ivan Kotelnikov (Telegram, public key b37e94b3177921824eeebb978bc2916f80a2fb19982e1b673171b5fe41dc0c9c)
- Alexey Novikov (Telegram, public key 6bf867e7773038f9491b5d397cb7da8a20e112b45db9523cd8dae9deb608fb5a)
Free TON Dev Experience Costs Estimate
This estimate is based on a forecast of the total Tons required to run up to 9 (nine) Free TON Dev Experience Contests until 15th February 2021 after the Free TON Dev Experience governance is launched.
Contests Funds | Total Tons per 4 months | |||
---|---|---|---|---|
Contests Remuneration Fund: • the amount for each contest to be decided case-based |
10 000 000 | |||
Jury Remuneration Fund: • up to 25% of funds allocated per contest; • the amount to be decided case-based |
||||
Fund for Development of CPs: • up to 10% of funds allocated per contest • the amount to be decided case-based |
||||
Org Funds | Tons per hour | Possible hours per month | Subtotal Tons per month | Total Tons per 4 months |
- | - | - | - | - |
Administrative Fund: • remuneration for administrative work, such as running of Contests, including announcing Contests, inviting developers to apply for Contests, consulting developers, announcing results of Contests, reminding winners about submission deadlines, consulting jurors, ensuring the timely payouts to the winners, jurors, etc. • up to 150 Tons per hour depending on qualification • Tons to be distributed by Free TON Dev Experience Jury once per month based on the information of the works done |
150 | 160 | 24 000 | 96 000 |
Total | 10 096 000 |
Topics of the Contests
The topics of the nearest Contests mentioned according to their priority.
SDK Contests
- Bindings for TON Client library (proposal)
- Proofs - library that provides functions to proof account, message, transactions so that developers can use them to prove that the specified object is valid. Library should retrieve all the necessary data for proofs from GraphQL API.
- TON OS DApp Server Bug Bounty Contest
- Web3-like wrapper over ton-client-js + migration instructions for developers, so that Ethereum developers can migrate their applications from Ethereum to TON or develop DApps from scratch in a familiar way.
- Graphql API bug bounty contest - validate API
- Object/business oriented bindings contest - write handy high-level libraries that will use low level bindings
- Service that provides access to parsed contracts data (including ABI-compatible and other contracts) and parsed messages data and allows data searching and data aggregating
- Analytics services - service that collects blockchain data from GraphQL API and provides different analytics
Toolchain Contests
-
Transaction debugger:
- UI
- representation: In order to debug transaction step-by-step, we need to extract instruction sequence for its compute phase and present it in human-readable form.
- format: [No] [Opcode] {args]
Option 1 (preferable): obtain from the VM trace stashed at execution.
Option 2 (fallback): use assembly code from the contract compilation.
Requirements: standalone. repeatable. console. batch mode processing. Use annotations provided by other Experience, if available: gas consumption, account state change.
-
Disassembler:
Standalone CLI utility to translate TVM bytecode to TVM assembly. Requirements: standalone. repeatable. console. batch mode processing. Support multiple levels: function, file. Should keep symmetry with TON disassembler when used for the same scope. APIs for sub-file level translation. Store results in file or in memory. tests, help, usage docs, API reference. Special modes to operate on TON objects associated with TVM execution, e.g. transactions. -
Assembler:
Standalone CLI utility to translate TVM assembly to TVM bytecode.
Requirements: standalone. repeatable. console. batch mode processing. Support multiple levels: function, file, multiple translation units. Store results in file or in memory. API for sub-file scope calls. Tests, help, usage docs, API reference. -
Static analyzer
-
IDE
An easy to use on-line IDE for creating, deploying and debugging TON Smart Contracts and DeBots in Solidity, C or C++.
Node Contests
Decentralized RTDB for Dapp Server (extremely important)
Research is needed may be use:
Based upon
- https://hypercore-protocol.org/
- GitHub - hypercore-protocol/hypercore: Hypercore is a secure, distributed append-only log.
Requirements:
- Sparse replication. Only download the data you are interested in.
- Realtime. Get the latest updates to the log fast and securely.
- Performant. Uses a simple flat file structure to maximize I/O performance.
- Secure. Uses signed merkle trees to verify log integrity in real time.
- Browser support. Simply pick a storage provider (like random-access-memory) that works in the browser
Design the following protocols and solutions is needed:
- Research and develop workchain based solution architecture
- Search
- Interaction with Smart Contract which implements application business logic
Economics
- Designing incentive for validator storage and distribution of data replicas
- Should tackle data availability problem
- Support incentive for p2p interactive sessions (containers)
Smart Contracts
Formally verified smart contracts libraries to be served as building blocks for different applications:
- Formal verification of
- TIP-3 Distributed Tokens (fungible, non-fungible and UTXO)
- Multi Ballot SMV contract
- Design and Implementation of
- Auth/Login/Signup user Identity
- Tracking, digital asset life-cycle management
- Loyalty and gamification mechanics
Other topics
- Workchain support — add support for additional workchains (1, 2, n…).
- Blockchain visualization (example: Radial Layout of a Network Graph).
- Writing docs and tutorials: smart contract development, debots, dapps, sdk usage.
Free TON Dev Experience Jury Contest
Short description
This is the first contest to be run by the initial Free TON Dev Experience Jury. The Free TON Dev Experience Jury will be limited to the work described above and executed within the Free TON Dev Experience Governance structure.
This contest must be held again in the event that the Free TON Dev Experience Jury disbands for any reason until 15th February 2021. The max number of Free TON Dev Experience Jury members is 15.
Type
Contest
Contest entry period
The сontest entry period will be determined later.
Motivation
The goal of the contest is to attract professional developers that will be motivated to grow and enhance the Free TON ecosystem by participation in the Free TON Dev Experience governance structure. This will help achieve the goal of decentralized Governance 2.0.
Contest submission requirements
Applicants must provide a curriculum vitae that demonstrates the following:
- Knowledge of IT and/or blockchain technologies
- Proof of engagement in open source development (a link to github account is a must have)
- Proof of knowledge of the code base of the Free TON
- Proof of good understanding of the decentralised governance
- Disclosure of the organisations/ the companies they are working for
These conditions may be changed or supplemented before the contest will launch.
Rights and duties of the winner as a member of the Free TON Dev Experience Jury
The duties of the Free TON Dev Experience Jury members are the following:
- to ensure smooth running of Free TON Dev Experience governance;
- to ensure development of CPs;
- to review CPs;
- to assess submissions for the Contests, including code review;
- to ensure timely distribution of funds;
- to participate in the activities of the Free TON Dev Experience governance on a regular basis.
The Free TON Dev Experience Jury members can’t judge the applications and submissions from themselves, organisations they belong to/companies they work for. It’s the responsibility of the Free TON Dev Experience Jury members to declare the affiliation and withdraw from assessment. This reason constitutes a valid excuse for any juror.
The Free TON Dev Experience Jury members are eligible for their services for the remuneration from the Jury Remuneration Fund.
These conditions may be changed or supplemented before the contest will launch.
Assessment of the entrants to Free TON Dev Experience Jury Contest
Each of the initial Free TON Dev Experience jurors has to assess all the incoming applications.
A juror must assess the application on a scale of 1-10 (10 - the highest score, 1 - the lowest score), based on assessment criteria.
A juror must provide a writing feedback for each application.
These conditions may be changed or supplemented before the contest will launch.
The applications that can’t be read or contain irrelevant information, or submitted after the deadline are to be disqualified and rejected.
Procedural remarks
Participants must correctly upload their applications to the Free TON Dev Experience Jury contest (in PDF format) in order for the jurors to view them. If the application can’t be open or is submitted in the wrong format, the candidate will be rejected by the jury.
Participants must submit their applications before the deadline of the contest. If the application is submitted late, it will be rejected.
All submissions must include the contestant’s social network identity, a Telegram ID and Github ID, by which jurors can verify that the submission belongs to the individual who submitted it. If not, the submission may be rejected.
Any juror may approach any applicant via Telegram and appoint an interview or ask several questions in writing to clarify any facts given in the application. The rejection to give an interview or to give answers to the questions can affect the score.
These conditions may be changed or supplemented before the contest will launch.
Disclaimer
Anyone can participate, but Free TON does not distribute Tons to US citizens or entities.