Skip to content

masslbs/network-schema

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

masslbs networks schema

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.

tooling

Protobuf

Python Package

  • pyproject
  • web3.py for eth_typedData v4
  • pytest

License Maintenance

Updating the python package

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/*

LICENSE

MIT