SlideShare a Scribd company logo
BlockDev Conference SF 2018
Anthony Chow
Twitter: @vCloudernBeer
Auth0 Ambassador
Intel Innovator
VMware vExpert 2015 – 2018
What is a DApp?
Image source: https://tyleryasaka.me/blog/2017/01/14/ethereum-dapps.html
Dapp as defined in Ethereum Wiki
 Decentralized application is a program which is run by many
people which either uses or creates a decentralized network for
some specific purpose (e.g. connecting buyers and sellers in
some marketplace, sharing files, online file storage, maintaining
a currency).
 Ethereum-based decentralized applications (also called Đapps,
where the Đ is the Norse letter "eth") typically consist of an
HTML/JavaScript webpage, and if viewed inside the
EtherBrowser the browser recognizes special JavaScript APIs for
sending transactions to the Blockchain, reading data from the
Blockchain and interacting with Whisper and Swarm.
 A Đapp typically also has a specific associated contract on the
Blockchain, though Đapps that facilitate the creation of many
contracts are quite possible.
DApp Building Blocks(Macro view)
 Ethereum network
 Smart Contract
 Web Front End
Dapp Building Block (Pictorial view)
Image source: https://www.easyeth.com/components-of-ethereum-part-3.html
DApp Building Blocks (Micro view)
 Ethereum Virtual Machine (EVM)
 Application Binary Interface (ABI)
 Web3
 JSON-RPC
 Truffle; Embark
 Drizzle
 Solidity; LLL; Vyper (formerly Serpent)
 Ethereum Client (Mist, go-ethereum …)
 Swarm
 Whisper
 Meteor
 Oracles
Dapp Development Tools
 Solidity
 Solidity web IDE (Remix; Cosmo.to)
 Solidity IDE (VS code; Atom, Vim ….)
 EtherScripter
 Ganache (formerly testRPC)
 MetaMask
 Web3
 Truffle
 Truffle Solidity debugger
Before starting
 Ethereum wiki
 Solidity documentation
 Truffle documentation
Smart Contract development with
Solidity
 http://solidity.readthedocs.io/en/latest/
 Layout of a Solidity Source File
 Structure of a Contract
 Types
 Units and Globally Available Variables
 Expressions and Control Structures
 Contracts
 Solidity Assembly
 Miscellaneous
Web Front end Development with
Web3.js
 https://github.com/ethereum/web3.js/
 https://web3js.readthedocs.io/en/1.0/index.html
 Ethereum JavaScript API
 Callback Promises Events
Smart Contract Security
 Smart Contracts are immutable
 Ethereum is “secure” but smart contract may not be!
 Smart Contract Security Best Practices
 Building robust smart contracts with OpenZeppelin
 Add OAuth2 to the Web Front End that interacts with
the smart contract
Development Frameworks
 Truffle
 Embark
 Meteor
Build a DApp with Truffle
 Install Node.js (Windows; Mac; Linux)
 Ganache
 Drizzle
 Getting Started with Truffle
 Crating a project
 Choosing an Ethereum client
 Compiling contracts
 Running migrations
 Testing the contract
 Writing test in JavaScript
 Writing test in Solidity
 Interacting with the contracts
Putting everything together
 The Pet Shop
Demo.
Dapp Developer Resources
https://github.com/ethereum/wiki/blob/master/Dapp-Developer-Resources.md
 Main Resources
 Web3 JavaScript API - This is the main JavaScript SDK to use when you want to
interact with a nodes API
 JSON RPC API - This is the low level JSON RPC 2.0 interface to interface with a
node. This API is used by the Web3 JavaScript API.
 Solidity Documentation - Solidity is the Ethereum developed Smart Contract
language, which compiles to EVM (Ethereum Virtual Machine) opcodes.
 Other Resources:
 Standardized Contract APIs - Standard contract API, which should be used to
make some contract types accessible by other Ðapps. (Not yet finalized)
 Useful Ðapp Patterns - Code snippets which are useful for Ðapp development.
 Dapp using Meteor - This short tutorial gives an intro on how to start building a
Ðapp using Meteor, and also why Meteor is a good fit for Ðapps.
 Useful read
 FAQ - Collection of links, useful for understanding the Ethereum eco system.
 Glossary - Great explanation of Blockchain related terms.
