Главная страница

2 спецальная часть 2 1 Описание исходных данных 2


Скачать 1.56 Mb.
Название2 спецальная часть 2 1 Описание исходных данных 2
Дата25.05.2023
Размер1.56 Mb.
Формат файлаdocx
Имя файла352580.docx
ТипДокументы
#1158261
страница6 из 6
1   2   3   4   5   6

2.9 Разработанное программное обеспечение


У нас есть базовый блокчейн, который принимает транзакции и позволяет нам добывать новые блоки. Но весь смысл блокчейна в том, что они должны быть децентрализованы. И если они децентрализованы, как же мы можем гарантировать, что все они отображают одну и ту же цепочку? Это называется проблемой консенсуса, и мы должны будем реализовать алгоритм консенсуса, если нам нужно более одного узла в нашей сети. Регистрация новых узлов: Прежде чем мы сможем реализовать согласованный алгоритм, нам нужен способ сообщения узлу о соседних узлах в сети. Каждый узел в нашей сети должен вести реестр других узлов в сети. Таким образом, нам понадобятся еще несколько конечных точек.

1. /nodes/register чтобы принять список новых узлов в виде URL-адресов.

2. /nodes/resolve для реализации нашего согласованного алгоритма, который разрешает любые конфликты – чтобы убедиться, что узел имеет правильную цепочку. Далее нам нужно изменить конструктор нашего блокчейн и предоставить метод для регистрации узлов (рисунок 2.28):



Рисунок 2.28 – Метод регистрации узлов

Для хранения списка узлов мы использовали set (). Это простой способ гарантировать, что добавление новых узлов идемпотентно – то есть независимо от того, сколько раз мы добавляем конкретный узел, он появляется ровно один раз. Реализация алгоритма консенсуса (рисунок 2.29)



Рисунок 2.30 – Реализация алгоритма консенсуса

Как уже упоминалось ранее, конфликт возникает, когда один узел имеет другую цепочку к другому узлу. Чтобы решить эту проблему, мы установим правило, что самая длинная действительная цепочка является авторитетной. 61 Другими словами, самая длинная цепочка в сети является де-факто. Используя этот алгоритм, мы достигаем консенсуса среди узлов в нашей сети. Первый метод valid_chain () отвечает за проверку допустимости цепочки, просматривая каждый блок и проверяя как хеш, так и доказательство. resol_conflicts () – это метод, который проходит по всем соседним узлам, загружает их цепочки и проверяет их, используя вышеуказанный метод. Если найдена правильная цепочка, длина которой больше нашей, мы заменяем нашу. Зарегистрируем две конечные точки в нашем API (рисунок 2.31), одну для добавления соседних узлов, а другую для разрешения конфликто



Рисунок 2.31 – Регистрация двух конечных точек API

На данном этапе понадобится второй компьютер или же можно добавить узлы в сеть, используя разные порты на одном компьютере. Было решено развернуть другой узел на второй машине, на другом порту, затем производится регистрация его на текущем узле. Таким образом, имеем два узла: http://localhost:5000 и http://localhost:5001 (рисунок 2.32).



Рисунок 2.32 – Регистрация узлов на двух портах

Затем было добыто несколько новых блоков на узле 2 (рисунок 2.33), чтобы убедиться, что цепочка длиннее. После этого вызываем GET /nodes/resolve на узле 1, где цепочка была заменена алгоритмом консенсуса:



Рисунок 2.33 – «Добыча» новых блоков на узле 2

2.10 Результаты


Стартовое окно приложения



Рисунок 2.34 – Стартовое окно приложения

При запуске программы открывается стартовое окно приложения (рисунок 2.35). Пользователю предлагается ввести свой секретный идентификатор и войти в сеть, либо создать новый кошелёк. При создании нового кошелька для пользователя случайным образом генерируется уникальный закрытый ключ, который будет являться его личным идентификатором для входа. При входе в приложение открывается главное окно, и на основе закрытого ключа генерируется открытый адрес кошелька пользователя, с 20 помощью которого он может совершать транзакции и отслеживать изменения баланса. Главное окно приложения содержит основные элементы управления, сгруппированные по вкладкам: Обзор, Мой кошелёк, Новая транзакция и Майнинг.

Обозреватель блоков



Рисунок 2.35 – Вкладка Обзор блоков

На вкладке обзор (рисунок 2.35) пользователь может просмотреть всю необходимую информацию о любом существующем блоке цепочки. Навигацию между блоками осуществляется посредством нажатия кнопок Предыдущий блок и Следующий блок, либо посредством указания номера блока в текстовом поле.

Вкладка Мой кошелёк



Рисунок 2.36 – Вкладка Мой кошелёк

Вкладка мой кошелёк (рисунок 2.36) предоставляет пользователю возможность просмотреть историю всех исходящих и входящих транзакций его кошелька, узнать свой баланс и идентификатор кошелька. Идентификатор кошелька служит адресом для получения и перевода средств при создании транзакции

Создание новой транзакции



Рисунок 2.37 – Вкладка Новая транзакция

