Think in Coin | DEV Docs
  • Develop Documents
  • Networks
    • Fantom Network
      • quick-start
        • Short Guide
      • technology
        • Lachesis aBFT
        • Overview
        • Proof of Stake
        • Transaction Fees
        • FAQ
      • staking
        • Quick start
        • Overview
        • Stake on Fantom
        • Run a Validator Node
        • Run a Read-only node
        • Run a Testnet Validator
        • Troubleshooting
      • api
        • Public API endpoints
        • Getting Started
        • Installation
        • GraphQL Schema Basics
        • Schema Structure
        • Implementation Details and Notes
        • Covalent indexing and querying API
      • tutorials
        • Set up Metamask
        • Set up Metamask (testnet)
        • Deploy a Smart Contract
        • Create a Fixed-cap Asset
    • xDAI Chain
      • Welcome to xDai
      • untitled
        • About xdai
          • Projects & DApps
          • Features
          • Use Cases
          • News & Information
          • Roadmaps
          • FAQs
        • For users
          • xDai Token
          • Getting Started with xDai
          • Bridges
          • Wallets
          • Applications
          • Block Explorers
          • Governance
        • For stakers
          • STAKE Token
          • Staking on xDai
          • EasyStaking on Ethereum
          • POSDAO Staking Roadmap
        • For developers
          • Developer Resources & Tools
          • On-Chain Random Numbers
          • Install xDai Client - Run a Non-Validator Node
          • Stable Chain Network Deployment
          • Grants for building on xDai
          • Immunefi Bug Bounty
        • For validators
    • Polygon Network
      • About - Polygon
      • Technology
    • Huobi HECO Chain
      • Huobi Open Platform
    • Binance Chain
      • Create Address
      • Fees
      • Governance
      • Threshold Signature Scheme
      • Atomic Swap
      • WalletConnect
      • Wallets Support
        • WalletConnect Support
        • Trust Wallet User Guide
        • Ledger Wallet Guide
        • Trezor Wallet Guide
        • How to manage BEP8 token with Web Wallet
      • BEP8 Token Protocol
      • Binance DEX Trading
      • Binance Chain Testnet
      • Exchange Integration
      • List Instructions
    • Binance Smart Chain
      • Concepts
        • Consensus
        • Comparison
        • Genesis File
        • BC > BSC Cross-Chain
          • Mechanism
          • Cross-Chain Transfer
          • BSC Relayer
          • Oracle Module
          • Oracle Relayer
          • Relayer incentives
        • Build-in System Contract
        • Governance
      • Ecosystem
      • Gnosis
      • Binance Bridge
        • Release
        • Roadmap
        • User Guides
        • Developer
          • Widget
          • Swagger API reference
        • Partnership
        • Support
          • Customer Support
        • guides
          • Binance Bridge v2
          • Binance Bridge v1
          • Supported Assets
          • Buy BNB as Gas
    • Ethereum (ERC)
      • Ether - Introduction
        • The Ethereum Foundation
        • Community
        • History of Ethereum
        • The Homestead Release
        • What is Ethereum?
        • A platform for decentralized apps
      • The Ethereum network
        • Connecting to the Network
        • Test Networks
      • Mining
      • Contracts and Transactions
        • Account Types, Gas, and Transactions
        • Contracts
        • Accessing Contracts and Transactions
        • Dapps
        • Mix
          • Project Editor
          • Scenarios Editor
          • State Viewer
          • Transaction Explorer
          • JavaScript console
          • Transaction debugger
          • Dapps deployment
          • Code Editor
        • Ethereum Tests
          • Blockchain Tests
          • State Tests
        • Web3 Base Layer Services
    • Harmony ONE
      • developers
        • Getting Started
        • Network & Faucets
        • Deploying on Harmony
        • SDK
        • API
        • Wallets
        • Tools
        • Showcases
        • Hackathon & Bounties
        • Learn
      • network
        • Governance
        • Holders
        • Validators
        • Delegators
      • general
        • Grants
        • Introduction
          • What is Harmony?‌
          • Roadmap
          • Strategy & Architecture
          • Study Materials
          • FAQ
        • Technology
        • Horizon Bridge
        • DApps
        • Ecosystem
        • Community
    • TRON Network (TRC)
      • Introduction
      • Tron Protocol
        • Account
        • Resource Model
        • Super Representatives
          • Mechanism
          • Step to become a Candidate
          • Committee and Proposal
        • Transaction
        • Multi-Signature
          • Example Process Flow
        • Concensus
        • untitled
          • Build transaction locally
      • TRX AND TRC TOKEN
        • TRX
          • TRX Transfer
          • Query TRX balance
        • TRC-10
          • Issue TRC-10 token
          • Participate TRC-10
          • TRC-10 Transfer
          • Query TRC-10 balance
          • TRC-10 Transfer in Smart Contracts
          • Other TRC-10 Interfaces
        • TRC-20
          • Protocol Interface
          • Issuing TRC-20 tokens tutorial
          • TRC-20 Contract Interaction
        • TRC-721
  • Community
    • Github
    • Telegram DEVs
