Минимальный стек для мультисетевого голосования на EVM:
- Solidity контракт
VoteHub.sol(деплой одинаковый в каждую сеть) - FastAPI сервер-агрегатор
- PySide6 Windows клиент (локальная подпись транзакций)
npm i
npx hardhat compile
# Установите RPC и PK в .env (скопируйте из .env.example)
npx hardhat run scripts/deploy.js --network polygonСохраните адреса контракта во всех сетях.
cd server
python -m venv .venv && .venv\Scripts\activate
pip install -r requirements.txt
# заполните server/.env (RPC + адреса контрактов)
uvicorn main:app --host 0.0.0.0 --port 8000cd client
python -m venv .venv && .venv\Scripts\activate
pip install -r requirements.txt
copy config.example.json config.json
# в config.json задайте server_base и RPC
python app.pyДля упаковки клиента в .exe можно использовать PyInstaller:
pyinstaller --noconfirm --onefile --name vote_client client/app.py(потребуется подправить пути к ABI).
- Ключ хранится локально в клиенте и не покидает ПК.
- Прокси-отправка на сервере включается только для демо, по умолчанию не нужна.