صفحه آخرین به روزرسانی: November 13, 2020
منابع توسعهدهندگان
شروع کنیم
اگر میخواهید تازه با روند توسعه اتریوم آشنا شوید، جای درستی مراجعه کردهاید. این راهنماهایی که توسط جامعه اتریوم نوشته شده است، به معرفی اصول پایهای مجموعه اتریوم پرداخته و مفاهیم هستهای که احتمالا متفاوت با توسعه اپهای دیگریست که با آنها آشنایی دارید، به شما ارائه میدهد.
آیا به توضیحات پایهای بیشتری نیاز دارید؟ پس اینجا را ببینید آموختن.
- راهنمای جامع علاقه مندان و توسعه دهندگان اتریوم ( Ethereum ) کوین ایران
- Getting up to speed on Ethereum Aug 7, 2017 - Matt Condon
- Ethereum In Depth, Part 1 May 11, 2018 - Facu Spagnuolo
- Ethereum In Depth, Part 2 July 24, 2018 - Facu Spagnuolo
- چطور می توانیم یک توسعه دهنده اتریوم (Ethereum) شویم؟ (قسمت نخست) 2018-03 کوین ایران
- چطور می توانیم یک توسعه دهنده اتریوم (Ethereum) شویم؟ (قسمت دوم) 2018-03 کوین ایران
- Ethereum Development Walkthrough, Parts 1-5 Jan 14, 2018 - dev_zl
- Ethereum 101, Parts 1-7 Feb 13, 2019 - Wil Barnes
- Full Stack Hello World Voting Ethereum Dapp Tutorial Feb 2019 - Mahesh Murthy
- Mastering Ethereum - A comprehensive textbook available for free online Dec 1, 2018 - Andreas Antonopoulos & Gavin Wood
- Ethereum Developer Portal - Everything you need to get started building on Ethereum Updated often - ConsenSys
- Deconstructing a Solidity Contract Aug 13, 2018 - Alejandro Santander & Leo Arias
- Full Stack Dapp Tutorial Series Updated Often - Joshua Cassidy
- آموزش گام به گام زبان برنامه نویسی Solidity برای ساخت Dapp اتریوم (قسمت نخست) 2018-07 - کوین ایران
- آموزش گام به گام زبان برنامه نویسی Solidity برای ساخت Dapp اتریوم (قسمت دوم) 2018-07 - کوین ایران
- آموزش گام به گام زبان برنامه نویسی Solidity برای ساخت Dapp اتریوم (قسمت سوم) 2018-07 - کوین ایران
زبانهای قرارداد هوشمند
هر برنامهای که بر روی ماشین مجازی اتریوم (EVM) اجرا شود عموما یک "قرارداد هوشمند" محسوب میشود. محبوبترین زبانهایی که برای نوشتن قراردادهای هوشمند بر روی اتریوم استفاده میشوند Solidity و Vyper هستند، اگرچه زبانهای در حال توسعه دیگری نیز وجود دارند .
سالیدیتی (Solidity) محبوبترین زبان روی اتریوم، الهام گرفته شده از ++C، پایتون و جاوا اسکریپت.
وایپر (Vyper) زبانی متمرکز بر امنیت برای اتریوم، بر پایه پایتون.
آیا به دنبال انتخابهای دیگری هم هستید؟
منابع ویژه زبان
ما در حال اختصاص صفحاتی به زبانهای ویژه هستیم تا توسعهدهندگان بتوانند با زبان برنامهنویسی ترجیحی خودشان در مورد اتریوم آموزش ببینند.
- Ethereum for Java developers
- Ethereum for Python developers
- Ethereum for Javascript developers (coming soon)
- Others coming soon!
ابزارهای برنامهنویسی
اتریوم ابزارهای فراوانی دارد که به توسعهدهندگان کمک میکند برنامههای کاربردی خودشان را بسازند، تست کنند، و گسترش دهند. در زیر محبوبترین ابزارها که با آنها بتوانید کار خود را شروع کنید آورده شده است. اگر میخواهید عمیقتر شوید، این را بررسی کنید :
ترافل (Truffle) یک محیط توسعه، چارچوب کاری تست، ساخت کانال ارتباطی، و سایر ابزارها.
IPFS و Whisper آغازی بر یک محیط توسعه، چارچوب کاری تست، و سایر ابزارهای مجتمع با اتریوم
وافل (Waffle) یک چارچوب کاری برای توسعه و تست قرارداد هوشمند پیشرفته (بر پایه ethers.js).
اترلایم (Etherlime) چارچوب کاری بر پایه Ethers.js برای توسعه dapp (سالیدیتی و وایپر)، گسترش، رفع مشکلات، تست و سایر موارد.
ابزارهای دیگر
بیدلر (Hardhat) یک اجراکننده یا task runner برای توسعهدهندگان قرارداد هوشمند اتریوم
اُپنزپلین (OpenZeppelin SKD) جعبهابزار کامل قرارداد هوشمند: مجموعهای از ابزارها که برای توسعه، کامپایل، ارتقا، گسترش و تعامل با قراردادهای هوشمند به کمک شما میآید.
گراف (The Graph) پروتکلی برای فهرستبندی دادههای IPFS و اتریوم و بررسی آنها با استفاده از GraphQL.
تندرلی (Tenderly) پلتفرمی برای نظارت آسان بر قراردادهای هوشمند شما، همراه با ردیابی خطاها، اعلام خطرها، ارزیابیهای کارایی، و تحلیل جزئیات قرارداد.
ابزار کاری پایتون (Python Tooling) مجموعهای متنوع از برنامهها برای تعامل اتریوم از طریق پایتون
براونی (Brownie) محیط توسعه و چارچوب کاری تست بر پایه پایتون.
Web3j مجموعهای از برنامههای Java/Android/Kotlin/Scala برای اتریوم
آیا به دنبال انتخابهای دیگری هم هستید؟
محیطهای توسعه جامع (Integrated Development Environments (IDEs
Visual Studio Code پلتفرم متقاطع حرفهای IDE با پشتیبانی رسمی اتریوم.
رمیکس Remix IDE بر پایه شبکه با تحلیل آماری تعبیه شده داخلی، و یک ماشین مجازی تست بلاکچین.
سوپربلاکس (Superblocks) آی دی ای (IDE) بر پایه شبکه، با ماشین مجازی مرورگر بلاکچین تعبیه شده داخلی، همسازی MetaMask، واقعهنگار تراکنشها، و موارد دیگر.
اِت-فیدل (EthFiddle) آی دی ای (IDE) بر پایه شبکه، که شما را قادر به نوشتن، کامپایل، و رفع ایراد قرارداد هوشمندتان میکند.
آیا به دنبال انتخابهای دیگری هم هستید؟
Frontend Javascript APIs
Web3.js Ethereum Javascript API
Ethers.js ایجاد و کاربردپذیری کامل کیف پول اتریوم در JavaScript و TypeScript
light.js مجموعهای از برنامههای انفعالی سطح بالای JS که برای رایانههای سبک بهینهسازی شدهاند.
Web3-wrapper Typescript alternative to Web3.js
آیا به دنبال انتخابهای دیگری هم هستید؟
Backend APIs
Infura The Ethereum API as a service
درگاه اتریوم Cloudflare
Nodesmith دسترسی به شبکههای اصلی و تست اتریوم JSON-RPC API
ذخیرهسازی
IPFS یک سیستم ارجاع فایل و ذخیرهسازی غیرمتمرکز برای اتریوم، (InterPlanetary File System).
- ipfs.io
- Documentation
- GitHub
- معرفی پلتفرم اشتراک فایل و هاستینگ غیرمتمرکز وب سایت ها (IPFS) March, 2018 - CoinIran
Swarm یک پلتفورم ذخیرهسازی توزیعشده و سرویس توزیع محتوی برای اتریوم web3 stack.
OrbitDB یک پایگاه داده همتا به همتای غیرمتمرکز در سطح بالاتر از IPFS.
ابزارهای امنیت
Slither تحلیل آماری Solidity نوشته شده با Python 3
MythX API تحلیل امنیت برای قراردادهای هوشمند اتریوم
Mythril ابزار تحلیل امنیت برای بایتکد EVM
Manticore یک اینترفیس خط فرمان که از یک ابزار اجرایی سمبلیک برای قراردادهای هوشمند و باینریها استفاده میکند.
Securify اسکنر امنیت برای قراردادهای هوشمند اتریوم
(Formal Verification) تایید رسمی
- تایید رسمی قراردادهای هوشمند چطور کار میکند July 20, 2018 - Brian Marick
- تایید رسمی چگونه میتواند از بینقصی قراردادهای هوشمند مطمئن سازد Jan 29, 2018 - Bernard Mueller
آیا به دنبال انتخاب-های دیگری هم هستید؟
ابزارهای تست
Solidity-Coverage ابزار اندازهگیری پوشش کد solidity.
hevm اجرای EVM که به طور اختصاصی برای تست یونیت و رفع ایراد قراردادهای هوشمند ساخته شده است.
Whiteblock Genesis یک پلتفورم تست و محل توسعه end-to-end برای بلاکچین.
آیا به دنبال انتخابهای دیگری هم هستید؟
جستجوگرهای بلاک
جستجوگرهای بلاک سرویسهایی هستند که با یافتن اطلاعات درباره تراکنشهای ویژه، بلاکها، قراردادها، و سایر فعالیتهای روی زنجیره، به شما اجازه میدهند که در بلاکچین اتریوم (و تستنتهای مربوط به آن) کاوش کنید.
تستنتها و فاستها
جامعه اتریوم از تستنتهای چندگانه مراقبت و نگهداری میکنند. اینها جهت تست برنامههای کاربردی در شرایط گوناگون، و قبل از گسترش آنها به شبکه اصلی اتریوم، مورد استفاده توسعهدهندگان قرار میگیرد.
Ropsten بلاکچین اثبات کار (PoW)، تستاتر قابل استخراج است
Rinkeby بلاکچین اثبات اعتبار (PoS)، پشتیبانیشده توسط تیم توسعه Geth
Goerli بلاکچین Cross-client Proof of Authority، ساخت و پشتیبانی توسط جامعه Goerli
کلاینتها و اجرای نود شخصی شما
شبکه اتریوم از تعداد زیادی نود تشکیل میشود که نرمافزار سازگار کلاینت را اجرا میکند. اکثریت این نودها موارد زیر را اجرا میکنند که هرکدام از آنها میتوانند مطابق نیازهای شما شکلدهی شوند. Geth یا Parity
Geth کلاینتهای اتریوم، نوشته شده با Go
Parity کلاینت اتریوم، نوشته شده با Rust
Besu Pantheon کلاینت اتریوم، نوشته شده با Java
منابع نود اتریوم
Ethnode اجرای یک نود اتریوم (Geth یا Parity) برای توسعه محلی.
Node Configuration Cheat Sheet Jan 5, 2019 - Afri Schoeden
آیا به دنبال انتخابهای دیگری هم هستید؟
بهترین تمرینها، الگوها و ضدالگوها
قراردادهای هوشمند
DappSys بلاکسازهای امن، آسان، و منعطف برای قراردادهای هوشمند.
قرارداد-های OpenZeppelin مجموعهای برای توسعه امن قرارداد هوشمند.
aragonOS الگوهایی برای کنترل ارتقاپذیری و اجازه دسترسی.
امنیت
رجیستری ضعف قرارداد هوشمند
راهنمای بهترین تمرینهای امنیت قرارداد هوشمند
-Smart Contract Best Practices
آیا به دنبال انتخاب-های دیگری هم هستید؟
آموزش و پشتیبانی توسعهدهنده
شبکه پرسش و پاسخ اتریوم
آکادمی ConsenSys دوره آموزشی توسعهدهنده اتریوم end-to-end که گام به گام بوده و در تمام طول سال برگزار میشود.
اتاق گفتگوی Solidity Gitter
تمام اتاقهای گفتگوی Ethereum Gitter
Chainshot آموزش برنامه نویسی اتریوم - تحت وب.
Cryptozombies آموزش برنامه نویسی بازیها روی اتریوم.
Blockgeeks دورههای آموزشی آنلاین در فناوری بلاکچین
DappUniversity آموزش ساخت برنامههای کاربردی غیرمتمرکز روی بلاکچین اتریوم
Ethernaut جنگ آزمون بر پایه Solidity که در هر سطح یک قرارداد برای هک شدن وجود دارد
Capture the Ether بازی امنیت قرارداد هوشمند اتریوم
UI/UX
- Challenge of UX in Ethereum June 25, 2018 - Anna Rose
- Designing for blockchain: what’s different and what’s at stake March 22, 2018 - Sarah Baker MillsRimble UI مولفههای سازگارپذیر و استانداردهای طراحی برنامههای کاربردی غیرمتمرکز.
- rimble.consensys.design
- GitHub
استانداردها
جامعه اتریوم استانداردهایی را مورد پذیرش قرار داده است که به کمک توسعهدهندگان میآید. آنها معمولا تحت عنوان پیشنهادهای بهسازی اتریوم (EIPs) ارائه میشوند که توسط اعضای جامعه اتریوم از طریق یک پروسه استاندارد مورد بحث قرار میگیرند.
- List of EIPs
- EIP github repo
- EIP discussion board
- Ethereum Governance Overview March 31, 2019 - Boris Mann
- Playlist of all Ethereum Core Dev Meetings (YouTube Playlist)
بعضی EIP ها با استانداردهای در سطح برنامههای کاربردی مربوط هستند (به طور مثال، یک فرمت قرارداد هوشمند استاندارد) که تحت این عنوان ارائه میشوند. Ethereum Requests for Comment (ERC) تعداد زیادی از ERC ها استانداردهای قطعی هستند که به طور وسیع در راستای اکوسیستم اتریوم مورد استفاده قرار میگیرند.