This repository implements a blockchain-based software update and address registry system used for developing and testing secure on-chain update distribution. It contains a local test blockchain network, services for registering contract addresses, and scripts to deploy and interact with software update smart contracts.
- Start the local blockchain test network (
blockchain-server) which runs one or more test nodes and exposes JSON-RPC and WebSocket endpoints for local development and testing. - The
registry-servicedeploys or registers the AddressRegistry contract and maintains known contract addresses on-chain. - Deployment scripts in
update_servicedeploy the SoftwareUpdateContract and register its address with the registry when required. - Services and test clients subscribe to contract events over WebSocket to detect deployments and state changes in real time.
- Integration tests interact with the same local network and services to validate contract behavior and service orchestration.
- Recommended OS: macOS (zsh) or Linux
- Required tools: Docker, Docker Compose, Python 3.9+ and pip
- Smart contract compilation: solc (py-solc-x recommended)
- Tests: pytest
Local test network for contract development and testing
Solidity contracts for registry and update logic
Web3.py for blockchain interaction
Real-time event subscriptions from nodes
Optional backend services used by registry/update services
- Docker / Docker Compose for containerized local development and orchestration
See install.md for detailed installation and run instructions. The repository includes Docker Compose configurations for local development and integrated tests.
CODE_OF_CONDUCT.md
install.md
LICENSE
README.md
blockchain-server/
docker-compose.yml
Dockerfile
registry-service/
docker-compose.yml
Dockerfile
registry_address.json
requirements.txt
contracts/
AddressRegistry.sol
deploy/
deploy_registry.py
tests/
docker-compose.yml
Dockerfile
registry/
test_address_registry.py
update/
test_software_update.py
update_service/
contract_address.json
docker-compose.yml
Dockerfile
requirements.txt
contracts/
SoftwareUpdateContract.sol
deploy/
deploy_contract.py
get_software_update_address.py
This project is licensed under the MIT License. See LICENSE for details.
Contributions and questions are welcome via Issues and Pull Requests.