äŒæ¥åãã®ãããã¯ãã§ãŒã³ ãã©ãããã©ãŒã
ããã«ã¡ã¯ã芪æãªãèªè ã®çãããç§ã®ååã¯ãã³ã©ã€ã»ããã§ããã§ããIBM ã®æè¡ã¹ãã·ã£ãªã¹ãã§ãããã®èšäºã§ã¯ããããã¯ãã§ãŒã³ ãã©ãããã©ãŒã ã§ãã Hyperledger Fabric ã«ã€ããŠçŽ¹ä»ããããšæããŸãã ãã®ãã©ãããã©ãŒã ã¯ããšã³ã¿ãŒãã©ã€ãºã¯ã©ã¹ã®ããžãã¹ ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã«èšèšãããŠããŸãã ãã®èšäºã®ã¬ãã«ã¯ãIT ãã¯ãããžã®åºæ¬çãªç¥èãåããæºåã®æŽã£ãŠããªãèªè ã察象ãšããŠããŸãã
Hyperledger Fabric ã¯ãLinux Foundation ã®ã³ã³ãœãŒã·ã¢ã ã§ãããªãŒãã³ãœãŒã¹ Hyperledger ãããžã§ã¯ãã®ãã©ã³ãã® XNUMX ã€ã§ãããªãŒãã³ãœãŒã¹ ãããžã§ã¯ãã§ãã Hyperledger Fabric ã¯ãããšããš Digital Assets ãš IBM ã«ãã£ãŠéå§ãããŸããã Hyperledger Fabric ãã©ãããã©ãŒã ã®äž»ãªç¹åŸŽã¯ãäŒæ¥ã§ã®äœ¿çšã«çŠç¹ãåœãŠãŠããããšã§ãã ãããã£ãŠããã®ãã©ãããã©ãŒã ã¯ããã©ã³ã¶ã¯ã·ã§ã³ã®é«éæ§ãšäœã³ã¹ããããã³ãã¹ãŠã®åå è ã®èå¥ãèæ ®ããŠéçºãããŸããã ãããã®å©ç¹ã¯ããã©ã³ã¶ã¯ã·ã§ã³æ€èšŒãµãŒãã¹ã®åé¢ãšåæ£ã¬ãžã¹ããªã®æ°ãããããã¯ã®åœ¢æãããã«èªèšŒã»ã³ã¿ãŒã®äœ¿çšãšåå è ã®æ¿èªã«ãã£ãŠå®çŸãããŸãã
ç§ã®èšäºã¯ Hyperledger Fabric ã«é¢ããäžé£ã®èšäºã®äžéšã§ããããã®äžã§å€§åŠã«å ¥åŠããåŠçãèšé²ããããã®ã·ã¹ãã ãããžã§ã¯ãã«ã€ããŠèª¬æããŠããŸãã
Hyperledger Fabric ã®äžè¬çãªã¢ãŒããã¯ãã£
Hyperledger Fabric ã¯ããããã¯ãŒã¯ ããŒãã«ã€ã³ã¹ããŒã«ãããããŸããŸãªæ©èœã³ã³ããŒãã³ãã§æ§æãããåæ£åãããã¯ãã§ãŒã³ ãããã¯ãŒã¯ã§ãã Hyperledger Fabric ã³ã³ããŒãã³ãã¯ãDockerHub ããèªç±ã«ããŠã³ããŒãã§ãã Docker ã³ã³ããã§ãã Hyperledger Fabric 㯠Kubernetes ç°å¢ã§ãå®è¡ã§ããŸãã
ã¹ããŒã ã³ã³ãã©ã¯ã (Hyperledger Fabric ã®ã³ã³ããã¹ãã§ã®ãã§ãŒã³ã³ãŒã) ãäœæããã«ã¯ãGolang ã䜿çšããŸãã (ãã ããHyperledger Fabric ã§ã¯ä»ã®èšèªã®äœ¿çšãå¯èœã§ã)ã ã«ã¹ã¿ã ã¢ããªã±ãŒã·ã§ã³ãéçºããããã«ããã®äŸã§ã¯ Node.js ãšå¯Ÿå¿ãã Hyperledger Fabric SDK ã䜿çšããŸããã
ããŒãã¯ããžãã¹ ããžã㯠(ã¹ããŒã ã³ã³ãã©ã¯ã)ãã€ãŸããã§ãŒã³ã³ãŒããå®è¡ããåæ£ã¬ãžã¹ããªã®ç¶æ (å°åž³ããŒã¿) ãä¿åãããã©ãããã©ãŒã ã®ä»ã®ã·ã¹ãã ãµãŒãã¹ãå®è¡ããŸãã ããŒãã¯åãªãè«çãŠãããã§ãããåãç©çãµãŒããŒäžã«ç°ãªãããŒããååšã§ããŸãã ããã«éèŠãªã®ã¯ãããŒããã©ã®ããã«ã°ã«ãŒãåãããã (ä¿¡é Œã§ãããã¡ã€ã³)ãããŒãããããã¯ãã§ãŒã³ ãããã¯ãŒã¯ã®ã©ã®æ©èœã«é¢é£ä»ãããããã§ãã
äžè¬çãªã¢ãŒããã¯ãã£ã¯æ¬¡ã®ããã«ãªããŸãã
å³ 1. Hyperledger ãã¡ããªãã¯ã®äžè¬çãªã¢ãŒããã¯ãã£
ãŠãŒã¶ãŒ ã¢ããªã±ãŒã·ã§ã³ (éä¿¡ã¯ã©ã€ã¢ã³ã) ã¯ããŠãŒã¶ãŒããããã¯ãã§ãŒã³ ãããã¯ãŒã¯ãæäœããããã®ã¢ããªã±ãŒã·ã§ã³ã§ãã äœæ¥ããã«ã¯ããããã¯ãŒã¯äžã®ããŸããŸãªçš®é¡ã®ã¢ã¯ã·ã§ã³ãèš±å¯ãããé©åãªæš©éãæã£ãŠããå¿ èŠããããŸãã
ãã¢ã«ã¯ããã€ãã®åœ¹å²ããããŸãã
- æ¿èªãã¢ã¯ããã©ã³ã¶ã¯ã·ã§ã³ã®å®è¡ãã·ãã¥ã¬ãŒããã (ã¹ããŒã ã³ã³ãã©ã¯ã ã³ãŒããå®è¡ãã) ããŒãã§ãã ã¹ããŒã ã³ã³ãã©ã¯ãã®æ€èšŒãšå®è¡åŸãããŒãã¯å®è¡çµæã眲åãšãšãã«ã¯ã©ã€ã¢ã³ã ã¢ããªã±ãŒã·ã§ã³ã«è¿ããŸãã
- Ordering Service ã¯ãè€æ°ã®ããŒãäžã®åæ£ãµãŒãã¹ã§ãããåæ£ã¬ãžã¹ããªã®æ°ãããããã¯ãçæãããã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ããããã®ãã¥ãŒãäœæããããã«äœ¿çšãããŸãã Ordering Service ã¯ãã¬ãžã¹ããªã«æ°ãããããã¯ãè¿œå ããŸãã (ãã®æ©èœã¯ãããã©ãŒãã³ã¹ãåäžãããããã«ãã¢ã®ã³ãããã«ç§»åãããŸãã)ã
- ã³ããããã¢ã¯ãåæ£ã¬ãžã¹ããªãå«ãããŒãã§ãããæ°ããããã㯠(é åºä»ããµãŒãã¹ã«ãã£ãŠçæããã) ãã¬ãžã¹ããªã«è¿œå ããŸãã ãã¹ãŠã®ã³ããããã¢ã«ã¯ãåæ£å°åž³ã®ããŒã«ã«ã³ããŒãå«ãŸããŠããŸãã ã³ããããã¢ã¯ãæ°ãããããã¯ãããŒã«ã«ã«è¿œå ããåã«ããããã¯å ã®ãã¹ãŠã®ãã©ã³ã¶ã¯ã·ã§ã³ã®æå¹æ§ããã§ãã¯ããŸãã
ãšã³ããŒã¹ã¡ã³ãããªã·ãŒã¯ãååŒã®æ£åœæ§ã確èªããããã®ããªã·ãŒã§ãã ãããã®ããªã·ãŒã¯ããã©ã³ã¶ã¯ã·ã§ã³ãæå¹ã§ãããšèªèãããããã«ã¹ããŒã ã³ã³ãã©ã¯ããå®è¡ããå¿ èŠãããããŒãã®å¿ é ã»ãããå®çŸ©ããŸãã
åæ£ã¬ãžã¹ã㪠- Lerger - ã¯ãWolrldState (State Database ãšãåŒã°ãã) ãš BlockChain ã® XNUMX ã€ã®éšåã§æ§æãããŸãã
BlockChain ã¯ãåæ£ã¬ãžã¹ã㪠ãªããžã§ã¯ãã«çºçãããã¹ãŠã®å€æŽã®èšé²ãä¿åãããããã¯ã®ãã§ãŒã³ã§ãã
WolrldState ã¯ããã¹ãŠã®åæ£å°åž³ãªããžã§ã¯ãã®çŸåš (æå 端) ã®å€ãä¿åããåæ£å°åž³ã³ã³ããŒãã³ãã§ãã
WorldState ã¯ãåºæ¬ããŒãžã§ã³ - LevelDB ãŸãã¯ããè€éãªããŒãžã§ã³ - CouchDB ã®ããŒã¿ããŒã¹ã§ãããããŒãšå€ã®ãã¢ãå«ãŸããŠããŸããäŸ: å - Ivanãå§ - Ivanovãã·ã¹ãã ãžã®ç»é²æ¥ - 12.12.21/17.12.1961/XNUMX ãç幎ææ¥ - XNUMX幎XNUMXæXNUMXæ¥ãªã©ã WorldState ãšåæ£ã¬ãžã¹ããªã¯ãç¹å®ã®ãã£ãã«ã®ãã¹ãŠã®åå è éã§äžè²«ããŠããå¿ èŠããããŸãã
Hyperledger Fabric ã¯ããã¹ãŠã®åå è ãèªèããèªèšŒããããããã¯ãŒã¯ã§ãããããå°çšã®èªèšŒå±ã§ãã CA (Certification Authority) ã䜿çšããŸãã CA ã¯ãX.509 æšæºããã³å ¬éã㌠ã€ã³ãã©ã¹ãã©ã¯ã㣠(PKI) ã«åºã¥ããŠåäœããŸãã
ã¡ã³ããŒã·ãã ãµãŒãã¹ã¯ããªããžã§ã¯ããç¹å®ã®çµç¹ãŸãã¯ãã£ãã«ã«å±ããŠããããšãã¡ã³ããŒã確èªãããµãŒãã¹ã§ãã
ãã©ã³ã¶ã¯ã·ã§ã³ã¯ãã»ãšãã©ã®å Žåãåæ£ã¬ãžã¹ããªã«æ°ããããŒã¿ãæžã蟌ãããšã§ãã
ãã£ãã«ãŸãã¯ã¹ããŒã ã³ã³ãã©ã¯ããäœæããããã®ãã©ã³ã¶ã¯ã·ã§ã³ããããŸãã ãã©ã³ã¶ã¯ã·ã§ã³ã¯ãŠãŒã¶ãŒ ã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠéå§ãããåæ£å°åž³å
ã®ã¬ã³ãŒãã§çµäºããŸãã
ãã£ãã«ã¯ãXNUMX 人以äžã®ãããã¯ãã§ãŒã³ ãããã¯ãŒã¯åå è ã§æ§æãããéãããµããããã¯ãŒã¯ã§ãããéãããæ¢ç¥ã®åå è ãµãŒã¯ã«å ã§æ©å¯ãã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ããããã«èšèšãããŠããŸãã ãã£ãã«ã¯ãåå è ããã®åæ£ã¬ãžã¹ããªãã¹ããŒã ã³ã³ãã©ã¯ãã泚æãµãŒãã¹ãWorldState ã«ãã£ãŠæ±ºå®ãããŸãã åãã£ãã«åå è ã¯ããã£ãã«ãžã®ã¢ã¯ã»ã¹ãèš±å¯ãããããŸããŸãªçš®é¡ã®ãã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ããæš©å©ãæã£ãŠããå¿ èŠããããŸãã èªèšŒã¯äŒå¡ãµãŒãã¹ãå©çšããŠè¡ãããŸãã
å žåçãªãã©ã³ã¶ã¯ã·ã§ã³å®è¡ã·ããªãª
次ã«ãç§ãã¡ã®ãããžã§ã¯ããäŸãšããŠãå žåçãªãã©ã³ã¶ã¯ã·ã§ã³å®è¡ã·ããªãªã«ã€ããŠèª¬æããããšæããŸãã
å éšãããžã§ã¯ãã®äžç°ãšããŠã倧åŠã«å ¥åŠããåŠçãç»é²ããã³ç®¡çããããã«èšèšããã Hyperledger Fabric ãããã¯ãŒã¯ãäœæããŸããã ç§ãã¡ã®ãããã¯ãŒã¯ã¯ãå€§åŠ A ãšå€§åŠ B ã«å±ãã XNUMX ã€ã®çµç¹ã§æ§æãããŠããŸããåçµç¹ã«ã¯ã¯ã©ã€ã¢ã³ã ã¢ããªã±ãŒã·ã§ã³ãšãç¬èªã®ã³ããã ãã¢ããã³æ¿èªãã¢ãå«ãŸããŠããŸãã ãŸããå ±éãµãŒãã¹ã§ãããªãŒããŒãµãŒãã¹ãã¡ã³ããŒã·ãããµãŒãã¹ãèªèšŒå±ãå©çšããŸãã
1) ååŒã®éå§
ãŠãŒã¶ãŒ ã¢ããªã±ãŒã·ã§ã³ã¯ãHyperledger Fabric SDK ã䜿çšããŠãã©ã³ã¶ã¯ã·ã§ã³ ãªã¯ãšã¹ããéå§ããã¹ããŒã ã³ã³ãã©ã¯ããæã€ããŒãã«ãªã¯ãšã¹ããéä¿¡ããŸãã ãªã¯ãšã¹ãã¯ãåæ£ã¬ãžã¹ã㪠(ã¬ãžã£ãŒ) ãå€æŽããããšããããããèªã¿åãããšãã§ããŸãã 倧åŠçåãã®äŒèšçšã®ãã¹ã ã·ã¹ãã æ§æã®äŸãèãããšãã¯ã©ã€ã¢ã³ã ã¢ããªã±ãŒã·ã§ã³ã¯ãåŒã³åºãããã¹ããŒã ã³ã³ãã©ã¯ãã®æ¿èªããªã·ãŒã«å«ãŸããå€§åŠ A ãš B ã®ããŒãã«ãã©ã³ã¶ã¯ã·ã§ã³ ãªã¯ãšã¹ããéä¿¡ããŸãã ããŒã A ã¯æ°å ¥çãç»é²ãã倧åŠã«ããããŒããããŒã B ã¯ä»ã®å€§åŠã«ããããŒãã§ãã ãã©ã³ã¶ã¯ã·ã§ã³ãåæ£ã¬ãžã¹ããªã«ä¿åããã«ã¯ãããžãã¹ ããžãã¯ã«åŸã£ãŠãã©ã³ã¶ã¯ã·ã§ã³ãæ¿èªããå¿ èŠããããã¹ãŠã®ããŒãããåãçµæã§ã¹ããŒã ã³ã³ãã©ã¯ããæ£åžžã«å®è¡ããå¿ èŠããããŸãã ããŒã A ãŠãŒã¶ãŒ ã¢ããªã±ãŒã·ã§ã³ã¯ãHyperledger Fabric SDK ããŒã«ã䜿çšããŠãEndorsement ããªã·ãŒãååŸããã©ã®ããŒãã«ãã©ã³ã¶ã¯ã·ã§ã³ ãªã¯ãšã¹ããéä¿¡ããããåŠç¿ããŸãã ããã¯ãç¹å®ã®ã¹ããŒã ã³ã³ãã©ã¯ã (ãã§ãŒã³ã³ãŒãé¢æ°) ãåŒã³åºããŠãåæ£ã¬ãžã¹ããªã«å¯ŸããŠç¹å®ã®ããŒã¿ãèªã¿æžããããªã¯ãšã¹ãã§ãã æè¡çã«ã¯ãã¯ã©ã€ã¢ã³ã SDK ã¯å¯Ÿå¿ããé¢æ°ã䜿çšãããã® API ã«ã¯ãã©ã³ã¶ã¯ã·ã§ã³ ãã©ã¡ãŒã¿ãŒãæã€ç¹å®ã®ãªããžã§ã¯ããæž¡ãããã¯ã©ã€ã¢ã³ã眲åãè¿œå ããããã®ããŒã¿ã gRPC äžã®ãããã³ã« ãããã¡ãŒãä»ããŠé©åãªããŒã (ãšã³ããŒãµ ãã¢) ã«éä¿¡ãããŸãã
å³ 2. ãã©ã³ã¶ã¯ã·ã§ã³ã®éå§
2) ã¹ããŒãã³ã³ãã©ã¯ãã®å®è¡
ãã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ãããªã¯ãšã¹ããåãåã£ãããŒã (ãšã³ããŒã·ã³ã°ãã¢) ã¯ãã¯ã©ã€ã¢ã³ãã®çœ²åããã§ãã¯ãããã¹ãŠãæ£åžžã§ããã°ããªã¯ãšã¹ãããŒã¿ãå«ããªããžã§ã¯ããååŸããã¹ããŒãã³ã³ãã©ã¯ã (ãã§ãŒã³ã³ãŒãé¢æ°) ã®å®è¡ã®ã·ãã¥ã¬ãŒã·ã§ã³ãå®è¡ããŸãããã®ããŒã¿ã ã¹ããŒã ã³ã³ãã©ã¯ãã¯ããã©ã³ã¶ã¯ã·ã§ã³ã®ããžãã¹ ããžãã¯ãç¹å®ã®æ¡ä»¶ãšæ瀺ã®ã»ããã§ã (ãã®å Žåãããã¯åŠçã®èªèšŒãæ°å ¥çãããã§ã«ç»é²ãããŠãããã幎霢èªèšŒãªã©ã§ã)ã ã¹ããŒã ã³ã³ãã©ã¯ããå®è¡ããã«ã¯ãWorldState ããã®ããŒã¿ãå¿ èŠã«ãªããŸãã æ¿èªãã¢ã§ã¹ããŒã ã³ã³ãã©ã¯ããã·ãã¥ã¬ãŒãããçµæãèªã¿åãã»ãããšæžã蟌ã¿ã»ããã® XNUMX ã€ã®ããŒã¿ ã»ãããååŸãããŸãã Read Set ãš Write Set ã¯ãå ã® WorldState å€ãšæ°ãã WorldState å€ã§ãã (æ°ãã â ã¹ããŒã ã³ã³ãã©ã¯ãã®ã·ãã¥ã¬ãŒã·ã§ã³äžã«åŸãããæå³ã§)ã
åç 3. ã¹ããŒãã³ã³ãã©ã¯ãã®å®è¡
3) ã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ã«ããŒã¿ãè¿ã
ã¹ããŒã ã³ã³ãã©ã¯ãã®ã·ãã¥ã¬ãŒã·ã§ã³ãå®è¡ããåŸããšã³ããŒã·ã³ã° ãã¢ã¯å ã®ããŒã¿ãšã·ãã¥ã¬ãŒã·ã§ã³ã®çµæãããã³èšŒææžã§çœ²åããã RW ã»ãããã¯ã©ã€ã¢ã³ã ã¢ããªã±ãŒã·ã§ã³ã«è¿ããŸãã ãã®æ®µéã§ã¯ãåæ£ã¬ãžã¹ããªã«ã¯å€æŽã¯çºçããŸããã ã¯ã©ã€ã¢ã³ã ã¢ããªã±ãŒã·ã§ã³ã¯ããšã³ããŒã·ã³ã° ãã¢ã®çœ²åã確èªããéä¿¡ãããå ã®ãã©ã³ã¶ã¯ã·ã§ã³ ããŒã¿ãšè¿ãããããŒã¿ãæ¯èŒããŸã (ã€ãŸãããã©ã³ã¶ã¯ã·ã§ã³ãã·ãã¥ã¬ãŒããããå ã®ããŒã¿ãæªãã§ãããã©ããã確èªããŸã)ã ãã©ã³ã¶ã¯ã·ã§ã³ãã¬ãžã¹ããªããã®ããŒã¿ã®èªã¿åãã®ã¿ãç®çãšããå Žåãã¯ã©ã€ã¢ã³ã ã¢ããªã±ãŒã·ã§ã³ã¯ããã«å¿ããŠå¿ èŠãªèªã¿åãã»ãããåãåããããã«ããéåžžãåæ£ã¬ãžã¹ããªãå€æŽããããšãªããã©ã³ã¶ã¯ã·ã§ã³ãæ£åžžã«å®äºããŸãã ã¬ãžã¹ããªå ã®ããŒã¿ãå€æŽããå¿ èŠããããã©ã³ã¶ã¯ã·ã§ã³ã®å Žåãã¯ã©ã€ã¢ã³ã ã¢ããªã±ãŒã·ã§ã³ã¯ããã«ãæ¿èªããªã·ãŒã®å®è£ ããã§ãã¯ããŸãã ã¯ã©ã€ã¢ã³ã ã¢ããªã±ãŒã·ã§ã³ãæ¿èªããªã·ãŒã®å®è¡çµæããã§ãã¯ããªãå¯èœæ§ããããŸããããã®å Žåã® Hyperledger Fabric ãã©ãããã©ãŒã ã¯ããã©ã³ã¶ã¯ã·ã§ã³ãã¬ãžã¹ããªã«è¿œå ãã段éã§ããŒã (ã³ããã ãã¢) äžã®ããªã·ãŒããã§ãã¯ããæ©èœãåããŠããŸãã
å³ 4. ã¯ã©ã€ã¢ã³ã ã¢ããªã±ãŒã·ã§ã³ã«ããŒã¿ãè¿ã
4) RW ã»ãããé åºä»ããã¢ã«éä¿¡ãã
ã¯ã©ã€ã¢ã³ã ã¢ããªã±ãŒã·ã§ã³ã¯ããã©ã³ã¶ã¯ã·ã§ã³ãä»éããŒã¿ãšãšãã«æ³šæãµãŒãã¹ã«éä¿¡ããŸãã ããã«ã¯ãRW ã»ãããæ¿èªãã¢ã®çœ²åãããã³ãã£ãã« ID ãå«ãŸããŸãã
é åºä»ããµãŒãã¹ â ååã«åºã¥ããšããã®ãµãŒãã¹ã®äž»ãªæ©èœã¯ãåä¿¡ãããã©ã³ã¶ã¯ã·ã§ã³ãæ£ããé åºã§é 眮ããããšã§ãã åæ£ã¬ãžã¹ããªã®æ°ãããããã¯ã®åœ¢æãšãæ°ããçæããããããã¯ã®ãã¹ãŠã®ã³ããã ããŒããžã®é ä¿¡ãä¿èšŒããããããåæ£ã¬ãžã¹ããªãå«ããã¹ãŠã®ããŒã (ã³ããã ãã¢) ã§ã®ããŒã¿ã®äžè²«æ§ãä¿èšŒãããŸãã åæã«ãOrdering ãµãŒãã¹èªäœã¯ã¬ãžã¹ããªãäžåå€æŽããŸããã Ordering Service ã¯ã·ã¹ãã ã®éèŠãªã³ã³ããŒãã³ãã§ãããããè€æ°ã®ããŒããããªãã¯ã©ã¹ã¿ãŒã«ãªããŸãã Ordering Service ã¯ãã©ã³ã¶ã¯ã·ã§ã³ã®æå¹æ§ããã§ãã¯ãããåã«ç¹å®ã®ãã£ãã« ID ãæã€ãã©ã³ã¶ã¯ã·ã§ã³ãåãå ¥ããåä¿¡ãããã©ã³ã¶ã¯ã·ã§ã³ãç¹å®ã®é åºã§æŽçãããããããåæ£ã¬ãžã¹ããªã®æ°ãããããã¯ã圢æããŸãã 7 ã€ã®é åºä»ããµãŒãã¹ã¯ãè€æ°ã®ãã£ãã«ã«åæã«ãµãŒãã¹ãæäŸã§ããŸãã Ordering Service ã«ã¯ãæ£ãã (äžå€ã®) ãã©ã³ã¶ã¯ã·ã§ã³ ãã¥ãŒãç¶æãã Kafka ã¯ã©ã¹ã¿ãŒãå«ãŸããŠããŸã (ãã€ã³ã XNUMX ãåç §)ã
å³ 5. RW ã»ãããé åºä»ããã¢ã«éä¿¡ãã
5) çæããããããã¯ãã³ããããã¢ã«éä¿¡ãã
Ordering Service ã§çæããããããã¯ã¯ããã¹ãŠã®ãããã¯ãŒã¯ ããŒãã«éä¿¡ (ãããŒããã£ã¹ã) ãããŸãã æ°ãããããã¯ãåä¿¡ããåããŒãã¯ããããæ¿èªããªã·ãŒã«æºæ ããŠãããã©ããã確èªãããã¹ãŠã®æ¿èªãã¢ãã¹ããŒã ã³ã³ãã©ã¯ã ã·ãã¥ã¬ãŒã·ã§ã³ã®çµæãšããŠåãçµæ (æžã蟌ã¿ã»ãã) ãåãåã£ããã©ããã確èªããå ã®å€ãäžèŽããŠãããã©ããã確èªããŸãããã©ã³ã¶ã¯ã·ã§ã³ãéå§ãããç¬éããå€æŽãããŸãã (ã€ãŸããRead Set - WorldState ããã¹ããŒã ã³ã³ãã©ã¯ãã«ãã£ãŠèªã¿åãããããŒã¿)ã ãã¹ãŠã®æ¡ä»¶ãæºããããå Žåããã©ã³ã¶ã¯ã·ã§ã³ã¯æå¹ãšããŠããŒã¯ãããŸããããã§ãªãå Žåããã©ã³ã¶ã¯ã·ã§ã³ã¯ç¡å¹ãªã¹ããŒã¿ã¹ãåãåããŸãã
å³ 6. çæããããããã¯ãã³ããããã¢ã«éä¿¡ãã
6) ã¬ãžã¹ããªãžã®ãããã¯ã®è¿œå
åããŒãã¯ãåæ£ã¬ãžã¹ããªã®ããŒã«ã« ã³ããŒã«ãã©ã³ã¶ã¯ã·ã§ã³ãè¿œå ããŸãããã©ã³ã¶ã¯ã·ã§ã³ãæå¹ãªå Žåãæžã蟌ã¿ã»ããã WorldState (çŸåšã®ç¶æ ) ã«é©çšãããããã«å¿ããŠããã©ã³ã¶ã¯ã·ã§ã³ã®åœ±é¿ãåãããªããžã§ã¯ãã®æ°ããå€ãé©çšãããŸãããã©ã³ã¶ã¯ã·ã§ã³ãæžãããŠããŸãã ãã©ã³ã¶ã¯ã·ã§ã³ãç¡å¹ãªããŒã¯ã³ãåãåã£ãå ŽåïŒããšãã°ãåããããã¯å ã®åããªããžã§ã¯ã㧠XNUMX ã€ã®ãã©ã³ã¶ã¯ã·ã§ã³ãçºçããå Žåãå ã®å€ãå¥ã®ãã©ã³ã¶ã¯ã·ã§ã³ã«ãã£ãŠãã§ã«å€æŽãããŠããããããã©ã³ã¶ã¯ã·ã§ã³ã® XNUMX ã€ãç¡å¹ã§ããããšãå€æããŸãïŒååŒïŒã ãã®ãã©ã³ã¶ã¯ã·ã§ã³ãç¡å¹ãªããŒã¯ã³ã䜿çšããŠåæ£å°åž³ã«è¿œå ãããŸããããã®ãã©ã³ã¶ã¯ã·ã§ã³ã®æžã蟌ã¿ã»ããã¯çŸåšã® WorldState ã«é©çšãããªãããããã©ã³ã¶ã¯ã·ã§ã³ã«åå ãããªããžã§ã¯ãã¯å€æŽãããŸããã ãã®åŸããã©ã³ã¶ã¯ã·ã§ã³ãåæ£ã¬ãžã¹ããªã«æ°žç¶çã«è¿œå ãããããšãšããã©ã³ã¶ã¯ã·ã§ã³ã®ã¹ããŒã¿ã¹ (ãã©ã³ã¶ã¯ã·ã§ã³ãæå¹ãã©ãã) ã®éç¥ããŠãŒã¶ãŒ ã¢ããªã±ãŒã·ã§ã³ã«éä¿¡ãããŸãã
å³ 7. ã¬ãžã¹ããªãžã®ãããã¯ã®è¿œå
泚æãµãŒãã¹
Ordering Service ã¯ã察å¿ãã ZooKeeper ããŒããåãã Kafka ã¯ã©ã¹ã¿ãŒãšãOrdering ãµãŒãã¹ ã¯ã©ã€ã¢ã³ããš Kafka ã¯ã©ã¹ã¿ãŒã®éã«ãã Ordering Service Nodes (OSN) ã§æ§æãããŸãã Kafka ã¯ã©ã¹ã¿ãŒã¯ãåæ£åã®ãã©ãŒã«ããã¬ã©ã³ããªãã㌠(ã¡ãã»ãŒãž) 管çãã©ãããã©ãŒã ã§ãã Kafka ã®åãã£ãã« (ãããã¯) ã¯ãæ°ããã¬ã³ãŒãã®è¿œå ã®ã¿ããµããŒãããäžå€ã®ã¬ã³ãŒãã®ã·ãŒã±ã³ã¹ã§ã (æ¢åã®ã¬ã³ãŒãã®åé€ã¯äžå¯èœã§ã)ã ãããã¯æ§é ã®å³ã以äžã«ç€ºããŸãã ãããã¯ãã§ãŒã³ ãã©ãããã©ãŒã ã®æ§ç¯ã«äœ¿çšãããã®ã¯ãKafka ã®ãã®ããããã£ã§ãã
kafka.apache.org ããååŸ
- å³ 8. 泚æãµãŒãã¹ã®ãããã¯æ§é *
圹ç«ã€ãªã³ã¯
æè¬
ãã®èšäºã®æºåã«ååããŠãããååã«æ·±ãæè¬ã®æãè¡šããããšæããŸãã
ãã³ã©ã€ã»ããªã³
ã€ãŒãŽãªã»ããã
ããããªãŒã»ãŽã«ããã§ã
ã¢ã¬ã¯ãµã³ããŒã»ãŒã ãã©ã
ãšã«ããªãŒãã»ã°ã»ã¯
åºæïŒ habr.com