บทช่วยสอน DAML: เริ่มต้นใช้งาน DAML

คุณกำลังค้นหาบทช่วยสอน DAML หรือไม่? ถ้าคุณทำแสดงว่าคุณมาถูกที่แล้ว ในบทความนี้เราจะทำการสอน DAML blockchain ที่เหมาะสม.

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

บทช่วยสอน DAML: เริ่มต้นใช้งาน DAML

DAML คืออะไร? มาสำรวจกัน.

ต้องการการทบทวน blockchain หรือไม่? ดูคู่มือ Blockchain สำหรับมือใหม่เพื่อเริ่มต้น! นอกจากนี้ตรวจสอบ Ultimate Guide to DAML ของเรา.

DAML คืออะไร?

DAML เป็นภาษาโปรแกรมโอเพ่นซอร์สสำหรับการพัฒนาแอปพลิเคชันแบบกระจาย ช่วยให้นักพัฒนาสามารถสร้างแอปพลิเคชันแบบกระจายเหล่านั้นได้อย่างกระชับรวดเร็วและถูกต้อง.

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

สิ่งที่ทำให้ DAML พิเศษมาก?

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

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

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

คุณสมบัติ DAML


ในส่วนนี้ของบทช่วยสอน DAML ของเราเราจะเรียนรู้เกี่ยวกับคุณสมบัติหลักของ DAML.

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

การอนุญาตแบบละเอียด: สัญญา DAML ได้รับการปรับแต่งเพื่อตั้งค่าการอนุญาต ซึ่งหมายความว่านักพัฒนาสามารถกำหนดได้ว่าใครสามารถลงนามในสัญญาใครสามารถดูและเงื่อนไขอะไรได้.

ตรรกะทางธุรกิจ: ตรรกะทางธุรกิจสามารถรวมเข้าด้วยกันได้อย่างง่ายดาย นักพัฒนาสามารถเขียนการดำเนินการที่จำเป็นในสัญญาการยืนยันพารามิเตอร์และอื่น ๆ!

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

คุณสมบัติรันไทม์

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

เรามาพูดคุยเกี่ยวกับพวกเขาด้านล่าง.

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

การตรวจสอบการอนุญาต→ การอนุญาตจะตรวจสอบการดำเนินการทั้งหมดภายในสัญญา หากการดำเนินการไม่ผ่านการอนุญาตที่เหมาะสมจะไม่ได้รับอนุญาตให้ดำเนินการ.

จากนั้นสัญญาจะแสดงข้อผิดพลาดรันไทม์และแจ้งให้ผู้ซื้อหรือผู้พัฒนาทราบ.

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

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

ไม่มีการใช้จ่ายสองเท่า →ด้วยรันไทม์ DAML สัญญาได้รับการออกแบบมาเพื่อให้แน่ใจว่าจะไม่มีการใช้จ่ายซ้ำซ้อน ซึ่งหมายความว่าไม่สามารถทำสัญญาเดียวกันซ้ำสองครั้งได้. 

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

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

เริ่มต้นกับ DAML

ในส่วนนี้ของบทช่วยสอน DAML ของเราเราจะดูคู่มือเริ่มต้นใช้งานสำหรับบทช่วยสอน DAML blockchain ก่อนที่คุณจะสามารถใช้ DAML ได้คุณต้องติดตั้งก่อน.

ในการใช้ DAML คุณต้องทำตามกระบวนการสองขั้นตอน.

1) การติดตั้งการอ้างอิง

ในการใช้ DAML คุณต้องติดตั้งการอ้างอิงก่อน ในการดำเนินการนี้คุณต้องดาวน์โหลด SDK และติดตั้งลงในระบบปฏิบัติการของคุณ.

นอกเหนือจากนั้นจะเป็นการดีที่สุดหากคุณมีสิ่งต่อไปนี้ด้วย

  • Visual Studio Code หรือสภาพแวดล้อมการพัฒนารวมที่เข้ากันได้
  • JDK 8 หรือสูงกว่า.

2) การติดตั้ง SDK

หากคุณใช้ Windows คุณสามารถไปที่ไฟล์ ลิงค์และดาวน์โหลดไฟล์ปฏิบัติการ.

สำหรับ Linux หรือ MAC คุณต้องรันคำสั่งต่อไปนี้โดยใช้ curl.

