Lesson 2

Teknologi di Balik Grafik

Menyelami arsitektur The Graph, kami menemukan sebuah sistem yang kompleks namun terstruktur dengan elegan yang mendukung mekanisme kueri yang terdesentralisasi dalam ekosistem blockchain. Kerangka kerja yang rumit ini, yang berpusat di sekitar Graph Node, mengatur integrasi yang mulus dari berbagai komponen, yang masing-masing memainkan peran penting dalam fungsi jaringan yang efisien.

Simpul Graf: Pembangkit Tenaga Pengindeksan

Inti dari arsitektur The Graph terletak pada Graph Node. Komponen utama ini bertanggung jawab untuk mengindeks subgraf dan membuat data yang dihasilkan dapat diakses melalui API GraphQL. Ini adalah inti dari tumpukan pengindeks, dan pengoperasiannya yang efektif sangat penting untuk menjalankan pengindeks yang sukses. Graph Node beroperasi dengan keserbagunaan, mampu berjalan di lingkungan bare metal dan cloud, yang mencerminkan kemampuan beradaptasi yang dibutuhkan dalam lanskap dinamis teknologi blockchain.

Menyimpan Data dalam Basis Data PostgreSQL

Bagian integral dari operasi Graph Node adalah basis data PostgreSQL, yang bertindak sebagai penyimpanan utama. Basis data ini tidak hanya menyimpan data subgraf tetapi juga metadata tentang subgraf dan data jaringan yang penting seperti cache blok dan eth_call. Organisasi dan manajemen basis data ini sangat penting untuk kelancaran operasi Graph Node, memastikan integritas dan aksesibilitas data.

Klien Jaringan dan Selang Pemadam Kebakaran

Untuk mengindeks jaringan blockchain, Graph Node terhubung ke klien jaringan melalui API JSON-RPC yang kompatibel dengan EVM. Pengaturan ini dapat bervariasi, mulai dari menghubungkan ke satu klien hingga pengaturan yang lebih kompleks yang melibatkan penyeimbangan beban di beberapa klien. Selain itu, The Graph telah mengembangkan Network Firehoses - sebuah layanan gRPC yang menyediakan aliran blok yang teratur dan sadar akan percabangan. Meskipun saat ini tidak menjadi persyaratan bagi pengindeks, Firehose mewakili kemajuan yang signifikan dalam mendukung pengindeksan yang berkinerja baik dalam skala besar.

Metadata pada Node IPFS dan Pemantauan dengan Prometheus

Interaksi Graph Node dengan jaringan IPFS sangat penting untuk menyimpan metadata penyebaran subgraf. Node IPFS yang dihosting di tingkat jaringan menyederhanakan proses ini untuk pengindeks. Selain itu, integrasi opsional dengan server metrik Prometheus untuk pemantauan dan pelaporan menambahkan lapisan kecanggihan lain, memungkinkan pengindeks untuk melacak dan mengoptimalkan kinerja Graph Node.

Skalabilitas dan Konfigurasi Lanjutan

Pengaturan fleksibel dari Graph Node, mulai dari opsi instalasi hingga kemampuan penskalaan, menyoroti komitmen The Graph untuk mengakomodasi berbagai kebutuhan operasional. Sistem ini dapat diskalakan secara horizontal dengan beberapa Graph Node dan basis data, sehingga dapat memenuhi kebutuhan jaringan yang terus meningkat. Pengguna tingkat lanjut dapat memanfaatkan opsi konfigurasi Graph Node, yang dikelola melalui file TOML atau variabel lingkungan, untuk mengoptimalkan pemrosesan data dan distribusi beban kerja.

Pengindeksan dan Pemrosesan Data: Firehose dan Substreams Didefinisikan Ulang

Firehose: Menemukan Kembali Ekstraksi Data Blockchain

Firehose, yang dikonseptualisasikan dan dikembangkan oleh StreamingFast, menandai sebuah revolusi dalam mengekstraksi data dari node blockchain. Alat inovatif ini memecah setiap transaksi dalam blok blockchain menjadi elemen-elemen terkecilnya, menyimpannya sebagai file datar yang sederhana. File datar ini bukan hanya format penyimpanan; file ini mewujudkan pergeseran paradigma dalam pengindeksan data. Mereka memfasilitasi pemrosesan paralel, yang secara drastis mempercepat operasi pengindeksan. Teknologi ini memberikan data yang kaya dan sadar akan fork dari node blockchain yang terinstrumentasi langsung ke konsumen. Secara praktis, Firehose telah menunjukkan kehebatannya dengan menawarkan kecepatan pengambilan dan pemrosesan yang dulunya dianggap tidak dapat dicapai, sehingga menetapkan standar baru untuk ekstraksi data dalam ekosistem The Graph.

Substreams: Mempelopori Pemrosesan Data yang Efisien

Substreams, perpanjangan dari kemampuan yang disediakan oleh Firehose, dirancang untuk pemrosesan data berkinerja tinggi secara paralel dan mengutamakan streaming. Modul-modul yang ditulis dalam bahasa Rust ini memungkinkan para pengembang untuk menyusun, mengurutkan, menyimpan, dan mengubah data blockchain untuk berbagai macam penggunaan. Kecerdikan Substreams terletak pada kemampuannya untuk memanfaatkan file datar Firehose untuk mengindeks data pada kecepatan yang sangat cepat. Pendekatan ini memastikan bahwa Substreams tidak hanya sangat efisien dalam memproses data, tetapi juga dalam mendistribusikannya segera setelah data tersedia, daripada bergantung pada permintaan yang terus menerus.

Kombinasi Firehose dan Substreams

Integrasi Firehose dan Substreams dalam ekosistem The Graph memberikan kombinasi yang kuat untuk pemrosesan data. Firehose memastikan pengiriman data blockchain yang cepat dalam format yang dioptimalkan, sementara Substreams menyempurnakan dan memproses data ini lebih lanjut. Hubungan sinergis ini menghasilkan efisiensi yang tak tertandingi dalam menangani data blockchain dalam jumlah besar, yang secara signifikan meningkatkan kemampuan The Graph.

Subgraf: Standar Industri dalam Pengindeksan Data

