บทช่วยสอน Ultimate Corda 2021

ปรารถนาที่จะเป็นผู้เชี่ยวชาญ Corda หรือไม่? บทแนะนำ Corda ต่อไปนี้จะครอบคลุมทุกสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับการพัฒนาแอปพลิเคชัน Corda.

Blockchain มาไกล แนวคิดของเทคโนโลยีบัญชีแยกประเภทแบบกระจายได้ช่วยแก้ปัญหาหลายจุดที่องค์กรในปัจจุบันต้องเผชิญ จุดมุ่งหมายหลักคือการมีประสิทธิภาพปลอดภัยและปรับขนาดได้มากขึ้นโดยไม่ต้องลงทุนหลายล้านดอลลาร์.

Corda เป็นแพลตฟอร์มบล็อกเชนแบบโอเพ่นซอร์สที่ให้บริการระบบนิเวศบล็อกเชนทั่วโลก ให้ความเป็นส่วนตัวที่เข้มงวดด้วยการใช้สัญญาอัจฉริยะ นอกจากนี้ยังช่วยให้ธุรกิจสามารถทำธุรกรรมได้โดยตรงและให้แนวทางที่คุ้มค่าในการปรับปรุงการดำเนินธุรกิจ.

ความแตกต่างที่สำคัญคือวิธีที่ Corda จัดการกับธุรกรรม เป็น DLT ที่ต้องการปรับปรุงความเป็นไปได้ความเร็วและความสามารถในการปรับขนาดของ blockchain โดยการไม่มีบัญชีแยกประเภทที่สมบูรณ์กับเพื่อนแต่ละคน หากสามารถทำธุรกรรมระหว่างเพื่อนสองคนได้โดยไม่แจ้งให้ทั้งเครือข่ายทราบ Corda จะใช้แนวทางดังกล่าว นอกจากนี้ยังออกแบบมาเพื่อรวมบุคคลอื่น ๆ ที่ทำให้ง่ายต่อการติดตามธุรกรรมและดูความถูกต้อง เป็นเทคโนโลยีบัญชีแยกประเภทแบบกระจายสำหรับธุรกิจ.

เริ่มต้นด้วยบทช่วยสอน Corda blockchain ของเราตอนนี้!

เร็ว ๆ นี้: คู่มือเริ่มต้นหลักสูตรการพัฒนาคอร์ดา

การสอนการพัฒนาคอร์ดามีโครงสร้างอย่างไร?

เราจะกล่าวถึง Corda โดยละเอียด ในส่วนส่วนใหญ่เราจะพยายามพูดถึงแนวคิดคอร์ดาที่สำคัญ.

แนวคิดหลักที่เราจะกล่าวถึงมีดังต่อไปนี้.

  • สถานะ
  • สัญญา
  • ส่วนการไหล

บทช่วยสอนของเราจะสร้างแอปพลิเคชัน IOU IOU ย่อมาจาก“ I Owe yoU” นี่เป็นการนำเสนอง่ายๆเกี่ยวกับความจริงที่ว่าบุคคลหนึ่งเป็นเจ้าของเงินจากบุคคลอื่น เราจะกล่าวถึงแนวคิดนี้โดยละเอียดในภายหลัง.

เพื่อให้ง่ายขึ้นเราจะใช้ภาษาโปรแกรม Kotlin ในฐานะผู้เรียนมันจะดีมากถ้าคุณรู้จัก Kotlin แต่ไม่ใช่ทักษะที่จำเป็นที่จะต้องทำตามบทช่วยสอน.

เครื่องมือ

ก่อนที่เราจะเริ่มต้นด้วยบทช่วยสอน Corda สำหรับผู้เริ่มต้นเราจะต้องมีเครื่องมือดังต่อไปนี้ นอกจากนี้ยังมีเครื่องมือบล็อกเชนที่นักพัฒนาชอบใช้บ่อยๆ อย่างไรก็ตามเราจะไม่กล่าวถึงในวันนี้.


  • Kotlin
  • Gradle
  • Git
  • IntelliJ
  • บรรทัดคำสั่ง

ในสภาพแวดล้อมการพัฒนาแบบบูรณาการเราจะใช้ IntelliJ มันจะทำให้การพัฒนาของเราง่ายขึ้น.

บทแนะนำ Corda

กวดวิชา Corda

Corda คืออะไร?

