Corda 5.2.1 ãªãªãŒã¹ããŒã
Corda 5.2.1ã¯Cordaã®åé¡è§£æ±ºã«ãã©ãŒã«ã¹ããããããªãªãŒã¹ã§ãã
5.2.1 ã¢ããã°ã¬ãŒãæšå¥š
Corda 5.2.1ãããã»ãªãªãŒã¹ã«ã¯ãã°ä¿®æ£ãå«ãŸããŠãããåäžã®ã¯ã©ã¹ã¿ã»ãããã¯ãŒã¯äžã§ãã£ã¶ã¹ã¿ãªã«ããªã®æäœãå®è¡ããæ©èœãå°å
¥ãããŠããŸããããããµããŒãããããã«ãããŒã¿ããŒã¹ã¹ããŒããšKafkaãããã¯èšå®ãã¢ããããŒããããŸããããã®ãããCorda5.2.1ãžã®ç§»è¡ã¯ãHelmãã£ãŒãã®upgrade
ã³ãã³ãã§ã¯ãŒã«ãŒã®ãœãããŠã§ã¢ããŒãžã§ã³ãæŽæ°ããã ãã§ã¯ãªããç¬èªã®ã¢ããã°ã¬ãŒãæé ããããŸãã
ãŸããCorda5.1 ããCorda5.2.1 ã«çŽæ¥ã¢ããã°ã¬ãŒãããããšã¯ã§ããŸãããCorda5.1ã®ãŠãŒã¶ãŒã¯ãŸãCorda5.2ã®ã¢ããã°ã¬ãŒãæé ã䜿ã£ãŠCorda5.2ã«ã¢ããã°ã¬ãŒããããã®åŸCorda5.2.1ã®ã¢ããã°ã¬ãŒãæé ã䜿ã£ãŠCorda5.2.1ã«ã¢ããã°ã¬ãŒãããå¿ èŠããããŸããCordaã¯ã©ã¹ã¿ã®ã¢ããã°ã¬ãŒãã«ã€ããŠã¯ã以äžã®ããŒãžãåç §ããŠãã ããïŒ
5.2.1 æ©èœåŒ·å
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãCorda5.2.1ã§åŒ·åãããæ©èœã«ã€ããŠèª¬æããŸãã
æ°ããCorda CLIupgrade
ã³ãã³ã
Corda CLIããŒã«ã«æ°ããupgrade
ã³ãã³ããè¿œå ãããŸããããã®ã³ãã³ãã䜿çšããŠãCorda5.2ããCorda5.2.1ãžã®ãã©ãããã©ãŒã ã»ã¢ããã°ã¬ãŒãã»ããã»ã¹ã®äžéšãšããŠããŒã¿ã移è¡ããããšãã§ããŸãã
Corda CLIã®upgrade
ã³ãã³ãã®è©³çŽ°ã«ã€ããŠã¯ãã¢ããã°ã¬ãŒãã®ããŒãžãåç
§ããŠãã ããã
5.2.1 ä¿®æ£ãããåé¡
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãCorda5.2.1ã§è§£æ±ºãããåé¡ã«ã€ããŠèª¬æããŸãã
- Kafkaäžã®ç®¡çããŒã¿ã倱ãããããåæãåããªããªã£ãå ŽåãããŒã¿ããŒã¹ããèªåçã«åŸ©å ãããŸããããã®ããã»ã¹ãæ£ããåäœããªãåé¡ãä¿®æ£ãããŸããã
- REST workerãšState Manageréã®çµ±åãä¿®æ£ãããç°ãªãstate typeãåãã¹ããŒãå ã«ä¿åãããªãããã«èšå®ã§ããããã«ãªããŸããããã®çµæãã¢ããã°ã¬ãŒãåŸã«ä»¥åã® flow status ã¬ã³ãŒãã«ã¢ã¯ã»ã¹ã§ããªããªãå¯èœæ§ããããŸãã
5.2.1 æ¢ç¥ã®åé¡ãšå¶éäºé
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãCorda5.2.1 ã«åŒãç¶ãååšããæ¢ç¥ã®åé¡ã«ã€ããŠèª¬æããŸãã
- èšå®ãå€æŽãããšãdatabase workerã®å éšã§ãªã³ã³ã·ãªãšãŒã·ã§ã³ïŒããŒã¿ããŒã¹ãšKafkaã®ããŒã¿ã®äžäžèŽã調æŽããããã»ã¹ïŒãäžæãããå¯èœæ§ããããŸããpodã¯çè«äžãããã€ãã®ãšã©ãŒæ¡ä»¶äžã§åèµ·åããããšãã§ããåèµ·ååŸã¯Cordaã¯æ£åžžã«åäœãç¶ããŸãã
Corda 5.2 ãªãªãŒã¹ããŒã
ãã®ããŒãžã§ã¯Corda 5.2ãªãªãŒã¹ã®äž»ãªå€æŽç¹ã玹ä»ããŸãïŒ
- æ©èœåŒ·å
- ä¿®æ£ãããåé¡
- æ¢ç¥ã®åé¡ãšå¶é
Cordaã¯ã©ã¹ã¿ã5.1ãã5.2ã«ã¢ããã°ã¬ãŒãããæ¹æ³ã«ã€ããŠã¯ã5.1ããã®ã¢ããã°ã¬ãŒããåç §ããŠãã ããã
æ©èœåŒ·å
ãã®ã»ã¯ã·ã§ã³ã§ã¯5.2ã§åŒ·åãããæ©èœã«ã€ããŠèª¬æããŸãã匷åãããç¹ã¯ä»¥äžã®éãã§ãïŒ
- ããã©ãŒãã³ã¹
- ãããã€ã¡ã³ã
- ã¢ããªã±ãŒã·ã§ã³ã»ãããã¯ãŒã¯
- REST API
- ã¬ããžã£ãŒ
- ã³ã³ãã£ã®ã¥ã¬ãŒã·ã§ã³
- ã»ãã¥ãªãã£
- CorDappéçº
ããã©ãŒãã³ã¹
äœã¬ã€ãã³ã·ãŒãç¶æããªãããTPSïŒtransactions per secondïŒ1ç§ãããã®ãã©ã³ã¶ã¯ã·ã§ã³æ°ïŒãåäžããŠããã
ãããã€ã¡ã³ã
ããŒã¿ããŒã¹èšå®
å
šãŠã®ããŒã¿ããŒã¹æ¥ç¶ã®è©³çŽ°ãäžåºŠèšå®ãããããã€æã«id
ã§åç
§ããå¿
èŠããããŸããã©ã®ã¹ããŒãã¿ã€ãã«ã©ã®ããŒã¿ããŒã¹ã䜿çšããããæå®ãããããã现ããã¢ã¯ã»ã¹å¶åŸ¡ãèšå®ãããã§ããããã«ãªããŸããã
詳现ã«ã€ããŠã¯ããããã€ã¡ã³ãã»ã¯ã·ã§ã³ã®PostgreSQLã»ã¯ã·ã§ã³ãåç §ããŠãã ããã
ããŒã¿ããŒã¹ã®æã¡èŸŒã¿
ã¯ã©ã¹ã¿ç®¡çè ããCordaã«ãã£ãŠç®¡çãããããŒã¿ããŒã¹ã䜿çšããã®ã§ã¯ãªããä»®æ³ããŒãçšã®PostgreSQLããŒã¿ããŒã¹ã®äœæãšãã®åŸã®æŽæ°ã管çã§ããããã«ãbring-your-own-database (BYOD)æ©èœãå°å ¥ãããŸããã
詳现ã¯Bringing Your Own Databaseãåç §ããŠãã ããã
ããŒã¿ããŒã¹æ€çŽ¢ãã¹
ããŒã¿ããŒã¹URLã§search_path
ãã©ã¡ãŒã¿ãæå®ã§ããªããªããŸãããæåã§ãŠãŒã¶ãŒãäœæããå Žåã¯ãã¹ããŒãã®search_path
ãæå®ããå¿
èŠããããŸãã詳现ã«ã€ããŠã¯ãæåã«ããããŒã¿ããŒã¹ã®ããŒãã¹ãã©ãããšBringing Your Own Databaseãåç
§ããŠãã ããã
Istio ãšã®çµ±å
Cordaã¯ãŒã«ãŒéã®éä¿¡ãã»ãã¥ã¢ã«ããããã«ãIstioãµãŒãã¹ã¡ãã·ã¥ãšçµ±åã§ããããã«ãªããŸããã
ãããã€ã®èšå®ã®è©³çŽ°ã«ã€ããŠã¯ãIstio Integrationãåç §ããŠãã ããã
ã¢ããªã±ãŒã·ã§ã³ãããã¯ãŒã¯
MGMãšã³ããã€ã³ãã®å€æŽãšMGMã®åç»é²
MGM ã®ã¡ã³ããŒãæäŸããã³ã³ããã¹ãïŒäŸãã°ããã©ãããã©ãŒã ã®ã¢ããã°ã¬ãŒãåŸãMGM ã®ãšã³ããã€ã³ãæ å ±ã®å€æŽåŸããŸã㯠MGM ã«ãã以åã®ç»é²ã®è©Šã¿ã倱æããå Žåãªã©ïŒãæŽæ°ããããã«ãMGM ãåç»é²ããããšãå¯èœã«ãªããŸããã
詳现ã«ã€ããŠã¯ãMGM ã®åç»é²ãåç §ããŠãã ããã
REST API
ãããŒã¹ããŒã¿ã¹
GET flow/{holdingIdentityShortHash}
ãšã³ããã€ã³ããæŽæ°ããããªãã·ã§ã³ã®ãã©ã¡ãŒã¿ãšããŠãããŒã¹ããŒã¿ã¹ãåãåããããã«ãªããŸãããããã«ãããè¿ããããããŒãç¹å®ã®ã¹ããŒã¿ã¹ã®ãã®ã«çµã蟌ãããšãã§ããŸãã
詳现ã«ã€ããŠã¯ãREST APIãªãã¡ã¬ã³ã¹ãåç §ããŠãã ããã
RBAC ãŠãŒã¶ãŒã®ãã¹ã¯ãŒã
RBACãŠãŒã¶ãŒã®ãã¹ã¯ãŒããå€æŽã§ããããã«ãªããŸããã以äžã®æ°ãããšã³ããã€ã³ããè¿œå ãããŸããïŒ
/api/v5_2/user/{loginName}/selfpassword;
/api/v5_2/user/{loginName}/otheruserpassword.
詳现ã«ã€ããŠã¯ãREST APIãªãã¡ã¬ã³ã¹ãåç §ããŠãã ããã
ã¬ããžã£ãŒ
ãã©ã³ã¶ã¯ã·ã§ã³ã»ãã©ã€ãã·ãŒã®åŒ·å
ãããã¯ãŒã¯å ã®ãã¹ãŠã®ä»®æ³ããŒãããUTXOã¬ããžã£ãŒäžã®ãã©ã³ã¶ã¯ã·ã§ã³ã®çºè¡ã«é¡ããå ¥åã«ãã£ãŠãªã³ã¯ããããã¹ãŠã®åä»»è ã確èªããæ€èšŒããå¿ èŠããªããªãããã©ã³ã¶ã¯ã·ã§ã³ã®ãã©ã€ãã·ãŒãé«ãããããã¯ãŒã¯éçšãå¯èœã«ãªããŸããããã®ä»£ãããååŒå 容ã®å¯èŠæ§ã¯å ¬èšŒäººã«æäŸãããªããã°ãªããŸããã
詳现ã«ã€ããŠã¯ãååŒãã©ã€ãã·ãŒã®åŒ·åãåç §ããŠãã ããã
ã¬ããžã£ãŒãªãã¢
äœããã®äºæãã¬ãšã©ãŒã«ãããå ¬èšŒäººããã©ã³ã¶ã¯ã·ã§ã³ãå ¬èšŒããã«ããããããããã©ã³ã¶ã¯ã·ã§ã³ã®æçµåŠçã«é¢äžããã¡ã³ããŒãå ¬èšŒããããã©ã³ã¶ã¯ã·ã§ã³ãä¿åããŠããªããšããã·ããªãªã解決ããããã«ãã¬ããžã£ãŒãªãã¢æ©èœãå°å ¥ãããŸããããã®ãããªã·ããªãªã§ã¯ãã¡ã³ããŒãæ¶è²»æžã¿ã¹ããŒããç¹°ãè¿ã䜿çšããããšãããã®ãããŒãå ¬èšŒã®å€±æã§åžžã«å€±æããå¯èœæ§ããããŸãã
ã¬ããžã£ãŒãªãã¢æ©èœã¯ãå
¬èšŒãããå¯èœæ§ã®ãããã©ã³ã¶ã¯ã·ã§ã³ããªããåã¡ã³ããŒã®ããŒã¿ä¿ç®¡åº«ããã§ãã¯ãããã®ãããªãã©ã³ã¶ã¯ã·ã§ã³ãããã°å
¬èšŒäººã«éä¿¡ããŠã以åã«èŠããããã©ããããã§ãã¯ãããã©ã³ã¶ã¯ã·ã§ã³ãå
¬èšŒãããŠããã°ã¡ã³ããŒã®ããŒã¿ä¿ç®¡åº«ãæŽæ°ãããããã©ã«ãã§ã¯ãCordaã¯10åããšã«å
垳修埩ããã»ã¹ãå®è¡ããããã®ã¹ã±ãžã¥ãŒã«ããããã§ãã¯ã¯ãã¯ã©ã¹ã¿ãŒå
ã®ãã¹ãŠã®ä»®æ³ããŒãã«å¯ŸããŠå®è¡ãããŸãããŸããæ°ãã com.r3.corda.notary.plugin.common.repair.NotarizedTransactionRepairFlow
ã䜿çšããŠãç¹å®ã®ä»®æ³ããŒãã«å¯ŸããŠæåã§ãã§ãã¯ãå®è¡ããããšãã§ããŸãã
詳现ã¯Ledger Repairããåç §ãã ããã
ã³ã³ãã£ã®ã¥ã¬ãŒã·ã§ã³
P2Pã»ãã·ã§ã³ã®ããŒãããŒãã¡ãã»ãŒãž
coda.p2p.linkManager
èšå®ã»ã¯ã·ã§ã³ã«ãã»ãã·ã§ã³ã»ããŒãããŒãã»ã¡ãã»ãŒãžãæå¹ã«ãããã©ãããæå®ããæ°ããèšå®heartbeatEnabled
ãè¿œå ãããŸãããããŒãããŒããç¡å¹ã«ãããšãã¯ã©ã¹ã¿ã®ã¡ãã»ãŒãžãªãŒããŒããããæžããããšãã§ããŸããç¹ã«ãç°ãªãã¯ã©ã¹ã¿ã«ååšããä»ã®å€ãã®ä»®æ³ããŒããšéä¿¡ããå€ãã®ä»®æ³ããŒãããã¹ãããã¯ã©ã¹ã¿ã§ã¯ãããŒãããŒããç¡å¹ã«ãããšãã¯ã©ã¹ã¿ã®ã¡ãã»ãŒãžãªãŒããŒããããæžããããšãã§ããŸãããããããªã³ã¯ãããŒãžã£ããã»ã¹ãå©çšã§ããªããªã£ãå Žåã®ãã§ã€ã«ãªãŒããŒãé
ããªãå¯èœæ§ããããŸãããã®ãããããŒãããŒãã¯ããã©ã«ãã§æå¹ã«ãªã£ãŠããŸãã
詳现ã«ã€ããŠã¯ãcoda.p2p.linkManagerãåç §ããŠãã ããã
ã¡ãã£ãšãŒã¿èšå®
coda.messaging
ã®èšå®ã»ã¯ã·ã§ã³ã«ããã«ããœãŒã¹ã¡ãã£ãšãŒã¿ã®èšå®ãè¿œå ãããŸããïŒ
subscription.mediator.pollTimeout
subscription.mediator.poolSize
subscription.mediator.minPoolRecordCount
Mediatorã¯ãããŒãåŠçããããã®ãµãã¹ã¯ãªãã·ã§ã³ã§ãã
詳现ã«ã€ããŠã¯ãcorda.messagingãåç §ããŠãã ããã
RBACãã¹ã¯ãŒã
æ°ãããã¹ã¯ãŒãã®æ倧æåæ°ãæå®ããããã®æ°ããèšå®lengthLimit
ãcoda.rbac
èšå®ã»ã¯ã·ã§ã³ã«è¿œå ãããŸããã
詳现ã«ã€ããŠã¯ãcoda.rbacãåç §ããŠãã ããã
ã»ãã¥ãªãã£
ã©ããã³ã°ããŒã®ããŒããŒã·ã§ã³
以äžã®çš®é¡ã®ã©ããã³ã°ããŒïŒä»ã®ããŒãéæ¢æã«æå·åããããã«äœ¿çšãããããŒïŒãããŒããŒã·ã§ã³ã§ããããã«ãªããŸããïŒ
- ãã¹ã¿ãŒ
- ä»®æ³ããŒã
以äžã®æ°ããREST APIã¡ãœãããè¿œå ãããŸããïŒ
- api/v5_2/wrappingkey/rotation/{tenantid}ã®POSTã¡ãœãã
- api/v5_2/wrappingkey/rotation/{tenantid}ã®GETã¡ãœãã
詳现ã«ã€ããŠã¯ãã©ããã³ã°ããŒã®ç®¡ç ãåç §ããŠãã ããã
CorDappã®éçº
Cordaã©ã³ã¿ã€ã Gradleãã©ã°ã€ã³
ã©ã³ã¿ã€ã Gradleãã©ã°ã€ã³ãå«ãCorDappãã³ãã¬ãŒãïŒä»¥åã¯CSDEãšããŠç¥ãããŠããïŒã¯ãCorda 5.2ãšäºææ§ããããŸãã
詳现ã¯CorDappãã³ãã¬ãŒããåç §ããŠãã ããã
ã³ã³ãã©ã¯ãã»ãã¹ã
Contract Testingãã¬ãŒã ã¯ãŒã¯ãCorda 5.2ã«å¯Ÿå¿ããŸããã
詳现ã¯ããŒã«ã»ã¯ã·ã§ã³ã®Contract Testing Frameworkãåç §ããŠãã ããã
ãããŒã»ãã·ã§ã³åºæã®ã¿ã€ã ã¢ãŠã
ã¯ã©ã€ã¢ã³ãã¯ããããŒã¡ãã»ãŒãžAPIã§ãããŒã»ãã·ã§ã³åºæã®ã¿ã€ã ã¢ãŠããæå®ã§ããããã«ãªããŸãããã¯ã©ã€ã¢ã³ããã¿ã€ã ã¢ãŠãå€ãæäŸããªãå ŽåãCordaã¯ä»¥åã®ãªãªãŒã¹ãšåæ§ã«corda.flow
èšå®ã»ã¯ã·ã§ã³ã®å€ã䜿çšããŸãã
ãŠã§ããœã±ãã
ãããŒã»ã¹ããŒã¿ã¹ã®æŽæ°ãååŸããããã®ãŠã§ãã»ãœã±ããã»ã€ã³ã¿ãŒãã§ã€ã¹ã¯å©çšã§ããªããªããŸããã
ããŒã«ãåã¯ãšãªã«ããé åºä»ã
ORDER BY
å¥ãæã€ä¿ç®¡åº«åä»ãã¯ãšãªãç»é²ã§ããããã«ãªããŸããããã®å¥ã§ã¯ãããŒã¿ããŒã¹åãšç¶æ
ã® JSON è¡šçŸã䜿çšã§ããŸãã
ããŒã¿ä¿ç®¡åº«åä»ãã¯ãšãªã® NULL ãã©ã¡ãŒã¿
ããŒã¿ä¿ç®¡åº«åä»ãã¯ãšãªã§ NULL ãã©ã¡ãŒã¿ãæå®ã§ããããã«ãªããŸããã
éåä¿¡ãã©ã³ã¶ã¯ã·ã§ã³ã»ãããŒ
以äžã®ã¡ãœããã UtxoLedgerService
ã«è¿œå ãããŸããïŒ
sendTransaction
-UtxoSignedTransaction
ãã©ã³ã¶ã¯ã·ã§ã³ãååŒçžæã«éä¿¡ããŸããreceiveTransaction
- ã«ãŠã³ã¿ãŒããŒãã£ãŒã®ã»ãã·ã§ã³ããæ€èšŒæžã¿ãã©ã³ã¶ã¯ã·ã§ã³ãåä¿¡ãããããä¿ç®¡åº«ã«æ°žç¶åããŸãã
詳现ã«ã€ããŠã¯ãJavadocs ãåç §ããŠãã ããã
æ°žç¶å API ã®åªçæ§
persist()
API ã¯ã倱æã·ããªãªã«ããããªã¯ãšã¹ãã®åªçæ§ãæå¹ã«ããããã«ãïŒãããŒã®ã³ã³ããã¹ãå
ã§ïŒäžæãªæ±ºå®è«çéè€æé€ ID ãèŠæ±ããããã«ãªã£ããIDã¯é¢æ°åŒã³åºãæã«æ±ºå®è«çã§ãªããã°ãªããã128æåãè¶
ããŠã¯ãªããªãã
ããŒã¯ã³éžæAPIã®åªçæ§
tryClaim()
APIã¯ã倱æã·ããªãªã§ãªã¯ãšã¹ãã®åªçæ§ãæå¹ã«ããããã«ãäžæãªïŒãããŒã®ã³ã³ããã¹ãå
ã§ïŒæ±ºå®è«çéè€æé€IDãèŠæ±ããããã«ãªã£ããIDã¯é¢æ°åŒã³åºãæã«æ±ºå®è«çã§ãªããã°ãªããã128æåãè¶
ããŠã¯ãªããªãã
ä¿®æ£ãããåé¡
ãã®ã»ã¯ã·ã§ã³ã§ã¯ã5.2ã§è§£æ±ºãããåé¡ã«ã€ããŠèª¬æããŸãããããã®åé¡ã¯ã以äžã®é åã§çºçããŸããïŒ
- ãããã€ã¡ã³ã
ãããã€ã¡ã³ã
ããŒã¯ã³éžæã·ã£ãŒãã£ã³ã°ãšIngress
ããŒã¯ã³éžæã¯ãŒã«ãŒã§ã·ã£ãŒãã£ã³ã°ãæå¹ã«ãããšãREST ããã³ P2P Gateway ã¯ãŒã«ãŒã§æå¹ã«ãªã£ãŠãã Ingress ã«å¹²æžããå¯èœæ§ããããŸããããã®çµæãIngressãªãœãŒã¹ã®ã¹ããŒã¿ã¹ãç¹°ãè¿ãæŽæ°ãããREST APIãP2P Gatewayãžã®æ¥ç¶ã倱ãããŸããã
æ¢ç¥ã®åé¡ãšå¶é
Vaultã§æå·ããŒã¿ããŒã¹ã®ãã¹ã¯ãŒããå€æŽãããïŒCorda Enterpriseã®ã¿ïŒ
æå·ããŒã¿ããŒã¹ã®ã¯ã©ã¹ã¿ã¬ãã«ã®ãã¹ã¯ãŒããå€æŽãããŠããVaultããåèªã¿èŸŒã¿ãããªãã
ããŒã¿ãªã®éžæ
å
¬èšŒäººä»®æ³ããŒãéžæããžãã¯ïŒNotaryVirtualNodeSelectorServiceImpl
ïŒã«ã¯ãä¿çäžããã³äžæåæ¢äžã®ã¡ã³ããŒãå«ãŸããŸãã
ãããŒãµãŒãã¹ã®äŸå€
ã©ã ãåŒã䜿çšããããšããããŒã»ãµãŒãã¹ãäŸå€ãã¹ããŒããå ŽåããããŸãããã®åé¡ã¯ãASMã©ã€ãã©ãªã®ãã°ãåå ã§ãã