Powered by GitBook
On this page
  • Dapp directories
  • Dapp browsers
  • Dapp development resources
  • Examples
  • Tutorials
  • Mix-IDE
  • IDEs/Frameworks
  • Ethereum-console
  • Base layer services
  • Whisper
  • Swarm
  • Ethereum Alarm Clock
  • Ethereum Computation Market
  • BTCRelay
  • RANDAO
  • The EVM

Was this helpful?

  1. Networks
  2. Ethereum (ERC)
  3. Contracts and Transactions

Dapps

PreviousAccessing Contracts and TransactionsNextMix

Last updated 2 years ago

Was this helpful?

A dapp is a service that enables direct interaction between end users and providers (e.g. connecting buyers and sellers in some marketplace, owners and storers in file storage). Ethereum dapps typically interface users via an HTML/Javascript web application using a Javascript API to communicate with the blockchain. Dapps would typically have their own suite of associated contracts on the blockchain which they use to encode business logic and allow persistent storage of their consensus-critical state. Remember that because of the redundant nature of computation on the Ethereum network, the gas costs of execution will always be higher than private execution offchain. This incentivizes dapp developers to restrict the amount of code they execute and amount of data they store on the blockchain.

Dapp directories

Dapps that use Ethereum are compiled to the following lists. They are listed in various stages of development (concept, working prototype, live/deployed). If you are developing a dapp, consider adding an entry to these listings:

The offered decentralised services listed cover a wide range of areas including finance, insurance, prediction markets, social networks, distributed computation and storage, gambling, marketplace, internet of things, governance, collaboration, development and games.

In the future, dapps are likely to be listed and distributed in dappstores integrated in dapp browsers.

Dapp browsers

  • ​ - official GUI dapp browser developed by the foundation, alpha stage. Mist as Wallet dapp is in beta.

  • ​ - Mobile Ethereum browser (alpha)

  • ​ - Aaron Kumavis Davis’s in-browser GUI. - supported by DEVgrants

  • ​ - C++ eth client GUI, (discontinued).

  • ​ - (discontinued).

Dapp development requires an understanding of the Web3 Javascript API, the JSON RPC API, and the Solidity programming language.

Note

There are developer tools that help you develop, test, and deploy dapps in a way that automatically utilizes the resources listed below.

Dapp development resources


Examples

Tutorials


Mix-IDE

IDEs/Frameworks

Below are developer frameworks and IDEs used for writing Ethereum dapps.

Ethereum-console

Command-line console for Ethereum nodes.

To use this console you would need to start a local ethereum node with ipc communication socket enabled (file geth.ipc in data directory). By default ipc socket should be located at you local home directory in .ethereum after you started a node. You could also set --test option to use specific node test commands.

In the console you could then type

Here the defenition of --test mode node commands:

Base layer services

Whisper

Swarm

Swarm is a distributed storage platform and content distribution service, a native base layer service of the Ethereum web 3 stack. The primary objective of Swarm is to provide a sufficiently decentralized and redundant store of Ethereum’s public record, in particular to store and distribute dapp code and data as well as block chain data. From an economic point of view, it allows participants to efficiently pool their storage and bandwidth resources in order to provide the aforementioned services to all participants.

