Lição 1

ภาพรวมของตลาดกระจายอำนาจและ Remix IDE

ในบทนี้ เราจะเรียนรู้ก่อนว่าตลาดแบบกระจายอำนาจคืออะไรและดำเนินการอย่างไร จากนั้น เราจะทำความคุ้นเคยกับ Remix IDE และเขียนสัญญา Solidity แบบง่ายๆ

ทำความเข้าใจกับตลาดกระจายอำนาจ

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

ในทางกลับกัน ตลาดที่มีการกระจายอำนาจใช้ประโยชน์จากเทคโนโลยีบล็อกเชนเพื่อเปิดใช้งานการทำธุรกรรมแบบ peer-to-peer โดยไม่ต้องมีคนกลาง ขจัดความจำเป็นในการไว้วางใจเนื่องจากธุรกรรมมีความโปร่งใสและตรวจสอบได้โดยผู้เข้าร่วมทั้งหมดในบล็อกเชน ตัวอย่างของตลาดที่มีการกระจายอำนาจ ได้แก่ OpenBazaar และ Origin Protocol

ข้อมูลเบื้องต้นเกี่ยวกับ Remix IDE

Remix IDE (Integrated Development Environment) เป็นเครื่องมือโอเพ่นซอร์สที่ทรงพลังซึ่งออกแบบมาโดยเฉพาะสำหรับการพัฒนาสัญญาอัจฉริยะ Ethereum มันทำงานโดยตรงบนเว็บเบราว์เซอร์ของคุณ ดังนั้นคุณไม่จำเป็นต้องติดตั้งอะไรบนคอมพิวเตอร์ของคุณ

คุณสามารถเข้าถึง Remix IDE ได้ที่ https://remix.ethereum.org เมื่อคุณเปิด Remix ในเบราว์เซอร์ คุณจะพบแผงสามแผง:

  1. แผงด้านซ้าย: นี่คือที่ที่คุณสามารถสร้าง นำเข้า และจัดการไฟล์ Solidity ของคุณได้ นอกจากนี้ยังมีปลั๊กอินต่างๆ สำหรับการคอมไพล์ ทดสอบ ดีบัก และปรับใช้สัญญาของคุณ

  2. แผงกลาง: นี่คือเครื่องมือแก้ไขโค้ดของคุณ ที่นี่คุณจะเขียนและแก้ไขโค้ด Solidity ของคุณ

  3. แผงด้านขวา: แผงนี้มีเครื่องมือต่างๆ ในการรวบรวมสัญญาของคุณ ปรับใช้บนเครือข่าย Ethereum (ไม่ว่าจะบนเครือข่าย Ethereum จริงหรือการจำลอง JavaScript VM) และโต้ตอบกับสัญญาที่ปรับใช้ของคุณ

สัญญาความมั่นคงฉบับแรกของคุณ: สัญญา "รายการ"

ในส่วนนี้ เราจะเขียนสัญญา Solidity ฉบับแรกของเรา สัญญานี้จะเป็นตัวแทนของ "สินค้า" พื้นฐานในตลาดของเรา

ในการเริ่มต้น ให้สร้างไฟล์ใหม่ใน Remix โดยคลิกที่ไอคอนที่สองจากด้านบนบนแผงด้านซ้าย (ไอคอนไฟล์) กล่องโต้ตอบใหม่จะปรากฏบนแผงกลาง ป้อน Item.sol เป็นชื่อไฟล์แล้วคลิก "ตกลง"

ตอนนี้เราสามารถเริ่มเขียนสัญญาของเราได้แล้ว:

