Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 34 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
34
Dung lượng
0,96 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM ĐỒ ÁN NGHIÊN CỨU CÁC GIẢI PHÁP CHO ỨNG DỤNG INDEXING CÁC BLOCKCHAIN EVENT GIẢNG VIÊN HƯỚNG DẪN: NGUYỄN TẤN TOÀN SINH VIÊN THỰC HIỆN: VÕ VƯƠNG THANH TÚ TP HỒ CHÍ MINH, 2023 LỜI CẢM ƠN Lời em xin gửi lời cảm ơn đến thầy Nguyễn Tấn Toàn, người hướng dẫn cho em đồ án học kỳ vừa qua, nhờ dạy, gợi ý thầy, em có kiến thức tảng Blockchain Indexing… từ tự nghiên cứu để hoàn thành đồ án Tuy nhiên, dù cố gắng, thiếu nhiều kinh nghiệm nên thiếu sót điều khơng thể tránh khỏi trình thực Em mong nhận nhận xét từ thầy để em rút kinh nghiệm, hồn thiện nghiên cứu tốt Một lần em xin chân thành cảm ơn thầy! MỤC LỤC Chương MỞ ĐẦU 1.1 Lý chọn đề tài 1.2 Mục đích nghiên cứu 1.3 Đối tượng phạm vi nghiên cứu Chương 2.1 Giời thiệu chung .7 Chương 3.1 TỔNG QUAN NGHIÊN CỨU THỰC NGHIỆM HOẶC LÍ THUYẾT Blockchain 3.1.1 Các đặc điểm blockchain 3.1.2 Các ứng dụng blockchain .9 3.1.3 Cách hoạt động công nghệ blockchain .10 3.1.4 Ý nghĩa công nghệ blockchain 10 3.2 Lập mục (Indexing) 10 3.3 Các phương pháp lập mục 11 3.4 The Graph .12 3.4.1 Tổng quan mạng lưới The Graph 13 3.4.2 Graph Node .14 3.4.3 Cài đặt Graph Node 15 3.4.4 Tạo lập mục Subgraph 17 3.4.5 GraphQL The Graph 29 Chương TRÌNH BÀY, ĐÁNH GIÁ BÀN LUẬN VỀ KẾT QUẢ 31 Chương KẾT LUẬN 32 Chương HƯỚNG PHÁT TRIỂN 33 TÀI LIỆU THAM KHẢO 34 TÓM TẮT ĐỒ ÁN Công nghệ blockchain mang đến cách mạng cách tương tác với liệu, tạo ứng dụng phi tập trung an toàn, minh bạch khó gian lận Tuy nhiên, việc indexing liệu blockchain đặt thách thức đáng kể cách lưu trữ phi tập trung phức tạp việc truy vấn Nghiên cứu tập trung vào việc tìm hiểu giải pháp để indexing blockchain event Cụ thể, nghiên cứu đánh giá The Graph, giao thức indexing phi tập trung cho phép nhà phát triển xây dựng công bố subgraph để indexing liệu blockchain Nghiên cứu so sánh The Graph với tảng indexing khác Alchemy Bitquery Nghiên cứu nhằm đánh giá kiến trúc, tính giải pháp indexing, bao gồm việc cài đặt thực thi ứng dụng indexing blockchain, để thu thập liệu thực nghiệm đánh giá chức chúng Các kết kết luận nghiên cứu chưa rút Nghiên cứu cung cấp thông tin quan trọng hiệu giải pháp indexing khác cho event blockchain, giúp nhà phát triển bên liên quan lựa chọn tảng phù hợp Các kết góp phần vào việc hiểu ưu điểm hạn chế giải pháp, góp phần thúc đẩy phát triển việc indexing event blockchain Chương MỞ ĐẦU 1.1 Lý chọn đề tài Công nghệ Blockchain phát triển nhanh với nhiều ứng dụng tiềm Tuy nhiên, thách thức quan trọng việc áp dụng cơng nghệ Blockchain khó khăn việc indexing event (lập mục kiện) Blockchain Nghiên cứu nhằm giải thách thức cách tìm hiểu giải pháp cho việc lập mục kiện Blockchain 1.2 Mục đích nghiên cứu Mục tiêu nghiên cứu đánh giá kiến trúc, tính giải pháp lập mục kiện Blockchain Nghiên cứu so sánh The Graph với tảng lập mục khác Alchemy Bitquery Các kết nghiên cứu giúp nhà phát triển bên liên quan lựa chọn tảng lập mục phù hợp cho nhu cầu họ 1.3 Đối tượng phạm vi nghiên cứu Do vấn đề hạn chế thời gian, nghiên cứu em tập trung vào việc đánh giá kiến trúc tính giải pháp cụ thể cho việc lập mục kiện blockchain, The Graph Mặc dù ý định ban đầu so sánh nhiều giải pháp lập mục cho kiện blockchain, với hạn chế thời gian tài nguyên, phạm vi nghiên cứu thu hẹp lại Để đánh giá hiệu The Graph tảng lập mục, em triển khai thực thi ứng dụng lập mục, thu thập liệu liên quan đánh giá chức ứng dụng Kết nghiên cứu cung cấp thông tin quan trọng khả The Graph giúp lựa chọn tảng lập mục phù hợp Chương TỔNG QUAN 2.1.Giời thiệu chung Blockchain công nghệ phát triển mạnh mẽ với tiềm ứng dụng rộng rãi nhiều lĩnh vực Tuy nhiên, thách thức quan trọng đối mặt với việc áp dụng công nghệ blockchain khả lập mục liệu Nghiên cứu nhằm giải thách thức cách tìm hiểu giải pháp lập mục kiện blockchain 2.1.1 Định nghĩa lập mục blockchain Trước sâu vào việc nghiên cứu giải pháp lập mục kiện blockchain, cần hiểu rõ lập mục ngữ cảnh blockchain Lập mục blockchain trình tạo cấu trúc liệu tìm kiếm để truy xuất thơng tin từ liệu blockchain cách hiệu Bằng cách xây dựng bảng mục, ta nhanh chóng tìm kiếm phân tích liệu blockchain để thu thơng tin hữu ích 2.1.2 Các thách thức việc lập mục blockchain Có hai thách thức việc lập mục blockchain Thách thức tính phân tán liệu blockchain Dữ liệu blockchain lưu trữ phân tán nhiều nút mạng, điều làm cho việc lập mục trở nên phức tạp đòi hỏi đồng quản lý phân tán hiệu Thách thức liên quan đến tương thích khả mở rộng kỹ thuật lập mục Với gia tăng đáng kể khối lượng liệu blockchain, việc lập mục phải đảm bảo tính mở rộng tương thích để xử lý lượng liệu lớn cách hiệu 2.1.3 Các giải pháp lập mục có Để đáp ứng nhu cầu lập mục kiện blockchain, có nhiều giải pháp lập mục sinh sử dụng Việc đánh giá so sánh giải pháp cần thiết để lựa chọn tảng lập mục phù hợp Nghiên cứu tập trung vào đánh giá giải pháp lập mục có cho kiện blockchain Một số giải pháp phổ biến bao gồm The Graph, Alchemy Bitquery Mỗi giải pháp có ưu điểm hạn chế riêng, việc đánh giá chúng giúp người dùng hiểu rõ khả giải pháp việc lập mục kiện blockchain 2.1.4 Lỗ hỏng kiến thức Mặc dù công nghệ blockchain thu hút quan tâm lớn, tài liệu có chủ yếu tập trung vào khía cạnh khác cơng nghệ blockchain, để lại thách thức hội liên quan đến lập mục kiện blockchain chưa khám phá sâu Nghiên cứu em nhằm bồi đắp vào khoảng trống việc nghiên cứu kỹ thuật lập mục đánh giá giải pháp bật cụ thể The Graph Thông qua việc thu thập phân tích liệu thực nghiệm, em mong muốn đưa thông tin quý giá kiến trúc tính giải pháp lập mục Nghiên cứu giúp cho nhà phát triển, bên liên quan nhà nghiên cứu việc lựa chọn tảng lập mục phù hợp, từ nâng cao tính truy cập khả sử dụng liệu blockchain Bằng cách đóng góp cho tiến việc lập mục kiện blockchain, em mong giúp mở hội để công nghệ blockchain áp dụng sử dụng rộng rãi tương lai Chương NGHIÊN CỨU THỰC NGHIỆM HOẶC LÍ THUYẾT 3.1 Blockchain Blockchain cơng nghệ sở liệu phân tán cho phép ghi lại giao dịch cách an tồn, minh bạch khơng thể sửa đổi Đây hệ thống phi tập trung không phụ thuộc vào quan trung tâm để xác minh giao dịch Thay vào đó, giao dịch xác minh nút mạng thông qua mật mã học 3.1.1 Các đặc điểm blockchain - Phân tán: Blockchain hệ thống phân tán, có nghĩa khơng có quan trung tâm kiểm sốt Điều làm cho an tồn khó bị cơng - Minh bạch: Tất giao dịch blockchain minh bạch, có nghĩa chúng hiển thị cho tất nút mạng Điều mang lại mức độ tin cậy trách nhiệm cao - Không thể thay đổi: Một giao dịch thêm vào blockchain, khơng thể thay đổi chỉnh sửa Điều làm cho việc lưu trữ liệu blockchain an toàn 3.1.2 Các ứng dụng blockchain - Dịch vụ tài chính: Blockchain sử dụng để ghi lại giao dịch tài tốn, khoản vay đầu tư Điều làm cho giao dịch tài trở nên hiệu an tồn - Quản lý chuỗi cung ứng: Blockchain sử dụng để theo dõi việc di chuyển hàng hóa vật liệu chuỗi cung ứng Điều giúp cải thiện minh bạch hiệu chuỗi cung ứng - Chăm sóc sức khỏe: Blockchain sử dụng để lưu trữ chia sẻ hồ sơ y tế Điều cải thiện hiệu cung cấp dịch vụ chăm sóc sức khỏe giúp bệnh nhân dễ dàng truy cập vào hồ sơ y tế 3.1.3 Cách hoạt động công nghệ blockchain Công nghệ blockchain hoạt động cách lưu trữ liệu khối Mỗi khối chứa số giao dịch với mã hash khối trước Mã hash sử dụng để liên kết khối với Mỗi giao dịch thêm vào blockchain xác minh nút mạng Nếu hợp lệ, giao dịch thêm vào khối Khối sau liên kết với khối trước đó, tạo thành chuỗi khối nối tiếp 3.1.4 Ý nghĩa công nghệ blockchain Cơng nghệ blockchain có tiềm cách mạng hóa nhiều ngành công nghiệp Dù giai đoạn phát triển ban đầu, có tiềm tác động lớn đến cách sống làm việc Khi cơng nghệ tiếp tục phát triển, mong đợi thấy ứng dụng blockchain mang tính đổi gây chấn động 3.2 Lập mục (Indexing) Dữ liệu blockchain lưu trữ sở liệu phân tán, điều có nghĩa liệu không lưu trữ địa điểm Điều làm cho việc truy vấn phân tích liệu blockchain trở nên khó, u cầu tìm kiếm qua tất khối blockchain Lập mục blockchain q trình tạo cấu trúc liệu tìm kiếm để truy xuất thơng tin từ liệu blockchain cách hiệu Bằng cách xây dựng bảng mục, ta nhanh chóng tìm kiếm phân tích liệu blockchain để thu thơng tin hữu ích 10 Theo hình 3.5, subgraph lập mục loại event: ExternalBalanceTransfer FlashLoan Các event có hàm để xử lý tương ứng handleExternalBalanceTransfer handleFlashLoan, định nghĩa file src/contract.ts Hình 3.6: Một phần nội dung file src/contract.ts 20 Đồng thời định nghĩa kiểu định nghĩa file schema.graphql, ta thay đổi trường kiểu file schema.graphql để tăng hiệu truy vấn Để ví dụ em thay đổi số trường kiểu ExternalBalanceTransfer FlashLoan thành tiếng Việt Hình 3.7: Một phần nội dung file schema.graphql 21 Sau thay đổi nội dung file schema.graphql, ta phải thay đổi nội dung file src/contract.ts để tương thích với thay đổi file schema.graphql Hình 3.8: File src/contract.ts sau thay đổi Graph Node hỗ trợ việc ánh xạ event blockchain thành kiểu liệu người dùng tùy chỉnh Ngồi ta cịn thêm bước xử lí liệu cần thiết vào hàm xử lí Khi Graph Node phát event ta cần, Graph Node thực ánh xạ event chuyển đổi thành kiểu ta tùy chỉnh lưu vào database để hỗ trợ việc tra cứu dễ dàng 22 Sau thay đổi nội dung file, ta cần phải chạy lệnh “graph codegen” để Graph Node tái tạo lại file cần thiết Nếu lệnh chạy không thành công xảy lỗi, ta cần phải kiểm tra lại file vừa chỉnh sửa, trình thường lỗi file schema.graphql Hình 3.9: Lệnh “graph codegen” chạy lỗi, thích lỗi Sau chạy lệnh “graph codegen” thành công, ta tiếp tục chạy lệnh “graph build” để biên dịch (compile) file vừa tạo Nếu trình lỗi, ta phải chỉnh sửa lại file mã nguồn src/contract.ts 23 Hình 3.10: Lệnh “graph codegen” chạy thành cơng 24 Hình 3.11: Lệnh “graph build” chạy thành cơng 25 Hình 3.12: Lệnh “graph build” chạy lỗi, thích lỗi hiển thị Sau hồn tất q trình build mà khơng có lỗi, ta cho Graph Node bắt đầu trình lập mục với câu lệnh “graph deploy” Đây câu lệnh đầy đủ mà em dùng: “graph deploy node http://localhost:8020/ ipfs http://localhost:5001/ testBalancerSubgraph” Sau chạy Graph Node bắt đầu trình lập mục, data thu thập được truy vấn thơng qua API The GraphQL port 8000 Ở người dùng truy vấn data cách nhập câu query vào phần code phía bên trái hình nhấn nút hình tam giác trên, sử dụng API POST để lấy data code 26 Hình 3.13: UI The GraphQL http://localhost:8000/subgraphs/name/TestBalancerSubgraph/ 27 Hình 3.14: data nhận qua API POST The Graph 28 3.4.5 GraphQL The Graph GraphQL ngôn ngữ truy vấn (query language).GraphQL mở khả tương tác với liệu cách linh hoạt hiệu cách cho phép người dùng định dạng yêu cầu cho liệu họ cần nhận kết phù hợp với yêu cầu The Graph sử dụng GraphQL lớp API để giao tiếp với sở liệu trả liệu cho người dùng, cho phép nhà phát triển ứng dụng truy vấn liệu lập mục blockchain cách tiện lợi hiệu Khi nhận yêu cầu truy vấn, GraphQL phân tích yêu cầu truy vấn để đọc đối tượng, thuộc tính đối tượng yêu cầu mối quan hệ chúng Khi GraphQL thực thi truy vấn, GraphQL xem xét xem có nên kiểm tra nhớ cache hay khơng cách tìm xem subgraph truy vấn có cho phép cache hay khơng, có GraphQL kiểm tra nhớ cache để xem thuộc tính, đối tượng có nằm cache hay khơng, thay truy vấn trực tiếp đến sở liệu Bước giúp tránh truy xuất sở liệu nhiều lần cải thiện thời gian phản hồi Nếu liệu có nhớ cache, GraphQL trả liệu từ cache Nếu subgraph không cho phép cache liệu khơng có nhớ cache GraphQL truy vấn trực tiếp từ sở liệu, xây dựng liệu trả theo kết truy vấn từ sở liệu, định có cho kết truy vấn vào cache hay không trả liệu yêu cầu 29 Hình 3.15: Sơ lược thuật toán truy vấn GraphQL Graph Node 30 Chương TRÌNH BÀY, ĐÁNH GIÁ BÀN LUẬN VỀ KẾT QUẢ Mục tiêu nghiên cứu đánh giá kiến trúc, tính giải pháp lập mục kiện Blockchain Mặc dù vậy, hạn chế thời gian, nghiên cứu em tập trung vào việc đánh giá kiến trúc tính giải pháp cụ thể cho việc lập mục kiện blockchain The Graph Qua nghiên cứu em biết cách vận hành Graph Node để lập mục truy vấn liệu từ blockchain, cách GraphQL truy vấn liệu từ sở liệu Graph Node Nghiên cứu em hướng đến việc cung cấp kiến thức The Graph khả tảng để nghiên cứu sau có tảng để so sánh The Graph với tảng lập mục khác Mặc dù nghiên cứu hạn chế hạn chế thời gian nguồn lực, em mong đóng góp phần cho nghiên cứu giải pháp cho ứng dụng indexing blockchain event tương lai 31 Chương KẾT LUẬN Mặc dù có thách thức định việc lập mục kiện blockchain, nhiều giải pháp hình thành để vượt qua giới hạn như: lập mục tập trung, lập mục phân tán, lập mục kết hợp Nghiên cứu tập trung vào việc đánh giá giải pháp tính tảng lập mục phân tán The Graph The Graph tảng lập mục phi tập trung hướng đến giải thách thức việc truy vấn liệu từ blockchain The Graph mở khả truy cập vào liệu mà khó lấy trực tiếp từ blockchain theo cách thông thường Bằng cách cung cấp giao thức phi tập trung để lập mục truy vấn liệu blockchain thông qua API gọi "subgraph", The Graph vượt qua hạn chế tính chậm chạp phương pháp truy vấn liệu blockchain truyền thống Các subgraphs truy vấn cách sử dụng GraphQL API, cho phép truy xuất liệu blockchain cách hiệu nhanh chóng The Graph cung cấp dịch vụ lưu trữ giao thức phi tập trung, hỗ trợ ứng dụng mã nguồn mở Graph Node Với The Graph, nhà phát triển dễ dàng truy cập phân tích liệu blockchain, nâng cao khả ứng dụng phi tập trung Nghiên cứu cấu trúc The Graph, Graph Node, subgraph, GraphQL Graph Node, cách sử dụng chúng để lập mục kiện blockchain truy vấn liệu 32 Chương HƯỚNG PHÁT TRIỂN Để đẩy mạnh lĩnh vực lập mục truy vấn liệu blockchain, việc khám phá so sánh The Graph với tảng khác thị trường quan trọng Bằng việc tiến hành nghiên cứu tảng thay thế, thu hiểu biết quý giá xác định lĩnh vực cần cải tiến Dưới số hướng phát triển tiềm cho nghiên cứu tương lai: - So sánh: Tiến hành phân tích chi tiết tảng lập mục truy vấn liệu blockchain khác Alchemy Bitquery Đánh giá tính năng, khả mở rộng, hiệu suất, tương thích với hệ điều hành khác trải nghiệm nhà phát triển So sánh tảng với The Graph để xác định điểm mạnh hạn chế tảng - Khám phá ngành nghề khác: Tập trung vào ngành nghề việc lập mục truy vấn liệu blockchain đóng vai trị quan trọng Nghiên cứu cách tảng khác đáp ứng yêu cầu thách thức đặc biệt ngành nghề Phân tích tính phù hợp hiệu chúng cho ứng dụng lĩnh vực tài chính, chuỗi cung ứng, trị chơi tài phi tập trung (DeFi) - Đo Lường Hiệu Năng Thử Nghiệm: Thiết lập tiêu chuẩn đo lường thử nghiệm hiệu để đánh giá hiệu hiệu suất tảng khác Đánh giá yếu tố thời gian đáp ứng truy vấn, lưu lượng liệu sử dụng tài nguyên So sánh đặc điểm hiệu tảng khác để xác định tính phù hợp cho yêu cầu khả mở rộng khác Bằng việc tập trung vào việc nghiên cứu so sánh tảng khác The Graph, có nhìn tồn diện lĩnh vực lập mục truy vấn liệu blockchain Nghiên cứu góp phần đưa lĩnh vực phát triển giúp nhà phát triển đưa định thông minh chọn tảng phù hợp với nhu cầu cụ thể họ 33 TÀI LIỆU THAM KHẢO [1] The Graph, "The Graph Documentation," [Online] Available: https://thegraph.com/docs/ [2] GraphQL Foundation., "GraphQL," GraphQL Documentation, [Online] Available: https://graphql.org/learn/ [3] The Graph, "The Graph Explorer," [Online] Available: https://thegraph.com/explorer/ [4] Ethereum Foundation, "Ethereum Documentation," [Online] Available: https://ethereum.org/en/developers/docs/ [5] The Graph, "The Graph Blog," [Online] Available: https://thegraph.com/blog/ 34