SlideShare a Scribd company logo
1 of 25
Download to read offline
Distributed
Apps on EOS
by Rob Konsdorf & Eugene Luzgin
All opinions in this talk are the speaker’s own and not the official statements of Block.one
or the greater EOS decentralized autonomous community. This presentation does not
constitute investment advice.
What is EOS?
● A governed blockchain network.
● A decentralized autonomous community.
● A protocol for deploying and interacting
with WebAssembly smart contracts.
● Launched using EOSIO software, an
open source C++ project on Github.
● Uses Delegated Proof of Stake (DPOS)
to achieve distributed consensus.
What is a distributed application?
● Distributed applications (aka d-apps) leverage data and code stored on a
blockchain network.
● Empower the user to be the authorizer of actions in an app.
● Participants can be valued for their contributions via tokens.
● All actions are transparent.
● Everyone can access data on EOS according to the same rules.
○ Private data could still be put on chain in an encrypted form.
Types of Distributed Applications
● Apps that use the core token of the platform e.g.
EOS.
○ Apps that only require storing or transforming data.
○ Apps that leverage the utilities of the core token.
■ e.g. EOS leasing platform.
● Apps that use their own token (perhaps for
different distribution of governance rights and/or
unique incentive models). Some examples:
○ Block producer DACs like EOS Cafe, EOSDAC, and
OracleChain.
○ Everipedia (IQ)
Distributed Autonomous Communities (DACs)
● DACs provide new ways to account for value in the
economy by providing incentives (micropayments) to
contribute to a collective.
○ Explicitly valuing data, e.g. blog content, wiki edits, health data,
transferring knowledge.
○ In STEEM, supply inflation pays for the incentive pool.
● DACs are implemented as distributed applications.
● The ecosystem of applications on EOS will give it
tremendous value as an identity provider that respects the
user’s rights.
Developer Intentions Should Be Stated Upfront
● Article XI in the draft constitution requires
developers to publish the intent and arbitration
forum for their application.
“Each Member who makes available a smart
contract on this blockchain shall be a
Developer. Each Developer shall offer their
smart contracts via a license, and each smart
contract shall be documented with a Ricardian
Contract stating the intent of all parties and
naming the Arbitration Forum that will resolve
disputes arising from that contract.”
Developers Are Responsible for their Users
● Article XIII in the draft constitution states
that developers are responsible for
ensuring the users of their apps follow the
constitution:
“As Developers are able to offer services
and provide interaction with the
blockchain to non Members via their
applications, the Developer assumes all
responsibility for guaranteeing that
non-Member interaction conforms to this
Constitution.”
“Ok, where do I start?”
● Step 1: Set up an EOS development environment.
● Step 2: Dig into the documentation.
● Step 3: Publish your first smart contract.
● Step 4: Tinker and iterate.
Setting up a local EOS environment
● Build from source (Linux and MacOS).
○ git clone https://github.com/EOSIO/eos.git
○ cd eos; git checkout dawn-v4.0.0; git submodule update --init --recursive
○ ./eosio_build.sh && cd build && sudo make install
● You’ll find some new programs on your PATH:
○ nodeos: the EOSIO blockchain node application.
○ cleos: the EOSIO blockchain API command line tool.
○ keosd: the EOSIO wallet program for storing encrypted account keys.
○ eosiocpp: tool to output web assembly files and ABI specification files from C++ code.
nodeos
● Connects to peers to form a distributed
network.
● Can be configured extensively.
○ Block producing nodes (compete to sign
blocks)
○ Non-producing nodes (API node)
○ Specific plugins can be toggled (exposing
different API capabilities)
● A mesh of nodes is the core of the
blockchain network.
cleos
● Used to interact with a nodeos
via API calls using the
command line.
● Supports querying chain state,
creating accounts and keys,
updating accounts and
contracts, transferring, signing,
voting, and more.
keosd
● A separate program for storing keys
in a password-protected & encrypted
wallet.
● Exposes wallet API endpoints for
other programs (such as cleos) to
communicate with.
eosiocpp
● Takes C++ files (smart contract code) as
input and can generate .abi and .wast
files as output.
● Those generated files can be published
to an EOS account.
● That EOS account becomes the address
for the smart contract actions defined in
the original C++ code.
EOS API Overview
EOS Node RPC Interface
EOSjs API for Web Development
Smart Contract API [C/C++]
Extra: EOS API Service & Web Wallet Keychain
EOS Node RPC Interface: Chain API
GET /v1/chain/get_info Get latest information from node
POST /v1/chain/get_block Get information on a specific block
POST /v1/chain/get_account Get account information
POST /v1/chain/get_code Fetch smart contract code
POST / v1/chain/get_table_rows Fetch smart contract data from an account
POST /v1/chain/abi_json_to_bin Serialize json to binary hex
POST /v1/chain/abi_bin_to_json Serialize binary hex back to json
POST /v1/chain/push_transaction Push single transaction (JSON) to blockchain
POST /v1/chain/push_transactions Push multiple transactions to blockchain
POST /v1/chain/get_required_keys Get required keys (public) to sign transaction
Full interface specs here: https://eosio.github.io/eos/group__eosiorpc.html
EOS Node RPC Interface: Wallet API
POST /v1/wallet/create Create new wallet with the given name
POST /v1/wallet/open Open existing wallet with the given name
POST /v1/wallet/lock Lock a wallet of the given name
POST /v1/wallet/unlock Unlock a wallet of the given name
POST /v1/wallet/import_key Import a private key to the wallet of the given name
GET /v1/wallet/list_wallets List all wallets
GET /v1/wallet/list_keys List key pairs for unlocked wallets
GET /v1/wallet/get_public_keys List all public keys across all wallets
POST /v1/wallet/set_timeout Set wallet auto-lock timeout
More specs here: https://eosio.github.io/eos/group__eosiorpc.html#walletrpc
EOSjs - general purpose JS library for EOS blockchain
Eos = require('eosjs') // Eos = require('./src')
eos = Eos.Localnet() // Default: 127.0.0.1:8888 or configuration set for remote endpoint
// All API methods print help when called with no-arguments.
eos.getBlock()
// If a callback is not provided, a Promise is returned
eos.getBlock(1).then(result => {console.log(result)})
// Parameters can be sequential or an object
eos.getBlock({block_num_or_id: 1}).then(result => console.log(result))
// Callbacks are similar
callback = (err, res) => {err ? console.error(err) : console.log(res)}
eos.getBlock(1, callback)
eos.getBlock({block_num_or_id: 1}, callback)
// Provide an empty object or a callback if an API call has no arguments
eos.getInfo({}).then(result => {console.log(result)})
Code and documentation here: https://github.com/EOSIO/eosjs
Smart Contract API [C/C++]
Account API Define API for querying account data.
Action API Define API for querying action properties.
Chain API Define API for querying internal chain state.
Database API APIs that store and retrieve data on the blockchain.
Math API Defines common math functions.
Console API Enables applications to log/print text messages.
System API Define API for interacting with system level intrinsics.
Token API Defines the ABI for interfacing with standard-compatible token messages and database
tables.
Transaction API Define API for sending transactions and inline messages.
Source: https://eosio.github.io/eos/group__contractdev.html
EOS API Service & Web Wallet Keychain
https://github.com/eluzgin/eos-wallet-keychain
Developer IDEs
● CLion
● VS Code
● Oraclechain Dev Helper
● Tokenika EOS Factory
EOS Documentation & Additional Resources
Github Wiki: https://github.com/EOSIO/eos/wiki
EOSIO Stack Exchange (Ask me for an invite after) https://eosio.stackexchange.com
EOS New York Dev Portal Eosdocs.io
EOS Technical Whitepaper v2 https://github.com/EOSIO/Documentation/blob/TWPv2/TechnicalWhitePaper.md
EOS Analysis and Evaluation https://multicoin.capital/2018/04/24/eos-analysis-and-valuation/
Dan Larimer’s Intro to Blockchain talk https://www.youtube.com/watch?v=sYAktmG1NuA
Thomas Cox Arbitration Overview https://vimeo.com/264069066/c84336cc39
EOS Persistence API https://github.com/EOSIO/eos/wiki/Persistence-API
Link up with the EOS Community
● EOS Developers: https://t.me/joinchat/EgOVjkPktgfUS3kt14FStw
● EOS Governance: https://t.me/EOSGov
● EOS BP Infrastructure: https://t.me/BPInfrastructure
● EOS Block Pros: https://t.me/EOSPros
● https://eostalk.io/forums
Upcoming Hackathons
● Hack Til Dawn
○ Community sponsored hackathon coming this summer.
○ Web: https://hack-til-dawn.com
○ Telegram: https://t.me/HackTilDawn
● EOS Global Hackathon
○ Pitch your team and idea today! First Block.one sponsored hackathon will be in Hong Kong.
○ https://eoshackathon.io
EOS Launch
We see VPN network with encrypted peer to peer
communication between BP nodes will go along
way in protecting servers running BP node from a
range of possible attacks.
The BP community have successfully tested
building mesh network of VPN nodes using
WireGuard software and then starting EOS
Mainnet on top of this VPN network.
Tulip Conference
● Next Gen Blockchain Conference in
San Francisco
○ June 7-8
○ Workshop: June 11-13
● Block Producer Summit
○ Multiple panels with representation from
different BPs.

