Введение 3
1 Блокчейн-парадигма 5
1.1 Валюта 6
1.2 Цепочка блоков 7
2 Блоки, Состояния и Транзакции 9
2.1 Состояние мира 9
2.2 Транзакция 10
2.3 Блок И
3 Газ и оплата 13
4 Модель выполнения 15
4.1 Основы 15
4.2 Обзор сборов 16
5 Структура программы 17
5.1 Функционал 18
6 Тестирование и развертка 23
6.1 Эмулятор блокчейна 23
6.2 Расширенная эмуляция блокчейна 27
7 Проверка результата и общие проблемы 33
Заключение 36
Список литературы
Приложение
Парадигма блокчейна в сочетании с криптографически защищенными транзакциями продемонстрировала свою полезность через ряд проектов, причем Биткойн является одним из самых заметных. Каждый такой проект можно рассматривать как простое приложение на децентрализованном, но одноэлементном вычислительном ресурсе. Мы можем назвать эту парадигму транзакционной одноэлементной машиной с общим состоянием, Ethereum реализует эту парадигму в обобщенном виде. Кроме того, он предоставляет множество таких ресурсов, каждый из которых имеет отдельное состояние и рабочий код, но может взаимодействовать с другими через структуру передачи сообщений.
Благодаря повсеместному подключению к Интернету в большинстве стран мира глобальная передача информации стала невероятно дешевой. Технологические движения, такие как Биткойн, продемонстрировали, через механизмы консенсуса и добровольное уважение социального контракта, что можно использовать Интернет для создания децентрализованной системы передачи стоимости, которая может быть разделена по всему миру и практически свободна в использовании. Эту систему можно назвать очень специализированной версией криптографически безопасной, основанной на транзакциях машины состояний. Последующие системы, такие как Nameeoin адаптировали эту оригинальную технологию "валютного приложения "в других приложениях, хотя и довольно упрощенных,
Ethereum - это проект, который пытается построить обобщенную технологию, технологию, на которой могут быть построены все концепции машин состояний на основе транзакций. Кроме того, он стремится предоставить конечному разработчику тесно интегрированную сквозную систему для создания программного обеспечения на доселе неисследованной широкой публикой вычислительной парадигме: доверчивой объектной вычислительной платформе обмена сообщениями.
Целью данной работы является разработка контракта, осуществляющего процесс автоматизированных электронных торгов. Одно из основных преимуществ приложений использующих блокчейн, это ликвидация необходимости в посреднике. Отпадает надобность в наличии некоего третье-стороннего сервиса, заказчик может самостоятельно написать нужный контракт и публично объявить о подготовке к тендеру, приложив необходимые данные для работы е контрактом.
Будут детально описаны процесс создания, тестирования и размещения контракта в сети Ethereum, нюансы, которые следует учитывать при написании программы на данной платформе. Первая половина работы является описанием структуры и схемы работы сети Ethereum, необходимая для понимания описанных в дальнейшем особенностей и проблем создания программы. Для создания программы применялся язык Solidity, специально созданный для написания контрактов в Ethereum, На момент написания работы последней версии языка был 0,4,24,
Сеть Ethereum - молодой, постоянно развивающийся проект, но основные принципы разработки заложены уже сейчас. Разработка приложения на этой платформе связана е определенным количеством новых проблем: обязанность следить за хранением средств на контрактах, невозможность что либо поменять после полноценного запуска приложения, несовершенство технических средств разработки, невысокая скорость вычислений. Тем не менее для определенных проектов, где в приоритете безопасность и прозрачность работы, децентрализованные приложения на подобной платформе представляют немалый интерес, В настоящей работе представлен процесс разработки подобного приложения. Описана структура приложения и, как возможности сети Ethereum хорошо согласуются с требованиями, которые предъявляются к системам проведения электронных торгов. Показано, как с помощью преимуществ платформы добиться высокой степени надежности и прозрачности работы приложения. Продемонстрирован процесс установки среды, необходимой для тестирования приложения перед его запуском в сеть, а также описаны проблемы, с которыми придется столкнуться разработчику децентрализованных приложений- контрактов на платформе Ethereum,