Subgraf telah menjadi standar industri dalam mengindeks data blockchain sejak diperkenalkan oleh The Graph pada tahun 2018. Pada dasarnya, mereka adalah API terbuka yang mengekstrak, memproses, dan menyimpan data dari blockchain, sehingga membuatnya mudah di-query melalui antarmuka GraphQL. Dengan lebih dari 85.000 subgraf yang didukung di lebih dari 40 rantai, subgraf telah menjadi sangat diperlukan bagi pengembang web3. Mereka memungkinkan penyebaran database Postgres yang diisi dengan data yang diindeks dengan cepat, siap untuk ditanyakan menggunakan lapisan GraphQL. Subgraf memungkinkan pengembang untuk menampilkan beragam data blockchain di DApps mereka, mulai dari transaksi DeFi hingga asal usul NFT, dengan cara yang terorganisir dan efisien.

Dalam lanskap teknologi blockchain yang terus berkembang, subgraf telah muncul sebagai sebuah konsep yang sangat penting, yang mengubah cara kita berinteraksi dan memanfaatkan data blockchain. API terbuka ini bertindak sebagai perantara, menjembatani kesenjangan antara dunia blockchain yang terdesentralisasi dan dunia data terstruktur yang sudah dikenal. Dengan mengekstraksi, memproses, dan mengatur data blockchain ke dalam format yang dapat ditanyakan, subgraf memberdayakan para pengembang untuk membangun aplikasi yang inovatif dan berbasis data.

Subgraf menawarkan banyak sekali manfaat, menjadikannya pilihan yang menarik bagi para pengembang dan pengguna. Sifatnya yang terdesentralisasi memastikan ketahanan terhadap penyensoran dan waktu henti, mendorong ekosistem data yang aman dan andal. Selain itu, subgraf pada dasarnya dapat diskalakan, mampu menangani data dalam jumlah besar tanpa mengorbankan kinerja. Efektivitas biaya adalah keuntungan utama lainnya, dengan subgraf yang sering kali lebih terjangkau daripada API data tradisional.

Arsitektur Subgraf

Subgraf terdiri dari tiga komponen penting yang bekerja secara harmonis untuk memberikan kemampuan transformatifnya:

  1. Manifes: Manifes berfungsi sebagai cetak biru dari subgraf, yang menguraikan sumber data, skema, dan kode AssemblyScript. Ini mendefinisikan batas-batas data yang akan diindeks oleh subgraf, memastikan bahwa hanya informasi yang relevan yang ditangkap.

  2. Skema: Skema mendefinisikan struktur data, mirip dengan cetak biru bangunan. Ini menguraikan entitas, bidang, dan hubungan antara entitas, memberikan cara yang jelas dan terorganisir untuk merepresentasikan data.

  3. Kode AssemblyScript: Kode yang dapat dieksekusi ini bertindak sebagai pekerja keras dari subgraf, menerjemahkan data mentah dari blockchain ke dalam format yang dapat dipahami oleh mesin GraphQL. Sistem ini juga menangani pengindeksan dan penyimpanan data, memastikan aksesibilitas dan keandalannya.

Proses Pengembangan Subgraf

Membuat subgraf memerlukan serangkaian langkah, masing-masing dibuat dengan hati-hati untuk memastikan fungsionalitas dan efektivitas subgraf:

  1. Membuat Konsep dan Merancang: Perjalanan dimulai dengan gagasan yang jelas tentang data yang akan diindeks dan aplikasi yang akan didukungnya. Hal ini melibatkan pendefinisian entitas, field, dan hubungan di antara mereka, memastikan bahwa struktur subgraf selaras dengan tujuan yang dimaksudkan.

  2. Pengembangan Manifes dan Skema: Manifes dan skema dibuat dengan sangat teliti, menyediakan fondasi untuk arsitektur data subgraf. Manifes menentukan sumber data, sedangkan skema menguraikan struktur data, memastikan integritas dan konsistensi data.

  3. Implementasi Kode AssemblyScript: Kode AssemblyScript ditulis, menerjemahkan data blockchain mentah ke dalam format yang dapat dimengerti oleh GraphQL. Sistem ini menangani pengindeksan, penyimpanan, dan pengambilan data, sehingga memungkinkan akses yang efisien ke data yang diindeks.

Menyebarkan dan Menerbitkan Subbagian

Setelah subgraf dikembangkan, subgraf tersebut menjalani proses penyebaran yang memperkenalkannya ke dunia:

  1. Integrasi Subgraph Studio: Subgraph Studio berfungsi sebagai platform terpusat untuk mengelola subgraf. Ini memfasilitasi proses penyebaran, memungkinkan pengembang untuk mempublikasikan subgraf mereka ke jaringan yang terdesentralisasi.

  2. Pengindeksan dan Kurasi: Pengindeks, yang bertanggung jawab untuk mengambil dan menyimpan data blockchain, sangat penting untuk membuat subgraf dapat diakses oleh pengembang. Kurasi, biasanya dilakukan melalui token GRT, memberi insentif kepada pengindeks untuk memprioritaskan subgraf dengan permintaan tinggi.

  3. Melakukan Query dan Pemanfaatan: Pengembang sekarang dapat melakukan kueri pada subgraf yang digunakan menggunakan kueri GraphQL, mengambil data spesifik yang disesuaikan dengan kebutuhan aplikasi mereka. Integrasi tanpa batas ini memberdayakan para pengembang untuk memanfaatkan data blockchain untuk inovasi.

Masa Depan: Era Baru Grafik

Saat The Graph memulai Era Barunya (Kita akan menjelajahinya di Pelajaran 5), evolusi berkelanjutan dari teknologi inti ini - subgraf, Firehose, dan Substreams - sangat dinantikan. Komponen-komponen ini akan terus berkembang dan berevolusi, memainkan peran penting dalam memperkenalkan layanan data baru dan memastikan aliran data yang lebih cepat dan lebih modular. Verifiable Firehose, sebagai contoh, siap untuk menjadi solusi terobosan untuk mengakses data historis Ethereum, menjawab tantangan standar blockchain yang terus berkembang.

Membedakan Subgraf dari Subaliran

Sangat penting untuk membedakan antara subgraf dan Substream karena keduanya memiliki tujuan yang berbeda. Subgraf sangat ideal untuk pengambilan dan pengelolaan data standar, menawarkan kemudahan pengaturan dan penggunaan dengan lapisan kueri GraphQL. Sebaliknya, Substreams dirancang untuk kebutuhan analitik dan data besar yang lebih kompleks, menawarkan pemrosesan data yang diparalelkan dan fleksibilitas yang lebih besar dalam penanganan dan penyimpanan data. Substreams memungkinkan pengembang untuk mengubah data dari format file dasar menjadi bentuk yang lebih dapat digunakan, memenuhi kebutuhan pemrosesan data yang canggih.