Resource for Developer
 Blockgeeks
 ConsenSys
 Zepplein
 Facebook
 YouTube
 Ethereum wiki at GitHub
 Solidity Documentation
 Truffle Documentation
Thanks for coming and enjoy the rest of the
conference

More Related Content

What's hot

Rust Smart Contracts
Rust Smart ContractsRust Smart Contracts
Rust Smart Contracts
Maksym Zavershynskyi
 
Trusted Third Parties are NOT Trust Worthy!
Trusted Third Parties are NOT Trust Worthy!Trusted Third Parties are NOT Trust Worthy!
Trusted Third Parties are NOT Trust Worthy!
nettitude_labs
 
Side-Channels on the Web: Attacks and Defenses
Side-Channels on the Web: Attacks and DefensesSide-Channels on the Web: Attacks and Defenses
Side-Channels on the Web: Attacks and Defenses
Tom Van Goethem
 
Hacking NodeJS applications for fun and profit
Hacking NodeJS applications for fun and profitHacking NodeJS applications for fun and profit
Hacking NodeJS applications for fun and profit
Jose Manuel Ortega Candel
 
2018 colombia deconstruyendo y evolucionando la seguridad en servicios rest
2018 colombia deconstruyendo y evolucionando la seguridad en servicios rest2018 colombia deconstruyendo y evolucionando la seguridad en servicios rest
2018 colombia deconstruyendo y evolucionando la seguridad en servicios rest
César Hernández
 
Debugging PHP with xDebug inside of Eclipse PDT 2.1
Debugging PHP with xDebug inside of Eclipse PDT 2.1Debugging PHP with xDebug inside of Eclipse PDT 2.1
Debugging PHP with xDebug inside of Eclipse PDT 2.1
Bastian Feder
 
AWS Survival Guide
AWS Survival GuideAWS Survival Guide
AWS Survival Guide
Ken Johnson
 
TeelTech - Advancing Mobile Device Forensics (online version)
TeelTech - Advancing Mobile Device Forensics (online version)TeelTech - Advancing Mobile Device Forensics (online version)
TeelTech - Advancing Mobile Device Forensics (online version)
Mike Felch
 
Hyperledger Composer Update 2017-04-05
Hyperledger Composer Update 2017-04-05Hyperledger Composer Update 2017-04-05
Hyperledger Composer Update 2017-04-05
Dan Selman
 
BlueHat 2014 - The Attacker's View of Windows Authentication and Post Exploit...
BlueHat 2014 - The Attacker's View of Windows Authentication and Post Exploit...BlueHat 2014 - The Attacker's View of Windows Authentication and Post Exploit...
BlueHat 2014 - The Attacker's View of Windows Authentication and Post Exploit...
Benjamin Delpy
 
Roberto Clapis/Stefano Zanero - Night of the living vulnerabilities: forever-...
Roberto Clapis/Stefano Zanero - Night of the living vulnerabilities: forever-...Roberto Clapis/Stefano Zanero - Night of the living vulnerabilities: forever-...
Roberto Clapis/Stefano Zanero - Night of the living vulnerabilities: forever-...
Codemotion
 
Open Policy Agent (OPA) 入門
Open Policy Agent (OPA) 入門Open Policy Agent (OPA) 入門
Open Policy Agent (OPA) 入門
Motonori Shindo
 
Curl with rust
Curl with rustCurl with rust
Curl with rust
Daniel Stenberg
 
Building an Empire with PowerShell
Building an Empire with PowerShellBuilding an Empire with PowerShell
Building an Empire with PowerShell
Will Schroeder
 
2018 Denver JUG Deconstructing and Evolving REST Security
2018 Denver JUG Deconstructing and Evolving REST Security2018 Denver JUG Deconstructing and Evolving REST Security
2018 Denver JUG Deconstructing and Evolving REST Security
David Blevins
 
powershell-is-dead-epic-learnings-london
powershell-is-dead-epic-learnings-londonpowershell-is-dead-epic-learnings-london
powershell-is-dead-epic-learnings-london
nettitude_labs
 
Denis Zhuchinski Ways of enhancing application security
Denis Zhuchinski Ways of enhancing application securityDenis Zhuchinski Ways of enhancing application security
Denis Zhuchinski Ways of enhancing application security
Аліна Шепшелей
 
