28

Let's say we have someone who knows about blockchain but who doesn't have any background in blockchain-based application. That person wants to code an ethereum-based Dapp (decentralized application) as a proof of concept.

How to get started? What would be the first steps? (advice, best practices, interesting material etc.)

24

This question is too broad to be easily answered, and there are several good existing tutorials available online. But here are the first steps you might take:

  • Read up on the basic concepts. The Ethereum white paper isn't a bad place to start, and some of the tutorials I linked above intersperse conceptual explanations with step-by-step tutorial instructions.

  • Pick a language. There are several language options for working with Ethereum, and it's advisable to either 1) pick the one that most closely resembles a language you know or 2) pick the one that seems to have the most extensive documentation and support (I'd probably go with Solidity based on this metric).

  • Pick a framework and test rpc. I'm mostly familiar with the Solidity frameworks Embark and Truffle and use Ethersim as my test rpc.

  • Look at example projects. Look around Github for projects that use Ethereum (I've been looking at the open source projects ConsenSys has out) to see what best practices are starting to coalesce.

  • Join a community & ask questions. The most progress I've made working with Ethereum has come about because I had people to bounce questions off of. There's a forum, reddit, irl meetups in some cities, and of course this site.

15

One of the main things you'll want to focus on is determining which part of the application needs to be on-chain and which part might happen in the browser. This could separates the application into a few possible groups:

  1. Compute (Logic written in Solidity/Serpent, compiling to EVM bytecode)
  2. Storage (Static assets such as HTML/JS/CSS)
  3. Messaging (Ephemeral off-chain communication)

One of the ways Ethereum exposes its functionality is through a JavaScript library known as web3.js. Using the JavaScript API, developers can add or replace features of a traditional HTML application with Ethereum-backed functionality.

When fully designed for decentralized operation, a DApp will require no traditional server, instead running on the fabric of several decentralizing protocols.

11

One place to start would be Dapps for Beginners you could follow the progression via Introduction to development on Ethereum and then Setting up your development environment or jump straight to;-

Your first Dapp

The tutorial focuses on your first steps using Alethzero (the development client), and the creation of a simple coin contract – the backend of your Dapp.

The Education area of the Forum

At the same time it would be useful to read / follow / participate in the Education area of the Forum since there are useful questions and answers e.g. Understanding data storage

"Regarding storage fees, you pay both for the size of the Tx in bytes and for the size of the new data put into contract storage. If you remove data from contract storage (I.E. after your tx executes, the total contract storage is smaller), you get a refund up to half the gascost of the tx (you cant get sent ether back, but your tx fee can be subsidized)."

The Yellow Paper

In the Yellow paper Appendix G the fee schedule is specified in units of gas for the fees associated with various computation.

State of the DAPPS

Finally then if you are looking for interesting material State of the Dapps (a Decentralized Application (or 'Dapp') is a piece of software consisting of a user interface (UI) and a decentralized backend; typically making use of a blockchain and smart contracts. Most of the projects listed were built using Ethereum.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.