From b8b58ee37ef24fc923b2a47d0ca7d0d053178fad Mon Sep 17 00:00:00 2001 From: Luis Date: Mon, 26 Sep 2022 22:03:31 -0400 Subject: [PATCH 1/3] convert graphviz diagrams to png in transactions protocol :doc --- docs/04_protocol/02_transactions_protocol.md | 165 +----------------- docs/04_protocol/images/xact_sign.png | Bin 0 -> 36978 bytes .../04_protocol/images/xacts_act_instance.png | Bin 0 -> 29079 bytes docs/04_protocol/images/xacts_instance.png | Bin 0 -> 15477 bytes 4 files changed, 3 insertions(+), 162 deletions(-) create mode 100644 docs/04_protocol/images/xact_sign.png create mode 100644 docs/04_protocol/images/xacts_act_instance.png create mode 100644 docs/04_protocol/images/xacts_instance.png diff --git a/docs/04_protocol/02_transactions_protocol.md b/docs/04_protocol/02_transactions_protocol.md index 0ed99918..ac56213e 100644 --- a/docs/04_protocol/02_transactions_protocol.md +++ b/docs/04_protocol/02_transactions_protocol.md @@ -44,49 +44,7 @@ An Antelope smart contract is implemented as a C++ class that derives from `eosi A transaction instance consists of a transaction header and the list of action instances and transaction extensions that make the actual transaction. The transaction header includes information necessary to assess the inclusion of the transaction in a block based on its expiration time, which is computed when the transaction is pushed for execution. Other fields include the block number that includes the transaction, a block ID prefix used to prevent "cross chain" or "cross fork" attacks, upper limits for CPU and network usage, and the number of seconds to delay the transaction, if applicable. The diagram below depicts a transaction instance. -```dot-svg - -#transaction instance - xacts_instance.dot -# -#notes: * to see image copy/paste to https://dreampuf.github.io/GraphvizOnline -# * image will be rendered by gatsby-remark-graphviz plugin in eosio docs. - -digraph { - newrank=true #allows ranks inside subgraphs (important!) - compound=true #allows edges connecting nodes with subgraphs - graph [rankdir=TB, nodesep=.33] - node [shape=box, style=filled, fillcolor=lightgray] - edge [arrowsize=.6] - - subgraph cluster_instance { - label="Transaction Instance" - graph [style=solid] - - xact_header [label="Transaction Header"] - xact_exts [label="Transaction Extensions"] - - subgraph cluster_actions { - rank=same - label="action list"; labelloc="t" - graph [style=dashed] - node [shape=box, width=.3] - edge [arrowsize=.6] - b1 [label="action 1"]; b2 [label="action 2"] - bd [label="...", color=invis, style=""]; bn [label="action n"] - b1 -> b2 -> bd -> bn - } //cluster_actions - - { - rank=same - xact_header -> xact_exts [color=invis] - } - xact_exts -> bn [color=invis] - - } //cluster_instance - -} //digraph - -``` +![](images/xacts_instance.png "Transaction Instance") The action instances may consist of regular actions or context free actions. Signatures are created and validated at the transaction level. Accounts and permissions are handled on a per action basis. Each action instance contains information to validate whether it is authorized to be executed based on the permission levels of the actors specified in the action and the actual authorizations defined in the smart contract for that action (see [3.4.2. Permission Check](#342-permission-check)). @@ -162,55 +120,7 @@ The transaction must be signed by a set of keys sufficient to satisfy the accumu The transaction signing process takes three parameters: the transaction instance to sign, the set of public keys from which the associated private keys within the application wallet are retrieved, and the chain ID. The chain ID identifies the actual Antelope blockchain and consists of a hash of its genesis state, which depends on the blockchain’s initial configuration parameters. Before signing the transaction, the Antelope software first computes a digest of the transaction. The digest value is a SHA-256 hash of the chain ID, the transaction instance, and the context free data if the transaction has any context free actions. Any instance fields get serialized before computing any cryptographic hashes to avoid including reference fields (memory addresses) in the hash computation. The transaction digest computation and the signing process are depicted below. -```dot-svg - -#transaction signing - xact_sign.dot -# -#notes: * to see image copy/paste to https://dreampuf.github.io/GraphvizOnline -# * image will be rendered by gatsby-remark-graphviz plugin in eosio docs. - -digraph { - newrank=true #allows ranks inside subgraphs (important!) - compound=true #allows edges connecting nodes with subgraphs - graph [rankdir=LR, splines=ortho] - node [shape=box, style=filled] - edge [arrowsize=.5] - - subgraph cluster_signed_xact { - graph [style=filled] - signed_xact [label="Signed\nTransaction", color=invis] - signatures [label="signature(s)"] - { rank=same; signatures; signed_xact } - } //cluster_signed_xact - - xact [label="Transaction"] - chainID [label="Chain ID"] - sha256 [label="SHA-256", style="", shape=oval] - xact_dig [label="Transaction\nDigest"] - - {xact, chainID} -> sha256 -> xact_dig - - pub_key [label="Signing account(s)\nPublic Key(s)"] - - subgraph cluster_wallet_mgr { - graph [style=dashed, labelloc=b] - label="Wallet Manager" - pri_key [label="Signing account(s)\nPrivate Key(s)"] - wallet [label="Signing account(s)\nWallet"] - sign [label="Sign", style="", shape=oval] - } //cluster_wallet_mgr - - { rank=same; chainID; pub_key; wallet; pri_key } - { rank=same; xact; sha256; sign } - { rank=same; xact_dig; signed_xact } - - pub_key -> wallet -> pri_key - {pri_key, xact_dig} -> sign - sign -> signatures - -} //digraph - -``` +![](images/xact_sign.png "Transaction Signing") After the transaction digest is computed, the digest is finally signed with the private key associated with the signing account’s public key. The public-private key pair is usually stored within the local machine that connects to the local node. The signing process is performed within the wallet manager associated with the signing account, which is typically the same user that deploys the application. The wallet manager provides a virtual secure enclave to perform the digital signing, so a message signature is generated without the private key ever leaving the wallet. After the signature is generated, it is finally added to the signed transaction instance. @@ -244,76 +154,7 @@ If there is at least one actor whose set of named permissions fail to meet the m The diagram below depicts an action instance. It consists of the receiver account, the action name, the list of actors and their permissions, and the action data containing the message to be sent, if any, to the receiver account. -```dot-svg - -#action instance - xacts_act_instance.dot -# -#notes: * to see image copy/paste to https://dreampuf.github.io/GraphvizOnline -# * image will be rendered by gatsby-remark-graphviz plugin in eosio docs. - -digraph { - newrank=true #allows ranks inside subgraphs (important!) - compound=true #allows edges connecting nodes with subgraphs - graph [rankdir=TB, nodesep=.2, ranksep=.1, style=solid] - node [shape=box, style=filled, fillcolor=lightgray, height=.25] - edge [arrowsize=.6, color=invis, minlen=1] - - subgraph cluster_instance { - label="Action Instance" - - subgraph cluster_w { - graph [style=invis] - label="" - empty_node [label="", color=invis, style="", width=1.1] - act_name [label="action name"] - acct_name [label="account name"] - } //cluster_w - - subgraph cluster_perms { - label="authorization list"; labelloc=t - graph [style=dashed] - node [shape=box, width=.3] - edge [arrowsize=.6] - # - subgraph cluster_perm_n { - label="auth n"; labelloc=t - an [label="actor n"]; pn [label="permission n"] - an -> pn - } - subgraph cluster_perm_e { - label=""; labelloc=t - graph [color=invis] - node [color=invis, style=""] - ae [label="..."] - } - subgraph cluster_perm_2 { - label="auth 2"; labelloc=t - a2 [label="actor 2"]; p2 [label="permission 2"] - a2 -> p2 - } - subgraph cluster_perm_1 { - label="auth 1"; labelloc=t - a1 [label="actor 1"]; p1 [label="permission 1"] - a1 -> p1 - } - { rank=same; a1; a2; ae; an } - } //cluster_perms - - acct_name -> a2 - - subgraph cluster_data { - graph [style=invis] - label="" - act_data [label="action data", width=5.25] - } //cluster_data - - p2 ->act_data - } //cluster_instance - -} //digraph - -``` - +![](images/xacts_act_instance.png "Action Instance") ### 3.4.4. Authority Check diff --git a/docs/04_protocol/images/xact_sign.png b/docs/04_protocol/images/xact_sign.png new file mode 100644 index 0000000000000000000000000000000000000000..475c5cc362df3c41237b7950f1c58b77f23146de GIT binary patch literal 36978 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 literal 0 HcmV?d00001 From 9d3f8e5d24013a7e459edad987f763af4adbc6d3 Mon Sep 17 00:00:00 2001 From: Luis Date: Mon, 26 Sep 2022 22:04:28 -0400 Subject: [PATCH 2/3] convert graphviz diagrams to png in net protocol :doc --- docs/04_protocol/03_network_peer_protocol.md | 279 +----------------- docs/04_protocol/images/p2p_head_catchup.png | Bin 0 -> 29649 bytes docs/04_protocol/images/p2p_lib_catchup.png | Bin 0 -> 29107 bytes docs/04_protocol/images/p2p_local_chain.png | Bin 0 -> 18181 bytes .../images/p2p_local_chain_prunning.png | Bin 0 -> 20816 bytes docs/04_protocol/images/p2p_system_arch.png | Bin 0 -> 30877 bytes 6 files changed, 5 insertions(+), 274 deletions(-) create mode 100644 docs/04_protocol/images/p2p_head_catchup.png create mode 100644 docs/04_protocol/images/p2p_lib_catchup.png create mode 100644 docs/04_protocol/images/p2p_local_chain.png create mode 100644 docs/04_protocol/images/p2p_local_chain_prunning.png create mode 100644 docs/04_protocol/images/p2p_system_arch.png diff --git a/docs/04_protocol/03_network_peer_protocol.md b/docs/04_protocol/03_network_peer_protocol.md index 344ef848..ab6a2799 100644 --- a/docs/04_protocol/03_network_peer_protocol.md +++ b/docs/04_protocol/03_network_peer_protocol.md @@ -31,74 +31,7 @@ The main goal of the p2p protocol is to synchronize nodes securely and efficient The interaction between the above components is depicted in the diagram below: -```dot-svg - -#nodeos components - p2p_system_arch.dot -# -#notes: * to see image copy/paste to https://dreampuf.github.io/GraphvizOnline -# * image will be rendered by gatsby-remark-graphviz plugin in eosio docs. - -digraph { - newrank=true #allows ranks inside subgraphs (important!) - compound=true #allows edges connecting nodes with subgraphs - graph [rankdir=TB] - node [style=filled, fillcolor=lightgray] - edge [arrowsize=.6] - - subgraph cluster_node { - label="Node A (node)" - graph [style=solid] - - net_plugin [label="Net\nPlugin"] - controller [label="Chain\nController", shape=box] - serializer [label="Net\nSerializer", shape=box] - - subgraph cluster_chain { - rank=same - label="local chain"; labelloc="b" - graph [style=dashed] - node [shape=square, width=.3] - edge [dir=back, arrowsize=.5] - b0 [label="...", color=invis, style=""] - b1 [label=""]; b2 [label=""]; b3 [label=""]; b4 [label=""] - b0 -> b1 -> b2 -> b3 -> b4 - } //cluster_chain - - net_plugin -> { controller; serializer } - controller -> b1 [lhead=cluster_chain] - } //cluster_node - - subgraph cluster_peer { - label="Node B (peer)" - graph [style=solid] - - net_plugin2 [label="Net\nPlugin"] - serializer2 [label="Net\nSerializer", shape=box] - controller2 [label="Chain\nController", shape=box] - - subgraph cluster_chain2 { - rank=same - label="local chain"; labelloc="b" - graph [style=dashed] - node [shape=square, width=.3] - edge [dir=back, arrowsize=.5] - a0 [label="...", color=invis, style=""] - a1 [label=""]; a2 [label=""]; a3 [label=""]; a4 [label=""] - a0 -> a1 -> a2 -> a3 -> a4 - } //cluster_chain2 - - net_plugin2 -> { serializer2; controller2 } - controller2 -> a3 [lhead=cluster_chain2] - } //cluster_peer - - { - rank=same - serializer -> serializer2 [style=dashed, dir=both, minlen=4] - } - -} //digraph - -``` +![](images/p2p_system_arch.png "Peer-to-peer Architecture") At the highest level sits the Net Plugin, which exchanges messages between the node and its peers to sync blocks and transactions. A typical message flow goes as follows: @@ -113,49 +46,7 @@ At the highest level sits the Net Plugin, which exchanges messages between the n The local chain is the node’s local copy of the blockchain. It consists of both irreversible and reversible blocks received by the node, each block being cryptographically linked to the previous one. The list of irreversible blocks contains the actual copy of the immutable blockchain. The list of reversible blocks is typically shorter in length and it is managed by the Fork Database as the Chain Controller pushes blocks to it. The local chain is depicted below. -```dot-svg - -#p2p_local_chain.dot - local chain -# -#notes: * to see image copy/paste to https://dreampuf.github.io/GraphvizOnline -# * image will be rendered by gatsby-remark-graphviz plugin in eosio docs. - -digraph { - newrank=true #allows ranks inside subgraphs (important!) - compound=true #allows edges connecting nodes with subgraphs - graph [rankdir=LR] - node [style=filled, fillcolor=lightgray, shape=square, fixedsize=true, width=.33, fontsize=11] - edge [arrowsize=.6] - - subgraph cluster_chain { - label="irreversible blocks"; labelloc="b" - graph [color=invis] - edge [dir=back, arrowsize=.5] - b0 [label="...", color=invis, style=""] - b1 [label="49"]; b2 [label="50"]; b3 [label="51\n(lib)"] - b0 -> b1 -> b2 -> b3 - } //cluster_chain - - subgraph cluster_forkdb { - label="reversible blocks"; labelloc="b" - graph [style=dashed] - edge [dir=back, arrowsize=.5] - a1b [label="52b"]; - a1c [label="52c"]; - a2d [label="53c"]; a3d [label="54d"] - a3e [label="54c"]; a4e [label="55c\n(hb)"] - a2c [label="53b"] - a2b [label="53a"]; #a3b [label="54a"] - a1b -> a2b #-> a3b - a1b -> a2c - a2d -> a3d - a1c -> a2d -> a3e -> a4e - b3 -> {a1b; a1c } - } //cluster_forkdb - -} //digraph - -``` +![](images/p2p_local_chain.png "Local Chain (before pruning)") Each node constructs its own local copy of the blockchain as it receives blocks and transactions and syncs their state with other peers. The reversible blocks are those new blocks received that have not yet reached finality. As such, they are likely to form branches that stem from a main common ancestor, which is the LIB (last irreversible block). Other common ancestors different from the LIB are also possible for reversible blocks. In fact, any two sibling branches always have a nearest common ancestor. For instance, in the diagram above, block 52b is the nearest common ancestor for the branches starting at block 53a and 53b that is different from the LIB. Every active branch in the local chain has the potential to become part of the blockchain. @@ -334,56 +225,7 @@ The Fork Database (Fork DB) provides an internal interface for the Chain Control In essence, the Fork DB contains all the candidate block branches within a node that may become the actual branch that continues to grow the blockchain. The root block always marks the beginning of the reversible block tree, and will match the LIB block, except when the LIB advances, in which case the root block must catch up. The calculation of the LIB block as it advances through the new blocks within the Fork DB will ultimately decide which branch gets selected. As the LIB block advances, the root block catches up with the new LIB, and any candidate branch whose ancestor node is behind the LIB gets pruned. This is depicted below. -```dot-svg - -#p2p_local_chain_prunning.dot - local chain prunning -# -#notes: * to see image copy/paste to https://dreampuf.github.io/GraphvizOnline -# * image will be rendered by gatsby-remark-graphviz plugin in eosio docs. - -digraph { - newrank=true #allows ranks inside subgraphs (important!) - compound=true #allows edges connecting nodes with subgraphs - graph [rankdir=LR] - node [style=filled, fillcolor=lightgray, shape=square, fixedsize=true, width=.33, fontsize=11] - edge [dir=back, arrowsize=.5, weight=100] - splines=false - - subgraph cluster_chain { - label="irreversible blocks"; labelloc="b" - graph [color=invis] - b0 [label="...", color=invis, style=""] - b1 [label="49"]; b2 [label="50"]; b3 [label="51"] - b0 -> b1 -> b2 -> b3 - a1b [label="52b\n(inv)"]; - a2c [label="53b\n(inv)"] - a2b [label="53a\n(inv)"]; #a3b [label="54a\n(inv)"] - a1c [label="52c"]; - a2d [label="53c\n(lib)"] - b3 -> a1b [label=<X>] - b3 -> a1c [label=" "] - { rank=same; a1c -> a1b [style=invis] } - a1b -> a2b [label=<X>] - a1b -> a2c [label=<X>] - a1c -> a2d - } //cluster_chain - - subgraph cluster_forkdb { - label="reversible blocks"; labelloc="b" - graph [style=dashed] - a3d [label="54d"]; - a3e [label="54c"]; a4e [label="55c\n(hb)"] - { rank=same; a3d -> a3e [style=invis] } - a3e -> a4e - } //cluster_forkdb - - a2c -> a3e [style=invis, weight=200] - a2d -> a3e - a2d -> a3d [weight=300] - -} //digraph - -``` +![](images/p2p_local_chain_prunning.png "Local Chain (after pruning)") In the diagram above, the branch starting at block 52b gets pruned (blocks 52b, 53a, 53b are invalid) after the LIB advances from node 51 to block 52c then 53c. As the LIB moves through the reversible blocks, they are moved from the Fork DB to the local chain as they now become part of the immutable blockchain. Finally, block 54d is kept in the Fork DB since new blocks might still be built off from it. @@ -533,64 +375,7 @@ Therefore, the node’s LIB block is updated first, followed by the node’s hea Case 1 above, where the node’s LIB block needs to catch up with the peer’s LIB block, is depicted in the below diagram, before and after the sync (Note: inapplicable branches have been removed for clarity): -```dot-svg - -#p2p_lib_catchup.dot - LIB catchup mode -# -#notes: * to see image copy/paste to https://dreampuf.github.io/GraphvizOnline -# * image will be rendered by gatsby-remark-graphviz plugin in eosio docs. - -digraph { - rankdir=LR - - graph [labeljust=l, ranksep=.3] - node [shape=box, style=filled, fillcolor=lightgray, fixedsize=true, width=.5] - edge [dir=back, arrowsize=.7] - - subgraph cluster_node_afr { - label="Node (after):" - "87a" [label="...", color=invis, style=""] - "88a" [label="88"] - "89a" [label="89"] - "90a" [label="90"] - "91a" [label="91"] - "92a" [label="92\nlib/hb", fontsize=12.75] - "87a" -> "88a" -> "89a" -> "90a" -> "91a" -> "92a" - node [label="", color=invis, style=""] - "92a" -> "93a" -> "94a" [style=invis] - } //cluster_node_afr - - subgraph cluster_peer { - label="Peer:" - graph [color=invis] - "87p" [label="...", color=invis, style=""] - "88p" [label="88"] - "89p" [label="89"] - "90p" [label="90"] - "91p" [label="91"] - "92p" [label="92\n(lib)"] - "93p" [label="93p", fillcolor=white] - "94p" [label="94p\n(hb)", fillcolor=white] - "87p" -> "88p" -> "89p" -> "90p" -> "91p" -> "92p" -> "93p" -> "94p" - } //cluster_peer - - subgraph cluster_node_bfr { - label="Node (before):" - "87b" [label="...", color=invis, style=""] - "88b" [label="88"] - "89b" [label="89"] - "90b" [label="90\n(lib)"] - "91b" [label="91n", fillcolor=white] - "92b" [label="92n", fillcolor=white] - "93b" [label="93n\n(hb)", fillcolor=white] - "87b" -> "88b" -> "89b" -> "90b" -> "91b" -> "92b" -> "93b" - node [label="", color=invis, style=""] - "93b" -> "94b" [style=invis] - } //cluster_node_bfr - -} //digraph - -``` +![](images/p2p_lib_catchup.png "LIB Catch-Up Mode") In the above diagram, the node’s local chain syncs up with the peer’s local chain by appending finalized blocks 91 and 92 (the peer’s LIB) to the node’s LIB (block 90). Note that this discards the temporary fork consisting of blocks 91n, 92n, 93n. Also note that these nodes have an “n” suffix (short for node) to indicate that they are not finalized, and therefore, might be different from the peer’s. The same applies to unfinalized blocks on the peer; they end in “p” (short for peer). After syncing, note that both the LIB (lib) and the head block (hb) have the same block number on the node. @@ -599,61 +384,7 @@ In the above diagram, the node’s local chain syncs up with the peer’s local After the node’s LIB block is synced with the peer’s, there will be new blocks pushed to either chain. Case 2 above covers the case where the peer’s chain is longer than the node’s chain. This is depicted in the following diagram, which shows the node and the peer’s local chains before and after the sync: -```dot-svg - -#p2p_head_catchup.dot - HEAD catch up -# -#notes: * to see image copy/paste to https://dreampuf.github.io/GraphvizOnline -# * image will be rendered by gatsby-remark-graphviz plugin in eosio docs. - -digraph { - rankdir=LR - - graph [labeljust=l, ranksep=.3] - node [shape=box, style=filled, fillcolor=lightgray, fixedsize=true, width=.5] - edge [dir=back, arrowsize=.7] - - subgraph cluster_node_afr { - label="Node (after):" - "89a" [label="...", color=invis, style=""] - "90a" [label="90"] - "91a" [label="91"] - "92a" [label="92\n(lib)"] - "93a" [label="93n,p", fillcolor=white] - "94a" [label="94p", fillcolor=white] - "95a" [label="95p\n(hb)", fillcolor=white] - "89a" -> "90a" -> "91a" -> "92a" -> "93a" -> "94a" -> "95a" - } //cluster_node_afr - - subgraph cluster_peer { - label="Peer:" - graph [color=invis] - "89p" [label="...", color=invis, style=""] - "90p" [label="90"] - "91p" [label="91"] - "92p" [label="92\n(lib)"] - "93p" [label="93p", fillcolor=white] - "94p" [label="94p", fillcolor=white] - "95p" [label="95p\n(hb)", fillcolor=white] - "89p" -> "90p" -> "91p" -> "92p" -> "93p" -> "94p" -> "95p" - } //cluster_peer - - subgraph cluster_node_bfr { - label="Node (before):" - "89b" [label="...", color=invis, style=""] - "90b" [label="90"] - "91b" [label="91"] - "92b" [label="92\n(lib)"] - "93b" [label="93n", fillcolor=white] - "94b" [label="94n\n(hb)", fillcolor=white] - "89b" -> "90b" -> "91b" -> "92b" -> "93b" -> "94b" - node [label="", color=invis, style=""] - "94b" -> "95b" [style=invis] - } //cluster_node_bfr - -} //digraph - -``` +![](images/p2p_head_catchup.png "Head Catch-Up Mode") In either case 1 or 2 above, the syncing process in the node involves locating the first common ancestor block starting from the node’s head block, traversing the chains back, and ending in the LIB blocks, which are now in sync (see [3.3.1. LIB Catch-Up Mode](#331-lib-catch-up-mode)). In the worst case scenario, the synced LIBs are the nearest common ancestor. In the above diagram, the node’s chain is traversed from head block 94n, 93n, etc. trying to match blocks 94p, 93p, etc. in the peer’s chain. The first block that matches is the nearest common ancestor (block 93n and 93p in the diagram). Therefore, the following blocks 94p and 95p are retrieved and appended to the node’s chain right after the nearest common ancestor, now re-labeled 93n,p (see [3.3.3. Block Retrieval](#333-block-retrieval) process). Finally, block 95p becomes the node’s head block and, since the node is fully synced with the peer, the node switches to in-sync mode. diff --git a/docs/04_protocol/images/p2p_head_catchup.png b/docs/04_protocol/images/p2p_head_catchup.png new file mode 100644 index 0000000000000000000000000000000000000000..6783e530a8fc8c3c15e549b7026680b9c2456bce GIT binary patch literal 29649 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 literal 0 HcmV?d00001 diff --git a/docs/04_protocol/images/p2p_lib_catchup.png b/docs/04_protocol/images/p2p_lib_catchup.png new file mode 100644 index 0000000000000000000000000000000000000000..42041316c7d20b361c62e6a91a22cd532c7079bb GIT binary patch literal 29107 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/04_protocol/images/p2p_system_arch.png b/docs/04_protocol/images/p2p_system_arch.png new file mode 100644 index 0000000000000000000000000000000000000000..6102685de9eedf898ab2334b252d0fd86d20d527 GIT binary patch literal 30877 zcmZ_0bwHHg_AiX&5W)abl0!PTA@1FO)_x_{9@YLSV-fMkgEn=?dYn&!KONNJscUntR%>WM%ABTr`Djr1) z->6d5cEEq9ZX0M|@haZ3EaBmC;AyF;82MYShL9dy>;7}{OHeqCK37d3Et=-5n!pWB z@|vB70t@vsrZ?)YXx9m()y35H)5OLa6miFL=btf+O^W@n*Rehq+}hUmbR_6)z(|(l zkL;j|(xLr7p$-AxLmhIOMkGgukG^(BkXTXkaw-!><56?qtA(M^_a-|*QrIWh#SX3@Lx|DEr-vI z6KBU;z3}g`AQ#X?$r1n0;7)O(Z^JjX7w{%R{xd4LKoZ)U;(rfQjpIAYP7TF(Ifv!; z!9U08s&HJ+QT$NnY*;?8`}Bgv-ujo)mwM8dkjL$(y!Y6>c|b~*iMs3W{@;_Qt%u8{ z70iw*$o0b*P+@6$kEMmtSd;=vVo(h^14VO>SMSj|g`d*)x~TV_y!efD*^B=?B0c`! z{kwk|&S4b&H#r`v{BtnHso+e9!9GnCfgw9HFTUCcXvl zz%T+S`31T0)i~7PbEKx}nTIf0f6*M69V)Xi^j4VwudE0P{dOYWM&xs@9wWoa*;ELq)Cn_8tN-< zseN6TZ18w0WYKKYo4_hqm=jpC^YcBIn_2(g{jYb2)EO+eo4gmbA3tSkRS(0xGgCC3 zzKe4G(ro<2>-U(M$G~i7#Ny7!%QEy+{wnTGi|J)wm&Yqb56Z7s+axT`v;{Sk zU9ZNvx9whA`qI+yIr!I`gcVKWo8NjLEc-rI*l0EM{_)nW<*h}FAHR33V?Zo}sC!HH z<9H6gq*{2>-b?uz+9NqiZpO8C12n%EQZFymPrIjbCCGMNV{+IghKcs@Jl~e?HeJte zwzD_wA$aw%luLo;lvf|?o#>w-fA$_)wguWBk5yPGFv>q6Cp1Ts_uX0l%umaw zpXT^9I0!HY`|(%dpcEN+w-m-4PnH)O<#woiAeuq-y${`)&~09<16HG@@JX+^U(b&s8QooyfG(ue%G zM`;;Wp#hg@e?_r}Ug>4%=_kiVUr^lYq1AS8J!MvHqi&YeZ7XBbgDN(yEjZe^`?uDZ z_oMEstptVjD|yo*7`4C3ujVi~jfYl)S+_bv18A^+uHRSU(evMWU^`PBTmU?D9OG&{}a}S@TyxSs&bZd5b5GK{Va{OY^|-{#TD79n_19L3^(D zLcbP=3e~C7P3X-&`jKJ?|14%$ok{MoF)lXX5w5ABzPg~$-w^-X=gG;{=)_7`zSe^Vkkd8d^%Ri$gR{Vvp ztE{_&Pp?!9Ue4Z5M)zt>|J|dDT!Iah{xtMZtJ!bu(FZgyEmr8-uOA~BC&zz=U=6-# zpOyDr<{me{{RTrwZdqOUH1r0OX&$}sjsBL6cEJhvYSdh1$B6)}4uk22{zNy*;P-5| zhsEV?5lF-{%jmnUDHHd6?)+$4?>fmc)Op2kb>iysXlVuy!SYm{bE@v6^ID-Nza5u8 z7A78k{kcEs__Vy;fVSad_3ndqF5)7)fs_xqsw9iMx;y7)S6F+`MpE?9h5TJ_*)R&B z$Mi644rfUk=cvcg^NR}A=f9QvkzIB{S=#^9=3-*GAK&!6ILq4{-z?la$#bfP)ZbUC z``AjqbAP|MYVh3g0v)E#g?zl+jPLkxH`T;4K>dx!YW-{kS2DV}`u-#}Htgi{?GdeC z-`~`>Mirm2?ql;?|7==LZdjmu)$jJ~t9zz<=wl5Q>F8}{kJem2i<=i+#w(t@d~vEJ z%FX{~;Ldvu!RN7JnTi41cCW8-rG3ZI>L<0VH|w00x|O&5s_*dW-IL<6baIhK*rix zt4!sD<=*R~#GN+dihdE1K~A{!`^QrgJBk4GV*-LJZGpav`M6wVSBi!HfuQ|wi5E*6 z`_{j-lzQtuI)61spYd^a{k05HE0J-_pmGU!F$ql$2eW$Dt7f98gI;L~3h8=N*d%Pe zKM9G&J!V?BVTJSCN(CQy%B_^u67FI`w_1O_9onvVe&J?Q=yBj^VmJ}GfOpKvMOd7% zXnc)+JSvWUZX2Pk{gDfQbmw5+vV`<*`js~_ zUyZ6m$NcOikT=tDw5_vfj0*|3s9t6H-l~rJGS#(;!nmSWNi`>6(N?S)mZUvV!i9v) z-XkFl>CI(8w~bu2ym(R^_@Ck4_rRepp13 zKscc=;fz)+Q+h=#&E9gwi9nk1E$PsS?Sn82wPE|YuKRk-(#a2_aAGwjZ`y6?F?FaL z0;-vsDC={cVuZgpjiU&=qX)>S=qdfP@1Fb~RFJmqrSPq(cY6O^fSq^OcibYww`c+O z@ik&ha!+o#xNUFVm+y=hLtC?hw+9Rw+%4#I2m)??P8l%r9@!eDNVF;`Kg-DGdQ}ku zxoIQ`H#K8tRXDn<1;t4!TKKSPF+5Z+Q%og5YwI<|Wp=wd#q?`Oc2DGe&tTM!c$a&} z>+e%7bj-&Jp3%}jI$Mw5ZyoG1T0+--wWMQ+8+Ry9)vO+e=A@@mBfia|z?a$QnC%tG zsS#t=>*tE`BfR-_Fhlfi^b>;IuD)vfsLxYfM!3y}uc5TTik$Jpd18f(U8}3Pbo1c^ zV(ChCHjk*cBM8_zVmKZ+_0`;-aPCx5ny{Zx?vV($>lWec6vwL}nUAWsHmu&8y=m*m z{_7{#Dz{<@oq!Q4Ftev1gr;kv=&&P!mj-+EXb{ay)3q9&D_lb&ifIkz(BE{p$9;pX zrH2vAc-r;;yj4jW3vFs9-+Kiow~wK)r3Q7P4>yS(J;^}Zkz3V?NldKk=^ilG-=V!s z#mU~!aT3>Y@4))rtLN4{ajOtM)k984{8YK*Pn{^geD0yJTqHVAyhYi0D9&lrgBm+j zd$!xUqzz_h3PaV}sfI;a&rZ5b*5s$1yNV6yA)^!UL1F4_$yIzFNxPN!S^Q<+Wzydn11$bq5;zJ zfiMc&I5wPEVdHjo{c8gD^VIZ!R=Wn@RJaV_(7$JSBBIDr>8zp-Bx)%i+U>tg|9PsL z9*Qh6Dr>P0(3e(z4Zf@K` z%Vo4Z9CxFId!+qpFnYW=C-!{_-jv>KADo{S>PdXc@OBE?A<~LbhmRJ!bBf*l;MILc zcJ_t|%9oT6C#vtCi)wm&bnmeys`_Jcv9NC0-9LM4B}yx{%$D+kioB+xlat-6s9gJQ z>*@D0xRF=PS;2Z#Q`OsDYz_^z)<2$MNUglK6_f`^Rs?V8%NI?IdMz$%*%@>2V9HA4m}yK zP}YLnTN2JL(`S2`t@0*`IJ)s{S_rm+3ZM8*VI~T>a1%4V=_2%zJ;Jte=p64s{#z?& ztro?6V#GyZR%eKIF8<~ihD1hZt+&UUgkFBa`%k*geQAV4d(RP|qa>@;V~0{yJUs^| z5`=rycQRY5418%`F zqG}J>fT+~hF=~`%y%QplUaw-zUFl{IBh|W6kEEg-nX=no^V_*%zO^e6s&;peKU0ZF zv%J8loM$vX7A92hHht}w)hk+TW`N&si2gMUOGrysGI z5URa?o*$zMvDC9C#34Gdb4g){>)zi2PFy@@$5(*GK#nx`LYba3zXH~Ym94WAwd!=e zg&YC`Wm;$bT$uXvHr;l=-Uq_E8mNoMJBGg3(bKh)to@n{s?pLk4e{1Lyha(8BVOR` zp=CI3@(mm+_g(t~(9p>L^kA223^S%Iwa*iugMuXC6ieAXVUkYWqkerB+IS3wLnL7L zh@hM0Hk`ILHrw;sxCO(ubW9J1LRZ@#RsMDJb=2BbG{*cio&@fdjenn~)F8m^G79|Y z)7uzIlFC!hSO&usyO@bbxGHR%J~vh$&f_{eGkmtyhn*Oz1rFxbT(w6_jH%*id**09 zo8Eurv7ll$AWC|jM8;Fb#D;|f#oQVsXi{Nh#v!ZZ_T*FdxQJ)?sk&Aojv85|(j5eOzU6pxKw8TauQlggfpTy}=Q5pxj5Iw5r&eGp0hf zTKDX7BQJ&ceOc~sS=G-qVH%X4Unrx$0-}2OpzjUErulRCo-16UCzQ-FzP*QH`e}4~ zXojd?Y1K1XSZoo)hO(JXXbovso_zl)Rg?#_&9AbSgOrVt2os7+XYzQrE(J645K50c zmbsj)x^T+0o1ToAS(AEwCVWfzom9J6HETrcfXoWt#nH6jO-|#x21+j-zqH)1G#2y| zH#YU(_au84_+hY%ge|-$s9~0$NUkT{fb)0H7qf{Qy}RVEDAkyHC_^Go5jGKGdcUe< zdfnt1WsSe?qwH?I5I~jN&aa9sqFQ-oh8;ey=zPGaRzs=C-62jfeaf4#GSgT5C97Gq z;+UewIg0hs?ow@kVN&U>6djSP_1zW1xOh1wi>QuoVayeeI_EB!J3ak^X))SEFP5{O zp5Q?%ppAP-v6ib{*X!RlM^RfVR_#}PiM9|jE-^~KLF-R9$kuCM88yoLsz%19pP+F1pQWX#$yhFQE{;xY&zbceo>znM zy40T$!Y^LUC53>c(IY$0rrK^_b~hfPRbRF+F%GX@8*LV$;<22;S6|~Pb-G^LJ23kK z2a4;95UF+E=+IjpOp+^AwdB3=!lWuacZ-}#T3N*(F@6&Qts6k!r#wD2uQ6zNe!RyaNV3#WpPr?)Nany zzDV6Oy(63Zpma!+_*hN;PqP*(qVq{P%_+{CjKF*%`Em204LqX*s#)$?D-Jq@E<&J< z-dquZ&pyE8iwNxNL0t&j0=|B>l9LRP0}|o$AxfkaBnA#e_#CNWl7?{o4dC}XY=&cS zj4}%0`ney@Nq`=Z1KPk(rnItX&;Y~`A;@9vsvlfm0`4VdNNAb^-)kb80jX3CEodx_ zAPv3a@e~5lM7a+1gZT6dlgw~@HgX*b(eKE8pTm7G8C9<$+Cx1YQ%6KANewcGFGv+H zDy;Vs;hNd-{lWnUK3p=o=toU~-eX>%-J`L6J4+u&nV*Al^=V3knG5+nH>WbTe+y(7 z5SuUyjBpMpJ4xu?V7#h7@av-pJS7|pDSYZ-0&z*!b50R4`2oy>@?$r}6ZLBYy?m&!KYQj^Mb zd?K=b;9Zrieh&pru35GQ|K9#Rr4ih8cW=^hd#UiLK;i=AX~900+wte!KVN@z-kH&g-iybIX#X){Q%K0nT&zkIy@&97dJTO4twfgQ`&0>J2H4 zy!9_f^yU?j8+DrLA{GMbv1gKjdtQA6vQBHX?i{ioTAL+}y{9A%rBs^?V7>QySrg*3 z2XEd}Jl^@Z-9;{XE@ianDp#>pNBcJMqenMazXq-d?^3bpqPzCiriaQKW^R@ArwNk4 z%a&7Y#lou=<^Z@)ywS8BS)PNUoOK) zuZYf6dz>x|P)X^HXL?b89hfWAz(fn8Wb`JoSN3BLNw?!@2X(*0j&iDS*L@hjH;e=( z8JO~Bl?V3bn9bGNk-?DtFNGqw^>?`u^2N-%JHXfmi>|&{_;Tm#LxuH5RpQfU?N;Qo zi@w>|{MAJ1eTr?8c%Sn=Crd&8i`FIVPfD3|?=ZYp`{=^Q;PVcen?SI^TwS2N^ zY{;W1Sxfpi`;)oyRU(MJmP5}SYGWD6q=-bg*RqPPJ5SZVihBM7|6fw7uG%aR{)}n& z7QHq`@4v_ULqrVbXtS`;zsGk1R;&96Gj~=e4cS5u<|b^cZThs3M=^y*IWDA{lC145 zVE6#nxyQMp8S^Ua6hU6l{`&I5W(3uRq8YRUO~BS`hWxvKPrMf&nv`_&aSZ8pB4MfVDX&|JYT}lsDU0IxEWLjGS{U6hZHf{+=-Vi zCX*ocv>t5_8GtI0+7tIgh#OaJ*i=sWF=sMdtBvGxkOP&V;q7GfqmnH2;LE#zLw&E~ zTg9PdrGG!9Hk?)R-+bn?^g-P-aq_W8d-1xR9U17GT{k^tUK&qH{&IT)S zX*onQ;?M8CJB_qnrC7_7kzFnWs${CsX(~Wr)eJZz&OK6DVH&$ z!o;i{*vtSH49%V^{kkSu=QuOJbjOVw7s|ylcL-6nm@=X6)~L4popqMEoaMEt6ds*C z5Pp}_q$}2}KSY4g&X%p`c7Jb}{mr|a-w~zkFH_Km_ipJf;}~4NwudaYtMGbIzuNn= zIoG}TBJn~B0Qo>OITsy}=&f5xh}W|29u_M7qB0Y8;l=FGykQ)@pCKK%^D}pS1c0=8 zd|*XoDM-R5B&?o?nFDu`)zLTciQZ}CXdDLlm(g(wpVYbl)mwFRxVy4g_fbC;0&Veu z$`?`(r+NHOR2L4Er9xiQnG}_eK39)p<0R8pOk|OhSZRQyJ4isK$nkr7QAcna0$rY3 z42?maW^!G?@gN=($1mE;ikLey0fkm?s%Gv&@{Rv-<(bmQ7k8#4m1G@1kda#R{(N2M z3L)JN3ELlZM2RBt^s7RCFJ{CF%^Cb)c5hTcL@v4QelDtH=b?1rWkMhL*X`?rgK?|7 z13fXc#!pmeus(JZRn|z+@(#?`kzgBh~)3{#}@aubu!ku-Yraf>eXnA#$K+Bq;Zz6b~ zE#;CPC`Fh!Nuq~R(O&_lfK|aS4KlZ^XX^_gcoAtYA2)l{IR^T|-55Ly%ahUa>O$Xt zds(kQ{N))@+Rvue3~RhsHz)A}p4|f3wmBo+^9gCO=y|OYNaRC#TB)Cg1pGaiwuBdl zGBQAQEp^=YTbs%swDNhczWwt>BC$4wmlMgj^(+}lAn7r)A2;sA+U3?87^9SGPyzex z7U2~1lzQxMyD!bYvFA^-$X?kjOC=@6RUvsc7fZw>VHYiA-gt#AV1fGg*S{wjDd_of zz1E^|*&fK3*QhVKDpXpuT%*4D>At**NCa;*A>wAwC~Qlor4I zkVEu>X{z?7XTwJU(p=WGObtw!;p^z~pq285c$FSbTqBj&biLd5J5{RUzmU94^yL=Q zx)pJVY#(@)XnN>A8J)rL^|rv5Qz@@ITq>G+Ww9tG6@5@VE9QB#j#L08vYYFbKim_N zg-t;e6{0Vkihfkgz?Cmx(OehHe156Ng%d;Q#4PQa1XxMC+U9lMosF4WaZ=)-Bb6Yc z^A-`t6-3`;96FEAD`{f6eIZ3Bo`v0-Ar>dLde(>c;#!tuYwNIH(086kGo$L*pRDQ0 z6{O;U6ZP4UFQ%lWd3b2C{X`$e3oo<#9^|V=Q7)ga^DQF$?S(x%KDIFO^rF3t?zBWb zPK_NXUZF^t!!{d$#tm_)mzSn$XW^C5w^F9?fJb(j?~*p|&mYfYQjzD<{P~=?qzw>! zubF-RkrPzG0)qT9zbwlI(^miL=Evxft|$KUF{T!sOY@g69vcCOQsh#?q0e}Od#e$k zlGTbxvq8Fg<;ia=^63}3O`Jl;Sl*R%5Zghfid5XVzFvA`3mQcD`a%g#|gFE|#FnV&$Q64}6!D!0rhJieq&*(8$?<&q zRj1p7_T6`RZv%!LeLWWavD<#E(S>??(0`J!Fi}raR_XYY;bkod-@0f%0|~&z+D|6^ zBKP9=gxI*g1c)}-ud>umJgk~``~LPxY0hm)j2oaqB!>I)aejbkFM{|!0KQl_*+j4* zkU&S5tXEQ;(dw>k^B2khN|W)PQuMe_&T!4%OPk4V6U?wH+|>}(O!vOxf z+y$n(bIC4Gabn&AdXtzb$*EfZc%L6_+!&t((^c)T;MoO{^#fZn`cvkG5#%Lb!9u!8 z6mxTh8%J$)D^>(>#tX+O$=g1sv@}s~K13ydn3Y(7V5gCD_auO8F)sB=BbMayuG>tj zoc@=w4<k4v9d8y%ayf)>j=u5h}lRi;!s?x{*I+elP^Pc?cpsykOOoF!Ngns~~Eqs6Mkq+Ez zV1Vx_ONP745+7+UeI|hiZcoUQ&W=<$$RR-lnW6jDA3l{B>jb=LzO&(87Vkwp+&sJs z+R^#%WY3CjUdA%g>3#nUfa&&*?th(vfO3n&&mDK~+S{We@loHMM}{%DI!A{$a_~BLtn(Dy}-+1g4Fi)}6+p;DI(D9j;V* z|5%~(WAjt*B6%M@ohfFA5h)8*W z6Faw{Iwqpe$YtpPzWAWd4@Yfv)Rq*fcLO9HS0x;WHki}sqzh>55kqxk1PN6-@M!yE z@V7e#z`D+>@1U+dfcK))5qf;)UeBmJxZY**uNB-s%bM0YJm7o|E_Pj@$U0c8#(!Va z2R=9}Wu&_ZNkRlEi0}b#b9-Un8}oUNh$JuI>g_M7f5d8`zP$)R!q!2&-ybC&OkJXJ z*=?I4`V7Mea|^#o`*xdCSXsZ->+0*9*g@dmx&2I`Es$~Y0OZ7`6--G)j(Y%_GF_kw z=lvVmEhsA&-<~FHc5N2{#Ic(feho_^e1DgDA&dcytI|y7T$cH?3qD{!aF=rcyp1~U zaX;7ZH!He=v8tNvxZ5#1Ancm)jSb8DZ?(wKB~J6k36Bjp9$Yt1Vash1v{)q(*U|8Xb9m%eWpv|BIjbsPe$?H=oSjC8#rz9(>cMC2c zr55q(!m{?kAN6Dg%1mqXjEW7~cjZRYy-Iqayug)&v@>!4PksW7|h&T?*f6B%BM`gKwp1u#&qrWk#~HR}1x7)w7SZ zLus)?Ezty+O^W#{ii(TMiWtho>jP)7(d3P0bxygIuRfKUjEGLyT8WZcA4TG=P0nGY zLpS^(J}Znsm>hkOoMNp*Me(v?X6o^O3B^n|$SS4AF z5;_)0|3F5eQcN@*q76=Op+jKFgo9Sg(Vnf4fGX_}eT>pAuHsR=6sQtWfxxS2pJ*^ITsW zCX?ye53BR9<4S`sD{kQeUlT=XdtQ8=K^kS@-m)g`+el=o%lq%bq*RvzWUT}QFQ+~D zhjTfT<4R!@3FNHBOTOJKGbzrgX!-d(j#6&XMT&TXRrBdX&uw}J$8Xw9=(;;!Lrjv# z5KSOi?I=O#CEQJoP9d6hi2kZ>YZTgp^PBcrSH89ckW~98L2Cw{S(3Z*zD4APmse{kYEYWCgP}^}>!O#bm|U7^YuUao@jDT~ z*}V<#<(-_RYV_%7s5q4=hDR7 zUjK=U&6(0d?asP-3j&9}1>nO>@wnmv?wtqD_R7Wez7_!RpZI5bQai+dHWym-y#CmD zsSpAEf;s;w_IW8aCFyY<^n=q0@-7(6rx-unbQj%uU|ek+*9b>C#pP7-w&GajeXf}N zh(9YeXlng^j}Son<(u(pJavv)#Q>@$kHQ7?u#9K6sa@}UZuI)l?CX+(jcT@N^vvaa zzgeZ9E&JZu*+Z;auXrv#I9LT-jW(%Sd&4;;&LgXHcHXe1Q(w~BOjfyhLTn?QA?d}C ziau>57Z);pz7MQR=~%{dR@rI>mwXY2CaexIO9sk}Cz{viRt0~R(pP<;JlNJjb-gw3Zd~O@cN{6D6sVXm5eROJt&a)VkHn zj1=;f@J*E%70;K5(2~!U+bJqVx!7rEh?HBh&Pn?4-der_XT2Fuj-mOGlT}1FxPTP* z$rM$`^PyUQe}6pa0(B>x#fF6m@;*?eclz=&-?JPC=}gRXPv}ILlDh0XV)Ohb$}bfs7Os8TCByTl4aix` zzw5uW+$n8rY4%+a*sumP6~9bh9|ML&p(Y3A;LVj5cuE_+b1!iDV*hbrCe=W6=DjlP zKmnKTEea36jyeKq6sXvlEYQT8yTyPM8kAlWF1}X&2$8(Yz&Au} zmD`)J%{R!`z7@ozRt8GGL5-c(2zshLq@~QN!?OKwSQ`@ZN5{rMJ}>O$6OeS4oa>`0`p0O5+i=!vrLuQ*9W%W z30t;aPlx&|5E!o9l?Sqs)>i@YmiN(CU#TjqzjWoz&hQkdUfRu(usNh;Q#=Q}f;h>y2F79@_5N;B4(h1)%daJZ=-ZUFdo(IxTECpN0&iiE#m$9;BfbN5a zmz8+H;fTwloFC(->1uQ~x4P>*vSa-w{WFNcKiL%0cc||n9)ON$8@Fr|kb--zX82hV z3?6XSU}@A5hp*Tx&|6Z0-4qEwUhwIm);Q;VXIQ+iD8q2pnlM+$tiEhpc7Dy?oGI1t z)=XmHC%O-F{!#NQ>|p)M@y4s- zillJ#dR8efp2(ZmV8S5{Qc!x_d>_#&$-3I=}Q<51F5=U8wn(t8o2J*F=T&T*E{10~}u zCXpEvNyRP_&DXQS^E!^(ySem5PVY3=#;8#TRpXdF8!NkWr*IVbU$SgK%s0ie1 z1Qx{`_vnSI|0$w<8cVO&bjw7v1)cy98AU>}1ccYJiXY{gFF`EUjY9ujSHPbT=>5|( zAwn5+R>nR1v){DappO3sEx!A03e_o~lw4chE3d6{Y*!hI4Y>sJf@7Fz$XgT=CkJ0d zMsPnAFeXzn_ovG@Z}MLL@{N?17uSB#YZ)FgyKe2W)xZ5A*xy&E-n#NI6MDYU1s%|C z`BQOnr_-eJ9aU?zRH1j0~ z!Oxe=bc-SDp3%cyrUY|jDV~NM8V@iU>KrJ={m-{Q6zDMnz*V)QvYK6v;Z%?9hbmTr z&ddk$h@Qe^Ieg5HgsIb4VZ(@#-JmdK-`n^q3LH2Ykx=0t^b$*JaV{46%zG<7tNXH_ zFa?cquF+OY9h4cE@p9Do^5>oh7N;^r2vpHy%e(~>)c>mnN!Tyr{X_-x~1CVfPkkMd2$!Ufu7o zbe(eabst9mOJ&K5fitt7_0`l~&)``NJ=^l7falN0x{E1|Hu=2XberN$K zev^@x#^pCgWq*g$J8jIgEn9Yho@DyvP5&81nCH%wS4N~xBi>{G%=35_%=6n#8~4X3 z;Lev}5f!d~vDJR?s?qD)0@7(9+HgkHGFyxYDb#pHCe|1*Rl75otE7{dyd(#%NH+Q@j!K>Se#8Q?$-UbjYtrXy-Y6)==Kx1x@ zR_jVSzD+BwY`+0IWTDMM<_E4TP2To$5M%6t5G+YbMtLBFfY{ARut4c{g*y2z&dDuwbx0{QnrNYsY`~ zOZk>78t2KFq+PG$0t*TSDa^+sZtH_7N?b``$PKotE-g@`IR+zVnyzO_Q~@ne1s=x| zv|4T2#;6onhj_pib>`4Ele90wxV802r^39+4vaKY{MG4(%L%gc(KiWWO-rFU%g`Tt z$9bf6Txl(9Kl9Lni!}EuN~7+CM<=}>OufaEKN}fHi3{vzF1M+=WMD?>b$usy$UQD_ zaWIRvAZkUx4H;+`0V80$!>gWy8@I(u2&8cZphuAIaYZsh8o6%#1y9YWm18~U7P!tg z<7PoxP3^i*u2I()*gOh-TyzmlzAM+%i2)o6AtGT;uk8%jlEEa9?k_fjsY+tfaf=7D zLp~WjKHYN1gGtu&8Q>6&?eA|&qpim)EFSi4f-jfgzj3@Y1F2m!Li&#b(&y!j0Ks zoNL~*Sb4#cvX@#m%Zpx>szGL$09Bqr;gNpq(iHmTI={>GYJ*c1A4i2gBX?% z>W~C4V67%$ zqO|L;+c06!_kDjE`?lCpB^{RW&BoO?A&s{ofMd<*XREua51;b{93+kn>YWBYvTW}lSnb7xo_rv21&Di zd$RIy3~Hu{g^ozM}7JeZGA5;u+;Cmr=-W6}p1M|-Kb z8-e^-X&p8R?Lc;Qc{}^&$?S68HCEbq+`E`dtplaD_qZ{z_#NsTEaQ-o2;5e(zYzg9 zF=Sf8_{4DVW$Mf-3KiIfC!+(4#2yaVw2AkMU5&M*xINyI3 zC1x1i^#jxMrvXIQ7tQkXhquio2868C3JzX9r}_2pkVP6QK8Id&j{!dQ_}t$gOrXS zg>lZ%K9cR#%T({P{Xg|1S^g<*QVv|Sq`9Y)f(N^{)@iHcj7n`=NmNixmaHW{$g+Qt zfh_xGK1RjR>pw64UZ6#)z82C9_2qQ8p^#@FQ{0x2D&N+c593q(8D~=)LXQQEOSs|xbcpb!(xJz@CUh601A{>K zLrkdcOYJ)!biASFZ=mT%jv!(VASEMJ>M=C~mVzUle;cr@w8PMj^F;)7nb*;K%cDAH z&pRbau^CWz0f-m^tKwloZXc*hC5e#$)`kFl*#CT&iL(`DWtgAcnbSjgiLy?j8^bRs z-hL0@73phnyfRgx*++sNFRd87O1--~xc6*`7tomwp|8GJTo@wdC6HQg=ccUAlR+nP zajTwTp}z5SEaISWvT8zKX13q!0f!+;DUhA{En6GwT*lw>l)R07{RE9)4qdnBDqa6w zsS~@v*NYahYB#?D(46Kv8v8Srt?TYA26Kjv(g1MsqImtExh2;z`Jo5Z&LMbStqR>D z;xh1H%YKnXl_u*N{TF$V%u;kaymN(MWENbeQE7}#$7-I@g6MCV9`svil&}m~q-%mk zeB*eI`7>ImzbX?uL^KlNJG)CCHJ->v-C>wM8Ox;+DuVc6_^*e3*r5Wr60RdCnP=rgE}M-%YC{U~TL3;qqZ z$5d~+cVpSG3NIkfQfl*W|IE3GKmg8&ix91^wO+5e9<9>lY?sY(VGc)YV5yL*NppK~ zFyDrD1qzT_BQ*62NSgi<)8#ZBXWVcU#|0hQ_n;q#?MzW#)jAF^-1l`|z#L#z6O zU0I;ksE!DYcy8gcUk?tj{IRB2ZuZ7?RhSR*VS({}{(DB9m=4Wo42=ynW zPLA(T^OpzJs>{AK<{JiJdHP<#n_)YOY-BfQ4ma$dAY&7^!A))V9D7H1ckXh@TE{A^ zZZcCon#Bohhcm7N4RDj`azWYL^M6(QR$hly`;~>SY(V_lt^W6IL3ey>b`cM@FvDw> zsE5GqYru~uDIket^iPQvbQ5``M4YR%Tpk^4GbLx{suyl1t zeeC22oN69ZQW}-1<1Q$?<2T{~T%a&J;f8 zAvv*y+9KI5vN975@S%^x1;MZtf=aHfv0-%rD@^__T}1{_^v@u!;NImoCL=&2t48^f!M#ZzsC1Kc zyWP6dXNd&ae5=X<;pOX<5^FrjmX_-@$NymsC@!8nFN&I6z8v1?_i{^8eXVdr%KmCf8ZN>R(DmG1& z7z+Xd@aJ`ih(b4<;&5P;ozD{QIrY{5+k;q^dCyEO2E&%0Ha}y*SJAhxARMcpDZFPd=6T`GfLjsGBj zVNoXbGZ&d?F~0{>%Z9VRb_&uOl%-h$i$Lu{8qfbR0>HUEqDfDKw`1h5;CmmeHGD0( zj{Tf9pvohCO0Pd%6Xmsaq$l$w4>fzA!LrC3;(Oouk2E0WaWW=s1Kie427~bbTnK~C z_skI^Hflnf7c@>M8VndR>~y5909vR@!@hlyE67Uczzm=1^h_H^#!HBd_nR)Nyl{K7 zVjW1n00=ON^3~Ble$m`j)lGS-)ki4ld(XThw5>UcYJ(O!|9?AM>*q`AT&!%{dxZET z%S4aBq{}ZK+Mtl9?>7pG?tUq`;MXTcM>t!mEh;=6yn4bjv<-9 zprpaxG3#a7$kKC6CB=-F4*NX5egon{aUBx3eN<5hoYp)u!?6yUsu6hb35wgAz6^}* z!%q=IRFf)vQ7Y?3vrlp0w?@!fM1q3-tD)AuG-!xsQE&IL<7r;wJlpW5t;}GU?C^%{ z+;33qEl>>p9{;QFfU%7;1V|qGEcdyw`wAuPpbN$*`&y>2uC!k4sup!+Ew>WoBq6j~W8e*GM;e99TIi4A-> zFV>kYlEkr(U_$8V(S+^|%BBj!J2M#Kb;!57+C&K}7|bx6L?G%(5K3-_^>Sx785EB- zS=v{OFP!y}6_a@Q=%1UDVibL#H9rLkvn*f`>1%Bc9Pu1+9Jq$6)< z{;JY`*nToK|B|qTT*r04SJG0HOdZpHu3AO565vb8F= z9K89^?)SS(rukv{(w{(G$t%dr)2aWqxc6e8u|-uKVGgx^>GECEViLygO%ffZEoYG! zZU0svoZ}g;3=#Z_owa3;MTLz<&Dr=pKVwD9PVo`H@4ws{e#j2rS-S{1#DV6vR2zRG zv1fi73!dwHQ+SEwT2HP6?7O!il-Yvbv*;6byAO5q46pYl?MtHZm(tJ!uhac5Z4O$z zCn{7ztvL^j(GpW^xes1NW+l zS>E0~P2{Y;d9C|lRR6xE711^gi~o5%5~J9v+n&Iy5(4Jfdkz~mZKKp8+&{0-Tf19B{L_n~{RKAnduVHtAE zSC@m09;=R3tzV>|LM}7ZUpD(*y5~FC#8NirJ9{DVC}VpMNlb0&TPP$4lRF15J@ccT zg{tC#%H!Ly;mUXT$B1g{)k6m=+hiRX)xKA3aZMNs1t8+%1Mi_re>&MB$##i}G)9Pe z^$rTD2bLo{*}K1bnmzL?ZHl8iDNYWmN=Ra#?8gOctb}19=QK&ywOop?bXnd@r(EC2 zR(4-cxdW@5#)da&YBdM$|QcH!t=NAKm0lV zT2zJPm%OF=7dO#)`LFruDJZA(@Zssd!D6P3J`nDt(q2rKbYC79Bmu6+lyq1@t&6Jc zTG(90o=jKi&OBECxQA5=fRAu;*GmlWE(9XYJL8#mwN3un>fB?Up! z2qkBne||0`_c}Y&R__)_>zA;aT}gUoxdyV#L}BM^*`wkRUdjc+LqY!}a<{_D(RIHb zq$x`d;dpg+I^{05+F<~C{8f7v+fZrWDRP>uJ*`hJr#>DkOjC5WL5SoxS)++0I|0I` zN7fHKVHYRg7c&z}T5(Yu70o4d<^0Hmu`chu?Xg-93x&VyKc2QrjqS4FG+}B1X|kb5 zqkX)M-Fy$XrT2UWc8;3H%EB^+RHxxq!p_gLak^FX0{Gz4s+@Gqh8TjFYD($94Ai~^ zpvQY@(*5n$&7UU?%BKs^C)%HrALsQRe+Skx^tML{&6H{cam>BP@@GiAfNo>E8@{7& zLPm!(4m)S0lq6P8n>X#ZjwL4X^9ZTabJgG4rFz6%TgaqFUjJCkL~IKPuekdwhW7JG zLg5Bf_|JJ|Z_Jq%pPH@E)R9L>@`jej9Y!?~8FFRh?itaSEOp`aPw*tuDcnNz2V7kG z%sm}>>JHf!Hf9!vXLnA*Qzm=%*AJC7X(%KuCc?V3Olx~!MD&}fu&)uCrYYvyjD+te zkj%=@jJ~va#u)Zho;9}I9lKYoF2-SBoOF-9w9a>41aFis6yTQQ&MB}+KN)1&V#}hm zK7l96yN71cTi%Heft>Y>v=7u`&sF*!bsat>oTFh0d3V9wtS8cPNyfLA!(w*HqAH=Z zbOiMW^4`&)$IpG7p>1tu@h?_y!}dp)2Ki@bAgR8XpcEC)v6WSTDRJ%PV9yAi!V*{2 zS?r7h!3x9>fjgg>9nm&_HQsn>XLmmFTu7%a7mrZ$RK-H;$d$RhH+ZL4HnIv*BKU|` z`G^TuKXxjOmTW@@dNrN*+bt8me=gaXreJUM9&BjhDiONscf)^_I<>1~JkKKa$|L#l z;^+L+p|SsP?&WR&Ia<~(MoBDlEi!w(jWPvoH>J1YS(5gr0Rb&v(UXEIrsN`aA<;vN z=VEB)-pK(Vb6K-7JsOhG<6UX9-Q(`oBD-fWX+6fBSz8C@G$|$@%Aa??pc}DC!8;Sn)y5v))f`72JC)Pd zF5hfh;J{0X3zDC?EZ^h>D*OkE>d!r?crpBK^pf{%CfTo`0GRfJLaX!(JYP^LMF+Np z^C9EDB;&3yl2_PUFF|UbXqJsvfxro3rL4Xk-eT6$oGSTzm)Oo6J~lV(oqtt6H~cs< zgkO03cDfBpH`!`$o>;X*AUpiKB>d_HM$-h+dkeM&Mmn*22{WHfOWxX07W=9SGXcpi z-Va=D#}0n*Y7LJMTvXq!n064v-T+Gl{}y*G-R#ZQqcUV`EnfMZ7*Xqo80K4brCBD= z#(JvlCb5v!YhsE}YR#0XV9)xeV&(RJ_k2gI7k!q-_xxVNwc_?OM6xjL z?6`L0E2mX1cK44FYoS`_X+LAB9)q+?gs1e`cQ6xpb?q66QPh7fjFrrvX_G9wPWhz6 zpBQxi-Hlo+1IjN3VB9nE%(R{32p8LJq6j;gF80Ihszdlf@XqUVzg2D0d**J6{pI_r z?ZYalHvM!O)vm!?GU2o4-|I)bU>(qZ2y_2yMn4V~Np1)N?Zx!nQuEhs8 z2t6)_+g_cC1`-PxZ`z#bc8G-}lK4dWE}lhW?fi{XG0z}nc-`YZj=O^{O#6a&m;Wy* z?C&J*p?)XTablJ^C)Aer-jDuMzlVJ}o>d$X&CGXXMVGRFm*fA*Ee9*rQ?Ov1<4Jh# z1WlADR$t0Gs`oFMl@IPq7NSNU!~f2d|Kl)vL}zdLuebj+BA# lK-Spf8F6D<$@x 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 Date: Mon, 26 Sep 2022 22:05:03 -0400 Subject: [PATCH 3/3] convert graphviz diagrams to png in accounts protocol :doc --- .../04_accounts_and_permissions.md | 65 +----------------- docs/04_protocol/images/accts_perms_auths.png | Bin 0 -> 45375 bytes 2 files changed, 1 insertion(+), 64 deletions(-) create mode 100644 docs/04_protocol/images/accts_perms_auths.png diff --git a/docs/04_protocol/04_accounts_and_permissions.md b/docs/04_protocol/04_accounts_and_permissions.md index 07cd7afc..44d2db97 100644 --- a/docs/04_protocol/04_accounts_and_permissions.md +++ b/docs/04_protocol/04_accounts_and_permissions.md @@ -9,70 +9,7 @@ An account identifies a participant in an Antelope blockchain. A participant can Permissions associated with an account are used to authorize actions and transactions to other accounts. Each permission is linked to an authority table which contains a threshold that must be reached in order to allow the action associated with the given permission to be authorized for execution. The following diagram illustrates the relationship between accounts, permissions, and authorities. -```dot-svg - -#accounts, permissions, authorities - accts_perms_auths.dot -# -#notes: * to see image copy/paste to https://dreampuf.github.io/GraphvizOnline -# * image will be rendered by gatsby-remark-graphviz plugin in eosio docs. - -digraph { - rankdir=LR #sets rank direction (left to right) - newrank=true #allows ranks inside subgraphs (important!) - compound=true #allows edges connecting nodes with subgraphs - - graph [style=dashed, nodesep=.2, ranksep=.8, splines=ortho] - node [shape=box, height=.25] - edge [arrowsize=.5] - - subgraph cluster_accts { - label=Accounts - rank=same - "@alice", "@bob" - more_accts [label="...", color=invis] - } - - subgraph cluster_perms { - label=Permissions - rank=same - subgraph cluster_alice_perm { - label="@alice\npermissions" - graph [style=solid] - active -> owner - family -> active - friends -> family - lawyer -> active #disable permission sibling lawyer (w.r.t. family) for now - } - more_perms [label="...", color=invis] - } - - "@alice" -> owner [lhead=cluster_alice_perm] - - subgraph cluster_auths { - label=Authorities - rank=same - active_auth [ - shape=plaintext - label=< - - - - - - - - - -
@alice active authority
threshold
2
accounts/keysweights
bob@active2
stacy@active2
EOS7Hnv4...1
EOS3Wo1p...1
- > - ] - more_auths [label="...", color=invis] - } - - active -> active_auth -} - -``` +![](images/accts_perms_auths.png "Accounts, Permissions, Authorities") The example above depicts `alice`'s account, her named permissions along with their hierarchical dependencies, and her linked `active` authority table. It also shows that a weight threshold of two must be reached in `alice`'s `active` authority in order to allow an action associated with the active permission to be executed by or on behalf of `alice`. diff --git a/docs/04_protocol/images/accts_perms_auths.png b/docs/04_protocol/images/accts_perms_auths.png new file mode 100644 index 0000000000000000000000000000000000000000..1c18271d436c52b973f23338e475417446d18f51 GIT binary patch literal 45375 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 g(EohzP1NsWlsPBwxL