COMPΞZ 🧬
بخش تخصصی دوم (بهروز رسانی Solidity) |سربارگذاری توابع (Function Overloading) در سالیدیتی، یک قرارداد میتواند چندین تابع با نام یکسان اما با انواع پارامترهای متفاوت داشته باشد. این فرایند «اضافه بارگذاری» (overloading) نامیده میشود و برای توابع به ارثرسیده…
بخش تخصصی دوم (بهروز رسانی Solidity) |حل توابع اضافه بار (Overloaded Functions) و تطبیق آرگومان
توابع اضافه بار بر اساس تطبیق اعلان توابع در محدوده فعلی با آرگومان های ارائه شده در فراخوانی تابع انتخاب می شوند. اگر تمام آرگومان ها بتوانند به طور ضمنی به انواع مورد انتظار تبدیل شوند، توابع به عنوان کاندیدای اضافه بار انتخاب می شوند. اگر به طور دقیقاً یک کاندیدا وجود نداشته باشد، حل مشکل با شکست مواجه می شود.
فراخوانی f(50) منجر به خطای نوع داده خواهد شد زیرا 50 هم به نوع uint8 و هم به نوع uint256 قابل تبدیل است. از طرف دیگر، f(256) به f(uint256) ترجمه می شود زیرا 256 به طور ضمنی به uint8 قابل تبدیل نیست.
#solidity #web3 #update #ether #اتریوم
توابع اضافه بار بر اساس تطبیق اعلان توابع در محدوده فعلی با آرگومان های ارائه شده در فراخوانی تابع انتخاب می شوند. اگر تمام آرگومان ها بتوانند به طور ضمنی به انواع مورد انتظار تبدیل شوند، توابع به عنوان کاندیدای اضافه بار انتخاب می شوند. اگر به طور دقیقاً یک کاندیدا وجود نداشته باشد، حل مشکل با شکست مواجه می شود.
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.16 <0.9.0;
contract A {
function f(uint8 val) public pure returns (uint8 out) {
out = val;
}
function f(uint256 val) public pure returns (uint256 out) {
out = val;
}
}
فراخوانی f(50) منجر به خطای نوع داده خواهد شد زیرا 50 هم به نوع uint8 و هم به نوع uint256 قابل تبدیل است. از طرف دیگر، f(256) به f(uint256) ترجمه می شود زیرا 256 به طور ضمنی به uint8 قابل تبدیل نیست.
#solidity #web3 #update #ether #اتریوم
معروفترین و خفنترینشون روی ISP آمازون پشتیبانی میشه.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
COMPΞZ 🧬
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
COMPΞZ 🧬
GM ~ 65536 Square https://warpcast.com/compez.eth/0xfce0992b
راز نهفتهٔ قطعهٔ 6️⃣ 3️⃣ 5️⃣ 5️⃣ 6️⃣ اینطور هست
در این تصویر، اعداد مفهومی ۰ و ۱ را در مرکز خواهید یافت که از طریق تولید تصادفی رنگ، بین روشن و تاریک تغییر میکنند. با دقت بیشتر، هشت ذرهٔ اطراف را مشاهده خواهید کرد که هرکدام مفهوم خاص خود را دارند.
🔹 راز تراکنش در بلاکچین
۶۴ بلوک اول، با اندازهی کوچکتر، نشاندهندهٔ یک تراکنش روی بلاکچین هستند. مقدار واقعی، ۶۴ کاراکتر بعد از 0x است که نشاندهندهی آدرس اولین تراکنش خریدار است و توسط Punk 6529 تأیید شده است.
🔹 یگانگی اثر
این اثر کاملاً منحصربهفرد است، زیرا هر بار که تولید میشود، تمام بلوکهای ایجاد شده متفاوت از یکدیگر خواهند بود. یعنی حالتهای آنها (۰/۱) تغییر میکنند و فقط تعداد محدودی از آنها میتوانند تولید شوند.
🔹 ویژگیهای اثر ۳۶,۸۶۴
عدد ۳۶,۸۶۴ یک عدد مرکب زوج است که از حاصلضرب دو عدد اول تشکیل شده است.
🔹 نسل بعدی این اثر، عدد ۶۵,۵۳۶ خواهد بود!
عدد ۶۵,۵۳۶ یک عدد طبیعی است که در علوم مختلف، بهویژه در علوم کامپیوتر و ریاضیات، اهمیت زیادی دارد.
چرا ۶۵,۵۳۶ مهم است؟
🔹 توان ۲:
عدد ۶۵,۵۳۶ برابر با ۲^۱۶ است، یعنی ۲ را ۱۶ بار در خودش ضرب کنیم. این ویژگی آن را در نمایش باینری، آدرسدهی حافظه، و سایر حوزههایی که توانهای ۲ اهمیت دارند، مهم میسازد.
🔹 نمایش باینری:
در قالب باینری، ۶۵,۵۳۶ به صورت 10000000000000000 نمایش داده میشود. این ساختار به دلیل داشتن ۱۶ صفر متوالی، در پردازشهای کامپیوتری کاربرد زیادی دارد.
🔹 حافظه:
در محاسبات، اندازههای حافظه معمولاً بر اساس توانهای ۲ تعیین میشوند. ۶۵,۵۳۶ بایت معادل ۶۴ کیلوبایت است که یک واحد مناسب برای اندازهگیری حافظه محسوب میشود.
🔹 پروتکل اینترنت (IP):
در IPv4، ۶۵,۵۳۶ تعداد پورتهای TCP/IP است که نقش مهمی در ارتباطات شبکه دارد.
🔹 اهمیت در ریاضیات:
عدد ۶۵,۵۳۶ بهعنوان یک توان از ۲، در مفاهیم رشد نمایی و سایر محاسبات ریاضی کاربرد دارد.
🔹 علوم کامپیوتر:
بسیاری از سیستمهای کامپیوتری بر پایه معماری ۱۶ بیتی طراحی شدهاند و این عدد در مدیریت دادهها و آدرسدهی بسیار مهم است.
🔹 بیتکوین و بلاکهای فشرده:
در بیتکوین، محدودیت ۱۶ بیتی در شاخص تراکنشها باعث شده بود که هر بلاک فقط ۶۵,۵۳۶ تراکنش داشته باشد. این محدودیت در بلاکهای بزرگتر از ۴ مگابایت مشکلساز میشد، اما با تغییر به ۳۲ بیت، مشکل برطرف شد.
🔹 جمعبندی:
عدد ۶۵,۵۳۶ به دلیل نمایش باینری، ویژگی توان ۲، و نقش کلیدی در آدرسدهی حافظه، شبکه، و برنامههای محاسباتی، اهمیت زیادی در علوم کامپیوتر و ریاضیات دارد.
در این تصویر، اعداد مفهومی ۰ و ۱ را در مرکز خواهید یافت که از طریق تولید تصادفی رنگ، بین روشن و تاریک تغییر میکنند. با دقت بیشتر، هشت ذرهٔ اطراف را مشاهده خواهید کرد که هرکدام مفهوم خاص خود را دارند.
🔹 راز تراکنش در بلاکچین
۶۴ بلوک اول، با اندازهی کوچکتر، نشاندهندهٔ یک تراکنش روی بلاکچین هستند. مقدار واقعی، ۶۴ کاراکتر بعد از 0x است که نشاندهندهی آدرس اولین تراکنش خریدار است و توسط Punk 6529 تأیید شده است.
🔹 یگانگی اثر
این اثر کاملاً منحصربهفرد است، زیرا هر بار که تولید میشود، تمام بلوکهای ایجاد شده متفاوت از یکدیگر خواهند بود. یعنی حالتهای آنها (۰/۱) تغییر میکنند و فقط تعداد محدودی از آنها میتوانند تولید شوند.
🔹 ویژگیهای اثر ۳۶,۸۶۴
عدد ۳۶,۸۶۴ یک عدد مرکب زوج است که از حاصلضرب دو عدد اول تشکیل شده است.
🔹 نسل بعدی این اثر، عدد ۶۵,۵۳۶ خواهد بود!
عدد ۶۵,۵۳۶ یک عدد طبیعی است که در علوم مختلف، بهویژه در علوم کامپیوتر و ریاضیات، اهمیت زیادی دارد.
چرا ۶۵,۵۳۶ مهم است؟
🔹 توان ۲:
عدد ۶۵,۵۳۶ برابر با ۲^۱۶ است، یعنی ۲ را ۱۶ بار در خودش ضرب کنیم. این ویژگی آن را در نمایش باینری، آدرسدهی حافظه، و سایر حوزههایی که توانهای ۲ اهمیت دارند، مهم میسازد.
🔹 نمایش باینری:
در قالب باینری، ۶۵,۵۳۶ به صورت 10000000000000000 نمایش داده میشود. این ساختار به دلیل داشتن ۱۶ صفر متوالی، در پردازشهای کامپیوتری کاربرد زیادی دارد.
🔹 حافظه:
در محاسبات، اندازههای حافظه معمولاً بر اساس توانهای ۲ تعیین میشوند. ۶۵,۵۳۶ بایت معادل ۶۴ کیلوبایت است که یک واحد مناسب برای اندازهگیری حافظه محسوب میشود.
🔹 پروتکل اینترنت (IP):
در IPv4، ۶۵,۵۳۶ تعداد پورتهای TCP/IP است که نقش مهمی در ارتباطات شبکه دارد.
🔹 اهمیت در ریاضیات:
عدد ۶۵,۵۳۶ بهعنوان یک توان از ۲، در مفاهیم رشد نمایی و سایر محاسبات ریاضی کاربرد دارد.
🔹 علوم کامپیوتر:
بسیاری از سیستمهای کامپیوتری بر پایه معماری ۱۶ بیتی طراحی شدهاند و این عدد در مدیریت دادهها و آدرسدهی بسیار مهم است.
🔹 بیتکوین و بلاکهای فشرده:
در بیتکوین، محدودیت ۱۶ بیتی در شاخص تراکنشها باعث شده بود که هر بلاک فقط ۶۵,۵۳۶ تراکنش داشته باشد. این محدودیت در بلاکهای بزرگتر از ۴ مگابایت مشکلساز میشد، اما با تغییر به ۳۲ بیت، مشکل برطرف شد.
🔹 جمعبندی:
عدد ۶۵,۵۳۶ به دلیل نمایش باینری، ویژگی توان ۲، و نقش کلیدی در آدرسدهی حافظه، شبکه، و برنامههای محاسباتی، اهمیت زیادی در علوم کامپیوتر و ریاضیات دارد.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
COMPΞZ 🧬
راز نهفتهٔ قطعهٔ 6️⃣ 3️⃣ 5️⃣ 5️⃣ 6️⃣ اینطور هست در این تصویر، اعداد مفهومی ۰ و ۱ را در مرکز خواهید یافت که از طریق تولید تصادفی رنگ، بین روشن و تاریک تغییر میکنند. با دقت بیشتر، هشت ذرهٔ اطراف را مشاهده خواهید کرد که هرکدام مفهوم خاص خود را دارند. 🔹 راز تراکنش…
جزئیات فنی و علمیتر.
انقدر خاص بود که براش یه قرارداد اختصاصی نوشتم.
قراردادی با عنوان CPZ داره که خودش مشتق شدهٔ قرارداد ERC721Creator از نوع پروکسی هست که از قرارداد Proxy ارثبری میکنه، درواقع چنین کلاس انتزاعی داریم:
این قرارداد انتزاعی یک تابع بازگشتی ارائه میکنه که با استفاده از ماشین مجازی اتریوم (EVM) همهٔ تماسها رو به قرارداد دیگری واگذار میکنه.
انقدر خاص بود که براش یه قرارداد اختصاصی نوشتم.
قراردادی با عنوان CPZ داره که خودش مشتق شدهٔ قرارداد ERC721Creator از نوع پروکسی هست که از قرارداد Proxy ارثبری میکنه، درواقع چنین کلاس انتزاعی داریم:
abstract contract Proxy {}این قرارداد انتزاعی یک تابع بازگشتی ارائه میکنه که با استفاده از ماشین مجازی اتریوم (EVM) همهٔ تماسها رو به قرارداد دیگری واگذار میکنه.
Unreal Engine ⭐ vs Unity ⚡️
فرق این دو موتور چیه؟🎮
هر دو با ++C ساخته شدن، اما Unreal Engine (UE) برای بازیهای AAA طراحی شده! محیطی پیچیده، قدرتمند و مملو از قابلیتهای پیشرفته که دستت رو در توسعهٔ بازیهای گرافیکی سطح بالا باز میذاره. اگر میخوای یه بازی خارقالعاده بسازی که گیمر رو میخکوب کنه، UE انتخاب اولته!
مزایای UE:
✅ تعامل قوی با ++C
✅ سیستم Blueprint برای توسعه سریعتر
✅ گرافیک فوقالعاده با جدیدترین تکنولوژیهای نورپردازی و فیزیک
✅ کاملاً رایگان، تا وقتی که درآمد بازی از ۱ میلیون دلار بیشتر بشه! بعدش فقط ۵٪ سود رو بهشون میدی.
حالا یونیتی چی؟
اگرچه Unity هم موتور قدرتمندیه، اما بیشتر برای بازیهای موبایل و دوبعدی استفاده میشه. نمونه موفقش؟ Clash of Clans که با یونیتی ساخته شده!
اما از نظر هزینه، بهصرفه نیست، چون نسخه رایگانش محدودیتهای زیادی داره.
پس انتخاب من؟
بدون شک Unreal Engine! چون اگر بازی AAA میسازی، UE یه سر و گردن بالاتر از بقیهست.
🔥 تا بحث بعدی، بهدرود
فرق این دو موتور چیه؟
هر دو با ++C ساخته شدن، اما Unreal Engine (UE) برای بازیهای AAA طراحی شده! محیطی پیچیده، قدرتمند و مملو از قابلیتهای پیشرفته که دستت رو در توسعهٔ بازیهای گرافیکی سطح بالا باز میذاره. اگر میخوای یه بازی خارقالعاده بسازی که گیمر رو میخکوب کنه، UE انتخاب اولته!
مزایای UE:
✅ تعامل قوی با ++C
✅ سیستم Blueprint برای توسعه سریعتر
✅ گرافیک فوقالعاده با جدیدترین تکنولوژیهای نورپردازی و فیزیک
✅ کاملاً رایگان، تا وقتی که درآمد بازی از ۱ میلیون دلار بیشتر بشه! بعدش فقط ۵٪ سود رو بهشون میدی.
حالا یونیتی چی؟
اگرچه Unity هم موتور قدرتمندیه، اما بیشتر برای بازیهای موبایل و دوبعدی استفاده میشه. نمونه موفقش؟ Clash of Clans که با یونیتی ساخته شده!
اما از نظر هزینه، بهصرفه نیست، چون نسخه رایگانش محدودیتهای زیادی داره.
پس انتخاب من؟
بدون شک Unreal Engine! چون اگر بازی AAA میسازی، UE یه سر و گردن بالاتر از بقیهست.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
تابع std::ranges::starts_with در استاندارد ۲۳ معرفی شده است که بررسی میکند آیا یک محدوده با یک محدودهٔ دیگر شروع میشود یا خیر. تابع ابتدا اندازه دو محدوده ([first1, last1) و [first2, last2)) را مقایسه میکند. اگر اندازه محدوده اول کوچکتر از اندازه محدوده دوم باشد، تابع false را برمیگرداند.
به طور کلی بررسی اینکه آیا یک رشته با یک پیشوند خاص شروع میشود یا خیر، یا اینکه بررسی شروع یک دنبالهٔ خاص در یک آرایه را ارزیابی میکند.
در این مثال، تابع std::ranges::starts_with بررسی میکند که آیا آرایه numbers با دو عدد زوج شروع میشود یا خیر. برای این کار، از تابع is_even به عنوان تابع مقایسه استفاده میشود.
#cpp20 #cpp23 #ranges #starts_with #ranges_starts_with #چالش #سیروزه #رمضان #روز_بیست_و_هفتم
به طور کلی بررسی اینکه آیا یک رشته با یک پیشوند خاص شروع میشود یا خیر، یا اینکه بررسی شروع یک دنبالهٔ خاص در یک آرایه را ارزیابی میکند.
import std;
bool is_even(int x) {
return x % 2 == 0;
}
auto main() -> int {
int numbers[] = {1, 2, 3, 4, 5};
bool starts_with_even = std::ranges::starts_with(numbers, numbers + 2, is_even);
if (starts_with_even) {
std::println("Yes, the first two numbers are even.");
} else {
std::println("No, the first two numbers are not even.");
}
}
در این مثال، تابع std::ranges::starts_with بررسی میکند که آیا آرایه numbers با دو عدد زوج شروع میشود یا خیر. برای این کار، از تابع is_even به عنوان تابع مقایسه استفاده میشود.
#cpp20 #cpp23 #ranges #starts_with #ranges_starts_with #چالش #سیروزه #رمضان #روز_بیست_و_هفتم
COMPΞZ 🧬
تابع std::ranges::starts_with در استاندارد ۲۳ معرفی شده است که بررسی میکند آیا یک محدوده با یک محدودهٔ دیگر شروع میشود یا خیر. تابع ابتدا اندازه دو محدوده ([first1, last1) و [first2, last2)) را مقایسه میکند. اگر اندازه محدوده اول کوچکتر از اندازه محدوده…
بخش تخصصی دوم (بهروز رسانی Solidity) |جایگزینسازی (بازنویسی) توابع
در سالیدیتی، قراردادهای پایه (Base Contract) میتوانند رفتاری که توابع آنها انجام میدهند را با استفاده از ارثبری (Inheritance) تغییر دهند، به شرطی که این توابع با کلیدواژه virtual مشخص شده باشند. تابعی که جایگزین تابع دیگر میشود (Overriding Function) باید از کلیدواژه override در تعریف خود استفاده کند.
محدودیتهای تغییر رفتار در بازنویسی:
- تنها محدودیت در جایگزینسازی، تغییر دسترسی (Visibility) تابع از external به public است.
- قابلیت تغییر وضعیت (Mutability) تابع میتواند به حالت سختگیرانهتری تغییر کند.
این ترتیب به صورت زیر است:
- وضعیت nonpayable میتواند به view و pure تغییر یابد.
- وضعیت view میتواند به pure تغییر یابد.
- وضعیت payable یک استثنا است و نمیتواند به هیچ حالت دیگری از Mutability تغییر یابد.
#solidity #web3 #update #ether #اتریوم
در سالیدیتی، قراردادهای پایه (Base Contract) میتوانند رفتاری که توابع آنها انجام میدهند را با استفاده از ارثبری (Inheritance) تغییر دهند، به شرطی که این توابع با کلیدواژه virtual مشخص شده باشند. تابعی که جایگزین تابع دیگر میشود (Overriding Function) باید از کلیدواژه override در تعریف خود استفاده کند.
محدودیتهای تغییر رفتار در بازنویسی:
- تنها محدودیت در جایگزینسازی، تغییر دسترسی (Visibility) تابع از external به public است.
- قابلیت تغییر وضعیت (Mutability) تابع میتواند به حالت سختگیرانهتری تغییر کند.
این ترتیب به صورت زیر است:
- وضعیت nonpayable میتواند به view و pure تغییر یابد.
- وضعیت view میتواند به pure تغییر یابد.
- وضعیت payable یک استثنا است و نمیتواند به هیچ حالت دیگری از Mutability تغییر یابد.
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
contract Base {
function foo() virtual external view {}
}
contract Middle is Base {}
contract Inherited is Middle {
function foo() override public pure {}
}
#solidity #web3 #update #ether #اتریوم
دنیا پر از مگسهایی است که به زنبورها میگویند چطور عسل بسازند! 🐝
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3💯2👍1👀1
هر موقع یک فایل دیجیتالی روی بستر شبکهٔ بلاکچین بارگذاری میشه؛ به عنوان توکن شناخته میشه. در اصل شبکه یک قرارداد هوشمند به فایل ضمیمه میکنه و این ترکیب رو به عنوان مفهوم توکن میشناسه. ماهیت و جنس این موضوع یک قرارداد هوشمند یا به عنوانی یک سند مالکیت هستش که به نام خالق اثر ثبت میشه و منحصراً روی تمامی حالاتی که به نوعی با حقوق مالکیت مرتبط هستند اشاره میکنه.
بخشی از دنیای FOSS برای همین موضوع هست که ما به واسطهٔ خاصیتهای ساخت و توسعه، تغییرات و مجوزهای ذکر شده، مشخص میکنیم که خالق چه چیزی هستیم و به مرور زمان ارزش دارایی ما هرچند متنباز، به چه سطحی میرسه! به💸 بیتکوین بنگرید، اما من در خصوص توکنهای غیر قابل تعویض توضیح خواهم داد که اصلاً چی هستند.
در مورد بلاکچین خودتون تحقیق کنید توضیحات مفصل isj" من فقط یک ریسمانی از برداشتهای خودم رو بهتون انتقال میدم تا بدونید قضیهٔ NFTsها چه چیزی هستش.
بنابراین، با شِمایههای متعددی که، توکنهای غیر قابل تعویض (NFT) از طریق کدهای هوشمند بلاکچین ارائه میده، ارزش اثرات خلق شده از کد و غیر کد به شکلهای مختلفی تجلای اونها میشه که به صورت زیر هستش:
۱) مالکیت و اثبات اصالت: ارزش اصلی NFT به خاطر مالکیت داراییهای دیجیتال و اثرات خلق شده از کد بوده و با کمک کدهای هوشمند بلاکچین، مالکیت این داراییها به صورت یکتا و غیر قابل تعویض تأیید میشود. این اصالت نشاندهندهٔ محتوای منحصر به فرد و اثر خلق شده توسط خالق است که میتواند به طور قانونی تأیید شود. این به معنای این است که شما واقعاً مالک آن اثر هستید و میتوانید به عنوان مالک آن ادعا کنید، چرا که از نظر حقوقی و قانونی اهمیت دارد و به شما امکان حصول از حقوق مالکیت و کنترل کامل بر اثر خلاقیتی را میدهد.
۲) انتقالپذیری و بازار معاملاتی: کدهای هوشمند به نحوی طراحی شدهاند که انتقالپذیری NFT را بین کاربران امکانپذیر میسازند. این امکان ایجاد بازار معاملاتی برای داراییها و اثرات خلق شده را فراهم میکند و باعث ارتقاء ارزش آنها میشود.
۳) تعیین شرایط و حقوق خالق: کدهای هوشمند میتوانند در قراردادهای NFT شرایط معینی را برای استفاده از داراییها و اثرات خلق شده را تعیین کنند. به عنوان مثال، میتوانند نسبت به هر فروش دومی یک مبلغ به خالق تعلق دهند که این امر به هنرمندان و خالقان اثر ارتقاء انگیزه میدهد و حتی مالکات دوم و بعدی را تشویق برای معاملات بیشتر جهت کسب ارزش بیشتر از اثر را فراهم میسازد.
۴) جمعآوری کارهای هنری: کدهای هوشمند میتوانند نحوهٔ جمعآوری کارهای هنری و اثرات خلق شده را تنظیم کنند. این اجازه را به ارتباطدهندگان و طرفهای خریدار این داراییها میدهد و باعث افزایش ارتباطات فرهنگی و هنری میشود. از طریق خرید NFT، شما نه تنها از آثار هنری و خلاقیت هنرمندان حمایت میکنید، بلکه ارتباط عمیقتری با آنها ایجاد میشود. این ارتباطگیری اجتماعی به هنرمندان انگیزه میدهد و آنها را تشویق میکند تا کارهای خلاقانهتری انجام دهند.
۵) اثبات منشأ و ارزش کار: کدهای هوشمند میتوانند مشخصات منحصر به فرد هنرمندان و خالقان اثر را در NFT ثبت کنند. این امر میتواند در تعیین ارزش و تاریخچهٔ کار هنری و اثر خلق شده از کد موثر باشد که مشابه آن در گیتهاب به وضوح قابل اثبات است.
۶) اقتصادیسازی هنری و محتوای دیجیتال: NFTها به عنوان یک بازار معاملاتی برای هنرمندان و خالقان محتوا کار میکنند. این امکان را فراهم میکنند تا از آثار خلاقیتی آنها به عنوان یک دارایی دیجیتال بهرهمند شوند و از آن کسب درآمد کنند و هر خدمات که در راستای آن میدهند از ارزش مادی و معنوی بسیار شفافی برخوردارد شود.
خلاصهٔ موضوع، کدهای هوشمند بلاکچین و امکانات NFT به خالقان و هنرمندان اجازه میده تا ارزش اثر خلق شدهٔ خود را بهتر تعیین کنند، آثار خود را به صورت یکتا عرضه کنند و از بازار معاملاتی پویا برای داراییها و اثرات خلق شدهٔ خود بهرهمند شوند. همچنین، این فناوری اطمینان میدهند که مالکیت داراییها به شکلی امن و قانونی تأیید و اثبات شده است.
#نکته #بلاکچین #انافتی #NFT #NFTs #Blockchain #Art #Code #کد
بخشی از دنیای FOSS برای همین موضوع هست که ما به واسطهٔ خاصیتهای ساخت و توسعه، تغییرات و مجوزهای ذکر شده، مشخص میکنیم که خالق چه چیزی هستیم و به مرور زمان ارزش دارایی ما هرچند متنباز، به چه سطحی میرسه! به
در مورد بلاکچین خودتون تحقیق کنید توضیحات مفصل isj" من فقط یک ریسمانی از برداشتهای خودم رو بهتون انتقال میدم تا بدونید قضیهٔ NFTsها چه چیزی هستش.
بنابراین، با شِمایههای متعددی که، توکنهای غیر قابل تعویض (NFT) از طریق کدهای هوشمند بلاکچین ارائه میده، ارزش اثرات خلق شده از کد و غیر کد به شکلهای مختلفی تجلای اونها میشه که به صورت زیر هستش:
۱) مالکیت و اثبات اصالت: ارزش اصلی NFT به خاطر مالکیت داراییهای دیجیتال و اثرات خلق شده از کد بوده و با کمک کدهای هوشمند بلاکچین، مالکیت این داراییها به صورت یکتا و غیر قابل تعویض تأیید میشود. این اصالت نشاندهندهٔ محتوای منحصر به فرد و اثر خلق شده توسط خالق است که میتواند به طور قانونی تأیید شود. این به معنای این است که شما واقعاً مالک آن اثر هستید و میتوانید به عنوان مالک آن ادعا کنید، چرا که از نظر حقوقی و قانونی اهمیت دارد و به شما امکان حصول از حقوق مالکیت و کنترل کامل بر اثر خلاقیتی را میدهد.
۲) انتقالپذیری و بازار معاملاتی: کدهای هوشمند به نحوی طراحی شدهاند که انتقالپذیری NFT را بین کاربران امکانپذیر میسازند. این امکان ایجاد بازار معاملاتی برای داراییها و اثرات خلق شده را فراهم میکند و باعث ارتقاء ارزش آنها میشود.
۳) تعیین شرایط و حقوق خالق: کدهای هوشمند میتوانند در قراردادهای NFT شرایط معینی را برای استفاده از داراییها و اثرات خلق شده را تعیین کنند. به عنوان مثال، میتوانند نسبت به هر فروش دومی یک مبلغ به خالق تعلق دهند که این امر به هنرمندان و خالقان اثر ارتقاء انگیزه میدهد و حتی مالکات دوم و بعدی را تشویق برای معاملات بیشتر جهت کسب ارزش بیشتر از اثر را فراهم میسازد.
۴) جمعآوری کارهای هنری: کدهای هوشمند میتوانند نحوهٔ جمعآوری کارهای هنری و اثرات خلق شده را تنظیم کنند. این اجازه را به ارتباطدهندگان و طرفهای خریدار این داراییها میدهد و باعث افزایش ارتباطات فرهنگی و هنری میشود. از طریق خرید NFT، شما نه تنها از آثار هنری و خلاقیت هنرمندان حمایت میکنید، بلکه ارتباط عمیقتری با آنها ایجاد میشود. این ارتباطگیری اجتماعی به هنرمندان انگیزه میدهد و آنها را تشویق میکند تا کارهای خلاقانهتری انجام دهند.
۵) اثبات منشأ و ارزش کار: کدهای هوشمند میتوانند مشخصات منحصر به فرد هنرمندان و خالقان اثر را در NFT ثبت کنند. این امر میتواند در تعیین ارزش و تاریخچهٔ کار هنری و اثر خلق شده از کد موثر باشد که مشابه آن در گیتهاب به وضوح قابل اثبات است.
۶) اقتصادیسازی هنری و محتوای دیجیتال: NFTها به عنوان یک بازار معاملاتی برای هنرمندان و خالقان محتوا کار میکنند. این امکان را فراهم میکنند تا از آثار خلاقیتی آنها به عنوان یک دارایی دیجیتال بهرهمند شوند و از آن کسب درآمد کنند و هر خدمات که در راستای آن میدهند از ارزش مادی و معنوی بسیار شفافی برخوردارد شود.
خلاصهٔ موضوع، کدهای هوشمند بلاکچین و امکانات NFT به خالقان و هنرمندان اجازه میده تا ارزش اثر خلق شدهٔ خود را بهتر تعیین کنند، آثار خود را به صورت یکتا عرضه کنند و از بازار معاملاتی پویا برای داراییها و اثرات خلق شدهٔ خود بهرهمند شوند. همچنین، این فناوری اطمینان میدهند که مالکیت داراییها به شکلی امن و قانونی تأیید و اثبات شده است.
#نکته #بلاکچین #انافتی #NFT #NFTs #Blockchain #Art #Code #کد
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
Warpcast
C O M P Ξ Z on Warpcast
GM | Superboard #58 https://imagedelivery.net/BXluQx4ige9GuW0Ia56BHw/e91be827-3677-47ab-c209-b1dc15824100/original
❤1
از امروز دیگه نام و اصطلاح فریم منسوخ شده اعلام شد و جایگزینش Mini-App است.
به دلیل ماهیت وموفقیت فریمهای نسل دوم، و شباهت بسیار زیادشون با Mini-Appهای تلگرام؛ از این به بعد ابزارهایی که در فارکستر میسازیم به نام Mini-App شناخته میشن.
فرصت و زیرساختها و تمام مستندات و پتانسیلهای ساخت و توسعه در یک مسیر بهتری قرار گرفته.
نکته) احتمال تغییر نام کلاینت اختصاصی فارکستر از Warpcast به Farcaster هم وجود داره، نهایی نشده.
به دلیل ماهیت وموفقیت فریمهای نسل دوم، و شباهت بسیار زیادشون با Mini-Appهای تلگرام؛ از این به بعد ابزارهایی که در فارکستر میسازیم به نام Mini-App شناخته میشن.
فرصت و زیرساختها و تمام مستندات و پتانسیلهای ساخت و توسعه در یک مسیر بهتری قرار گرفته.
نکته) احتمال تغییر نام کلاینت اختصاصی فارکستر از Warpcast به Farcaster هم وجود داره، نهایی نشده.
👍6
COMPΞZ 🧬
خب! درود بر برنامهنویس عالم! چالش سی روزه رو آغاز میکنم 🫵🏼✍🏼 اما هدف آموزش نحوهٔ کدنویسی با C++23 و Solidity. شما هم میتونید نکته برداری کنید، منم هدفم اینه هرچی به روز رسانی کردم رو یادداشت کنم تا دوباره برای خودم مرور بشه. هیچ سخت نیست، تنهایی پیش…
تابع std::ranges::end_with بررسی میکند که آیا یک محدوده (Range) با یک محدوده دیگر به عنوان پسوند (Suffix) خودش به پایان میرسد یا خیر. به عبارتی دیگر، بررسی میکند که آیا انتهای محدوده اول با محدوده دوم مطابقت دارد یا خیر.
فرض کنید یک آرایه از اعداد صحیح به نام numbers با مقادیر ۱ تا ۵ وجود دارد و میخواهیم بررسی کنیم که آیا این آرایه با عدد ۳ به پایان میرسد یا خیر.
#cpp20 #cpp23 #ranges #end_with #ranges_end_with #چالش #سیروزه #رمضان #روز_بیست_و_هشتم
فرض کنید یک آرایه از اعداد صحیح به نام numbers با مقادیر ۱ تا ۵ وجود دارد و میخواهیم بررسی کنیم که آیا این آرایه با عدد ۳ به پایان میرسد یا خیر.
import std;
bool numbers[] = {1, 2, 3, 4, 5};
// Check if the array numbers ends with 3
bool ends_with_three = std::ranges::end_with(numbers, numbers + sizeof(numbers) / sizeof(numbers[0]), [](int a, int b) { return a == b; });
if (ends_with_three) {
std::println("The array ends with 3.");
} else {
std::println("The array does not end with 3.");
}
#cpp20 #cpp23 #ranges #end_with #ranges_end_with #چالش #سیروزه #رمضان #روز_بیست_و_هشتم
COMPΞZ 🧬
تابع std::ranges::end_with بررسی میکند که آیا یک محدوده (Range) با یک محدوده دیگر به عنوان پسوند (Suffix) خودش به پایان میرسد یا خیر. به عبارتی دیگر، بررسی میکند که آیا انتهای محدوده اول با محدوده دوم مطابقت دارد یا خیر. فرض کنید یک آرایه از اعداد صحیح…
بخش تخصصی دوم (بهروز رسانی Solidity) | ارثبری چندگانه
در ارثبری چندگانه، قراردادهای پایه مشتقشدهتر (Most Derived Base Contracts) که یک تابع مشابه را تعریف میکنند، باید به طور صریح بعد از کلیدواژه override مشخص شوند. به عبارت دیگر، شما باید تمام قراردادهای پایهای را که همان تابع را تعریف میکنند و هنوز توسط قرارداد پایه دیگری (در مسیر دیگری از نمودار ارثبری) جایگزین نشدهاند، مشخص کنید.
همچنین، اگر یک قرارداد یک تابع را از چندین پایهی (غیرمرتبط) به ارث ببرد، باید آن را به طور صریح جایگزین کند:
چه زمانی نیازی به مشخص کردن صریح override نیست؟
اگر تابع در یک قرارداد پایهی مشترک تعریف شده باشد و یا یک تابع منحصربهفرد در یک قرارداد پایهی مشترک وجود داشته باشد که قبلاً تمام توابع دیگر را جایگزین کرده باشد، نیازی به مشخص کردن صریح override نیست.
قوانین دقیقتر برای مشخص کردن override:
به طور رسمی، نیازی نیست که تابعی را که به طور مستقیم یا غیرمستقیم از چندین پایه به ارث رسیده است، جایگزین کنید (override)؛ به شرطی که:
۱) یک قرارداد پایه وجود داشته باشد که بخشی از تمام مسیرهای جایگزینی برای امضا (Signature) باشد.
۲) آن قرارداد پایه، تابع را پیادهسازی کند (Implement) و هیچ مسیری از قرارداد جاری به آن قرارداد پایهای، به تابعی با آن امضا اشاره نکند.
۳) یا آن قرارداد پایه، تابع را پیادهسازی نکند و حداکثر یک اشاره به آن تابع در تمام مسیرها از قرارداد جاری به آن قرارداد پایه وجود داشته باشد.
مسیر جایگزینی برای یک امضا (Override Path):
- مسیر جایگزینی برای یک امضا، مسیری در نمودار ارثبری است که از قرارداد تحت بررسی شروع میشود و به قراردادی ختم میشود که به تابعی با آن امضا اشاره میکند و آن را جایگزین نمیکند.
عدم استفاده از virtual:
- اگر تابعی را که جایگزین میکند با virtual علامتگذاری نکنید، قراردادهای مشتقشده دیگر نمیتوانند رفتار آن تابع را تغییر دهند.
نکات مهم:
- توابع با دسترسی private نمیتوانند virtual باشند.
- توابع بدون پیادهسازی (Implementation) باید در خارج از رابطها (Interface) با virtual علامتگذاری شوند. در رابطها، تمام توابع به طور خودکار virtual در نظر گرفته میشوند.
در ارثبری چندگانه، قراردادهای پایه مشتقشدهتر (Most Derived Base Contracts) که یک تابع مشابه را تعریف میکنند، باید به طور صریح بعد از کلیدواژه override مشخص شوند. به عبارت دیگر، شما باید تمام قراردادهای پایهای را که همان تابع را تعریف میکنند و هنوز توسط قرارداد پایه دیگری (در مسیر دیگری از نمودار ارثبری) جایگزین نشدهاند، مشخص کنید.
همچنین، اگر یک قرارداد یک تابع را از چندین پایهی (غیرمرتبط) به ارث ببرد، باید آن را به طور صریح جایگزین کند:
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.6.0 <0.9.0;
contract Base1
{
function foo() virtual public {}
}
contract Base2
{
function foo() virtual public {}
}
contract Inherited is Base1, Base2
{
// Derives from multiple bases defining foo(), so we must explicitly
// override it
function foo() public override(Base1, Base2) {}
}
چه زمانی نیازی به مشخص کردن صریح override نیست؟
اگر تابع در یک قرارداد پایهی مشترک تعریف شده باشد و یا یک تابع منحصربهفرد در یک قرارداد پایهی مشترک وجود داشته باشد که قبلاً تمام توابع دیگر را جایگزین کرده باشد، نیازی به مشخص کردن صریح override نیست.
قوانین دقیقتر برای مشخص کردن override:
به طور رسمی، نیازی نیست که تابعی را که به طور مستقیم یا غیرمستقیم از چندین پایه به ارث رسیده است، جایگزین کنید (override)؛ به شرطی که:
۱) یک قرارداد پایه وجود داشته باشد که بخشی از تمام مسیرهای جایگزینی برای امضا (Signature) باشد.
۲) آن قرارداد پایه، تابع را پیادهسازی کند (Implement) و هیچ مسیری از قرارداد جاری به آن قرارداد پایهای، به تابعی با آن امضا اشاره نکند.
۳) یا آن قرارداد پایه، تابع را پیادهسازی نکند و حداکثر یک اشاره به آن تابع در تمام مسیرها از قرارداد جاری به آن قرارداد پایه وجود داشته باشد.
مسیر جایگزینی برای یک امضا (Override Path):
- مسیر جایگزینی برای یک امضا، مسیری در نمودار ارثبری است که از قرارداد تحت بررسی شروع میشود و به قراردادی ختم میشود که به تابعی با آن امضا اشاره میکند و آن را جایگزین نمیکند.
عدم استفاده از virtual:
- اگر تابعی را که جایگزین میکند با virtual علامتگذاری نکنید، قراردادهای مشتقشده دیگر نمیتوانند رفتار آن تابع را تغییر دهند.
نکات مهم:
- توابع با دسترسی private نمیتوانند virtual باشند.
- توابع بدون پیادهسازی (Implementation) باید در خارج از رابطها (Interface) با virtual علامتگذاری شوند. در رابطها، تمام توابع به طور خودکار virtual در نظر گرفته میشوند.
وضعیت بازار در مورد بیت و اتریوم از نظر شخصی من 🕯
-🪙 بیتکوین در شکستن کانالی که انتظار داشتیم، تا حد بسیاری نا موفق بوده؛ پس انتظار میره در صورت بسته شدن کندل ماهانه به شکل منفی، اصلاح بیشتری ازش ببینیم. البته طبیعی هست! کل وضعیت بیتکوین نرمال و سالمه چون به هر حال سقفهای قبلی خودش رو پودر کرده.
-🔷 اما متأسفانه نظرم در مورد اتریوم اصلاً خوب نیست! با وجود اینهمه تبلیغ و زحمت و تلاش روی شبکهٔ اتریوم، حتی موفق نبوده تا سقف سالها قبل خودش رو بشکنه! این فاجعست!!! اگه حمایتی شکل بگیره، همین نقطهها وقتشه! اما به نظر میرسه اتریوم دیگه همون اتریوم زمان ۲۰۲۱ نیست! در حالی که بیت، خیلی راحت ATH زده و این اصلاح هرچقدر هم عمیق باشه، حتی تا کانال ۶۰، باز هم منطقیه! چون تازه میرسیم به سقف قبلی خودش.
من که ضررهای سنگینی گذاشتم، پودر شدم اساسی و کل تلاشهای ۱ سالهٔ اخیرم ناکام شد؛ اما عنوان بخش مهمی از تجربیات ازشون استفاده خواهم کرد!
نقشهای که برای خودم میکشم اینه که احتمالاً روی تراکنش روی شبکهٔ بیتکوین هم متمرکز بشم و اگه قرار باشه از پروژهای رو نمایی کنم که مبتنی بر بلاکچین هست از شبکهٔ لایتینگ بیتکوین به عنوان یک جایگزین شبکههای رایج اتریومی به عنوان یک تعادلساز برای توسعه استفاده خواهم کرد.
- من معتقدم که برای پیشروی بهتر، شبکهٔ L1 اتریوم باید تقویت بشه.
- شبکهٔ L2 روی Base باید روی پروژههای واقعی متمرکز بشه، نه اینهمه اسکم و چرت و پرت که اطمینان به شبکههای مبتنی بر اتریوم رو به این روز انداخته.
- لایهٔ L3 میتونه یک تعادل برای بهبود و جذب نظر سرمایهگذاران بین شبکه لایه ۱ و ۲ باشه، در صورتی که واقعاً ایدههای کاربردی خوبی پیادهسازی کنیم وضعیت اتر میتونه بهبود پیدا کنه.
نظر شخصی، DYOR با خودتون.
-
-
من که ضررهای سنگینی گذاشتم، پودر شدم اساسی و کل تلاشهای ۱ سالهٔ اخیرم ناکام شد؛ اما عنوان بخش مهمی از تجربیات ازشون استفاده خواهم کرد!
نقشهای که برای خودم میکشم اینه که احتمالاً روی تراکنش روی شبکهٔ بیتکوین هم متمرکز بشم و اگه قرار باشه از پروژهای رو نمایی کنم که مبتنی بر بلاکچین هست از شبکهٔ لایتینگ بیتکوین به عنوان یک جایگزین شبکههای رایج اتریومی به عنوان یک تعادلساز برای توسعه استفاده خواهم کرد.
- من معتقدم که برای پیشروی بهتر، شبکهٔ L1 اتریوم باید تقویت بشه.
- شبکهٔ L2 روی Base باید روی پروژههای واقعی متمرکز بشه، نه اینهمه اسکم و چرت و پرت که اطمینان به شبکههای مبتنی بر اتریوم رو به این روز انداخته.
- لایهٔ L3 میتونه یک تعادل برای بهبود و جذب نظر سرمایهگذاران بین شبکه لایه ۱ و ۲ باشه، در صورتی که واقعاً ایدههای کاربردی خوبی پیادهسازی کنیم وضعیت اتر میتونه بهبود پیدا کنه.
نظر شخصی، DYOR با خودتون.
Please open Telegram to view this post
VIEW IN TELEGRAM
😢2
COMPΞZ 🧬
در حد اینکه فکر کنم و احتمال بدم، من ۱۰۰۰ و زیر هزار دلار یعنی بازهٔ ۹۰۰ تا ۸۰۰ دلار رو هم برای اتریوم میبینم. اما همش احتمال هست! ممکنه هیچوقت رخ نده. به هیچ عنوان روش حساب باز نکنید که این فقط احتمال شخصیِ بلند مدت با توجه به ادامهٔ روند فعلیش هست. 😉😊…
متأسفانه به این تحلیل هنوز هم معتقدم.
وقتی اینجا برسه، آلتهای بعد از اتریوم پودر میشن.
هرچی آتآشغال باشه تو بازار به فنا میره و الک میشه. لایهٔ ۱ باید حمایت بشه، لایهٔ ۲ بیش از حد و اندازه برای هر کسی شده منبع کلاهبرداری تا خدمات!
یکی از دلایل عدم پایداری اتریوم همین هست که هر احمقی میتونه روش توکن بسازه سر مردم شیره بماله.
کی به کیه! قرارداد بنویس بگو من توکن دادم بیرون! مخصوصاً این توکنهای مبتنی بر هوش مصنوعی که دیگه شده تاناکورا طرف تو عمرش یه خط برنامهنویسی نکرده ولی ادعای خفن بودن میکنه!😐
وقتی اینجا برسه، آلتهای بعد از اتریوم پودر میشن.
هرچی آتآشغال باشه تو بازار به فنا میره و الک میشه. لایهٔ ۱ باید حمایت بشه، لایهٔ ۲ بیش از حد و اندازه برای هر کسی شده منبع کلاهبرداری تا خدمات!
یکی از دلایل عدم پایداری اتریوم همین هست که هر احمقی میتونه روش توکن بسازه سر مردم شیره بماله.
کی به کیه! قرارداد بنویس بگو من توکن دادم بیرون! مخصوصاً این توکنهای مبتنی بر هوش مصنوعی که دیگه شده تاناکورا طرف تو عمرش یه خط برنامهنویسی نکرده ولی ادعای خفن بودن میکنه!😐
👍1
COMPΞZ 🧬
متأسفانه به این تحلیل هنوز هم معتقدم. وقتی اینجا برسه، آلتهای بعد از اتریوم پودر میشن. هرچی آتآشغال باشه تو بازار به فنا میره و الک میشه. لایهٔ ۱ باید حمایت بشه، لایهٔ ۲ بیش از حد و اندازه برای هر کسی شده منبع کلاهبرداری تا خدمات! یکی از دلایل عدم پایداری…
این شاخص ترس و طمع هم که سیگنال خوبی داده، ادامهدار هست اما وقتی اینجا هستی دیگه دست به چیزی نزن شُل کن. 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1