ความแข็งแกร่ง 
 // SPDX-License-Identifier: ความแข็งแกร่งของ MIT 
 pragma ^0.8.6; 

 รายการสัญญา { 
 // กำหนดเหตุการณ์ที่จะเริ่มทำงานเมื่อมีการสร้างรายการใหม่ 
 เหตุการณ์ NewItem(uint itemId, string itemName, uint itemPrice); 

 // แต่ละรายการมี id, ชื่อ และราคา 
 struct ItemStruct {
        string name;
        uint price;
    }

    // อาร์เรย์เพื่อเก็บรายการทั้งหมด 
 ItemStruct[] รายการสาธารณะ; 

 // ฟังก์ชั่นสร้างรายการใหม่ 
 ฟังก์ชั่น createItem(string memory _name, uint _price) public {
        items.push(ItemStruct(_name, _price));
        emit NewItem(items.length - 1, _name, _price);
    }
}

มาอธิบายส่วนต่างๆ ของสัญญานี้กัน:

  1. ตัวระบุใบอนุญาต SPDX: นี่เป็นวิธีมาตรฐานในการแสดงใบอนุญาตของสัญญา บรรทัด // SPDX-License-Identifier: MIT ระบุว่าสัญญาของเราใช้ใบอนุญาต MIT ที่ได้รับอนุญาต

  2. คำสั่ง Pragma: pragma solidity ^0.8.6; ระบุว่าสัญญาเขียนด้วย Solidity เวอร์ชัน 0.8.6 สัญลักษณ์ ^ หมายความว่าจะเข้ากันได้กับเวอร์ชันใหม่ ๆ จนถึงเวอร์ชัน 0.9.0 แต่ไม่รวม

  3. คำจำกัดความของสัญญา: contract Item {...} กำหนดสัญญาใหม่ที่เรียกว่า Item นี่คือที่ที่เราเขียนตัวแปรสถานะและฟังก์ชันของสัญญา

  4. คำจำกัดความของเหตุการณ์: event NewItem(uint itemId, string itemName, uint itemPrice); กำหนดเหตุการณ์ที่เราสามารถปล่อยออกมาเมื่อใดก็ตามที่มีการสร้างรายการใหม่ กิจกรรมเป็นช่องทางหนึ่งสำหรับสัญญาอัจฉริยะในการบันทึกกิจกรรมที่บุคคลภายนอกสามารถรับฟังได้

  5. คำจำกัดความของโครงสร้าง: struct ItemStruct {...} กำหนดชนิดข้อมูลใหม่ ItemStruct ซึ่งแสดงถึงรายการที่มี name และ price

  6. ตัวแปรสถานะ: ItemStruct[] public items; ประกาศ items ตัวแปรสถานะที่เก็บอาร์เรย์ของ ItemStructs คีย์เวิร์ด public จะสร้างฟังก์ชัน getter โดยอัตโนมัติเพื่อให้ทุกคนสามารถเข้าถึงรายการได้

  7. คำจำกัดความของฟังก์ชัน: function createItem(string memory _name, uint _price) public {...} กำหนดฟังก์ชันสาธารณะที่ใครๆ ก็สามารถเรียกใช้เพื่อสร้างไอเท็มใหม่ได้ ฟังก์ชันรับชื่อและราคา สร้าง ItemStruct ใหม่ เพิ่มลงในอาร์เรย์ items และส่งเหตุการณ์ NewItem
    หากต้องการรวบรวมสัญญานี้ ให้ไปที่แผงด้านขวาแล้วคลิกไอคอนที่สามจากด้านบน (โลโก้ Solidity) ที่นี่คุณสามารถรวบรวมสัญญา คลิกปุ่ม "คอมไพล์" และหากไม่มีข้อผิดพลาด สัญญาของคุณจะได้รับการรวบรวมสำเร็จ

คำถามอาจปรากฏขึ้นที่แผงด้านซ้าย:

