บทช่วยสอน 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 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 เมื่อเสร็จแล้วคุณจะเห็นตัวเลือกในการตรวจสอบจากการควบคุมเวอร์ชัน คลิกที่ไฟล์แล้วโคลนที่เก็บบนคอมพิวเตอร์ของคุณ.

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

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

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

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

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

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

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

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

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

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

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

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

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

ในการเริ่มต้นเราต้องไปที่การทดสอบ > Kotlin> สุทธิ > คอร์ดา > การฝึกอบรม > สถานะ > 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: ธุรกรรม): หน่วย
  • วิธีการตรวจสอบยืนยันธุรกรรมโดยดำเนินการตามข้อ จำกัด ทั้งหมด หากข้อ จำกัด ล้มเหลวข้อยกเว้นจะถูกโยนทิ้ง มิฉะนั้นธุรกรรมจะถือว่าถูกต้อง.
  • ฟังก์ชันการตรวจสอบถูกกำหนด.

เทมเพลตบล็อกเชนยังมีรหัสสำหรับสัญญา 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 พวกเขาโต้ตอบกับโฟลว์และมอบฟังก์ชัน CorDapp ที่กำหนดเอง.

สรุป

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

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

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me