curl –sSL https://get.daml.com/ | ช

มันจะขอให้คุณเพิ่ม ~ / .daml / bin ให้กับตัวแปร PATH ของคุณ เมื่อเสร็จแล้วคุณก็พร้อมที่จะใช้ DAML.

คู่มือสำหรับผู้เริ่มต้นบทแนะนำ DAML

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

แต่ก่อนที่เราจะทำเราจำเป็นต้องเข้าใจโมเดลบัญชีแยกประเภท DA (สินทรัพย์ดิจิทัล) เป็นส่วนสำคัญของบทแนะนำ DAML ของเรา.

DA บัญชีแยกประเภท

DA Ledger Model เป็นหัวใจหลักของ DAML มีเวิร์กโฟลว์หลายฝ่ายด้วยความช่วยเหลือของบัญชีแยกประเภทที่แชร์เสมือน เพื่อให้ได้แนวคิดที่ดีขึ้นคุณสามารถตรวจสอบภาพหน้าจอด้านล่าง.

ที่มา: เอกสาร DAML

โมเดลนี้ใช้เพื่อกำหนดโครงสร้างบัญชีแยกประเภท DA (อะไร) โมเดลความสมบูรณ์ (ใครสามารถขอได้) และโมเดลความเป็นส่วนตัว (ใครสามารถดูได้).

หากต้องการทำความเข้าใจในเชิงลึกมากขึ้นเกี่ยวกับ DA Ledger Model โปรดดูเอกสารอย่างเป็นทางการ ที่นี่.

สัญญาพื้นฐาน

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

กระทำ

บัญชีแยกประเภท DAML มีรายการ “commits” กล่าวง่ายๆคือการคอมมิตคือธุรกรรมที่ส่งไปยังบัญชีแยกประเภท ตามสัญญาคุณอาจคิดว่ามันเป็นธุรกรรมที่ต้องดำเนินการและการดำเนินการขึ้นอยู่กับคุณสมบัติและเงื่อนไขของสัญญา.

โมดูลและไฟล์ DAML

ก่อนที่คุณจะเริ่มคุณต้องพูดถึงเวอร์ชัน DAML สามารถทำได้ที่ด้านบนของไฟล์ DAML เวอร์ชันจะแจ้งให้คอมไพเลอร์ทราบว่ากำลังใช้ภาษาเวอร์ชันใด.

Daml 1.2

ในการนำเข้าโมดูลคุณต้องใช้คีย์เวิร์ด “module”.

โทเค็นโมดูลที่ไหน

ความคิดเห็น

หากคุณต้องการเพิ่มความคิดเห็นคุณสามารถทำได้โดยใช้คีย์เวิร์ด“ -”.

– นี่คือความคิดเห็น

เทมเพลต

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

โทเค็นเทมเพลต

    ด้วย

        เจ้าของ: ปาร์ตี้

    ที่ไหน 

        เจ้าของที่ลงนาม

อย่างที่คุณเห็นเราได้กำหนดเทมเพลตโทเค็นโดยใช้คีย์เวิร์ด “template” นอกจากนี้ยังใช้เวลาโต้แย้ง อีกสิ่งหนึ่งที่คุณสามารถสังเกตเห็นได้คือการเว้นวรรคเป็นหลัก หากคุณเคยใช้ Python มาก่อนคุณจะเข้าใจว่าโค้ดมีโครงสร้างและจุดประสงค์อย่างไร.

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

การทำความเข้าใจสถานการณ์โดยใช้เทมเพลต

เมื่อเราเข้าใจโครงสร้างพื้นฐานของเทมเพลตแล้วตอนนี้เราจะเข้าใจสถานการณ์โดยใช้เทมเพลตอื่น ๆ อีกสองเทมเพลตในบทแนะนำ DAML ของเรา แต่ก่อนที่เราจะทำเรามาทำความเข้าใจว่าอะไรคือ“สถานการณ์.& rdquo;

สถานการณ์

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

token_test_one = สถานการณ์ทำ

    แซม <- getParty“ แซม”

    ส่ง sam do

        สร้าง Token ด้วย owner = sam

