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

Introduction to Tokenization
Introduction to TokenizationIntroduction to Tokenization
Introduction to TokenizationNabeel Yoosuf
ย 
Blockchain
BlockchainBlockchain
BlockchainSai Nath
ย 
Introduction to Blockchain Technology
Introduction to Blockchain TechnologyIntroduction to Blockchain Technology
Introduction to Blockchain Technologysnehal_152
ย 
Hyperledger Fabric in a Nutshell
Hyperledger Fabric in a NutshellHyperledger Fabric in a Nutshell
Hyperledger Fabric in a NutshellDaniel Chan
ย 
Introduction to Blockchain and Smart Contracts
Introduction to Blockchain and Smart ContractsIntroduction to Blockchain and Smart Contracts
Introduction to Blockchain and Smart ContractsTechracers
ย 
Blockchain HyperLedger Fabric Internals - Clavent
Blockchain HyperLedger Fabric Internals - ClaventBlockchain HyperLedger Fabric Internals - Clavent
Blockchain HyperLedger Fabric Internals - ClaventAraf Karsh Hamid
ย 
An introduction to block chain technology
An introduction to block chain technologyAn introduction to block chain technology
An introduction to block chain technologyyaminisindhurabandar
ย 
Blockchain Security Issues and Challenges
Blockchain Security Issues and Challenges Blockchain Security Issues and Challenges
Blockchain Security Issues and Challenges Merlec Mpyana
ย 
Exploring Blockchain Technology, Risks, and Emerging Trends
Exploring Blockchain Technology, Risks, and Emerging TrendsExploring Blockchain Technology, Risks, and Emerging Trends
Exploring Blockchain Technology, Risks, and Emerging TrendsAmazon Web Services
ย 
Hyperledger Fabric and Tools
Hyperledger Fabric and ToolsHyperledger Fabric and Tools
Hyperledger Fabric and ToolsRihusoft
ย 
What is corda
What is cordaWhat is corda
What is cordaCeline George
ย 
Basics of Blockchain Technology
Basics of Blockchain TechnologyBasics of Blockchain Technology
Basics of Blockchain TechnologyNasir Bhutta
ย 
Introduction to Blockchain
Introduction to BlockchainIntroduction to Blockchain
Introduction to BlockchainMalak Abu Hammad
ย 
Introduction to Blockchain
Introduction to BlockchainIntroduction to Blockchain
Introduction to BlockchainAIMDek Technologies
ย 
Ethereum Blockchain explained
Ethereum Blockchain explainedEthereum Blockchain explained
Ethereum Blockchain explainedEthWorks
ย 
Blockchain Technology Fundamentals
Blockchain Technology FundamentalsBlockchain Technology Fundamentals
Blockchain Technology FundamentalsExperfy
ย 
Blockchain
BlockchainBlockchain
BlockchainBabu Pallam
ย 
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!
ย 

What's hot (20)

