Pada segmen berikutnya dari Membangun pada web3, insinyur pengembangan Edge & Node Nader Dabit menjelaskan lebih lanjut tentang tumpukan web3 dan bagaimana para pengembang dapat mengkonseptualisasikan berbagai aspek membangun pada web3.
Saya beralih ke web3 pada bulan April 2021 setelah menjadi pengembang full-stack tradisional selama sekitar 10 tahun. Saat menyelami semua teknologi dan gagasan baru ini, hal pertama yang ingin saya ketahui adalah "apa itu tumpukan web3?".
Saat membangun aplikasi web atau seluler tradisional, saya sering bergantung pada sejumlah blok bangunan untuk menyelesaikan pekerjaan.
Dengan menggunakan komponen inti ini, saya dapat membangun sebagian besar jenis aplikasi yang saya inginkan, atau setidaknya mendekati. Jadi, bagaimana tampilannya dalam web3?
Ternyata, jawaban atas hal ini tidaklah begitu langsung karena:
Saya juga kesulitan memahami cara memulai dan membangun aplikasi web3 karena saya mendekati masalah dengan cara yang sama seperti di dunia web2.
Setelah bekerja, melakukan riset, bereksperimen, dan membangun hal-hal selama kurang lebih 8 bulan terakhir, saya ingin berbagi apa yang telah saya pelajari.
Sebelum kita mendefinisikan tumpukan web3, mari kita coba mendefinisikan web3. Ada banyak definisi tergantung pada siapa yang Anda tanyakan, tetapi bagi saya saya menemukaninidefinisi spot on:
Web3 adalah tumpukan protokol yang memungkinkan aplikasi terdesentralisasi sepenuhnya.
Dengan tumpukan teknologi terdesentralisasi ini, kita dapat mulai membangun aplikasi terdesentralisasi yang memiliki implikasi dan karakteristik yang ditetapkan.
Beberapa karakteristik yang diaktifkan oleh web3 adalah:
Sementara beberapa aplikasi yang dibangun di atas tumpukan teknologi terdesentralisasi akan menggantikan pendahulunya, paradigma baru aplikasi juga telah dimungkinkan oleh primitif baru yang diaktifkan oleh blockchain.
Pembayaran digital asli dan infrastruktur belakang publik - seperti pembelajaran mesin, perangkat seluler, realitas virtual, dan blok bangunan teknologi lainnya - memungkinkan jenis aplikasi baru sepenuhnya dibangun, beberapa yang belum terbayangkan.
Apakah ini berarti bahwa segala sesuatu akan digantikan oleh web3? Tidak harus demikian. Meskipun saya berpikir bahwa membangun dengan tumpukan teknologi terdesentralisasi adalah pilihan yang jauh lebih baik untuk jenis aplikasi tertentu - seperti hampir setiap keputusan teknis, itu tergantung pada apa yang Anda bangun.
Mari mulai menjelajahi tumpukan web3 sekarang, dibagi menjadi serangkaian kategori ini:
Ada banyak blockchain yang dapat Anda pilih untuk dibangun. Tidak ada yang terbaik, sebaliknya Anda harus mempertimbangkan berbagai tradeoff di antara mereka.
Salah satu hal yang sering penting bagiku ketika belajar sesuatu yang baru adalah gagasan penerapannya Prinsip Paretoke apa yang saya pelajari, yaitu, apa cara paling efisien untuk mendapatkan manfaat maksimal dari jumlah waktu dan usaha tersebut. Mengikuti ide ini, saya dapat mencapai kemajuan dan momentum terbesar saat belajar hal baru dalam waktu sesingkat mungkin.
Di dunia Blockchain, belajar Solidity dan EVM(atau Mesin Virtual Ethereum) mungkin menjadi pilihan terbaik saat memulai sebagai pengembang blockchain. Dengan menggunakan keterampilan ini (dan tumpukan teknologi), Anda dapat membangun tidak hanya untuk Ethereum, tetapi juga untuk Layer 2 Ethereum lainnya, sidechain, dan bahkan blockchain lain seperti Avalanche, Fantom, dan Celo.
Dengan demikian, Rust mulai menjadi semakin populer di dunia blockchain, dengan Solana, NEAR, Polkadot, dan lainnya memiliki dukungan Rust kelas satu. Kamu mungkin tidak akan salah memilih mempelajari keduanya, tapi bagi pemula, saya akan mengatakan bahwa Solidity masih menjadi pilihan yang lebih baik jika seseorang bertanya kepada saya hari ini.
Selain saran itu, berikut adalah contoh yang tidak lengkap dari blockchain yang memiliki kombinasi teknologi, utilitas, komunitas, momentum, dan masa depan yang solid:
Ketika berinteraksi dengan jaringan, Anda perlu menggunakan titik akhir RPC.
Ada beberapa cara yang bisa Anda lakukan ini:
Titik akhir RPC publik sering kali disediakan oleh jaringan, tetapi untuk kebanyakan dapps produksi, Anda akan ingin memanfaatkan titik akhir Anda sendiri karena mereka tidak stabil atau direkomendasikan untuk produksi.
Ada beberapa penyedia layanan RPC di luar sana, berikut adalah beberapa:
Ada juga solusi web3 / terdesentralisasi, Jaringan Pocketyang sepertinya semakin populer.
Salah satu dari opsi-opsi ini mungkin merupakan pilihan yang baik untuk berinteraksi langsung dengan jaringan Anda.
Untuk pengembangan EVM, ada beberapa lingkungan pengembangan yang baik tersedia:
Untuk pengembangan Solana, JangkarSegera menjadi titik masuk bagi pengembang baru. Ini menyediakan CLI untuk membangun, dan menguji program Solana serta perpustakaan klien yang dapat Anda gunakan untuk membangun antarmuka. Ini juga termasuk DSL yang mengabstraksikan sebagian besar kompleksitas yang sering dihadapi pengembang saat mereka memulai pengembangan Solana dan Rust.
Di mana kita menyimpan gambar, video, dan file lainnya di web3? Menyimpan sesuatu sebesar itu di rantai biasanya terlalu mahal, jadi kita mungkin tidak ingin menyimpannya di sana.
Sebagai gantinya, kita dapat menggunakan salah satu dari beberapa protokol penyimpanan file:
Selain penyimpanan file dan penyimpanan on-chain, Anda mungkin juga perlu menyimpan data off-chain. Anda mungkin menggunakan jenis solusi ini dengan cara yang sama seperti Anda mungkin menggunakan database dalam tumpukan teknologi tradisional, tetapi alih-alih direplikasi di sejumlah node pada jaringan terdesentralisasi, dan oleh karena itu lebih dapat diandalkan (setidaknya dalam teori).
Beberapa opsi adalah:
Dalam hal kematangan, pendapat saya adalah bahwa ekosistem solusi penyimpanan luar rantai belum mencapai tingkat yang diperlukan untuk mengembangkan beberapa kasus penggunaan yang lebih canggih yang mungkin diinginkan oleh beberapa pengembang. Beberapa tantangan di sini adalah data real-time, deteksi konflik dan penyelesaian konflik, otorisasi penulisan, dokumentasi, dan pengalaman pengembang secara umum.
Mengintegrasikan solusi data offchain dengan protokol blockchain adalah salah satu rintangan besar terakhir yang perlu kita lewati sebelum kita memiliki tumpukan protokol terdesentralisasi sepenuhnya yang mampu mendukung segala jenis aplikasi.
Ada banyak perbedaan dalam cara kita berinteraksi dan membangun di atas blockchain dibandingkan basis data dalam tumpukan teknologi tradisional. Dengan blockchain, data tidak disimpan dalam format yang dapat dengan efisien atau mudah dikonsumsi langsung dari aplikasi atau antarmuka depan lainnya.
Blockchain dioptimalkan untuk operasi tulis. Anda sering mendengar inovasi yang terjadi berpusat di sekitar transaksi per detik, waktu blok, dan biaya transaksi. Data blockchain ditulis dalam blok seiring berjalannya waktu, membuat segala sesuatu selain operasi baca dasar menjadi tidak mungkin.
Dalam kebanyakan aplikasi, Anda membutuhkan fitur-fitur seperti data relasional, penyortiran, penyaringan, pencarian teks penuh, penomoran halaman, dan berbagai jenis kemampuan kueri lainnya. Untuk melakukannya, data perlu diindeks dan diorganisir untuk pengambilan yang efisien.
Secara tradisional, itulah pekerjaan yang dilakukan oleh basis data dalam tumpukan teknologi terpusat, tetapi lapisan pengindeksan itu tidak ada dalam tumpukan web3.
Grafikadalah protokol untuk mengindeks dan mengajukan pertanyaan tentang data blockchain yang membuat proses ini jauh lebih mudah dan menawarkan solusi terdesentralisasi untuk melakukannya. Siapa pun dapat membangun dan menerbitkan API GraphQL terbuka, yang disebut subgraf, membuat data blockchain mudah untuk ditanyakan.
Untuk mengetahui lebih lanjut tentang The Graph, lihat dokumendi siniatau panduanku di sini.
Identitas adalah paradigma yang benar-benar berbeda dalam web3. Di web2, otentikasi hampir selalu didasarkan pada informasi pribadi pengguna. Informasi ini biasanya dikumpulkan baik melalui formulir atau penyedia OAuth yang meminta pengguna untuk menyerahkannya sebagai pertukaran akses ke aplikasi.
Di web3, identitas sepenuhnya berkaitan dengan gagasan dompet dan kriptografi kunci publik.
Sementara nama “dompet” memenuhi tujuannya, saya menemukan bahwa orang yang baru mengenal web3 merasa bingung dengan istilah itu karena berkaitan dengan otentikasi dan identitas. Saya harap di masa depan kita dapat menemukan cara lain untuk menyampaikan apa itu dompet, karena ini menggabungkan aspek keuangan namun juga identitas dan reputasi.
Sebagai seorang pengembang, Anda perlu memahami bagaimana cara mengakses dan berinteraksi dengan dompet dan alamat pengguna dengan berbagai cara.
Pada level yang sangat dasar (dan kebutuhan yang sangat umum), Anda mungkin ingin meminta akses ke dompet pengguna. Untuk melakukan ini, biasanya Anda akan dapat mengakses dompet pengguna dalam konteks jendela (peramban web) atau menggunakan sesuatu seperti WalletConnectatauAdapter Dompet Solana.
Sebagai contoh, jika mereka memiliki dompet Ethereum yang tersedia, Anda akan dapat mengakses window.ethereum. Sama halnya dengan Solana (window.solana), Arweave (window.arweaveWallet), dan beberapa lainnya. WalletConnect bagus untuk web seluler dan React Native karena memungkinkan pengguna untuk memberikan izin menggunakan dompet seluler mereka langsung dari perangkat.
Jika Anda ingin menangani otentikasi sendiri, Anda dapat mengizinkan pengguna untuk menandatangani transaksi dan kemudian mendekodekannya di suatu tempat untuk mengotentikasi pengguna, tetapi ini biasanya memerlukan server.Di siniadalah contoh bagaimana itu mungkin terlihat menggunakan dompet EVM, dandi sinimerupakan contoh bagaimana melakukan hal ini dengan Solana / Phantom.
Bagaimana dengan mengelola profil pengguna secara terdesentralisasi?Jaringan Keramikmenawarkan protokol paling kuat dan rangkaian alat untuk mengelola identitas terdesentralisasi. Mereka baru-baru ini merilis sebuah kiriman blogmenguraikan beberapa pembaruan terbaru mereka dan memberikan beberapa panduan tentang bagaimana semua alat bekerja bersama. Saya akan memulai dari situ dan kemudian menjelajahidokumen merekauntuk memahami bagaimana memulai membangun, dan pertimbangkan untuk melihat proyek contoh sayadi siniyang menggunakan Keramik self.id.
Jika Anda ingin mengambil ENScatatan teks, perpustakaan ENSJS menawarkan API yang bagus untuk mengambil data pengguna:
const ens = baru ENS({ penyedia, alamatEns: dapatkanAlamatEns(‘1’) })
const content = await ens.name('sha.eth').getText('avatar')
SpruceIDjuga sesuatu yang terlihat menjanjikan tetapi saya belum mencobanya.
Keramik dan Spruce keduanya menerapkan W3C DIDspesifikasi, yang juga saya anggap sebagai blok bangunan web3. Dengan demikian, implementasi terpusat DIDs melanggar ide dari apa yang spesifikasi coba capai.
Sejauh yang terkait dengan kerangka kerja JavaScript, Anda benar-benar dapat membangun dengan apapun yang Anda inginkan, karena SDK blockchain sisi klien sebagian besar tidak tergantung pada kerangka kerja. Dengan demikian, sebagian besar proyek dan contoh dibangun dengan React. Ada juga beberapa pustaka seperti Adapter Dompet Solanayang menawarkan utilitas tambahan untuk React, jadi saya akan mengatakan bahwa belajar atau akrab dengan React mungkin akan menjadi langkah cerdas.
Untuk SDK sisi klien di Ethereum ada web3.js dan ethers.jsBagi saya, Ethers lebih mudah diakses dan memiliki dokumentasi yang lebih baik, meskipun web3.js telah ada lebih lama.
Di Solana, Anda mungkin akan bekerja dengan @solana/web3.js dan/atau JangkarSaya telah menemukan pustaka klien Anchor sebagai pilihan utama saya untuk membangun program Solana karena saya sudah menggunakan kerangka Anchor, dan saya menemukannya jauh lebih mudah dipahami kemudian@solana/web3.js.
Oracles memungkinkan pengembang untuk mengakses data dunia nyata & sistem eksternal dari dalam kontrak pintar.
Misalnya, sebagian besar aplikasi keuangan memerlukan pengetahuan tentang data & peristiwa dunia nyata yang terjadi di luar rantai, jadi Oracle sangat penting di DeFi.
Chainlinkadalah sebuah Oracle yang memungkinkan akses ke data dunia nyata dan komputasi di luar rantai sambil menjaga jaminan keamanan dan keandalan yang melekat pada teknologi blockchain.
Fluxadalah orakel lintas-rantai yang menyediakan kontrak pintar dengan akses ke umpan data yang aman secara ekonomi.
Radikula adalah protokol kolaborasi kode terdesentralisasi yang dibangun di Git. Ini bisa dianggap sebagai versi GitHub yang terdesentralisasi.
Rekan hidupadalah jaringan streaming video terdesentralisasi. Ini matang dan banyak digunakan dengan lebih dari 70.000 GPU aktif di jaringan.
Pos ini akan menjadi dokumen hidup yang akan saya terus ikuti saat saya belajar, bereksperimen, dan mengumpulkan umpan balik dari pengembang yang membangun di web3.
Jika Anda memiliki umpan balik atau ide seputar sesuatu yang saya lewatkan di sini, silakan hubungi dan bagikan pemikiran Anda dengan saya. Sangat menyenangkan melihat semua aktivitas yang terjadi di sekitar web3 karena pengembang melompat dan terlibat. Sementara infrastruktur masih berkembang, visi membangun protokol dan aplikasi yang benar-benar terdesentralisasi yang memungkinkan orang untuk berkoordinasi tanpa harus memberikan kekuatan dan kontrol kepada perusahaan besar adalah salah satu yang penting dan kami hampir membuat visi ini menjadi kenyataan.
Pada segmen berikutnya dari Membangun pada web3, insinyur pengembangan Edge & Node Nader Dabit menjelaskan lebih lanjut tentang tumpukan web3 dan bagaimana para pengembang dapat mengkonseptualisasikan berbagai aspek membangun pada web3.
Saya beralih ke web3 pada bulan April 2021 setelah menjadi pengembang full-stack tradisional selama sekitar 10 tahun. Saat menyelami semua teknologi dan gagasan baru ini, hal pertama yang ingin saya ketahui adalah "apa itu tumpukan web3?".
Saat membangun aplikasi web atau seluler tradisional, saya sering bergantung pada sejumlah blok bangunan untuk menyelesaikan pekerjaan.
Dengan menggunakan komponen inti ini, saya dapat membangun sebagian besar jenis aplikasi yang saya inginkan, atau setidaknya mendekati. Jadi, bagaimana tampilannya dalam web3?
Ternyata, jawaban atas hal ini tidaklah begitu langsung karena:
Saya juga kesulitan memahami cara memulai dan membangun aplikasi web3 karena saya mendekati masalah dengan cara yang sama seperti di dunia web2.
Setelah bekerja, melakukan riset, bereksperimen, dan membangun hal-hal selama kurang lebih 8 bulan terakhir, saya ingin berbagi apa yang telah saya pelajari.
Sebelum kita mendefinisikan tumpukan web3, mari kita coba mendefinisikan web3. Ada banyak definisi tergantung pada siapa yang Anda tanyakan, tetapi bagi saya saya menemukaninidefinisi spot on:
Web3 adalah tumpukan protokol yang memungkinkan aplikasi terdesentralisasi sepenuhnya.
Dengan tumpukan teknologi terdesentralisasi ini, kita dapat mulai membangun aplikasi terdesentralisasi yang memiliki implikasi dan karakteristik yang ditetapkan.
Beberapa karakteristik yang diaktifkan oleh web3 adalah:
Sementara beberapa aplikasi yang dibangun di atas tumpukan teknologi terdesentralisasi akan menggantikan pendahulunya, paradigma baru aplikasi juga telah dimungkinkan oleh primitif baru yang diaktifkan oleh blockchain.
Pembayaran digital asli dan infrastruktur belakang publik - seperti pembelajaran mesin, perangkat seluler, realitas virtual, dan blok bangunan teknologi lainnya - memungkinkan jenis aplikasi baru sepenuhnya dibangun, beberapa yang belum terbayangkan.
Apakah ini berarti bahwa segala sesuatu akan digantikan oleh web3? Tidak harus demikian. Meskipun saya berpikir bahwa membangun dengan tumpukan teknologi terdesentralisasi adalah pilihan yang jauh lebih baik untuk jenis aplikasi tertentu - seperti hampir setiap keputusan teknis, itu tergantung pada apa yang Anda bangun.
Mari mulai menjelajahi tumpukan web3 sekarang, dibagi menjadi serangkaian kategori ini:
Ada banyak blockchain yang dapat Anda pilih untuk dibangun. Tidak ada yang terbaik, sebaliknya Anda harus mempertimbangkan berbagai tradeoff di antara mereka.
Salah satu hal yang sering penting bagiku ketika belajar sesuatu yang baru adalah gagasan penerapannya Prinsip Paretoke apa yang saya pelajari, yaitu, apa cara paling efisien untuk mendapatkan manfaat maksimal dari jumlah waktu dan usaha tersebut. Mengikuti ide ini, saya dapat mencapai kemajuan dan momentum terbesar saat belajar hal baru dalam waktu sesingkat mungkin.
Di dunia Blockchain, belajar Solidity dan EVM(atau Mesin Virtual Ethereum) mungkin menjadi pilihan terbaik saat memulai sebagai pengembang blockchain. Dengan menggunakan keterampilan ini (dan tumpukan teknologi), Anda dapat membangun tidak hanya untuk Ethereum, tetapi juga untuk Layer 2 Ethereum lainnya, sidechain, dan bahkan blockchain lain seperti Avalanche, Fantom, dan Celo.
Dengan demikian, Rust mulai menjadi semakin populer di dunia blockchain, dengan Solana, NEAR, Polkadot, dan lainnya memiliki dukungan Rust kelas satu. Kamu mungkin tidak akan salah memilih mempelajari keduanya, tapi bagi pemula, saya akan mengatakan bahwa Solidity masih menjadi pilihan yang lebih baik jika seseorang bertanya kepada saya hari ini.
Selain saran itu, berikut adalah contoh yang tidak lengkap dari blockchain yang memiliki kombinasi teknologi, utilitas, komunitas, momentum, dan masa depan yang solid:
Ketika berinteraksi dengan jaringan, Anda perlu menggunakan titik akhir RPC.
Ada beberapa cara yang bisa Anda lakukan ini:
Titik akhir RPC publik sering kali disediakan oleh jaringan, tetapi untuk kebanyakan dapps produksi, Anda akan ingin memanfaatkan titik akhir Anda sendiri karena mereka tidak stabil atau direkomendasikan untuk produksi.
Ada beberapa penyedia layanan RPC di luar sana, berikut adalah beberapa:
Ada juga solusi web3 / terdesentralisasi, Jaringan Pocketyang sepertinya semakin populer.
Salah satu dari opsi-opsi ini mungkin merupakan pilihan yang baik untuk berinteraksi langsung dengan jaringan Anda.
Untuk pengembangan EVM, ada beberapa lingkungan pengembangan yang baik tersedia:
Untuk pengembangan Solana, JangkarSegera menjadi titik masuk bagi pengembang baru. Ini menyediakan CLI untuk membangun, dan menguji program Solana serta perpustakaan klien yang dapat Anda gunakan untuk membangun antarmuka. Ini juga termasuk DSL yang mengabstraksikan sebagian besar kompleksitas yang sering dihadapi pengembang saat mereka memulai pengembangan Solana dan Rust.
Di mana kita menyimpan gambar, video, dan file lainnya di web3? Menyimpan sesuatu sebesar itu di rantai biasanya terlalu mahal, jadi kita mungkin tidak ingin menyimpannya di sana.
Sebagai gantinya, kita dapat menggunakan salah satu dari beberapa protokol penyimpanan file:
Selain penyimpanan file dan penyimpanan on-chain, Anda mungkin juga perlu menyimpan data off-chain. Anda mungkin menggunakan jenis solusi ini dengan cara yang sama seperti Anda mungkin menggunakan database dalam tumpukan teknologi tradisional, tetapi alih-alih direplikasi di sejumlah node pada jaringan terdesentralisasi, dan oleh karena itu lebih dapat diandalkan (setidaknya dalam teori).
Beberapa opsi adalah:
Dalam hal kematangan, pendapat saya adalah bahwa ekosistem solusi penyimpanan luar rantai belum mencapai tingkat yang diperlukan untuk mengembangkan beberapa kasus penggunaan yang lebih canggih yang mungkin diinginkan oleh beberapa pengembang. Beberapa tantangan di sini adalah data real-time, deteksi konflik dan penyelesaian konflik, otorisasi penulisan, dokumentasi, dan pengalaman pengembang secara umum.
Mengintegrasikan solusi data offchain dengan protokol blockchain adalah salah satu rintangan besar terakhir yang perlu kita lewati sebelum kita memiliki tumpukan protokol terdesentralisasi sepenuhnya yang mampu mendukung segala jenis aplikasi.
Ada banyak perbedaan dalam cara kita berinteraksi dan membangun di atas blockchain dibandingkan basis data dalam tumpukan teknologi tradisional. Dengan blockchain, data tidak disimpan dalam format yang dapat dengan efisien atau mudah dikonsumsi langsung dari aplikasi atau antarmuka depan lainnya.
Blockchain dioptimalkan untuk operasi tulis. Anda sering mendengar inovasi yang terjadi berpusat di sekitar transaksi per detik, waktu blok, dan biaya transaksi. Data blockchain ditulis dalam blok seiring berjalannya waktu, membuat segala sesuatu selain operasi baca dasar menjadi tidak mungkin.
Dalam kebanyakan aplikasi, Anda membutuhkan fitur-fitur seperti data relasional, penyortiran, penyaringan, pencarian teks penuh, penomoran halaman, dan berbagai jenis kemampuan kueri lainnya. Untuk melakukannya, data perlu diindeks dan diorganisir untuk pengambilan yang efisien.
Secara tradisional, itulah pekerjaan yang dilakukan oleh basis data dalam tumpukan teknologi terpusat, tetapi lapisan pengindeksan itu tidak ada dalam tumpukan web3.
Grafikadalah protokol untuk mengindeks dan mengajukan pertanyaan tentang data blockchain yang membuat proses ini jauh lebih mudah dan menawarkan solusi terdesentralisasi untuk melakukannya. Siapa pun dapat membangun dan menerbitkan API GraphQL terbuka, yang disebut subgraf, membuat data blockchain mudah untuk ditanyakan.
Untuk mengetahui lebih lanjut tentang The Graph, lihat dokumendi siniatau panduanku di sini.
Identitas adalah paradigma yang benar-benar berbeda dalam web3. Di web2, otentikasi hampir selalu didasarkan pada informasi pribadi pengguna. Informasi ini biasanya dikumpulkan baik melalui formulir atau penyedia OAuth yang meminta pengguna untuk menyerahkannya sebagai pertukaran akses ke aplikasi.
Di web3, identitas sepenuhnya berkaitan dengan gagasan dompet dan kriptografi kunci publik.
Sementara nama “dompet” memenuhi tujuannya, saya menemukan bahwa orang yang baru mengenal web3 merasa bingung dengan istilah itu karena berkaitan dengan otentikasi dan identitas. Saya harap di masa depan kita dapat menemukan cara lain untuk menyampaikan apa itu dompet, karena ini menggabungkan aspek keuangan namun juga identitas dan reputasi.
Sebagai seorang pengembang, Anda perlu memahami bagaimana cara mengakses dan berinteraksi dengan dompet dan alamat pengguna dengan berbagai cara.
Pada level yang sangat dasar (dan kebutuhan yang sangat umum), Anda mungkin ingin meminta akses ke dompet pengguna. Untuk melakukan ini, biasanya Anda akan dapat mengakses dompet pengguna dalam konteks jendela (peramban web) atau menggunakan sesuatu seperti WalletConnectatauAdapter Dompet Solana.
Sebagai contoh, jika mereka memiliki dompet Ethereum yang tersedia, Anda akan dapat mengakses window.ethereum. Sama halnya dengan Solana (window.solana), Arweave (window.arweaveWallet), dan beberapa lainnya. WalletConnect bagus untuk web seluler dan React Native karena memungkinkan pengguna untuk memberikan izin menggunakan dompet seluler mereka langsung dari perangkat.
Jika Anda ingin menangani otentikasi sendiri, Anda dapat mengizinkan pengguna untuk menandatangani transaksi dan kemudian mendekodekannya di suatu tempat untuk mengotentikasi pengguna, tetapi ini biasanya memerlukan server.Di siniadalah contoh bagaimana itu mungkin terlihat menggunakan dompet EVM, dandi sinimerupakan contoh bagaimana melakukan hal ini dengan Solana / Phantom.
Bagaimana dengan mengelola profil pengguna secara terdesentralisasi?Jaringan Keramikmenawarkan protokol paling kuat dan rangkaian alat untuk mengelola identitas terdesentralisasi. Mereka baru-baru ini merilis sebuah kiriman blogmenguraikan beberapa pembaruan terbaru mereka dan memberikan beberapa panduan tentang bagaimana semua alat bekerja bersama. Saya akan memulai dari situ dan kemudian menjelajahidokumen merekauntuk memahami bagaimana memulai membangun, dan pertimbangkan untuk melihat proyek contoh sayadi siniyang menggunakan Keramik self.id.
Jika Anda ingin mengambil ENScatatan teks, perpustakaan ENSJS menawarkan API yang bagus untuk mengambil data pengguna:
const ens = baru ENS({ penyedia, alamatEns: dapatkanAlamatEns(‘1’) })
const content = await ens.name('sha.eth').getText('avatar')
SpruceIDjuga sesuatu yang terlihat menjanjikan tetapi saya belum mencobanya.
Keramik dan Spruce keduanya menerapkan W3C DIDspesifikasi, yang juga saya anggap sebagai blok bangunan web3. Dengan demikian, implementasi terpusat DIDs melanggar ide dari apa yang spesifikasi coba capai.
Sejauh yang terkait dengan kerangka kerja JavaScript, Anda benar-benar dapat membangun dengan apapun yang Anda inginkan, karena SDK blockchain sisi klien sebagian besar tidak tergantung pada kerangka kerja. Dengan demikian, sebagian besar proyek dan contoh dibangun dengan React. Ada juga beberapa pustaka seperti Adapter Dompet Solanayang menawarkan utilitas tambahan untuk React, jadi saya akan mengatakan bahwa belajar atau akrab dengan React mungkin akan menjadi langkah cerdas.
Untuk SDK sisi klien di Ethereum ada web3.js dan ethers.jsBagi saya, Ethers lebih mudah diakses dan memiliki dokumentasi yang lebih baik, meskipun web3.js telah ada lebih lama.
Di Solana, Anda mungkin akan bekerja dengan @solana/web3.js dan/atau JangkarSaya telah menemukan pustaka klien Anchor sebagai pilihan utama saya untuk membangun program Solana karena saya sudah menggunakan kerangka Anchor, dan saya menemukannya jauh lebih mudah dipahami kemudian@solana/web3.js.
Oracles memungkinkan pengembang untuk mengakses data dunia nyata & sistem eksternal dari dalam kontrak pintar.
Misalnya, sebagian besar aplikasi keuangan memerlukan pengetahuan tentang data & peristiwa dunia nyata yang terjadi di luar rantai, jadi Oracle sangat penting di DeFi.
Chainlinkadalah sebuah Oracle yang memungkinkan akses ke data dunia nyata dan komputasi di luar rantai sambil menjaga jaminan keamanan dan keandalan yang melekat pada teknologi blockchain.
Fluxadalah orakel lintas-rantai yang menyediakan kontrak pintar dengan akses ke umpan data yang aman secara ekonomi.
Radikula adalah protokol kolaborasi kode terdesentralisasi yang dibangun di Git. Ini bisa dianggap sebagai versi GitHub yang terdesentralisasi.
Rekan hidupadalah jaringan streaming video terdesentralisasi. Ini matang dan banyak digunakan dengan lebih dari 70.000 GPU aktif di jaringan.
Pos ini akan menjadi dokumen hidup yang akan saya terus ikuti saat saya belajar, bereksperimen, dan mengumpulkan umpan balik dari pengembang yang membangun di web3.
Jika Anda memiliki umpan balik atau ide seputar sesuatu yang saya lewatkan di sini, silakan hubungi dan bagikan pemikiran Anda dengan saya. Sangat menyenangkan melihat semua aktivitas yang terjadi di sekitar web3 karena pengembang melompat dan terlibat. Sementara infrastruktur masih berkembang, visi membangun protokol dan aplikasi yang benar-benar terdesentralisasi yang memungkinkan orang untuk berkoordinasi tanpa harus memberikan kekuatan dan kontrol kepada perusahaan besar adalah salah satu yang penting dan kami hampir membuat visi ini menjadi kenyataan.