Learning Python with Minecraft and my Dad - PyOhio 2018
Learning Python with Minecraft and my Dad - PyOhio 2018Learning Python with Minecraft and my Dad - PyOhio 2018
Learning Python with Minecraft and my Dad - PyOhio 2018
Hank Preston
 
JWTs and JOSE in a flash
JWTs and JOSE in a flashJWTs and JOSE in a flash
JWTs and JOSE in a flash
Evan J Johnson (Not a CISSP)
 
The state of curl 2020
The state of curl 2020The state of curl 2020
The state of curl 2020
Daniel Stenberg
 

What's hot (20)

Rust Smart Contracts
Rust Smart ContractsRust Smart Contracts
Rust Smart Contracts
 
Trusted Third Parties are NOT Trust Worthy!
Trusted Third Parties are NOT Trust Worthy!Trusted Third Parties are NOT Trust Worthy!
Trusted Third Parties are NOT Trust Worthy!
 
Side-Channels on the Web: Attacks and Defenses
Side-Channels on the Web: Attacks and DefensesSide-Channels on the Web: Attacks and Defenses
Side-Channels on the Web: Attacks and Defenses
 
Hacking NodeJS applications for fun and profit
Hacking NodeJS applications for fun and profitHacking NodeJS applications for fun and profit
Hacking NodeJS applications for fun and profit
 
2018 colombia deconstruyendo y evolucionando la seguridad en servicios rest
2018 colombia deconstruyendo y evolucionando la seguridad en servicios rest2018 colombia deconstruyendo y evolucionando la seguridad en servicios rest
2018 colombia deconstruyendo y evolucionando la seguridad en servicios rest
 
Debugging PHP with xDebug inside of Eclipse PDT 2.1
Debugging PHP with xDebug inside of Eclipse PDT 2.1Debugging PHP with xDebug inside of Eclipse PDT 2.1
Debugging PHP with xDebug inside of Eclipse PDT 2.1
 
AWS Survival Guide
AWS Survival GuideAWS Survival Guide
AWS Survival Guide
 
TeelTech - Advancing Mobile Device Forensics (online version)
TeelTech - Advancing Mobile Device Forensics (online version)TeelTech - Advancing Mobile Device Forensics (online version)
TeelTech - Advancing Mobile Device Forensics (online version)
 
Hyperledger Composer Update 2017-04-05
Hyperledger Composer Update 2017-04-05Hyperledger Composer Update 2017-04-05
Hyperledger Composer Update 2017-04-05
 
BlueHat 2014 - The Attacker's View of Windows Authentication and Post Exploit...
BlueHat 2014 - The Attacker's View of Windows Authentication and Post Exploit...BlueHat 2014 - The Attacker's View of Windows Authentication and Post Exploit...
BlueHat 2014 - The Attacker's View of Windows Authentication and Post Exploit...
 
Roberto Clapis/Stefano Zanero - Night of the living vulnerabilities: forever-...
Roberto Clapis/Stefano Zanero - Night of the living vulnerabilities: forever-...Roberto Clapis/Stefano Zanero - Night of the living vulnerabilities: forever-...
Roberto Clapis/Stefano Zanero - Night of the living vulnerabilities: forever-...
 
Open Policy Agent (OPA) 入門
Open Policy Agent (OPA) 入門Open Policy Agent (OPA) 入門
Open Policy Agent (OPA) 入門
 
Curl with rust
Curl with rustCurl with rust
Curl with rust
 
Building an Empire with PowerShell
Building an Empire with PowerShellBuilding an Empire with PowerShell
Building an Empire with PowerShell
 
2018 Denver JUG Deconstructing and Evolving REST Security
2018 Denver JUG Deconstructing and Evolving REST Security2018 Denver JUG Deconstructing and Evolving REST Security
2018 Denver JUG Deconstructing and Evolving REST Security
 
powershell-is-dead-epic-learnings-london
powershell-is-dead-epic-learnings-londonpowershell-is-dead-epic-learnings-london
powershell-is-dead-epic-learnings-london
 
Denis Zhuchinski Ways of enhancing application security
Denis Zhuchinski Ways of enhancing application securityDenis Zhuchinski Ways of enhancing application security
Denis Zhuchinski Ways of enhancing application security
 
Learning Python with Minecraft and my Dad - PyOhio 2018
Learning Python with Minecraft and my Dad - PyOhio 2018Learning Python with Minecraft and my Dad - PyOhio 2018
Learning Python with Minecraft and my Dad - PyOhio 2018
 