Mengatur Data di Luar Rantai: Pendekatan Grafik dan Dampaknya pada Pipeline Data Web3

Graph, yang secara tradisional dikenal dengan kehebatannya dalam mengatur data on-chain, kini memperluas cakrawala dengan merambah ke ranah data off-chain. Pendekatan ini sejalan dengan misi jangka panjang The Graph untuk menyediakan akses yang mudah ke pengetahuan dan informasi publik dunia.

Web3 dan Pengorbanan dalam Manajemen Data

Dalam arsitektur Web3, meskipun pengguna dapat berinteraksi langsung dengan blockchain melalui layanan middleware, ada trade-off, terutama dalam hal biaya. Biaya transaksi on-chain, yang sering disebut sebagai biaya gas, bisa sangat tinggi untuk komputasi yang kompleks atau penyimpanan data yang luas. Keterbatasan ini secara historis telah membatasi kompleksitas aplikasi atau mengarahkan pengembang untuk membuat API off-chain yang bersifat eksklusif, yang berangkat dari model sumber terbuka.

Solusi Unik Graph untuk Data Off-chain

Graph menyajikan solusi unik untuk tantangan ini dengan memungkinkan pengorganisasian dan penyajian data off-chain melalui jaringan terdesentralisasi. Metode ini melibatkan alur kerja di mana data off-chain secara tradisional diposting ke IPFS (InterPlanetary File System), dan hash IPFS kemudian direkam secara on-chain. Selanjutnya, data ini dapat diindeks berdasarkan subgraf dan tersedia untuk kueri. Pendekatan ini menawarkan cara yang terukur dan ekonomis untuk mempublikasikan dan menyajikan data yang kompleks dan dinamis tanpa biaya tambahan untuk membangun dan memelihara API yang eksklusif.

Alur Kerja: Proses Tiga Langkah

Alur kerja terdiri dari tiga komponen utama:

  1. Pekerjaan Cron untuk Komputasi dan Posting Data: Pekerjaan cron off-chain melakukan komputasi yang kompleks dan mem-posting hasilnya ke sumber permaweb, seperti IPFS, yang dapat diindeks oleh The Graph. Pekerjaan ini juga menghasilkan transaksi on-chain untuk memposting hash file IPFS dan metadata yang relevan.

  2. Publikasi Subgraf untuk Pengindeksan: Langkah selanjutnya melibatkan penerbitan subgraf yang mengindeks file IPFS ini berdasarkan hash file yang diposting di rantai. Setelah subgraf diterbitkan, subgraf tersebut dapat diambil dan dilayani oleh Pengindeks di jaringan The Graph, yang memungkinkan pengembang dan pengguna pihak ketiga untuk meminta data.

  3. Akses Data yang Kuat dan Andal: Dengan memanfaatkan jaringan pengindeks The Graph yang terdistribusi, akses data tetap kuat dan dapat diandalkan tanpa upaya tambahan dari penerbit data. Struktur terdesentralisasi ini secara signifikan meningkatkan ketersediaan dan integritas data.

Implementasi Praktis dan Efisiensi Biaya

Contoh praktis dalam ekosistem The Graph adalah oracle yang dikembangkan oleh Edge & Node untuk mempublikasikan biaya jaringan dan metrik kualitas layanan. Oracle ini memposting data agregat ke IPFS setiap lima menit dan mencatat hash file IPFS pada rantai Gnosis. Data ini kemudian diindeks dalam subgraf, yang dapat dikonsumsi oleh para pemangku kepentingan protokol. Biaya yang terkait dengan alur kerja ini ternyata sangat rendah, sehingga menjadikannya pilihan yang menarik bagi penerbit data.

Kemungkinan Baru dengan Data Dinamis

Metode penggunaan The Graph untuk data dinamis ini membuka kemungkinan-kemungkinan baru yang menarik untuk situs permaweb, termasuk back-end yang ramping untuk blog, kurasi konten algoritmik, dan sistem pemantauan real-time. Hal ini mewakili perubahan signifikan dalam cara data dipublikasikan, diindeks, dan diakses, mempromosikan ekosistem web3 yang lebih terbuka dan kolaboratif.

Mengatur Data di Luar Rantai: Pendekatan Inovatif dari Graph

Ekspansi Graph ke dalam pengelolaan data off-chain membuka jalan baru dalam ekosistem Web3, menciptakan jembatan antara ranah data terdesentralisasi dan tradisional. Inisiatif ini mencerminkan misi The Graph untuk membuat spektrum informasi yang lebih luas dapat diakses dengan cara yang terdesentralisasi, mengatasi keterbatasan yang melekat pada penyimpanan dan komputasi data on-chain.

Menyeimbangkan Kebutuhan Data On-chain dan Off-chain

Grafik ini mengenali trade-off terkait biaya penyimpanan data on-chain dan komputasi dalam arsitektur Web3. Meskipun interaksi langsung dengan blockchain sangat mudah, komputasi yang rumit dan penyimpanan data berskala besar dapat menjadi sangat mahal. Untuk menghindari keterbatasan ini, The Graph memperkenalkan metode yang menggabungkan penyimpanan data off-chain dengan referensi data on-chain, sehingga mempertahankan etos desentralisasi sambil meningkatkan fungsionalitas.

Metodologi Grafik untuk Data Off-chain

Pendekatan ini melibatkan alur kerja tiga langkah:

  1. Komputasi Off-chain dan Posting IPFS: Komputasi kompleks dilakukan secara off-chain, dan data yang dihasilkan diposting ke IPFS, sebuah solusi penyimpanan yang terdesentralisasi. Langkah ini memastikan bahwa data, meskipun di luar rantai, disimpan dengan cara yang dapat diverifikasi dan terdesentralisasi.

  2. Menghubungkan secara on-chain melalui Transaksi: Bersamaan dengan menyimpan data pada IPFS, transaksi on-chain yang sesuai dibuat untuk mencatat hash IPFS dan metadata terkait lainnya. Metode ini menambatkan data off-chain ke blockchain, memberikan lapisan kepercayaan dan ketertelusuran.

  3. Pengindeksan Subgraf untuk Aksesibilitas: Langkah terakhir melibatkan pengindeksan data yang disimpan di IPFS menggunakan subgraf. Proses ini membuat data off-chain dapat dengan mudah ditelusuri dan diakses melalui jaringan terdesentralisasi The Graph.
    Implementasi Praktis: Edge & Node's Oracle

