Dokumen tersebut memberikan penjelasan mengenai Hyperledger, yaitu salah satu jenis blockchain permissioned dimana pihak yang bergabung harus diotentikasi dan diotorisasi. Hyperledger memiliki komponen seperti shared ledger, consensus algorithm, dan smart contract. Beberapa algoritma consensus yang dijelaskan adalah proof of work, proof of stake, proof of elapsed time, dan proof of authority. Dokumen ini juga menjelaskan beberapa framework Hyperledger seperti Fabric, Sawtooth, Indy, dan Cello beserta fungsinya.
2. DefinisiDefinisi
●
Adalah salah satuAdalah salah satu permissioned blockchainspermissioned blockchains,,
dimana pihak yang bergabung harusdimana pihak yang bergabung harus
diauthentifikasi dan di-authorisasi oleh jaringandiauthentifikasi dan di-authorisasi oleh jaringan
tersebuttersebut
3.
4. Component of BlockchainComponent of Blockchain
●
shared ledgershared ledger
●
consensus algorithmconsensus algorithm
●
Privacy of transactionsPrivacy of transactions
●
Smart contractsSmart contracts
5. Smart ContractSmart Contract
●
Dieksekusi sebagai aksi yang didefinisikanDieksekusi sebagai aksi yang didefinisikan
terlebih dahulu.terlebih dahulu.
●
Menyediakan bahasa atau mekanisme untukMenyediakan bahasa atau mekanisme untuk
transaksi atau pertukaran sesuatu yangtransaksi atau pertukaran sesuatu yang
bernilai.bernilai.
6. ConsensusConsensus
●
Sebuah proses untuk mecapai kesepakatanSebuah proses untuk mecapai kesepakatan
atau perjanjian antar pihak yang berpartisipasiatau perjanjian antar pihak yang berpartisipasi
untuk menjaga kebenaran data dalam sistemuntuk menjaga kebenaran data dalam sistem
●
Consensus memastikan semua node atauConsensus memastikan semua node atau
pihak berbagi data yang sama.pihak berbagi data yang sama.
7. Algoritma ConsensusAlgoritma Consensus
●
Proof of Work (PoW)Proof of Work (PoW)
●
Proof of Stake (PoS)Proof of Stake (PoS)
●
Proof of Elapsed TimeProof of Elapsed Time
●
Proof of AuthorityProof of Authority
8. Proof of Work (PoW)Proof of Work (PoW)
●
Algoritma ini memecahkan tantanganAlgoritma ini memecahkan tantangan
komputasi agar dapat membuat blok baru dikomputasi agar dapat membuat blok baru di
blockchain Bitcoin. Proses ini dinamakanblockchain Bitcoin. Proses ini dinamakan
miningmining, sedangkan node/pihak yang, sedangkan node/pihak yang
melakukan mining disebutmelakukan mining disebut minerminer..
9. Proof of Stake (PoS)Proof of Stake (PoS)
●
Merupakan generalisasi dari algoritma Proof of Work (PoW)Merupakan generalisasi dari algoritma Proof of Work (PoW)
●
Berbeda dengan PoW, pihak yang terlibat disebutBerbeda dengan PoW, pihak yang terlibat disebut validatorvalidator.. Validator iniValidator ini
juga dapat bayaran untuk validasi yang dilakukannya.juga dapat bayaran untuk validasi yang dilakukannya.
●
Validator ini terpilih secara random berdasarkan jumlah jumlahValidator ini terpilih secara random berdasarkan jumlah jumlah blockblock..
●
PoS ini lebih murah karena tidak membutuhkan komputasi tinggi.PoS ini lebih murah karena tidak membutuhkan komputasi tinggi.
10. Proof of Elapsed Time (PoET)Proof of Elapsed Time (PoET)
●
Dikembangkan oleh IntelDikembangkan oleh Intel
●
Mengadopsi PoW namun tidak ada kompetisiMengadopsi PoW namun tidak ada kompetisi
untuk memecahkan masalah kriptografi danuntuk memecahkan masalah kriptografi dan
pencarian block.pencarian block.
●
Contoh implementasi: Hyperledger's SawtoothContoh implementasi: Hyperledger's Sawtooth
●
Validator dipilih dengan dua cara: 1) acak 2)Validator dipilih dengan dua cara: 1) acak 2)
first-come-first-servefirst-come-first-serve
11. Proof of Authority (PoA)Proof of Authority (PoA)
●
Digunakan untukDigunakan untuk permissioned ledgerspermissioned ledgers..
●
Menggunakan sejumlah node yang mempunyaiMenggunakan sejumlah node yang mempunyai
tugas untuk membuat blok baru dantugas untuk membuat blok baru dan
mengamankanmengamankan ledger.ledger.
●
Ketika sebuah blok tercipta, node tersebutKetika sebuah blok tercipta, node tersebut
harusharus sign-offsign-off daridari ledger.ledger.
14. Hyperledger IrohaHyperledger Iroha
●
Fokus di pengembangan aplikasi bergerakFokus di pengembangan aplikasi bergerak
dengan klien Android dan iOSdengan klien Android dan iOS
●
domain-driven C++ designdomain-driven C++ design
●
Algoritma consesus berdasarkan votingAlgoritma consesus berdasarkan voting
16. Hyperledger SawtoothHyperledger Sawtooth
●
Menggunakan platform modular dalamMenggunakan platform modular dalam
mengembangakan dan menjalankanmengembangakan dan menjalankan
distributed ledgersdistributed ledgers
●
Secara default algoritma consensus memakaiSecara default algoritma consensus memakai
Proof of Elapsed Time (PoET) , namun jugaProof of Elapsed Time (PoET) , namun juga
bisa memakai berbagai algoritma consensusbisa memakai berbagai algoritma consensus
lain tergantung dari ukuran jaringan.lain tergantung dari ukuran jaringan.
●
Lebih fleksible daripada distributed ledgerLebih fleksible daripada distributed ledger
lainnyalainnya
17. Hyperledger FabricHyperledger Fabric
●
Sebuah arsitektur bersifat modular dimanaSebuah arsitektur bersifat modular dimana
setiap komponennya dan keanggotaannyasetiap komponennya dan keanggotaannya
bersifatbersifat plug-and-playplug-and-play..
●
Mengijinkan anggota bertransaksi tanpa perluMengijinkan anggota bertransaksi tanpa perlu
memberikan informasi ke central authoritymemberikan informasi ke central authority
●
mendukung permissioned deployments.mendukung permissioned deployments.
18. Hyperledger IndyHyperledger Indy
●
Berfungsi untuk decentralized identityBerfungsi untuk decentralized identity
●
memungkinkan bisnis untuk menyimpan pointermemungkinkan bisnis untuk menyimpan pointer
ke identitas.ke identitas.
19. Hyperledger BurrowHyperledger Burrow
●
Menyediakan klien blockchain bersifat modularMenyediakan klien blockchain bersifat modular
dengan penerjemah permissioned smartdengan penerjemah permissioned smart
contract yang merupakan bagian daricontract yang merupakan bagian dari
Ethereum Virtual Machine (EVM)Ethereum Virtual Machine (EVM)
20. Hyperledger ModulesHyperledger Modules
●
deploying and maintaining blockchainsdeploying and maintaining blockchains
●
examining the data on the ledgersexamining the data on the ledgers
●
design, prototype, and extend blockchaindesign, prototype, and extend blockchain
networks.networks.
22. Hyperledger CelloHyperledger Cello
https://www.hyperledger.org/blog/2017/01/17/hyperledger-says-hello-to-cello
●
bring the on-demand “as-a-bring the on-demand “as-a-
service” deployment model toservice” deployment model to
the blockchain ecosystemthe blockchain ecosystem
●
operators can create andoperators can create and
manage multiple blockchainsmanage multiple blockchains
in a pool through ain a pool through a
dashboard, at the same timedashboard, at the same time
usersusers
24. Hyperledger ExplorerHyperledger Explorer
●
visualizing blockchain operations :visualizing blockchain operations :
– Blocks
– Transactions and associated data
– Network information (name, status, list of nodes)
– Smart contracts (chain codes and transaction
families)
– Other relevant information stored in the ledger.
–
–
25. Hyperledger ComposerHyperledger Composer
●
Model your business blockchain networkModel your business blockchain network
●
Generate REST APIs for interacting with yourGenerate REST APIs for interacting with your
blockchain networkblockchain network
●
Generate a skeleton Angular application.Generate a skeleton Angular application.
26. Hyperledger Composer 4 filesHyperledger Composer 4 files
●
Model File (.cto)Model File (.cto)
– Medefiniskan Assets, Participants dan Transactions
menggunakan Hyperledger Composer modelling langauge.
●
Access Control (.acl)Access Control (.acl)
– Mendefinsikan access controls (Note: 1 video per .bna).
●
Script File (.js)Script File (.js)
– Mendefinsikan logic transaksi dengan JavaScript.
●
Query File (.qry)Query File (.qry)
29. Model FileModel File
/**/**
* New model file* New model file
*/*/
namespace org.acme.myfirstmodelnamespace org.acme.myfirstmodel
asset Test identified by testId {asset Test identified by testId {
o String testIdo String testId
o String messageo String message
}}
transaction helloworld {transaction helloworld {
--> Test test--> Test test
}}
31. Next week assigmentNext week assigment
●
Install dockerInstall docker
●
JalankanJalankan
– docker run --name composer-playground --publish
8080:8080 hyperledger/composer-playground more info →
https://www.ibm.com/developerworks/cloud/library/cl-model-test-y
●
Buatlah bisnis model selain yang di templateBuatlah bisnis model selain yang di template
●
Buatlah laporan terkait asset, participant, access control,Buatlah laporan terkait asset, participant, access control,
transaction dan eventtransaction dan event