Facebook
From En vagyok, 3 Weeks ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 69
  1. abstract class FabricNetwork {
  2.     contains Organization[1..*] organizations
  3.     contains Channel[1..*] channels
  4.    
  5. }
  6.  
  7. class RaftFabricNetwork extends FabricNetwork.
  8.  
  9. abstract class Node.
  10.  
  11. class Host {
  12.     contains Node[1..4] nodes
  13. }
  14.  
  15. class ChaincodeInstance {
  16.     EndorsingNode[2..*] endorsedBy opposite endorses
  17. }
  18.  
  19. class EndorsingNode extends Node {
  20.     ChaincodeInstance[1..*] endorses opposite endorsedBy
  21. }
  22.  
  23.  
  24. class Channel {
  25.     contains ChaincodeInstance[1..*] chaincodes
  26. }
  27.  
  28. class Organization {
  29.     contains Host[1..*] hosts
  30. }
  31.  
  32. pred collaboratesWith(Organization o1, Organization o2) <->
  33.     participatesIn(o1, commonChannel),
  34.     participatesIn(o2, commonChannel),
  35.     o1 != o2.
  36.  
  37. pred peers(Channel ch, Node n) <->
  38.     chaincodes(ch, code),
  39.     endorsedBy(code, n).
  40.  
  41. pred participatesIn(Organization org, Channel ch) <->
  42.     hosts(org, host),
  43.     nodes(host, node),
  44.     peers(ch, node).
  45.  
  46. RaftFabricNetwork(m_network).
  47. Organization(m_org).
  48. !exists(Organization::new).
  49. Channel(ch1).
  50. !exists(Channel::new).
  51. Host(h1).
  52. Host(h2).
  53. !exists(Host::new).
  54. EndorsingNode(node1).
  55. EndorsingNode(node2).
  56. !exists(EndorsingNode::new).
  57. ChaincodeInstance(cc1).
  58. ChaincodeInstance(cc2).
  59. !exists(ChaincodeInstance::new).
  60.  
  61. organizations(m_network, m_org).
  62. channels(m_network, ch1).
  63. hosts(m_org, h1).
  64. hosts(m_org, h2).
  65. nodes(h1, node1).
  66. nodes(h2, node2).
  67. default !nodes(*, *).
  68.  
  69.  
  70.  
  71.  
  72. scope FabricNetwork = 1.