Introduction to Tokenization
Introduction to TokenizationIntroduction to Tokenization
Introduction to Tokenization
ย 
Blockchain
BlockchainBlockchain
Blockchain
ย 
Introduction to Blockchain Technology
Introduction to Blockchain TechnologyIntroduction to Blockchain Technology
Introduction to Blockchain Technology
ย 
Hyperledger Fabric in a Nutshell
Hyperledger Fabric in a NutshellHyperledger Fabric in a Nutshell
Hyperledger Fabric in a Nutshell
ย 
Introduction to Blockchain and Smart Contracts
Introduction to Blockchain and Smart ContractsIntroduction to Blockchain and Smart Contracts
Introduction to Blockchain and Smart Contracts
ย 
Blockchain HyperLedger Fabric Internals - Clavent
Blockchain HyperLedger Fabric Internals - ClaventBlockchain HyperLedger Fabric Internals - Clavent
Blockchain HyperLedger Fabric Internals - Clavent
ย 
An introduction to block chain technology
An introduction to block chain technologyAn introduction to block chain technology
An introduction to block chain technology
ย 
Blockchain Security Issues and Challenges
Blockchain Security Issues and Challenges Blockchain Security Issues and Challenges
Blockchain Security Issues and Challenges
ย 
Exploring Blockchain Technology, Risks, and Emerging Trends
Exploring Blockchain Technology, Risks, and Emerging TrendsExploring Blockchain Technology, Risks, and Emerging Trends
Exploring Blockchain Technology, Risks, and Emerging Trends
ย 
Hyperledger Fabric and Tools
Hyperledger Fabric and ToolsHyperledger Fabric and Tools
Hyperledger Fabric and Tools
ย 
What is corda
What is cordaWhat is corda
What is corda
ย 
Smart contract
Smart contractSmart contract
Smart contract
ย 
Basics of Blockchain Technology
Basics of Blockchain TechnologyBasics of Blockchain Technology
Basics of Blockchain Technology
ย 
Introduction to Blockchain
Introduction to BlockchainIntroduction to Blockchain
Introduction to Blockchain
ย 
Introduction to Blockchain
Introduction to BlockchainIntroduction to Blockchain
Introduction to Blockchain
ย 
Hyperledger Fabric Architecture
Hyperledger Fabric ArchitectureHyperledger Fabric Architecture
Hyperledger Fabric Architecture
ย 
Ethereum Blockchain explained
Ethereum Blockchain explainedEthereum Blockchain explained
Ethereum Blockchain explained
ย 
Blockchain Technology Fundamentals
Blockchain Technology FundamentalsBlockchain Technology Fundamentals
Blockchain Technology Fundamentals
ย 
Blockchain
BlockchainBlockchain
Blockchain
ย 
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...
ย 

Similar to Decentralized Application: A Software Engineering Perspective

Programming Decentralized Application
Programming Decentralized ApplicationProgramming Decentralized Application
Programming Decentralized ApplicationBambang Purnomosidi D. P.
ย 
_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
ย 
Blockchains in agriculture
Blockchains in agricultureBlockchains in agriculture
Blockchains in agricultureChristopher Brewster
ย 
03 blockchain transactions
03 blockchain transactions03 blockchain transactions
03 blockchain transactionsBastianBlankenburg
ย 
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
ย 
Evaluation of Ethereum
Evaluation of Ethereum Evaluation of Ethereum
Evaluation of Ethereum Giuseppe Andreetti
ย 
Blockchain Technology
Blockchain TechnologyBlockchain Technology
Blockchain TechnologyNimmy Solomon
ย 

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
ย 
Blockchain Technology
Blockchain TechnologyBlockchain Technology
Blockchain Technology
ย 

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

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
ย 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto Gonzรกlez Trastoy
ย 
CHEAP Call Girls in Pushp Vihar (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICE9953056974 Low Rate Call Girls In Saket, Delhi NCR
ย 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
ย 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanโ€™s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanโ€™s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanโ€™s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanโ€™s ...OnePlan Solutions
ย 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfWilly Marroquin (WillyDevNET)
ย 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
ย 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
ย 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
ย 
Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...Steffen Staab
ย 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
ย 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
ย 
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online โ˜‚๏ธ
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online  โ˜‚๏ธCALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online  โ˜‚๏ธ
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online โ˜‚๏ธanilsa9823
ย 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
ย 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
ย 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
ย 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
ย 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
ย 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
ย 

Recently uploaded (20)

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
ย 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
ย 
CHEAP Call Girls in Pushp Vihar (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICE
ย 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
ย 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanโ€™s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanโ€™s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanโ€™s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanโ€™s ...
ย 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
ย 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
ย 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
ย 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
ย 
Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...
ย 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
ย 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
ย 
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online โ˜‚๏ธ
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online  โ˜‚๏ธCALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online  โ˜‚๏ธ
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online โ˜‚๏ธ
ย 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
ย 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
ย 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
ย 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
ย 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
ย 
Vip Call Girls Noida โžก๏ธ Delhi โžก๏ธ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida โžก๏ธ Delhi โžก๏ธ 9999965857 No Advance 24HRS LiveVip Call Girls Noida โžก๏ธ Delhi โžก๏ธ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida โžก๏ธ Delhi โžก๏ธ 9999965857 No Advance 24HRS Live
ย 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
ย 

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