UPD: Due to the delay in the start of Rust cap competition and rustnet unavailability during contest time. DevOps SubGovernance members decided to vote on the proposal to change contest dates. (Ref: Telegram: Contact @ton_validators). Proposed changes:
Dates
Submissions - Starts: 18.01.2021 at 00:00 UTC, Ends: 12.02.2021 at 23:59 UTC
Voting - Starts: 13.02.2021 at 00:00 UTC, Ends: 27.02.2021 at 23:59 UTC
Short description
Monitoring, Alerting, Scripts and Tooling for RUST implementation of Free TON Validator
tonlabs/ton-labs-node-tools
tools for node. Contribute to tonlabs/ton-labs-node-tools development by creating an account on GitHub.
tonlabs/rustnet.ton.dev
Contribute to tonlabs/rustnet.ton.dev development by creating an account on GitHub.
Type
Contest
Dates
Submissions - Starts: 18.01.2021 at 00:00 UTC, Ends: 07.02.2021 at 23:59 UTC
Voting - Starts: 08.02.2021 at 00:00 UTC, Ends: 21.02.2021 at 23:59 UTC
Motivation
Validators need tools and automation to insure efficient scalable and secure operations to support Free TON blockchain
General requirements:
- Documentation should be provided for each tool
- Provided tools should operate exactly according to its documentation
- Motivation and goal for each tool should be described
- All software must be released with licences supported by Free Software Foundation
DevOps Skills required:
- Linux
- Unix Shell scripting, javascript
- Infrastructure as a code
- docker/docker-compose/kubernetes
- Desirable: Ansible, logstash, Prometheus/Grafana
Tasks:
- Enhanced node deployment infrastructure
- Need to develop enhanced deployment infrastructure for Rust validator nodes based on modern tools and techniques (docker/docker-compose, Ansible, Terraform, etc.).
- Based on infrastructure as a code. Take into account deployment from scratch, upgrade, cleanup scenarios on various set of Linux distros as well as other OS (e.g. MacOS).
- Intellectual log dashboard with analytics:
- Need to collect log files into centralised database (e.g. logstash).
- Make base analytics with some predefined patterns which can simplify failure analysis and monitoring.
- Extended metrics for node monitoring
- Analyse available node/validator/elector metrics and define a subset useful for further analytics and monitoring tasks.
- Develop visualisation concept to simplify the analysis.
- Develop alert rules for daily monitoring
- Automate staking through depool (and/or direct staking to the elector) based on tonos-cli or SDK (use TON-SDK core library or any existing binding)
- Write validator script for elections using tonos-cli/SDK
- Use tonos-cli/SDK to run elector get-methods.
- Use tonos-cli/SDK to query global configuration parameters.
- Use tonos-cli/SDK to prepare, sign and send validator query to depool/elector smart contract.
- Automate confirmation of multisig transactions.
- Improve custodian notification mechanism for multisig transactions: notify about submitted transactions via user-friendly mechanism (e-mail, sms, etc.).
- Implement tools for staking monitoring and alerting
- Automate staking through depool (and/or direct staking to the elector) using R-Node Console
- Write a script to manage overall staking procedure (prepare elector request, sign, send, manage bids, etc.)
- Automate confirmation of multisig transactions
- Implement tools for staking monitoring and alerting
Evaluation criteria and Winning conditions:
- Number of completed tasks. Tasks 1 (at least for one OS) and optionally 4 or 5 are necessary . Without them submission will be rejected
- Correctness of operations of the provided tool
- Quality of code and description
- Work as advertised, perform its stated functions
The Jury
The Jury will be selected by a sub-governance which will support this contest.
Jury rewards:
An amount equal to 5% of the sum total of all total tokens actually awarded to winners of this contest will be divided equally between all jurors who vote and provide feedback. Both voting and feedback are mandatory in order to collect this reward.
Winners:
The winners of all 5 tasks will recieve the following:
1st prize — 40,000 Tons (16 000 + 24 000 by vesting)
2nd prize — 30,000 Tons (12 000+ 18 000 by vesting)
3rd prize — 20,000 Tons (8 000 + 12 000 by vesting)
4th prize — 5,000 Tons
5th prize — 3,000 Tons
6-10th price — 1,000 Tons each
Winners receive 40% of their rewards when contest results are evaluated.
Another 60% will be vested over a 12-month period with monthly payouts.
Vesting details
Vesting is devided into 12 equal parts. The first vesting payout is paid one month after the end of the contest. To receive all 12 distributions, the solution should be supported at least for 1 year. Scripts should be updated within a reasonable timeframe - 1 month maximum, and according to rust node changes. Major GitHub Issues should be resolved within a reasonable timeframe - 1 month maximum.