Aplikasi praktis dari metodologi ini dalam ekosistem The Graph adalah oracle yang dikembangkan oleh Edge & Node. Oracle ini mempublikasikan metrik biaya jaringan dan kualitas layanan setiap lima menit dengan cara berikut:

  • Data agregat dikirim ke IPFS.

  • Hash file IPFS yang sesuai kemudian dicatat pada rantai Gnosis melalui kontrak DataEdge.

  • File-file IPFS ini diindeks dalam subgraf, sehingga data tersedia bagi para pemangku kepentingan dengan cara yang terdesentralisasi.
    Implementasi ini menunjukkan pendekatan berbiaya rendah, terukur, dan efisien untuk menerbitkan dan menyajikan data yang kompleks tanpa memerlukan API eksklusif. Ini mencontohkan bagaimana metode The Graph dapat dimanfaatkan untuk membuat sumber data dinamis untuk berbagai aplikasi.

Efisiensi dan Skalabilitas Biaya

Biaya yang terkait dengan alur kerja ini ternyata sangat rendah, menjadikannya solusi yang menarik bagi para penerbit data. Misalnya, implementasi oracle oleh Edge & Node mengeluarkan biaya minimal untuk transaksi on-chain dan penyematan node IPFS, dengan biaya penyajian yang ditanggung oleh konsumen data. Model ini secara efektif mengurangi biaya operasional untuk penerbit data sekaligus memastikan akses data yang kuat dan andal.

Mengaktifkan Kasus Penggunaan Web3 Baru

Metode ini membuka kemungkinan-kemungkinan baru untuk aplikasi permaweb, seperti back-end dinamis untuk blog, kurasi konten algoritmik, dan sistem pemantauan real-time. Hal ini memungkinkan untuk mempartisi penerbit data dari operator aplikasi/front-end, mendorong spesialisasi dan pembagian kerja dalam komunitas sumber terbuka. Pendekatan ini menjanjikan untuk aplikasi dan protokol sosial yang terdesentralisasi, menawarkan jalan baru ke depan untuk publikasi dan konsumsi data yang terdesentralisasi.

Bahasa Query dan API dalam Graph: Merangkul GraphQL

Integrasi GraphQL sebagai bahasa kueri pilihan. Keputusan ini secara signifikan membentuk cara data diakses dan berinteraksi melalui API The Graph, menyediakan metode yang efisien dan efisien untuk menanyakan data blockchain.

Memahami Peran GraphQL dalam Grafik

GraphQL berada di garis depan dalam desain API modern, menawarkan pendekatan yang fleksibel dan efisien untuk pengambilan data. Dalam konteks blockchain, di mana struktur data sangat kompleks dan terus berkembang, kemampuan GraphQL untuk mengambil apa yang dibutuhkan menjadi sangat berharga.

  1. Kueri Data yang Disesuaikan: Inti dari daya tarik GraphQL adalah kemampuannya untuk memungkinkan klien mendefinisikan struktur data yang mereka butuhkan secara tepat. Kemampuan ini merupakan perubahan yang signifikan dari respons struktur tetap tradisional, memungkinkan interaksi data yang lebih terfokus dan efisien.

  2. Meningkatkan Interaksi Waktu Nyata: Lebih dari sekadar kueri, GraphQL dalam The Graph mendukung langganan data secara real-time. Fitur ini sangat penting untuk aplikasi blockchain di mana pembaruan tepat waktu dan daya tanggap adalah kunci pengalaman pengguna.

  3. Akses Data yang Terdesentralisasi dan Tanpa Kepercayaan: Penggunaan GraphQL oleh Graph memperluas filosofi desentralisasi ke dalam ranah akses data. Dengan berinteraksi dengan jaringan node yang terdesentralisasi, kueri GraphQL memastikan bahwa data tetap terbuka, transparan, dan tahan sensor.
    Konvergensi API dan GraphQL

Dalam ekosistem The Graph, penggabungan API dengan GraphQL menciptakan sistem yang harmonis dan kuat untuk pengambilan data:

  1. Definisi Skema dan Pemetaan Data: Pengembang mendefinisikan skema GraphQL di dalam subgraf mereka, yang menguraikan struktur data yang dapat ditanyakan. Skema ini kemudian dipetakan secara rumit ke peristiwa blockchain, menerjemahkan aktivitas on-chain ke dalam data terstruktur.

  2. Mengeksekusi Kueri melalui Pengindeks: Ketika kueri GraphQL dikirimkan ke API subgraf, kueri tersebut diproses oleh jaringan Pengindeks terdesentralisasi The Graph. Proses ini mencontohkan bagaimana kueri dieksekusi secara terdistribusi, dengan menjunjung tinggi prinsip-prinsip teknologi blockchain.

  3. Menangani Hubungan Data yang Kompleks: Dengan hubungan data yang kompleks menjadi hal yang biasa dalam blockchain, kemampuan GraphQL untuk menangani kueri yang rumit, termasuk berbagai bentuk pemfilteran dan penyortiran data, sangat bermanfaat.

Manfaat yang Terungkap bagi Pengembang dan Pengguna Akhir

Integrasi GraphQL dalam The Graph memberikan banyak manfaat:

  • Fleksibilitas untuk Pengembang: Para pengembang dapat memanfaatkan kekuatan penuh GraphQL untuk membuat kueri yang selaras dengan kebutuhan aplikasi mereka.
  • Pengambilan Data yang Efisien: Waktu pengambilan data yang berkurang meningkatkan kinerja aplikasi, yang secara langsung menghasilkan pengalaman pengguna akhir yang lebih baik.
  • Integrasi Data yang mulus: Sifat standar dari kueri GraphQL menyederhanakan proses mengintegrasikan beragam sumber data blockchain ke dalam aplikasi.
Disclaimer
* Crypto investment involves significant risks. Please proceed with caution. The course is not intended as investment advice.
* The course is created by the author who has joined Gate Learn. Any opinion shared by the author does not represent Gate Learn.
Catalog
Lesson 2

