آنچه در این مقاله میخوانید [پنهانسازی]
Oracle ها در بلاکچینها به عنوان واسطههایی عمل میکنند که اطلاعات از دنیای خارج از بلاکچین را به قراردادهای هوشمند منتقل میکنند. در اینجا یک راهنمای ساده برای ساخت یک اوراکل در سالیدیتی ارائه میشود.
سرفصل های مقاله
گام ۱: طراحی قرارداد اوراکل در سالیدیتی
اولین قدم، نوشتن قرارداد Oracle است. قرارداد زیر یک Oracle ساده را نشان میدهد که میتواند دادهها را ذخیره کند و قابلیت بهروزرسانی آنها را دارد.
// SPDX-License-Identifier: MIT
pragma solidity ^.8.;
contract SimpleOracle {
string public data;
address public owner;
event DataUpdated(string newData);
constructor() {
owner = msg.sender; // تعیین مالک قرارداد
}
modifier onlyOwner() {
require(msg.sender == owner, "Only owner can update the data");
_;
}
function updateData(string memory newData) public onlyOwner {
data = newData;
emit DataUpdated(newData); // انتشار رویداد
}
}
گام ۲: کامپایل و دیپلوی قرارداد اوراکل در سالیدیتی
- در Remix، کد بالا را در یک فایل جدید (مثلاً SimpleOracle.sol) قرار دهید.
- کامپایل: به زبانه “Solidity Compiler” بروید و بر روی “Compile SimpleOracle.sol” کلیک کنید.
- دیپلوی: به زبانه “Deploy & Run Transactions” بروید و قرارداد را با کیف پول خود دیپلوی کنید.
گام ۳: استفاده از Oracle
پس از دیپلوی قرارداد، میتوانید داده Oracle خود را با استفاده از تابع updateData() بهروزرسانی کنید. فقط مالک قرارداد میتواند این تابع را فراخوانی کند.
گام ۴: دریافت داده
میتوانید با دسترسی به متغیر data، داده را دریافت کنید. به سادگی میتوانید از تابع data() که به صورت عمومی در قرارداد تعریف شده استفاده کنید.
نکات مهم
- فراخوانی دادهها: برای بهروزرسانی مقادیر Oracle، شما نیاز دارید که کاربر یا تأمینکننده دادهها با استفاده از تابع updateData() این کار را انجام دهد.
- مدیریت دسترسی: میتوانید با اضافه کردن مجوزها و قابلیتهای محدودکننده به قرارداد، امنیت بیشتری را فراهم کنید.
نتیجه گیری
Oracle ها نقش حیاتی در ارتباط قراردادهای هوشمند با دنیای واقعی ایفا میکنند. با پیروی از این مراحل، شما میتوانید یک Oracle ساده در سالیدیتی بسازید و دادهها را مدیریت کنید. در پروژههای بزرگتر، میتوانید برای بهدست آوردن دادهها از API های خارجی یا سیستمهای پیچیدهتری استفاده کنید.
یادش بخیر یه زمانی نصب و کانفیگ اوراکل خودش یه پروژه بود و بعضا چند روز درگیرش بودیم :)) یادگیری اوراکل هم بستگی داره چه پروژه هایی بخواهید کار کنید ولی یادگیریش خالی از لطف نیست، گرچه ممکنه برای بعضی ها چالش برانگیز باشه