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.
Ternyata, jawaban atas hal ini tidaklah begitu langsung karena:
Setelah bekerja, melakukan riset, bereksperimen, dan membangun hal-hal selama kurang lebih 8 bulan terakhir, saya ingin berbagi apa yang telah saya pelajari.
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:
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:

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:
Ada beberapa cara yang bisa Anda lakukan ini:
Ada beberapa penyedia layanan RPC di luar sana, berikut adalah beberapa:
Salah satu dari opsi-opsi ini mungkin merupakan pilihan yang baik untuk berinteraksi langsung dengan jaringan Anda.
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:
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.
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.
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.
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.
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.
Rekan hidupadalah jaringan streaming video terdesentralisasi. Ini matang dan banyak digunakan dengan lebih dari 70.000 GPU aktif di jaringan.
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.