Teknologi di Balik Grafik

Menyelami arsitektur The Graph, kami menemukan sebuah sistem yang kompleks namun terstruktur dengan elegan yang mendukung mekanisme kueri yang terdesentralisasi dalam ekosistem blockchain. Kerangka kerja yang rumit ini, yang berpusat di sekitar Graph Node, mengatur integrasi yang mulus dari berbagai komponen, yang masing-masing memainkan peran penting dalam fungsi jaringan yang efisien.

Simpul Graf: Pembangkit Tenaga Pengindeksan

Inti dari arsitektur The Graph terletak pada Graph Node. Komponen utama ini bertanggung jawab untuk mengindeks subgraf dan membuat data yang dihasilkan dapat diakses melalui API GraphQL. Ini adalah inti dari tumpukan pengindeks, dan pengoperasiannya yang efektif sangat penting untuk menjalankan pengindeks yang sukses. Graph Node beroperasi dengan keserbagunaan, mampu berjalan di lingkungan bare metal dan cloud, yang mencerminkan kemampuan beradaptasi yang dibutuhkan dalam lanskap dinamis teknologi blockchain.

Menyimpan Data dalam Basis Data PostgreSQL

Bagian integral dari operasi Graph Node adalah basis data PostgreSQL, yang bertindak sebagai penyimpanan utama. Basis data ini tidak hanya menyimpan data subgraf tetapi juga metadata tentang subgraf dan data jaringan yang penting seperti cache blok dan eth_call. Organisasi dan manajemen basis data ini sangat penting untuk kelancaran operasi Graph Node, memastikan integritas dan aksesibilitas data.

Klien Jaringan dan Selang Pemadam Kebakaran

Untuk mengindeks jaringan blockchain, Graph Node terhubung ke klien jaringan melalui API JSON-RPC yang kompatibel dengan EVM. Pengaturan ini dapat bervariasi, mulai dari menghubungkan ke satu klien hingga pengaturan yang lebih kompleks yang melibatkan penyeimbangan beban di beberapa klien. Selain itu, The Graph telah mengembangkan Network Firehoses - sebuah layanan gRPC yang menyediakan aliran blok yang teratur dan sadar akan percabangan. Meskipun saat ini tidak menjadi persyaratan bagi pengindeks, Firehose mewakili kemajuan yang signifikan dalam mendukung pengindeksan yang berkinerja baik dalam skala besar.

Metadata pada Node IPFS dan Pemantauan dengan Prometheus

Interaksi Graph Node dengan jaringan IPFS sangat penting untuk menyimpan metadata penyebaran subgraf. Node IPFS yang dihosting di tingkat jaringan menyederhanakan proses ini untuk pengindeks. Selain itu, integrasi opsional dengan server metrik Prometheus untuk pemantauan dan pelaporan menambahkan lapisan kecanggihan lain, memungkinkan pengindeks untuk melacak dan mengoptimalkan kinerja Graph Node.

Skalabilitas dan Konfigurasi Lanjutan

Pengaturan fleksibel dari Graph Node, mulai dari opsi instalasi hingga kemampuan penskalaan, menyoroti komitmen The Graph untuk mengakomodasi berbagai kebutuhan operasional. Sistem ini dapat diskalakan secara horizontal dengan beberapa Graph Node dan basis data, sehingga dapat memenuhi kebutuhan jaringan yang terus meningkat. Pengguna tingkat lanjut dapat memanfaatkan opsi konfigurasi Graph Node, yang dikelola melalui file TOML atau variabel lingkungan, untuk mengoptimalkan pemrosesan data dan distribusi beban kerja.

Pengindeksan dan Pemrosesan Data: Firehose dan Substreams Didefinisikan Ulang

Firehose: Menemukan Kembali Ekstraksi Data Blockchain

Firehose, yang dikonseptualisasikan dan dikembangkan oleh StreamingFast, menandai sebuah revolusi dalam mengekstraksi data dari node blockchain. Alat inovatif ini memecah setiap transaksi dalam blok blockchain menjadi elemen-elemen terkecilnya, menyimpannya sebagai file datar yang sederhana. File datar ini bukan hanya format penyimpanan; file ini mewujudkan pergeseran paradigma dalam pengindeksan data. Mereka memfasilitasi pemrosesan paralel, yang secara drastis mempercepat operasi pengindeksan. Teknologi ini memberikan data yang kaya dan sadar akan fork dari node blockchain yang terinstrumentasi langsung ke konsumen. Secara praktis, Firehose telah menunjukkan kehebatannya dengan menawarkan kecepatan pengambilan dan pemrosesan yang dulunya dianggap tidak dapat dicapai, sehingga menetapkan standar baru untuk ekstraksi data dalam ekosistem The Graph.

Substreams: Mempelopori Pemrosesan Data yang Efisien

Substreams, perpanjangan dari kemampuan yang disediakan oleh Firehose, dirancang untuk pemrosesan data berkinerja tinggi secara paralel dan mengutamakan streaming. Modul-modul yang ditulis dalam bahasa Rust ini memungkinkan para pengembang untuk menyusun, mengurutkan, menyimpan, dan mengubah data blockchain untuk berbagai macam penggunaan. Kecerdikan Substreams terletak pada kemampuannya untuk memanfaatkan file datar Firehose untuk mengindeks data pada kecepatan yang sangat cepat. Pendekatan ini memastikan bahwa Substreams tidak hanya sangat efisien dalam memproses data, tetapi juga dalam mendistribusikannya segera setelah data tersedia, daripada bergantung pada permintaan yang terus menerus.

Kombinasi Firehose dan Substreams

Integrasi Firehose dan Substreams dalam ekosistem The Graph memberikan kombinasi yang kuat untuk pemrosesan data. Firehose memastikan pengiriman data blockchain yang cepat dalam format yang dioptimalkan, sementara Substreams menyempurnakan dan memproses data ini lebih lanjut. Hubungan sinergis ini menghasilkan efisiensi yang tak tertandingi dalam menangani data blockchain dalam jumlah besar, yang secara signifikan meningkatkan kemampuan The Graph.

Subgraf: Standar Industri dalam Pengindeksan Data

