第3课

การสร้างและจัดการสัญญาอัจฉริยะใน Vyper

คุณได้สร้างพื้นฐานที่มั่นคงสำหรับการเขียนโปรแกรมบล็อคเชนกับ Vyper เมื่อจบหลักสูตรนี้ ตอนนี้คุณมีความเข้าใจอย่างมั่นคงเกี่ยวกับ Ethereum, สัญญาอัจฉริยะ และวิธีการสร้างมันใน Remix IDE ด้วย Vyper ความเข้าใจนี้เปิดโอกาสให้โลกแห่งการพัฒนาแอปพลิเคชันแบบกระจายอำนาจและการมีส่วนร่วมในระบบนิเวศบล็อกเชน

แนะนำสกุลเงิน

ยินดีต้อนรับสู่บทที่ 3! ในบทนี้ เราจะมุ่งเน้นไปที่การประยุกต์ใช้แนวคิดและไวยากรณ์ที่เราได้เรียนรู้จากบทเรียนก่อนหน้านี้เพื่อพัฒนาสัญญาอัจฉริยะ Ethereum โดยใช้ Vyper กับ Remix IDE เราจะสร้าง ปรับใช้ และโต้ตอบกับสัญญาอัจฉริยะง่ายๆ เพื่อให้คุณสัมผัสประสบการณ์จริงกับ Vyper และ Ethereum สัญญาฉบับแรกจะเป็นสัญญาการจัดเก็บข้อมูลอย่างง่าย ในขณะที่สัญญาฉบับที่สองจะจำลองระบบการลงคะแนนขั้นพื้นฐาน

SimpleStorage: ข้อมูลเบื้องต้นเกี่ยวกับสัญญาอัจฉริยะ

สัญญาแรกที่เราจะปรับใช้คือ SimpleStorage สัญญานี้เป็นสัญญาการจัดเก็บข้อมูลแบบธรรมดาที่จัดเก็บหมายเลขเดียวตามชื่อ SimpleStorage ประกอบด้วยตัวแปร storedData และสองฟังก์ชันคือ set และ get ฟังก์ชัน set ช่วยให้ผู้ใช้สามารถจัดเก็บตัวเลขได้ และฟังก์ชัน get ช่วยให้ใครก็ตามสามารถดึงข้อมูลหมายเลขนี้ได้

การปรับใช้และการโต้ตอบกับ SimpleStorage

เราจะทำตามขั้นตอนต่างๆ เพื่อปรับใช้และโต้ตอบกับสัญญา SimpleStorage บน Ethereum blockchain การปรับใช้สัญญากับบล็อกเชน Ethereum เป็นกระบวนการในการส่งไบต์โค้ดและ ABI ของสัญญาไปยังเครือข่าย Ethereum จากจุดที่สามารถเรียกและดำเนินการได้ เมื่อปรับใช้สัญญาแล้ว สัญญาจะได้รับที่อยู่เฉพาะที่สามารถติดต่อได้

นี่คือรหัสสำหรับ SimpleStorage:

Python 
 # @title SimpleStorage 
 ข้อมูลที่เก็บไว้: int128 

 @external 
 def set (x: int128): 
 self.storedData = x 

 @external 
 def get () -> int128: 
 ส่งคืน self.storedData

ในสัญญานี้ เรากำหนดตัวแปรจำนวนเต็มสาธารณะ storedData set(x: int128) เพื่อตั้งค่าของ storedData และฟังก์ชันคงที่สาธารณะ get() -> int128 เพื่อดึงค่าปัจจุบันของ storedData

คำแนะนำทีละขั้นตอนเกี่ยวกับวิธีการปรับใช้สัญญานี้โดยใช้ Remix:

  1. เปิดเว็บเบราว์เซอร์ของคุณแล้วไปที่ Remix Ethereum IDE

  2. เปิดใช้งานปลั๊กอิน Vyper

  3. สลับสภาพแวดล้อมเป็น Injected Web3 ในส่วน Deploy & Run Transactions วิธีนี้จะเชื่อมต่อ Remix กับกระเป๋าเงิน MetaMask ของคุณ

  4. ในส่วน File Explorer คลิกที่ไอคอน + เพื่อสร้างไฟล์ใหม่ ตั้งชื่อมันว่า SimpleStorage.vy

  5. วางรหัสสัญญา SimpleStorage ลงในไฟล์ใหม่นี้

  6. ตอนนี้ไปที่แท็บ VyperCompile และเลือกสัญญา SimpleStorage

  7. สลับไปที่แท็บ Deploy & Run Transactions จากนั้นคลิกที่ปุ่ม Deploy

  8. MetaMask จะเปิดป๊อปอัปยืนยันธุรกรรม ยืนยันการทำธุรกรรม

  9. หลังจากยืนยันธุรกรรมแล้ว คุณจะเห็นสัญญา SimpleStorage ที่ปรับใช้ในส่วน Deployed Contracts

  10. ตอนนี้คุณสามารถโต้ตอบกับสัญญาได้แล้ว ตัวอย่างเช่น หากต้องการจัดเก็บตัวเลข ให้ป้อนตัวเลขในฟังก์ชัน set แล้วคลิก transact หากต้องการดึงหมายเลขที่เก็บไว้ให้คลิก get