Элементы управления для создания транзакции находятся на вкладке новая транзакция (рисунок 2.37). Для создания новой транзакции пользователь должен заполнить форму составления транзакции, в соответствии с указанными на странице правилами. По нажатию на кнопку подтвердить будет выведено диалоговое окно предлагающее пользователю проверить и подтвердить введённые данные, либо диалоговое окно сообщающее о ошибке в составлении транзакции. Ошибкой в составлении транзакции может являться как неправильное заполнение полей, так и нехватка средств. При выборе отправки транзакции с комиссией, можно указать размер комиссии включённой в транзакцию. В этом случае средства для оплаты комиссии будут сняты со счёта пользователя сверх суммы перевода. Если оставить поле пустым то, размер комиссии будет составлять 0.5% от суммы перевода. После подтверждения транзакции она отправляется в список необработанных транзакций и ожидает включения в следующий блок.

Управление майнингом



Рисунок 2.38– Вкладка Майнинг

Вкладка майнинг (рисунок 2.38) включает в себя элементы управления для создания и майнинга блоков. В текстовом поле «Необработанные транзакции» отображаются транзакции, которые ещё не были включены в блокчейн. Нажатие на кнопку Обновить посылает в пул запрос об обновлении списка необработанных транзакций. Кнопка создать блок отвечает за конфигурирование нового блока. При её нажатии создаётся новый блок, в который помещается 10 необработанных транзакций из списка, а в текстовое поле «Данные о новом блоке» помещается информации о данном блоке. При нажатии кнопки Добыть блок в отдельном потоке начинается процесс майнинга сконфигурированного блока. При успешной добыче блока, новый блок рассылается всем активным узлам цепи, а в клиентском окне появляется уведомление о успешном создании нового блока.

2.11 Анализ результатов


В связи с возрастающим влиянием электронных денег в мировой экономике и постепенным внедрением технологий распределённого реестра во многие сферы жизни общества, нельзя не сказать об актуальности детального изучения технологии блокчейн. В рамках данной курсовой работы были достигнуты следующие результаты:

- Изучены основные понятия и принципы, заложенные в технологии блокчейн.

- Проведён анализ аналогичных продуктов и выявлены их недостатки.

- Разработано настольное приложение на языке программирования Java, представляющее собой пиринговую платёжную систему и реализующее все основные функции рассмотренной технологии блокчейн.

Список литературы


  1. Ethereum Average Block Time Chart – Дата обновления: 23.05.2020. URL: https://etherscan.io/chart/blocktime (дата обращения 24.05.2023).

  2. Ethereum token market cap and share – Дата обновления: 30.01.2018. URL: https://coinmarketcap.com/ru/currencies/ethereum/ (дата обращения 11.04.2020)

  3. Guide to Ethereum: What is Gas, Gas Limit and Gas Price – Дата обновления: 14.05.2019. URL: https://masterthecrypto.com/ethereum-what-is-gas-gaslimit-gas-price/ (дата обращения 24.05.2023).

  4. Internet Live Stats [Электронный ресурс] - URL: http://www.internetlivestats.com/internet-users/

  5. Revain's AI: Using NextGen IBM Watson To Filter Reviews – Дата обновления: 11.04.2018. URL: https://revain.org/blog/revains-ai-using-nextgen-ibmwatson-to-filter-reviews (дата обращения 24.05.2023).

  6. S. Nakamoto. Bitcoin: A peer-to-peer electronic cash system. 2009. - URL: https://bitcoin.org/bitcoin.pdf

  7. V. Buterin. Secret sharing and erasure coding: A guide for the aspiring dropbox decentralizer. 2014. - URL: https://blog.ethereum.org/2014/08/16/secret-sharing-erasurecoding-guide-aspiring-dropbox-decentralizer/

  8. What is Revain? – Дата обновления: 16.10.2018. URL: https:// ico.coincheckup.com/revain/ (дата обращения 24.05.2023).

  9. Алекс Тапскотт. Революция блокчейна. , 2016. – 416с.

  10. Воронцова Е.А., Мелешенко Е.Г. Блокчейн: панацея или угроза для хранения и передачи информации // Синергия наук. 2016. № 5. ? С. 93 ? 101. ? URL: http://synergy-journal.ru/archive/article0044

  11. Криптовалюта: Revain (R) – обзор – Дата обновления: 30.01.2018. URL: https://inp.one/cryptoworld/kriptovalyuta-revain-r-obzor (дата обращения 24.05.2023).

  12. Лелу, Л. Блокчейн от А до Я. Все о технологии десятилетия / Л. Лелу. – Litres, 2018. – 265 с.

  13. Максуров, А.А. Криптовалюты и правовое регулирование их обращения. 2-е изд. / А.А. Максуров. – Дашков и Ко, 2019. – 355 с.

  14. Михеев, А. Блокчейн: Как это работает и что ждет нас завтра / А. Михеев, А. Генкин. – Альпина Паблишер, 2017. – 626 с.

  15. оджер Воттенхофер. Наука о блокчейне, 2014 – 730c. 3 Информационно-аналитический ресурс, посвященный технологии блокчейн – URL: http://www.machinelearning.ru [17 Мая 2018].

  16. Прасти, Н. Блокчейн. Разработка приложений / Н. Прасти. – БХВ-Петербург, 2018. – 256 с.

  17. Свон, М. Блокчейн. Схема новой экономики / М. Свон. – Олимп-Бизнес, 2017. – 190 с.

  18. Тапскотт, А. Технология блокчейн. То, что движет финансовой революцией сегодня / А. Тапскотт, Д. Тапскотт. – Эксмо, 2017. – 713 с.
1   2   3   4   5   6


написать администратору сайта