Corda blockchain ถูกกำหนดให้ดีที่สุดว่าเป็นโอเพ่นซอร์สที่แก้ปัญหาทางธุรกิจโดยการจัดหาเครือข่ายบล็อกเชนที่ทำงานร่วมกันได้ คุณสมบัติที่สำคัญ ได้แก่ ความเป็นส่วนตัวที่เข้มงวดประสิทธิภาพและการทำธุรกรรมโดยตรงโดยใช้เทคโนโลยีสัญญาอัจฉริยะ.

สัญญาอัจฉริยะที่ใช้ใน Corda สามารถเขียนโดยใช้ภาษา JVM หรือ Java dApps ภายในแพลตฟอร์ม Corda เรียกว่า CorDapps นอกจากนี้ยังมีเครือข่ายโหนดแบบเพียร์ทูเพียร์ที่มีความสามารถในการใช้โครงสร้างพื้นฐานของโนตารี โครงสร้างพื้นฐานใช้เพื่อตรวจสอบความถูกต้องและจัดลำดับธุรกรรมโดยไม่จำเป็นต้องถ่ายทอดรายละเอียดธุรกรรมไปยังทุกเพียร์บนเครือข่าย.

องค์ประกอบที่สำคัญอีกอย่างที่ใช้โดย blockchain ได้แก่ Flow framework ซึ่งจัดการการเจรจาต่อรองและการสื่อสารระหว่างผู้เข้าร่วม.

การทำความเข้าใจ Corda Ledger

Corda Ledger ไม่เหมือนกับระบบบัญชีแยกประเภทที่ใช้เทคโนโลยีบล็อกเชนแบบเดิม นั่นคือเหตุผลที่เราต้องเข้าใจอย่างชัดเจนว่ามันทำงานอย่างไรและเข้าใจทั้งจากมุมมองการทำงานและมุมมองของข้อมูล.

บัญชีแยกประเภท Corda ทำงานเหมือนกราฟ โหนดทั้งหมดในกราฟเชื่อมต่อกันไม่ว่าจะโดยตรงหรือผ่านโหนดอื่น ๆ โหนดทั้งหมดสามารถสื่อสารกันได้หากต้องการ การใช้กราฟหมายความว่าไม่จำเป็นต้องออกอากาศธุรกรรมทั่วโลก.

การค้นพบโหนด

ดังนั้นโหนดจะค้นพบกันและกันได้อย่างไร? พวกเขาใช้แผนที่เครือข่ายเพื่อค้นหาซึ่งกันและกัน คุณอาจคิดว่ามันคล้ายกับสมุดโทรศัพท์ แผนที่เครือข่ายมีข้อมูลเมตาเพื่อค้นหาแต่ละบริการเหล่านี้และด้วยเหตุนี้จึงเป็นวิธีที่ดีสำหรับการค้นพบแผนที่.

มันทำงานอย่างไร?

ความท้าทายที่ยิ่งใหญ่ที่สุดในเครือข่ายบล็อกเชนที่ไม่ใช่การออกอากาศทั่วโลกคือฉันทามติ ดังนั้นโหนดจะรู้เกี่ยวกับกันและกันและตรวจสอบข้อมูลนั้นได้อย่างไร?

คำตอบคือข้อเท็จจริงร่วมกัน แต่ละโหนดทับซ้อนโหนดอื่น ๆ ไม่ทางใดก็ทางหนึ่ง ข้อเท็จจริงที่ใช้ร่วมกันจะถูกเก็บไว้ในบัญชีแยกประเภท Corda ซึ่งสามารถใช้เพื่อตรวจสอบข้อมูลได้ บัญชีแยกประเภท Corda ประกอบด้วยชุดของชุดเหล่านี้ เนื่องจากไม่มีโหนดกลางโหนดเหล่านี้จึงทำหน้าที่พร็อกซีเมื่อจำเป็นต้องตรวจสอบสิ่งต่างๆ ในการจัดเก็บข้อมูลนั้นแต่ละโหนดจะมีห้องนิรภัยที่มีข้อเท็จจริงซึ่งไม่สามารถเปลี่ยนแปลงได้ นี่คือวิธีที่นักพัฒนานำบล็อกเชนมาใช้.

รัฐ

สถานะใน Corda blockchain ไม่เปลี่ยนรูป ใช้เพื่อจัดเก็บข้อเท็จจริงร่วมกันเกี่ยวกับธุรกรรมข้อตกลงหรือสัญญา ณ ช่วงเวลาหนึ่ง.