More Related Content

What's hot

Understanding the NFT Ecosystem
Understanding the NFT Ecosystem Understanding the NFT Ecosystem
Understanding the NFT Ecosystem Andres Guadamuz
 
Decentalized Crowdfunding with Blockchain Technology
Decentalized Crowdfunding with Blockchain TechnologyDecentalized Crowdfunding with Blockchain Technology
Decentalized Crowdfunding with Blockchain TechnologyBlockchainHub Graz
 
Verifiable Credentials_Kristina_Identiverse2022_vFIN.pdf
Verifiable Credentials_Kristina_Identiverse2022_vFIN.pdfVerifiable Credentials_Kristina_Identiverse2022_vFIN.pdf
Verifiable Credentials_Kristina_Identiverse2022_vFIN.pdfKristina Yasuda
 
What is DeFi Yield Farming ?
What is DeFi Yield Farming ?What is DeFi Yield Farming ?
What is DeFi Yield Farming ?zaarahary
 
Creator Economy meets Crypto => Web3.0
Creator Economy meets Crypto => Web3.0Creator Economy meets Crypto => Web3.0
Creator Economy meets Crypto => Web3.0Taiki Narita
 
Bitcoin presentation slides
Bitcoin presentation slidesBitcoin presentation slides
Bitcoin presentation slidesAhmad Asad
 
