API Gateway untuk Web3: Bagaimana APISIX Memberdayakan Hyperchain
August 9, 2021
Ikhtisar
Sebagai penyedia infrastruktur blockchain konsorsium tingkat perusahaan terkemuka di dunia dan penyedia solusi, Hyperchain Technologies berkomitmen untuk membangun infrastruktur inovatif dan memberdayakan perkembangan digital masyarakat. Selama pertumbuhan pesatnya, Hyperchain menghadapi banyak masalah saat membangun platform blockchain Hyperchain, sebagai berikut:
- Tidak ada manajemen lalu lintas yang terstandarisasi dengan risiko potensial keruntuhan sistem
- Kontrol keamanan dan manajemen autentikasi yang tidak lengkap
- Kontrol izin yang tidak nyaman
- Biaya tinggi pada alamat IP jaringan publik
- Node blockchain yang tidak stabil: node tunggal rentan terhadap serangan
- Kurangnya manajemen terpadu dari berbagai protokol
Hyperchain mencoba Kong dan NGINX, tetapi sayangnya, mereka tidak dapat memenuhi skenario bisnis Hyperchain. Namun, setelah mengadopsi Apache APISIX, semua masalah yang disebutkan di atas teratasi, memberikan platform blockchain Hyperchain vitalitas yang tak terbatas.
Tentang Platform Blockchain Hyperchain
Platform blockchain Hyperchain merujuk pada penyematan kerangka blockchain ke dalam platform komputasi awan, memanfaatkan keunggulan infrastruktur layanan cloud dalam penyebaran dan manajemen. Ini adalah platform blockchain terbuka yang dapat menyediakan pengembang dengan ekosistem blockchain yang nyaman dan berkinerja tinggi serta layanan dukungan terkait, dan juga mendukung ekspansi dan operasi bisnis pengembang di web3.
Platform blockchain Hyperchain dapat membangun jaringan blockchain dengan cepat dan fleksibel. Dengan platform ini, perusahaan dapat mengelola bisnis blockchain secara terpadu. Misalnya, melalui platform, kita dapat menandatangani kontrak di lingkungan pengembangan terintegrasi dan kemudian menyebarkan kontrak ke jaringan blockchain yang telah kita buat. Modul layanan atas dapat memanggil kontrak terkait blockchain untuk melanjutkan proses bisnis.
Karena ada banyak node dalam rantai, mulai dari puluhan hingga ribuan, menjadi sulit bagi kita untuk memantau dan memelihara operasi rantai tanpa dukungan platform. Dengan menggunakan platform blockchain Hyperchain, pengguna tidak hanya dapat menghemat biaya tetapi juga mengelola blockchain dengan lebih nyaman dan meningkatkan keamanan seluruh sistem.
Mari kita ambil Hyperchain sebagai contoh untuk memahami bagaimana dan mengapa perusahaan blockchain harus memilih Apache APISIX di antara banyak gateway API. Di bawah ini, kita akan menganalisis aplikasi APISIX baik dalam platform blockchain Hyperchain maupun node blockchain.
Aplikasi APISIX dalam Platform Blockchain Hyperchain
Di bawah ini adalah diagram interaksi aplikasi APISIX dalam platform blockchain Hyperchain. Layanan backend mendaftarkan informasi layanan ke etcd sesuai dengan karakteristik bisnisnya dan kemudian mendaftarkan layanan ke APISIX melalui modul pendaftaran rute.
APISIX berfungsi sebagai pintu masuk terpadu dari layanan mikro internal dalam sistem. Permintaan eksternal pertama kali dikirim ke APISIX; kemudian, mereka mengunjungi lapisan akses melalui API setelah melewati autentikasi dan kemudian mengunjungi layanan inti melalui RPC (remote procedure call).

Penerusan Rute
Terkadang, API diharapkan untuk diekspos di bawah nama domain yang sama. Dalam kasus ini, kita dapat menambahkan beberapa awalan ke jalur API dari layanan yang sama, seperti /baas-core atau /baas-other. Ketika klien meminta API ini, gateway API perlu menghapus awalan yang ditambahkan ini dan kemudian meneruskan permintaan ke layanan backend. Plugin proxy-rewrite dari APISIX dapat membantu kita menangani kasus seperti ini dengan mudah.
Contoh:
Ketika mengunjungi: http://apisix:8080/baas-{service}/api/v1/…
Permintaan dapat diteruskan ke http://{service}/api/v1/…
dengan menulis ekspresi reguler: ^/baas-core/(.*)$,/$1

