สร้าง Oracle Chainlink ของคุณบน Ethereum

Nov 28 2022
ในบทความที่แล้ว ฉันได้สร้างคำแนะนำสำหรับการติดตั้งโหนด Chainlink ของคุณ ใช้คำแนะนำนี้หากคุณไม่มีโหนดที่ทำงานอยู่ เนื่องจากจำเป็นสำหรับการปรับใช้ Oracle ขั้นตอนต่อไปคือการปรับใช้สัญญา oracle และเชื่อมโยงกับโหนด
ภาพถ่ายโดยฟาบิโอบน Unsplash

ในบทความที่แล้ว ฉันได้จัดทำคำแนะนำสำหรับการติดตั้งโหนด 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 ) และคลิกปุ่มธุรกรรม

การปรับใช้สัญญา Oracle.sol ใน Remix IDE

ต่อไป เราต้องอนุญาตให้กระเป๋าเงินของโหนดของเราบันทึกผลลัพธ์ของฟังก์ชันออราเคิล ที่อยู่กระเป๋าเงินของโหนดจะอยู่ใน 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";

การปรับใช้สัญญา Operator.sol ใน Remix IDE

หลังจากปรับใช้สัญญา เช่นเดียวกับก่อนหน้าใน สัญญา Oracle.solเราจำเป็นต้องเพิ่มที่อยู่กระเป๋าเงินของโหนด ในการทำเช่นนี้ ให้เรียกใช้ ฟังก์ชัน setAuthorizedSendersและใส่ที่อยู่ในรูปแบบต่อไปนี้ลงในอาร์กิวเมนต์: ["address"]

ให้สิทธิ์แก่โหนดในการบันทึกผลลัพธ์

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