Technical Introduction to EOS
Angelo Laub
30.05.2018
Today's sponsor:
www.slant.li
Decentralized Opinion Network on EOS
Disclaimer
I am not affiliated with Block.one
I'm just a developer who is interested in this technology
EOS is still under heavy development
I'm still learning myself
I own some EOS tokens
I want to build dApps on EOS
Who is a developer?
Who has developed on EOS already?
Who has developed on Ethereum?
Who has developed on other Blockchains?
Who is an entrepreneur?
Who wants to build on EOS?
EOS
The name of the EOS token
The name of the community-operated mainnet blockchain based on the EOS.IO Software!
EOS.IO
Software developed by Block.One
https://github.com/EOSIO/eos
Used by:
EOS Mainnet
WAX
…others
Ethereum | EOS | |
---|---|---|
Consensus | PoW | BFT-DPOS |
TPS | 15-30? | 1000 |
VM | EVM | WebAssembly |
Smart Contract language | Solidity and others | ATM: C++ only |
Block time | 15 seconds | 500 ms |
Transaction fees | Yes | No |
Law paradigm | Code | Law |
Arbitration | No | Yes (built-in) |
Native token | Ether | - |
Token standard | ERC-20 | eosio.token |
BFT Delegated Proof of Stake
21 Block Producers
Any number of backup producers
On-Chain Voting based on stake
Producing BPs can quickly be switched
Optimized for low-latency
Probably not as censorship resistant as Ethereum
But system might still work well enough in practice
Mainnet Launch: 2nd of June
Consensus
Block time: 500ms
No transaction fees
No Gas
Rate limiting based on stake
At launch: 1000 TPS
Scaling via Sidechains and Multithreading
Speed & Scalability
Constitution
Ricardian contracts
Process for changing smart contract code
Easy upgrades and bug recovery
Human readable account names
Recovery from stolen keys
Delegating capacity
Merkle Proofs for Light Client Validation
Inter Blockchain Communication
Random Features
EOS Token
Currently an ERC-20 token
It will be an eosio.token token
Needs to be staked for access to blockchain resources
Token is not consumed
Can be unstaked when you're done
Block producer voting
Airdrops by dApps
250 ms average confirmation time
Faster than most PHP/MySQL Apps
Truly interactive user interfaces
Users need no EOS tokens
App needs to stake tokens
Multi-Index Database API
EOS.IO Storage based on IPFS
Additional query services by block producers
Distributed Applications
EOS.IO Application Stack
Development Toolchain
# Create directory
mkdir example
cd example
# Write smart contract
vi example.cpp
# Compile C++ code to WebAssembly:
eosiocpp -o example.wast example.cpp
# Generate ABI File:
eosiocpp -g example.abi example.cpp
# Deploy Smart Contract:
cleos set contract example ../example
Live Demo
Smart Contracts
Smart Contracts can be changed:
Fix bugs
Extend functionality
How can this possibly work?
Ricardian Contracts
Digital documents that define the terms and conditions of an interaction between two or more parties
Article 3 - Currency
{
“COINNAME”: “BUX”,
“INFLATION”: “5%”,
“INITIALISSUE”: “1,000,000,000”
“SYMBOL”: “$”
“DECIMALS”: “2”
}
The Community hereby creates a currency known
as {COINNAME}, possession of which is evidence
of a contribution to the community. The quantity
of {COINNAME} shall increase no more than {INFLATION}
per year after the first {INITIALISSUE} of {COINNAME}
are distributed.
Arbitration
aka Dispute Resolution
Specially trained Human Arbitrators
Everyone can open an arbitration case
Enforcement of Ricardian Contracts
Enforcement of the EOS Constitution
Undo DAO Hack without Fork
BPs are bound by arbitration decisions
Notable dApps
Everipedia - Decentralized Wikipedia
Bancor - Decentralized exchange with automated market markers
EOSfinex - Decentralized exchange by Bitfinex
Chintai - Token leasing platform
ONO - Social Network
Frigg - Marketplace for 3D printing data
HireVibes - Decentralized Job Platform
Zimbra X - Enterprise email and collaboration platform
…tons more
Thank you!
Questions?
Get in touch:
Angelo Laub
hello@eosvienna.io
Twitter: @eosvienna
Technical Introduction to EOS
By Angelo Laub
Technical Introduction to EOS
EOS Vienna Meeting 30.05.2018
- 1,158