Manajemen Batas Lalu Lintas
Pengguna dapat memilih blockchain konsorsium sesuai kebutuhan mereka, tidak hanya dari Hyperchain tetapi juga IBM data Fabric, Baidu XuperChain, dll. Oleh karena itu, Hyperchain perlu melakukan manajemen siklus hidup semua blockchain konsorsium dalam sistem.
Saat membuat rantai konsorsium, Hyperchain hanya perlu menulis kode keras pada platform blockchain dan mengunggah komponen drive yang dapat dipasang ke platform blockchain untuk dipanggil guna membuat rantai konsorsium. Dalam beberapa kasus penyebaran pribadi, komponen drive yang dapat dipasang dapat mendukung dengan cepat.
Setiap panggilan ke komponen drive adalah proses yang perlu dibatasi, terutama ketika jumlahnya besar. Oleh karena itu, plugin limit-req dari APISIX dapat bermanfaat dalam membatasi input dan output lalu lintas platform untuk memastikan stabilitasnya.
Plugin limit-req memungkinkan konfigurasi yang disesuaikan tentang rate dan burst.

Kontrol Keamanan dan Manajemen Otoritas
Untuk berkolaborasi dengan APISIX, Hyperchain mengembangkan plugin untuk keadaan penyebaran pribadi. Pihak A sering lebih suka menggunakan layanan autentikasi mereka sendiri atau sistem akun layanan. Ketika lalu lintas frontend mengunjungi situs web, itu akan pertama kali melalui plugin Access-auth, dan hanya dapat mengakses backend BFF (Backend for Frontend) jika melewati autentikasi.

Menurut tiga faktor kunci dari spesifikasi standar Restful (informasi autentikasi, jalur Restful, dan kata kerja HTTP seperti GET, POST, PUT, DELETE, PATCH, dll.), autentikasi akun-peran-otoritas dilakukan. Jika autentikasi berhasil, informasi pengguna akan dikembalikan di header; jika tidak, akan kembali ke 403.

Hot Reloading
APISIX menawarkan hot reloading dari plugin yang dikembangkan secara internal. Ini menghemat waktu selama pengembangan dan memungkinkan pengguna untuk mengubah bagian dari kode mereka tanpa memulai ulang seluruh plugin runner. Dengan cara ini, pengembang dapat melakukan penyesuaian pada antarmuka di backend, yang segera berlaku, yang nyaman dan ramah untuk rilis online.
Mengapa bukan Kong?
Hyperchain sebelumnya menggunakan Kong tetapi akhirnya menggantinya dengan Apache APISIX terutama karena
-
Biaya Penyebaran dan Pemeliharaan yang Tinggi
Kluster Kong perlu bekerja sama dengan database Postgresql dan membutuhkan administrator database tertentu untuk ketersediaan tinggi. Penyebaran kluster dari database Postgresql relatif sulit untuk diimplementasikan dan meningkatkan biaya operasi dan pemeliharaan selanjutnya.
-
Meningkatkan Kompleksitas Sistem dan Tingkat Kegagalan
Platform blockchain Hyperchain menggunakan database MySQL, menghasilkan dua database relasional dalam sistem jika mengadopsi Kong, yang membuat sistem lebih rumit. Ini juga meningkatkan tingkat kegagalan dalam meningkatkan kompatibilitas antara dua set database.
Aplikasi APISIX dalam Node Blockchain

