-
Notifications
You must be signed in to change notification settings - Fork 2
/
hyperledger-fabric.dot
100 lines (71 loc) · 2.37 KB
/
hyperledger-fabric.dot
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
graph hyperledger_fabric_1 {
bgcolor="#ffffff00";
overlap="scale";
layout="fdp";
start="2";
node [shape=circle];
subgraph clusterA {
node [shape = circle];
label="Organization A - Private Channel";
peer_A--peer_B;
peer_A--peer_C;
peer_B--peer_C;
}
subgraph clusterZ {
node [shape = circle];
State [shape = doublecircle];
Events [shape = doublecircle];
Committer [shape = doublecircle];
Endorser [shape = doublecircle];
Ledger [shape = doublecircle];
Chaincode [shape = doublecircle];
label="Organization Z - Private Channel";
peer_D--peer_E;
peer_D--peer_F;
peer_E--peer_F;
peer_E--State;
peer_E--Endorser;
peer_E--Committer;
peer_E--Ledger;
peer_E--Events;
peer_E--Chaincode;
}
clusterA -- CA_A [label="has" arrowhead="none"];
clusterZ -- CA_Z [label="has" arrowhead="none"];
clusterA -- Orderers_Pool [label="3 relay" arrowhead="none"];
clusterA -- Orderers_Pool [label="4 batch" arrowhead="none"];
clusterZ-- Orderers_Pool [arrowhead="none"];
application -- keys;
application -- clusterA [label="1 proposal and 2 submit tx"]
participant -- application [label="0 enroll"];
}
digraph hyperledger_fabric_2 {
node [shape=circle];
layout="circo";
rankdir=LR;
subgraph architecture {
Orderers_Pool -> all_peers_in_an_org [label="forward and commit the block to"];
Orderers_Pool -> Orderer_1;
Orderers_Pool -> Orderer_2;
#Architecture by components
CA -> New_Peer [label="auth" color="green"];
Organization -> Peers [label="has" arrowhead="crow"];
peer_A -> couchdb [label="every peer has" arrowhead="none"];
Orderers -> Organization [arrowtail="crow" arrowhead="crow"];
}
subgraph workflow {
layout="circo";
node [shape = box];
#SDLC workflow
developers -> Chaincodes [label="build and deploy" arrowhead="crow"];
Chaincodes -> smart_contracts [arrowhead="crow"];
smart_contracts -> States [arrowhead="crow"];
States -> Transaction;
Transaction -> New_States;
#Transaction Workflow
FrontEnd_Client_App -> peer_A [label="submit proposal" color="green"];
peer_A -> FrontEnd_Client_App [label="proposal response + RWSet" color="green"];
FrontEnd_Client_App -> Orderer_1 [label="new tx * RWSet"];
all_peers_in_an_org -> couchdb [label="validate tx and commit block" color="green"];
}
}