SlideShare a Scribd company logo
1 of 39
Download to read offline
Decentralized Application: A
Software Engineering Perspective
Dr. Bambang Purnomosidi D. P.
@bpdp (twitter), bambangpdp (telegram, instagram, fb)
Universitas AMIKOM - 12 April 2018
Agenda
1. Cryptocurrency
2. Blockchain
3. Decentralized Application (DApp)
4. DApp Development
Cryptocurrency
Agenda for Cryptocurrency
1. What is cryptocurrency?
2. How does cryptocurrency work?
3. List of cryptocurrencies
4. Why are there so many cryptocurrecies?
5. Cryptocurrency mining
What is Cryptocurrency?
➢ A digital asset, a type of digital currency.
➢ Transferred from peer-to-peer, no middlemen (no bank, no financial
institution).
➢ Just as currency (money), its main function is as medium of exchange.
➢ Uses cryptography to:
○ secure transaction
○ control the creation of additional units
○ verify the transfer of assets
➢ Decentralized, as opposed to central banking system, made possible by
blockchain
➢ First cryptocurrency: bitcoin (2009). Other than bitcoin, they are called
altcoin.
How Does Cryptocurrency Work?
source: http://learn-crypto.com/what-is-crypto-currency/
List of Cryptocurrencies
1. First cryptocurrency: Bitcoin (2009)
2. Altcoin: coin other than Botcoin: litecoin, ether, ada, etc
3. Since Bitcoin, many cryptocurrencies emerge. As of April 11, 2018, there are
Litecoin, Ether, and more (1566 cryptocirrency). See:
https://coinmarketcap.com/all/views/all/
Why Are There So Many Cryptocurrencies?
➢ Because that is possible.
➢ One may use already available blockchain system (such as Ethereum) to
create cryptocurrency.
Cryptocurrency Mining
➢ Mining: a validation of transactions
➢ It’s a process of adding transaction records to cryptocurrency public ledger
of past transactions.
➢ See https://www.buybitcoinworldwide.com/mining/
Blockchain
Agenda for Blockchain
1. What is blockchain?
2. How does blockchain work?
3. Blockchain structures
4. Blockchain explorer
5. Types of blockchain
6. Blockchain usage
7. Public blockchain: Ethereum
8. Private blockchain: Multichain
9. Consortium blockchain: Corda
What Is Blockchain?
● “We can define the blockchain as a system that allows a group of connected
computers to maintain a single updated and secure ledger.” (Michele D’Aliessi,
2016).
● “A blockchain is a decentralized and distributed digital ledger that is used to
record transactions across many computers so that the record cannot be altered
retroactively without the alteration of all subsequent blocks and the collusion of
the network”. (Stephen Armstrong, 2018).
● Preliminary research: Cryptographically secured chain of blocks (Stuart Haber
dan W. Scott Stornetta, 1991), Ross J. Anderson (1996), Michael Doyle (1997),
Bruce Schneier and John Kelsey (1998), Nick Szabo (1998, bit gold), Stefan
Konst (2000).
● Satoshi Nakamoto (2008): Bitcoin
Source: http://dataconomy.com/2015/10/wtf-is-the-blockchain-a-guide-for-total-beginners
How does blockchain work?
source: https://www.cio.com/article/3055847/security/what-is-blockchain-and-how-does-it-work.html
Blockchain structures
1. Blocks. Blocks hold batches of valid transactions that are hashed and
encoded into a Merkle tree. Each block includes the cryptographic hash of
the prior block in the blockchain, linking the two. The linked blocks form a
chain. A hash tree or Merkle tree is a tree in which every leaf node is
labelled with the hash of a data block and every non-leaf node is labelled
with the cryptographic hash of the labels of its child nodes
2. Decentralization:Every node in a decentralized system has a copy of the
blockchain. Data quality is maintained by massive database replication and
computational trust. No centralized "official" copy exists and no user is
"trusted" more than any other.
3. Openness and accessibility
4. Immutability and irreversibility
5. Openness and accessibility
6. Anonymity
Blockchain explorer
➢ Online block chain browser which displays the contents of individual
blockchain blocks and transactions and the transaction histories and
balances of addresses.
➢ Example: Hyperledger Explorer
Types of Blockchain
1. Private blockchains: a fully private blockchain is a blockchain where write
permissions are kept centralized to one organization.
2. Consortium blockchains: a consortium blockchain is a blockchain where the
consensus process is controlled by a pre-selected set of nodes; for example, one
might imagine a consortium of 15 financial institutions, each of which operates a
node and of which 10 must sign every block in order for the block to be valid.
3. Public blockchains: a public blockchain is a blockchain that anyone in the world
can read, anyone in the world can send transactions to and expect to see them
included if they are valid, and anyone in the world can participate in the
consensus process.
Blockchain usage
1. Distributed ledger for cryptocurrency (FinTech)
2. Land / Property registeration (Sweden and Georgia)
3. Decentralized Library (Alexandria project )
4. Govenment and National Currency: e-Dinar (Tunisia) and eCFA (Senegal)
5. Digital assets tracking
6. Identity
7. Digital Voting
8. Distributed Storage
9. … and many more.
Public blockchain: Ethereum
1. https://ethereum.org
2. Ethereum is a decentralized platform that runs smart contracts: applications that
run exactly as programmed without any possibility of downtime, censorship, fraud
or third party interference.
3. It has ether as its cryptocurrency.
4. Provides smart contracts for DApp development
5. Provides Ethereum Virtual Machine. EVM is an environment where arbitrary code
of smart contracts and other operations can be executed.
6. There are some high level language for DApp development:
a. Solidity
b. Serpent
c. LLL
Ethereum Client
➢ Ethereum client refers to any node able to parse and verify the blockchain, its
smart contracts and everything related. It also allows you/provides interfaces to
create transactions and mine blocks which is the key for any blockchain
interaction.
➢ Official Reference Implementation:
○ Go: go-ethereum (geth):: https://geth.ethereum.org/
○ C++: cpp-ethereum (eth): http://www.ethdocs.org/en/latest/ethereum-clients/cpp-ethereum/
○ Python (pyethapp): https://github.com/ethereum/pyethapp
➢ 3rd party:
○ Rust: parity: https://parity.io
○ Java: https://github.com/ethereum/ethereumj
○ JS: https://github.com/ethereumjs/ethereumjs-vm
○ Ruby: https://github.com/janx/ruby-ethereum
Private blockchain: Multichain
➢ https://www.multichain.com
➢ An open source platform for private blockchains, which offers a rich set of
features including extensive configurability, rapid deployment, permissions
management, native assets and data streams. Although it is designed to
enable private blockchains, MultiChain provides maximal compatibility with
the bitcoin ecosystem, including the peer-to-peer protocol, transaction/block
formats and Bitcoin Core APIs/runtime parameters.
Consortium Blockchain: Corda
➢ https://corda.net
➢ Corda is an open source blockchain project, designed for business from the
start. Only Corda allows you to build interoperable blockchain networks that
transact in strict privacy. Corda’s smart contract technology allows
businesses to transact directly, with value.
Decentralized Application
(DApp)
Agenda for Decentralized Application (DApp)
1. What is DApp?
2. DApp architecture
3. DApp taxonomy
4. Ecosystem for DApp development
What is DApp?
➢ DApp is an abbreviated form for decentralized application. A DApp has its
backend code running on a decentralized peer-to-peer network. Contrast
this with an app where the backend code is running on centralized servers.
source: http://www.peacebiennale.info/blog/paul-baran-centralized-decentralized-and-distributed-networks-1964/
DApp Architecture
➢ Just as other common pattern in software development, we also need to
separate some components in DApp.
➢ There is front-end (could be anything: Web, mobile, etc.
➢ There is also back-end code which access immutable database / distributed
ledger.
DApp Taxonomy
1. Type I: These types of DApps have their own blockchain (like Bitcoin). Other
altcoins also fall under this category as well.
2. Type II: decentralized applications use the block chain of a type I
decentralized application. Type II decentralized applications are protocols
and have tokens that are necessary for their function. The Omni Protocol is
an example of a type II decentralized application.
3. Type III: These types of DApps use the protocol of a Type II DApp., For
example, the SAFE network uses the Omni Protocol for issuing SafeCoins
that are then used to build distributed file storage..
DApp Development
Agenda for DApp Development
1. Ecosystem for DApp Development
2. DApp Development for public blockchain (Ethereum)
3. DApp Development for private blockchain (Multichain)
4. DApp Development for consortium blockchain (Corda)
Ecosystem for DApp Development
➢ Blockchain Platform:
○ Ethereum
○ Tezos
○ Corda
○ Exonum
○ Hyperledger Project
➢ Development Tools
➢ See https://www.stateofthedapps.com/ for inspiration.
DApp Development for Public Blockchain
(Ethereum)
➢ The development process of a ÐApp often entails a Whitepaper and a working
prototype, a token sale, an initial coin offering (ICO), its implementation and
launch.
➢ From the workflow, developer tasks are:
○ Create token
○ Create application
○ Deploy application to EVM
Ethereum DApp Development Without Framework
➢ Never use public blockchain for test.
➢ What you have to learn:
○ Smart contract and how to use Solidity programming language. Get Solidity compiler
(https://github.com/ethereum/solidity/releases). Some Linux distros provide official package (ex:
Arch Linux pacman: community/solidity 0.4.18-1)
○ How to deploy your smart contract to EVM
○ Documentation for Solidity: http://solidity.readthedocs.io/en/latest/
➢ Development environment: Atom, Emacs, Vim, Intellij, VSCode, See Awesome
Solidity (https://github.com/bkrem/awesome-solidity)
➢ Step:
○ Build everything in local computer. Use testrpc to mimick blockchain
(https://github.com/ethereumjs/testrpc).
○ Test on the staging blockchain (Ether and any other resource fees are fake).: Ropsten. See
https://github.com/ethereum/ropsten and https://ropsten.etherscan.io/ . Also --morden when run
Ethereum clients.
○ Real Ethereum deployment. Mainnet - Homestead.
DApp Development With Framework in Ethereum
● Truffle Framework (http://truffleframework.com/) - A Swiss army knife for smart
contract development and deployment.
● DApp (https://dapp.readthedocs.io/en/latest/) - simple command line tool for
smart contract development for package management, source code building, unit
testing, simple contract deployments.
Deployment in Ethereum
➢ In deployment, understanding Gas is important.
➢ Transactions on the Ethereum network require fees in the form of gas. The
amount of gas depends on the amount of computation required to complete the
transaction.
➢ Estimating transaction costs:
http://ethdocs.org/en/latest/contracts-and-transactions/account-types-gas-and-tran
sactions.html
DApp Development for Private Blockchain
(Multichain)
➢ https://www.multichain.com
➢ Source code: https://github.com/MultiChain/multichain
➢ Steps:
○ Download multichain from https://www.multichain.com/download-install/
○ There are 4 binary executables: multichain-cli, multichaind, multichaind-cold, multichain-util
○ Create blockchain using multichain-util, initializing blockchain, also can be used to connect
to existing blockchain with multichaind, manipulate blockchain using multichain-cli
○ Explore blockchain using multichain explorer:
https://github.com/MultiChain/multichain-explorer (Python)
○ See https://github.com/MultiChain/multichain-web-demo if you need an example of
multichain blockchain with PHP and all front-end Web
DApp Development for Consortium
Blockchain (Corda)
➢ https://corda.net
➢ Source code: https://github.com/corda/corda
➢ Build with Kotlin (https://kotlinlang.org)
➢ Needs JDK (also Kotlin if you want to use Kotlin), JDK 8 is the only
supported JDK at the moment.
➢ Also need to understand how Gradle works. See https://gradle.org.
➢ See example at https://github.com/corda/cordapp-example
➢ A Corda network is made up of nodes running Corda and CorDapps
➢ The network is permissioned, with access controlled by a doorman
➢ Communication between nodes is point-to-point, instead of relying on global
broadcasts
➢ CorDapps (Corda Distributed Applications) are distributed applications that
run on the Corda platform. The goal of a CorDapp is to allow nodes to reach
agreement on updates to the ledger. They achieve this goal by defining
flows that Corda node owners can invoke through RPC calls
The End

More Related Content

What's hot

Devcon4 web3 design decision framework
Devcon4   web3 design decision frameworkDevcon4   web3 design decision framework
Devcon4 web3 design decision frameworkbeltran berrocal
 
Blockchain 101 | Blockchain Tutorial | Blockchain Smart Contracts | Blockchai...
Blockchain 101 | Blockchain Tutorial | Blockchain Smart Contracts | Blockchai...Blockchain 101 | Blockchain Tutorial | Blockchain Smart Contracts | Blockchai...
Blockchain 101 | Blockchain Tutorial | Blockchain Smart Contracts | Blockchai...Edureka!
 
An Introduction to Blockchain Technology
An Introduction to Blockchain Technology An Introduction to Blockchain Technology
An Introduction to Blockchain Technology Niuversity
 
Blockchain Explained | Blockchain Simplified | Blockchain Technology | Blockc...
Blockchain Explained | Blockchain Simplified | Blockchain Technology | Blockc...Blockchain Explained | Blockchain Simplified | Blockchain Technology | Blockc...
Blockchain Explained | Blockchain Simplified | Blockchain Technology | Blockc...Edureka!
 
Smart contracts using web3.js
Smart contracts using web3.jsSmart contracts using web3.js
Smart contracts using web3.jsFelix Crisan
 
Blockchain basics
Blockchain basicsBlockchain basics
Blockchain basicsRomit Bose
 
Blockchain 3.0 - Decentral Applications
Blockchain 3.0 - Decentral ApplicationsBlockchain 3.0 - Decentral Applications
Blockchain 3.0 - Decentral ApplicationsBart Waeterschoot
 
How does blockchain work
How does blockchain workHow does blockchain work
How does blockchain workShishir Aryal
 
Blockchain ecosystem and evolution
Blockchain ecosystem and evolutionBlockchain ecosystem and evolution
Blockchain ecosystem and evolutionChandra Sekhar AKNR
 
Overview of blockchain technology and architecture
Overview of blockchain technology and   architectureOverview of blockchain technology and   architecture
Overview of blockchain technology and architectureEY
 
Blockchain Technology
Blockchain TechnologyBlockchain Technology
Blockchain TechnologyPalakGulati10
 
BLOCKCHAIN TECHNOLOGY.ppt
BLOCKCHAIN TECHNOLOGY.pptBLOCKCHAIN TECHNOLOGY.ppt
BLOCKCHAIN TECHNOLOGY.pptjishnub8
 
Overview of Blockchain Consensus Mechanisms
Overview of Blockchain Consensus MechanismsOverview of Blockchain Consensus Mechanisms
Overview of Blockchain Consensus MechanismsJohannes Ahlmann
 
Blockchain Technology Fundamentals
Blockchain Technology FundamentalsBlockchain Technology Fundamentals
Blockchain Technology FundamentalsExperfy
 
Blockchain technology
Blockchain technologyBlockchain technology
Blockchain technologyhellygeorge
 
Bitcoin Protocols 1.0 and 2.0 Explained in the Series: Blockchain: The Inform...
Bitcoin Protocols 1.0 and 2.0 Explained in the Series: Blockchain: The Inform...Bitcoin Protocols 1.0 and 2.0 Explained in the Series: Blockchain: The Inform...
Bitcoin Protocols 1.0 and 2.0 Explained in the Series: Blockchain: The Inform...Melanie Swan
 

What's hot (20)

Devcon4 web3 design decision framework
Devcon4   web3 design decision frameworkDevcon4   web3 design decision framework
Devcon4 web3 design decision framework
 
Blockchain 101 | Blockchain Tutorial | Blockchain Smart Contracts | Blockchai...
Blockchain 101 | Blockchain Tutorial | Blockchain Smart Contracts | Blockchai...Blockchain 101 | Blockchain Tutorial | Blockchain Smart Contracts | Blockchai...
Blockchain 101 | Blockchain Tutorial | Blockchain Smart Contracts | Blockchai...
 
Smart contracts & dApps
Smart contracts & dAppsSmart contracts & dApps
Smart contracts & dApps
 
An Introduction to Blockchain Technology
An Introduction to Blockchain Technology An Introduction to Blockchain Technology
An Introduction to Blockchain Technology
 
Blockchain Explained | Blockchain Simplified | Blockchain Technology | Blockc...
Blockchain Explained | Blockchain Simplified | Blockchain Technology | Blockc...Blockchain Explained | Blockchain Simplified | Blockchain Technology | Blockc...
Blockchain Explained | Blockchain Simplified | Blockchain Technology | Blockc...
 
Smart contracts using web3.js
Smart contracts using web3.jsSmart contracts using web3.js
Smart contracts using web3.js
 
Blockchain basics
Blockchain basicsBlockchain basics
Blockchain basics
 
Blockchain 3.0 - Decentral Applications
Blockchain 3.0 - Decentral ApplicationsBlockchain 3.0 - Decentral Applications
Blockchain 3.0 - Decentral Applications
 
Smart contracts
Smart contractsSmart contracts
Smart contracts
 
How does blockchain work
How does blockchain workHow does blockchain work
How does blockchain work
 
Smart Contract Security
Smart Contract SecuritySmart Contract Security
Smart Contract Security
 
Blockchain ecosystem and evolution
Blockchain ecosystem and evolutionBlockchain ecosystem and evolution
Blockchain ecosystem and evolution
 
Overview of blockchain technology and architecture
Overview of blockchain technology and   architectureOverview of blockchain technology and   architecture
Overview of blockchain technology and architecture
 
Blockchain ppt
Blockchain pptBlockchain ppt
Blockchain ppt
 
Blockchain Technology
Blockchain TechnologyBlockchain Technology
Blockchain Technology
 
BLOCKCHAIN TECHNOLOGY.ppt
BLOCKCHAIN TECHNOLOGY.pptBLOCKCHAIN TECHNOLOGY.ppt
BLOCKCHAIN TECHNOLOGY.ppt
 
Overview of Blockchain Consensus Mechanisms
Overview of Blockchain Consensus MechanismsOverview of Blockchain Consensus Mechanisms
Overview of Blockchain Consensus Mechanisms
 
Blockchain Technology Fundamentals
Blockchain Technology FundamentalsBlockchain Technology Fundamentals
Blockchain Technology Fundamentals
 
Blockchain technology
Blockchain technologyBlockchain technology
Blockchain technology
 
Bitcoin Protocols 1.0 and 2.0 Explained in the Series: Blockchain: The Inform...
Bitcoin Protocols 1.0 and 2.0 Explained in the Series: Blockchain: The Inform...Bitcoin Protocols 1.0 and 2.0 Explained in the Series: Blockchain: The Inform...
Bitcoin Protocols 1.0 and 2.0 Explained in the Series: Blockchain: The Inform...
 

Similar to Decentralized Application: A Software Engineering Perspective

_token generator platform for token development_.pptx
_token generator platform for token development_.pptx_token generator platform for token development_.pptx
_token generator platform for token development_.pptxBlockchainX
 
Blockchain technology.docx
Blockchain technology.docxBlockchain technology.docx
Blockchain technology.docxaymenabbaci
 
Iceic2019 final presented
Iceic2019 final presentedIceic2019 final presented
Iceic2019 final presentedHeung-No Lee
 
Blockchain, smart contracts - introduction
Blockchain, smart contracts - introductionBlockchain, smart contracts - introduction
Blockchain, smart contracts - introductionLukasz Jarmulowicz
 
Understanding blockchaintechnology
Understanding blockchaintechnologyUnderstanding blockchaintechnology
Understanding blockchaintechnologySubhashKumar329
 
Understanding blockchaintechnology
Understanding blockchaintechnology Understanding blockchaintechnology
Understanding blockchaintechnology SubhashKumar329
 
Blockchain data structures and fundamental
Blockchain data structures and fundamentalBlockchain data structures and fundamental
Blockchain data structures and fundamentalCodium Club
 
Click Ventures Blockchain Ecosystem Report 2018
Click Ventures Blockchain Ecosystem Report 2018Click Ventures Blockchain Ecosystem Report 2018
Click Ventures Blockchain Ecosystem Report 2018Frederick Ng
 
02_07_2018_«El valor de blockchain en el registro de la actividad académica: ...
02_07_2018_«El valor de blockchain en el registro de la actividad académica: ...02_07_2018_«El valor de blockchain en el registro de la actividad académica: ...
02_07_2018_«El valor de blockchain en el registro de la actividad académica: ...eMadrid network
 
[Madmagz] The Blockchain
[Madmagz] The Blockchain[Madmagz] The Blockchain
[Madmagz] The BlockchainYoussef Rahoui
 
цуцуца
цуцуцацуцуца
цуцуцаcoinpaper
 
Telegram open network ton will be a third generation
Telegram open network ton will be a third generationTelegram open network ton will be a third generation
Telegram open network ton will be a third generationRick Bouter
 
Ton Tlegram Open Network
Ton Tlegram Open NetworkTon Tlegram Open Network
Ton Tlegram Open NetworkDmitry Tseitlin
 
Blockchain and Open Education
Blockchain and Open EducationBlockchain and Open Education
Blockchain and Open EducationCarmen Holotescu
 
Introduction to Blockchain Development
Introduction to Blockchain DevelopmentIntroduction to Blockchain Development
Introduction to Blockchain DevelopmentLightstreams
 

Similar to Decentralized Application: A Software Engineering Perspective (20)

Programming Decentralized Application
Programming Decentralized ApplicationProgramming Decentralized Application
Programming Decentralized Application
 
_token generator platform for token development_.pptx
_token generator platform for token development_.pptx_token generator platform for token development_.pptx
_token generator platform for token development_.pptx
 
All About Ethereum
All About EthereumAll About Ethereum
All About Ethereum
 
Blockchain technology.docx
Blockchain technology.docxBlockchain technology.docx
Blockchain technology.docx
 
Iceic2019 final presented
Iceic2019 final presentedIceic2019 final presented
Iceic2019 final presented
 
Blockchains in agriculture
Blockchains in agricultureBlockchains in agriculture
Blockchains in agriculture
 
03 blockchain transactions
03 blockchain transactions03 blockchain transactions
03 blockchain transactions
 
Blockchain, smart contracts - introduction
Blockchain, smart contracts - introductionBlockchain, smart contracts - introduction
Blockchain, smart contracts - introduction
 
Understanding blockchaintechnology
Understanding blockchaintechnologyUnderstanding blockchaintechnology
Understanding blockchaintechnology
 
Understanding blockchaintechnology
Understanding blockchaintechnology Understanding blockchaintechnology
Understanding blockchaintechnology
 
Blockchain data structures and fundamental
Blockchain data structures and fundamentalBlockchain data structures and fundamental
Blockchain data structures and fundamental
 
Click Ventures Blockchain Ecosystem Report 2018
Click Ventures Blockchain Ecosystem Report 2018Click Ventures Blockchain Ecosystem Report 2018
Click Ventures Blockchain Ecosystem Report 2018
 
02_07_2018_«El valor de blockchain en el registro de la actividad académica: ...
02_07_2018_«El valor de blockchain en el registro de la actividad académica: ...02_07_2018_«El valor de blockchain en el registro de la actividad académica: ...
02_07_2018_«El valor de blockchain en el registro de la actividad académica: ...
 
[Madmagz] The Blockchain
[Madmagz] The Blockchain[Madmagz] The Blockchain
[Madmagz] The Blockchain
 
цуцуца
цуцуцацуцуца
цуцуца
 
Telegram open network ton will be a third generation
Telegram open network ton will be a third generationTelegram open network ton will be a third generation
Telegram open network ton will be a third generation
 
Ton Tlegram Open Network
Ton Tlegram Open NetworkTon Tlegram Open Network
Ton Tlegram Open Network
 
Blockchain and Open Education
Blockchain and Open EducationBlockchain and Open Education
Blockchain and Open Education
 
Evaluation of Ethereum
Evaluation of Ethereum Evaluation of Ethereum
Evaluation of Ethereum
 
Introduction to Blockchain Development
Introduction to Blockchain DevelopmentIntroduction to Blockchain Development
Introduction to Blockchain Development
 

More from Bambang Purnomosidi D. P.

Disciplined Agile Delivery: Agile Framework untuk Membangun Software
Disciplined Agile Delivery: Agile Framework untuk Membangun SoftwareDisciplined Agile Delivery: Agile Framework untuk Membangun Software
Disciplined Agile Delivery: Agile Framework untuk Membangun SoftwareBambang Purnomosidi D. P.
 
Programming Languages and Development Tools: State of the Art and (Hopefully)...
Programming Languages and Development Tools: State of the Art and (Hopefully)...Programming Languages and Development Tools: State of the Art and (Hopefully)...
Programming Languages and Development Tools: State of the Art and (Hopefully)...Bambang Purnomosidi D. P.
 
Teknologi Blockchain dan Implikasinya Terhadap Dunia Bisnis
Teknologi Blockchain dan Implikasinya Terhadap Dunia BisnisTeknologi Blockchain dan Implikasinya Terhadap Dunia Bisnis
Teknologi Blockchain dan Implikasinya Terhadap Dunia BisnisBambang Purnomosidi D. P.
 
Serialisasi Data: JSON, JSON Schema, dan BSON
Serialisasi Data: JSON, JSON Schema, dan BSONSerialisasi Data: JSON, JSON Schema, dan BSON
Serialisasi Data: JSON, JSON Schema, dan BSONBambang Purnomosidi D. P.
 
Pengembangan Aplikasi Cloud Computing Menggunakan Node.js
Pengembangan Aplikasi Cloud Computing Menggunakan Node.jsPengembangan Aplikasi Cloud Computing Menggunakan Node.js
Pengembangan Aplikasi Cloud Computing Menggunakan Node.jsBambang Purnomosidi D. P.
 
Using ICT to Teach English: Towards Learner-centered Learning
Using ICT to Teach English: Towards Learner-centered LearningUsing ICT to Teach English: Towards Learner-centered Learning
Using ICT to Teach English: Towards Learner-centered LearningBambang Purnomosidi D. P.
 
Pengembangan si-berbasis-opensource-devtools
Pengembangan si-berbasis-opensource-devtoolsPengembangan si-berbasis-opensource-devtools
Pengembangan si-berbasis-opensource-devtoolsBambang Purnomosidi D. P.
 
Seminar Web 2.0 Security - Undip Semarang - Nov 2007
Seminar Web 2.0 Security - Undip Semarang - Nov 2007Seminar Web 2.0 Security - Undip Semarang - Nov 2007
Seminar Web 2.0 Security - Undip Semarang - Nov 2007Bambang Purnomosidi D. P.
 
Web Engineering dalam Konteks Web Science: Isu Terkini dan Tantangan
Web Engineering dalam Konteks Web Science: Isu Terkini dan TantanganWeb Engineering dalam Konteks Web Science: Isu Terkini dan Tantangan
Web Engineering dalam Konteks Web Science: Isu Terkini dan TantanganBambang Purnomosidi D. P.
 
Web Engineering dalam Konteks Web Science - Keynote Speech SRITI 2010
Web Engineering dalam Konteks Web Science - Keynote Speech SRITI 2010Web Engineering dalam Konteks Web Science - Keynote Speech SRITI 2010
Web Engineering dalam Konteks Web Science - Keynote Speech SRITI 2010Bambang Purnomosidi D. P.
 

More from Bambang Purnomosidi D. P. (17)

Disciplined Agile Delivery: Agile Framework untuk Membangun Software
Disciplined Agile Delivery: Agile Framework untuk Membangun SoftwareDisciplined Agile Delivery: Agile Framework untuk Membangun Software
Disciplined Agile Delivery: Agile Framework untuk Membangun Software
 
Programming Languages and Development Tools: State of the Art and (Hopefully)...
Programming Languages and Development Tools: State of the Art and (Hopefully)...Programming Languages and Development Tools: State of the Art and (Hopefully)...
Programming Languages and Development Tools: State of the Art and (Hopefully)...
 
Teknologi Blockchain dan Implikasinya Terhadap Dunia Bisnis
Teknologi Blockchain dan Implikasinya Terhadap Dunia BisnisTeknologi Blockchain dan Implikasinya Terhadap Dunia Bisnis
Teknologi Blockchain dan Implikasinya Terhadap Dunia Bisnis
 
Serialisasi Data: JSON, JSON Schema, dan BSON
Serialisasi Data: JSON, JSON Schema, dan BSONSerialisasi Data: JSON, JSON Schema, dan BSON
Serialisasi Data: JSON, JSON Schema, dan BSON
 
Pengenalan XML
Pengenalan XMLPengenalan XML
Pengenalan XML
 
Pengembangan Aplikasi Cloud Computing Menggunakan Node.js
Pengembangan Aplikasi Cloud Computing Menggunakan Node.jsPengembangan Aplikasi Cloud Computing Menggunakan Node.js
Pengembangan Aplikasi Cloud Computing Menggunakan Node.js
 
Kepemimpinan: Apa dan Bagaimana?
Kepemimpinan: Apa dan Bagaimana?Kepemimpinan: Apa dan Bagaimana?
Kepemimpinan: Apa dan Bagaimana?
 
Using ICT to Teach English: Towards Learner-centered Learning
Using ICT to Teach English: Towards Learner-centered LearningUsing ICT to Teach English: Towards Learner-centered Learning
Using ICT to Teach English: Towards Learner-centered Learning
 
Agent-based System - Introduction
Agent-based System - IntroductionAgent-based System - Introduction
Agent-based System - Introduction
 
Agent-based System - Introduction
Agent-based System - IntroductionAgent-based System - Introduction
Agent-based System - Introduction
 
Intro to Agent-based System
Intro to Agent-based SystemIntro to Agent-based System
Intro to Agent-based System
 
Presentasi malioboro--10-des-2010
Presentasi malioboro--10-des-2010Presentasi malioboro--10-des-2010
Presentasi malioboro--10-des-2010
 
Pengembangan si-berbasis-opensource-devtools
Pengembangan si-berbasis-opensource-devtoolsPengembangan si-berbasis-opensource-devtools
Pengembangan si-berbasis-opensource-devtools
 
Seminar Web 2.0 Security - Undip Semarang - Nov 2007
Seminar Web 2.0 Security - Undip Semarang - Nov 2007Seminar Web 2.0 Security - Undip Semarang - Nov 2007
Seminar Web 2.0 Security - Undip Semarang - Nov 2007
 
Web Engineering dalam Konteks Web Science: Isu Terkini dan Tantangan
Web Engineering dalam Konteks Web Science: Isu Terkini dan TantanganWeb Engineering dalam Konteks Web Science: Isu Terkini dan Tantangan
Web Engineering dalam Konteks Web Science: Isu Terkini dan Tantangan
 
Web Engineering dalam Konteks Web Science - Keynote Speech SRITI 2010
Web Engineering dalam Konteks Web Science - Keynote Speech SRITI 2010Web Engineering dalam Konteks Web Science - Keynote Speech SRITI 2010
Web Engineering dalam Konteks Web Science - Keynote Speech SRITI 2010
 
WSTRG Meeting 1
WSTRG Meeting 1WSTRG Meeting 1
WSTRG Meeting 1
 

Recently uploaded

WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...WSO2
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2
 
WSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2
 
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
WSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfAzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfryanfarris8
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
WSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 

Recently uploaded (20)

WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
 
WSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in Uganda
 
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration Tooling
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfAzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
WSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid Environments
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 

Decentralized Application: A Software Engineering Perspective

  • 1. Decentralized Application: A Software Engineering Perspective Dr. Bambang Purnomosidi D. P. @bpdp (twitter), bambangpdp (telegram, instagram, fb) Universitas AMIKOM - 12 April 2018
  • 2. Agenda 1. Cryptocurrency 2. Blockchain 3. Decentralized Application (DApp) 4. DApp Development
  • 4. Agenda for Cryptocurrency 1. What is cryptocurrency? 2. How does cryptocurrency work? 3. List of cryptocurrencies 4. Why are there so many cryptocurrecies? 5. Cryptocurrency mining
  • 5. What is Cryptocurrency? ➢ A digital asset, a type of digital currency. ➢ Transferred from peer-to-peer, no middlemen (no bank, no financial institution). ➢ Just as currency (money), its main function is as medium of exchange. ➢ Uses cryptography to: ○ secure transaction ○ control the creation of additional units ○ verify the transfer of assets ➢ Decentralized, as opposed to central banking system, made possible by blockchain ➢ First cryptocurrency: bitcoin (2009). Other than bitcoin, they are called altcoin.
  • 6. How Does Cryptocurrency Work? source: http://learn-crypto.com/what-is-crypto-currency/
  • 7. List of Cryptocurrencies 1. First cryptocurrency: Bitcoin (2009) 2. Altcoin: coin other than Botcoin: litecoin, ether, ada, etc 3. Since Bitcoin, many cryptocurrencies emerge. As of April 11, 2018, there are Litecoin, Ether, and more (1566 cryptocirrency). See: https://coinmarketcap.com/all/views/all/
  • 8. Why Are There So Many Cryptocurrencies? ➢ Because that is possible. ➢ One may use already available blockchain system (such as Ethereum) to create cryptocurrency.
  • 9. Cryptocurrency Mining ➢ Mining: a validation of transactions ➢ It’s a process of adding transaction records to cryptocurrency public ledger of past transactions. ➢ See https://www.buybitcoinworldwide.com/mining/
  • 11. Agenda for Blockchain 1. What is blockchain? 2. How does blockchain work? 3. Blockchain structures 4. Blockchain explorer 5. Types of blockchain 6. Blockchain usage 7. Public blockchain: Ethereum 8. Private blockchain: Multichain 9. Consortium blockchain: Corda
  • 12. What Is Blockchain? ● “We can define the blockchain as a system that allows a group of connected computers to maintain a single updated and secure ledger.” (Michele D’Aliessi, 2016). ● “A blockchain is a decentralized and distributed digital ledger that is used to record transactions across many computers so that the record cannot be altered retroactively without the alteration of all subsequent blocks and the collusion of the network”. (Stephen Armstrong, 2018). ● Preliminary research: Cryptographically secured chain of blocks (Stuart Haber dan W. Scott Stornetta, 1991), Ross J. Anderson (1996), Michael Doyle (1997), Bruce Schneier and John Kelsey (1998), Nick Szabo (1998, bit gold), Stefan Konst (2000). ● Satoshi Nakamoto (2008): Bitcoin
  • 14. How does blockchain work? source: https://www.cio.com/article/3055847/security/what-is-blockchain-and-how-does-it-work.html
  • 15. Blockchain structures 1. Blocks. Blocks hold batches of valid transactions that are hashed and encoded into a Merkle tree. Each block includes the cryptographic hash of the prior block in the blockchain, linking the two. The linked blocks form a chain. A hash tree or Merkle tree is a tree in which every leaf node is labelled with the hash of a data block and every non-leaf node is labelled with the cryptographic hash of the labels of its child nodes 2. Decentralization:Every node in a decentralized system has a copy of the blockchain. Data quality is maintained by massive database replication and computational trust. No centralized "official" copy exists and no user is "trusted" more than any other. 3. Openness and accessibility 4. Immutability and irreversibility 5. Openness and accessibility 6. Anonymity
  • 16. Blockchain explorer ➢ Online block chain browser which displays the contents of individual blockchain blocks and transactions and the transaction histories and balances of addresses. ➢ Example: Hyperledger Explorer
  • 17. Types of Blockchain 1. Private blockchains: a fully private blockchain is a blockchain where write permissions are kept centralized to one organization. 2. Consortium blockchains: a consortium blockchain is a blockchain where the consensus process is controlled by a pre-selected set of nodes; for example, one might imagine a consortium of 15 financial institutions, each of which operates a node and of which 10 must sign every block in order for the block to be valid. 3. Public blockchains: a public blockchain is a blockchain that anyone in the world can read, anyone in the world can send transactions to and expect to see them included if they are valid, and anyone in the world can participate in the consensus process.
  • 18. Blockchain usage 1. Distributed ledger for cryptocurrency (FinTech) 2. Land / Property registeration (Sweden and Georgia) 3. Decentralized Library (Alexandria project ) 4. Govenment and National Currency: e-Dinar (Tunisia) and eCFA (Senegal) 5. Digital assets tracking 6. Identity 7. Digital Voting 8. Distributed Storage 9. … and many more.
  • 19. Public blockchain: Ethereum 1. https://ethereum.org 2. Ethereum is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference. 3. It has ether as its cryptocurrency. 4. Provides smart contracts for DApp development 5. Provides Ethereum Virtual Machine. EVM is an environment where arbitrary code of smart contracts and other operations can be executed. 6. There are some high level language for DApp development: a. Solidity b. Serpent c. LLL
  • 20. Ethereum Client ➢ Ethereum client refers to any node able to parse and verify the blockchain, its smart contracts and everything related. It also allows you/provides interfaces to create transactions and mine blocks which is the key for any blockchain interaction. ➢ Official Reference Implementation: ○ Go: go-ethereum (geth):: https://geth.ethereum.org/ ○ C++: cpp-ethereum (eth): http://www.ethdocs.org/en/latest/ethereum-clients/cpp-ethereum/ ○ Python (pyethapp): https://github.com/ethereum/pyethapp ➢ 3rd party: ○ Rust: parity: https://parity.io ○ Java: https://github.com/ethereum/ethereumj ○ JS: https://github.com/ethereumjs/ethereumjs-vm ○ Ruby: https://github.com/janx/ruby-ethereum
  • 21. Private blockchain: Multichain ➢ https://www.multichain.com ➢ An open source platform for private blockchains, which offers a rich set of features including extensive configurability, rapid deployment, permissions management, native assets and data streams. Although it is designed to enable private blockchains, MultiChain provides maximal compatibility with the bitcoin ecosystem, including the peer-to-peer protocol, transaction/block formats and Bitcoin Core APIs/runtime parameters.
  • 22. Consortium Blockchain: Corda ➢ https://corda.net ➢ Corda is an open source blockchain project, designed for business from the start. Only Corda allows you to build interoperable blockchain networks that transact in strict privacy. Corda’s smart contract technology allows businesses to transact directly, with value.
  • 24. Agenda for Decentralized Application (DApp) 1. What is DApp? 2. DApp architecture 3. DApp taxonomy 4. Ecosystem for DApp development
  • 25. What is DApp? ➢ DApp is an abbreviated form for decentralized application. A DApp has its backend code running on a decentralized peer-to-peer network. Contrast this with an app where the backend code is running on centralized servers.
  • 27. DApp Architecture ➢ Just as other common pattern in software development, we also need to separate some components in DApp. ➢ There is front-end (could be anything: Web, mobile, etc. ➢ There is also back-end code which access immutable database / distributed ledger.
  • 28. DApp Taxonomy 1. Type I: These types of DApps have their own blockchain (like Bitcoin). Other altcoins also fall under this category as well. 2. Type II: decentralized applications use the block chain of a type I decentralized application. Type II decentralized applications are protocols and have tokens that are necessary for their function. The Omni Protocol is an example of a type II decentralized application. 3. Type III: These types of DApps use the protocol of a Type II DApp., For example, the SAFE network uses the Omni Protocol for issuing SafeCoins that are then used to build distributed file storage..
  • 30. Agenda for DApp Development 1. Ecosystem for DApp Development 2. DApp Development for public blockchain (Ethereum) 3. DApp Development for private blockchain (Multichain) 4. DApp Development for consortium blockchain (Corda)
  • 31. Ecosystem for DApp Development ➢ Blockchain Platform: ○ Ethereum ○ Tezos ○ Corda ○ Exonum ○ Hyperledger Project ➢ Development Tools ➢ See https://www.stateofthedapps.com/ for inspiration.
  • 32. DApp Development for Public Blockchain (Ethereum) ➢ The development process of a ÐApp often entails a Whitepaper and a working prototype, a token sale, an initial coin offering (ICO), its implementation and launch. ➢ From the workflow, developer tasks are: ○ Create token ○ Create application ○ Deploy application to EVM
  • 33. Ethereum DApp Development Without Framework ➢ Never use public blockchain for test. ➢ What you have to learn: ○ Smart contract and how to use Solidity programming language. Get Solidity compiler (https://github.com/ethereum/solidity/releases). Some Linux distros provide official package (ex: Arch Linux pacman: community/solidity 0.4.18-1) ○ How to deploy your smart contract to EVM ○ Documentation for Solidity: http://solidity.readthedocs.io/en/latest/ ➢ Development environment: Atom, Emacs, Vim, Intellij, VSCode, See Awesome Solidity (https://github.com/bkrem/awesome-solidity) ➢ Step: ○ Build everything in local computer. Use testrpc to mimick blockchain (https://github.com/ethereumjs/testrpc). ○ Test on the staging blockchain (Ether and any other resource fees are fake).: Ropsten. See https://github.com/ethereum/ropsten and https://ropsten.etherscan.io/ . Also --morden when run Ethereum clients. ○ Real Ethereum deployment. Mainnet - Homestead.
  • 34. DApp Development With Framework in Ethereum ● Truffle Framework (http://truffleframework.com/) - A Swiss army knife for smart contract development and deployment. ● DApp (https://dapp.readthedocs.io/en/latest/) - simple command line tool for smart contract development for package management, source code building, unit testing, simple contract deployments.
  • 35. Deployment in Ethereum ➢ In deployment, understanding Gas is important. ➢ Transactions on the Ethereum network require fees in the form of gas. The amount of gas depends on the amount of computation required to complete the transaction. ➢ Estimating transaction costs: http://ethdocs.org/en/latest/contracts-and-transactions/account-types-gas-and-tran sactions.html
  • 36. DApp Development for Private Blockchain (Multichain) ➢ https://www.multichain.com ➢ Source code: https://github.com/MultiChain/multichain ➢ Steps: ○ Download multichain from https://www.multichain.com/download-install/ ○ There are 4 binary executables: multichain-cli, multichaind, multichaind-cold, multichain-util ○ Create blockchain using multichain-util, initializing blockchain, also can be used to connect to existing blockchain with multichaind, manipulate blockchain using multichain-cli ○ Explore blockchain using multichain explorer: https://github.com/MultiChain/multichain-explorer (Python) ○ See https://github.com/MultiChain/multichain-web-demo if you need an example of multichain blockchain with PHP and all front-end Web
  • 37. DApp Development for Consortium Blockchain (Corda) ➢ https://corda.net ➢ Source code: https://github.com/corda/corda ➢ Build with Kotlin (https://kotlinlang.org) ➢ Needs JDK (also Kotlin if you want to use Kotlin), JDK 8 is the only supported JDK at the moment. ➢ Also need to understand how Gradle works. See https://gradle.org. ➢ See example at https://github.com/corda/cordapp-example
  • 38. ➢ A Corda network is made up of nodes running Corda and CorDapps ➢ The network is permissioned, with access controlled by a doorman ➢ Communication between nodes is point-to-point, instead of relying on global broadcasts ➢ CorDapps (Corda Distributed Applications) are distributed applications that run on the Corda platform. The goal of a CorDapp is to allow nodes to reach agreement on updates to the ledger. They achieve this goal by defining flows that Corda node owners can invoke through RPC calls