Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 73 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
73
Dung lượng
1,87 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 BÙI TRUNG TÍN TRẦN THỊ CẨM TÚ KHĨA LUẬN TỐT NGHIỆP HỆ THỐNG E-VOUCHER SỬ DỤNG BLOCKCHAIN Blockchain E-Voucher System KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM TP HỒ CHÍ MINH, 2021 ĐẠ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 BÙI TRUNG TÍN – 16521239 TRẦN THỊ CẨM TÚ – 16521351 KHÓA LUẬN TỐT NGHIỆP HỆ THỐNG E-VOUCHER SỬ DỤNG BLOCKCHAIN Blockchain E-Voucher System KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM GIẢNG VIÊN HƯỚNG DẪN Th.S HOÀNG VĂN HÀ TP HỒ CHÍ MINH, 2021 THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ngày Hiệu trường Trường Đại học Công nghệ Thông tin ……………………………………………… – Chủ tịch ……………………………………………… – Thư ký ……………………………………………… – Ủy viên ……………………………………………… – Ủy viên LỜI CẢM ƠN Sau trình học tập rèn luyện khoa Công nghệ phần mềm trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM chúng em trang bị kiến thức bản, kỹ thực tế để hồn thành Khóa luận tốt nghiệp Chúng em xin gửi lời cám ơn sâu sắc đến thầy Hoàng Văn Hà người trực tiếp hướng dẫn chúng em, tạo nhiều điều kiện thuận lợi, góp ý kiến mặt chuyên môn q trình thực khóa luận nhờ đó mà chúng em có thể hoàn thành đề tài thời gian cho phép Chúng xin gửi lời cám ơn đến cha mẹ gia đình người thân nuôi dưỡng, động viên, tạo điều kiện thuận lợi cho chúng Đồng thời, chúng em xin cám ơn chân thành đến quý thầy cô Khoa bạn bè gần xa quan tâm theo sát chúng em tạo cho chúng em nguồn động lực để hồn khóa luận Trong trình thực có sai sót, kính mong nhận chỉ bảo quý thầy cô Thành phố Hồ Chí Minh, ngày 14 tháng 01 năm 2021 Sinh viên BÙI TRUNG TÍN TRẦN THỊ CẨM TÚ MỤC LỤC Chương TỔNG QUAN 1.1 Bối cảnh nhu cầu thực tế 1.2 Mục tiêu 1.3 Nội dung đề tài Chương LARAVEL VOYAGER 2.1 Laravel Framework 2.2 Laravel Voyager gì? 2.3 Các khái niệm Laravel Voyager 2.3.1 Trình quản lý sở liệu – Database Manager 2.3.2 Xây dựng menu cho ứng dụng web 2.3.3 Compass Chương LARAVEL ORCHID 10 3.1 Tổng quan 10 3.2 Lợi ích 10 Chương CÔNG NGHỆ BLOCKCHAIN 13 4.1 Blockchain gì? 13 4.2 Cấu tạo Blockchain 13 4.3 Tính bảo mật Blockchain 14 4.3.1 Kiến trúc hệ thống truyền thống 15 4.3.2 Kiến trúc hệ thống Blockchain 15 4.3.3 Các thành phần cấu tạo nên hệ thống Blockchain 16 4.4 Các hack hệ thống Blockchain 20 Chương ETHEREUM VÀ SMART CONTRACT 22 5.1 Ethereum – Blockchain 2.0 22 5.1.1 Tổng quan Ethereum 22 5.1.2 Kiến trúc hệ thống Ethereum 22 5.2 Hợp đồng thông minh (Smart Contract) 24 5.2.1 Smart Contract gì? 24 5.2.2 Cách thức hoạt động Smart Contract 24 5.2.3 Ưu điểm nhược điểm Smart Contract 25 Chương KĨ THUẬT LẬP TRÌNH SMART CONTRACT 26 6.1 Ngơn ngữ Solidity 26 6.2 Mã nguồn mở ethereum-php 27 6.3 Ganache Ropsten Testnet 28 6.3.1 Ganache 28 6.3.2 Ropsten Testnet MetaMask 29 6.4 Truffle Framework 30 Chương ỨNG DỤNG BLOCKCHAIN VÀO BÀI TỐN THỰC TIỄN 32 7.1 Bài tốn thực tiễn 32 7.2 Giải pháp 34 7.3 Thiết kế tổng quan hệ thống 34 7.4 Thiết kế sở liệu 36 7.5 Lượt đồ Use – Case 37 7.5.1 Quản lý tài khoản 38 7.5.2 Quản lý đối tác 43 7.5.3 Quản lý đăng ký dịch vụ đối tác 48 7.5.4 Quản lý voucher 52 7.5.5 Tra cứu thông tin voucher 56 7.5.6 Phát hành voucher 57 7.5.7 Thu hồi voucher 58 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 59 8.1 Kết luận 59 8.1.1 Về thành viên nhóm 59 8.1.2 Về sản phẩm 59 8.2 Hướng phát triển 60 TÀI LIỆU THAM KHẢO 61 DANH MỤC HÌNH Hình 2.1: Cách làm việc với BREAD Hình 2.2: Cách Voyager quản lý menu Hình 2.3: Tính Compass Voyager Hình 3.1: Kiến trúc tầng Orchid 11 Hình 3.2: Mơ hình MVC Orchid 12 Hình 4.1: Cấu trúc khối 14 Hình 4.2: Cơ chế liên kết theo mã băm khối Blockchain 14 Hình 4.3: Kiến trúc Client – Server 15 Hình 4.4: Kiến trúc Sổ phân tán 16 Hình 4.5: Mơ hình đồng thuận phi tập trung – 17 Hình 4.6: Mơ hình đồng thuận phi tập trung – 18 Hình 4.7: Minh họa hoạt động Mining (đào block) - 19 Hình 4.8: Minh họa hoạt động Mining (đào block) – 20 Hình 6.1: Ví dụ Smart Contract đơn giản 26 Hình 6.2: Triển khai Smart Contract lên Ethereum 27 Hình 6.3: Mơ hình tương tác với Ethereum với ethereum-php 28 Hình 6.4: Ứng dụng Ganache máy cá nhân 28 Hình 6.5: Ứng dụng Etherscan 29 Hình 6.6: Ứng dụng MetaMask 30 Hình 7.1: Voucher giảm giá dạng giấy phát hành Highlands Coffee 32 Hình 7.2: Voucher điện tử phát hành qua email 33 Hình 7.3: Sơ đồ tổng quan hệ thống 34 Hình 7.4: Thiết kế sở liệu 36 Ảnh 7.5 Mơ hình Use – Case toàn hệ thống 37 Ảnh 7.6 Lượt đồ Use – Case: Quản lý tài khoản 38 Ảnh 7.7 Lượt đồ Use – Case: Đăng ký tài khoản 38 Ảnh 7.8 Lượt đồ Use – Case: Kích hoạt tài khoản 40 Ảnh 7.9 Lượt đồ Use – Case: Đăng nhập 41 Ảnh 7.10 Lượt đồ Use – Case: Đăng xuất 42 Ảnh 7.11 Lượt đồ Use – Case: Quản lý đối tác 43 Ảnh 7.12 Lượt đồ Use – Case: Quản lý danh sách đối tác 44 Ảnh 7.13 Lượt đồ Use – Case: Thêm đối tác 45 Ảnh 7.14 Lượt đồ Use – Case: Sửa đối tác 46 Ảnh 7.15 Lượt đồ Use – Case: Xóa đối tác 47 Ảnh 7.16 Lượt đồ Use – Case: Quản lý đăng ký dịch vụ 48 Ảnh 7.17 Lượt đồ Use – Case: Xem danh sách Đăng ký dịch vụ 49 Ảnh 7.18 Lượt đồ Use – Case: Khởi tạo Đăng ký dịch vụ 50 Ảnh 7.19 Lượt đồ Use – Case: Cập nhật liệu Đăng ký dịch vụ 51 Ảnh 7.20 Lượt đồ Use – Case: Quản lý voucher 52 Ảnh 7.21 Lượt đồ Use – Case: Xem danh sách voucher tạo 53 Ảnh 7.22 Lượt đồ Use – Case: Thêm voucher 54 Ảnh 7.23 Lượt đồ Use – Case: Cập nhật liệu voucher 55 Ảnh 7.24 Lượt đồ Use – Case: Tra cứu thông tin voucher 56 Ảnh 7.25 Lượt đồ Use – Case: Phát hành voucher 57 Ảnh 7.26 Lượt đồ Use – Case: Thu hồi voucher 58 DANH MỤC BẢNG Bảng 7.1 Use – Case đăng ký tài khoản 39 Bảng 7.2 Use – Case Kích hoạt tài khoản 40 Bảng 7.3 Use – Case Đăng nhập 41 Bảng 7.4 Use – Case Đăng xuất 42 Bảng 7.5 Use – Case: Quản lý danh sách đối tác 44 Bảng 7.6 Use – Case: Thêm đối tác 45 Bảng 7.7 Use – Case: Thêm đối tác 46 Bảng 7.8 Use – Case: Xóa đối tác 47 Bảng 7.9 Use – Case: Xem danh sách Đăng ký dịch vụ 49 Bảng 7.10 Use – Case: Khởi tạo Đăng ký dịch vụ 50 Bảng 7.11 Use – Case: Cập nhật liệu Đăng ký dịch vụ 51 Bảng 7.12 Use – Case: Xem danh sách voucher tạo 53 Bảng 7.13 Use – Case: Thêm voucher 54 Bảng 7.14 Use – Case: Cập nhật liệu voucher 55 Bảng 7.15 Use – Case: Tra cứu thông tin voucher 56 Bảng 7.16 Use – Case: Phát hành voucher 57 Bảng 7.17 Use – Case: Thu hồi voucher 58 7.5.2.4 Xóa đối tác Ảnh 7.15 Lượt đồ Use – Case: Xóa đối tác Xóa đối tác Cho phép người dùng có thể xóa Requirements thông tin đối tác Actors Quản trị hệ thống (admin) Pre-conditions Chỉ tài khoản admin có quyền hạn cao phép xóa liệu Nếu thành cơng, liệu đối tác Post-conditions bị xóa Constraints Khơng Include Khơng Extend Không Extension points Không Bảng 7.8 Use – Case: Xóa đối tác 47 7.5.3 Quản lý đăng ký dịch vụ đối tác Ảnh 7.16 Lượt đồ Use – Case: Quản lý đăng ký dịch vụ 48 7.5.3.1 Theo dõi danh sách đăng ký dịch vụ đối tác Ảnh 7.17 Lượt đồ Use – Case: Xem danh sách Đăng ký dịch vụ Xem danh sách Đăng ký dịch vụ Cho phép người dùng có thể theo dõi Requirements đăng ký dịch vụ đối tác Actors Quản trị hệ thống (admin) Pre-conditions Người dùng trước tiên phải đăng nhập Nếu thành cơng, người dùng Post-conditions truy cập vào trang danh sách đăng ký dịch vụ Constraints Không Include Không Extend Không Extension points Không Bảng 7.9 Use – Case: Xem danh sách Đăng ký dịch vụ 49 7.5.3.2 Khởi tạo đăng ký dịch vụ cho đối tác Ảnh 7.18 Lượt đồ Use – Case: Khởi tạo Đăng ký dịch vụ Khởi tạo Đăng ký dịch vụ Cho phép người dùng có thể khởi tạo Requirements đăng ký dịch vụ cho đối tác Actors Quản trị hệ thống (admin) Pre-conditions Người dùng trước tiên phải đăng nhập Post-conditions Nếu thành công, hệ thống khởi tạo đăng ký dịch vụ cho đối tác Constraints Không Include Không Extend Không Extension points Không Bảng 7.10 Use – Case: Khởi tạo Đăng ký dịch vụ 50 7.5.3.3 Cập nhật thông tin đăng ký dịch vụ Ảnh 7.19 Lượt đồ Use – Case: Cập nhật liệu Đăng ký dịch vụ Cập nhật liệu Đăng ký dịch vụ Cho phép người dùng có thể khởi tạo Requirements cập nhật liệu đăng ký dịch vụ Actors Quản trị hệ thống (admin) Pre-conditions Người dùng trước tiên phải đăng nhập Nếu thành cơng, người dùng Post-conditions truy cập vào trang chi tiết thay đổi liệu Constraints Không Include Không Extend Không Extension points Không Bảng 7.11 Use – Case: Cập nhật liệu Đăng ký dịch vụ 51 7.5.4 Quản lý voucher Ảnh 7.20 Lượt đồ Use – Case: Quản lý voucher 52 7.5.4.1 Xem danh sách voucher tạo Ảnh 7.21 Lượt đồ Use – Case: Xem danh sách voucher tạo Xem danh sách voucher tạo Cho phép người dùng có thể quản lý Requirements danh sách voucher tạo Đối tác (chủ cửa hàng cần tạo mã Actors giảm giá) Người dùng trước tiên phải đăng Pre-conditions nhập Nếu thành công, người dùng Post-conditions truy cập vào trang danh sách voucher Constraints Không Include Không Extend Không Extension points Không Bảng 7.12 Use – Case: Xem danh sách voucher tạo 53 7.5.4.2 Thêm voucher Ảnh 7.22 Lượt đồ Use – Case: Thêm voucher Thêm voucher Cho phép người dùng tạo Requirements voucher Đối tác (chủ cửa hàng cần tạo mã Actors giảm giá) Người dùng trước tiên phải đăng Pre-conditions nhập Post-conditions Nếu thành công, liệu voucher lưu trữ vào sở liệu đồng lên hệ thống Blockchain Constraints Không Include Không Extend Không Extension points Không Bảng 7.13 Use – Case: Thêm voucher 54 7.5.4.3 Cập nhật liệu voucher Ảnh 7.23 Lượt đồ Use – Case: Cập nhật liệu voucher Cập nhật liệu voucher Cho phép người dùng cập nhật lại Requirements thông tin voucher tạo trước đó Đối tác (chủ cửa hàng cần tạo mã Actors giảm giá) Người dùng trước tiên phải đăng Pre-conditions nhập Post-conditions Nếu thành công, liệu voucher cập nhật vào sở liệu đồng lên hệ thống Blockchain Constraints Không Include Không Extend Không Extension points Không Bảng 7.14 Use – Case: Cập nhật liệu voucher 55 7.5.5 Tra cứu thông tin voucher Ảnh 7.24 Lượt đồ Use – Case: Tra cứu thông tin voucher Tra cứu thông tin voucher Cho phép người dùng có thể tra cứu Requirements thông tin voucher Bất kỳ có mã QR code Actors tra cứu thông tin Pre-conditions Không Post-conditions Nếu thành công, hệ thống hiển thị thông tin cần thiết voucher cho hành động tra cứu Constraints Không Include Không Extend Không Extension points Không Bảng 7.15 Use – Case: Tra cứu thông tin voucher 56 7.5.6 Phát hành voucher Ảnh 7.25 Lượt đồ Use – Case: Phát hành voucher Phát hành voucher Cho phép người dùng phát hành Requirements voucher tạo đến tay khách hàng Đối tác (chủ cửa hàng cần tạo mã Actors giảm giá) Pre-conditions Không Post-conditions Nếu thành công, hệ thống gửi mail chứa voucher dạng QR code đến khách hàng đối tác Constraints Không Include Không Extend Không Extension points Không Bảng 7.16 Use – Case: Phát hành voucher 57 7.5.7 Thu hồi voucher Ảnh 7.26 Lượt đồ Use – Case: Thu hồi voucher Thu hồi voucher Cho phép người dùng tra cứu thông Requirements tin voucher, thu hồi áp dụng giảm giá cho khách hàng Đối tác (chủ cửa hàng cần tạo mã Actors giảm giá) Pre-conditions Không Post-conditions Nếu thành công, hệ thống cập nhật lại trạng thái voucher DB đồng lên Blockchain Constraints Không Include Không Extend Không Extension points Không Bảng 7.17 Use – Case: Thu hồi voucher 58 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Qua q trình tìm hiểu, nghiên cứu cơng nghệ Blockchain xây dựng sản phẩm demo, nhóm gặt hái kết sau 8.1 Kết luận 8.1.1 Về thành viên nhóm • Tìm hiểu sâu chất cách thức hoạt động công nghệ Blockchain kèm theo cách lập trình áp dụng cơng nghệ vào sản phẩm cuối • Hiểu rõ thêm quy trình thực dự án, tối ưu trải nghiệm người dùng tập đặt vào vị trí người dùng để cải thiện sản phẩm • Trau chuốt khả lập trình với công nghệ Solidity, Truffle, Laravel, Bootstap xây dựng tác phong làm việc nhóm • Rèn luyện khả chịu áp lực giải vấn đề nhanh chóng 8.1.2 Về sản phẩm • Hồn thiện chức lớn đề như: chức phát hành quản lý voucher, chức quản lý tài khoản phân quyền, chức theo dõi gói voucher đối tác, chức phát hành voucher đến khách hàng thơng qua kênh email,… • Áp dụng cơng nghệ Blockchain (Ethereum) góp phần làm bật phần cốt lõi đặc biệt dự án • Kiến trúc thiết kế để dễ dàng mở rộng thêm chức tương lai 59 8.2 Hướng phát triển Với tính công nghệ tại, có nhiều hướng triển vọng dành cho sản phẩm Trong tương lai, dịch vụ trang bị thêm hệ thống toán trực tuyến qua dịch vụ ví điện tử có sẵn Momo, Zalo Pay,… người dùng có riêng ví điện tử để sử dụng cho dịch vụ cung cấp voucher Bên cạnh đó, việc xây dựng hệ thống đa ngơn ngữ góp phần lớn việc hướng tới thị trường rộng lớn bên Việt Nam với ngôn ngữ hỗ trợ tiêu biểu Tiếng Trung Quốc, Tiếng Nhật, Tiếng Đức,… Ngoài ra, để phát huy trọn vẹn sức mạnh cơng nghệ Blockchain, dự án cịn mở rộng thêm mảng quản lý voucher nhận tính sở hữu voucher tạo tài khoản khách hàng bình thường, tính trao đổi chuyển nhượng voucher,… Vì thời gian giành cho đồ án khơng dài cho tồn cơng việc từ nghiên cứu công nghệ, thiết kế, cài đặt, kiểm thử Do đó, sản phẩm cuối chỉ hỗ trợ tính chính đề tài đưa Ngoài ra, việc thiếu kinh nghiệm làm việc thực tế dẫn đến việc sản phẩm cuối thiếu độ tinh xảo trải nghiệm người dùng, giao diện người dùng,…thiếu sót nhiều Tuy nhiên, chúng em tin ứng dụng hồn tồn thương mại hóa, áp dụng cho doanh nghiệp từ lớn tới nhỏ mà ngày nay, doanh nghiệp ngày mọc lên nhu cầu quảng cáo thương hiệu qua mã voucher điều tất yếu 60 TÀI LIỆU THAM KHẢO [1] Laravel Document https://laravel.com/docs/5.8 [2] MySQL 8.0 Reference Manual: https://downloads.mysql.com/docs/refman8.0- en.pdf [3] Ethereum: https://ethereum.org/developers/#integrated-developmentenvironments-ides [4] Solidity: http://solidity.readthedocs.io/ [5] Truffle Framework: https://www.trufflesuite.com/docs [6] Intro to Blockchain With Ethereum, Web3j and Spring Boot: Smart Contracts by Piotr Mińkowski: https://dzone.com/articles/intro-toblockchain-with-ethereum- web3j-and-spring [7] Ethereum PHP Repository: https://github.com/btelle/ethereumphp/blob/master/ethereum.php 61 ... ví (wallet) đó wallet có sẵn 100 ETH sử dụng Hình 6.4: Ứng dụng Ganache máy cá nhân 28 6.3.2 Ropsten Testnet MetaMask 6.3.2.1 Ropsten Testnet Ropsten Ethereum, gọi Ether Ethereum Testnet, tên... HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÙI TRUNG TÍN – 16521239 TRẦN THỊ CẨM TÚ – 16521351 KHÓA LUẬN TỐT NGHIỆP HỆ THỐNG E- VOUCHER SỬ DỤNG BLOCKCHAIN Blockchain E- Voucher System KỸ SƯ... triển, framework để kiểm thử hệ thống tài nguyên cho ứng dụng blockchain sử dụng Ethereum Virtual Machine (EVM), giúp cho việc lập trình phát triển ứng dụng sử dụng Ethereum dễ dàng Truffle hỗ trợ: