สร้าง Oracle Chainlink ของคุณบน Ethereum
ในบทความที่แล้ว ฉันได้จัดทำคำแนะนำสำหรับการติดตั้งโหนด Chainlink ของคุณ ใช้คำแนะนำนี้หากคุณไม่มีโหนดที่ทำงานอยู่ เนื่องจากจำเป็นสำหรับการปรับใช้ Oracle
ขั้นตอนต่อไปคือการปรับใช้สัญญา oracle และเชื่อมโยงกับโหนด
สัญญา oracle เป็นคอมโพเนนต์แบบ on-chain สำหรับบริการ oracle: รับฟังคำขอข้อมูลจากสัญญาอื่นๆ ส่งต่อการสืบค้นข้อมูลไปยังโหนด oracle และกระจายข้อมูลที่ส่งคืนไปยังสัญญาของลูกค้า สัญญานี้อาจทำการคำนวณจุดข้อมูลที่ส่งคืนเพื่อสร้างมูลค่ารวมที่ส่งไปยังสัญญาที่ร้องขอ
เราจำเป็นต้องปรับใช้หนึ่งในสัญญาเช่นOracle.solหรือOperator.solบน บล็อกเชน
Oracle.solเป็นสัญญาประเภทเก่าที่ไม่รองรับ "การตอบกลับจำนวนมาก" และด้วยเหตุนี้จึงไม่รองรับการตอบกลับแบบหลายคำ Operator.solเป็นรูปแบบใหม่ที่รองรับการตอบสนองจำนวนมากแต่กินน้ำมันมากกว่า
เลือกประเภทของสัญญาตามงานของคุณ: หากคุณต้องการได้รับการตอบกลับสั้นๆ ด้วยตัวแปรเดียว ให้เลือก — Oracle.solและถ้าคุณต้องการส่งคืนค่าหลายค่าให้กับสัญญา — Operator.sol
ฉันจะแสดงตัวอย่างวิธีกำหนดค่าทั้งสองตัวเลือก เริ่มจากOracle.solกันก่อน
ในการปรับใช้สัญญา เราจะใช้Remixใช่ คุณยังสามารถใช้เครื่องมือต่างๆ เช่นหมวกนิรภัยหรือTruffleได้ แต่ในคำแนะนำ ฉันจะดูตัวอย่างRemix
ในการปรับใช้ สัญญา Oracle.solให้คัดลอกรหัสต่อไปนี้:
// SPDX-License-Identifier: MIT
pragma solidity 0.6.6;
import "@chainlink/contracts/src/v0.6/Oracle.sol";
ถัดไป ไปที่แท็บการปรับใช้ และเลือกสภาพแวดล้อมที่ต้องการ เช่น Injected Provider — Metamask เชื่อมต่อกับบัญชีที่จะใช้สำหรับการปรับใช้และระบุเครือข่ายที่ต้องการ
ในการปรับใช้ ให้เลือกสัญญาOracle และตั้งค่าพารามิเตอร์ — ที่อยู่ของสัญญา LINK ในเครือข่ายที่ระบุ ( ค้นหาได้ในเอกสารประกอบของ Chainlink ) และคลิกปุ่มธุรกรรม
ต่อไป เราต้องอนุญาตให้กระเป๋าเงินของโหนดของเราบันทึกผลลัพธ์ของฟังก์ชันออราเคิล ที่อยู่กระเป๋าเงินของโหนดจะอยู่ใน Chainlink Operator GUI ที่มุมขวาบนของโฮมเพจ คัดลอก เรียกใช้ ฟังก์ชันสัญญา setFulfillmentPermission Oracle วางลงในอาร์กิวเมนต์และตั้งค่าเป็นtrue
เพียงเท่านี้ ในขั้นตอนนี้ คุณได้ปรับใช้ oracle ของคุณแล้ว คุณเพียงแค่ต้องเชื่อมต่อการโต้ตอบกับมันกับสัญญาอัจฉริยะอื่น
แล้ว สัญญา Operator.solจะปรับใช้อย่างไร
ตกลง เมื่อต้องการทำเช่นนี้ ให้คัดลอกรหัสต่อไปนี้:
// SPDX-License-Identifier: MIT
pragma solidity 0.7.6;
import "@chainlink/contracts/src/v0.7/Operator.sol";
หลังจากปรับใช้สัญญา เช่นเดียวกับก่อนหน้าใน สัญญา Oracle.solเราจำเป็นต้องเพิ่มที่อยู่กระเป๋าเงินของโหนด ในการทำเช่นนี้ ให้เรียกใช้ ฟังก์ชัน setAuthorizedSendersและใส่ที่อยู่ในรูปแบบต่อไปนี้ลงในอาร์กิวเมนต์: ["address"]
คุณได้ปรับใช้สัญญา oracle ของคุณอย่างสมบูรณ์แล้ว ในบทความถัดไป ฉันจะเขียนเกี่ยวกับวิธีที่สัญญาอัจฉริยะสามารถโต้ตอบกับ oracle