Menguasai Hyperledger¶
DALAM BAB INI
Menjelajahi empat proyek utama Hyperledger
Mendalami algoritma PoET
Menemukan kontrak pintar Chaincode
Memahami Sumeragi
Hyperledger adalah komunitas pengembang perangkat lunak dan penggemar teknologi yang membangun standar industri untuk kerangka kerja dan platform blockchain. Pekerjaan mereka penting karena merekalah kelompok utama yang menggiring industri blockchain menuju adopsi arus utama dan komersial. Hyperledger adalah platform penerapan yang "aman" untuk tim perusahaan.
Organisasi dan proyek unik mereka terus berkembang setiap hari. Saat tulisan ini, mereka memiliki lebih dari 100 perusahaan anggota dan memiliki beberapa proyek dalam tahap inkubasi. Beberapa proyek pertama mereka meliputi Explorer, sebuah aplikasi web untuk melihat dan mengkueri blok, dan Fabric, sebuah pembangun aplikasi blockchain plug-and-play. Mereka juga memiliki Iroha dan Sawtooth, yang merupakan platform blockchain termodularisasi.
Dalam bab ini, saya akan membahas tiga proyek utama yang sedang dalam tahap inkubasi di Hyperledger. Anda akan mendapatkan pemahaman mendalam tentang masa depan blockchain komersial bagi perusahaan dan industri Anda. Pengetahuan ini akan membantu Anda saat Anda mengeksplorasi teknologi apa yang akan digunakan dan yang harus dihindari, sehingga menghemat waktu dan sumber daya pengembangan Anda.
Mengenal Hyperledger: Mimpi Masa Depan yang Hiper¶
Pada akhir tahun 2015, Linux Foundation membentuk proyek Hyperledger untuk mengembangkan kerangka kerja buku besar terdistribusi bersumber terbuka dan berkelas perusahaan. Mereka berharap dapat memfokuskan komunitas blockchain pada pembangunan aplikasi, platform, dan sistem perangkat keras yang tangguh dan spesifik industri untuk mendukung bisnis.
Linux Foundation melihat bahwa terdapat banyak kelompok berbeda yang membangun teknologi blockchain tanpa arah yang kohesif. Industri menduplikasi upaya dan tribalisme mendorong tim untuk memecahkan masalah yang sama dua kali. Yayasan ini mengetahui dari pengalamannya bahwa jika teknologi ini ingin mencapai potensi penuhnya, strategi pengembangan sumber terbuka dan kolaboratif sangat dibutuhkan.
Proyek Hyperledger dipimpin oleh Direktur Eksekutif Brian Behlendorf, yang memiliki pengalaman puluhan tahun sejak Linux Foundation dan Apache Foundation, serta menjadi CTO World Economic Forum. Jadi, tidak mengherankan jika Hyperledger telah diterima dengan baik. Banyak pemimpin bisnis dan industri terkemuka telah bergabung dalam proyek ini, termasuk Accenture, Cisco, Fujitsu Limited, IBM, Intel, J.P. Morgan, dan Wells Fargo. Proyek ini juga telah menarik banyak organisasi blockchain terkemuka.
R3, sebuah konsorsium yang mendukung industri perbankan, telah menyumbangkan kerangka kerja arsitektur transaksi keuangannya. Digital Asset, perusahaan perangkat lunak nya, memberikan tanda Hyperledger dan beberapa kode kelas perusahaannya. Factom Foundation juga menyumbangkan kode kelas perusahaan dan sumber daya pengembang. IBM dan banyak organisasi lain menyumbangkan kode dan sumber daya lainnya untuk proyek ini.
Komite pengarah teknis Hyperledger memastikan ketahanan dan interoperabilitas antara berbagai teknologi ini. Harapannya adalah kolaborasi sumber terbuka lintas industri ini akan memajukan teknologi blockchain dan menghasilkan miliaran nilai ekonomi dengan berbagi biaya penelitian dan pengembangan di banyak organisasi.
Hyperledger mengidentifikasi dan mengatasi fitur dan persyaratan penting yang hilang dari ekosistem teknologi blockchain. Hyperledger juga membangun standar terbuka lintas industri untuk buku besar terdistribusi dan memberikan ruang terbuka bagi para pengembang untuk berkontribusi dalam membangun sistem blockchain yang lebih baik.
Hyperledger memiliki siklus hidup proyek yang serupa dengan Linux Foundation. Sebuah proposal diajukan, kemudian proposal yang diterima dimasukkan ke dalam tahap inkubasi. Ketika sebuah proyek telah mencapai kondisi stabil, proyek tersebut diluluskan dan dipindahkan ke tahap aktif. Saat ini, semua proyek Hyperledger berada dalam tahap proposal atau inkubasi. Setiap proyek dipimpin oleh perusahaan besar atau perusahaan rintisan. Misalnya, Fabric dipimpin oleh IBM, Sawtooth oleh Intel, dan Iroha oleh perusahaan rintisan Soramitsu.
Hyperledger, seperti banyak proyek sumber terbuka lainnya, menggunakan GitHub (www.github.com/hyperledger) dan Slack (https://slack.hyperledger.org) untuk terhubung dengan tim yang mengerjakan setiap proyek. Ini adalah tempat yang tepat untuk mendapatkan informasi terbaru dan untuk memeriksa kemajuan yang dicapai proyek-proyek ini dalam pengembangan.
Berfokus pada Fabric¶
Proyek inkubasi pertama Hyperledger, Fabric, adalah platform blockchain berizin. Platform ini bekerja seperti kebanyakan blockchain, yaitu menyimpan buku besar berisi peristiwa digital. Peristiwa ini terstruktur sebagai transaksi dan dibagikan di antara berbagai partisipan. Transaksi dieksekusi tanpa mata uang kripto. Sumber daya opsional bagi Anda untuk mempelajari lebih lanjut tentang topik ini ada di https://trustindigitallife.eu/wp-content/uploads/2016/07/marko_vukolic.pdf.
Semua transaksi aman, privat, dan rahasia. Fabric hanya dapat diperbarui berdasarkan konsensus para partisipan. Catatan yang telah dimasukkan tidak dapat diubah.
Fabric adalah solusi perusahaan yang mengutamakan skalabilitas dan kepatuhan terhadap peraturan. Semua peserta harus mendaftarkan bukti identitas ke layanan keanggotaan untuk mendapatkan akses ke sistem. Fabric menerbitkan transaksi dengan sertifikat turunan yang tidak dapat ditautkan ke peserta pemiliknya, sehingga menawarkan anonimitas di jaringan. Selain itu, konten setiap transaksi dienkripsi untuk memastikan hanya peserta yang dituju yang dapat melihat konten tersebut.
Fabric memiliki arsitektur modular. Anda dapat menambah atau mengurangi komponen dengan menerapkan spesifikasi protokolnya. Teknologi kontainernya dapat menangani sebagian besar bahasa pemrograman utama untuk pengembangan kontrak pintar.
Bitcoin, di sisi lain, memungkinkan siapa pun untuk berpartisipasi secara anonim dan komunitas selalu mencari cara untuk tahan terhadap sensor dan untuk memberdayakan mereka yang telah kehilangan haknya. Bitcoin juga terutama direkayasa untuk pergerakan dan keamanan token mata uang kripto nya. Karena alasan ini, membandingkan praktik terbaik Bitcoin dengan praktik terbaik Fabric mungkin tidak adil.
Membangun sistem Anda di Fabric¶
Banyak upaya telah dilakukan untuk membuat Fabric mudah diakses, tetapi masih hanya dapat diakses oleh orang-orang yang paham teknologi.
Hyperledger telah merinci beberapa kasus penggunaan yang akan diarahkan pada teknologinya. Anda akan dapat menggunakan Fabric di atas kasus penggunaan yang diuraikan dalam waktu dekat dengan antarmuka pengguna yang intuitif. Untuk saat ini, Anda dapat mengembangkan dan menguji kasus penggunaan yang tercantum dengan bantuan pengembang inti.
Menyelami pengembangan chaincode¶
Kontrak antara dua pihak dapat diterjemahkan menjadi kode di Hyperledger Fabric melalui Chaincode. Chaincode adalah versi Hyperledger dari kontrak pintar Ethereum. Chaincode mengotomatiskan perjanjian yang dibuat dalam kontrak dengan cara yang dapat dipercaya oleh kedua belah pihak.
Chaincode bersifat Turing lengkap seperti kontrak pintar Ethereum. Saat ini, Anda dapat meminta pengembang Java untuk membangun kontrak chaincode untuk Anda. Tim Fabric telah menyiapkan beberapa kasus penggunaan umum seperti mata uang digital dan pengiriman pesan teks sebagai bagian dari kerangka kerja inti.
Tim Fabric juga sedang mengeksplorasi kasus penggunaan bisnis menarik lainnya yang belum selesai pada saat penulisan ini tetapi mungkin tersedia pada saat Anda membaca ini.
Hyperledger masih dalam tahap awal pengembangan dan proyek-proyeknya tertinggal sekitar dua tahun di belakang Ethereum. Namun, setiap proyek memiliki tim dan sumber daya yang substansial yang didedikasikan untuknya:
- Kontrak bisnis: Hyperledger telah menemukan cara untuk menggabungkan kontrak publik dan kontrak privat. Kontrak privat dibuat antara dua pihak atau lebih dan berisi informasi rahasia. Kontrak publik dapat dilihat oleh siapa pun yang meluangkan waktu untuk mencarinya di Hyperledger. Misalnya, Anda dapat menggunakan kontrak publik untuk membuat penawaran umum untuk menjual suatu produk atau sebagai cara untuk meminta penawaran pada suatu kontrak.
Komposisi kontrak ini lebih kompleks daripada kontrak tradisional karena arbitrase dan penegakan hukum oleh pihak ketiga dihilangkan. Selain itu, autentikasi individu yang berpartisipasi dalam kontrak diperlukan. Selain itu, sebagian besar kontrak bersifat unik dan tidak dapat distandarisasi. Semakin kompleks suatu kontrak, semakin banyak pula celah yang dapat dirusak dari tujuan awalnya. Hyperledger sedang berupaya menciptakan sistem manajemen kontrak untuk membantu meningkatkan skalabilitas Chaincode.
- Rantai pasokan manufaktur: Manajemen rantai pasokan adalah skema blockchain yang menarik yang sedang dieksplorasi di Fabric. Perakit akhir dapat mengelola semua komponen dan persediaan yang mereka gunakan dalam menciptakan produk mereka. Fitur ini akan memungkinkan Anda untuk responsif terhadap permintaan dan dapat melacak asal setiap komponen hingga ke produsen aslinya. Jika terjadi penarikan produk, akan mudah untuk menemukan penyebabnya atau kemampuan untuk mengetahui keaslian setiap komponen sebelum digunakan.
Fabric membutuhkan pengembangan lebih lanjut sebelum siap untuk kasus penggunaan ini karena harus mudah diakses oleh semua orang dalam rantai pasok. Tim Fabric sedang mengembangkan protokol standar untuk memungkinkan setiap peserta dalam jaringan rantai pasokan memasukkan dan melacak komponen bernomor yang diproduksi dan digunakan pada produk tertentu. Setelah selesai, kasus penggunaan ini akan memungkinkan penelusuran mendalam dilakukan pada produksi setiap produk kapan saja. Ini mungkin sepuluh lapisan atau lebih dalam produksi satu barang. Konsumen kemudian dapat menentukan asal usul barang manufaktur apa pun yang terbuat dari komponen barang dan persediaan lain. Hal ini dapat memiliki dampak sosial yang menarik terhadap konsumsi.
Sekuritas dan aset: Sekuritas dan aset lainnya sangat cocok untuk blockchain karena dapat mengotomatiskan banyak fungsi yang dilakukan oleh pihak ketiga. Fabric akan memungkinkan semua pemangku kepentingan suatu aset untuk memiliki akses langsung ke aset tersebut beserta komposisi dan riwayatnya, melewati perantara yang sekarang memegang informasi tersebut. Fabric juga akan mempercepat waktu penyelesaian aset hingga mendekati waktu nyata.
Komunikasi langsung: Di masa mendatang, Fabric juga dapat digunakan sebagai tempat bagi perusahaan untuk membuat pengumuman dan penawaran publik. Misalnya, jika sebuah perusahaan ingin mengumpulkan dana dan perlu memberi tahu semua pemegang saham tentang detail lengkap penawaran secara waktu nyata, hal tersebut dapat dilakukan. Seperti organisasi otonom terdesentralisasi (DAO) Ethereum, pemegang saham dapat membuat keputusan dan melaksanakannya. Keputusan mereka akan diproses dan diselesaikan secara waktu nyata. Hal ini akan membuat rapat pemegang saham dan pemungutan suara jauh lebih mudah dan cepat.
Interoperabilitas aset: Di masa mendatang, Fabric mungkin juga memiliki beberapa fungsi yang sama dengan jaringan Ripple (lihat Bab 6). Fabric telah membayangkan kasus penggunaan di mana perusahaan dapat bertukar aset di pasar dengan likuiditas rendah dengan mencocokkan permintaan antar berbagai pihak. Alih-alih menerima batasan pasar pada perdagangan langsung antara dua pihak, jaringan rantai menghubungkan pembeli dengan penjual dan menemukan kecocokan terbaik di berbagai kelas aset. Hyperledger tampaknya berada diposisikan dengan baik di masa mendatang untuk memperdagangkan derivatif. Anda dapat membaca lebih lanjut tentang karya ini di http://events.linuxfoundation.org/sites/events/files/slides/TradingDerivatives_LinuxCon_2016.pdf.
Meneliti Proyek Iroha¶
Proyek Iroha Hyperledger dibangun berdasarkan pekerjaan yang telah diselesaikan dalam proyek Fabric. Proyek ini dimaksudkan untuk melengkapi Fabric, Sawtooth Lake, dan proyek-proyek lain di bawah Hyperledger. Hyperledger menambahkan proyek Iroha ke inkubasi karena proyek-proyek lain tidak memiliki proyek infrastruktur yang ditulis dalam C++. Tidak adanya proyek C++ sangat membatasi seberapa banyak orang yang dapat memperoleh manfaat dari pekerjaan di Hyperledger dan jumlah pengembang yang dapat berkontribusi pada proyek ini.
Selain itu, sebagian besar pengembangan blockchain saat ini berada pada tingkat infrastruktur terendah, dan hanya ada sedikit atau bahkan tidak ada pekerjaan pengembangan pada interaksi pengguna atau aplikasi seluler. Hyperledger percaya bahwa Iroha diperlukan untuk mempopulerkan teknologi blockchain. Proyek ini mengisi celah di pasar dengan mendatangkan lebih banyak pengembang dan menyediakan pustaka untuk pengembangan antarmuka pengguna seluler.
Pada saat penulisan ini, Iroha adalah proyek yang sangat baru dan belum terintegrasi dengan Fabric atau Sawtooth Lake. Hyperledger berencana untuk segera memperluas fungsionalitasnya agar dapat bekerja dengan proyek-proyek blockchain lainnya. Pustakanya untuk iOS, Android, dan JavaScript akan menyediakan fungsi-fungsi pendukung, seperti penandatanganan transaksi secara digital. Pustaka ini akan sangat berguna untuk pengembangan aplikasi komersial, dan akan menambahkan lapisan keamanan dan model bisnis baru yang hanya dimungkinkan dengan teknologi blockchain.
Memperkenalkan Sumeragi: Algoritma Konsensus Baru¶
Blockchain memiliki sistem yang memungkinkan mereka untuk terlebih dahulu menyepakati satu versi kebenaran, kemudian mencatat kebenaran yang disepakati tersebut dalam buku besar mereka. Sistem kesepakatan disebut konsensus.
Konsensus itu rumit. Memahami nuansa bagaimana dan mengapa konsensus bertindak seperti itu jauh melampaui cakupan buku ini. Buku ini juga jauh lebih luas daripada yang Anda butuhkan sebagai seorang profesional bisnis. Yang penting bagi Anda adalah konsekuensi dari berbagai mekanisme konsensus dan bagaimana mekanisme tersebut memengaruhi apa yang Anda lakukan di blockchain tersebut. Saya menyoroti konsensus Iroha, Sumeragi, karena sangat berbeda dari blockchain tradisional.
Berikut adalah beberapa hal penting yang membuat Sumeragi berbeda:
Sumeragi tidak memiliki mata uang kripto.
Node yang memulai konsensus ditambahkan ke dalam sistem oleh layanan anggota Fabric. Node membangun reputasi dari waktu ke waktu berdasarkan bagaimana mereka berinteraksi dengan buku besar. Ini adalah blockchain izin yang dijalankan oleh entitas yang dikenal.
Entri baru ditambahkan ke buku besar dengan cara yang unik. Node pertama yang memulai konsensus, disebut pemimpin, menyiarkan entri tersebut ke sekelompok node lain; node-node tersebut kemudian divalidasi. Jika tidak divalidasi, node pertama akan menyiarkan ulang setelah jangka waktu yang telah ditentukan. Elemen penyiaran serupa dengan cara kerja konsensus Ripple.
Tergantung pada kasus penggunaan blockchain Anda, Iroha bisa positif atau negatif. Jika Anda khawatir tentang penyensoran, Iroha mungkin tidak tepat untuk Anda. Dalam hal ini, Anda sebaiknya mencari blockchain yang tahan terhadap penyensoran. Jika Anda khawatir pemain lain di jaringan melakukan arbitrase, Iroha mungkin juga tidak benar — penyelidikan lebih lanjut diperlukan. Jika Anda ingin mengetahui semua pemain di blockchain Anda, Iroha mungkin persis seperti yang Anda cari.
Mengembangkan aplikasi seluler¶
Lewati bagian ini jika Anda bukan bagian dari dunia pengembangan aplikasi. Iroha dirancang untuk pengembang web dan aplikasi seluler agar mereka dapat mengakses kekuatan sistem Hyperledger. Tim Iroha menyadari bahwa memiliki buku besar terdistribusi tidaklah berguna jika tidak ada aplikasi yang memanfaatkannya.
Iroha memiliki jalur pengembangan untuk komponen C++ terenkapsulasi berikut:
Pustaka konsensus Sumeragi
Pustaka tanda tangan digital Ed25519
Pustaka hashing SHA-3
Pustaka serialisasi transaksi Iroha
Pustaka siaran P2P
Pustaka server API
Pustaka iOS
Pustaka Android
Pustaka JavaScript
Paket penjelajah/visualisasi data Blockchain
Salah satu tantangan utama industri blockchain adalah membuat sistem yang ramah pengguna. Iroha telah menciptakan pustaka perangkat lunak sumber terbuka untuk iOS, Android, dan JavaScript serta membuat fungsi API umum mudah digunakan. Pengembangannya masih awal, tetapi Iroha merupakan sumber daya yang bagus untuk dieksplorasi dalam kasus penggunaan bisnis.
Menyelami Sawtooth Lake¶
Sawtooth Lake dari Intel adalah proyek buku besar terdistribusi lainnya di Hyperledger. Proyek ini berfokus pada platform yang sangat modular untuk membangun buku besar terdistribusi baru bagi perusahaan.
Peringatan
Saat artikel ini ditulis, versi rilisnya memiliki perangkat lunak yang hanya mensimulasikan konsensus. Perangkat lunak ini tidak menyediakan keamanan untuk proyek Anda dan hanya boleh digunakan untuk menguji ide-ide baru.
Sawtooth Lake tidak beroperasi dengan mata uang kripto. Sawtooth Lake menjaga keamanan platform dengan memungkinkan bisnis untuk membuat blockchain privat. Bisnis yang menjalankan blockchain privat ini kemudian berbagi beban kebutuhan komputasi jaringan. Dalam dokumentasinya, Sawtooth Lake menyatakan bahwa jenis pengaturan ini akan memastikan kesepakatan universal tentang status buku besar bersama.
Sawtooth Lake telah mengambil model dasar blockchain dan mengubahnya. Kebanyakan blockchain memiliki tiga elemen:
Catatan bersama tentang status blockchain saat ini
Cara memasukkan data baru
Cara menyepakati data tersebut
Sawtooth Lake menggabungkan dua elemen pertama ke dalam proses sinyal yang mereka sebut keluarga transaksi. Model ini paling baik digunakan dalam kasus di mana semua pihak yang berpartisipasi memiliki manfaat bersama karena memiliki catatan yang benar.
Intel telah memungkinkan perangkat lunaknya cukup fleksibel untuk mengakomodasi keluarga transaksi khusus yang mencerminkan kebutuhan unik setiap bisnis. Intel juga membangun tiga templat untuk membangun aset digital:
EndPointRegistry: Tempat untuk mencatat item dalam blockchain
IntegerKey: Buku besar bersama yang digunakan untuk manajemen rantai pasokan
MarketPlace: Platform perdagangan blockchain untuk membeli, menjual, dan memperdagangkan aset digital
Menjelajahi Algoritma Konsensus: Bukti Waktu Berlalu¶
Algoritma konsensus untuk Sawtooth Lake disebut Proof of Elapsed Time (PoET). Algoritma ini dirancang untuk berjalan di area aman pada prosesor utama komputer Anda, yang disebut lingkungan eksekusi tepercaya (TEE). PoET memanfaatkan keamanan TEE untuk membuktikan bahwa waktu telah berlalu melalui transaksi penandaan waktu.
Algoritma konsensus lain juga memiliki semacam elemen penandaan waktu. Cara mereka memastikan catatan tidak diubah adalah dengan menerbitkan blockchain mereka secara publik sebagai bukti bahwa catatan tersebut tidak diubah. Buku besar yang dipublikasikan bertindak sebagai saksi publik yang dapat diputar kembali dan diperiksa oleh siapa pun. Ini seperti menerbitkan iklan di surat kabar untuk membuktikan sesuatu telah terjadi.
PoET juga memiliki sistem lotere yang bekerja sedikit berbeda dari blockchain lain yang menggunakan bukti kerja. Sistem ini secara acak memilih satu node dari kumpulan node yang melakukan validasi. Probabilitas terpilihnya sebuah node meningkat secara proporsional dengan seberapa banyak sumber daya pemrosesan yang disumbangkan node tersebut ke buku besar bersama. Langkah-langkah dapat diterapkan untuk mencegah node memanipulasi sistem dan merusak buku besar.
Menerapkan Sawtooth¶
Intel telah menyusun beberapa dokumentasi dan tutorial fantastis di https://intelledger.github.io/tutorial.html. Mereka memandu Anda melalui proses penyiapan lingkungan pengembangan virtual untuk sebuah blockchain, dan mereka bahkan memiliki satu untuk membangun permainan Tic-Tac-Toe blockchain. Anda harus terbiasa dengan Vagrant dan VirtualBox untuk memanfaatkan apa yang mereka tawarkan.
Tip
Anda mungkin juga ingin meninjau Coding For Dummies karya Nikhil Abraham (Wiley) sebelum mencoba tutorial ini.