آکادمی برنامه نویسان

لوگو
برای دوره بعدی خبرم کن . خبرم کن

توضیحات دوره

شما در این دوره چگونگی طراحی، کدنویسی، توسعه، ایجاد و اجرای قراردادهای هوشمند را خواهید آموخت. در واقع قرارداد های هوشمند و امکان اجرای عملیات و ویژگی های تعریف شده توسط کاربر را که از طریق پروتکل های ساده رمز نگاری امکان پذیر نیست را فراهم می سازند. به بیان ساده تر کاربران در قراردادهای هوشمند  می توانند شرایط، قوانین و سیاست های برنامه خود بر بستر بلاکچین را تعریف کنند.

در پایان این دوره به طراحی و توسعه برنامه های غیر متمرکز می پردازیم. توسعه بلاکچین با ایجاد  DApp ها، تکنولوژی نوظهور و برتری است که هم اکنون نیاز آن احساس شده و تضمین کننده آینده شغلی برنامه نویسان و علاقه مندان این حوزه می باشد. به طور کلی در پایان این دوره شما می توانید خود را بعنوان توسعه دهنده و برنامه نویس بلاکچین معرفی کنید.

آدرس محل برگزاری:

تهران-خیابان شریعتی ،خیابان ملک ، بن بست ایرانیاد ،پلاک 1
 

پیش نیازها

برای شرکت در این دوره بهتر است که حداقل با یک زبان برنامه نویسی آشنا باشید. سایر مطالب آموزش داده خواهند شد و پس از پایان دوره آمادگی لازم جهت کدنویسی و توسعه بلاکچین را خواهید داشت

مخاطبان این دوره

  • مخاطبین این دوره می توانند هر یک از افراد زیر باشند:
  • برنامه نویسان
  • دانشجویان علاقه مند به فناوری
  • علاقه مندان به تکنولوژی بلاکچین
  • ایده پردازان و سرمایه گذاران حوزه بلاکچین که با استفاده از DApp ایده خود را پیاده سازی و اجرا نمایند.