An Investor's Guide to Web3 / Crypto / Blockchain
An Investor's Guide to Web3 / Crypto / BlockchainAn Investor's Guide to Web3 / Crypto / Blockchain
An Investor's Guide to Web3 / Crypto / BlockchainBernard Leong
 
Introduction to Ethereum
Introduction to EthereumIntroduction to Ethereum
Introduction to EthereumTerek Judi
 
Blockchain Tokenization
Blockchain TokenizationBlockchain Tokenization
Blockchain TokenizationBellaj Badr
 
Decentralized applications 101: How and why to build a DApp
Decentralized applications 101: How and why to build a DAppDecentralized applications 101: How and why to build a DApp
Decentralized applications 101: How and why to build a DAppErik Trautman
 
Blockchain and DeFi: Overview
Blockchain and DeFi: OverviewBlockchain and DeFi: Overview
Blockchain and DeFi: OverviewSvetlin Nakov
 
Week 3 - Cryptocurrencies
Week 3 - CryptocurrenciesWeek 3 - Cryptocurrencies
Week 3 - CryptocurrenciesRoger Royse
 
Blockchain and Cryptocurrencies
Blockchain and CryptocurrenciesBlockchain and Cryptocurrencies
Blockchain and CryptocurrenciesnimeshQ
 
Realex.io sto-architecture-v2
Realex.io sto-architecture-v2Realex.io sto-architecture-v2
Realex.io sto-architecture-v2Avadhesh Gupta
 
Ethereum Blockchain explained
Ethereum Blockchain explainedEthereum Blockchain explained
Ethereum Blockchain explainedEthWorks
 
Java Concurrency Gotchas
Java Concurrency GotchasJava Concurrency Gotchas
Java Concurrency GotchasAlex Miller
 
Bitcoin and Blockchain Technology: An Introduction
Bitcoin and Blockchain Technology: An IntroductionBitcoin and Blockchain Technology: An Introduction
Bitcoin and Blockchain Technology: An IntroductionFerdinando Maria Ametrano
 

What's hot (20)

Understanding the NFT Ecosystem
Understanding the NFT Ecosystem Understanding the NFT Ecosystem
Understanding the NFT Ecosystem
 
Decentalized Crowdfunding with Blockchain Technology
Decentalized Crowdfunding with Blockchain TechnologyDecentalized Crowdfunding with Blockchain Technology
Decentalized Crowdfunding with Blockchain Technology
 