คำถามเกี่ยวกับ Swarm หรือ IPFS เป็นเรื่องเกี่ยวกับวิธีที่ Remix จะใช้ในการจัดเก็บข้อมูลเมตาของสัญญาของคุณ ไปดูกันดีกว่า:

  1. IPFS: InterPlanetary File System (IPFS) เป็นโปรโตคอลที่ออกแบบมาเพื่อสร้างเว็บแบบถาวรและกระจายอำนาจ มันเหมือนกับฝูง BitTorrent เดี่ยว ๆ ที่แลกเปลี่ยนวัตถุภายในที่เก็บ Git เดียว

  2. Swarm: Swarm เป็นแพลตฟอร์มการจัดเก็บข้อมูลแบบกระจายและบริการกระจายเนื้อหาที่มาจาก Ethereum web3 stack ช่วยให้เครือข่ายเพื่อนสามารถจัดเก็บและแจกจ่ายข้อมูลได้
    เมื่อคุณคอมไพล์สัญญา คอมไพลเลอร์ Solidity จะสร้างไฟล์ JSON ที่มี Application Binary Interface (ABI) และโค้ดไบต์ รวมถึงข้อมูลอื่นๆ สิ่งนี้เรียกว่าข้อมูลเมตาของสัญญา การจัดเก็บข้อมูลเมตานี้บนเครือข่ายการจัดเก็บข้อมูลแบบกระจายอำนาจช่วยให้แน่ใจว่าข้อมูลดังกล่าวจะพร้อมใช้งานอย่างถาวร และอาจมีประโยชน์ในการตรวจสอบซอร์สโค้ดของสัญญา

อย่างไรก็ตาม เพื่อจุดประสงค์ในการเรียนรู้ของคุณและหากคุณไม่ได้วางแผนที่จะตรวจสอบสัญญาบน Etherscan หรือ Block Explorer อื่นๆ คุณสามารถเลือก Swarm หรือ IPFS หรือคุณสามารถเพิกเฉยต่อสัญญาและย้ายไปยังขั้นตอนถัดไปของการเรียนรู้ของคุณ โปรดจำไว้ว่า จุดสนใจหลักในขั้นตอนนี้คือการทำความเข้าใจวิธีเขียน คอมไพล์ และปรับใช้สัญญา

Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa o Gate Learn.
Catálogo
Lição 1

ภาพรวมของตลาดกระจายอำนาจและ Remix IDE

ในบทนี้ เราจะเรียนรู้ก่อนว่าตลาดแบบกระจายอำนาจคืออะไรและดำเนินการอย่างไร จากนั้น เราจะทำความคุ้นเคยกับ Remix IDE และเขียนสัญญา Solidity แบบง่ายๆ

ทำความเข้าใจกับตลาดกระจายอำนาจ

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

ในทางกลับกัน ตลาดที่มีการกระจายอำนาจใช้ประโยชน์จากเทคโนโลยีบล็อกเชนเพื่อเปิดใช้งานการทำธุรกรรมแบบ peer-to-peer โดยไม่ต้องมีคนกลาง ขจัดความจำเป็นในการไว้วางใจเนื่องจากธุรกรรมมีความโปร่งใสและตรวจสอบได้โดยผู้เข้าร่วมทั้งหมดในบล็อกเชน ตัวอย่างของตลาดที่มีการกระจายอำนาจ ได้แก่ OpenBazaar และ Origin Protocol

ข้อมูลเบื้องต้นเกี่ยวกับ Remix IDE

Remix IDE (Integrated Development Environment) เป็นเครื่องมือโอเพ่นซอร์สที่ทรงพลังซึ่งออกแบบมาโดยเฉพาะสำหรับการพัฒนาสัญญาอัจฉริยะ Ethereum มันทำงานโดยตรงบนเว็บเบราว์เซอร์ของคุณ ดังนั้นคุณไม่จำเป็นต้องติดตั้งอะไรบนคอมพิวเตอร์ของคุณ

