Resources

What you need to be successful

Developmental Materials

In order to successfully develop blockchain software, there are a variety of softwares that you'll need in order to get the your code set up, compiled, and deployed. Below are a list of basic materials needed to develop software and successfully participate in our workshops.


Prerequisites

These are the fundemental resources that absolutely needed to start developing. Make sure you have the following installed to start coding.

  • Node.js - Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.
  • Node Package Manager (NPM) - NPM is the package manager for JavaScript and it's also the world’s largest software registry. Discover packages of reusable code and assemble them in powerful new ways.
  • Text Editor/IDE -

Solidity Development Basics

Solidity is the language used for all Ethereum development. We'll be using this language for our workshops.

  • Solidity Compiler - The Ethereum organization describes various ways to compile solidity programs.
  • Metamask - This is a chrome extension that allows users to transact/interact with the Ethereum blockchain via a simple plugin.
  • Testrpc/Ganache-cli - This is an Ethereum client for testing and development; uses ethereum.js to simulate full client behavior.
  • Truffle Framework - Makes deployment, testing, and management of contracts and applications significantly easier when using localhost/testing tools.
  • Solidity Documentation - This is the documentation released by the Ethereum organization for the solidity language.

Miscellaneous Resources

These are other resources, that are either used in more advanced projects or not necessary for development

  • Truffle Boxes - Truffle Boxes are helpful boilerplates that allow you to focus on what makes your dapp unique. In addition to Truffle, Truffle Boxes can contain other helpful modules, Solidity contracts and libraries, front-end views and more - all the way up to complete example dapps.
  • Zeppelin - This offers boilerplate contracts focused on delivering security via library use
  • AssethBox - This is an Ubuntu virtual machine provided by Asseth that comes with Ethereum development tools preloaded. You'll need to have Virtual Box installed in order to run it. It's also recommended that you update most of the development tools after installing.
  • Ethstats - Realtime stats regarding network health and mining based on data offered by miners who have opted-in.
  • Myetherwallet - Webservice offering the ability to create and broadcast transactions as well as deploying contracts without running a node.

Learning Materials

There are numerous resources out there for you to learn Ethereum development. Here are the helpful ones we found.


Basic Concepts

These are the fundemental concepts that will understand ethereum programming and blockchain technology

  • Blockchain - A succinct but extensive introduction to Blockchain
  • Ethereum 101 - Learning material provided by the Ethereum organization covering a breadth of concepts in the blockchain industry
  • An introduction to Ethereum - An article created by one of CoinBase's co-founders; it gets to the point of what makes Ethereum important

Learn to Develop

These are the fundemental concepts that will understand ethereum programming and blockchain technology

  • CryptoZombies.io - A great introduction to Ethereum development that doesn't require a compiler or the aforementioned software: it's all online
  • What's Solidity? - A YouTube series that covers the basics of Ethereum development
  • Ethereum Udemy Course - A highly-rated online course that extensively covers development in Ethereum, covering everything from the fundementals to advanced concepts