1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/t940783074-Prophet

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 6.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 15:35 206e9f6

Prophet (预言家)

Доступ к проекту на GitHub | Доступ к проекту в Коде Cloud.

中文 | English

Платформа для прогнозирования результатов голосования, разработанная с использованием технологии интеллектуальных контрактов Ethereum и фреймворка Vue

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

Из-за международных сетевых ограничений невозможно напрямую использовать Infura для доступа к Dapp на основе Ethereum, поэтому для полного опыта работы с платформой рекомендуется установить плагин браузера MetaMask.

Функции и оптимизация

  • Подключение к блокчейну
  • Создание пользователя
  • Отображение личной информации
  • Демонстрация событий голосования
  • Создание события
  • Голосование за событие
  • Отчёт о событии
  • Запрос вознаграждения
  • Различные цвета для отображения состояния события
  • Отображение всех операций пользователя
  • Другое

Структура данных смарт-контракта

//Полный код см. в src/Solidity

contract Ballot{
    struct Event{
        uint ID;//ID события
        address Sponsor;//Инициатор
        string Content;//Содержание события
        string[] Option;//Варианты события
        address Reporter;//Отчётчик
        uint StartDate;//Дата начала
        uint Deadline;//Крайний срок
        address [] Voters;//Участники голосования
        uint PrizePool;//Призовой фонд
        bool Report;//Статус отчёта, по умолчанию false
        uint Result;//Результат события, соответствует индексу варианта, по умолчанию 99
    }

    struct Player{
        address Uesr;//Адрес пользователя
        uint Balance;//Баланс пользователя
        uint[] Created;//Созданные ID
        uint[] Selected;//Выбранные ID
        uint[] Report;//Требуемые отчёты
        mapping(uint=>Option) OptionInfo;//Информация о каждом выбранном варианте события
    }

    struct Option{
        bool Voted;//Состояние голосования за событие
        uint Time; //Время голосования
        uint Option;//Вариант события
        uint Finance;//Сумма события
        bool Reward;//Статус вознаграждения  
    }

    struct Finance{
        mapping(uint=>uint) Finance;//Соответствие суммы и варианта
    }

    struct Log{
        uint Time;
        uint ID;
        string action;
        int Change;
        uint Balance;
    }
        

    Event[] Events;//Все события
    mapping(uint=>Finance) EventFinance;//Соответствие событий и сумм
    address[] ExistPlayers;//Все пользователи
    mapping(address=>Player) Players;//Информация о пользователях
    mapping(address=>Log[]) PlayerLogs;
}

Используемые технологии

  • Ethereum
  • Solidity
  • Web3.js
  • MetaMask
  • VueCli 3.x
  • Vue 2.x
  • Vuex
  • Vue Router
  • Element UI
  • ES6
  • Node.js
  • axios
  • webpack
  • Другие

Примечание: в VueCli 2.x общие файлы должны быть помещены в папку static, а в версии VueCli 3.x — в папку public. В противном случае axios не сможет найти файлы. Этот проект использует VueCli 3.x.

Краткое описание проекта

  • Классификация событий
  • Индикатор прогресса и цвета для обозначения событий с разными сроками действия
  • Кнопка просмотра подробностей
  • Отображение состояния события, текущей информации о голосовании и записей голосования всех пользователей и т. д. ![](img/информация о событии.png)
  • Классификация событий
  • Напоминание о необходимости отчёта о событиях с помощью значка ![](img/личные события.png)
  • Проверка формы
  • Быстрый выбор даты ![](img/создание события.png)
  • Создание пользователя
  • Отображение информации о блокчейне ![](img/краткая личная информация.png)
  • Заметный баланс личных токенов платформы
  • Журнал личных действий ![](img/личная информация.png)
  • Некоторые мелкие детали (просмотрите демо для получения дополнительной информации)

Настройка проекта

npm install

Компиляция и горячая перезагрузка для разработки

npm run serve

Сборка и минификация для производства

npm run build

Настраиваемая конфигурация

См. Справочник по конфигурации.

Лицензия с открытым исходным кодом

  • Пожалуйста, соблюдайте оригинальную лицензию MIT автора.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/t940783074-Prophet.git
git@api.gitlife.ru:oschina-mirror/t940783074-Prophet.git
oschina-mirror
t940783074-Prophet
t940783074-Prophet
master