คุณสามารถเข้าถึง Remix IDE ได้ที่ https://remix.ethereum.org เมื่อคุณเปิด Remix ในเบราว์เซอร์ คุณจะพบแผงสามแผง:

  1. แผงด้านซ้าย: นี่คือที่ที่คุณสามารถสร้าง นำเข้า และจัดการไฟล์ Solidity ของคุณได้ นอกจากนี้ยังมีปลั๊กอินต่างๆ สำหรับการคอมไพล์ ทดสอบ ดีบัก และปรับใช้สัญญาของคุณ

  2. แผงกลาง: นี่คือเครื่องมือแก้ไขโค้ดของคุณ ที่นี่คุณจะเขียนและแก้ไขโค้ด Solidity ของคุณ

  3. แผงด้านขวา: แผงนี้มีเครื่องมือต่างๆ ในการรวบรวมสัญญาของคุณ ปรับใช้บนเครือข่าย Ethereum (ไม่ว่าจะบนเครือข่าย Ethereum จริงหรือการจำลอง JavaScript VM) และโต้ตอบกับสัญญาที่ปรับใช้ของคุณ

สัญญาความมั่นคงฉบับแรกของคุณ: สัญญา "รายการ"

ในส่วนนี้ เราจะเขียนสัญญา Solidity ฉบับแรกของเรา สัญญานี้จะเป็นตัวแทนของ "สินค้า" พื้นฐานในตลาดของเรา

ในการเริ่มต้น ให้สร้างไฟล์ใหม่ใน Remix โดยคลิกที่ไอคอนที่สองจากด้านบนบนแผงด้านซ้าย (ไอคอนไฟล์) กล่องโต้ตอบใหม่จะปรากฏบนแผงกลาง ป้อน Item.sol เป็นชื่อไฟล์แล้วคลิก "ตกลง"

ตอนนี้เราสามารถเริ่มเขียนสัญญาของเราได้แล้ว:

ความแข็งแกร่ง 
 // SPDX-License-Identifier: ความแข็งแกร่งของ MIT 
 pragma ^0.8.6; 

 รายการสัญญา { 
 // กำหนดเหตุการณ์ที่จะเริ่มทำงานเมื่อมีการสร้างรายการใหม่ 
 เหตุการณ์ NewItem(uint itemId, string itemName, uint itemPrice); 

 // แต่ละรายการมี id, ชื่อ และราคา 
 struct ItemStruct {
        string name;
        uint price;
    }

    // อาร์เรย์เพื่อเก็บรายการทั้งหมด 
 ItemStruct[] รายการสาธารณะ; 

 // ฟังก์ชั่นสร้างรายการใหม่ 
 ฟังก์ชั่น createItem(string memory _name, uint _price) public {
        items.push(ItemStruct(_name, _price));
        emit NewItem(items.length - 1, _name, _price);
    }
}

