Небольной проект криптокошелька с блокчейн технологией на .NET Core
В ходе разработки были использованы сторонние библиотеки:
- NBitCoin 6.0.18 https://www.nuget.org/packages/NBitcoin/ - Использовалась только для правильной генерации ключей по алгоритму Secp256k1
- Newtonsoft.Json 13.0.1 https://www.nuget.org/packages/Newtonsoft.Json - Использовалась, как более производительная альтернатива встроенной системной библиотеки System.Text.Json
dotnet add package NBitcoin --version 6.0.18
dotnet add package Newtonsoft.Json --version 13.0.1
- Склонировать репозиторий
git clone https://github.com/Amonlol/CryptoWallet
- Установить внешние библиотеки
dotnet add package NBitcoin --version 6.0.18 dotnet add package Newtonsoft.Json --version 13.0.1
- Открыть с помощью Visual Studio и скомпилировать проект
- Запустить сервер Server/bin/Debug/Server.exe (дебаг) либо Server/bin/Release/Server.exe (релиз)
- Запустить клиентское приложение ClientUI/bin/Debug/ClientUI.exe (дебаг) либо ClientUI/bin/Release/ClientUI.exe (релиз)
│ .gitignore
│ CryptoWallet.sln <-- Файл проекта
│ ReadMe.md <-- Файл readme проекта
│
├───ClientUI <-- Папка клиентского приложения на WinForms
│ │ App.config
│ │ AuthenticationForm.cs <-- форма для авторизации клиента
│ │ AuthenticationForm.Designer.cs
│ │ AuthenticationForm.resx
│ │ ClientUI.csproj
│ │ ClientUI.csproj.user
│ │ ClientUI_TemporaryKey.pfx
│ │ Form1.cs <-- Форма логики всего клиентского приложения
│ │ Form1.Designer.cs
│ │ Form1.resx
│ │ LoggedForm.cs <-- Форма после успешной авторизации клиента
│ │ LoggedForm.Designer.cs
│ │ LoggedForm.resx
│ │ packages.config
│ │ Program.cs <-- Основная точка входа в клиентское приложение
│ │ RegisterForm.cs <-- Форма регистрации нового клиента
│ │ RegisterForm.Designer.cs
│ │ RegisterForm.resx
│ │
│ └───bin
│ ├───Debug
│ │ ClientUI.exe <-- Запуск дебаг-версии клиентского приложения
│ │
│ └───Release
│ ClientUI.exe <-- Запуск релиз-версии клиентского приложения
│
├───CryptoLibrary <-- Папка самописной библиотеки
│ │ App.config
│ │ CryptoLibrary.csproj
│ │ CryptoLibrary.csproj.user
│ │ packages.config
│ │
│ ├───BlockChain <-- Папка с описанием блокчейна
│ │ Block.cs
│ │ Chain.cs
│ │
│ ├───DataBase <-- TODO: добавить возможность хранения данных в базе данных
│ │ ChainDB.cs
│ │
│ ├───Network <-- Папка с описанием межсетевого взаимодействия
│ │ Network.cs
│ │
│ ├───Transaction <-- Папка для генерации новой транзакции
│ │ Transaction.cs
│ │
│ ├───User <-- Папка с описанием пользователя
│ │ Address.cs
│ │
│ └───Utility <-- Папка с служебными методами
│ UtilityClass.cs
│
└───Server <-- Папка с серверным приложением
│ App.config
│ packages.config
│ Program.cs <-- Точка входа в серверное приложение
│ Server.csproj
│ Server.csproj.user
│ Server_TemporaryKey.pfx
│
└───bin
├───Debug
│ Server.exe <-- Запуск дебаг-версии серверного приложения
│
└───Release
Server.exe <-- Запуск релиз-версии серверного приложения