Subgraf telah menjadi standar industri dalam mengindeks data blockchain sejak diperkenalkan oleh The Graph pada tahun 2018. Pada dasarnya, mereka adalah API terbuka yang mengekstrak, memproses, dan menyimpan data dari blockchain, sehingga membuatnya mudah di-query melalui antarmuka GraphQL. Dengan lebih dari 85.000 subgraf yang didukung di lebih dari 40 rantai, subgraf telah menjadi sangat diperlukan bagi pengembang web3. Mereka memungkinkan penyebaran database Postgres yang diisi dengan data yang diindeks dengan cepat, siap untuk ditanyakan menggunakan lapisan GraphQL. Subgraf memungkinkan pengembang untuk menampilkan beragam data blockchain di DApps mereka, mulai dari transaksi DeFi hingga asal usul NFT, dengan cara yang terorganisir dan efisien.

Dalam lanskap teknologi blockchain yang terus berkembang, subgraf telah muncul sebagai sebuah konsep yang sangat penting, yang mengubah cara kita berinteraksi dan memanfaatkan data blockchain. API terbuka ini bertindak sebagai perantara, menjembatani kesenjangan antara dunia blockchain yang terdesentralisasi dan dunia data terstruktur yang sudah dikenal. Dengan mengekstraksi, memproses, dan mengatur data blockchain ke dalam format yang dapat ditanyakan, subgraf memberdayakan para pengembang untuk membangun aplikasi yang inovatif dan berbasis data.

Subgraf menawarkan banyak sekali manfaat, menjadikannya pilihan yang menarik bagi para pengembang dan pengguna. Sifatnya yang terdesentralisasi memastikan ketahanan terhadap penyensoran dan waktu henti, mendorong ekosistem data yang aman dan andal. Selain itu, subgraf pada dasarnya dapat diskalakan, mampu menangani data dalam jumlah besar tanpa mengorbankan kinerja. Efektivitas biaya adalah keuntungan utama lainnya, dengan subgraf yang sering kali lebih terjangkau daripada API data tradisional.

Arsitektur Subgraf

Subgraf terdiri dari tiga komponen penting yang bekerja secara harmonis untuk memberikan kemampuan transformatifnya:

  1. Manifes: Manifes berfungsi sebagai cetak biru dari subgraf, yang menguraikan sumber data, skema, dan kode AssemblyScript. Ini mendefinisikan batas-batas data yang akan diindeks oleh subgraf, memastikan bahwa hanya informasi yang relevan yang ditangkap.

  2. Skema: Skema mendefinisikan struktur data, mirip dengan cetak biru bangunan. Ini menguraikan entitas, bidang, dan hubungan antara entitas, memberikan cara yang jelas dan terorganisir untuk merepresentasikan data.

  3. Kode AssemblyScript: Kode yang dapat dieksekusi ini bertindak sebagai pekerja keras dari subgraf, menerjemahkan data mentah dari blockchain ke dalam format yang dapat dipahami oleh mesin GraphQL. Sistem ini juga menangani pengindeksan dan penyimpanan data, memastikan aksesibilitas dan keandalannya.

Proses Pengembangan Subgraf

Membuat subgraf memerlukan serangkaian langkah, masing-masing dibuat dengan hati-hati untuk memastikan fungsionalitas dan efektivitas subgraf:

  1. Membuat Konsep dan Merancang: Perjalanan dimulai dengan gagasan yang jelas tentang data yang akan diindeks dan aplikasi yang akan didukungnya. Hal ini melibatkan pendefinisian entitas, field, dan hubungan di antara mereka, memastikan bahwa struktur subgraf selaras dengan tujuan yang dimaksudkan.

  2. Pengembangan Manifes dan Skema: Manifes dan skema dibuat dengan sangat teliti, menyediakan fondasi untuk arsitektur data subgraf. Manifes menentukan sumber data, sedangkan skema menguraikan struktur data, memastikan integritas dan konsistensi data.

  3. Implementasi Kode AssemblyScript: Kode AssemblyScript ditulis, menerjemahkan data blockchain mentah ke dalam format yang dapat dimengerti oleh GraphQL. Sistem ini menangani pengindeksan, penyimpanan, dan pengambilan data, sehingga memungkinkan akses yang efisien ke data yang diindeks.

Menyebarkan dan Menerbitkan Subbagian

Setelah subgraf dikembangkan, subgraf tersebut menjalani proses penyebaran yang memperkenalkannya ke dunia:

  1. Integrasi Subgraph Studio: Subgraph Studio berfungsi sebagai platform terpusat untuk mengelola subgraf. Ini memfasilitasi proses penyebaran, memungkinkan pengembang untuk mempublikasikan subgraf mereka ke jaringan yang terdesentralisasi.

  2. Pengindeksan dan Kurasi: Pengindeks, yang bertanggung jawab untuk mengambil dan menyimpan data blockchain, sangat penting untuk membuat subgraf dapat diakses oleh pengembang. Kurasi, biasanya dilakukan melalui token GRT, memberi insentif kepada pengindeks untuk memprioritaskan subgraf dengan permintaan tinggi.

  3. Melakukan Query dan Pemanfaatan: Pengembang sekarang dapat melakukan kueri pada subgraf yang digunakan menggunakan kueri GraphQL, mengambil data spesifik yang disesuaikan dengan kebutuhan aplikasi mereka. Integrasi tanpa batas ini memberdayakan para pengembang untuk memanfaatkan data blockchain untuk inovasi.

Masa Depan: Era Baru Grafik

Saat The Graph memulai Era Barunya (Kita akan menjelajahinya di Pelajaran 5), evolusi berkelanjutan dari teknologi inti ini - subgraf, Firehose, dan Substreams - sangat dinantikan. Komponen-komponen ini akan terus berkembang dan berevolusi, memainkan peran penting dalam memperkenalkan layanan data baru dan memastikan aliran data yang lebih cepat dan lebih modular. Verifiable Firehose, sebagai contoh, siap untuk menjadi solusi terobosan untuk mengakses data historis Ethereum, menjawab tantangan standar blockchain yang terus berkembang.

Membedakan Subgraf dari Subaliran

Sangat penting untuk membedakan antara subgraf dan Substream karena keduanya memiliki tujuan yang berbeda. Subgraf sangat ideal untuk pengambilan dan pengelolaan data standar, menawarkan kemudahan pengaturan dan penggunaan dengan lapisan kueri GraphQL. Sebaliknya, Substreams dirancang untuk kebutuhan analitik dan data besar yang lebih kompleks, menawarkan pemrosesan data yang diparalelkan dan fleksibilitas yang lebih besar dalam penanganan dan penyimpanan data. Substreams memungkinkan pengembang untuk mengubah data dari format file dasar menjadi bentuk yang lebih dapat digunakan, memenuhi kebutuhan pemrosesan data yang canggih.

