<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های صالح راهپیما</title>
        <link>https://virgool.io/feed/@salehrahpeyma</link>
        <description>توسعه دهنده و کارشناس بلاک چین و قراردادهای هوشمند</description>
        <language>fa</language>
        <pubDate>2026-06-17 10:17:53</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/864444/avatar/fpJKVM.jpg?height=120&amp;width=120</url>
            <title>صالح راهپیما</title>
            <link>https://virgool.io/@salehrahpeyma</link>
        </image>

                    <item>
                <title>هوش مصنوعی متن به تصویر: میدجرنی (Midjourney)</title>
                <link>https://virgool.io/@salehrahpeyma/%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-%D9%85%D8%AA%D9%86-%D8%A8%D9%87-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1-%D9%85%DB%8C%D8%AF%D8%AC%D8%B1%D9%86%DB%8C-midjourney-lgdpydef9tux</link>
                <description>میدجرنی Midjourneyدر عصر دیجیتال، تکامل فناوری وی وقفه است. و در چشم انداز همیشه در حال تکامل هوش مصنوعی، میدجرنی در خط مقدم این تحول و تکامل قرار دارد. این ابزار کاربران را قادر می سازد تا محتوای بصری جذاب و شگفت انگیزی را خلق کنند. اگر در هر زمینه طراحی کار می کنید، هوش مصنوعی میدجرنی کار شما را متحول می کند. با میدجرنی شما توانید تصاویر با کیفیت بالا را تنها با یک متن توصیفی ساده تولید کنید.تاریخچه Midjourneyشرکت میدجرنی در کالیفرنیا آمریکا توسط دیوید هولز تاسیس شده است و برای اولین بار در ژانویه 2022 وارد نسخه آزمایشی خود شد. و در مارس 2022 سرور دیسکورد خود را ایجاد کرد.عملکرد میدجرنی (Midjourney) و تولید تصویرمیدجرنی در حال حاضر فقط از طریق ربات دیسکورد (Discord) در سرور رسمی آن قابل دسترس است. برای تولید تصاویر، کاربران از دستور imagine/ استتفاده می کنند و سپس یک پرامت را تایپ می کنند. متن توصیفی کاربر را در میدجرنی به عنوان پرامت (prompt) می شناسیم. سپس ربات میدجرنی آن پرامپت را تفسیر می کند، و بر اساس مقایسه با داده های آموزشی خود، عکس موردنظر کاربر را تولید می کند.دیسکورد Discordسرور میدجرنی - پرامپت تولید تصویربعد از تولید تصاویر میدجرنی ابزارهایی از جمله upscale برای ویرایش تصویر، و همچنین ایجاد تصاویر متنوع تر از یک تصویر انتخابی را در اختیار شما قرار می دهد. تمام مراحل کار با این ابزار را می توانید در کانال آکادمی سالچین بطور رایگان یادبگیرید و شما هم آثار شگفت انگیزی را خلق کنید.خرید اشتراک میدجرنیبرای تولید آثار هنری، باید اشتراک میدجرنی را تهیه کنید. شما می توانید در خط دستور subscribe/ را تایپ کید، با این کار لینک اشتراک پروفایل شما نمایش داده می شود و با کلیک بر روی آن به صفحه خرید اشتراک منتقل می شوید. در حال حاضر 4 سطح وجود دارد، سطح Basic که ماهیانه 10 دلار هزینه دارد و شما می توانید تا 200 تصویر را تولید کنید، سطح standard که ماهیانه 30 دلار هزینه دارد. سرعت تولید آن 15 ساعت تصویر است و نسل تولید آرام و نامحدود را در اختیار شما قرار می دهد. سطح بعدی Pro است که ماهیانه 60 دلار هزینه دارد، به نسبت طرح قبلی دو برابر سریعتر است و یک مزیت خوب آن ایجاد تصاویر به صورت خصوصی است. و در نهایت سطح Mega که ماهیانه 120 دلار هزینه دارد و علاوه بر مزایای قبلی، سرعت تولید عکس آن 4 برابر سریعتر است.پلن های اشتراک میدجرنیورژن های میدجرنیمیدجرنی مجموعه ای از نسخه های مختلف را ارائه می دهد که آخرین نسخه آن نسخه 5.2 است که در ابتدای سال 2023 منتشر شده است و به دلیل کیفیت تصاویر بهبود یافته و درک سریع ربات آن مشهور شده است.علاوه بر این نسخه 5.1 یا 5.0 ببر روی نتایج واقع گرایانه تمرکز دارد و نسخه 4 آن تاکید زیادی بر روی المان ها، مکان ها و اشیا دارد. همچنین یک نسخه Niji model 5 هم دارد که با همکاری شرکت spellbrush ساخته شده است و در سبک انیمه (نقاشی های سبک ژاپنی) و سبک های مصور کار می کند. و کاربران می توانند بر اساس نیاز خود نسخه موردنظر را انتخاب و تغییر دهند.نمونه های تصاویر تولید شده در ورژن 5.2 میدجرنی</description>
                <category>صالح راهپیما</category>
                <author>صالح راهپیما</author>
                <pubDate>Mon, 20 Nov 2023 17:38:23 +0330</pubDate>
            </item>
                    <item>
                <title>واگمی (Wagmi): کالکشن هوک های ری اکت</title>
                <link>https://virgool.io/@salehrahpeyma/%D9%88%D8%A7%DA%AF%D9%85%DB%8C-wagmi-%DA%A9%D8%A7%D9%84%DA%A9%D8%B4%D9%86-%D9%87%D9%88%DA%A9-%D9%87%D8%A7%DB%8C-%D8%B1%DB%8C-%D8%A7%DA%A9%D8%AA-pt5t7wovrrmg</link>
                <description>اگر دولوپر سالیدیتی هستید، یکی از کتابخانه ها و مجموعه های کاربردی فعلی wagmi است که خیلی میتونه به شما کمک کنه بویژه برای ارتباط با اتریوم و ساخت و ارتباط با والت ها.واگمی (wagmi) چیست؟واگمی (wagmi): یک مجموعه ای از هوک های ری اکت (React Hooks) شامل هر آنچه شما برای کار با اتریوم نیاز دارید. یکی از مهم ترین کاربردهای آن ساخت آسان &quot;Connect Wallet&quot; برای اپلیکیشن های غیرمتمرکز (dapp) ها است. بوسیله اون میتونید براحتی با قراردادهای هوشمند ارتباط برقرار کنید و در خواست هایی از جمله ذخیره سازی یا حذف را انجام بدید.یادآوری: هوک ها این امکان را فراهم می کنند که در دی اکت قابلیت تابعی و کلاس را باهم داشته باشیم. و یکی از قابلیت های مهم ری اکت یعنی state ها رو میتونیم بدون نیاز به کلاس ها به کامپوننت های تابع اضافه کنیم.ویژگی ها:بیش از 20 هوک برای کار با والت، ENS، قراردادها، تراکنش ها و ...اتصال به کیف پول داخلی برای والت های مشهور ازجمله متامسک (metamask)، کوین بیس (coinbase) و Wallet connectامکان ذخیره سازی، درخواست حذف و فراخوانی های چندگانهبازخوانی خودکار داده ها در کیف پول، بلاک و تغییرات اعمال شده در شبکهامکان استفاده از Typescriptرابط command-line برای مدیریت ABI و تولید کددارای مجموعه های آماده آموزشی در شبکه بلاکچین اتریومنصب از طریق npm:npm i wagmi ethers@^5نمونه استفاده در کد:import { WagmiConfig, createClient } from &#039;wagmi&#039;import { getDefaultProvider } from &#039;ethers&#039;const client = createClient({ autoConnect: true, provider: getDefaultProvider(),})function App() { return ( &lt;WagmiConfig client={client}&gt; &lt;Profile /&gt; &lt;/WagmiConfig&gt; )}مثال کاربردی:یکی از کاربردهای اصلی واگمی ایجاد ارتباط با کیف پول های چندگانه برای اپلیکیشن های غیر متمرکز استوالت های چندگانه در ارتباط و اتصال به dappدر این لینک میتونید ویدئو آموزشی ساخت این صفحه برای یک dapp رو ببینید.شاد و موفق باشید.</description>
                <category>صالح راهپیما</category>
                <author>صالح راهپیما</author>
                <pubDate>Fri, 17 Mar 2023 13:02:38 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش ChatGPT – تصویری (گام به گام)</title>
                <link>https://virgool.io/@salehrahpeyma/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-chatgpt-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1%DB%8C-%DA%AF%D8%A7%D9%85-%D8%A8%D9%87-%DA%AF%D8%A7%D9%85-kgf7fcf6oxg0</link>
                <description>ChatGPTچت جی پی تی میتونه دستیار مجازی شما باشه. یک نمونه اولیه از چت بات مبتنی بر هوش مصنوعی است.در ادامه آموزش گام م به گام نحوه ورود به ChatGPT و استفاده از آن را بویژه برای برنامه نویسی سالیدیتی توضیح میدهیم.چت جی پی تی (ChatGPT) چیست؟یک نمونه اولیه از چت بات مبتنی بر هوش مصنوعی است که به تازگی توسط مجموعه Open AI ارائه شده است. یکی از مزیت‌های اصلی داشتن هوش مصنوعی مثل Chat GPT اینه که به وسیله اون توانایی کاوش و یافتن راه حل‌های سریع و جدید فراهم میشه.مثل یک آدم باهوش که حافظه اون از ابتدای تاریخ تا الانه. و قدرت یادگیری بالایی داره، میتونه به همه سوالات شما پاسخ بده و مسائل پیچیده رو واستون سریع حل کنه.می تواند هر سوالی را در حوزه های تخصصی مثل فیزیک، ریاضی، برنامه نویسی و ... درک کند و بصورتدیالوگ محور پاسخ دهد.برای استفاده از Chat GPT نیازی به دانش فنی نداره. در عوض، تمام آنچه باید انجام دهید اینه که بصورت طبیعی و محاوره‌ای شروع به پرسیدن سوال از چت جی پی تی کنید.ورود به ChatGPT1. از طریق مرورگر وارد وبسایت ChatGPT شوید و بر روی Sign UP کلیک کنید.ورود به ChatGPT2. ایمیل خود را وارد کنیدایمیل خودتون را وارد کنیداگر با IP ایران وارد شده اید با خطای زیر روبرو میشوید. راه حل این است که از وی پی ان مطمئن استفاده کنید و یا از طریق سایت 403.online اپلیکشن روی دستگاه خودتون نصب کنید (مجانی IP غیر ایران به دستگاه خود میدهید)3. ایمیل خوتون رو وریفای کنید.ایمیل خودتون رو وریفای کنید.4. اسم خودتون را وارد کنیدنام خود را وارد کنید.5. یک شماره موبایل غیر ایرانی وارد کنید و کد پیامک شده را در کادر وارد نمایید.میتونید از سایت های فروش شماره مجازی مثل نامبرلند شماره مجازی تهیه کنید و در این بخش وارد کنید.شماره موبایل وارد کنید6. اگر صفحه زیر را مشاهده کردید، شما الان وارد پلتفرم شده اید و میتونید اولین سوالتون رو از چت جی پی تی بپرسید.صفحه ورود به ChatGPTسوالات خودتون رو به فارسی و انگلیسی میتونید بپرسد، اما انگلیسی بپرسید پاسخ های بهتری دریافت میکنید. میتونید ویدئو آموزشی ما رو ببینید و با چند سوال درباره برنامه نویسی سالیدیتی از جی پی تی بیشتر آشنا بشید. ممنون از همراهیتون.</description>
                <category>صالح راهپیما</category>
                <author>صالح راهپیما</author>
                <pubDate>Thu, 16 Feb 2023 19:06:00 +0330</pubDate>
            </item>
                    <item>
                <title>31 کلمه رزرو شده در سالیدیتی</title>
                <link>https://virgool.io/Solidity/31-%DA%A9%D9%84%D9%85%D9%87-%D8%B1%D8%B2%D8%B1%D9%88-%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-%D8%B3%D8%A7%D9%84%DB%8C%D8%AF%DB%8C%D8%AA%DB%8C-tb6k6o4jgxom</link>
                <description>31 کلمه رزرو شده در سالیدیتیدر زبان برنامه نویسی سالیدیتی هم مشابه سایر زبان های برنامه نویسی تعدادی کلمه رزرو شده وجود دارد که استفاده از آنها به عنوان نام متغیرها و توابع مجاز نیست و در صورت استفاده با خطای کامپایلر مواجه می شوید. در اینجا این کلمات رزرو شده در سالیدیتی رو بررسی میکنیم.کلمات رزرو شده چیست؟در هر زبان برنامه‌نویسی تعدادی کلمه‌ی از پیش تعریف شده وجود دارد که برای کامپایلر دارای معانی خاصی هستند. این کلمات کلیدی برای نوشتن منطق برنامه نویسی رزرو شده اند و در نتیجه به این کلمات در هر زبان برنامه نویسی کلمات رزرو شده یا کلمات کلیدی (Keywords) گفته می‌شود. و از آنها نمی توان به عنوان نام (Identifiers) یک متغیر، اسمارت کانترکت، اینترفیس و .... استفاده کرد.31 کلمه رزرو شده1. after2. alias3. apply4. auto5. byte6. case7. copyof8. default9. defined10. final11. implements12. in13. inline14. let15. macro16. match17. mutable18. null19. of20. partial21. promise22. reference23. relocatable24. sealed25. sizeof26. static27. supports28. switch29. typedef30. typeof31. varدر صورت استفاده چه اتفاقی می افتد؟اگر هر یک از این کلمات رزرو شده را به عنوان نام انتخاب کنید با خطای کامپایلر سالیدیتی مواجه می شوید مانند نمونه زیر:خطای کامپایلر سالیدیتی ورژن 8</description>
                <category>صالح راهپیما</category>
                <author>صالح راهپیما</author>
                <pubDate>Tue, 20 Sep 2022 08:44:20 +0430</pubDate>
            </item>
                    <item>
                <title>4 گره (نود) کلیدی در بلاکچین اتریوم</title>
                <link>https://virgool.io/@salehrahpeyma/4-%DA%AF%D8%B1%D9%87-%D9%86%D9%88%D8%AF-%DA%A9%D9%84%DB%8C%D8%AF%DB%8C-%D8%AF%D8%B1-%D8%A8%D9%84%D8%A7%DA%A9%DA%86%DB%8C%D9%86-%D8%A7%D8%AA%D8%B1%DB%8C%D9%88%D9%85-fpebzeibae0h</link>
                <description>گره های کلیدی در بلاکچین اتریوماین گره ها هستند که زیرساخت یک بلاکچین را تشکیل می دهند و نقش حیاتی در هر بلاکچین دارند. در این نوشته میخوایم این نقش مهم رو قدری موشکافانه بررسی کنیم. با من همراه باشید:گره چیست؟اول از همه ببینیم مفهوم گره یا همون نود (Node) چیه. خب میتونیم بگیم بطور معمول، یک گره را می توان به عنوان نقطه اتصالی تعریف کرد که شاخه های مختلف را به هم پیوند می دهد یا به هم متصل می کند.در اینترنت، هر دستگاه متصل به شبکه را می توان یک گره در نظر گرفت. همین امر در مورد شبکه بلاکچین نیز صدق می کند.گره بلاکچین چیست؟اساساً، گره ها یکی از مؤلفه هایی هستند که برای زیرساخت یک بلاک چین حیاتی هستند. اطلاعاتی که یک بلاکچین نگه می دارد، در گره های زنجیره بلوکی ذخیره می شود. این یعنی اینکه گره ها اساساً می توانند هر دستگاهی مانند کامپیوتر، لپ تاپ یا سرور باشند. پس هر دستگاهی که یک نسخه بارگیری شده از بلاک چین داشته باشد و در شبکه شرکت کند، عموماً به عنوان یک گره در نظر گرفته می شود.نقش گره های بلاکچیناین گره ها هستند که زیرساخت یک بلاکچین را تشکیل می دهند و همه گره ها با یکدیگر در ارتباط هستند. یعنی اینکه گره هایی که یک زنجیره بلوکی را تشکیل می دهند، دائماً داده ها را به اشتراک می گذارد تا همه گره‌ها به روز بمونند.یکی از وظایف اصلی گره های بلاکچین، اعتبارسنجی بلوک ها است. این بدان معناست که یک گره می تواند تراکنشی را که در زنجیره اتفاق می افتد بپذیرد یا رد کند. اگر گره تراکنش را بپذیرد، داده ها را در هدر بلوک های دیگر ذخیره می شود.نکته مهم اینکه علاوه بر این، گره‌ها نقاط پایانی هم هستند، به این معنی که گره‌ها راهی برای تعامل کاربران و برنامه‌ها با بلاکچین هستند. یعنی چی؟ =&gt;گره ها را می توان به عنوان دروازه هایی برای دسترسی به بلاکچین و اطلاعات آن درنظر گرفت.علاوه بر این، غیر معمول نیست که گره هایی که یک شبکه را تشکیل می دهند، عملکردهای مختلف دیگه ای هم انجام بدند. عملکردهایی که گره ها دارند می تواند به شبکه ای که آنها تشکیل می دهند بستگی داشته باشد.* از اینجا به بعد تمرکزمون روی گره های شبکه بلاکچین اتریوم هست:بلاکچین اتریوم شبکه ای از کامپیوترها است که دائماً با یکدیگر در ارتباط هستند. آنها در حال دریافت و ارسال اطلاعات به کامپیوتر های دیگه هستند که همه با هم برای تأیید تراکنش ها و تأیید پایگاه داده مشترک بلاکچین یا همون &quot;دفتر کل&quot; کار می کنند. یک گره، داده ها را از شبکه دریافت می کند و همچنین آن را به شبکه پخش می کند تا همه گره ها در هر زمان اطلاعات یکسانی داشته باشند.4 نوع گره رایج در بلاکچین اتریوم4 مدل از انواع رایج گره های شناخته شده در اتریوم عبارتند از:گره های آرشیو (بایگانی) : دارای داده از زمان بلوک جنسیس.گره های کامل (فول): یک کپی از تراکنش ها را دریافت میکند و وضعیت فعلی بلاکچین را دارند.گره های سبک: تمام حالت بلاکچین فعلی را ندارد و به یک گره کامل وابسته است. برای دستگاه هایی با حافظه کم و محاسباتی مفید است.گره های ماینر : گره های ماینر تراکنش ها را تأیید می کنند و آنها را به بلوک ها اضافه می کنند. سپس آن بلوک ها را استخراج می کنند و زنجیره بلوکی را با اثبات کار (PoW) ایمن می کنند.گره های کامل و گره های سبک که از آنها مشتق شده است.گره کامل اتریوم چیست؟گره های کامل گره هایی هستند که تراکنش های روی بلاکچین را کپی و تأیید می کنند و به حفظ وضعیت بلاکچین کمک می کنند.هر زمان که تراکنش به بلاک چین اضافه می شود، گره های کامل تایید می کنند که تراکنش با مشخصات اتریوم مطابقت دارد و با انجام این کار وضعیت فعلی بلاکچین را حفظ می کنند.تراکنش ها و بلوک هایی که با مشخصات اتریوم مطابقت ندارند کنار گذاشته می شوند. به عنوان مثال، اگر شخص A یک تراکنش انتقال 4 ETH را برای شخص B ارسال کرده باشد، اما شخص A در حساب خود ETH 1 داشته باشد، گره کامل تایید کننده تراکنش ها، این تراکنش را به عنوان نامعتبر علامت گذاری کرده و آن را حذف می کند.یک مثال دیگه بزنیم: فرض کنید کاربر A مقدار  5 ETH دارد و میخواهد 2.5 ETH را به کیف پول فرد B منتقل کند. گره‌های کامل روی کیف پول ارسالی، تأیید می‌کنند که کاربر کوین هایی را برای ارسال در دسترس دارد. هنگامی که این مورد تأیید شد (توسط گره های کامل دریافت کننده)، ماینرها یک بلوک ایجاد می کنند و تراکنش را از طریق اثبات کار تأیید می کنند.گره های کامل نیز هر زمان که تراکنش قرارداد هوشمند (smart contract) وجود داشته باشد، تمام دستورالعمل های قرارداد هوشمند را اجرا می کنند. بررسی می کند که آیا اجرای قرارداد هوشمند خروجی مورد نظر را می دهد یا خیر.نکته: یک گره کامل، وضعیت 128 بلوک اخیر را ذخیره می کند و حدود یک هفته از ردیابی داده ها آپدیت میشود.گره کامل در بلاکچین اتریومملزومات سخت افزاری برای اجرای یک گره کامل در بلاکچین اتریوم:حداقل یک CPU سریع 4 هسته ایحداقل 16  گیگابایت رم. یک درایو SSD سریع با حداقل 600 گیگابایت فضا. پهنای باند با حداقل سرعت 25 مگابایت بر ثانیهگره آرشیو اتریوم چیست؟گره های آرشیو، گره های کاملی هستند که با یک گزینه خاص به نام &quot;حالت بایگانی یا آرشیو&quot; اجرا می شوند. گره‌های آرشیو تمام داده‌های تاریخی بلاکچین از زمان بلوک جنسیس را دارند. اگر به داده هایی از بلوک ها قبل از 128 بلوک آخر نیاز دارید، باید به یک گره آرشیو دسترسی داشته باشید.به عنوان مثال، استفاده از دستور فراخوانی مانند eth_getBalance از یک آدرس قدیمی، فقط با یک گره آرشیو، امکان‌پذیر است.ملزومات سخت افزاری برای اجرای یک گره آرشیو در بلاکچین اتریوم:حداقل یک CPU سریع 4 هسته ایحداقل 16  گیگابایت رم.یک درایو SSD سریع با حداقل 6 ترابایت فضا.پهنای باند با حداقل سرعت 25 مگابایت بر ثانیهنکته: آخرین موردی که بررسی کردم، تا اواسط سال 2021، یک گره آرشیو بلاکچین اتریوم حدود 6.2 ترابایت فضا نیاز داره.!!نکته: میتونیم بگیم هر گره آرشیو حاوی یک تصویر کلی از اکوسیستم بلاکچین، از زمان پیدایش آن هست.نکته: گره‌های سبک هدفی مشابه با گره‌های کامل دارند، اما به‌جای نگه‌داشتن تاریخچه کامل یک بلاکچین، معمولاً یک هدر بلوکی را نگه می‌دارند که به دنبال پشتیبانی و پرس و جو از اعتبار تراکنش‌های قبلی است. هدر بلوک خلاصه ای دقیق از یک بلوک خاص است و شامل اطلاعات مربوط به بلوک قبلی خاصی است که به آن متصل است. (برای اطلاعات بیشتر میتونید پست درخت مرکل رو در پیج sal.chain نگاه کنید.)خلاصهنقش هایی که هر گره در ساختار اصلی یک بلاکچین ایفا میکند رو باهم بررسی کردیم و متوجه شدیم گره ها برای تراکنش های بلاکچین ایمن و قابل اعتماد بسیار مهم هستند و نقش کلیدی از یک شبکه بلاکچین را بازی میکنند. (لایک یادتون نره ?)</description>
                <category>صالح راهپیما</category>
                <author>صالح راهپیما</author>
                <pubDate>Tue, 21 Dec 2021 19:25:50 +0330</pubDate>
            </item>
                    <item>
                <title>کامپیایل قرارداد هوشمند در سالیدیتی</title>
                <link>https://virgool.io/@salehrahpeyma/%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D8%A7%DB%8C%D9%84-%D9%82%D8%B1%D8%A7%D8%B1%D8%AF%D8%A7%D8%AF-%D9%87%D9%88%D8%B4%D9%85%D9%86%D8%AF-%D8%AF%D8%B1-%D8%B3%D8%A7%D9%84%DB%8C%D8%AF%DB%8C%D8%AA%DB%8C-kqzodgbcgfxs</link>
                <description>کامپایل قرارداد هوشمند در سالیدیتی Solidityزبان سایدیتی (Solidity) نیز مانند سایر زبانهای برنامه نویسی دارای کامپایلر مخصوص به خودش است. کدهای سایدیتی داخل کامپایلر خود کامپایل شده و در نتیجه آن،  2 قسمت از اطلاعات را جهت استقرار تولید می کند:الف) ABIب) Bytecodeمولفه های  ABI و Bytecode چیست؟سالیدیتی یک زبان برنامه نویسی سطح بالا برای نوشتن قراردادهای هوشمند روی شبکه بلاکچین اتریوم می باشد. این زبان از زبان های برنامه نویسی پایتون، سی پلاس پلاس و جاوا اسکریپت الهام گرفته شده و برای پیاده سازی بر روی ماشین مجازی اتریوم (EVM) مورد استفاده قرار می گیرد.مولفه ABI یا Application Binary Interface در علم کامپیوتر، یعنی یک رابط بین دو ماژول برنامه. همواره Interface ها به یک سطح پایین تر یعنی ABI کامپایل میشوند.ماشین مجازی اتریوم (EVM) جزء اصلی شبکه اتریوم است (قلب اتریوم) و قرارداد هوشمند ، قطعات کد ذخیره شده در بلاکچین اتریوم است که روی EVM اجرا می شودحال توجه کنید که کدهای قرارداد هوشمند که به زبان های سطح بالا (مانند سالیدیتی) نوشته شده اند نیاز است کامپایل شوند به EVM Bytecode.پس میتونیم بگیم Bytecode یک کد قابل اجرا (سطح پایین) بر روی EVM است و ABI contract یک رابط جهت تعامل با Bytecode.مراحل کامپایل و استقرار قرارداد هوشمند در سالیدیتیبه عنوان مثال اگر شما بخواهید یک تابع را در قرارداد هوشمند را با کدهای جاوااسکریپت خودتون فراخوانی کنید، اینجاست که ABI یک نقش واسطه بین کدهای جاوااسکریپت و Bytecode در EVM ایفا می کند جهت چی؟ جهت تعامل بایکدیگر.  جزئیات بیشتر در مورد قراردادهای هوشمند رو میتونید در پیج اینستا sal.chain پیدا کنید.نکته: Bytecode برای انسان قابل خواندن نیست و تنها برای ماشین قابل خواندن است.نکته 2: ABI در فرمت فایل JSON نشان داده میشود و رمزگذاری میشود که این رمزگذاری عمدتا خودکار است و توسط کامپایلر هایی مانند Remix یا کیف پول هایی که با بلاکچین در تعامل هستند صورت میگیرد.میتونیم بگیم ABI خیلی شبیه به API یا Application Program Interface است. در واقع ABI ها متدها و ساختارهای مورد استفاده برای تعامل با قرارداد را تعریف می کند درست مانند API اما در سطح پایین تر.مثال: در شکل زیر میتونید نمونه یک قرارداد هوشمند ساده در سالیدیتی و همچینی Bytecode آن را مشاهده کنید:یک قرارداد ساده در زبان سالیدیتیبایت کد مربوط به قرارداد در زبان سالیدیتی</description>
                <category>صالح راهپیما</category>
                <author>صالح راهپیما</author>
                <pubDate>Thu, 16 Dec 2021 15:35:18 +0330</pubDate>
            </item>
                    <item>
                <title>وب 3 و بلاکچین - WEB3.0 &amp; Blockchain</title>
                <link>https://virgool.io/Solidity/%D9%88%D8%A8-3-%D9%88-%D8%A8%D9%84%D8%A7%DA%A9%DA%86%DB%8C%D9%86-web30-blockchain-uxxhjca8qrfz</link>
                <description>وب 3 و بلاکچینوب 3 از بلاکچین قدرت میگیرد و بلاکچین تمرکززدایی و امنیت را به دنبال خواهد داشت.وب 1بیاید از پیدایش اینترنت آغاز کنیم یعنی Web 1در این مرحله اغلب سایت ها استاتیک بودند و خبری از محتوای تعاملی نبود. و تعامل بسیار محدودی بین کاربران وب و وبسایت ها برقرار بود. از طرفی نحوه اتصال به اینترنت هم دیال آپ بود. کیا کیادشونه سختی وصل شدن به اینترنت با اون مودم های پر سروصدا؟!وب2اما با پیدایش web2 و  در دسترس قرار گرفتن اینترنت پرسرعت، مسیر محتوای تعاملی هم میسر شد.وب 2 با عصر رسانه های اجتماعی وارد شد و وب را تعاملی کرد. عصر دیده شدن فرا رسیده بود و سایت ها کم کم از حالت استاتیک و فقط خواندنی به سایت های پویا روی آوردند.کاربران اینترنت هم رشد چشمگیری داشت و سال 2015 تعداد استفاده کنندگان اینترنت به 2/3 میلیارد رسید.این نشونه این بود که حجم عظیمی از داده ها را با خودشون آورده بودند.به محض اینکه شرکت ها و کمپانی های بزرگ نظیر فیسبوک، آمارون یا گوگل متوجه شدند که حجم بینظیری از داده های شخصی دردسترس است، ذخیره سازی داده ها در سرورهای متمرکز را آغاز کردند.اما در Web3 منتظر چه شگفتی هستیم؟توجه کنید این تمرکز داده ها در دست غول های فناوری خیلی زود جنبه های منفی خودش را نشان داد. اینکه براحتی اطلاعات را در اختیار کمپانی های مارکتینگ قرار بدهند و کسب درآمد کنند.تکامل وب - Web3وب3وب 3 آمده است تا تمرکززدایی کند. چیزی که موردنیاز کاربران امروز وب هست. یعنی بازگرداندن قدرت به کاربران نهایی.وب 3 یک شبکه کاملا غیرمتمرکز، منصفانه و شفاف است که در آن کاربران بدون ترس از دست دادن امنیت یا حریم خصوصی خودشون، باهم تبادل می کنند.و اما اینایی که گفتیم چطوری محقق میشه؟بوسیله بلاکچین. در واقع وب 3 با بلاکچین قدرت می گیرد. تمرکز وب 3 روی برنامه های غیرمتمرکز یا DApp و امور مالی غیرمتمرکز یا DeFi است. که از آن جمله میتوان به رمزارزها یا کریپتوکارنسی اشاره نمود.بلاکچین به زبان ساده یک پایگاه داده است . یک نوع ساختار داده. اما ساختار داده ای که: کلاهبرداران نمیتونند تغییرش بدند. قابل سانسور نیست. هکرها نمیتونند اون رو بدزدند. و مهمتر از همه هیچکس صاحب آن نیست (هیچ دولت، نهاد یا سازمانی نقش حاکمیتی روی اون نداره). و در اختیار همه است.وب3 با کنارهم قراردادن چندین مولفه این اهداف را محقق می کند. درواقع میتونیم بگیم بلاکچین روند جمع آوری و مدیریت داده ها را از سراسر وب هدایت میکند تا تمام داده های متمرکز با کمک ابزارهایی مانند هوش مصنوعی (AI) و اینترنت اشیا (IoT) به اطلاعاتی تبدیل شوند که قابل هک نباشد، تغییرپذیر نباشد و مهمتر از همه متمرکز نباشد.یکی دیگر از مولفه هایی که در این راستا به کمک وب 3 میاد گرافیک سه بعدی است که در مبحث متاورس هم خیلی مود توجه است.از دیگر مولفه ها میتونیم به اینترنت 5G اشاره کنیم که کمک میکنه تا اینترنت اشیا در همه جا حضور داشته باشه.یک مولفه دیگر هوش مصنوعی است. کامپیوترها تجزیه و تحلیل یاد میگیرند تا تعاملات کاربرمحور ارائه بدهند. یک نمونه آن چت بات ها هستند.وب 3 با کمک بلاکچین، کاربران را مالک داده ها خواهند کرد. و انحصار غول های فناوری پایان می یابد. و باعث میشه همه چیز شفاف و دسترسی برای همه آزاد باشد.</description>
                <category>صالح راهپیما</category>
                <author>صالح راهپیما</author>
                <pubDate>Wed, 08 Dec 2021 22:32:13 +0330</pubDate>
            </item>
                    <item>
                <title>تفاوت دفترکل توزیع شده (TDL) و بلاکچین (Blockchain)</title>
                <link>https://virgool.io/@salehrahpeyma/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-%D8%AF%D9%81%D8%AA%D8%B1%DA%A9%D9%84-%D8%AA%D9%88%D8%B2%DB%8C%D8%B9-%D8%B4%D8%AF%D9%87-tdl-%D9%88-%D8%A8%D9%84%D8%A7%DA%A9%DA%86%DB%8C%D9%86-blockchain-avsexwsp7wav</link>
                <description>دفتر کل توزیع شدهدفتر کل (Ledger) چیست؟مدت ها پیش زمانی که مردم هیچ ایده‌ای در مورد اینترنت، صندوق های نقدی الکترونیک و سابر فناوری های پیشرفته کنونی نداشتند، اطلاعات مربوط یه تراکنش های خود را در یک دفتر معمولی به نام “دفتر کل” می‌نوشتند.تصور کنید برای درخواست یک وام به بانک میروید و صندوق دار روی کاغذ ثبت میکند که چقدر پول گرفته‌اید و چه زمانی باید آن را برگردانید.به نظر شما ذخیره سازی اطلاعات به این شکل چه مشکلاتی دارد؟رفته رفته با پیشرفت تکنولوژی سندهای دیجیتال جای دفترکل کاغذی را گرفتند و دفتر کل های کلاسیک محل ذخیره سازی اطلاعات تراکنش های دیجیتال شدند.دفتر کل توزیع شده چیست؟دفتر کل توزیع شده- Distributed Ledger Technology (DLT) -  یک پایگاه داده غیرمتمرکز است که می‌تواند در بین گره های مختلف شبکه توزیع شود.هر گره تمام رکوردهای موردنظر را مشاهده و هر تراکنش را پردازش می‌کند.نکته: شبکه توزیع شده شبیه یه یک شبکه غیرمتمرکز است، به این معنی که از یک سرور اصلی متمرکز چشم پوشی می‌کند. با این حال شبکه توزیع شده از گره‌های مساوی و به هم پیوسته تشکیل شده است و مالکیت داده و منابع محاسباتی به طور مساوی در کل شبکه به اشتراک گذاشته می‌شود.ویژگی های مهم DLT:تغییر ناپذیر: هر تراکنش موجود در دفتر کل توسط هیچ گره‌ دیگری نمی‌تواند تغییر کند.شفافیت: همه گره‌ها میتوانند به اطلاعات ذخیره شده در دفترکل دسترسی داشته باشند.قابلیت اعتماد: بین همه طرف ها اعتماد وجود دارد و هیچ واسطه (شخص سومی) وجود ندارد.غیرمتمرکز: محل ذخیره متمرکز یا مدیریت مرکزی وجود ندارد.  عملیات پردازش اطلاعات در چندین گره توزیع می‌شود.بلاکچینبلاکچین، گونه‌ای از دفترکل توزیع شده (DLT) است که در آن تراکنش‌ها با یک امضای رمزنگاری تغییرناپذیر به نام هش (Hash)، ثبت می‌شود. تراکنش ها سپس در بلوک ها گروه بندی می شوند و هر بلوک جدید شامل یک هش از بلوک قبلی است که آنها را به هم متصل می کند.نکته: هش (Hash) تابعی رمزنگاری است که ورودی‌هایی از اعداد و حروف را پذیرفته و آن‌ها را به یک خروجی رمزگذاری شده با طولی یکسان تبدیل می‌کند.نکته: به دلیل ماهیت پراکندگی، شبکه های توزیع شده در برابر خطا بسیار مقاوم بوده و ایمن هستند.ارتباط بین بلاکچین و دفترکل توزیع شدهتفاوت های مهم دفترکل توزیع شده و بلاکچینیکی از مهم ترین تفاوت های دفترکل توزیع شده (DLT) و بلاکچین به ساختار آنها بر می گردد، به گونه ای که تمام بلوک ها در فناوری بلاکچین در یک توالی خاص قرار دارند در حالی که یک دفترکل توزیع شده به توالی خاصی نیاز ندارد.تفاوت مهم دیگر آنها  مربوط به مکانیسم اجماع (Proof) است. از آنجایی که تعداد کمی از گره ها در DLT مشارکت می کنند، نیازی به اجماع وجود ندارد. اما در بلاکچین هر کسی می تواند مشارکت کند و در افزودن یک بلاک جدید به زنجیره مشارکت داشته باشد. بنابراین بلاکچین از مکانیسم اجماع استفاده میکند.و همچنین پیاده سازی بلاکچین در دنیای واقعی امروز کاربر وسیع تری نسبت به دفترکل توزیع شده دارد. و بسیاری از کارافرینان مدل سنتی کار خود را به سمت ماهیت بلاکچین برده تا از مزایای بهتر آن استفاده کنند.</description>
                <category>صالح راهپیما</category>
                <author>صالح راهپیما</author>
                <pubDate>Mon, 08 Nov 2021 09:44:55 +0330</pubDate>
            </item>
                    <item>
                <title>تفاوت Remix  و Truffle  در توسعه شبکه بلاکچین</title>
                <link>https://virgool.io/@salehrahpeyma/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-remix-%D9%88-truffle-%D8%AF%D8%B1-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D8%B4%D8%A8%DA%A9%D9%87-%D8%A8%D9%84%D8%A7%DA%A9%DA%86%DB%8C%D9%86-gqnklii2aepk</link>
                <description>سالیدیتی (Solidity) چیست؟سالیدیتی یک زبان برنامه نویسی سطح بالا برای نوشتن قراردادهای هوشمند روی شبکه بلاکچین اتریوم می باشد.این زبان از زبان های برنامه نویسی پایتون، سی پلاس پلاس و جاوا اسکریپت الهام گرفته شده و برای پیاده سازی بر روی ماشین مجازی اتریوم (EVM) مورد استفاده قرار می گیرد.سالیدیتی از مفاهیم گسترده ای استفاده می‌کند که در سایر زبان‌های برنامه‌ نویسی دیگر شبیه به آنها وجود دارد. برای نمونه سالیدیتی حاوی متغیرها، توابع، کلاس‌ها، عملیات‌های محاسباتی، رشته‌ها و … است. سالیدیتی حاوی مفهومی با عنوان «قرارداد» (Contract) است یک ساختار داده محسوب می شود و ما را در ایجاد و مدیریت قرارداد کمک می کند.نکته 1: قراردادهای هوشمندی که با استفاده از زبان برنامه نویسی سالیدیتی نوشته شده، بر روی ماشین مجازی اتریوم (EVM) راه اندازی و اجرا می‌شود.نکته 2: ماشین مجازی اتریوم (EVM) ، یک محیط مجازی است که کدهای سطح بالای مربوط به قراردادهای هوشمند را به یک فرمت قابل اجرا توسط همه ماشین ها تبدیل کرده و تضمین می‌کند که تراکنش‌ها برای همه نودها به یک صورت اجرا شوند. به عبارت دیگر، ماشین مجازی اتریوم (EVM) زیرساختی برای اجرای تراکنش‌ها و قراردادهای هوشمند در شبکه اتریوم است که نودهای شبکه را قادر می‌سازد درباره نحوه اجرای دستورالعمل‌ها به توافق برسند.رمیکس (Remix) چیست؟رمیکس مشهورترین محیط توسعه نرم افزار  (IDE) برای زبان برنامه نویسی سالیدیتی است. رمیکس یک IDE تحت مرورگر است و شما می توانید آن را آنلاین از طریق آدرس https://remix.ethereum.org باز کنید.نکته 3: محیط توسعه نرم افزار  (IDE) ، محیط‌هایی هستند که به برنامه‌نویسان و توسعه‌دهندگان در کدنویسی برنامه‌ها کمک می‌کنند و امکانات بسیاری را برای توسعه نرم‌افزارها در اختیار آن‌ها قرار می‌دهند.ترافل (Truffle) چیست؟ترافل یک چارچوب جاوا اسکریپت است و با هدف سهولت کار توسعه دهندگان جهت ایجاد و توسعه قراردادهای هوشمند ارائه شده است. درست همانند چارچوبی که برای توسعه برنامه های تحت وب دارید، ترافل نیز محبوب ترین چارچوب مورد استفاده برای توسعه برنامه های غیرمتمرکز است و به شما کمک می‌کند تا قراردادهای هوشمند توسعه دهید، آنها را منتشر و آزمایش کنید.ترافل یک محیط توسعه، چارچوب آزمایش و کانال ارتباطی برای بلاکچین هایی است که از ماشین مجازی اتریوم استفاده می‌کنند و قابلیت نصب بر روی ویندوز، لینوکس و مک را دارد.جمع بندیاتریوم ابزار‌های فراوانی دارد که به توسعه‌دهندگان کمک می‌کند برنامه‌های کاربردی خودشان را بسازند، تست کنند، و گسترش دهند. رمیکس و ترافل هر دو ابزارهای ایجاد و توسعه قراردادهای هوشمند سالیدیتی بر روی شبکه اتریوم هستند و هر کدام مزایا و معایب خود را دارند.برای استفاده از رمیکس نیاز به نصب هیچ نرم افزاری ندارید؛ برای توسعه دهندگان مبتدی و همچین محیط آموزشی بسیار مناسب است و محیطی جذاب دارد. از معایب آن می توان به دشواری تست خودکار قراردادها، سختی کد زدن روزانه برای پروژه های بزرگ و نداشتن ابزارهایی برای طراحی فرانت اند (Front-end) اشاره کرد. در عوض ترافل برای توسعه دهندگان حرفه ای و پروژه های پیچیده مناسب تر است ولی شاید محیط آن به اندازه رمیکس کاربر پسند نباشد.</description>
                <category>صالح راهپیما</category>
                <author>صالح راهپیما</author>
                <pubDate>Sun, 13 Jun 2021 18:24:13 +0430</pubDate>
            </item>
                    <item>
                <title>رابط کاربری web3.js چیست؟</title>
                <link>https://virgool.io/Solidity/%D8%B1%D8%A7%D8%A8%D8%B7-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%DB%8C-web3js-%DA%86%DB%8C%D8%B3%D8%AA-z0g9xi0msam1</link>
                <description>وب 3 دات ج اس ( Web3.js ) کتابخانه مشهور متن باز است که به توسعه دهندگان اجازه می دهد با بلاکچین اتریوم تعامل داشته باشند. این یک زبان جاوا اسکریت برای رابط JSON-RPC است که آن را مستقیما در فن آوری وب قابل استفاده می کند؛ چراکه جاوا اسکریپت تقریبا در همه مرورگرهای وب پشتیبانی می شود.همانطور که می دانید شبکه اتریوم از مجموعه گره (نود)هایی تشکیل شده است که هر کدام حاوی یک نسخه از بلاکچین هستند. وقتی می خواهید یک تابع را بر روی یک قرارداد هوشمند فراخوانی کنید، باید از یکی از این گره ها پرس و جو کنید و به آن بگویید:- آدرس قرارداد هوشمند- تابعی که می خواهید فراخوانی کنید- متغیرهایی که می خواهید به آن تابع ارسال کنید.گره های اتریوم با زبانی به نام JSON-RPC صحبت می کنند که خوانایی توسط انسان را ندارند. یک پرس و‌جوی نمونه به یک گره جهت فراخوانی یک تابع بر روی یک قرارداد هوشمند به صورت زیر است:// Yeah... Good luck writing all your function calls this way! {&quot;jsonrpc&quot;:&quot;2.0&quot;,&quot;method&quot;:&quot;eth_sendTransaction&quot;,&quot;params&quot;:[{&quot;from&quot;:&quot;0xb60e8dd61c5d32be8058bb8eb970870f07233155&quot;,&quot;to&quot;:&quot;0xd46e8dd67c5d32be8058bb8eb970870f07244567&quot;,&quot;gas&quot;:&quot;0x76c0&quot;,&quot;gasPrice&quot;:&quot;0x9184e72a000&quot;,&quot;value&quot;:&quot;0x9184e72a&quot;,&quot;data&quot;:&quot;0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675&quot;}],&quot;id&quot;:1}خوشبختانه Web3.js این پرس و جو را پنهان می کند و رابط جاوا اسکریپت راحت تری را ارائه می دهد. در نتیجه به جای ایجاد پرس جوی فوق، فراخوانی یک تابع در کد شما شبیه به این خواهد بود:CryptoZombies.methods.createRandomZombie(&quot;Vitalik Nakamoto&quot;) .send({ from: &quot;0xb60e8dd61c5d32be8058bb8eb970870f07233155&quot;, gas: &quot;3000000&quot; })بستگی به نوع پروژه، شما می توانید Web3.js را به پروژه خودتان اضافه کنید. و یا می توانید فایل .js را از گیت هاب دانلود و در پروژه خود قرار دهید:&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot; src=&quot;web3.min.js&quot;&gt;کانفیگ یک ارائه دهنده Web3 در Web3.js به کد ما می گوید که برای مدیریت خواندن و نوشتن باید با کدام گره صحبت کنیم. به نوعی شبیه تنظیم آدرس وب سرور از راه دور برای فراخوانی API در برنامه های وب است.استفاده از متامسک (Metamask) به عنوان یک فراهم کننده Web3.jsمتامسک (Metamask) یک پلاگین مرورگر برای کروم، فایرفاکس و اُپرا است که به کاربران امکان می دهد حساب های اتریوم و کلیدهای خصوصی خود را به طور ایمن مدیریت کنند و از این حساب ها برای تعامل با وبسایت هایی سازگار با Web3.js استفاده کنند.با استفاده از متامسک در ترکیب با Web3.js  در یک رابط وب، روشی مناسب برای تعامل با شبکه اتریوم را فراهم می کند.</description>
                <category>صالح راهپیما</category>
                <author>صالح راهپیما</author>
                <pubDate>Tue, 01 Jun 2021 22:07:37 +0430</pubDate>
            </item>
                    <item>
                <title>صرافی غیرمتمرکز یونی سوآپ (Uniswap)</title>
                <link>https://virgool.io/@salehrahpeyma/%D8%B5%D8%B1%D8%A7%D9%81%DB%8C-%D8%BA%DB%8C%D8%B1%D9%85%D8%AA%D9%85%D8%B1%DA%A9%D8%B2-%DB%8C%D9%88%D9%86%DB%8C-%D8%B3%D9%88%D8%A2%D9%BE-uniswap-g8cq0buhzd0u</link>
                <description>خلاصه:یونی سواپ (Uniswap) یک پروتکل صرافی غیرمتمرکز پیشرو بر بستر اتریوم است که جهت مبادله رمزارزهای ERC20 فعالیت می کند.به زبان ساده تر یونی سواپ یک پلتفرمی  است که کاربران خود را قادر می سازد توکن های موردنظر خود را بطور مستقیم از کیف پول خود و بدون هیچ واسطه ای مبادله کنند.صرافی های متمرکز و غیرمتمرکزدر صرافی‌های متمرکز، دارایی شما در اختیار سهام‌داران و مالکین صرافی قرار می‌گیرد. در این صرافی‌ها شما کیف پول جدیدی ایجاد کرده و دارایی خود را به آن انتقال می‌دهید. سپس بر روی این دارایی‌ها معاملاتی را انجام می‌دهید. در چنین شرایطی معامله شما تحت نظارت و مدیریت یک نهاد یعنی شرکتی که صرافی را راه اندازی کرده است انجام می شود.هسته اصلی یک صرافی متمرکز دفتر سفارشات (order book) است. یعنی دفتر سفارش فهرستی از سفارش‌ها خرید و فروش همه کاربران است. سفارشاتی که روی دفتر کل ذخیره می شوند و زمانی یک معامله در این سیستم با موفقیت انجام می‌شود که یک سفارش خرید با یک سفارش فروش در سمت دیگر دفتر سفارشات با حجم و قیمت مشابه مطابقت یابد. و قیمت هر توکن توسط بالاترین پیشنهاد خرید و پایین‌ترین پیشنهاد فروش تعیین می‌شودیک صرافی غیرمتمرکز(Decentralized exchange) بستری برای مبادله رمز ارزها به‌صورت مستقیم و بدون واسطه است. در یک صرافی غیرمتمرکز هیچ‌کس به دارایی کاربران دسترسی ندارد و معاملات بدون دخالت سازمان‌های متمرکز انجام می‌شود.در صرافی متمرکز، شما کلید خصوصی کیف پول را ندارید و هنگام برداشت ارزهای دیجیتال خودتان، از صرافی می‌خواهید از طرف شما تراکنش را امضا کند. همچنین در این صرافی‌ها، معاملات در بلاک چین رمز ارز اتفاق نمی‌افتد، بلکه صرافی با توجه به معاملات انجام شده، موجودی کاربران در پایگاه داده خود را تغییر می‌دهد و در واقع به آن اعتبار می دهد.یک صرافی غیر متمرکز به دارایی های شما دسترسی ندارد و شما با اتصال کیف های پول خود (مانند متاماسک، والت کانکت و کوین بیس) به صرافی می توانید عملیات های موردنظر خود را در آن صرافی انجام دهید.تفاوت صرافی های متمرکز و غیرمتمرکزصرافی غیرمتمرکز (DEX) چگونه کار می‌کند؟صرافی‌های غیرمتمرکز روی بلاک چین‌های آزاد که قابلیت اجرای قراردادهای هوشمند را دارند ساخته می‌شود. اتریوم درحال‌حاضر بزرگ‌ترین میزبان صرافی‌های غیرمتمرکز است. به صورت خیلی خلاصه می‌توان گفت با استفاده از بلاکچین و به‌وسیله‌ی سیستم قراردادهای هوشمند، امکان انجام معاملات بدون واسطه و مستقیم فراهم می‌شود.قراردادهای هوشمند به‌صورت نرم‌افزاری و به کمک خطوط مختلف برنامه‌نویسی معاملات را انجام می‌دهند. یکی از ویژگی‌های بسیار مهم این قراردادها، اجرای قطعی و انتقال برگشت‌ناپذیر آن‌هاست. هیچ فردی، چه فروشنده، چه خریدار و چه حتی توسعه‌دهندگان این قراردادها نمی‌توانند مانع از انجام آن‌ها شوند. یک قرارداد هوشمند نرم‌افزاری است که در صورت وقوع شرایطی خاص، یک یا چند دستور خاص را اجرا می‌کند. این قرارداد روی بلاک چین پیاده‌سازی می‌شود و جلوگیری از اجرای آن غیرممکن است.ساختار صرافی‌ غیر متمرکز کمی پیچیده‌تر بنظر می رسد و ممکن است همیشه دارایی‌های مورد نظر شما را نداشته باشد. اما با رشد فناوری و علاقه به آن، این نوع صرافی‌ها به خوبی می‌توانند به یکی از اجزای اصلی در حوزه رمز ارزها شده تبدیل شوند.پیشینه یونی سواپ (Uniswap)سایت اصلی این پروژه، Uniswap.org در تاریخ نوامبر 2018 راه‌اندازی شده است. پروتکل یونی سواپ از سوی فردی به اسم هایدن آدامز (Hayden Adams) بنیان‌گذاری شد که از توسعه‌دهندگان اتریوم هم به حساب می‌رود. و به گفته وی فناوری زیربنایی را از مقاله‌ی ویتالیک بوترین (خالق اتریوم) در مورد مدل بازارگردان‌های خودکار (Automated Market Makers) گرفته است.یونی سواپ در یازدهمین ماه سال 2018 فعالیتش را آغاز و در عرض کمتر از دو سال، توجه بسیاری را به خود جلب کرد. در پنجمین ماه سال 2019، تیم توسعه‌دهنده Uniswap توانست یک میلیون دلار سرمایه از طریق حمایت صندوق پوشش ریسک پارادایم (Paradigm) به دست آورد. این اتفاق، شرایط را برای انتشار نسخه دوم یونی سواپ در ششمین ماه سال 2020 (سیزده ماه بعد) فراهم کرد.توکن UNIدر اواسط سپتامبر 2020 (شهریور 99) یونی‌سوآپ اعلام کرد یک ارز دیجیتال جدید با نام UNI ایجاد می‌کند. یونی (UNI)، توکن بومی شبکه یونی سواپ است که یک توکن برای نظارت و حکمرانی در اکوسیستم یونی سواپ محسوب می‌شود. دارندگان توکن یونی UNI، در مورد پروژه‌های جدید این اکوسیستم مثل تعیین میزان کارمزد، حق رای پیدا می‌‌کنند.مفاهیم پایه یونی سواپ (Uniswap)در یونی سواپ 2 مفهموم پایه و اصلی وجود دارد:-   تبادل توکن (swap): این مفهوم به کاربران امکان می‌دهد تا بین اتریوم و توکن‌های مختلف ERC20 مبادله داشته باشند. برای انجام این کار، از نرخ مبادله خاصی که مخصوص هر استخر است استفاده می‌شود. که میزان محاسبه آن با توجه به میزان اتریوم و توکن ERC20 موجود در آن استخر تعیین می‌شود.-   استخرها (Pools): تامین کنندگان نقدینگی (Liquidity Providers) می توانند از طریق تامین نقدینگی درآمد کسب کنند. این کار با واریز توکن در یک قرارداد هوشمند انجام می‌شود. این استخرها به عنوان یک روش نوآورانه و خودکار برای حل مشکل نقدینگی در صرافی های غیرمتمرکز ظهور کردند و روش جایگزینی برای مدل سنتی دفتر سفارشات در صرافی های متمرکز محسوب می شوند.یونی سواپ استخرهای نقدینگی را پیاده سازی و مدیریت می کند. در یونی سواپ خبری از دفتر سفارش نیست و بر اساس استخر نقدینگی دیفای کار می کند.تذکر: دیفای (Decentralized Finance) یا Defi به معنای امور مالی غیر متمرکز است و اشاره به انواع پلتفرم هایی دارد که در حوزه رمز ارزها یا بلاکچین فعالیت می کنند و هدف اصلی آنها حذف واسطه های مالی است.استخر نقدینگی دیفای یک قرارداد هوشمند تحت پلتفرم اتریوم است که به منظور حصول اطمینان از وجود نقدینگی برای توکن های موجود در یک صرافی غیرمتمرکز نسبت به مسدود کردن آن توکن ها اقدام می کند.یونی سواپ در اینجا به عنوان یک بازار عمل میکند که خریداران و فروشندگان در آن وارد می شوند و طبق عرضه و تقاضای نسبی دارایی ها بر سر قیمت توافق می کنند.سرمایه این استخرها، توسط تامین‌کنندگان نقدینگی فراهم می‌شود. هر فردی به وسیله سپرده‌گذاری مقدار معادل دو توکن در استخر، یک تامین کننده نقدینگی شناخته خواهد شد.تامین‌کنندگان به وسیله سپرده‌گذاری مقدار معادل دو توکن یک بازار ایجاد می‌کنند.به طور مثال، اتریوم / تتر (ETH-USDT) را در نظر بگیرید و برای اینکه محاسبات ساده تر شود فرض کنید که قیمت یک اتریوم برابر با هزار USDT (تتر) است. تامین کنندگان نقدینگی مقدار برابری از اتریوم و تتر را به استخر اضافه می کنند. بنابراین کسی که یک اتر سپرده گذاری می کند با کسی که هزار تتر سپرده گذاری کرده است یکسان فرض می شود.تذکر: سپرده می‌تواند اتریوم و یک توکن ERC20 یا دو توکن ERC20 باشد. این استخرها اغلب از استیبل کوین‌هایی مثل دای، تتر یا یو اس دی سی ساخته می‌شوند، هر چند الزامی در این رابطه وجود ندارد.نقدینگی کل (k):همانطور که پیشتر اشاره کردیم، هر شخصی مانند من و شما می توانیم در یونی سواپ نقدینگی ایجاد کند و آن را به استخر نقدینگی (Liquidity Pool)اضافه نماید. استخرهای یونی‌سواپ بر مبنای این معادله است:x * y = kX: مقدار یک توکن در استخر نقدینگیY: مقدار توکن دیگر در استخر نقدینگیK: یک مقدار ثابتاستخر نقدینگی اتریوم / تتر (ETH/USDT) را در نظر بگیرید. سهم اتریوم و تتر از استخر را به ترتیب با x و y مشخص می‌کنیم. یونی سواپ این دو مقدار را گرفته و آن‌ها را برای محاسبه نقدینگی کل، ضرب می‌کند. نتیجه را k در نظر می‌گیریم. بر اساس مبنای اصلی یونی سواپ k همیشه باید ثابت بماند، به این معنی که نقدینگی کل در استخر ثابت است. فرمول به دست آوردن نقدینگی کل استخر خیلی ساده و برابر “x * y = k” است.تابع Kهمانطور که در نمودار مشاهده می کنید، گراف که یک تابع است مقدار ثابت K را نشان می دهد. محور Y رمزارز B یعنی ETH و محور X رمز ارز A یعنی USDT را نشان می هد. اولین نقطه قرمز (موقعیت قبلی) قیمت مبادله جفت ETH-USDT را بر اساس مقدار موجودی توکن های ETH در برابر توکن های USDT نشان میدهد.حال فرض کنید شخصی به نام علی تصمیم میگیرد توکن های USDT خود را با ETH عوض کند، بنابراین تعادل (بالانس) توکن های ETH کاهش می یابد و تعادل توکن های USDT افزایش می یابد؛ این بدان معناست که نقطه قرمز به موقعیت جدید منتقل می شود، و در استخر نقدینگی تعداد توکن های USDT بیشتر و توکن های ETH کمتر می گردد.در نظر داشته باشید این مدل یونی سواپ به صورت خطی مقیاس‌بندی نمی‌شود. به همین دلیل هر چه سفارش بزرگتر باشد، تعادل بین x و y بیشتر جابه‌جا خواهد شد. این موضوع نشان می‌دهد سفارشات بزرگتر در مقایسه با موارد کوچکتر، به شکلی نمایی (و نه خطی) گران‌تر می‌شوندهزینه معاملاتی افرادی که برای مبادله توکن ها از استخر استفاده می کنند (تریدرها) به طور خودکار در بین همه تامین کنندگان نقدینگی تقسیم می شود. به عبارتی بر اساس تعداد توکن‌های نقدینگی در اختیار هر فرد، سهمش از استخر مشخص خواهد شد. یک فرد می‌تواند برای کسب سهم بیشتری از نقدینگی، توکن‌های بیشتری را بازخرید کند.صرافی یونی سواپ سودی را از کارمزدهای معاملات کاربران کسب نمی‌کند. کارمزدی که کاربران می‌پردازند بین تأمین‌کنندگان نقدینگی توزیع می‌شود. آن‌ها تمام کارمزدهای 0.3 درصدی در تراکنش‌های استخر را به‌عنوان پاداش دریافت می‌کنند. به عنوان نمونه اگر هزینه معاملاتی استخر USDT-ETH سه دهم درصد باشد و یکی از تامین کنندگان نقدینگی ده درصد از استخر را تامین کرده باشد، آنگاه سهم وی از هزینه معاملات به میزان ده درصد از سه دهم درصد ارزش کل همه معاملات خواهد بود.نتیجه گیریتامین نقدینگی خودکار به فضای DeFi رونق زیادی بخشیده است و سبب ایجاد بسیاری از فرصت‌های سرمایه‌گذاری جدید و پیچیده شده است و یونی سواپ یکی از بازیگران اصلی مبادلات غیر متمرکز است. شاید صرافی های غیرمتمرکز به اندازه صرافی های متمرکز کاربر پسند نباشند و حجم پایین تری از معاملات را به خود اختصاص دهند، اما صرافی یونی سواپ از محبوب ترین صرافی های غیرمتمرکز است که برخی از بزرگترین استخرهای نقدینگی را پیاده سازی و مدیریت می کند.در حال حاضر بیش از 5.61 بیلیون دلار سرمایه درون این صرافی غیر متمرکز مسدود شده است. اگر این پروژه بتواند به همین سرعت پیش رود، افزایش این ارقام در آینده محدودیتی نخواهد داشت. رابط کاربری عالی Uniswap و امکانات کسب درآمد آن، همراه با تجربه اثبات شده این پروتکل، آن را به یکی از درخشان‌ترین سیستم‌ها در اقتصاد رمزارزها تا به امروز تبدیل کرده است.</description>
                <category>صالح راهپیما</category>
                <author>صالح راهپیما</author>
                <pubDate>Wed, 26 May 2021 19:29:49 +0430</pubDate>
            </item>
                    <item>
                <title>استاندارد ERC-20  چیست؟</title>
                <link>https://virgool.io/@salehrahpeyma/%D8%A7%D8%B3%D8%AA%D8%A7%D9%86%D8%AF%D8%A7%D8%B1%D8%AF-erc-20-%DA%86%DB%8C%D8%B3%D8%AA-igvqlkukbe1t</link>
                <description>تعریف خلاصهمجموعه استانداردهایی است که به توسعه دهندگان امکان می دهد توکن هایشان را بر روی شبکه اتریوم ایجاد کنند.پیشینهبیاید اول نگاه کوتاهی داشته باشیم که رمز ارز یا کریپتوکارنسی چیست؟ بطور ساده گونه ای از ارز دیجیتال است که می تواند در اینترنت به صورت مستقیم و بدون دخالت هرگونه واسطه ای تبادل شود.بیت کوین اولین رمزارز بود که از از اصطلاحات امروزی می شناسیم. این مفهوم انتقال ارزش آنلاین را ارائه داد اما کامل نبود. پس از آن اتریوم (Ethereum) متولد شد. یک زیرساخت کامل که با هدف پیاده سازی قراردادهای هوشمند و توسعه برنامه های غیرمتمرکز (DAPP) پا به عرصه ظهور گذاشت.ویژگی قابل توجه آن امکان راه اندازی رمزارزهای جدید بر پایه بلاک چین اتریوم است. بنابراین هر شخص یا سازمانی می تواند عرضه اولیه سکه (ICO) خود را به بهره گیری از قرارداد هوشمند بر روی آن پیاده سازی و توسعه دهد. از ملموس ترین توکن ها از ICO های موجود در شبکه اتریوم، توکن های ERC-20 هستند.در حال حاضر یکی از پرکاربردترین توکن ها در دنیای رمزارزها ERC-20هستند بطوری که هم اکنون بیش از 80 هزار توکن ERC-20 داریم که همگی بر روی بلاک چین اتریوم راه اندازی شده اند. این چارچوب به اندازه کافی گسترده است و قادر است کاربردهای مختلفی را بدون ایجاد اختلال در عملکرد زنجیره اصلی اتریوم فراهم کند. دقیقا همین انعطاف پذیری بالا است که موجب استاندارد شدن توکن های ERC-20 شده است.اتریوم و توکن های ERC-20 بر روی بلاک چین اتریوم اجرا می شوند. اما بیت کوین و اتریوم بر رو بلاک چین مشابهی اجرا نمیشوند. در نتیجه والت های ERC-20 همیشه می توانند رمز ارز اتر را بپذیرند اما نمیتوانند بیت کوین را قبول کنند.کلمه ERC مخفف عبارت Ethereum Request for Comment است و اشاره به اسناد تکنیکی (پروپوزال‌هایی) دارد که در زمان‌های مختلف توسط دولپرهای قرارداد هوشمند در بلاک چین اتریوم مورد استفاده قرار گرفته است. عدد ۲۰ نیز یک شماره ID یکتا است که تمایز نسخه های مختلف را نشان می دهد.استاندارد ERC-20 اولین با توسط Vitalik Buterin در سال 2015 مطرح شد و از سال 2016 به بعد در اغلب قراردادهای هوشمند و عرضه اولیه سکه ها (ICOs) مورد استفاده قرار گرفته است. لازم به ذکر است که ERC-20 تنها استاندارد موجود برای  توسعه دهندگان توکن‌های اتریوم نیست و به جز آن، استانداردهای دیگری مانند ERC-721 ، ERC-777 ، ERC-865 ، ERC-1410 ، ERC-1151 و ERC-1337 نیز وجود دارند که هر یک برای اهداف متفاوتی مناسب هستند. توابع و قوانین ERC-20استاندارد ERC-20 از 6 تابع اصلی (اجباری)، 3 تابع اختیاری و 2 رویداد تشکیل شده است.توابع اختیاری:function name() public view returns (string)function symbol() public view returns (string)function decimals() public view returns (uint8)-   نام توکن: (Token name) نامی است که به توکن خود در قرارداد هوشمند اختصاص می‌دهید.-   نماد یا علامت اختصاری: (Symbol) نماد اختصاری مربوط به توکن است و معمولا 3 یا 4 کاراکتر است مانند BTC، ETH و USDT-   تعداد اعشار: (Decimal) این فیلد، برای تعیین تعداد رقم اعشار توکن است و بین 1 تا 18 می باشد. در واقع نشان می دهد چه تعداد 0 در سمت راست نقطه اعشاری برای نمایش نقطه ثابت یک توکن وجود دارد. توابع اجباری:function totalSupply() public view returns (uint256)function balanceOf(address _owner) public view returns (uint256 balance)function transfer(address _to, uint256 _value) public returns (bool success)function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)function approve(address _spender, uint256 _value) public returns (bool success)function allowance(address _owner, address _spender) public view returns (uint256 remaining)- مقدار کلی (total supply): مقدار نهایی توکن های در گردش را بر می گرداند.- موجودی (balance of): موجودی توکن های هر آدرس را بر می گرداند.- انتقال (transfer): امکان ارسال مقدار معینی توکن از صاحب قرارداد به آدرس های دیگر را می دهد. همچنین برای این طراحی شده است که اگر آدرس مبدا، توکن کافی برای انتقال نداشته باشد، آن تراکنش را خاتمه دهد.- انتقال از (transfer from): این تابع به یک قرارداد هوشمند اجازه می دهد تا فرایند انتقال را به صورت اتوماتیک انجام دهد و مقدار مشخصی از توکن ها را از طرف دارنده به آدرس دیگری ارسال شود.- تایید (approve): هنگام فراخوانی این تابع، صاحب قرارداد، آدرس داده شده را مجاز یا تایید می کند تا مقدار توکن تعیین شده را از آدرس دارنده توکن برداشت کند.- مجوز (allowance): مانده موجودی توکن ها در حساب و آنچه را می توان معامله یا انتقال داد را بر می گرداند.*شاید این سوال پیش بیاید که Transfer و Transfer from چیست و چرا به هر دوی آنها نیاز داریم؟*انتقال پول برای پرداخت یک صورتحساب را درنظر بگیرید. ارسال پول به صورت دستی با صرف وقت برای نوشتن چک و پرداخت صورتحساب بسیار معمول است. این شبیه استفاده از تابع Transfer() است. شما بدون کمک شخص دیگری، فرایند انتقال پول را خودتان انجام می دهید.در حالت دیگر، شما می توانید پرداخت اتوماتیک صورتحساب را با بانک هماهنگ کنید. این کار شبیه استفاده از تابع Transfer from() است. بانک پول شما را برای پرداخت صورتحساب از طرف شما به طور اتوماتیک ارسال می کند. با استفاده از این رویکرد، یک قرارداد می تواند بدون دخالت شما، مقدار مشخصی از توکن را از طرف شما به آدرس دیگری ارسال کند. رویدادها:در هر بار که یک عمل از هریک از توابع اجباری فعال می شوند، از 2 دستور برای ردیابی و بررسی موجودی و تغییرات در آدرس ها انجام می شود:event Transfer(address indexed _from, address indexed _to, uint256 _value)event Approval(address indexed _owner, address indexed _spender, uint256 _value)- انتقال (Transfer): این رویداد معمولا در هر بار انتقال توکن ها، انجام می شود و جزئیات انتقال از یک حساب به حساب دیگر را نشان می دهد.- موافقت (Approval): با انتقال توکن ها، این رویداد هر بار که &quot;تایید تابع ارسال کننده&quot; یعنی approve فراخوانی می شود، فعال می گردد و جزئیات معامله را منتشر می کند. جمع بندی:استاندارد ERC-20 یک نرم افزار یا قطعه کد نیست. بلکه یک پروتکل استاندارد است همانند پروتکل HTTP در دنیای شبکه و اینترنت. ERC-20 فرایند ساخت یک توکن را کنترل می کند و این اطمینان را حاصل می کند که مشخصات فنی توکن ها طبق قونین برآورده می شود.</description>
                <category>صالح راهپیما</category>
                <author>صالح راهپیما</author>
                <pubDate>Sun, 02 May 2021 23:47:02 +0430</pubDate>
            </item>
            </channel>
</rss>