Skip to content

The registry

The registry is a tamper-proof distributed database that is used to store data for which integrity is important, but confidentiality is not. This includes:

  • All tables that exist in the engine, and metadata about those tables.
  • Script approvals (which user has the right to execute which script).

Table metadata includes the table handles, column names and types and when, how and by whom they were uploaded. Also, when applicable, the registry stores the id of the platform data request or survey that the table was an answer to. For example, this allows you to automatically query all data that is associated with a particular data request without the need to manually copy and update their table handles.

Security model

The registry runs a maliciously-secure dishonest majority (with abort) consensus protocol to keep a shared state between its nodes. These protocols were developed in-house.

Similar to the engine, the registry consists of three different registry nodes that each run at a different cloud provider. Together, they form a distributed database that offers more security than storing metadata in a central backend. The registry guarantees integrity of the stored data by obtaining consensus among the nodes on any modifications that are done. The result of each query to the registry is cryptographically signed by each registry node, and thus provides a guarantee of integrity to the client.