Mengatur Data di Luar Rantai: Pendekatan Grafik dan Dampaknya pada Pipeline Data Web3

Graph, yang secara tradisional dikenal dengan kehebatannya dalam mengatur data on-chain, kini memperluas cakrawala dengan merambah ke ranah data off-chain. Pendekatan ini sejalan dengan misi jangka panjang The Graph untuk menyediakan akses yang mudah ke pengetahuan dan informasi publik dunia.

Web3 dan Pengorbanan dalam Manajemen Data

Dalam arsitektur Web3, meskipun pengguna dapat berinteraksi langsung dengan blockchain melalui layanan middleware, ada trade-off, terutama dalam hal biaya. Biaya transaksi on-chain, yang sering disebut sebagai biaya gas, bisa sangat tinggi untuk komputasi yang kompleks atau penyimpanan data yang luas. Keterbatasan ini secara historis telah membatasi kompleksitas aplikasi atau mengarahkan pengembang untuk membuat API off-chain yang bersifat eksklusif, yang berangkat dari model sumber terbuka.

Solusi Unik Graph untuk Data Off-chain

Graph menyajikan solusi unik untuk tantangan ini dengan memungkinkan pengorganisasian dan penyajian data off-chain melalui jaringan terdesentralisasi. Metode ini melibatkan alur kerja di mana data off-chain secara tradisional diposting ke IPFS (InterPlanetary File System), dan hash IPFS kemudian direkam secara on-chain. Selanjutnya, data ini dapat diindeks berdasarkan subgraf dan tersedia untuk kueri. Pendekatan ini menawarkan cara yang terukur dan ekonomis untuk mempublikasikan dan menyajikan data yang kompleks dan dinamis tanpa biaya tambahan untuk membangun dan memelihara API yang eksklusif.

Alur Kerja: Proses Tiga Langkah

Alur kerja terdiri dari tiga komponen utama:

  1. Pekerjaan Cron untuk Komputasi dan Posting Data: Pekerjaan cron off-chain melakukan komputasi yang kompleks dan mem-posting hasilnya ke sumber permaweb, seperti IPFS, yang dapat diindeks oleh The Graph. Pekerjaan ini juga menghasilkan transaksi on-chain untuk memposting hash file IPFS dan metadata yang relevan.

  2. Publikasi Subgraf untuk Pengindeksan: Langkah selanjutnya melibatkan penerbitan subgraf yang mengindeks file IPFS ini berdasarkan hash file yang diposting di rantai. Setelah subgraf diterbitkan, subgraf tersebut dapat diambil dan dilayani oleh Pengindeks di jaringan The Graph, yang memungkinkan pengembang dan pengguna pihak ketiga untuk meminta data.

  3. Akses Data yang Kuat dan Andal: Dengan memanfaatkan jaringan pengindeks The Graph yang terdistribusi, akses data tetap kuat dan dapat diandalkan tanpa upaya tambahan dari penerbit data. Struktur terdesentralisasi ini secara signifikan meningkatkan ketersediaan dan integritas data.

Implementasi Praktis dan Efisiensi Biaya

Contoh praktis dalam ekosistem The Graph adalah oracle yang dikembangkan oleh Edge & Node untuk mempublikasikan biaya jaringan dan metrik kualitas layanan. Oracle ini memposting data agregat ke IPFS setiap lima menit dan mencatat hash file IPFS pada rantai Gnosis. Data ini kemudian diindeks dalam subgraf, yang dapat dikonsumsi oleh para pemangku kepentingan protokol. Biaya yang terkait dengan alur kerja ini ternyata sangat rendah, sehingga menjadikannya pilihan yang menarik bagi penerbit data.

Kemungkinan Baru dengan Data Dinamis

Metode penggunaan The Graph untuk data dinamis ini membuka kemungkinan-kemungkinan baru yang menarik untuk situs permaweb, termasuk back-end yang ramping untuk blog, kurasi konten algoritmik, dan sistem pemantauan real-time. Hal ini mewakili perubahan signifikan dalam cara data dipublikasikan, diindeks, dan diakses, mempromosikan ekosistem web3 yang lebih terbuka dan kolaboratif.

Mengatur Data di Luar Rantai: Pendekatan Inovatif dari Graph

Ekspansi Graph ke dalam pengelolaan data off-chain membuka jalan baru dalam ekosistem Web3, menciptakan jembatan antara ranah data terdesentralisasi dan tradisional. Inisiatif ini mencerminkan misi The Graph untuk membuat spektrum informasi yang lebih luas dapat diakses dengan cara yang terdesentralisasi, mengatasi keterbatasan yang melekat pada penyimpanan dan komputasi data on-chain.

Menyeimbangkan Kebutuhan Data On-chain dan Off-chain

Grafik ini mengenali trade-off terkait biaya penyimpanan data on-chain dan komputasi dalam arsitektur Web3. Meskipun interaksi langsung dengan blockchain sangat mudah, komputasi yang rumit dan penyimpanan data berskala besar dapat menjadi sangat mahal. Untuk menghindari keterbatasan ini, The Graph memperkenalkan metode yang menggabungkan penyimpanan data off-chain dengan referensi data on-chain, sehingga mempertahankan etos desentralisasi sambil meningkatkan fungsionalitas.

Metodologi Grafik untuk Data Off-chain

Pendekatan ini melibatkan alur kerja tiga langkah:

  1. Komputasi Off-chain dan Posting IPFS: Komputasi kompleks dilakukan secara off-chain, dan data yang dihasilkan diposting ke IPFS, sebuah solusi penyimpanan yang terdesentralisasi. Langkah ini memastikan bahwa data, meskipun di luar rantai, disimpan dengan cara yang dapat diverifikasi dan terdesentralisasi.

  2. Menghubungkan secara on-chain melalui Transaksi: Bersamaan dengan menyimpan data pada IPFS, transaksi on-chain yang sesuai dibuat untuk mencatat hash IPFS dan metadata terkait lainnya. Metode ini menambatkan data off-chain ke blockchain, memberikan lapisan kepercayaan dan ketertelusuran.

  3. Pengindeksan Subgraf untuk Aksesibilitas: Langkah terakhir melibatkan pengindeksan data yang disimpan di IPFS menggunakan subgraf. Proses ini membuat data off-chain dapat dengan mudah ditelusuri dan diakses melalui jaringan terdesentralisasi The Graph.
    Implementasi Praktis: Edge & Node's Oracle