ฟังดูเป็นเทคนิค? มาลองแบ่งเป็นคำที่ง่ายกว่านี้.

แบ่งปันข้อเท็จจริง

ลองใช้สองคนโดยใช้บัญชีแยกประเภท Corda มาตั้งชื่อพวกเขาว่า Alpha และ Bravo.

ทั้งสองคนมีข้อเท็จจริงร่วมกัน ข้อเท็จจริงร่วมกันคือ IOU (ฉันเป็นเจ้าของคุณ) IOU ใช้เมื่อผู้ให้กู้มีเงินเนื่องจากผู้ให้กู้ เพื่อให้มีการแบ่งปันข้อเท็จจริงทั้งสองมีข้อมูลที่ใช้ร่วมกันเหมือนกันซึ่งแสดงอยู่ใน IOU.

เป็นตัวแทนของอะไรก็ได้

รัฐสามารถใช้แทนอะไรก็ได้ ซึ่งหมายความว่าสามารถจัดเก็บข้อมูลได้ทุกรูปแบบสำหรับกรณีการใช้งาน Corda ที่แตกต่างกัน ในฐานะนักพัฒนาคุณสามารถใช้สถานะในการจัดเก็บข้อมูล KYC เครื่องมือทางการเงินเงินกู้ที่รวบรวมและอื่น ๆ.

นอกจากนี้รัฐยังสามารถใช้เพื่อจัดเก็บแอตทริบิวต์หลายรายการ แต่มีข้อ จำกัด สำหรับรัฐ ข้อ จำกัด คือเมื่อกำหนดสถานะประเภทแล้วจะไม่สามารถเปลี่ยนประเภทได้ หากคุณสร้างสถานะ IOU ก็จะต้องระบุสถานะ IOU ไปตลอดชีวิต.

ไม่เปลี่ยนรูปและมีวิวัฒนาการ

สถานะถูกสร้างขึ้นเพื่อไม่เปลี่ยนรูป อย่างไรก็ตามความไม่เปลี่ยนรูปของพวกเขาเกี่ยวข้องกับเวลา มีการนำเสนอรัฐในช่วงเวลาที่กำหนด.

ซึ่งหมายความว่าสามารถสร้างสถานะใหม่เพิ่มเติมจากสถานะเดิมได้ จะกระทำเมื่อมีการเปลี่ยนแปลงใหม่เกิดขึ้นกับสถานะที่ต้องจัดเก็บ รัฐเก่าจึงถูกเรียกว่าเป็นประวัติศาสตร์.

ตัวอย่างเช่นหาก Alpha จ่ายหนี้ให้กับ Bravo สถานะใหม่จะถูกสร้างขึ้นโดยอ้างว่า Alpha ได้เคลียร์หนี้แล้ว นอกจากนี้หากรัฐเสร็จสมบูรณ์ IOU จะหมดอายุ กล่าวง่ายๆคือวงจรชีวิตของรัฐในกรณีนี้มีดังนี้.

  1. สถานะแรกถูกสร้างขึ้นเพื่อแสดงให้เห็นว่า Alpha อยู่ภายใต้หนี้ของ Bravo รัฐนี้ยังแบ่งปันข้อมูลเพิ่มเติมเกี่ยวกับ IoU รวมถึงวันที่เวลาอัตราดอกเบี้ยจำนวนเงินที่ยืมและข้อมูลที่เป็นประโยชน์อื่น ๆ ที่จำเป็นสำหรับ IoU.
  2. ตอนนี้เมื่อ Alpha แก้ไขหนี้สถานะใหม่จะถูกสร้างขึ้นเพื่ออัปเดตข้อมูลใหม่ สภาพเก่าไม่ได้สัมผัส แต่อย่างใดเนื่องจากไม่เปลี่ยนรูป.
  3. ขณะนี้สถานะใหม่ได้รับการอัปเดตในข้อเท็จจริงที่ใช้ร่วมกันระหว่างผู้ใช้สองคน.
  4. ตอนนี้สภาพเก่าถูกเรียกว่าเป็นประวัติศาสตร์ อาจมีสถานะทางประวัติศาสตร์หลายสถานะในธุรกรรมเดียว สิ่งนี้สามารถนำไปสู่การสร้างลำดับของสถานะ.
  5. หัวลำดับถูกสร้างขึ้นซึ่งอ้างถึงสถานะล่าสุด นอกจากนี้รัฐล่าสุดยังถูกเรียกว่าไม่มีการบริโภคอีกด้วย.