JWTs and JOSE in a flash
JWTs and JOSE in a flashJWTs and JOSE in a flash
JWTs and JOSE in a flash
 
The state of curl 2020
The state of curl 2020The state of curl 2020
The state of curl 2020
 

Similar to Build your own Blockchain with the right tool for your application

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
BugSense
 
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
GreeceJS
 
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
AmniAugustine
 
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
WDP Technologies
 
Web3 Application Development
Web3 Application DevelopmentWeb3 Application Development
Web3 Application Development
101 Blockchains
 
Web3-Guide.pdf
Web3-Guide.pdfWeb3-Guide.pdf
Web3-Guide.pdf
Mohankumar975815
 
Ethereum introduction
Ethereum introductionEthereum introduction
Ethereum introduction
kesavan N B
 
Blockchain and decentralized applications.pdf
Blockchain and decentralized applications.pdfBlockchain and decentralized applications.pdf
Blockchain and decentralized applications.pdf
BlockchainX
 
Blockchain Development Kit
Blockchain Development KitBlockchain Development Kit
Blockchain Development Kit
Huda Seyam
 
The Decentralized Developer Toolbox by Petros Ring
The Decentralized Developer Toolbox by Petros RingThe Decentralized Developer Toolbox by Petros Ring
The Decentralized Developer Toolbox by Petros Ring
Block 16
 
All About Ethereum
All About EthereumAll About Ethereum
All About Ethereum
Oodles Technologies Pvt. Ltd.
 
Ethereum
EthereumEthereum
presentation @ docker meetup
presentation @ docker meetuppresentation @ docker meetup
presentation @ docker meetup
Daniël van Gils
 
Ethereum Devcon1 Report (summary writing)
Ethereum Devcon1 Report (summary writing)Ethereum Devcon1 Report (summary writing)
Ethereum Devcon1 Report (summary writing)
Tomoaki Sato
 
Building decentralized applications (dapps) on Ethereum - Eva Shon, & Igor Li...
Building decentralized applications (dapps) on Ethereum - Eva Shon, & Igor Li...Building decentralized applications (dapps) on Ethereum - Eva Shon, & Igor Li...
Building decentralized applications (dapps) on Ethereum - Eva Shon, & Igor Li...
WithTheBest
 
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
Joseph Holbrook, Chief Learning Officer (CLO)
 
Developing Blockchain Applications
Developing Blockchain Applications Developing Blockchain Applications
Developing Blockchain Applications
malikmayank
 
maXbox Arduino Tutorial
maXbox Arduino TutorialmaXbox Arduino Tutorial
maXbox Arduino Tutorial
Max Kleiner
 
Blockchain development 101
Blockchain development 101Blockchain development 101
Blockchain development 101
Adrià Batlle
 
Ethereum
EthereumEthereum
Ethereum
Brian Yap
 

Similar to Build your own Blockchain with the right tool for your application (20)

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
 
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
 
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
 
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
 
Web3 Application Development
Web3 Application DevelopmentWeb3 Application Development
Web3 Application Development
 
Web3-Guide.pdf
Web3-Guide.pdfWeb3-Guide.pdf
Web3-Guide.pdf
 
Ethereum introduction
Ethereum introductionEthereum introduction
Ethereum introduction
 
Blockchain and decentralized applications.pdf
Blockchain and decentralized applications.pdfBlockchain and decentralized applications.pdf
Blockchain and decentralized applications.pdf
 
Blockchain Development Kit
Blockchain Development KitBlockchain Development Kit
Blockchain Development Kit
 
The Decentralized Developer Toolbox by Petros Ring
The Decentralized Developer Toolbox by Petros RingThe Decentralized Developer Toolbox by Petros Ring
The Decentralized Developer Toolbox by Petros Ring
 
All About Ethereum
All About EthereumAll About Ethereum
All About Ethereum
 
Ethereum
EthereumEthereum
Ethereum
 
presentation @ docker meetup
presentation @ docker meetuppresentation @ docker meetup
presentation @ docker meetup
 
Ethereum Devcon1 Report (summary writing)
Ethereum Devcon1 Report (summary writing)Ethereum Devcon1 Report (summary writing)
Ethereum Devcon1 Report (summary writing)
 
