-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathConsentContractPubSubTikz.tex
34 lines (33 loc) · 1.98 KB
/
ConsentContractPubSubTikz.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
\begin{figure}[!ht]
\centering
% Define block styles
\tikzstyle{daoblock} = [diamond, draw, fill=red!20,
text width=6em, text centered, rounded corners, minimum height=4em]
\tikzstyle{factoryblock} = [rectangle, draw, fill=blue!20,
text width=6em, text centered, rounded corners, minimum height=4em]
\tikzstyle{instance} = [circle, draw, fill=violet!20,
text width=6em, text centered, rounded corners, minimum height=4em]
\tikzstyle{actorblock} = [rectangle, draw, fill=green!20,
text width=6em, text centered, rounded corners, minimum height=4em]
\tikzstyle{line} = [draw, -latex']
\begin{tikzpicture}[node distance = 2cm, auto]
% Place nodes
\node [daoblock] (DAO) {Protocol DAO};
\node [actorblock, above of=DAO, node distance=4cm] (IC) {Insight Consumer};
\node [factoryblock, right of=DAO, node distance=5cm] (FACTORY) {Consent Contract Factory};
\node [instance, right of=FACTORY, node distance=4cm] (CONTRACT2) {Consent Registry 2};
\node [instance, above of=CONTRACT2, node distance=3cm] (CONTRACT1) {Consent Registry 1};
\node [instance, below of=CONTRACT2, node distance=3cm] (CONTRACT3) {Consent Registry ...};
% Draw edges
\path [line] (DAO) -- node {upgrade} (FACTORY);
\path [line] (IC) -- node {publish} (FACTORY);
\path [line] (FACTORY) |- node [near start, right] {deploy} (CONTRACT1);
\path [line] (FACTORY) -- node [above] {deploy} (CONTRACT2);
\path [line] (FACTORY) |- node [near start, right] {deploy} (CONTRACT3);
\end{tikzpicture}
\caption{The core of the on-chain protocol implements an upgradeable, decentralized pub-sub
network. Insight consumers publish consent contracts via the consent contract factory which is
upgradable by the Protocol DAO. The EOA which publishes a consent contract receives the
$DEFAULT\_ADMIN\_ROLE$ associated with that contract.}
\label{fig:ConsentFactory}
\end{figure}