อ่านเพิ่มเติม:คู่มือเปรียบเทียบ Hyperledger vs Corda vs Ethereum

เตรียมสภาพแวดล้อมการพัฒนาให้พร้อม

ตอนนี้ตามคู่มือการพัฒนา dApp สภาพแวดล้อมควรพร้อมสำหรับบทช่วยสอนการพัฒนา Corda คุณต้องมีเครื่องมือต่อไปนี้เพื่อเริ่มต้น.

  • Oracle JDK 8 JVM – v8u171 ขึ้นไป.
  • Git
  • IntelliJ IDEA

การโคลนที่เก็บ Git

วิธีที่ดีที่สุดในการเริ่มต้นการเดินทางของเราคือเรียกใช้ตัวอย่างของ CorDapp ในสภาพแวดล้อมการพัฒนาของเรา ข่าวดีก็คือ Corda เสนอตัวอย่าง CorDapp ที่คุณสามารถดาวน์โหลดและเรียกใช้ในเครื่องได้.

คุณสามารถโคลนที่เก็บในเครื่องโดยใช้คำสั่ง git clone ดังต่อไปนี้.

git โคลน http://github.com/roger3cev/corda-training-template.git

สำหรับบทช่วยสอนเราจะใช้ IntelliJ เพื่อนำเข้าที่เก็บ git เปิด IntelliJ เมื่อเสร็จแล้วคุณจะเห็นตัวเลือกในการตรวจสอบจากการควบคุมเวอร์ชัน คลิกที่ไฟล์แล้วโคลนที่เก็บบนคอมพิวเตอร์ของคุณ.

intelliJ

คุณสามารถเลือกบันทึกโครงการ คุณจะพบที่เก็บโครงการดังต่อไปนี้.

โครงสร้างโครงการ

ที่ด้านล่างขวาคุณจะพบการแจ้งเตือนว่าให้นำเข้า Gradle Project ดังต่อไปนี้ เป็นสิ่งสำคัญสำหรับ Corda Tutorial ของเราในการทำงาน.

คลิกที่“ นำเข้าโครงการ Gradle”

นำเข้าโครงการ gradle

คุณต้องตั้งค่า Project SDK ด้วย ไปที่การตั้งค่าโปรเจ็กต์จากนั้นเลือก Java เวอร์ชันล่าสุด ในกรณีของฉันมันถูกตั้งค่าเป็น Java 11.0.5.

หากคุณพบข้อผิดพลาดในการเรียกใช้คุณควรอัปเกรด Gradle ของคุณและปล่อยให้นำเข้าที่เก็บที่จำเป็นเพื่อให้ใช้งานได้ จะต้องใช้เวลาพอสมควรในการดำเนินการดังกล่าว นั่งเบาะหลังรอจนเสร็จ.

สำหรับฉันใช้เวลาประมาณ 20 นาทีในการอัปเดตการอ้างอิง Gradle ทั้งหมดให้เสร็จสมบูรณ์.

มาดูโครงสร้างของโครงการกวดวิชา Corda กันอย่างรวดเร็ว ที่เก็บหลักของเราคือไฟล์ src ในขณะที่เราใช้ Kotlin เราจะใช้โฟลเดอร์ Kotlin-source คุณจะพบโฟลเดอร์ src อยู่ข้างใต้ โปรดอย่าสับสนกับโฟลเดอร์ซอร์ส java.

ที่มาของคอร์ดากวดวิชาคอตลิน

ที่นี่คุณจะพบไฟล์ที่จำเป็นทั้งหมดในโฟลเดอร์การฝึกอบรม นอกจากนี้ยังมีโฟลเดอร์ “test” ซึ่งมีหน่วยทดสอบสำหรับแอปพลิเคชัน.

ไฟล์สำคัญอีกไฟล์ที่เราต้องรู้คือ IOUState.kt ตั้งอยู่ภายในการฝึกอบรม > สถานะ.

การรับการทดสอบหน่วยของรัฐทำงาน

คลาส IOUState ดูเป็นพื้นฐานมาก ยังไม่เสร็จสมบูรณ์ เราจะใช้วิธีการพัฒนาที่ขับเคลื่อนด้วยการทดสอบเพื่อพัฒนาชั้นเรียนและเตรียมให้พร้อมใช้งาน.