SimpleVoting: สัญญาที่ซับซ้อนยิ่งขึ้น

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

การปรับใช้และการโต้ตอบกับ SimpleVoting

สัญญา SimpleVoting นั้นซับซ้อนกว่า SimpleStorage เล็กน้อย ใน SimpleVoting เราจะมีรายชื่อผู้สมัคร โดยแต่ละรายการจะแสดงด้วยสตริง

นี่คือรหัสสำหรับ SimpleVoting:

Python 
 # สัญญาการลงคะแนนเสียงของ Vyper 

 # ประกาศตัวแปรสถานะ `โหวต` เป็น HashMap เพื่อจัดเก็บคะแนนโหวตสำหรับผู้สมัครแต่ละคน
โหวต: HashMap [bytes32, uint256] 

 @ ภายนอก 
 def โหวต (ผู้สมัคร: bytes32): 
 """ 
 ลงคะแนนให้ผู้สมัคร

    อาร์กิวเมนต์: ผู้สมัคร 
 คน: bytes32 - ตัวระบุของผู้สมัครที่จะลงคะแนนให้
    """ 
 # เพิ่มการนับคะแนนของผู้สมัครที่ระบุ
    self.votes[ผู้สมัคร] += 1 

 @external 
 @view 
 def get_votes(candidate: bytes32) -> uint256: 
 """ 
 รับจำนวนโหวตทั้งหมดสำหรับผู้สมัคร

    อาร์กิวเมนต์: ผู้สมัคร 
 คน: bytes32 - ตัวระบุของผู้สมัครที่จะรับคะแนนโหวต

    ส่งคืน: 
 uint256 - จำนวนคะแนนเสียงทั้งหมดที่ผู้สมัครได้รับ
    """ 
 คืน self.votes [ผู้สมัคร]

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

บทสรุปและขั้นตอนต่อไป

คุณได้สร้างพื้นฐานที่มั่นคงสำหรับการเขียนโปรแกรมบล็อคเชนกับ Vyper เมื่อจบหลักสูตรนี้ ตอนนี้คุณมีความเข้าใจอย่างมั่นคงเกี่ยวกับ Ethereum, สัญญาอัจฉริยะ และวิธีการสร้างมันใน Remix IDE ด้วย Vyper ความเข้าใจนี้เปิดโอกาสให้โลกแห่งการพัฒนาแอปพลิเคชันแบบกระจายอำนาจและการมีส่วนร่วมในระบบนิเวศบล็อกเชน

เพื่อพัฒนาทักษะและความรู้ของคุณเพิ่มเติม ให้พิจารณาสำรวจด้านต่อไปนี้:

  1. การเขียนโปรแกรม Solidity ขั้นสูง: Solidity เป็นอีกหนึ่งภาษาการเขียนโปรแกรมยอดนิยมสำหรับ Ethereum smart Contract Learning Solidity จะขยายความสามารถของคุณในการทำงานกับสัญญาที่มีอยู่และสนับสนุนชุมชน Ethereum ตรวจสอบหลักสูตรของเราที่นี่: [แทรกลิงก์หลักสูตร Solidity เมื่อออนไลน์]

  2. การพัฒนาแอปพลิเคชันแบบกระจายอำนาจ (DApp): เจาะลึกลงไปอีกในการสร้างแอปพลิเคชันแบบกระจายอำนาจที่สมบูรณ์โดยการรวมสัญญาอัจฉริยะเข้ากับการพัฒนาส่วนหน้าโดยใช้เฟรมเวิร์ก เช่น Web3.js, React หรือ Vue.js สิ่งนี้จะช่วยให้คุณสามารถสร้างส่วนต่อประสานผู้ใช้แบบโต้ตอบที่โต้ตอบกับสัญญาอัจฉริยะของคุณ

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

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

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表Gate Learn赞同其观点或证实其描述。
目录
第3课

