1 ВВЕДЕНИЕ 3
1 ОБЗОР ЛИТЕРАТУРЫ
1.1 Выводы 10
2 ПРОЕКТИРОВАНИЕ РЕШЕНИЯ 11
2.1 Описание системы 12
2.2 Требования к проекту 15
2.3 Архитектура 16
3 РЕАЛИЗАЦИЯ РЕШЕНИЯ 19
3.1 Схема данных 19
3.2 Серверная часть 20
3.3 Веб интерфейс 21
3.4 Blockchain 24
3.4.1 Web3 24
3.4.2 Умные контракты 26
3.5 Выводы 28
4 ЗАКЛЮЧЕНИЕ 29
4.1 Итоги 29
4.2 Результаты 29
4.3 Проблемы 30
4.4 Планы на будущее
ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ 31
СПИСОК ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ 36
В последнее время во всем мире все больше и больше растет интерес к IT хакатонам. Волна этой популярности дошла и до России, и если раньше такие соревнования были большой редкостью, то сейчас почти каждый день проводятся подобные мероприятия [1].
Само по себе слово "хакатон" - это термин, который получился от соединения двух слов: хакер и марафон. На сегодняшний день хакатоны уже не имеют отношения к хакерству, это просто марафон программистов, где самые разные команды, программисты и специалисты из самых разных областей разработки программного обеспечения вместе работают над решением одной из проблем. Обычно данное мероприятие проходит от одного до трех дней. Проведение хакатона - это хороший способ привлечь талантливых специалистов, придумать и реализовать новые способы решения существующих проблем. Если вы решили организовать хакатон, то вам необходимо пройти немало этапов подготовки и потратить на это много сил и денег, что порождает проблему организации данного соревнования. Во-первых, надо подготовить и арендовать площадку для сбора участников. Во-вторых, нужно привлечь инвестиции для призовых фондов. И, наконец, в-третьих, надо привлечь как можно большую аудиторию, то есть сделать так, чтобы люди узнали о данном мероприятии, иначе просто никто не придет.
А для чего программисты участвуют в хакатонах? Как правило, многие хотят продвигать свои идеи и проекты, привлечь инвестиции или просто побороться за призовой фонд. Но что если вы находитесь в другом городе, но очень сильно хотите принять участие в хакатоне? Сейчас, скорее всего, вам придется купить билет на поезд или самолет и отправиться в другой город.
Децентрализованная площадка для проведение онлайн хакатонов на основе технологии блокчейн - это та система, которая поможет сделать шаг вперед в проведении соревнований подобного рода. Единая площадка для проведения соревнований также откроет новые возможности для участников. Она позволит:
• Проводить онлайн-соревнования
• Экономить деньги на организацию и проведение
• Объединять участников по всему миру
• Создать доверие между организаторами, инвесторами и участниками
• Привлекать инвестиции для победителей соревнований
При этом такая система обязательно должна соответствовать следующим условиям:
• Прозрачность данных. В каждый момент времени любой участник должен иметь доступ к исходным данным, чтобы убедиться в их истинности.
• Автоматизация процессов. Система должна работать по математическим алгоритмам без посредников, чтобы исключить или сократить до минимума человеческий фактор.
• Независимость. Не принадлежать какой-либо компании для сохранения объективности.
Всем этим условиям отвечает блокчейн-технология, с помощью которой будет создаваться дипломный проект.
Целью работы является разработка децентрализованной системы для проведения онлайн хакатонов на базе блокчейна Ethereum, которая позволит упростить процесс организации мероприятий, объединить участников по всему миру.
Для достижения поставленной цели, необходимо решить следующие задачи:
1. Проанализировать существующие решения, выявить их преимущества и недостатки
2. Написать техническое задание для разработки системы
3. Спроектировать архитектуру системы, определить технологии разработки
4. Разработать структуры базы данных, написать back-end часть приложения
5. Разработка клиентского приложения
6. Провести экспериментальную апробацию системы
1. Информационный Сайт Habrahabr [Электронный ресурс]: https://habr.com/post/310964/
2. D. Garlan and M. Shaw, “An introduction to software architecture,” in Advances in Software Engineering and Knowledge Engineering. Publishing Company, 1993, pp. 1-39.
3. H.-W. Jung, S.-G. Kim, and C.-S. Chung, “Measuring software product quality: a survey of iso/iec 9126,” IEEE Software, vol. 21, no. 5, pp. 88-92, Sept 2004.
4. M. Branstad and P. B. Powell, “Software engineering project standards,” IEEE Transactions on Software Engineering, vol. SE-10, no. 1, pp. 73-78, Jan 1984.
5. B. W. Boehm, “A spiral model of software development and enhancement,” Computer, vol. 21, no. 5, pp. 61-72, May 1988.
6. V. Basili and F. McGarry, “The experience factory: How to build and run one (tutorial),” in Proceedings of the 19th International Conference on Software Engineering, ser. ICSE ’97. New York, NY, USA: ACM, 1997, pp. 643-644. [Online]. Available: http://doi.acm.org/10.1145/253228.253850
7. J. Highsmith, Agile Software Development Ecosystems. Boston, MA, USA: Addison-Wesley Longman Publishing Co., Inc., 2002.
8. M. Mikowski and J. Powell, Single Page Web Applications: JavaScript end-to-end, 2013. [Online]. Available: https://books.google.ru/books?id= JqNuMAEACAAJ
9. M. Fowler, Patterns of Enterprise Application Architecture. Boston, MA, USA: Addison-Wesley Longman Publishing Co., Inc., 2002.
10. L. Bass, P. Clements, and R. Kazman, Software Architecture in Practice. Boston, MA, USA: Addison-Wesley Longman Publishing Co., Inc., 1998.
11. D. Garlan and M. Shaw, “An introduction to software architecture,”
Pittsburgh, PA, USA, Tech. Rep., 1994.
12. Бочкова Е. В., Кузнецова С. Д. Перспективы и применение технологии blockchain в современном мире // Научно-методический электронный журнал «Концепт». - 2017. - Т. 39. - С. 3436-3440. - URL: http://e-koncept.ru/2017/971014.htm.
13. Andreas M. Antonopoulos Mastering Bitcoin: Unlocking Digital Cryptocurrencies / Andreas M. Antonopoulos - K. : NGITS, 2014. - pp. 150 - 290
14. Don Tapscott, Alex Tapscott Blockchain Revolution: How the Technology Behind Bitcoin is Changing Money, Business, and the World / Don Tapscott, Alex Tapscott Blockchain - K. : Information Systems, 2016 - pp. 100 - 150.
15. Roger Wattenhofer The Science of the Blockchain / Roger Wattenhofer - K. : Information technologies, 2016 - pp. 94 - 120.
16. Pavan Duggal Blockchain Contracts and Cyberlaw / Pavan Duggal - K. : Information Systems, 2015 - pp. 15 - 39.
17. Jacob William Blockchain: The Simple Guide To Everything You Need To Know / Jacob William - K. : Information technologies, 2016 - pp. 40 - 50.
18. S. Tilkov and S. Vinoski, “Nodejs: Using javascript to build highperformance network programs,” IEEE Internet Computing, vol. 14, no. 6, pp. 80-83, Nov 2010.
19. A. Mesbah and A. van Deursen, “Migrating multi-page web applications to single-page ajax interfaces,” in 11th European Conference on Software Maintenance and Reengineering (CSMR’07), March 2007, pp. 181-190.