This repository specifies the structure and content of the communication between Relays and their Clients. It assumes familiarity with the general architecture of the mass market system and the smart contracts it uses.
On an abstract level, the Relays build an Append-Only Log per registered Store. These logs are accessible via a Request/Response scheme. The Clients cryptographically sign Events and write them to the Relay. A Relay keeps track of which Events were send and received from which Client and thus is able to push Events to Clients that haven't written them such that all Clients can build the same state of a Store eventually.
For a detailed description of each message see comments in the individual .proto
files and the CHANGELOG.md
.
For a detailed description of how Events are signed as well as the HTTP Reqeusts acompanying the WebSocket connection, see our documentation page.
This repo also contains a python
folder with the code for the massmarket-hash-event pip package, used in our test suite.
Protobuf
protoc
- protolint
Python Package
- pyproject
- web3.py for eth_typedData v4
- pytest
License Maintenance
nix develop
# to update schema_pb2.(py|pyi)
make
cd python
# make sure the tests pass first
pytest
# -n to switch off venv. nix already gives us that
$PYTHON -m build -n
# see bitwarden for login info
$PYTHON -m twine upload dist/*
MIT