การสร้างและจัดการสัญญาอัจฉริยะใน Vyper

คุณได้สร้างพื้นฐานที่มั่นคงสำหรับการเขียนโปรแกรมบล็อคเชนกับ Vyper เมื่อจบหลักสูตรนี้ ตอนนี้คุณมีความเข้าใจอย่างมั่นคงเกี่ยวกับ Ethereum, สัญญาอัจฉริยะ และวิธีการสร้างมันใน Remix IDE ด้วย Vyper ความเข้าใจนี้เปิดโอกาสให้โลกแห่งการพัฒนาแอปพลิเคชันแบบกระจายอำนาจและการมีส่วนร่วมในระบบนิเวศบล็อกเชน

แนะนำสกุลเงิน

ยินดีต้อนรับสู่บทที่ 3! ในบทนี้ เราจะมุ่งเน้นไปที่การประยุกต์ใช้แนวคิดและไวยากรณ์ที่เราได้เรียนรู้จากบทเรียนก่อนหน้านี้เพื่อพัฒนาสัญญาอัจฉริยะ Ethereum โดยใช้ Vyper กับ Remix IDE เราจะสร้าง ปรับใช้ และโต้ตอบกับสัญญาอัจฉริยะง่ายๆ เพื่อให้คุณสัมผัสประสบการณ์จริงกับ Vyper และ Ethereum สัญญาฉบับแรกจะเป็นสัญญาการจัดเก็บข้อมูลอย่างง่าย ในขณะที่สัญญาฉบับที่สองจะจำลองระบบการลงคะแนนขั้นพื้นฐาน

SimpleStorage: ข้อมูลเบื้องต้นเกี่ยวกับสัญญาอัจฉริยะ

สัญญาแรกที่เราจะปรับใช้คือ SimpleStorage สัญญานี้เป็นสัญญาการจัดเก็บข้อมูลแบบธรรมดาที่จัดเก็บหมายเลขเดียวตามชื่อ SimpleStorage ประกอบด้วยตัวแปร storedData และสองฟังก์ชันคือ set และ get ฟังก์ชัน set ช่วยให้ผู้ใช้สามารถจัดเก็บตัวเลขได้ และฟังก์ชัน get ช่วยให้ใครก็ตามสามารถดึงข้อมูลหมายเลขนี้ได้

การปรับใช้และการโต้ตอบกับ SimpleStorage

เราจะทำตามขั้นตอนต่างๆ เพื่อปรับใช้และโต้ตอบกับสัญญา SimpleStorage บน Ethereum blockchain การปรับใช้สัญญากับบล็อกเชน Ethereum เป็นกระบวนการในการส่งไบต์โค้ดและ ABI ของสัญญาไปยังเครือข่าย Ethereum จากจุดที่สามารถเรียกและดำเนินการได้ เมื่อปรับใช้สัญญาแล้ว สัญญาจะได้รับที่อยู่เฉพาะที่สามารถติดต่อได้

นี่คือรหัสสำหรับ SimpleStorage:

Python 
 # @title SimpleStorage 
 ข้อมูลที่เก็บไว้: int128 

 @external 
 def set (x: int128): 
 self.storedData = x 

 @external 
 def get () -> int128: 
 ส่งคืน self.storedData

ในสัญญานี้ เรากำหนดตัวแปรจำนวนเต็มสาธารณะ storedData set(x: int128) เพื่อตั้งค่าของ storedData และฟังก์ชันคงที่สาธารณะ get() -> int128 เพื่อดึงค่าปัจจุบันของ storedData

คำแนะนำทีละขั้นตอนเกี่ยวกับวิธีการปรับใช้สัญญานี้โดยใช้ Remix:

  1. เปิดเว็บเบราว์เซอร์ของคุณแล้วไปที่ Remix Ethereum IDE

  2. เปิดใช้งานปลั๊กอิน Vyper

  3. สลับสภาพแวดล้อมเป็น Injected Web3 ในส่วน Deploy & Run Transactions วิธีนี้จะเชื่อมต่อ Remix กับกระเป๋าเงิน MetaMask ของคุณ

  4. ในส่วน File Explorer คลิกที่ไอคอน + เพื่อสร้างไฟล์ใหม่ ตั้งชื่อมันว่า SimpleStorage.vy

  5. วางรหัสสัญญา SimpleStorage ลงในไฟล์ใหม่นี้

  6. ตอนนี้ไปที่แท็บ VyperCompile และเลือกสัญญา SimpleStorage

  7. สลับไปที่แท็บ Deploy & Run Transactions จากนั้นคลิกที่ปุ่ม Deploy

  8. MetaMask จะเปิดป๊อปอัปยืนยันธุรกรรม ยืนยันการทำธุรกรรม

  9. หลังจากยืนยันธุรกรรมแล้ว คุณจะเห็นสัญญา SimpleStorage ที่ปรับใช้ในส่วน Deployed Contracts

  10. ตอนนี้คุณสามารถโต้ตอบกับสัญญาได้แล้ว ตัวอย่างเช่น หากต้องการจัดเก็บตัวเลข ให้ป้อนตัวเลขในฟังก์ชัน set แล้วคลิก transact หากต้องการดึงหมายเลขที่เก็บไว้ให้คลิก get