Aplikasi praktis dari metodologi ini dalam ekosistem The Graph adalah oracle yang dikembangkan oleh Edge & Node. Oracle ini mempublikasikan metrik biaya jaringan dan kualitas layanan setiap lima menit dengan cara berikut:

  • Data agregat dikirim ke IPFS.

  • Hash file IPFS yang sesuai kemudian dicatat pada rantai Gnosis melalui kontrak DataEdge.

  • File-file IPFS ini diindeks dalam subgraf, sehingga data tersedia bagi para pemangku kepentingan dengan cara yang terdesentralisasi.
    Implementasi ini menunjukkan pendekatan berbiaya rendah, terukur, dan efisien untuk menerbitkan dan menyajikan data yang kompleks tanpa memerlukan API eksklusif. Ini mencontohkan bagaimana metode The Graph dapat dimanfaatkan untuk membuat sumber data dinamis untuk berbagai aplikasi.

Efisiensi dan Skalabilitas Biaya

Biaya yang terkait dengan alur kerja ini ternyata sangat rendah, menjadikannya solusi yang menarik bagi para penerbit data. Misalnya, implementasi oracle oleh Edge & Node mengeluarkan biaya minimal untuk transaksi on-chain dan penyematan node IPFS, dengan biaya penyajian yang ditanggung oleh konsumen data. Model ini secara efektif mengurangi biaya operasional untuk penerbit data sekaligus memastikan akses data yang kuat dan andal.

Mengaktifkan Kasus Penggunaan Web3 Baru

Metode ini membuka kemungkinan-kemungkinan baru untuk aplikasi permaweb, seperti back-end dinamis untuk blog, kurasi konten algoritmik, dan sistem pemantauan real-time. Hal ini memungkinkan untuk mempartisi penerbit data dari operator aplikasi/front-end, mendorong spesialisasi dan pembagian kerja dalam komunitas sumber terbuka. Pendekatan ini menjanjikan untuk aplikasi dan protokol sosial yang terdesentralisasi, menawarkan jalan baru ke depan untuk publikasi dan konsumsi data yang terdesentralisasi.

Bahasa Query dan API dalam Graph: Merangkul GraphQL

Integrasi GraphQL sebagai bahasa kueri pilihan. Keputusan ini secara signifikan membentuk cara data diakses dan berinteraksi melalui API The Graph, menyediakan metode yang efisien dan efisien untuk menanyakan data blockchain.

Memahami Peran GraphQL dalam Grafik

GraphQL berada di garis depan dalam desain API modern, menawarkan pendekatan yang fleksibel dan efisien untuk pengambilan data. Dalam konteks blockchain, di mana struktur data sangat kompleks dan terus berkembang, kemampuan GraphQL untuk mengambil apa yang dibutuhkan menjadi sangat berharga.

  1. Kueri Data yang Disesuaikan: Inti dari daya tarik GraphQL adalah kemampuannya untuk memungkinkan klien mendefinisikan struktur data yang mereka butuhkan secara tepat. Kemampuan ini merupakan perubahan yang signifikan dari respons struktur tetap tradisional, memungkinkan interaksi data yang lebih terfokus dan efisien.

  2. Meningkatkan Interaksi Waktu Nyata: Lebih dari sekadar kueri, GraphQL dalam The Graph mendukung langganan data secara real-time. Fitur ini sangat penting untuk aplikasi blockchain di mana pembaruan tepat waktu dan daya tanggap adalah kunci pengalaman pengguna.

  3. Akses Data yang Terdesentralisasi dan Tanpa Kepercayaan: Penggunaan GraphQL oleh Graph memperluas filosofi desentralisasi ke dalam ranah akses data. Dengan berinteraksi dengan jaringan node yang terdesentralisasi, kueri GraphQL memastikan bahwa data tetap terbuka, transparan, dan tahan sensor.
    Konvergensi API dan GraphQL

Dalam ekosistem The Graph, penggabungan API dengan GraphQL menciptakan sistem yang harmonis dan kuat untuk pengambilan data:

  1. Definisi Skema dan Pemetaan Data: Pengembang mendefinisikan skema GraphQL di dalam subgraf mereka, yang menguraikan struktur data yang dapat ditanyakan. Skema ini kemudian dipetakan secara rumit ke peristiwa blockchain, menerjemahkan aktivitas on-chain ke dalam data terstruktur.

  2. Mengeksekusi Kueri melalui Pengindeks: Ketika kueri GraphQL dikirimkan ke API subgraf, kueri tersebut diproses oleh jaringan Pengindeks terdesentralisasi The Graph. Proses ini mencontohkan bagaimana kueri dieksekusi secara terdistribusi, dengan menjunjung tinggi prinsip-prinsip teknologi blockchain.

  3. Menangani Hubungan Data yang Kompleks: Dengan hubungan data yang kompleks menjadi hal yang biasa dalam blockchain, kemampuan GraphQL untuk menangani kueri yang rumit, termasuk berbagai bentuk pemfilteran dan penyortiran data, sangat bermanfaat.

Manfaat yang Terungkap bagi Pengembang dan Pengguna Akhir

Integrasi GraphQL dalam The Graph memberikan banyak manfaat:

  • Fleksibilitas untuk Pengembang: Para pengembang dapat memanfaatkan kekuatan penuh GraphQL untuk membuat kueri yang selaras dengan kebutuhan aplikasi mereka.
  • Pengambilan Data yang Efisien: Waktu pengambilan data yang berkurang meningkatkan kinerja aplikasi, yang secara langsung menghasilkan pengalaman pengguna akhir yang lebih baik.
  • Integrasi Data yang mulus: Sifat standar dari kueri GraphQL menyederhanakan proses mengintegrasikan beragam sumber data blockchain ke dalam aplikasi.
Disclaimer
* Crypto investment involves significant risks. Please proceed with caution. The course is not intended as investment advice.
* The course is created by the author who has joined Gate Learn. Any opinion shared by the author does not represent Gate Learn.