Truffle Truffle is a development framework for Ethereum which makes it easy to deploy contracts to both public and private networks. Truffle provides a lot of additional development tools making it a good starting point for any decentralized application.
Connecting to Ethereum
To talk with the network, applications must connect through a node. There are multiple options to choose from.
Infura Provides an easy to use API for developers to connect to the Ethereum network and IPFS.
Parity A secure method to connect to the Ethereum network to develop smart contracts and decentralized applications
Ganache Quickly fire up a personal Ethereum network to run tests, execute commands and inspect state.
Geth A CLI tool for running a full Ethereum node in Go.
Writing Smart Contracts
Programmable smart contracts can be created on the network to run a wide variety of applications/services.
Solidity - A high level language designed for implementing smart contracts on the Ethereum network
Viper - An experimental programming language written in Python for writing smart contracts
OpenZepplin-Solidity - A set of frameworks and libraries for smart contract development.
Remix - An online solidity code editor. Can compile and create contracts on the Ethereum network directly from the editor.
Connecting Web Apps
Web apps need a way to connect with a node and with smart contracts.
Web3 - A javascript API to allow decentralized applications to talk with a node. Maintained and managed by the core Ethereum project.
Ethers - Complete Ethereum wallet implementation and utilities in JavaScript. A powerful library that abstracts away from some of the complexity in blockchain development.
Signing Transactions
End users need a way to call and sign transactions
Metamask - A browser extension that makes it easy for users to interact and sign transactions for decentralized applications.
uPort - A self sovereign identity platform. Can be used to securely collect information about our identity and sign transactions for applications that support it.
Development Frameworks
Connecting to Ethereum
Writing Smart Contracts
Connecting Web Apps
Signing Transactions