การพัฒนาที่ขับเคลื่อนด้วยการทดสอบเป็นแนวทางที่ยอดเยี่ยมสำหรับแนวทางการพัฒนาสมัยใหม่ ช่วยขจัดจุดบกพร่องหรือปัญหาอื่น ๆ ได้ตั้งแต่เริ่มต้น.

นั่นเป็นเหตุผลว่าทำไมเทมเพลตที่คุณดาวน์โหลดจึงมีการทดสอบที่เกี่ยวข้องสำหรับแต่ละชั้นเรียนอยู่แล้วซึ่งรวมถึงสัญญาขั้นตอนและสถานะ.

ในการเริ่มต้นเราต้องไปที่การทดสอบ > Kotlin> สุทธิ > คอร์ดา > การฝึกอบรม > สถานะ > IOUStateTests

IOUStatetests

คุณจะพบการทดสอบที่เขียนไว้แล้ว นอกจากนี้ยังมาพร้อมกับเอกสารมากมาย ทีม R3 Corda ใช้เวลาในการสร้างเทมเพลต.

คุณต้องยกเลิกการแสดงความคิดเห็นในส่วนดังที่แสดงด้านล่างเพื่อทำการทดสอบเพียงครั้งเดียวจึงจะทำงานได้.

รหัสไม่แสดงความคิดเห็น

เลือกรหัสแล้วกด Ctrl + / เพื่อยกเลิกการแสดงความคิดเห็น หากคุณใช้ MAC ให้ใช้ CMD + / เพื่อยกเลิกการแสดงความคิดเห็น.

ตอนนี้ถึงเวลาที่เราต้องทำการทดสอบหน่วยการเรียนรู้แล้ว.

เนื่องจากคลาส IOUState ของเราใกล้หมดการทดสอบจึงล้มเหลวและคุณจะได้รับข้อผิดพลาดในการทดสอบดังต่อไปนี้.

การทดสอบล้มเหลว

อย่างที่คุณเห็นมีการบอกว่าการทดสอบ Kotlin-source: ล้มเหลวเนื่องจาก NoSuchFieldException ซึ่งหมายความว่าการทดสอบคาดหวังว่าตัวแปรจำนวนที่ไม่พบ.

ในการแก้ไขเราต้องกลับไปที่ไฟล์ IOUState.kt และแก้ไข หากคุณรู้วิธีสร้างแอป blockchain มันจะเป็นเรื่องง่ายสำหรับคุณ.

ก่อนที่จะดำเนินการต่อเราต้องทำความเข้าใจกับ Kotlin ให้ดีขึ้น เพื่อให้เข้าใจถึงรหัสที่เรากำลังจะแก้ไขขอแนะนำให้รู้จักกันก่อนดีกว่า Kotlin เป็นภาษาโปรแกรมที่หนาแน่น นอกจากนี้ Kotlin กำลังจะแปลงเป็นเครื่องเสมือน JVM ดังนั้นเราควรใช้มันในบทช่วยสอนของเรา.

โครงสร้างโครงการ

  • คลาสข้อมูล IOUState →คีย์เวิร์ดนี้หมายความว่าเรากำหนดคลาสข้อมูลชื่อ“ IOUState”
  • ข้อมูล val →การประกาศตัวแปร ชื่อของเขตข้อมูลคือข้อมูล
  • String =“ data” →กำหนดค่าเริ่มต้นของตัวแปรข้อมูลหากไม่มีการกำหนด.
  • ContractState →อินเทอร์เฟซ

หากคุณทำการเปลี่ยนแปลงทั้งหมดกับไฟล์ IOUState.kt ตามการทดสอบคลาส IOUState จะมีลักษณะดังต่อไปนี้.

