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:
- Ethercasts State of the Ðapps
- Dappcentral - Sortable pages for Dapps with instructions, code validation, and network stats.
- Dapps Mailing List - Mailing list for developers on Ethereum (discontinued).
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.
- What apps can we eventually expect? https://www.reddit.com/r/ethereum/comments/2mnl7f/the_top_10_ether_dapps_of_2015/cm63nsf
In the future, dapps are likely to be listed and distributed in dappstores integrated in dapp browsers.
- Mist - official GUI dapp browser developed by the foundation, alpha stage. Mist as Wallet dapp is in beta.
- Syng - Mobile Ethereum browser (alpha) by Jarrad Hope - supported by DEVgrants
- MetaMask - Aaron Kumavis Davis’s in-browser GUI. Epicenter Bitcoin interview on github - supported by DEVgrants
- AlethZero - C++ eth client GUI, (discontinued).
- Supernova - (discontinued).
There are developer tools that help you develop, test, and deploy dapps in a way that automatically utilizes the resources listed below.
- Solidity Docs - Solidity is the Ethereum developed Smart Contract language, which compiles to EVM (Ethereum Virtual Machine) opcodes.
- Solium - A linter for Solidity which strictly follows the rules prescribed by the official Solidity Style Guide.
- Test Networks - 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.
- Dapp development resources. This assists you in developing, debugging, and deploying Ethereum applications.
Dapp development resources¶
- Smart contracts ELI5
- A 101 noob’s intro to programming smart contracts
- Standardised contract APIs listing
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. Mix
Below are developer frameworks and IDEs used for writing Ethereum dapps.
- Truffle - Truffle is a development environment, testing framework and asset pipeline for Ethereum.
- Dapple - Dapple is a tool for Solidity developers to help build and manage complex contract systems on Ethereum-like blockchains.
- Populus - Populus is a Smart Contract development framework written in python.
- Eris-PM - The Eris Package Manager deploys and tests smart contract systems on private and public chains.
- EtherScripter (obsolete, discontinued)
- Resilience Raw Transaction Broadcaster
Commandline console for Ethereum nodes.
Here you could find a list of available commands ethereum node control commands
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:
More information about node configuration file.
Base layer services¶
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¶
- Viktor Trón, Daniel A. Nagy: Swarm - Ethereum ÐΞVcon-1 talk on youtube
- Daniel A. Nagy: Keeping the Public Record Safe and Accessible - Ethereum ÐΞVcon-0 talk on youtube
Code and status¶
- [issues on github](https://github.com/ethereum/go-ethereum/labels/swarm)
- [development roadmap]()
- ethersphere on twitter
- swarm gitter room
- swarm subreddit
Storage on and offchain
Ethereum Alarm Clock¶
- Decentralized cron service in Ethereum proposal - by Peter Szilagyi
Ethereum Computation Market¶
- Author: Piper Merriam
- Website: computation_market_main_website.
- Documentation: computation_market_documentation.
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.
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.