Building decentralized applications (dapps) on Ethereum - Eva Shon, & Igor Li...
Building decentralized applications (dapps) on Ethereum - Eva Shon, & Igor Li...Building decentralized applications (dapps) on Ethereum - Eva Shon, & Igor Li...
Building decentralized applications (dapps) on Ethereum - Eva Shon, & Igor Li...
 
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
 
Developing Blockchain Applications
Developing Blockchain Applications Developing Blockchain Applications
Developing Blockchain Applications
 
maXbox Arduino Tutorial
maXbox Arduino TutorialmaXbox Arduino Tutorial
maXbox Arduino Tutorial
 
Blockchain development 101
Blockchain development 101Blockchain development 101
Blockchain development 101
 
Ethereum
EthereumEthereum
Ethereum
 

More from Anthony Chow

Container security
Container securityContainer security
Container security
Anthony Chow
 
MQTT security
MQTT securityMQTT security
MQTT security
Anthony Chow
 
Api security with o auth2
Api security with o auth2Api security with o auth2
Api security with o auth2
Anthony Chow
 
Container security
Container securityContainer security
Container security
Anthony Chow
 
Container security
Container securityContainer security
Container security
Anthony Chow
 
V brownbag sept-14-2016
V brownbag sept-14-2016V brownbag sept-14-2016
V brownbag sept-14-2016
Anthony Chow
 
Understanding the container landscape and it associated projects
Understanding the container landscape and it associated projectsUnderstanding the container landscape and it associated projects
Understanding the container landscape and it associated projects
Anthony Chow
 
Getting over the barrier and start contributing to OpenStack
Getting over the barrier and start contributing to OpenStackGetting over the barrier and start contributing to OpenStack
Getting over the barrier and start contributing to OpenStack
Anthony Chow
 
Introduction to go
Introduction to goIntroduction to go
Introduction to go
Anthony Chow
 
Micro segmentation – a perfect fit for microservices
Micro segmentation – a perfect fit for microservicesMicro segmentation – a perfect fit for microservices
Micro segmentation – a perfect fit for microservices
Anthony Chow
 
An overview of OpenStack for the VMware community
An overview of OpenStack for the VMware communityAn overview of OpenStack for the VMware community
An overview of OpenStack for the VMware community
Anthony Chow
 
VXLAN in the contemporary data center
VXLAN in the contemporary data centerVXLAN in the contemporary data center
VXLAN in the contemporary data center
Anthony Chow
 
What a Beginner Should Know About OpenStack
What a Beginner Should Know About OpenStackWhat a Beginner Should Know About OpenStack
What a Beginner Should Know About OpenStack
Anthony Chow
 

More from Anthony Chow (13)

Container security
Container securityContainer security
Container security
 
MQTT security
MQTT securityMQTT security
MQTT security
 
Api security with o auth2
Api security with o auth2Api security with o auth2
Api security with o auth2
 
Container security
Container securityContainer security
Container security
 
Container security
Container securityContainer security
Container security
 
V brownbag sept-14-2016
V brownbag sept-14-2016V brownbag sept-14-2016
V brownbag sept-14-2016
 
Understanding the container landscape and it associated projects
Understanding the container landscape and it associated projectsUnderstanding the container landscape and it associated projects
Understanding the container landscape and it associated projects
 
Getting over the barrier and start contributing to OpenStack
Getting over the barrier and start contributing to OpenStackGetting over the barrier and start contributing to OpenStack
Getting over the barrier and start contributing to OpenStack
 
Introduction to go
Introduction to goIntroduction to go
Introduction to go
 
Micro segmentation – a perfect fit for microservices
Micro segmentation – a perfect fit for microservicesMicro segmentation – a perfect fit for microservices
Micro segmentation – a perfect fit for microservices
 
An overview of OpenStack for the VMware community
An overview of OpenStack for the VMware communityAn overview of OpenStack for the VMware community
An overview of OpenStack for the VMware community
 
VXLAN in the contemporary data center
VXLAN in the contemporary data centerVXLAN in the contemporary data center
VXLAN in the contemporary data center
 
What a Beginner Should Know About OpenStack
What a Beginner Should Know About OpenStackWhat a Beginner Should Know About OpenStack
What a Beginner Should Know About OpenStack
 

Recently uploaded

Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 

Recently uploaded (20)

Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 