Menghemat Biaya pada Alamat IP Jaringan Publik
Pengguna membeli blockchain melalui platform blockchain Hyperchain. Kemudian bisnis tingkat atas dan klien pengembang dapat terhubung ke node. Layanan dapat terhubung ke satu atau lebih node, dan pengguna dapat mengakses satu atau lebih node, yang menimbulkan masalah: hampir semua node akan dikunjungi, membebani tekanan kunjungan pada node tunggal.
Ini relatif mudah ditangani dalam beberapa lingkungan penyebaran pribadi. Namun, terlalu banyak node dan IP jaringan publik diperlukan untuk sistem yang menargetkan pengguna internet. Harga setiap IP jaringan publik dengan lalu lintas 4 megabyte dapat mencapai hampir 200 CNY per bulan. Ada ribuan node di platform Hyperchains, yang mengonsumsi biaya IP publik yang tinggi.
APISIX mengelola semua permintaan kunjungan dan mendistribusikan lalu lintas ke node blockchain yang sesuai. Dengan cara ini, Hyperchain menghemat biaya yang tinggi.

Kontrol Izin yang Nyaman
Ada berbagai blockchain di platform blockchain Hyperchain, dan setiap rantai memiliki kontrol izin RBAC yang rumit. Oleh karena itu, berbagai jenis sertifikat diperlukan untuk ditambahkan di sisi klien, seperti sertifikat TLS, yang juga membingungkan pengguna.
Saat ini, plugin key-auth dari APISIX dapat digunakan untuk menyelesaikan masalah ini dengan efisien. Pengguna yang berwenang dapat langsung mengakses blockchain tanpa khawatir tentang konfigurasi izin, karena APISIX menyatukan rantai dasar.
Klustering Meningkatkan Stabilitas Node
Seperti yang disebutkan di atas, node sering dikunjungi. Konkurensi tinggi ada di sebagian besar pengguna bank karena TPS (Transaksi Per Detik) dapat mencapai 40.000-50.000 kali.
Ternyata, node tunggal pada blockchain rentan karena setiap transaksi akan memengaruhi node yang dikunjungi.
Hyperchain menyebarkan Apache APISIX pada K8s dengan Horizontal Pod Autoscaler. Karena APISIX menggunakan etcd dengan skalabilitas dinamis yang baik, ini dapat secara efektif menyelesaikan masalah dampak lalu lintas titik tunggal.
Mendukung Berbagai Protokol
Protokol dari rantai heterogen pada platform blockchain Hyperchain beragam, seperti protokol HTTP, protokol Websocket, protokol gRPC, protokol TCP, protokol UDP, dll.
APISIX mendukung berbagai protokol, secara fleksibel menyesuaikan lapisan dasar dari blockchain yang berbeda, sehingga mengurangi biaya pengembangan.
Mengapa bukan NGINX?
Tampaknya Hyperchain dapat memanfaatkan NGINX untuk menyelesaikan masalahnya. Namun, setelah percobaan, Hyperchain meninggalkannya karena
-
Tidak Cocok untuk Ekspansi Dinamis
Hyperchain perlu menambah dan menghapus node di platform blockchain secara sering, yang hanya dapat berlaku setelah memulai ulang, yang tidak nyaman bagi pengembang. Selain itu, pengembang harus menulis kode aturan yang kompleks untuk plugin di file conf NGINX.
-
Sulit untuk Diklusterkan
NGINX tidak mendukung kluster, yang relatif kompleks dan tidak ramah bagi pengguna.
-
Tidak Ada Dukungan Langsung untuk TCP dan UDP
NGINX hanya dapat memproksi protokol lapisan 7 daripada protokol lapisan 4 dan tidak dapat langsung mendukung protokol TCP dan UDP. Selain itu, modul tidak dikompilasi secara default, memerlukan pemrosesan tambahan.
-
Tidak Ada Dashboard
Tidak ada antarmuka visual NGINX, yang menyulitkan pengembang dan operator untuk mengelola begitu banyak node.
Ringkasan
Dari konten yang disebutkan di atas, kita tahu bahwa Apache APISIX adalah gateway API dinamis yang dapat diterapkan di area blockchain. Selain itu, Apache APISIX menyediakan fitur manajemen lalu lintas yang kaya seperti Load Balancing, Dynamic Upstream, Canary Release, Circuit Breaking, Authentication, Observability, dll.
Kami berharap APISIX dapat mendukung lebih banyak perusahaan blockchain untuk memasuki fase perkembangan lainnya. Selamat datang untuk mempelajari lebih lanjut tentang Apache APISIX. Anda dapat menghubungi kami di https://api7.ai/contact.