4. Problem
Technology for the problem of decentralized consensus
Consensus
Two or more parties
Parameter of interest for the parties
Value of parameter saved with a central authority
Central authority enforces consensus
Decentralized consensus
Two or more parties
Parameter of interest for the parties
Value of parameter saved with every one
Network agrees on a protocol of consensus
10. Ethereum
Clients
ÐΞV ethash
Client: “Any node able
to parse and verify the
blockchain, its smart
contracts and
everything related.”
Official CLI
• eth – C++
• geth – Go
• pyethapp -
Python
Official GUI
• mist
• alethzero
Third Party
CLI
• parity - Rust
• ethereumj –
Java
• ethereumjs-
vm – EVM in
javascript
• ethereumH –
Haskell
• ruby-
ethereum-
Ruby
Third Party
GUI
• etherwall -
Qt
https://ethereum.stackexchange.com/q/269/3137
16. Ethereum
Development
Framework
• Built-in smart
contract compilation,
linking, deployment
and binary
management
• Automated contract
testing for rapid
development – Mocha
and Chai
• Scriptable deployment
& migrations
framework
• Network management
for deploying to both
public & private
networks
• External packages –
npm and ethpm
• Interactive console for
contracts
Truffle is a development environment, testing framework and asset
pipeline for Ethereum, aiming to make life as an Ethereum developer
easier.
18. Ethereum
Development
Framework
Framework for serverless Decentralized Applications
using Ethereum, IPFS and other platforms
Blockchain (Ethereum)
•Automatically deploy contracts
and make them available in your
JS code.
•Do Test Driven Development
•Keep track of deployed contracts;
deploy only when truly needed.
•Easily manage complex systems
of interdependent contracts.
Decentralized Storage (IPFS)
•Easily Store & Retrieve Data on
the DApp through EmbarkJS.
•Deploy the full application to
IPFS or Swarm.
Decentralized Communication (Whisper,
Orbit)
• Easily send/receive messages through
channels in P2P through Whisper or
Orbit.
Web Technologies
• Integrate with any web technology
including React, Foundation, etc..
• Use any build pipeline or tool you wish,
including grunt, gulp and webpack.