سرفصل دوره

  1. مفاهیم و مقدمات
  • آشنایی با ارزهای دیجیتال (Digital Currency)
    • مفاهیم و اصطلاحات رایج ارزهای دیجیتال
    • کاربردهای ارز دیجیتال
    • نقاط ضعف و قوت ارزهای دیجیتال
    • تاریخچه ارزهای دیجیتال
    • تاریخچه ای از Ledger های غیر متمرکز
    • آشنایی با ارز دیجیتال بیت کوین (Bitcoin)
    • آشنایی با ارز دیجیتال لیبرا (Libra)
  • رمزنگاری (Criptography)
    • توابع هش یا درهم ساز (توابع یک طرفه)
    • توابع رمزنگاری (توابع دوطرفه)
    • کلید خصوصی (Private Key)
    • کلید عمومی (Public Key)
    • امضاء دیجیتال (Digital Signature)
  • نسل سوم وب (Web3)
    • ویژگی های وب نسل 3
    • تفاوت web3 با web2
    • تفاوت Centralized ، Decentralized ، Distributed

 

  1. بلاکچین (BlockChain )
  • آشنایی با بلاکچین
    • بلاکچین چیست؟
    • اجزای سازنده بلاکچین
    • فرق بین بلاکچین و دیتابیس چیست؟
    • مزایا و معایب بلاکچین
    • بلاکچین چگونه کار میکند؟
    • تراکنش ها در بلاکچین
    • بلاک چیست؟
    • چگونه بلاک ها تشکیل زنجیره داده و بلاکچین را تشکیل می دهند؟
    • ردیابی بلاک ها از طریق Block-Explorer
    • تفاوت بین Remote Node و Local Node
    • توصیف کامپوننت های کرنل )امنیت و قدرت بلاک چین(
    • پروتکل های بلاکچین
    • معماری بلاکچین
  • مدیریت تراکنش های بلاکچین
    • ساخت و مدیریت شناسه (identity) روی شبکه بیتکوین بلاکچین
    • آشنایی با تراکنش (Transactions)
    • آشنایی با اجماع (Consensus)
    • برپاسازی proof-of-ownership (POW) تراکنش های بلاکچین، بدون نیاز به ارائه اطلاعات حساس
  • TestNet کرنل بیتکوین
    • توصیف مزایای بکارگیری شبکه تست (testnet) هسته بیت کوین
    • تفاوت بین شبکه تست عمومی و تست رگرسیون
    • دانلود Testnet ارز اتر (Ether)
  • بلاکچین خصوصی
    • تفاوت بین بلاکچین خصوصی (Private Blockchains) و بلاکچین عمومی (Public Blockchains)
    • درک موضوع حریم خصوصی در بلاکچین های عمومی
    • مزیت بلاک چین خصوصی
    • کدگذاری و کدگشایی دارایی دیجیتال روی بلاک چین خصوصی
    • اثبات عمومی مالکیت دارایی از طریق شناسه دیجیتال (Digital Identity)

 

  1. اتریوم (Etherium )
  • آشنایی با اتریوم
    • آشنایی یا ساختار اتریوم
    • مزایای اتریوم
    • تفاوت اتریوم با بیتکوین
    • آشنایی با EVM (ماشین مجازی اتریوم) و اینترفیس ABI
    • تفاوت Call با Transaction
    • همگامی (Concurrency) و رویدادها (Events)
    • تعریف و کاربرد رویدادها
    • گوش دادن و عکس العمل به رویدادها
    • انواع اکانت در اتریوم
    • نیازمندی های تراکنش اتر (Ether)
    • تفاوت بین لایه1 و لایه2 اتریوم بلاکچین
  • آشنایی با قراردادهای هوشمند
    • قرارداد هوشمند چیست؟
    • از قراردادهای هوشمند چگونه استفاده می شود؟
    • مزایا و معایب قراردادهای هوشمند
    • درک جریان کاری از نحوه عملکرد قرارداد هوشمند در اتریوم بلاکچین
  1. برنامه نویسی قرارداد هوشمند به زبان Solidity
  • معرفی زبان Solidity (یک زبان تورینگ کامل برای قرارداد هوشمند(
  • تفاوت یک زبان سطح بالا و یک زبان سطح پایین
  • مقایسه زبان سالیدیتی با سایر زبان های برنامه نویسی قراردادهای هوشمند (Vyper و …)
  • آشنایی با برنامه نویسی مبتنی بر قرارداد (Contract Oriented Programming)
  • استفاده از محیط برنامه نویسی آنلاین Remix برای توسعه قرارداد هوشمند
  • بررسی پیاده سازی مدل UTXO در سالیدیتی
  • ساختار یک قرارداد هوشمند در زبان Solidity
  • ساختار یک فایل سالیدیتی
  • متغیرها و type ها در سالیدیتی
  • Constructor اسمارت کانترکت ها
  • توابع setter و getter قراردادهای هوشمند در سالیدیتی
  • Mapping در سالیدیتی
  • Address ها در سالیدیتی
  • سطح دسترسی متغیرها و توابع در سالیدیتی
  • Modifier ها و موارد کاربرد آن در سالیدیتی
  • Struct و آرایه در سالیدیتی
  • Enum / دیتا تایپ تعریف شده توسط کاربر
  • انواع تابع در سالیدیتی
  • ارث بری (Inheritance) و افزایش قابلیت کنترل برنامه (auditability) در سالیدیتی
  • فرق بین کتابخانه ها و ارث بری در سالیدیتی چیست؟
  • کاهش خطا توسط چک کردن کد با عبارات REQUIRE, ASSERT, REVERT
  • توابع رایج یک کیف پول توزیع شده: sendMoney و withdrawMoney

 

  1. توسعه اپلیکیشن های غیرمتمرکز (DApp)
  • معماری اپلیکیشن های غیرمتمرکز (DApp)
    • تفاوت DApp با اپلیکیشن های عادی
    • لایه های یک اپلیکیشن DApp
    • تکنولوژی ها و کامپوننت های هر لایه
    • ابزارهای توسعه و تست
    • فریمورک ها
  • طراحی DApp
    • مشخص کردن نیازمندی ها و قابلیت های DApp
    • طراحی واسط کاربری (UI)
    • طراحی لایه ادغام (Integration Layer)
    • طراحی قرارداد هوشمند (Smart Contract)
  • ابزارهای توسعه و Test-Net ها
    • آشنایی با ابزارهای برنامه نویسی و تست در سیستم لوکال
    • نصب و استفاده از Ganache
    • نصب و استفاده از Go-Ethereum
    • نصب و استفاده از TestRPC
    • نصب و آماده سازی محیط برنامه نویسی Truffle
    • نصب و استفاده از Infura.io
    • نصب و پیکربندی KeyStore یا کیف پول MIST و MetaMask

 

  • تعامل با بلاکچین توسط کتابخانه Web3.js
    • آشنایی با ماژول های مختلف Web3.js
    • web3.eth – web3.eth.net – web3.eth.personal – web3.ssh– web3.bzz
    • نحوه تعامل با شبکه اتریوم توسط ماژول Web3.eth
    • نحوه تعامل با property های شبکه توسط ماژول Web3.eth.net
    • نحوه تعامل با اکانت های اتریوم توسط ماژول شخصی web3.eth.personal
    • نحوه تعامل با پروتکل whisper توسط ماژول Web3.ssh
    • نحوه تعامل با شبکه swarm توسط ماژول Web3.bzz
    • نوشتن یک کد ساده برای شروع کار با کتابخانه Web3.js
    • افزودن کتابخانه Web3.js به پروژه
    • استفاده از الگوی کد داخل App.js که برای قراردادهای مختلف قابل استفاده است
    • ساخت web3.js برای استفاده از توابع یک قرارداد هوشمند
    • ستاپ کردن app.js جهت فراخوانی فانکشن
    • انتقال مستقیم Ether به یک اکانت
    • انتقال Ether به قرارداد هوشمند
    • بررسی مقادیر برگشتی فانکشن ها و لاگ گرفتن
    • checkout کردن event logs
    • دسترسی به event ها جهت بررسی رویدادهای شبکه بلاکچین
    • فیلترهای دسترسی به رویدادهای خاص
    • استفاده از توابع Web3 util

 

  • ساخت توکن
    • آشنایی با استانداردهای مختلف توکن (ERC-721 و ERC-20)
    • ساخت یک توکن (ERC-20) روی اتریوم با استفاده از زبان Solidity
  • استقرار اپلیکیشن و هزینه های مربوطه (Deploy & Costs)
    • آشنایی با فرایند انتشار DApp
    • فرآیند کامپایل و انتشار سالیدیتی
    • مفهوم Gas و Gas-Costs
    • تبدیل استرینگ ها به بایت جهت کاهش GAS
    • آشنایی با KeyStore
    • Deploy کردن اپلیکیشن توسط Ropsten Test-Ether
  • توسعه تیمی
    • آشنایی با کاربردهای Truffle
    • تطبیق با استانداردهای Truffle-Project
    • مقایسه با Embark
    • مدیریت سورس کد
    • Unit-Testing توسط Truffle
    • نوشتن یک Unit Test با ترافل

اهداف این آموزش

  • طراحی و توسعه برنامه های غیر متمرکز
  • چگونگی طراحی، کدنویسی، توسعه، ایجاد و اجرای قراردادهای هوشمند
  • برنامه نویسی بلاکچین

مشاور پروژه های برنامه نویسی و بازاریابی الکترونیکی

آیا نیاز به یک مشاور حرفه ای و مجرب در پروژه های برنامه نویسی و یا پروژه های بازاریابی الکترونیکی خود دارید ؟

مهندس ایمان مدائنی مدرس بین المللی و رسمی مایکروسافت، مدیر و موسس انجمن برنامه نویسان و آموزشگاه برنامه نویسان ، دارای مدارک رسمی Microsoft Certified Trainer - MCT و MCSD و MCP و MCSE و MCSA از مایکروسافت، مشاور چندین سازمان و ارگان دولتی و شرکت های خصوصی، می تواند در این مسیر شما را همراهی نماید.

آخرین مقالات

مشاهده همه