Verifiable Credentials_Kristina_Identiverse2022_vFIN.pdf
Verifiable Credentials_Kristina_Identiverse2022_vFIN.pdfVerifiable Credentials_Kristina_Identiverse2022_vFIN.pdf
Verifiable Credentials_Kristina_Identiverse2022_vFIN.pdf
 
DeFi PPT.pptx
DeFi PPT.pptxDeFi PPT.pptx
DeFi PPT.pptx
 
What is DeFi Yield Farming ?
What is DeFi Yield Farming ?What is DeFi Yield Farming ?
What is DeFi Yield Farming ?
 
Creator Economy meets Crypto => Web3.0
Creator Economy meets Crypto => Web3.0Creator Economy meets Crypto => Web3.0
Creator Economy meets Crypto => Web3.0
 
Bitcoin presentation slides
Bitcoin presentation slidesBitcoin presentation slides
Bitcoin presentation slides
 
An Investor's Guide to Web3 / Crypto / Blockchain
An Investor's Guide to Web3 / Crypto / BlockchainAn Investor's Guide to Web3 / Crypto / Blockchain
An Investor's Guide to Web3 / Crypto / Blockchain
 
Introduction to Ethereum
Introduction to EthereumIntroduction to Ethereum
Introduction to Ethereum
 
Blockchain Tokenization
Blockchain TokenizationBlockchain Tokenization
Blockchain Tokenization
 
Decentralized applications 101: How and why to build a DApp
Decentralized applications 101: How and why to build a DAppDecentralized applications 101: How and why to build a DApp
Decentralized applications 101: How and why to build a DApp
 
Presentation on bitcoin
Presentation on bitcoinPresentation on bitcoin
Presentation on bitcoin
 
Blockchain and DeFi: Overview
Blockchain and DeFi: OverviewBlockchain and DeFi: Overview
Blockchain and DeFi: Overview
 
Week 3 - Cryptocurrencies
Week 3 - CryptocurrenciesWeek 3 - Cryptocurrencies
Week 3 - Cryptocurrencies
 
Blockchain and Cryptocurrencies
Blockchain and CryptocurrenciesBlockchain and Cryptocurrencies
Blockchain and Cryptocurrencies
 
Realex.io sto-architecture-v2
Realex.io sto-architecture-v2Realex.io sto-architecture-v2
Realex.io sto-architecture-v2
 
Ethereum Blockchain explained
Ethereum Blockchain explainedEthereum Blockchain explained
Ethereum Blockchain explained
 
Java Concurrency Gotchas
Java Concurrency GotchasJava Concurrency Gotchas
Java Concurrency Gotchas
 
Bitcoin and Blockchain Technology: An Introduction
Bitcoin and Blockchain Technology: An IntroductionBitcoin and Blockchain Technology: An Introduction
Bitcoin and Blockchain Technology: An Introduction
 
Decentraland Crypto
Decentraland CryptoDecentraland Crypto
Decentraland Crypto
 

Similar to EOSIO Distributed Application Use Cases

Top open source blockchain platforms of 2018
Top open source blockchain platforms of 2018Top open source blockchain platforms of 2018
Top open source blockchain platforms of 2018Parangat Technologies
 
Blockchain Platforms 2022
Blockchain Platforms 2022Blockchain Platforms 2022
Blockchain Platforms 2022RosyGeorge3
 
Ethereum Block Chain
Ethereum Block ChainEthereum Block Chain
Ethereum Block ChainSanatPandoh
 
10 Best Programming Languages for Blockchain in 2023.pdf
10 Best Programming Languages for Blockchain in 2023.pdf10 Best Programming Languages for Blockchain in 2023.pdf
10 Best Programming Languages for Blockchain in 2023.pdfWDP Technologies
 
10 most used blockchain tools in 2021 for blockchain development
10 most used blockchain tools in 2021 for blockchain development10 most used blockchain tools in 2021 for blockchain development
10 most used blockchain tools in 2021 for blockchain developmentAmniAugustine
 
VEROS-white-paper
VEROS-white-paperVEROS-white-paper
VEROS-white-paperRip Burman
 
An introduction to the EOS in Blockchain and Crypto
An introduction to the EOS in Blockchain and CryptoAn introduction to the EOS in Blockchain and Crypto
An introduction to the EOS in Blockchain and CryptoBlockchain Council
 