ชั้นข้อมูล IOUState (วาล จำนวน: จำนวนเงิน,

วาล ผู้ให้กู้: ปาร์ตี้,

วาล ผู้กู้: พรรค,

วาล จ่าย: Amount = จำนวนเงิน (0, amount.token),

แทนที่วาล linearId: UniqueIdentifier = UniqueIdentifier ()): LinearState {

/ **

* คุณสมบัตินี้มีรายการโหนดที่สามารถ “ใช้” สถานะนี้ในธุรกรรมที่ถูกต้อง ในกรณีนี้ไฟล์

* ผู้ให้กู้หรือผู้ยืม.

* /

แทนที่วาล ผู้เข้าร่วม: รายชื่อ ได้รับ() = listOf (ผู้ให้กู้ผู้ยืม)

/ **

* วิธีการช่วยเหลือในการสร้างธุรกรรมสำหรับการชำระและโอน IOU.

* – [จ่าย] เพิ่มจำนวนเงินให้กับทรัพย์สินที่ต้องชำระ ไม่มีการตรวจสอบความถูกต้อง.

* – [withNewLender] สร้างสำเนาของสถานะปัจจุบันด้วยผู้ให้กู้ที่ระบุใหม่ สำหรับใช้ในการโอนย้าย.

* /

สนุก pay (amountToPay: จำนวนเงิน) = สำเนา (paid = paid.plus (amountToPay))

สนุก withNewLender (newLender: Party) = สำเนา (ผู้ให้กู้ = newLender)

}

ตอนนี้คุณควรจะเพิ่มวิธีการช่วยเหลือตามความคิดเห็นด้านบนได้แล้ว.

ต้องการเป็นผู้เชี่ยวชาญ Corda หรือไม่? นี่คือคำแนะนำเกี่ยวกับการรับรอง R3 Corda ที่จะแนะนำคุณตลอดกระบวนการรับรองของคุณ.

รายชื่อคอร์ดา

เราได้เรียนรู้ว่ารัฐสามารถพัฒนาไปสู่รัฐใหม่ได้ นักพัฒนาสามารถควบคุมวิวัฒนาการของสถานะบัญชีแยกประเภทได้โดยใช้สัญญา ในส่วนนี้เราจะเรียนรู้เกี่ยวกับสัญญาโดยละเอียด.

เนื่องจาก R3 Corda ไม่ได้ขึ้นอยู่กับการกระจายข้อความไปยังเครือข่ายทั้งหมดจึงใช้ข้อกำหนดการตรวจสอบธุรกรรมทั่วไปสำหรับแต่ละประเภท ด้วยวิธีนี้เครือข่าย Corda จะตรวจสอบธุรกรรมและได้รับฉันทามติ ค่อนข้างคล้ายกับวิธีการบันทึกธุรกรรมบล็อกเชนอื่น ๆ.

Corda Contracts ดำเนินการผ่านฟังก์ชัน คุณสามารถคิดว่าสถานะเป็นหน่วยเก็บข้อมูลและสัญญาเป็นวิธีการตรวจสอบข้อมูลและการเปลี่ยนแปลงสถานะ ฟังก์ชันการตรวจสอบเหล่านี้เป็นฟังก์ชันเฉพาะสำหรับประเภทสถานะ.

เพื่อให้แน่ใจว่ารัฐต่างๆสามารถตรวจสอบได้และสามารถให้บริการได้จำเป็นต้องมีการอ้างอิงถึงแต่ละรัฐด้วยสัญญา.

แต่ละสัญญาประกอบด้วยสองรายการ ได้แก่ รหัสสัญญาและร้อยแก้วทางกฎหมาย.

เพื่อทำความเข้าใจลองดูภาพต่อไปนี้.

สถานะของสัญญา

ดังที่คุณเห็นสัญญาประกอบด้วยสองรายการและในรัฐมีการอ้างอิงสัญญา IOU สำหรับรหัสนั้น.

ร้อยแก้วทางกฎหมาย: Legal Prose ใช้อ้างอิงถึงสัญญาทางกฎหมายสำหรับข้อตกลง ใช้เพื่อให้แน่ใจว่าสามารถใช้กรอบกฎหมายและระบบการพิจารณาคดีที่มีอยู่ได้หากมีข้อพิพาทเกิดขึ้น.

คุณสมบัติที่สำคัญอื่น ๆ ของ Corda Contracts มีดังต่อไปนี้

  • สัญญาหลายฉบับสามารถอ้างอิงสัญญาได้ นอกจากนี้สัญญาอาจมีหลายประเภทของรัฐ
  • Corda ใช้ฟังก์ชันการตรวจสอบเพื่อตรวจสอบธุรกรรมที่เสนอ
  • วิธีการตรวจสอบลายเซ็นมีดังต่อไปนี้
  • สนุกตรวจสอบ (tx: ธุรกรรม): หน่วย
  • วิธีการตรวจสอบยืนยันธุรกรรมโดยดำเนินการตามข้อ จำกัด ทั้งหมด หากข้อ จำกัด ล้มเหลวข้อยกเว้นจะถูกโยนทิ้ง มิฉะนั้นธุรกรรมจะถือว่าถูกต้อง.
  • ฟังก์ชันการตรวจสอบถูกกำหนด.