From the end user’s perspective, Swarm is not that different from WWW, except that uploads are not to a specific server. The objective is to peer-to-peer storage and serving solution that is DDOS-resistant, zero-downtime, fault-tolerant and censorship-resistant as well as self-sustaining due to a built-in incentive system which uses peer to peer accounting and allows trading resources for payment. Swarm is designed to deeply integrate with the devp2p multiprotocol network layer of Ethereum as well as with the Ethereum blockchain for domain name resolution, service payments and content availability insurance.

ÐΞVcon talks on swarm

Code and status

      • [development roadmap]()


Storage on and offchain


Ethereum Alarm Clock

  • Author: Piper Merriam

A marketplace that facilitates scheduling transactions to occur at a later time. Serves a similar role to things like crontab in unix, or setTimeout in javascript.

Ethereum Computation Market

  • Author: Piper Merriam

A marketplace that facilitates verifiable execution of computations off-chain. Allows for very expernsive computations to be used within the EVM without having to actually pay the high gas costs of executing them on-chain.

BTCRelay

RANDAO

The EVM

The Ethereum Virtual Machine (EVM) is the runtime environment for smart contracts in Ethereum. It is not only sandboxed, but actually completely isolated, which means that code running inside the EVM has no access to network, filesystem, or other processes. Smart contracts even have limited access to other smart contracts.

Contracts live on the blockchain in an Ethereum-specific binary format (EVM bytecode). However, contracts are typically written in an Ethereum high level language, compiled into byte code using an EVM compiler, and finally uploaded on the blockchain using an Ethereum client.

​ - This is the main JavaScript SDK to use when you want to interact with an Ethereum node.

​ - This is the low level JSON RPC 2.0 interface to interface with a node. This API is used by the .

​ - Solidity is the Ethereum developed Smart Contract language, which compiles to EVM (Ethereum Virtual Machine) opcodes.

​ - A linter for Solidity which strictly follows the rules prescribed by the official .

​ - Test networks help developers develop and test Ethereum code and network interactions without spending their own ether on the main network. Test network options are listed below.

​. This assists you in developing, debugging, and deploying Ethereum applications.

​​

​​

Mix is the official Ethereum IDE that allows developers to build and deploy contracts and decentralized applications on top of the Ethereum blockchain. It includes a Solidity source code debugger. (discontinued)

​ - Truffle is a development environment, testing framework and asset pipeline for Ethereum.

​ - Dapple is a tool for Solidity developers to help build and manage complex contract systems on Ethereum-like blockchains.

​ - Populus is a Smart Contract development framework written in python.

​ - The Eris Package Manager deploys and tests smart contract systems on private and public chains.

​ - Embark is a Ðapp development framework written in JavaScript.

​ connects to an Ethereum node running in the background (tested with eth and geth) via IPC and provides an interactive javascript console containing the web3 object with admin additions.

Here you could find a list of available commands ​

More information about node file.

​ - DEVCON-1 talk youtube video

​ - Ethereum ÐΞVcon-1 talk on youtube

​​

​ (about ETH/BTC 2-way peg without modifying bitcoin code).

Random number * ​

Mist
Status
MetaMask
Epicenter Bitcoin interview on github
AlethZero
Supernova
Web3 JavaScript API
JSON RPC API
Web3 JavaScript API
Solidity Docs
Solium
Solidity Style Guide
Test Networks
Dapp development resources
https://dappsforbeginners.wordpress.com/tutorials/your-first-dapp/
https://github.com/ethereum/wiki/wiki/Dapp-Developer-Resources
Mix
Truffle
Dapple
Populus
Eris-PM
Embark
Ethconsole
ethereum node control commands
configuration
Gavin Wood: Shh! Whisper
Viktor Trón, Daniel A. Nagy: Swarm
BTCrelay
More information
https://www.reddit.com/r/ethereum/comments/49yld7/eli5_how_does_a_service_like_szabodice_grab_a/