The JavaScript toolset for development on Ethereum
The JavaScript toolset for development on EthereumThe JavaScript toolset for development on Ethereum
The JavaScript toolset for development on EthereumGreeceJS
 
Javascript toolset for Ethereum Smart Contract development
Javascript toolset for Ethereum Smart Contract developmentJavascript toolset for Ethereum Smart Contract development
Javascript toolset for Ethereum Smart Contract developmentBugSense
 
EOS9CAT Community Event 0808 (Vancouver, BC, Canada)
EOS9CAT Community Event 0808 (Vancouver, BC, Canada)EOS9CAT Community Event 0808 (Vancouver, BC, Canada)
EOS9CAT Community Event 0808 (Vancouver, BC, Canada)Alamusi Alamusi
 

Similar to EOSIO Distributed Application Use Cases (20)

Top open source blockchain platforms of 2018
Top open source blockchain platforms of 2018Top open source blockchain platforms of 2018
Top open source blockchain platforms of 2018
 
How to design, code, deploy and execute a smart contract
How to design, code, deploy and execute a smart contractHow to design, code, deploy and execute a smart contract
How to design, code, deploy and execute a smart contract
 
Ethereum
EthereumEthereum
Ethereum
 
All About Ethereum
All About EthereumAll About Ethereum
All About Ethereum
 
Blockchain Platforms 2022
Blockchain Platforms 2022Blockchain Platforms 2022
Blockchain Platforms 2022
 
Ethereum Block Chain
Ethereum Block ChainEthereum Block Chain
Ethereum Block Chain
 
10 Best Programming Languages for Blockchain in 2023.pdf
10 Best Programming Languages for Blockchain in 2023.pdf10 Best Programming Languages for Blockchain in 2023.pdf
10 Best Programming Languages for Blockchain in 2023.pdf
 
10 most used blockchain tools in 2021 for blockchain development
10 most used blockchain tools in 2021 for blockchain development10 most used blockchain tools in 2021 for blockchain development
10 most used blockchain tools in 2021 for blockchain development
 
BlockChain Public
BlockChain PublicBlockChain Public
BlockChain Public
 
Evaluation of Ethereum
Evaluation of Ethereum Evaluation of Ethereum
Evaluation of Ethereum
 
VEROS-white-paper
VEROS-white-paperVEROS-white-paper
VEROS-white-paper
 
An introduction to the EOS in Blockchain and Crypto
An introduction to the EOS in Blockchain and CryptoAn introduction to the EOS in Blockchain and Crypto
An introduction to the EOS in Blockchain and Crypto
 
The JavaScript toolset for development on Ethereum
The JavaScript toolset for development on EthereumThe JavaScript toolset for development on Ethereum
The JavaScript toolset for development on Ethereum
 
Javascript toolset for Ethereum Smart Contract development
Javascript toolset for Ethereum Smart Contract developmentJavascript toolset for Ethereum Smart Contract development
Javascript toolset for Ethereum Smart Contract development
 
Eos smart contract
Eos smart contractEos smart contract
Eos smart contract
 
Programming Decentralized Application
Programming Decentralized ApplicationProgramming Decentralized Application
Programming Decentralized Application
 
EOS9CAT Community Event 0808 (Vancouver, BC, Canada)
EOS9CAT Community Event 0808 (Vancouver, BC, Canada)EOS9CAT Community Event 0808 (Vancouver, BC, Canada)
EOS9CAT Community Event 0808 (Vancouver, BC, Canada)
 
BlockchainLAB Hackathon
BlockchainLAB HackathonBlockchainLAB Hackathon
BlockchainLAB Hackathon
 
Block chain technology
Block chain technology Block chain technology
Block chain technology
 
Block chain technology
Block chain technologyBlock chain technology
Block chain technology
 