มาอธิบายส่วนต่างๆ ของสัญญานี้กัน:

  1. ตัวระบุใบอนุญาต SPDX: นี่เป็นวิธีมาตรฐานในการแสดงใบอนุญาตของสัญญา บรรทัด // SPDX-License-Identifier: MIT ระบุว่าสัญญาของเราใช้ใบอนุญาต MIT ที่ได้รับอนุญาต

  2. คำสั่ง Pragma: pragma solidity ^0.8.6; ระบุว่าสัญญาเขียนด้วย Solidity เวอร์ชัน 0.8.6 สัญลักษณ์ ^ หมายความว่าจะเข้ากันได้กับเวอร์ชันใหม่ ๆ จนถึงเวอร์ชัน 0.9.0 แต่ไม่รวม

  3. คำจำกัดความของสัญญา: contract Item {...} กำหนดสัญญาใหม่ที่เรียกว่า Item นี่คือที่ที่เราเขียนตัวแปรสถานะและฟังก์ชันของสัญญา

  4. คำจำกัดความของเหตุการณ์: event NewItem(uint itemId, string itemName, uint itemPrice); กำหนดเหตุการณ์ที่เราสามารถปล่อยออกมาเมื่อใดก็ตามที่มีการสร้างรายการใหม่ กิจกรรมเป็นช่องทางหนึ่งสำหรับสัญญาอัจฉริยะในการบันทึกกิจกรรมที่บุคคลภายนอกสามารถรับฟังได้

  5. คำจำกัดความของโครงสร้าง: struct ItemStruct {...} กำหนดชนิดข้อมูลใหม่ ItemStruct ซึ่งแสดงถึงรายการที่มี name และ price

  6. ตัวแปรสถานะ: ItemStruct[] public items; ประกาศ items ตัวแปรสถานะที่เก็บอาร์เรย์ของ ItemStructs คีย์เวิร์ด public จะสร้างฟังก์ชัน getter โดยอัตโนมัติเพื่อให้ทุกคนสามารถเข้าถึงรายการได้

  7. คำจำกัดความของฟังก์ชัน: function createItem(string memory _name, uint _price) public {...} กำหนดฟังก์ชันสาธารณะที่ใครๆ ก็สามารถเรียกใช้เพื่อสร้างไอเท็มใหม่ได้ ฟังก์ชันรับชื่อและราคา สร้าง ItemStruct ใหม่ เพิ่มลงในอาร์เรย์ items และส่งเหตุการณ์ NewItem
    หากต้องการรวบรวมสัญญานี้ ให้ไปที่แผงด้านขวาแล้วคลิกไอคอนที่สามจากด้านบน (โลโก้ Solidity) ที่นี่คุณสามารถรวบรวมสัญญา คลิกปุ่ม "คอมไพล์" และหากไม่มีข้อผิดพลาด สัญญาของคุณจะได้รับการรวบรวมสำเร็จ

คำถามอาจปรากฏขึ้นที่แผงด้านซ้าย:

คำถามเกี่ยวกับ Swarm หรือ IPFS เป็นเรื่องเกี่ยวกับวิธีที่ Remix จะใช้ในการจัดเก็บข้อมูลเมตาของสัญญาของคุณ ไปดูกันดีกว่า:

  1. IPFS: InterPlanetary File System (IPFS) เป็นโปรโตคอลที่ออกแบบมาเพื่อสร้างเว็บแบบถาวรและกระจายอำนาจ มันเหมือนกับฝูง BitTorrent เดี่ยว ๆ ที่แลกเปลี่ยนวัตถุภายในที่เก็บ Git เดียว

  2. Swarm: Swarm เป็นแพลตฟอร์มการจัดเก็บข้อมูลแบบกระจายและบริการกระจายเนื้อหาที่มาจาก Ethereum web3 stack ช่วยให้เครือข่ายเพื่อนสามารถจัดเก็บและแจกจ่ายข้อมูลได้
    เมื่อคุณคอมไพล์สัญญา คอมไพลเลอร์ Solidity จะสร้างไฟล์ JSON ที่มี Application Binary Interface (ABI) และโค้ดไบต์ รวมถึงข้อมูลอื่นๆ สิ่งนี้เรียกว่าข้อมูลเมตาของสัญญา การจัดเก็บข้อมูลเมตานี้บนเครือข่ายการจัดเก็บข้อมูลแบบกระจายอำนาจช่วยให้แน่ใจว่าข้อมูลดังกล่าวจะพร้อมใช้งานอย่างถาวร และอาจมีประโยชน์ในการตรวจสอบซอร์สโค้ดของสัญญา

อย่างไรก็ตาม เพื่อจุดประสงค์ในการเรียนรู้ของคุณและหากคุณไม่ได้วางแผนที่จะตรวจสอบสัญญาบน Etherscan หรือ Block Explorer อื่นๆ คุณสามารถเลือก Swarm หรือ IPFS หรือคุณสามารถเพิกเฉยต่อสัญญาและย้ายไปยังขั้นตอนถัดไปของการเรียนรู้ของคุณ โปรดจำไว้ว่า จุดสนใจหลักในขั้นตอนนี้คือการทำความเข้าใจวิธีเขียน คอมไพล์ และปรับใช้สัญญา

Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa o Gate Learn.