SimpleVoting: สัญญาที่ซับซ้อนยิ่งขึ้น

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

การปรับใช้และการโต้ตอบกับ SimpleVoting

สัญญา SimpleVoting นั้นซับซ้อนกว่า SimpleStorage เล็กน้อย ใน SimpleVoting เราจะมีรายชื่อผู้สมัคร โดยแต่ละรายการจะแสดงด้วยสตริง

นี่คือรหัสสำหรับ SimpleVoting:

Python 
 # สัญญาการลงคะแนนเสียงของ Vyper 

 # ประกาศตัวแปรสถานะ `โหวต` เป็น HashMap เพื่อจัดเก็บคะแนนโหวตสำหรับผู้สมัครแต่ละคน
โหวต: HashMap [bytes32, uint256] 

 @ ภายนอก 
 def โหวต (ผู้สมัคร: bytes32): 
 """ 
 ลงคะแนนให้ผู้สมัคร

    อาร์กิวเมนต์: ผู้สมัคร 
 คน: bytes32 - ตัวระบุของผู้สมัครที่จะลงคะแนนให้
    """ 
 # เพิ่มการนับคะแนนของผู้สมัครที่ระบุ
    self.votes[ผู้สมัคร] += 1 

 @external 
 @view 
 def get_votes(candidate: bytes32) -> uint256: 
 """ 
 รับจำนวนโหวตทั้งหมดสำหรับผู้สมัคร

    อาร์กิวเมนต์: ผู้สมัคร 
 คน: bytes32 - ตัวระบุของผู้สมัครที่จะรับคะแนนโหวต

    ส่งคืน: 
 uint256 - จำนวนคะแนนเสียงทั้งหมดที่ผู้สมัครได้รับ
    """ 
 คืน self.votes [ผู้สมัคร]

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

บทสรุปและขั้นตอนต่อไป

คุณได้สร้างพื้นฐานที่มั่นคงสำหรับการเขียนโปรแกรมบล็อคเชนกับ Vyper เมื่อจบหลักสูตรนี้ ตอนนี้คุณมีความเข้าใจอย่างมั่นคงเกี่ยวกับ Ethereum, สัญญาอัจฉริยะ และวิธีการสร้างมันใน Remix IDE ด้วย Vyper ความเข้าใจนี้เปิดโอกาสให้โลกแห่งการพัฒนาแอปพลิเคชันแบบกระจายอำนาจและการมีส่วนร่วมในระบบนิเวศบล็อกเชน

เพื่อพัฒนาทักษะและความรู้ของคุณเพิ่มเติม ให้พิจารณาสำรวจด้านต่อไปนี้:

  1. การเขียนโปรแกรม Solidity ขั้นสูง: Solidity เป็นอีกหนึ่งภาษาการเขียนโปรแกรมยอดนิยมสำหรับ Ethereum smart Contract Learning Solidity จะขยายความสามารถของคุณในการทำงานกับสัญญาที่มีอยู่และสนับสนุนชุมชน Ethereum ตรวจสอบหลักสูตรของเราที่นี่: [แทรกลิงก์หลักสูตร Solidity เมื่อออนไลน์]

  2. การพัฒนาแอปพลิเคชันแบบกระจายอำนาจ (DApp): เจาะลึกลงไปอีกในการสร้างแอปพลิเคชันแบบกระจายอำนาจที่สมบูรณ์โดยการรวมสัญญาอัจฉริยะเข้ากับการพัฒนาส่วนหน้าโดยใช้เฟรมเวิร์ก เช่น Web3.js, React หรือ Vue.js สิ่งนี้จะช่วยให้คุณสามารถสร้างส่วนต่อประสานผู้ใช้แบบโต้ตอบที่โต้ตอบกับสัญญาอัจฉริยะของคุณ

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

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

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表Gate Learn赞同其观点或证实其描述。