ข้างต้นเป็นสถานการณ์พื้นฐานที่เกี่ยวข้องกับ Token สำหรับปาร์ตี้ที่เรียกว่า“ sam”

ในการเรียกใช้สถานการณ์คุณต้องใช้ DAML studio. 

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

ประเภทข้อมูล

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

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

มีข้อมูลเนทีฟหลายประเภทที่ DAML มีให้ซึ่งรวมถึงสิ่งต่อไปนี้.

  • ปาร์ตี้→เพื่อจัดเก็บข้อมูลประจำตัวของเอนทิตี คู่สัญญาสามารถยื่นธุรกรรมและลงนามในสัญญา.
  • ข้อความ→เก็บอักขระ Unicode
  • Int →จัดเก็บจำนวนเต็ม 64 บิต
  • Decime →จัดเก็บตัวเลขจุดคงที่
  • วันที่→เก็บวันที่
  • เวลา→เก็บเวลาใน UTC
  • RelTime →เก็บความแตกต่างของเวลา
  • ContractId →อ้างอิงถึงประเภทสัญญา

ด้านล่างนี้คือรหัสเพื่อทำความเข้าใจประเภทเนทีฟบางประเภท.

native_test = สถานการณ์ทำ

  แซม <- getParty“ แซม”

  Mysterio <- getParty“ Mysterio”

  ปล่อย

    my_int = –657

    my_dec = 0.001: ทศนิยม

    my_text =“ แซม”

    my_bool = เท็จ

 

  ยืนยัน (Sam / = Mysterio)

  ยืนยัน (-my_int == 123)

  ยืนยัน (1,000.0 * my_dec == 1.0)

  ยืนยัน (my_text ==“ Sam”)

DAML ยังรองรับข้อมูลประเภทอื่น ๆ เช่นสิ่งที่เพิ่มขึ้นรายการและระเบียน. 

หากต้องการเรียนรู้เกี่ยวกับประเภทข้อมูลใน DAML โปรดดูหน้าเอกสารประกอบ ที่นี่.

การแปลงข้อมูลโดยใช้ตัวเลือก

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

ลองดูตัวอย่างในเอกสาร DAML.

ติดต่อแม่แบบ

  ด้วย

    เจ้าของ: ปาร์ตี้

    ปาร์ตี้: ปาร์ตี้

    ที่อยู่: ข้อความ

    โทรศัพท์: ข้อความ

  ที่ไหน

    เจ้าของที่ลงนาม

 

    เจ้าของคอนโทรลเลอร์สามารถ

      อัพเดท

        : ContractId ติดต่อ

        ด้วย

          ใหม่โทรศัพท์: ข้อความ

        ทำ

          สร้างสิ่งนี้ด้วย

            โทรศัพท์ = newTelephone

โค้ดส่วนใหญ่อธิบายได้ด้วยตนเองด้านบน สิ่งเดียวที่คุณต้องรู้คือเราได้กำหนดตัวเลือกที่เรียกว่า“ UpdateTelephone”

นอกจากนี้ยังสามารถใช้ตัวเลือกเป็นตัวแทนได้อีกด้วย สุดท้ายนี้ยังสามารถรวมเข้ากับโมเดลบัญชีแยกประเภทได้. 

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับตัวเลือก DAML คุณสามารถดูหน้าเอกสารอย่างเป็นทางการ ที่นี่.

การเพิ่มข้อ จำกัด ในสัญญา

คุณยังสามารถเพิ่มข้อ จำกัด ในสัญญา DAML โดยใช้คีย์เวิร์ด“ sure” คุณยังสามารถใช้กลไกอื่นที่ใช้คำสำคัญยืนยันยกเลิกและข้อผิดพลาดเพื่อเพิ่มข้อ จำกัด ในสัญญา.

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

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

ภาคีและอำนาจ

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

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

อ่านเพิ่มเติมเกี่ยวกับงานปาร์ตี้และหน่วยงานต่างๆ ที่นี่.

สรุป

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

คุณคิดอย่างไรกับ DAML? คุณคิดว่ามันมีศักยภาพที่จะกลายเป็นภาษาโปรแกรมที่แพร่หลายเพื่อสร้างแอปพลิเคชันแบบกระจายอำนาจหรือไม่? แสดงความคิดเห็นด้านล่างและแจ้งให้เราทราบ.

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