Скачиваний:
7
Добавлен:
28.12.2024
Размер:
277.17 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,

СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ

УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

Факультет: Защищенных систем связи

Кафедра: Кибербезопасности

Дисциплина: Блокчейн и обеспечение безопасности распределенных реестров

ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №9

Направление/специальность подготовки

10.03.01 Информационная безопасность

(код и наименование направления/специальности)

Студент:

Травкина Е.А., ИКБ-14

(Ф.И.О., № группы) (подпись)

Федченко А.С., ИКБ-14

(Ф.И.О., № группы) (подпись)

Ящук А.А., ИКБ-14

(Ф.И.О., № группы) (подпись)

Преподаватель:

к.т.н, доцент, Кушнир Д.В.

(должность, Ф.И.О.) (подпись)

Создание контракта

Используем язык solidity и среду REMIX (https://remix.ethereum.org/) для выполнения лабораторной работы. При входе в REMIX указываем цель работы обучение и создаём собственный контракт. Создаем файл 4_laba9.sol в папке с контрактами (см. Рис. 1).

Рис. 1. Создание файла контракта

В редакторе вводим код (из примера https://www.youtube.com/watch?v=8A8-7Ks26yY ) (см. Рис. 2).

Рис. 2. Код контракта

Пояснения к коду

  1. Указание лицензии: // SPDX-License-Identifier: MIT

  2. Объявление контракта: contract MyShop {

  3. Вводим переменную типа адрес и делаем ее доступной из вне: address public owner;

  4. Создаем маппинг (набор ключей-значений) адресов и целых чисел. Это позволит просматривать задействованные адреса: mapping (address=> uint) public payments;

  5. Создание конструктора: constructor()

  6. Функция перевода средств на контракт function payForItem() public payable {

  7. Функция возврата средств с контракта владельцу контракта (под кем создавали): function withdrawAll() public {

Выполняем Deploy контракта (проверяем, что указан Gas LIMIT) (см. Рис. 3).

Рис. 3. Указание Gas LIMIT в Deploy контракта

Контракт появился в списке (см. Рис. 4).

Рис. 4. Контракт создался

Разворачиваем пункты контракта (см. Рис. 5).

Рис. 5. Отображение кнопок контракта

Кнопки – это функции и переменные контракта.

Кнопка owner – покажет адрес владельца (см. Рис. 6).

Рис. 6. Отображение адреса владельца

Кнопка payForItem – переведет средства на контракт (выполнили, но не с адреса владельца контракта) (см. Рис. 7–9).

Рис. 7. Выбор адреса

Рис. 8. Выполнение перевода средст

Рис. 9. Проверка средств после перевода

Кнопка payments – при вводе туда адреса, с которого мы переводили средства сможем убедиться, что с этим адресом было взаимодействие (см. Рис. 10).

Рис. 10. Просмотр взаимодействий с адресом

Кнопка withdrawAll – переводит средства с адреса контракта на адрес владельца (см. Рис. 11).

Рис. 11. Перевод средств с адреса контракта на адрес владельца

Вывод

В процессе выполнения лабораторной работы был создан и развернут смарт-контракт на языке Solidity с использованием среды разработки REMIX. В результате выполнения лабораторной работы были изучены основы разработки и тестирования смарт-контрактов в среде REMIX, включая: разбор кода на языке Solidity; настройку маппинга для отслеживания взаимодействий; использование функций для управления средствами контракта. Работа подтвердила правильность реализации функционала смарт-контракта и предоставила навыки управления контрактами на платформе Ethereum.

Санкт-Петербург

2024

Соседние файлы в предмете Блокчейн и обеспечение безопасности распределенных реестров