Recently uploaded

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Recently uploaded (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

EOSIO Distributed Application Use Cases

  • 1. Distributed Apps on EOS by Rob Konsdorf & Eugene Luzgin All opinions in this talk are the speaker’s own and not the official statements of Block.one or the greater EOS decentralized autonomous community. This presentation does not constitute investment advice.
  • 2. What is EOS? ● A governed blockchain network. ● A decentralized autonomous community. ● A protocol for deploying and interacting with WebAssembly smart contracts. ● Launched using EOSIO software, an open source C++ project on Github. ● Uses Delegated Proof of Stake (DPOS) to achieve distributed consensus.
  • 3. What is a distributed application? ● Distributed applications (aka d-apps) leverage data and code stored on a blockchain network. ● Empower the user to be the authorizer of actions in an app. ● Participants can be valued for their contributions via tokens. ● All actions are transparent. ● Everyone can access data on EOS according to the same rules. ○ Private data could still be put on chain in an encrypted form.
  • 4. Types of Distributed Applications ● Apps that use the core token of the platform e.g. EOS. ○ Apps that only require storing or transforming data. ○ Apps that leverage the utilities of the core token. ■ e.g. EOS leasing platform. ● Apps that use their own token (perhaps for different distribution of governance rights and/or unique incentive models). Some examples: ○ Block producer DACs like EOS Cafe, EOSDAC, and OracleChain. ○ Everipedia (IQ)
  • 5. Distributed Autonomous Communities (DACs) ● DACs provide new ways to account for value in the economy by providing incentives (micropayments) to contribute to a collective. ○ Explicitly valuing data, e.g. blog content, wiki edits, health data, transferring knowledge. ○ In STEEM, supply inflation pays for the incentive pool. ● DACs are implemented as distributed applications. ● The ecosystem of applications on EOS will give it tremendous value as an identity provider that respects the user’s rights.
  • 6. Developer Intentions Should Be Stated Upfront ● Article XI in the draft constitution requires developers to publish the intent and arbitration forum for their application. “Each Member who makes available a smart contract on this blockchain shall be a Developer. Each Developer shall offer their smart contracts via a license, and each smart contract shall be documented with a Ricardian Contract stating the intent of all parties and naming the Arbitration Forum that will resolve disputes arising from that contract.”
  • 7. Developers Are Responsible for their Users ● Article XIII in the draft constitution states that developers are responsible for ensuring the users of their apps follow the constitution: “As Developers are able to offer services and provide interaction with the blockchain to non Members via their applications, the Developer assumes all responsibility for guaranteeing that non-Member interaction conforms to this Constitution.”
  • 8. “Ok, where do I start?” ● Step 1: Set up an EOS development environment. ● Step 2: Dig into the documentation. ● Step 3: Publish your first smart contract. ● Step 4: Tinker and iterate.
  • 9. Setting up a local EOS environment ● Build from source (Linux and MacOS). ○ git clone https://github.com/EOSIO/eos.git ○ cd eos; git checkout dawn-v4.0.0; git submodule update --init --recursive ○ ./eosio_build.sh && cd build && sudo make install ● You’ll find some new programs on your PATH: ○ nodeos: the EOSIO blockchain node application. ○ cleos: the EOSIO blockchain API command line tool. ○ keosd: the EOSIO wallet program for storing encrypted account keys. ○ eosiocpp: tool to output web assembly files and ABI specification files from C++ code.
  • 10. nodeos ● Connects to peers to form a distributed network. ● Can be configured extensively. ○ Block producing nodes (compete to sign blocks) ○ Non-producing nodes (API node) ○ Specific plugins can be toggled (exposing different API capabilities) ● A mesh of nodes is the core of the blockchain network.
  • 11. cleos ● Used to interact with a nodeos via API calls using the command line. ● Supports querying chain state, creating accounts and keys, updating accounts and contracts, transferring, signing, voting, and more.
  • 12. keosd ● A separate program for storing keys in a password-protected & encrypted wallet. ● Exposes wallet API endpoints for other programs (such as cleos) to communicate with.
  • 13. eosiocpp ● Takes C++ files (smart contract code) as input and can generate .abi and .wast files as output. ● Those generated files can be published to an EOS account. ● That EOS account becomes the address for the smart contract actions defined in the original C++ code.
  • 14. EOS API Overview EOS Node RPC Interface EOSjs API for Web Development Smart Contract API [C/C++] Extra: EOS API Service & Web Wallet Keychain
  • 15. EOS Node RPC Interface: Chain API GET /v1/chain/get_info Get latest information from node POST /v1/chain/get_block Get information on a specific block POST /v1/chain/get_account Get account information POST /v1/chain/get_code Fetch smart contract code POST / v1/chain/get_table_rows Fetch smart contract data from an account POST /v1/chain/abi_json_to_bin Serialize json to binary hex POST /v1/chain/abi_bin_to_json Serialize binary hex back to json POST /v1/chain/push_transaction Push single transaction (JSON) to blockchain POST /v1/chain/push_transactions Push multiple transactions to blockchain POST /v1/chain/get_required_keys Get required keys (public) to sign transaction Full interface specs here: https://eosio.github.io/eos/group__eosiorpc.html
  • 16. EOS Node RPC Interface: Wallet API POST /v1/wallet/create Create new wallet with the given name POST /v1/wallet/open Open existing wallet with the given name POST /v1/wallet/lock Lock a wallet of the given name POST /v1/wallet/unlock Unlock a wallet of the given name POST /v1/wallet/import_key Import a private key to the wallet of the given name GET /v1/wallet/list_wallets List all wallets GET /v1/wallet/list_keys List key pairs for unlocked wallets GET /v1/wallet/get_public_keys List all public keys across all wallets POST /v1/wallet/set_timeout Set wallet auto-lock timeout More specs here: https://eosio.github.io/eos/group__eosiorpc.html#walletrpc
  • 17. EOSjs - general purpose JS library for EOS blockchain Eos = require('eosjs') // Eos = require('./src') eos = Eos.Localnet() // Default: 127.0.0.1:8888 or configuration set for remote endpoint // All API methods print help when called with no-arguments. eos.getBlock() // If a callback is not provided, a Promise is returned eos.getBlock(1).then(result => {console.log(result)}) // Parameters can be sequential or an object eos.getBlock({block_num_or_id: 1}).then(result => console.log(result)) // Callbacks are similar callback = (err, res) => {err ? console.error(err) : console.log(res)} eos.getBlock(1, callback) eos.getBlock({block_num_or_id: 1}, callback) // Provide an empty object or a callback if an API call has no arguments eos.getInfo({}).then(result => {console.log(result)}) Code and documentation here: https://github.com/EOSIO/eosjs
  • 18. Smart Contract API [C/C++] Account API Define API for querying account data. Action API Define API for querying action properties. Chain API Define API for querying internal chain state. Database API APIs that store and retrieve data on the blockchain. Math API Defines common math functions. Console API Enables applications to log/print text messages. System API Define API for interacting with system level intrinsics. Token API Defines the ABI for interfacing with standard-compatible token messages and database tables. Transaction API Define API for sending transactions and inline messages. Source: https://eosio.github.io/eos/group__contractdev.html
  • 19. EOS API Service & Web Wallet Keychain https://github.com/eluzgin/eos-wallet-keychain
  • 20. Developer IDEs ● CLion ● VS Code ● Oraclechain Dev Helper ● Tokenika EOS Factory
  • 21. EOS Documentation & Additional Resources Github Wiki: https://github.com/EOSIO/eos/wiki EOSIO Stack Exchange (Ask me for an invite after) https://eosio.stackexchange.com EOS New York Dev Portal Eosdocs.io EOS Technical Whitepaper v2 https://github.com/EOSIO/Documentation/blob/TWPv2/TechnicalWhitePaper.md EOS Analysis and Evaluation https://multicoin.capital/2018/04/24/eos-analysis-and-valuation/ Dan Larimer’s Intro to Blockchain talk https://www.youtube.com/watch?v=sYAktmG1NuA Thomas Cox Arbitration Overview https://vimeo.com/264069066/c84336cc39 EOS Persistence API https://github.com/EOSIO/eos/wiki/Persistence-API
  • 22. Link up with the EOS Community ● EOS Developers: https://t.me/joinchat/EgOVjkPktgfUS3kt14FStw ● EOS Governance: https://t.me/EOSGov ● EOS BP Infrastructure: https://t.me/BPInfrastructure ● EOS Block Pros: https://t.me/EOSPros ● https://eostalk.io/forums
  • 23. Upcoming Hackathons ● Hack Til Dawn ○ Community sponsored hackathon coming this summer. ○ Web: https://hack-til-dawn.com ○ Telegram: https://t.me/HackTilDawn ● EOS Global Hackathon ○ Pitch your team and idea today! First Block.one sponsored hackathon will be in Hong Kong. ○ https://eoshackathon.io
  • 24. EOS Launch We see VPN network with encrypted peer to peer communication between BP nodes will go along way in protecting servers running BP node from a range of possible attacks. The BP community have successfully tested building mesh network of VPN nodes using WireGuard software and then starting EOS Mainnet on top of this VPN network.
  • 25. Tulip Conference ● Next Gen Blockchain Conference in San Francisco ○ June 7-8 ○ Workshop: June 11-13 ● Block Producer Summit ○ Multiple panels with representation from different BPs.