เทมเพลต blockchain ยังมีรหัสสำหรับสัญญา Corda นอกจากนี้คุณควรเข้าใกล้สัญญา Corda ที่คล้ายกับรัฐ มันจะช่วยได้ถ้าคุณไปที่หน่วยทดสอบ Corda แล้วเพิ่มรหัสที่ต้องการในคลาสสัญญา.

การทำธุรกรรมของ Corda

จุดต่อไปของเราคือ Corda Transactions เป็นธุรกรรมที่ทำให้การเปลี่ยนแปลงสถานะเป็นไปได้.

ธุรกรรมคืออะไร? สามารถกำหนดได้ดีที่สุดว่าเป็นคอนเทนเนอร์ที่มีการอ้างอิงสถานะอินพุต (0 หรือมากกว่า) พวกเขายังสร้างสถานะ (0 หรือมากกว่า).

การทำธุรกรรมช่วยให้เครือข่ายสามารถดำเนินการได้อย่างเหมาะสมโดยทำให้เพื่อนหลาย ๆ คนสามารถโต้ตอบกันได้แบบเรียลไทม์ ทำให้สองฝ่ายสามารถแลกเปลี่ยนอะตอมได้โดยไม่ขัดขวางกิจกรรมอื่น ๆ นอกจากนี้ธุรกรรมยังมีลักษณะเป็นปรมาณู ซึ่งหมายความว่าธุรกรรมจะไม่สามารถลดหรือแบ่งได้.

นอกจากนี้ยังมีธุรกรรมสามประเภท ได้แก่ การประกันการอัปเดตและการออก แต่ละคนมีวาระของตัวเอง มาดูรายการด้านล่างกัน.

  • การประกันภัย→สร้างสถานะใหม่
  • อัปเดต→เปลี่ยนคุณสมบัติของสถานะ
  • ออก→ลบสถานะออกจากบัญชีแยกประเภท

คอร์ดาโฟลว์

Corda Flows เป็นขั้นตอนที่จำเป็นสำหรับเพื่อนในการดำเนินการ (ดำเนินการ) ธุรกรรมที่ประสบความสำเร็จ.

โฟลว์กำหนดตรรกะทางธุรกิจหลักของ CorDapp มีหน้าที่รับผิดชอบในการตรวจสอบให้แน่ใจว่าธุรกรรมได้ดำเนินการตามลำดับที่ถูกต้องและพารามิเตอร์ที่ถูกต้อง เนื่องจากลักษณะการทำธุรกรรมมีความซับซ้อนจึงจำเป็นต้องมีโฟลว์เพื่อให้แน่ใจว่าทุกอย่างทำงานได้ตามที่ตั้งใจไว้.

การควบคุมโฟลว์ช่วยให้มั่นใจได้ว่าจะสื่อสารเมื่อใดจะสื่อสารอะไรและจะสื่อสารกับใคร.

นี่คือสิ่งที่ตรงกันข้ามอย่างสิ้นเชิงกับเทคโนโลยีบัญชีแยกประเภทอื่น ๆ ที่เน้นการกระจายรายละเอียดธุรกรรมไปยังเครือข่ายทั้งหมด Corda เจริญเติบโตในการทำธุรกรรมแบบจุดต่อจุดซึ่งธุรกรรมจำเป็นต้องมีพารามิเตอร์ที่สำคัญสองตัวคือผู้ส่งและผู้รับ.

สิ่งสำคัญที่คุณควรรู้เกี่ยวกับโฟลว์

  • โฟลว์สามารถดำเนินการให้เสร็จสิ้นภายในไม่กี่วินาทีหรืออาจใช้เวลาหลายวันจึงจะเสร็จสมบูรณ์
  • พวกเขาเป็นอิสระอย่างสมบูรณ์
  • โฟลว์เข้าสู่โหมดสลีปก่อนที่พวกเขาจะพบกับการรอการตอบสนอง
  • Flows เป็นไปตาม Flow Framework ซึ่งเป็นกลไกสำหรับนักพัฒนาเพื่อให้แน่ใจว่าการพัฒนาเครื่องของรัฐเป็นไปอย่างเหมาะสม.
  • การไหลสามารถทำได้ทั้งแบบจับคู่และด้านเดียว
  • นักพัฒนายังสามารถเขียนโค้ดโฟลว์ย่อยเพื่อทำให้โค้ดง่ายขึ้น

