Khi blockchain ngày càng được ứng dụng vào nhiều lĩnh vực khác nhau thì khối lượng và độ đa dạng dữ liệu sẽ đột biến theo cấp số nhân. Google đã giúp chúng ta tìm kiếm dữ liệu cực nhanh từ đó mở ra kỷ nguyên rực rỡ của Web2, do đó Web3 cũng sẽ cần dịch vụ phân loại và truy vấn tốt để đáp ứng nhu cầu dữ liệu đang gia tăng chóng mặt.
Subsquid tiến vào hệ sinh thái tiềm năng Polkadot với một khuôn khổ mã nguồn mở thân thiện cho các GraphQL API. Hãy cùng FXCE tìm hiểu về Subsquid, The Graph của hệ Polkadot, trong bài viết này nhé.
Giới thiệu Subsquid
Subsquid là gì?
Công nghệ blockchain có tiềm năng cải thiện nhiều ngành và lĩnh vực trong cuộc sống của chúng ta, một khi chúng ta có thể phát huy hết tiềm năng của nó. Tương tự như 80% đại dương trên thế giới vẫn chưa được khám phá, chúng ta hầu như chưa bắt đầu sơ lược về những gì có thể đạt được trong một thế giới phi tập trung.
Hệ sinh thái phi tập trung xử lý dữ liệu khác với hệ sinh thái tập trung và kết quả là phải hoạt động theo một cách khác. Thông tin về cơ sở dữ liệu tập trung có thể dễ dàng được tham chiếu và truy vấn bằng rất nhiều các công cụ riêng hoặc công khai. Ví dụ: hầu hết phần mềm thu thập dữ liệu nội bộ đều có chức năng tìm kiếm, trong khi tất cả chúng ta đều sử dụng công cụ tìm kiếm để tìm mọi thứ trên internet.
Các blockchain sản xuất, thêm và lưu trữ dữ liệu theo một cách rất khác với các nguồn tập trung và do đó, cách chúng ta phải tìm kiếm nó cũng khác. Vẻ đẹp của blockchain là bất kỳ ai cũng có thể khai thác dữ liệu được giữ bên trong nó để tạo DApp của riêng họ, nhưng điều này đã dẫn đến một khối lượng dữ liệu trải rộng trên các blockchain chưa bao giờ được sử dụng.
Cho đến nay, các nhà phát triển phải tìm kiếm dữ liệu theo cách thủ công hoặc tạo các chức năng tìm kiếm của riêng họ để có được dữ liệu mong muốn, đây không phải là điều mà ai cũng có thể làm được và thường dẫn đến kết quả không đầy đủ. Dữ liệu kém dẫn đến sản phẩm kém và trước khi chúng ta biết điều đó, các giải pháp blockchain đang thất bại vì nguồn cấp dữ liệu đơn giản là không phù hợp với công việc.
Đây là lý do cho sự xuất hiện Subsquid. Subsquid là một dịch vụ “lập chỉ mục dữ liệu”, được xây dựng nhằm thông qua các blockchain tìm kiếm dữ liệu cần thiết để phát triển DApp. Hệ sinh thái Polkadot, là hệ sinh thái đầu tiên trong số nhiều công cụ Subsquid sẽ phục vụ, bao gồm một số “parachains” được sử dụng bởi các dự án khác nhau, các dự án này yêu cầu các bộ dữ liệu rất khác nhau.
Điều này có nghĩa là loại dữ liệu di chuyển xung quanh hệ sinh thái Polkadot không chỉ lớn về khối lượng mà còn đa dạng. Công việc của Subsquid sẽ thay mặt những nhà phát triển, những người muốn sử dụng dữ liệu này để phát triển DApps, lập chỉ mục dữ liệu một cách nhanh chóng và chính xác.
Tổng quan Subsquid
Subsquid giúp giải quyết vấn đề gì?
Subsquid là một giao thức truy vấn dữ liệu có tiềm năng hoạt động như một workhorse cho bất kỳ dự án Polkadot nào, không chỉ dành riêng cho những dự án chiến thắng đấu giá parachain.
Dựa trên công nghệ đằng sau The Graph nhưng được tối ưu hóa cho blockchain Polkadot, Subsquid sử dụng giao thức Hydra độc quyền của mình để liên tục theo dõi và tổ chức dữ liệu trên blockchain giúp các nhà phát triển dễ dàng tìm kiếm dữ liệu trên blockchain Polkadot.
Điều này nghe có vẻ không nhiều đối với người ngoài, nhưng các nhà phát triển từ lâu đã bị ảnh hưởng bởi việc truy vấn dữ liệu chậm và không đáng tin cậy, có nghĩa là họ cảm thấy khó khăn để cung cấp thông tin chi tiết về việc sử dụng nền tảng của riêng họ.
Do đó ảnh hưởng đến bản thân các nhà phát triển mà còn cả người dùng, những người muốn biết trạng thái của phiên đấu giá Polkadot parachain (parachain là một nhánh blockchain được gắn với chuỗi chính Relay Chain của Pokadot) chẳng hạn. Subsquid chấm dứt tình trạng khó khăn này khi cung cấp khả năng truy vấn dữ liệu nhanh như chớp cho bất kỳ dự án Polkadot nào.
Cung cấp API mạnh mẽ cho Web 3
Subquid API là một framework mã nguồn mở để xây dựng các API GraphQL mạnh mẽ và được điều chỉnh cho phù hợp với lịch sử trạng thái blockchain của chúng ta. Cực kỳ dễ dàng sử dụng và tích hợp vào Dapp.
Giảm thiểu thời gian đồng bộ
Xử lý hàng nghìn sự kiện và giao dịch trên chuỗi trong một lần duy nhất, ngay cả khi chúng được dàn trải trên nhiều khối. Đồng bộ hóa query node trong vòng vài phút, không cần tới vài ngày như cách thông thường.
Hỗ trợ tùy chỉnh các câu truy vấn
Nếu chúng ta muốn thêm các truy vấn tùy chỉnh vào API? Không vấn đề gì! Subsquid hỗ trợ mở rộng node truy vấn của chúng ta với hầu hết bất kỳ truy vấn SQL nào thông qua các GraphQL resolver tùy chỉnh.
GraphQL ma thuật
Chúng ta chỉ cần định dạng dữ cần thiết trong một file schema của GraphQL và sau đó sẽ tự động nhận được một GraphQL backend mạnh mẽ.
Kiến trúc nhiều lớp hỗ trợ truy vấn nhanh
Lý do tại sao Subsquid có thể truy xuất dữ liệu nhanh chóng như vậy là do kiến trúc độc đáo của nó, được tạo thành từ các giao thức xử lý Hydra Indexer và Hydra Indexer Gateway. Hai giao thức này thực hiện các vai trò khác nhau nhưng không kém phần quan trọng trong quá trình truy xuất dữ liệu, kết hợp với nhau để mang lại trải nghiệm tốt nhất cho các nhà phát triển, vượt xa hiệu suất của các giao thức đơn cấp.
Để giải thích sự khác biệt giữa cách tiếp cận đơn và nhiều cấp, chúng ta sử dụng một ví dụ đơn giản. Nếu chúng ta muốn chơi trò tìm các viên kim cương trong thẻ bài thì việc đầu tiên là chúng ta sẽ phải mua gói thẻ của riêng mình. Tiếp theo, chúng ta sẽ phải tìm kiếm các viên kim cương trong thẻ bài.
Một giao thức đơn cấp sẽ tìm kiếm từng thẻ một, chọn ra các viên kim cương và đặt sang một bên. Trong khi đó, một giao thức đa cấp sẽ thực hiện lập chỉ mục sẵn, và khi chúng ta muốn tìm các viên kim cương, nó đơn giản chỉ là loại bỏ các thẻ bài không phải là các viên kim cương, vì biết chính xác viên kim cương nằm ở đâu.
Tương tự với Subsquid trong blockchain, chúng ta không cần phải tải xuống node của blockchain (giống với việc sở hữu 1 bộ bài) để thực hiện truy vấn. Giao thức mà Squid xây dựng sẽ tìm kiếm tất cả các nút trên mạng, giúp chúng ta tiết kiệm thời gian và tài nguyên quý giá. Khi nói đến việc tự tìm kiếm, Hydra Indexer liên tục phân loại dữ liệu, có nghĩa là khi bạn yêu cầu dữ liệu, nó có thể cho bạn biết chính xác dữ liệu cần thiết đang ở đâu.
Các kênh truyền thông của dự án
- Website: https://www.subsquid.io/
- Blog: https://subsquid.medium.com/
- Twitter: https://twitter.com/subsquid
- Discord: https://discord.com/invite/5cQBWHWJvW
- Telegram: https://t.me/subsquid
- Facebook: https://www.facebook.com/subsquidHQ
- Instagram: https://www.instagram.com/subsquid.io/
Subsquid team
Dmitry Zhelezov là Đồng sáng lập tại Subsquid. Trước đây, ông là Hydra Core Developer tại Jsgenesis. Ngoài ra, ông đã từng là Nhà khoa học trưởng tại Helix Cognitive Computing.
Các thành viên khác trong đội ngũ phát triển của Subsquid đều có kinh nghiệm từ 3 – 5 năm trong lĩnh vực blockchain. Các thành viên trong Team chủ yếu đến từ Nga, Pháp và Đức.
Công nghệ và Sản phẩm
Công nghệ
Hydra
Hydra là một query node cho các blockchain dựa trên Substrate. Một query node nhập dữ liệu từ một chuỗi substrate và cung cấp quyền truy cập phong phú, theo miền cụ thể lãn tùy chỉnh cao vào dữ liệu blockchain, vượt xa phạm vi của các lệnh gọi RPC trực tiếp.
Ví dụ: các đề xuất chi tiêu của Kusama Treasury đã hết hạn sẽ được loại bỏ khỏi trạng thái của blockchain Kusama, do đó, việc truy vấn các đề xuất quá khứ từ một năm trở lên sẽ rất khó khăn. Người ta phải theo dõi sự thay đổi của trạng thái bằng cách áp dụng tuần tự các sự kiện của Treasury và ngoại vi trong mỗi khối lịch sử.
Đó chính là nơi mà Hydra có thể hỗ trợ chúng ta. Chúng ta chỉ việc xác định mô hình hóa cho dữ liệu, sau đó Hydra Indexer sẽ đồng bộ hóa với chuỗi. Cuối cùng, chúng ta sẽ nhận được một máy chủ GraphQL với khả năng tìm kiếm, lọc dữ liệu, phân trang và cả khả năng full-text search.
Kiến trúc của Hydra
Một query node của Hydra bao gồm các phần cốt lõi sau:
- Blockchain Indexer
- PostgreSQL (Lưu trữ dữ liệu)
- Máy chủ GraphQL
- Lược đồ dữ liệu giống GraphQL & ánh xạ sự kiện
Hydra nhận đầu vào là một lược đồ giống như GraphQL cấp cao, trong đó có mô hình hóa dữ liệu blockchain (“các thực thể”) sẽ được lập chỉ mục. Các mô phỏng mô tả trình xử lý sự kiện cho Indexer biết các sự kiện blockchain ảnh hưởng đến các thực thể như thế nào.
Khi lược đồ và các ánh xạ được thiết lập, Indexer chuẩn bị cơ sở dữ liệu và bắt đầu quét liên tục blockchain, xử lý các sự kiện thông qua các ánh xạ và cập nhật thực thể trong cơ sở dữ liệu.
Máy chủ GraphQL là một máy chủ web riêng biệt cung cấp API GraphQL cho các thực thể trong kho dữ liệu. Các yêu cầu API được máy chủ giải quyết thành các truy vấn cơ sở dữ liệu, cung cấp khả năng truy cập nhanh vào trạng thái gần đây nhất của các thực thể.
Luồng hoạt động của Hydra
Query Node của Hydra nhập các sự kiện substrate trong một pipeline gồm nhiều bước:
Một Hydra pipeline có hai thành phần chính: Hydra Indexer và Hydra Processor.
- Hydra Indexer nhập dữ liệu thô từ một chuỗi substrate.
- Hydra Processor chuyển đổi dữ liệu thô được lấy từ Indexer thành các thực thể cấp miền do người dùng xác định.Hình dạng của các thực thể được xác định trong schema.graphql.
Các quy tắc chuyển đổi dữ liệu (hoặc “ánh xạ”) là các hàm Javascript không trạng thái xác định cách dữ liệu sự kiện Substrate runtime sẽ được xử lý. Tập hợp các sự kiện runtime, các bộ lọc sự kiện và các cài đặt Processor khác được xác định trong tệp manifest.yml. hydra-cli cung cấp thêm công cụ giàn giáo, công cụ mã để chạy và phát triển Hydra Processor được thiết kế riêng cho tệp lược đồ được cung cấp.
Sản phẩm
Hydra Version 4
Hydra đã được nâng cấp lên phiên bản 4, cung cấp một loạt các cải tiến nhằm nâng cao trải nghiệm của toàn bộ người dùng và nhà phát triển. Giờ đây, các nhà phát triển có thể tận hưởng một cấu trúc phẳng và trực quan như được thấy trong mẫu Hydra, giúp việc thiết lập một dự án Hydra dễ dàng hơn bao giờ hết.
Về cơ bản, các Indexer được tối ưu hóa cải thiện tốc độ và độ ổn định của pipeline dữ liệu, từ giai đoạn nhập dữ liệu ở phía Indexer cho đến giai đoạn xử lý và đến API của Query Node. Tất cả ba bước đã được sắp xếp hợp lý để mang lại trải nghiệm nhanh hơn, mượt mà hơn.
Hydra v4 cũng bổ sung hỗ trợ ts-node, có nghĩa là không còn lãng phí thời gian cho việc chuyển ngữ, trong khi giờ đây chúng ta cũng có thể mở rộng query node của mình với các truy vấn API tùy chỉnh – người dùng có thể định nghĩa bất kỳ SQL nào trong thư mục mở rộng máy chủ và truy vấn sẽ ngay lập tức xuất hiện trong API của Query Node. V4 cũng cập nhật các bản sửa lỗi API của Query Node và nâng cấp hiệu suất của API.
Subsquid Indexer công khai
Hiện tại SubSquid đã thực hiện lập chỉ mục cho các sự kiện từ các Subtrate Chain sau:
Security
Hiện chưa có bất kỳ thông tin audit gì của dự án.
Subsquid Backers
Subsquid Roadmap và tokenomics
Subsquid Tokenomics
Hiện tại SubSquid chưa thực hiện phát hành token. Họ mới chỉ dự kiến token là SQD với nguồn cung tối đa là 1337 tỷ token được đúc tại TGE.
Tất cả các nhà đầu tư cho đến nay và nhóm đều có mức lock ups như nhau: 20% sau 6 tháng của TGE và phần còn lại được trả linear trong hơn 2 năm. Các token khác sẽ được phân phối cho cộng đồng, phần thưởng và treasury.
Token SQD là đơn vị kế toán chính trong Subsquid DAO. Nó có nhiều use case, có thể được mô tả như một token thanh toán, quản trị và công việc kết hợp.
- Phương tiện thanh toán. SQD được sử dụng để thu phí và phân phối trên kho bạc DAO và các vai trò công nhân khác nhau đối với các dịch vụ được cung cấp.
- Token công việc. Để đảm nhận một vai trò nào đó, người ta nên stake token SQD, phần thưởng được phân phối dựa trên số token được stake và số lượng công việc thực tế đã thực hiện (theo tính toán của công thức Cobb-Douglas).
- Ủy quyền. Chủ sở hữu token SQD có thể ủy quyền token của họ cho bất kỳ vai trò nào để nhận được một phần phí.
- Quản trị. Chủ sở hữu token SQD định kỳ bỏ phiếu để bầu một hội đồng quản lý để chịu trách nhiệm về sự phát triển của giao thức, các thông số kinh tế và giải quyết tranh chấp.
Subsquid Roadmap
Giai đoạn 0: Q3 2020
Hydra: một query-node framework
Hydra là một query-node framework được khởi động tại Hackusama hackathon vào tháng 7 năm 2020 và đã được trao giải nhất trong cuộc đua cơ sở hạ tầng.
Bằng cách xác định lược đồ cơ sở dữ liệu và các quy tắc chuyển đổi dữ liệu, người ta có thể phát triển một API GraphQL được tùy chỉnh đầy đủ cho một chuỗi Substrate được lựa chọn. Sau một năm phát triển, Hydra đã phát triển thành một bộ sưu tập các dịch vụ và công cụ truy vấn:
- Hydra Indexer + Hydra Indexer Gateway: Nhập dữ liệu blockchain thô, lập chỉ mục và hiển thị thông qua GraphQL API
- Hydra Processor: Trích xuất dữ liệu có liên quan từ Hydra Indexers, chuyển đổi và tải vào bộ lưu trữ Query Node
- Hydra CLI: tạo mã cho máy chủ Query Node, bao gồm lược đồ cơ sở dữ liệu, máy chủ GraphQL dựa trên Apollo với hỗ trợ lọc mở rộng.
Giai đoạn 1: Q3 2021
Hỗ trợ các Hydra Indexers bởi Subsquid
Phần sử dụng nhiều tài nguyên nhất của Hydra pipeline là Hydra Indexer, vì nó giữ một chỉ mục đầy đủ của dữ liệu blockchain. Subsquid đã triển khai Hydra Indexer cho các chuỗi Substrate chính sau (và đang tiếp tục tăng):
- Polkadot
- Kusama
- Karura
- Edgeware
- Equilibrium
- Robonomics 9
- Subsocial
- Joystream (Sumer Testnet)
Giai đoạn 2: Q4 2021
Query-Node-as-a-Service theo Subsquid
Giai đoạn hiện tại mở rộng hỗ trợ các dịch vụ Hydra của Subsquid. Ngoài việc sử dụng các indexer có sẵn công khai, có thể triển khai các Query Node được hỗ trợ bởi Hydra bằng cách sử dụng một công cụ CLI đơn giản. Không cần phải khởi tạo một cơ sở hạ tầng và việc chuyển đổi từ môi trường DEV sang môi trường PROD chỉ cần chạy một vài lệnh CLI.
Giai đoạn 3: Q1 2022
Các Indexer do cộng đồng điều hành
Trong giai đoạn thứ ba, SubSquid sẽ mở vai trò Indexer cho cộng đồng. Công cụ Hydra Indexer do cộng đồng điều hành sẽ được sử dụng bởi Subsquid.io. Những Indexer do cộng đồng điều hành sẽ được thưởng thông qua các khoản tài trợ từ DAO Treasury của Subsquid.
Giai đoạn 4: Q3 2022
Subsquid DAO Testnet. Khởi động các nhà khai thác Query Node
Trong giai đoạn này, các đơn vị khai thác Query Node sẽ được chọn thủ công từ các thành viên cộng đồng để khởi động DAO. Các yêu cầu API “on-chain” sẽ hoạt động trên testnet. Các nhà khai thác Query Node được thưởng thông qua các khoản tài trợ từ DAO Treasury của Subsquid.
Giai đoạn 5: Q4 2022
Ủy quyền SQD, Query Node “onchain”
- Các worker sẽ nhận được phần thưởng tự nhiên khi đáp ứng các yêu cầu từ các nhà khai thác Query Node
- Những người ủy quyền nhận được một khoản chia sẻ lệ phí
- Một phần trăm phí được đốt bởi Subsquid DAO
- Dữ liệu Query Node có thể được truy cập bởi parachains dưới dạng nguồn cấp dữ liệu oracle (ví dụ: thông qua tích hợp với mạng Kylin hoặc các giải pháp oracle khác) hoặc thông qua tích hợp với một pallet con.
Subsquid Partners
Kết luận
Một trong những vấn đề của Web 3 là truy vấn dữ liệu. Khi một blockchain có nhiều người sử dụng, việc chậm trễ trong truy vấn dữ liệu là điều không thể tránh khỏi.
Subquid là một sự án sinh ra để hỗ trợ giải quyết vấn đề này. Nó giúp cho các nhà phát triển không phải quá bận tâm đến việc vận hành các node cung cấp dữ liệu, cũng như hỗ trợ tùy biến rất tốt việc truy vấn. Chỉ với các thao tác đơn giản, các nhà phát triển Dapp đã có một GraphQL backend cực kỳ mạnh mẽ.
Hãy cùng FXCE tiếp tục theo dõi sự phát triển của dự án này trong tương lai. Hy vọng Subsquid sẽ có thêm các tính năng hữu ích khác nhằm thúc đẩy quá trình mang Web 3 đến gần với người dùng hơn nữa.
Bài viết được FXCE Ventures biên tập với mục đích cung cấp thông tin và phi lợi nhuận. Chúng tôi không khuyến nghị đầu tư và không chịu trách nhiệm cho các quyết định đầu tư liên quan đến nội dung bài dịch.
—————————————————
👉 Theo dõi FXCE Ventures
Group Chat | Research Hub | FXCE Spotlight | Tổng hợp airdrop | FXCE Pool Coin