Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 56 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
56
Dung lượng
4,25 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM - BÁO CÁO ĐỒ ÁN MÔN HỌC ĐỒ ÁN TÌM HIỂU VỀ HYPERLEDGER FABRIC VÀ XÂY DỰNG ỨNG DỤNG MINH HOẠ Giảng viên hướng dẫn: ThS Nguyễn Công Hoan Sinh viên thực hiện: Dương Công Vũ 19521110 TPHCM, 11/2021 n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ Mục Lục I GIỚI THIỆU CHUNG Thơng tin nhóm Tổng quan đề tài: 2.1 Giới thiệu đề tài 2.2 Phạm vi nghiên cứu 2.3 Nội dung nghiên cứu 2.4 Kết hướng tới II Công cụ sử dụng CÔNG NGHỆ BLOCKCHAIN Blockchain gì? Lợi ích sử dụng Blockchain Những bất cập mạng blockchain III HYPERLEDGER FABRIC: Giới thiệu Hyperledger Foundation Tổng quan Hyperledger Fabric 10 Cộng đồng sử dụng 11 Tính bật 11 5.1 Mạng blockchain phân quyền 11 5.2 Cơ chế đồng thuận linh hoạt 12 5.3 Tính module hố 12 Kiến trúc môi trường cài đặt 13 Khái niệm bản: 14 IV 7.1 Identity 14 7.2 Membership Service Provider (MSP) 16 7.3 Policies 17 7.4 Peers 18 7.5 Ledger 19 7.6 Ordering Service 22 7.7 Smart Contract & Chaincode 23 7.8 Chaincode lifecycle 24 MINIFABRIC 26 Giới thiệu Minifabric 26 n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ Các câu lệnh 27 2.1 Tải mã nguồn từ Github cài đặt 27 2.2 Khởi chạy 28 2.3 Tắt mạng 29 2.4 Cài đặt chaincode 29 2.5 Sử dụng chaincode 30 2.6 Truy vấn khối 31 2.7 Sửa đổi channel 32 2.8 Thêm tổ chức vào mạng 32 2.9 Truy vấn tình trạng mạng 32 2.10 Khởi chạy Hyperledger Explorer 33 Các cài đặt 34 XÂY DỰNG ỨNG DỤNG MINH HOẠ 37 V Giới thiệu ứng dụng minh hoạ 37 Kiến trúc hệ thống 39 Dữ liệu sổ 40 Các bước tiến hành 41 VI 4.1 Thiết lập cấu hình cho mạng, channel chaincode 41 4.2 Lập trình chaincode 42 4.3 Khởi chạy mạng 46 4.4 Sử dụng chaincode 50 4.5 Lập trình ứng dụng 52 TỔNG KẾT 55 Kết đạt 55 Mục tiêu hướng tới 55 TÀI LIỆU THAM KHẢO 56 n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ I GIỚI THIỆU CHUNG Thơng tin nhóm Nhóm gồm thành viên: - Thành viên MSSV Lớp Email : Dương Công Vũ : 19521110 : PMCL2019.1 : 19521110@gm.uit.edu.vn Tổng quan đề tài: 2.1 Giới thiệu đề tài Hệ sinh thái Hyperledger đặc biệt Hyperledger Fabric nhận quan tâm nhiều nhà phát triển blockchain toàn giới Với mã nguồn mở, khả linh hoạt trọng cài dặt vận hành, Hyperledger Fabric cơng cụ triển khai mạng blockchain có phân quyền ưa chuộng Cùng với xu phát triển giới, tập đoàn, chỉnh phủ quan nỗ lực áp dụng công nghệ blockchain vào giải vấn đề hành Với Hyperledger Fabric, nhà phát triển dễ dàng tiếp cận với công nghệ blockchain xây dựng ứng dụng liên quan tới công nghệ 2.2 Phạm vi nghiên cứu Bài nghiên cứu tập trung vào thành phần, khái niệm Hyperledger Fabric chức năng, nhiệm vụ thành phần phương pháp áp dụng công nghệ vào xây dựng mạng blockchain 2.3 Nội dung nghiên cứu Nghiên cứu bao gồm khái niệm blockchain, giới thiệu dự án Hyperledger Hyperledger Fabric thành phần Ngoài đề cập tới Minifabric, công cụ giúp vận hành triển khai mạng Fabric cách nhanh chóng ứng dụng Minifabric để xây dựng mạng blockchain đơn giản 2.4 Kết hướng tới - Kiến thức công nghệ blockchain - Hiểu kiến trúc Hyperledger Fabric - Sử dụng câu lệnh Minifabric - Xây dựng thành công mạng blockchain với Minifabric Công cụ sử dụng - Hyperledger Fabric framework - Minifabric - Docker - IDE Visual code - Ngơn ngữ lập trình chaincode NodeJs n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ II CÔNG NGHỆ BLOCKCHAIN Blockchain gì? Từ lâu khái nhiệm blockchain trở thành thuật ngữ quen thuộc ngành công nghệ thông tin lĩnh vực khác đời sống Các cơng ty, tập đồn chí phủ nỗ lực áp dụng công nghệ blockchain vào lĩnh vực để tận dụng hiệu suất cơng việc Tuy có nhiều khái niệm phức tạp, nhìn chung blockchain hệ thống lưu trữ liệu phân tán Dữ liệu lưu trữ nhiều nơi máy tính tham gia vào mạng blockchain (gọi node) gọi sổ Mỗi node giữ phiên sổ phiên ln đồng giữ tính thống liệu Sổ nơi lưu trữ liệu hay lịch sử giao dịch thực mạng blockchain Các giao dịch đóng gói mã hoá chiều để tạo thành khối (block) liệu block thay đổi trực tiếp mà phải tạo thêm block để thay đổi liệu Các block liên kết với thông qua việc block sau giữ giá trị mã hoá block trước tạo thành sợi xích vững chãi khó để phá vỡ thay đổi block cần phải thay đổi block sau liên kết với Blockchain nơi lưu trữ thơng tin an tồn thay đổi thông tin node, ta cần phải chiếm quyền điều khiển phần lớn node khác mạng lưới để thay đổi liệu sổ Bên cạnh lợi ích sổ phân tán, blockchain cịn cung cấp hợp đồng thơng minh Đây loại chương trình chạy mạng blockchain để thao tác với liệu sổ Các hợp n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ đồng thơng minh đóng vai trị giống hợp đồng nhằm thực giao dịch tự động an tồn thơng qua chế đồng thuận Cơ chế giúp giữ cho liệu mạng blockchain thống đồng cách cần lượng lớn node tham gia đồng thuận giao dịch giao dịch hợp lệ Lợi ích sử dụng Blockchain Điểm mạnh lớn blockchain công nghệ lưu trữ liệu đại Khác với phương thức lưu trữ trước sở liệu tập trung, sổ sách, giấy tờ, blockchain đem đến cho cách thức lưu trữ an tồn, minh bạch Sẽ khơng cịn tình trạng giả mạo thông tin giao dịch giao dịch mạng blockchain minh bạch kiểm chứng hay khơng cịn tình trạng lợi dụng thơng tin khơng đồng để trục lợi dự liệu blockchain ln đồng Do tính ngang hàng thành phần mạng blockchain nên bỏ qua bên trung gian không cần thiết nhằm tiết kiệm chi phí thời gian Trước đây, thực giao dịch thường cần bên thứ đứng làm chứng, điều khiến giao dịch trở nên phức tạp tốn nhiều thời gian, chi phí Với việc áp dụng cơng nghệ blockchain, bên liên quan trực tiếp n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ giao dịch với từ tối ưu chi phí Vd: nhà nơng trực tiếp buôn bán với khách hàng mà không cần thơng qua thương lái Từ đó, nhiều mơ hình kinh doanh tinh gọn thành phần Những bất cập mạng blockchain Lợi ích blockchain rõ ràng bên cạnh cịn tồn số hạn chế khiến việc áp dụng blockchain vào thực tế nhiều khó khăn Hệ thống phức tạp: Để cài đặt mạng blockchain cần đội ngũ lớn kĩ sư chuyên gia blockchain công nghệ khó tiếp cận đặc thù Ngồi mạng blockchain cịn có quy định hệ thống riêng biệt, khó để đưa quy trình chuẩn Kích thước mạng lưới: Một mạng blockchain để hoạt động hiệu cần lượng lớn node tham gia vào trì hoạt động Việc vơ hình chung khiến việc triển khai ứng dụng blockchain trở nên khó khăn khơng đủ tài ngun nội mở mạng blockchain công cộng để node bên tham gia số liệu bảo mật, lưu hành phạm vi quan n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ Tính bảo mật pháp lý: Việc có q node mạng blockchain gây nên vấn đề bảo mật hệ thống bị cơng dễ dàng thơng qua chiếm quyền điều khiển vài node Bên cạnh đó, chưa có quy định rõ ràng việc quản lí thực giao dịch mạng blockchain nên nhiều doanh nghiệp chưa thể triển khai tảng blockchain III HYPERLEDGER FABRIC: Giới thiệu Hyperledger Foundation “Hyperledger Foundation tổ chức phi lợi nhuận cung cấp tài nguyên nguồn lực cần thiết để đảm phát triển hệ sinh thái xung quanh dự án blockchain mã nguồn mở” Là dự án Linux Foundation, bắt đầu phát triển cuối năm 2015, tới nay, dự án Hyperledger nhận them hậu thuẫn từ ông lớn làng công nghệ IBM, Intel, SAP Ariba nhằm hỗ trợ phát triển hệ thống sổ phân tán ứng dụng liên quan dựa công nghệ blockchain Mục tiêu dự án phát triển công nghệ sổ phân tán dựa công nghệ blockchain nhằm hỗ trợ vào lĩnh vực đời sống tài chính, cơng nghệ, logistics,… Dự án phát đưa tiêu chuẩn thiết kế tạo module nhằm vận hành mạng blockchain cách dễ dàng nhanh chóng Ngồi cịn cung cấp cơng cụ kiểm sốt, quản lí vận hành mạng lưới blockchain, module dự án phát triển độc lập dễ dàng kết hợp với qua tiêu chuẩn có sẵn Qua năm phát triển, với đóng góp cộng đồng cơng ty hàng đầu công nghệ, Hyperledger Foundation cho mắt framework công cụ hỗ trợ trọng xây dựng vận hành mạng lưới blockchain bao gồm: framework lớn mắt: - Hyperledger Fabric Hyperledger Iroha Hyperledger Sawtooth Hyperledger Besu công cụ hỗ trợ: - Hyperledger Caliper: Công cụ đo lường mạng blockchain Hyperledger Cello: Bộ công cụ phát triển blockchain Hyperledger Composer: Bộ công cụ xây dựng mạng blockchain cho môi trường doanh nghiệp Hyperledger Explorer: Ứng dụng web giúp giám sát mạng blockchain Hyperledger Quilt: Công cụ vận hành hệ thống blockchain Hyperledger Ursa: Thư viện mã hố n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ Ngoài ra, đội ngũ phát triển nhiều dự án khác, tất dự án Hyperledger mã nguồn mở sẵn sàng nhận đóng góp cộng đồng Thơng tin dự án xem trang chủ dự án Tổng quan Hyperledger Fabric Được phát triển thức IBM Digital Asset, Hyperledger Fabric tảng blockchain sử dụng rộng rãi doanh nghiệp lớn Hyperledger Fabric thiết kế tảng để từ phát triển ứng dụng, giải pháp theo hướng module hoá Tất thành phần gồm sổ cái, hợp đồng thơng minh, node dễ dàng kết hợp với để tạo nên mạng blockchain Hyperledger Fabric công nghệ sổ phân tán blockchain sử dụng rộng rãi Là dự án thành lập Linux Foundation (một tổ chức có nhiều năm phát triển dự án mã nguồn mở), Hyperledger Fabric hứa hẹn phát triển mạnh mẽ Hiện có 35 tổ chức 200 nhà phát triển đóng góp vào mã nguồn Hyperledger Fabric Sự linh hoạt dễ sử dụng hầu hết công nghệ blockchain Ethereum, NEO,… giúp công nghệ sử dụng nhiều lĩnh vực khác nông nghiệp, vận tải, giáo dục, hành chính, bảo hiểm, y tế… phát hành nhạc kỹ thuật số Tuy vậy, Hyperledger công nghệ cấp độ doanh nghiệp, nghĩa cần đội ngũ phát triển giỏi dày dặn kinh nghiệm thiết kế mạng blockchain hồn chỉnh Lịch sử hình thành phát triển Được mắt từ năm 2015 alpha release (1.0) vào năm 2016, Hyperledger fabric xem dự án cốt lõi dự án Hyperledger Phiên thời điểm viết báo cáo v2.3.3 mắt ngày 2/9/2021 Github dự án tiếp nhận 13.900 commit từ 200 nhà phát triển n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ 4.2 Lập trình chaincode Để cung cấp khả tương tác cho ứng dụng, ta cần lập trình voucher chaincode bao gồm phương thức sau: • • • • • • • CreateVoucher: tạo voucher lưu vào sổ ReadVoucher: đọc thông tin voucher thơng qua id DeleteVoucher: xố voucher CommitVoucher: xác nhận sử dụng voucher (phương thức gọi dealer) GetVoucherHistory: trả lịch sử trạng thái voucher VoucherExists: kiểm tra tồn voucher InitLedger: phương thức khởi tạo mặc định cho chaincode Chaincode phát triển Javascript thông qua thư viện “fabric-contract-api” để tương tác với sổ Minifabric chuẩn bị sẵn chaincode mẫu Javascript folder chaincode để làm mẫu (bao gồm số hàm có sẵn) cho nhà phát triển dựa vào, ta cần copy folder chaincode có sẵn, đổi tên bắt đầu lập trình chaincode n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ Hàm CreateVoucher nhận vào thông tin voucher lưu vào sổ cái: Trước thực thêm voucher, ta tiến hành kiểm tra tồn key hàm VoucherExists Sau sử dụng hàm putState lưu trữ thông tin voucher vào sổ cái, ta tiếp tục tạo indexKey tạo (voucher_id, citizen_id) thêm vào sở liệu để thực truy vấn nhanh n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ Phương thức VoucherExists nhận tham số đầu vào key kiểm tra tồn document với key sổ hay chưa: Phương thức ReadVoucher nhận tham số đầu vào key trả thông tin voucher tồn tại: Phương thức DeleteVoucher nhận key làm tham số thực xoá voucher khỏi sổ Khi xố record liệu, ta cần xố record index key Hàm thực truy vấn voucher, xoá voucher, tạo index key xoá index key: Để truy vấn thông tin lịch sử voucher, ta cài đặt hàm GetVoucherHistory: n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ Trong hàm GetVoucherHistory, tao iterator history hàm getHistoryForKey sử dụng hàm _GetAllResults định nghĩa sẵn để truy vấn toàn lịch sử document sổ Phương thức CommitVoucher dùng Dealer để xác nhận voucher sử dụng cách thay đổi trạng thái voucher thơng tin dealer, package,… n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ Phương thức InitLedger tuỳ chọn thiết lập để kiểm tra chaincode thực cài đặt khởi chạy mạng Trong hàm InitLedger, ta sử dụng phương thức cài đặt bên để tương tác với sổ Ở ví dụ bên ta sử dụng phương thức CreateVoucher để tạo voucher mẫu lưu vào sổ cái: 4.3 Khởi chạy mạng Sau chuẩn bị xong thiết lập chaincode cho mạng, ta tiến hành build Docker image với name tag là: “hyperledgerlabs/minifab:latest” Có thể sử dụng Image có sẵn Docker hub thiết lập không áp dụng nên ta build image local Sử dụng câu lệnh: docker build -t hyperledgerlabs/minifab:latest n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ Tiếp đến ta sử dụng câu lệnh: /minifab up Để khởi chạy mạng Ta thấy thuộc tính thiết lập từ trước áp dụng vào câu lệnh khởi chạy mạng n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ Minifabric khởi tạo peer orderer khai báo spec.yaml tiến hành cài đặt kênh, thêm node vào kênh, khởi tạo chaincode mặc định, thực discovery số thao tác khác để mạng sẵn sàng Hình bên output câu lệnh khởi tạo mạng thành công n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ Tiếp theo ta kích hoạt module Expolorer để quan sát thành phần mạng cách trực quan câu lệnh: /minifab expolorerup Sau câu lệnh hồn thành, ta truy cập vào đường dẫn đăng nhập vào với tài khoản mật bên để quan sát mạng Fabric cách trực quan n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ Ở hình trang chủ explorer, ta quan sát số blocks, số giao dịch, chaincode, nodes, tổ chức mạng số block thêm vào sổ Qua phần chaincode ta thấy chaincode voucher thêm thành cơng vào mạng sẵn sàng sử dụng 4.4 Sử dụng chaincode Sau khởi tạo mạng thành phần mạng thành cơng, chaincode voucher sử dụng, ta sử dụng phương thức InitLedger khai báo câu lệnh: /minifab invoke -n voucher -p '"InitLedger"' Khi câu lệnh trả với status: 200 nghĩa smart contract thực thi thành cơng n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ Khi kiểm tra thông tin block explorer, ta thấy block thêm vào với transaction thành công Đây block tạo node orderer đẩy vào sổ peer Để truy vấn thông tin block ta sử dụng câu lệnh: /minifab blockquery Sau câu lệnh hoàn thành, file tạo folder vars chứa thông tin block vừa tạo gồm mã hash tham số truyền vào smart contract: Tiếp đến ta sử dụng câu lệnh query để lấy thông tin voucher vừa thêm vào qua phương thức ReadVoucher: /minifab query -n voucher -p ‘“ReadVoucher”, “133”’ n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ Sau câu lệnh hoàn thành trả result voucher thêm vào phương thức InitLedger (câu lệnh query khơng tạo block mới) 4.5 Lập trình ứng dụng Để giúp người dùng tương tác với mạng blockchain, ta tạo server trung gian xử lý tác vụ người dùng gọi chaincode mạng Các giao dịch ký danh nghĩa tổ chức user cấu hình trước Ta cần tạo Ledger service để thay mặt người dùng thao tác với sổ Minifabric tạo cho profile kết nối nhằm dễ dàng sử dụng SDK để lập trình ứng dụng n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ Trong hệ thống ta xây dựng ứng dụng NestJs kết hợp thư viện fabric-netwok Trước tiên ta cần tạo Hyperledger Service để khởi tạo kết nối tới mạng profile Minifabric tạo Hàm initWallet sử dụng biến config profile cung cấp sẵn tạo kết nối ứng dụng mạng Fabric Sau ta cài đặt Ledger service thực tác vụ liên quan tới sổ n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ thông qua chaincode Các service khác ứng dụng sử dụng phương thức Ledger service để tương tác với sổ Ledger serivce bao gồm phương thức: createVoucher, commitVoucher, deleteVoucher getVoucher n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ VI TỔNG KẾT Kết đạt Qua trình tìm hiểu Hyperledger Fabric, nhóm thu nhiều kiến thức Blockchain, ưu nhược điểm công nghệ cách Hyperledger Fabric giải nhược điểm blockchain Tìm hiểu khái niệm Hyperledger Fabric hệ sinh thái Hyperledger Khái niệm thành phần cấu tạo nên mạng Fabric cách thành phần tương tác với Tìm hiểu Minifabric dành cho nhà phát triển mạng Fabric tìm hiểu mạng cách đơn giản cách xây dựng mạng Fabric Minifabric Nhóm tạo hệ thống mạng blockchain hoàn chỉnh ứng dụng mà người dùng thơng qua tương tác với mạng blockchain cách dễ dàng Qua có nhìn tổng quan Hyperledger Fabric cách áp dụng Minifabric sử dụng SDK tạo ứng dụng tương tác với blockchain Hiểu thành phần đề cập phần lý thuyết cách mạng blockchain vận hành Mục tiêu hướng tới Không dừng lại việc xây dựng ứng dụng minh hoạ cho Hyperledger Fabric, nhóm cịn mong muốn áp dụng công nghệ để triển khai hệ thống phân phát quản lý voucher tảng blockchain triển khai hệ thống quản lý container khác Kubernetes Nhóm hướng tới mục tiêu tìm hiểu sâu Hyperledger Fabric hệ sinh thái Hyperledger để vận dụng tốt cơng nghệ vào đời sống n Tìm hiểu Hyperledger Fabric xây dựng ứng dụng minh hoạ TÀI LIỆU THAM KHẢO [1] Hyperledger About: Hyperledger – Open Source Blockchain Technologies [2] Hyperledger Fabric document: A Blockchain Platform for the Enterprise — hyperledger-fabricdocs master documentation [3] Giới thiệu Hyperledger Fabric: Giới thiệu Hyperledger Fabric | GMO-Z.com Vietnam Lab Center [4] Minifabric document: minifabric/README.md at main · hyperledger-labs/minifabric (github.com) [5] Hyperledger Wiki: Hyperledger - Wikipedia [6] Custom Hyperledger Fabric with Minifabric: Custom Hyperledger Fabric Network with Minifabric | by Dilum Bandara | Medium n