ต้องการยกระดับและเป็นผู้เชี่ยวชาญหรือไม่? คำแนะนำในการสร้าง blockchain ใน Python มีดังนี้.

ฉันทามติ

จากสิ่งที่น่าตื่นเต้นทั้งหมดที่เราได้พูดคุยกันจนถึงตอนนี้สิ่งที่ Corda พิเศษคือการบรรลุฉันทามติ Corda มีวิธีการที่ไม่เหมือนใครและด้วยเหตุนี้จึงทำให้สามารถทำงานได้สำหรับธุรกิจที่นั่น.

ประการแรก Corda ใช้อัลกอริทึมฉันทามติสองประการ ซึ่งรวมถึงสิ่งต่อไปนี้

  • ฉันทามติเอกภาพ→วิธีฉันทามตินี้ช่วยให้มั่นใจได้ว่าจะไม่มีความขัดแย้งเกิดขึ้นในบัญชีแยกประเภท
  • ฉันทามติการยืนยัน→ฉันทามติในการตรวจสอบจะจัดการธุรกรรมและทำให้แน่ใจว่าจะไม่มีข้อขัดแย้งเกิดขึ้นตามรหัสสัญญา อำนวยความสะดวกในการวิวัฒนาการของสถานะที่ใช้ร่วมกันภายในเครือข่าย.

สิ่งสำคัญที่คุณควรเกี่ยวกับ Corda Consensus:

  • ฉันทามติที่ไม่ซ้ำกันทำให้มั่นใจได้ว่าการอัปเดตบัญชีแยกประเภทจะไม่ซ้ำกันเสมอ นอกจากนี้ยังตรวจสอบให้แน่ใจว่าบัญชีแยกประเภทถูกต้องเมื่อทำการอัปเดต.
  • ฉันทามติในการตรวจสอบทำให้แน่ใจว่าการอัปเดตถูกต้อง.

คอร์ดาโหนด

ส่วนสุดท้ายของ Corda ที่เราจะพูดถึงต่อไปนี้คือ Corda Node Corda Node เป็นมุมมองระดับสูงของ Corda.

ดังนั้นโหนด Corda คืออะไร?

โหนด Corda เป็นเอนทิตีที่รันใน Java Virtual Machine มันเกี่ยวข้องกับสิ่งต่อไปนี้

  • มีบริการจัดเก็บข้อมูลและห้องใต้ดิน
  • SQL DB สำรองห้องใต้ดินและบริการจัดเก็บข้อมูล
  • โฟลเดอร์เฉพาะใช้เพื่อจัดเก็บไฟล์แนบ
  • นำเสนอฟังก์ชันที่กำหนดเองและส่วนขยายในตัวที่เรียกว่า CorDapps
  • เสนอกรอบไคลเอนต์ RPC

นี่คือลักษณะของโหนด Corda.

โหนด Corda

อย่างที่คุณเห็นมันมีแง่มุมที่จำเป็นทั้งหมดในการเรียกใช้เครือข่าย Corda พวกเขาโต้ตอบกับโฟลว์และมอบฟังก์ชัน CorDapp ที่กำหนดเอง.

สรุป

สิ่งนี้นำเราไปสู่ตอนท้ายของบทแนะนำ Corda ของเรา ที่นี่เราดู Corda และพยายามดู IoU CorDapp เราได้พูดถึงส่วนต่างๆโดยใช้การฝึกอบรมเทมเพลตที่มีอยู่ในที่เก็บ Corda GitHub.

จุดมุ่งหมายของเราคือการเริ่มต้นกับ Corda โดยไม่ต้องพยายามอธิบายทุกอย่างที่ Corda นำเสนอ คุณสามารถใช้เอกสาร Corda ได้ตลอดเวลา นอกจากนี้เรายังมีหลักสูตรที่กำลังจะมาถึงเกี่ยวกับบทแนะนำการพัฒนา Corda คุณควรตรวจสอบอย่างแน่นอนหากคุณต้องการคู่มือการพัฒนาที่สมบูรณ์.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map