Build your own Blockchain with the right tool for your application

  • 1. BlockDev Conference SF 2018 Anthony Chow Twitter: @vCloudernBeer Auth0 Ambassador Intel Innovator VMware vExpert 2015 – 2018
  • 2. What is a DApp? Image source: https://tyleryasaka.me/blog/2017/01/14/ethereum-dapps.html
  • 3. Dapp as defined in Ethereum Wiki  Decentralized application is a program which is run by many people which either uses or creates a decentralized network for some specific purpose (e.g. connecting buyers and sellers in some marketplace, sharing files, online file storage, maintaining a currency).  Ethereum-based decentralized applications (also called Đapps, where the Đ is the Norse letter "eth") typically consist of an HTML/JavaScript webpage, and if viewed inside the EtherBrowser the browser recognizes special JavaScript APIs for sending transactions to the Blockchain, reading data from the Blockchain and interacting with Whisper and Swarm.  A Đapp typically also has a specific associated contract on the Blockchain, though Đapps that facilitate the creation of many contracts are quite possible.
  • 4. DApp Building Blocks(Macro view)  Ethereum network  Smart Contract  Web Front End
  • 5. Dapp Building Block (Pictorial view) Image source: https://www.easyeth.com/components-of-ethereum-part-3.html
  • 6. DApp Building Blocks (Micro view)  Ethereum Virtual Machine (EVM)  Application Binary Interface (ABI)  Web3  JSON-RPC  Truffle; Embark  Drizzle  Solidity; LLL; Vyper (formerly Serpent)  Ethereum Client (Mist, go-ethereum …)  Swarm  Whisper  Meteor  Oracles
  • 7. Dapp Development Tools  Solidity  Solidity web IDE (Remix; Cosmo.to)  Solidity IDE (VS code; Atom, Vim ….)  EtherScripter  Ganache (formerly testRPC)  MetaMask  Web3  Truffle  Truffle Solidity debugger
  • 8. Before starting  Ethereum wiki  Solidity documentation  Truffle documentation
  • 9. Smart Contract development with Solidity  http://solidity.readthedocs.io/en/latest/  Layout of a Solidity Source File  Structure of a Contract  Types  Units and Globally Available Variables  Expressions and Control Structures  Contracts  Solidity Assembly  Miscellaneous
  • 10. Web Front end Development with Web3.js  https://github.com/ethereum/web3.js/  https://web3js.readthedocs.io/en/1.0/index.html  Ethereum JavaScript API  Callback Promises Events
  • 11. Smart Contract Security  Smart Contracts are immutable  Ethereum is “secure” but smart contract may not be!  Smart Contract Security Best Practices  Building robust smart contracts with OpenZeppelin  Add OAuth2 to the Web Front End that interacts with the smart contract
  • 13. Build a DApp with Truffle  Install Node.js (Windows; Mac; Linux)  Ganache  Drizzle  Getting Started with Truffle  Crating a project  Choosing an Ethereum client  Compiling contracts  Running migrations  Testing the contract  Writing test in JavaScript  Writing test in Solidity  Interacting with the contracts
  • 14. Putting everything together  The Pet Shop Demo.
  • 15. Dapp Developer Resources https://github.com/ethereum/wiki/blob/master/Dapp-Developer-Resources.md  Main Resources  Web3 JavaScript API - This is the main JavaScript SDK to use when you want to interact with a nodes API  JSON RPC API - This is the low level JSON RPC 2.0 interface to interface with a node. This API is used by the Web3 JavaScript API.  Solidity Documentation - Solidity is the Ethereum developed Smart Contract language, which compiles to EVM (Ethereum Virtual Machine) opcodes.  Other Resources:  Standardized Contract APIs - Standard contract API, which should be used to make some contract types accessible by other Ðapps. (Not yet finalized)  Useful Ðapp Patterns - Code snippets which are useful for Ðapp development.  Dapp using Meteor - This short tutorial gives an intro on how to start building a Ðapp using Meteor, and also why Meteor is a good fit for Ðapps.  Useful read  FAQ - Collection of links, useful for understanding the Ethereum eco system.  Glossary - Great explanation of Blockchain related terms.
  • 16. Resource for Developer  Blockgeeks  ConsenSys  Zepplein  Facebook  YouTube  Ethereum wiki at GitHub  Solidity Documentation  Truffle Documentation
  • 17. Thanks for coming and enjoy the rest of the conference