ĐẠI HỌC QUOC GIA TP. HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN KHOA CONG NGHE PHAN MEM NGUYEN THANH HIEU — 19521505 TRAN QUOC KHANH - 19521686 KHOA LUAN TOT NGHIEP UNG DUNG TRUY XUAT NGUON GOC DUA TREN ETHEREUM SMART CONTRACT Developing a commodities traceability application based on Ethereum Blockchain and Smart Contract KY SU/ CU NHAN NGANH CONG NGHE PHAN MEM GIANG VIEN HUONG DAN NGUYEN TRINH DONG TP. HO CHi MINH, 2023 LỜI CẢM ƠN Lời nói đầu, chúng em gửi lời cảm ơn đến các quý thầy cô giảng viên của Trường Đại học Công nghệ Thông tin — Đại học Quốc gia Thành phố Hồ Chí Minh và đặc biệt Khoa Công nghệ Phần mềm đã hỗ trợ, giảng dạy hai em trong thời gian học tập tại trường, từ đó có những kiến thức quan trọng, phù hợp, dé xây dựng nền tang dé phát triển đề tài. Điều thứ hai, chúng em muốn gửi lời cảm ơn trực tiếp đến thay Nguyễn Trịnh Đông, là giảng viên hướng dẫn trực tiếp đến nhóm.
Những lời tư van, góp ý và hướng dẫn tận tính của thầy là những điều quý báu giúp nhóm chúng em qua từng giai đoạn không chỉ của luận án mà trong quá trình học tập. Sự hỗ trợ và chỉ dẫn của thầy mà chúng em đã thực hiện và hoàn thành đề tài khóa luận tốt nhất. Trong quá trình thực hiện khóa luận, chúng em đã vận dùng và tổng hợp những kiến thức đã các tích lũy và học tập được, đồng thời kết hợp với những kiến thức mới trong quá trình phát triển đề tài. Do kinh nghiệm và kiến thức khi thực hiện của nhóm còn nhiều khó khăn và hạn chế ở từng giai đoạn thực hiện, điều đó có thê dẫn đến các thiếu sót.
Vì vậy, chúng em mong có thé nhận được những ý kiến, lời góp ý quý báu từ quý thầy cô dé giúp cho bài báo cáo của chúng em thêm hoàn thiện hơn. Lời cuối cùng, hai em chân thành gửi lời cảm ơn sâu sắc nhất đến quý thầy cô. Hỗ Chi Minh, Ngày tháng 7 năm 2023 Sinh viên NGUYÊN THÀNH HIẾU TRAN QUỐC KHANH MỤC LỤC LOT CAM ON 0E SASAnSnhnnneaaj4jđ. 17 DANH MỤC TU VIET T.--e- e- ©s£©sẻ©+e£E+£+x£+xE+EEseExeExerxeerserkerxerrerrsere 18 TOM TAT KHOA LLULẬÌN.- 2222 2© S2 EEEEEEEkeEESEEEEEEkEEkerkerrerrkrrerrerree 1 ĐỀ CƯƠNG CHI TẾ T.
+5 ©s£©5e++EEESEEE++e£EteEEkeExseEteerketrketrerkerrkerrerree 3 CHUONG 1: MỞ ĐIẦU. -ce-©Se5S£©cs‡ExeSESEEteEketrtetrketreertrrketrksrreerreee 9 1. LY do chọn đề tài. Mục đích nghiên cứu.
Khách Quan. St TT HH Họ ng 10 1. Đối tượng nghiên cứu. Các công nghệ nghién COU:.
Đối tượng sử dụng đề tài hướng đến:. Phạm vi nghiên CỨU. Phạm vi môi truOng:. Phạm vi chỨc năng:.- --c- c vn TH ng ng tiệt 11 CHUONG 2: KIÊN THÚC NEN T.-o5- 55c Sc+Scecrecreersereerrerreeree 13 "Nónh .cc 55c tk SE E11 EExcEtrrrrrkrrree 13 2.2 Những khái niệm cơ bản.
Giới thiệu Ant Des1gn. HH HH kt 14 2. Ăn cọ HH cọ.1 Giới thiệu Node]S.- vn HH ng nh grưy 15 2.2 Lý do chọn Node]S. -- cv TH HH ng 16 2.3 Express JS — Framework của Node JS.1 Giới thiệu Express JS woe ceseeeeseceseecseeeeseeceneessaeeeseeesseeesaeeesaeeeseeesaes 16 2.2 Ap dung vao 6 tai .4 Smart Contract và Ethereum .1 Tổng quan về Ethereum.---¿- 2 2 £+x+Sk+EE+EE+EE+E++E+Eerxerxerxerxrree 18 2.2 Tổng quan về Smart COnrACt.3 Lý do lựa chọn ứng dụng Blockchain vào đề tài .- co Họ Họ nọ.1 Giới thiệu về Firebase.2 Áp dụng Firebase Cloud Messaging (FCM).6 Go Efher€Um.
---- < cọ Họ họ nọ th 23 2.1 Giới thiệu về Go Ethereum (Geth).2 Áp dụng vào đề tài.1 Giới thiệu về Truffle.2 Áp dụng vào đề tài.----s se Sex vvctexeveretrttrsrsrsrererrrrsree 24 2.8 Amazon Web S€TVÏC€S.1 Giới thiệu về Amazon Web SerViCes.2 Áp dụng vào đề tài.1 Giới thiệu về Android .2 Giới thiệu về Kotlin .3 Áp dụng vào đề tài. -s- <csccestrstekerkerrkerrkerrkerrkersresre 27 CHUONG 3: THIET KE - SỬ DỤNG BLOCKCHAIN TRONG HỆ THONG.1 Tống quan về mạng Ethereum blockchain công khai (Ethereum Public Blockchain 80[1ã20y 902777 5 .2 Tổng quan về mạng Ethereum Blockchain nội bộ (Ethereum Private Blockchain 861 2ã.1 Giới thiệu về PoA Private Blockchain .2 Kiến trúc của Nut trong Ethereum (Ethereum Node Strueture). Thuật toán đồng thuận.1 Khái niệm thuật toán đồng thuậnn.2 Thuật toán đồng thuận trong Geth. «5s s=s=s=sseszszses 31 Thuật toán đồng thuận Ethash: .----- -<55s+s+ss>sesesexexesessrszsesee 31 Thuật toán đồng thuận Cliqe:.4 Kiến trúc Blockchain trong hệ thống .1 Kiến trúc luồng hoạt động của Public Bloekehain.2 Kiến trúc luồng hoạt động của Private Blockchain .5 So sánh Public Blockchain Network va Private Blockchain Network.1 Kha năng sử dung và tiép cận.3 Sự mink bạcHh.4 Bảo mật và hiệu suất.5 Tính Ứng Ụng .-- - 000000094 36 CHƯƠNG 4: PHAN TÍCH YEU CÂU HE THÔNG.1 Phân tích yêu cầu đề tài.1 Mô tả nghiệp vụ hệ thống .¿- ¿55s Sx+SE+E2EvErxerxerxerxerrereee 37 4.2 Yêu cầu chứng năng nghiệp VỤụ.3 Yêu cầu phi chức năng.
Phân tích thiết kế Domain Model .-- s- «se +ss+xseeseesees 41 4.1 Sơ đồ mô tả Domain .2 Mô tả các miền đối tượng .3 Mô tả sơ đồ Usecases .1 Đặc tả Usecase “Đăng nhập”.2 Usecase quản lý tài khOản.3 Usecase quản lý hạt giỐng. Usecase quản lý mảnh đất của nông trại.7 Usecase quan lý dự án thu hoạch .8 Usecase quản lý dự án vận chuyền. Usecase quản lý dự án nhập/ xuất kho.----¿-¿-s+cs++-x+cx+ec++ 71 4.10 Usecase quản lý dự án sản XuẤt.5 Thiết kế sơ đồ hoạt động — Activity Diagram.1 Sơ đồ Activity Đăng nhập.2 Sơ đồ Activity Đăng XuẤt.-c 5c tt ng E211 erkerrrres 77 4.3 Sơ đồ Activity Thay đổi mật khẩu .----¿--s¿¿©s++cx++xx+zseerxs 77 4.4 Sơ đồ Activity Quên mật khâu.5 Sơ đồ Activity Tạo tài khoản .---¿-sc©2+cxe2cxvrxerxeerxesrxerrerree 78 4.6 Sơ đồ Activity Tạo nông trại.---¿- sc©5+x+2cx2rxerxterxesrxerrerree 79 4.7 Sơ đồ Activity Cập nhật vai trò/ chức năng tài khoản .8 Sơ đồ Activity Tạo tài khoản nhân viên.------2-cs¿cs+cs+ecss 80 4.0 Sơ đồ Activity Cập nhật bộ phần phòng ban cho nhân viên.10 Sơ đồ Activity Tìm kiếm — sử dụng chung.11 Sơ đồ Activity Tạo mới hạt giống và mảnh đất.12 Sơ đồ Activity Cập nhật thông tin hạt giống và mảnh đất.13 Sơ đồ Activity Thay đôi thông tin nông trại.14 Sơ đồ Activity Tạo mới dự án cho lô hàng .15 Sơ đồ Activity Cập nhật thông tin dự án lô hàng.16 Sơ đồ Activity Xem danh sách các dự án — sử dùng chung.17 Sơ đồ Activity Cập nhật trang thái dự án — sử dung chung.18 Sơ đồ Activity Cập nhật thông tin các giai đoạn dự án — sử dụng chung 85 CHUONG 5: THIET KE CƠ SỞ DULIEU isesssssssssssessssssssssssssssessessessessesssssssssssess 86 5.1 Thiết kế sơ đồ lớp .2_ Danh sách các lớp trong sơ đỒ. Mô tả chỉ tiết các lớp) .1 Bảng thông tin lớp người dùng .2 Bảng thông tin lớp nông trại.
Bảng thông tin lớp hạt giống.4 Bảng thông tin lớp mảnh/ mẫu đất. Bảng thông tin lớp dự án nông trai .6 Bảng thông tin lớp dự án của doanh nghiỆp .7 Bảng thông tin lớp dự án thu hoạch.8 Bảng thông tin lớp dự án vận chuyỀn .9 Bảng thông tin lớp dự án nhập/ xuất kho bãi.10 Bảng thông tin lớp dự án sản xuất .------2--s+cx++cx+cx+zrxeerxe2 98 5.11 Bảng enum thông tin vai trò của tài khoản .12 Bảng enum thông tin phòng ban/ công việc của nhân viên .13 Bảng enum thông tin trạng thái mảnh/ mẫu đắt.14 Bang enum thông tin trạng thai nông trại .15 Bang enum thông tin trạng thái chung cho dự án.16 Bảng thông tin sản phâm.-- 2-5 + ++2c++2ExvExterxesrxerrrerrrees 101 CHUONG 6: THIET KE GIAO DIỆN NGUOT DÙNG.1 Danh sách các màn hình chung .1 Man hình Đăng nhập - LOB1T.2 Màn hình Quên mật khẩu.2_ Danh sách màn hình Tech Admin — Quản lý kỹ thuật.3 Danh sách màn hình Farmer — Nông dân theo nông trại .4 Danh sách màn hình System Admin — Quản lý doanh nghiệp, hệ thống 114 6.5 Danh sách màn hình Harvestor - Nhân viên kiểm tra thu hoạch .6 Danh sách màn hình nhân viên kiểm tra vận chuyền.7 Danh sách màn hình nhân viên kiểm tra xuất/ nhập kho.8 Danh sách màn hình nhân viên kiểm tra sản xuất sản phẩm. 123 CHƯƠNG 7: CAI DAT VA KIEM THỦỬ. 22-2 2£ s2 ©ss£s£se+ss+ssesse 128 TL Cài đặt.
G0 SH Họ Họ 128 7.2_ Mục đích kiểm thử: .3 Phương pháp kiểm thử::. Quy trình kiểm thử: .1 Xác định thông tin truy xuất nguồn gốc hang hoá: .2 Tạo các bộ testcase kiểm thử thủ công: .3 Kiểm tra tính bảo mật của hệ thống .4 Kiểm tra tính chính xác và đầy đủ của thông tin: .5 Thực hiện kiểm thử: .6 Kết quả kiểm thử: .---5 55s ss+s£sSSsEsEsEEsesrsrsrsrsrsrrsree 129 CHƯƠNG 8: TONG KẾT.1 Kết quả dat được.2 Thuận lợi và khó khăn. Z0 Vy ĂằBE-sssssee 131 8.3 Hướng phat triỄn.-- ¿+ + s5ss+s+e+teteEeEerersrsesrsrsrsrsrssrsree 132 TÀI LIEU THAM KHAO .- 5-5525 ©S£©+*EE££E£ExeExExeerserxerxerreerserserve 133 DANH MỤC HÌNH Hình 2.1: Hình ảnh ReactJS.-- - s2 11909 HH ng 13 Hình 2.3: Hình anh Ant Design .1: Hình anh Node JS .- --- 6 5 + 23 211g HH ng HH gi nưệp 15 Hình 2.1: Hình ảnh Express JS .-- -- 5 32 E23 9 ng re 16 Hình 2.1: Hình ảnh Ethereum.- --- s s11 2119311911 9119111 ng gi grn 18 Hình 2.2: Hình ảnh về định nghĩa Smart Contract.1: Hình ảnh logo F1rebase.1: Hình anh logo Go-Ethereum. - --- s55 + + + +ssrtreserrerererrrerree 23 Hình ảnh 2.1: Hình ảnh logo của TTUfÏÏe.- -- - c xSssvseEseeeeessessessee 24 Hình ảnh 2.1: Hình ảnh logo của Amazon Web Se€rVICe.- --cs«c<scssessxe 25 Hình ảnh 2.1: Hình anh logo AnndrOI.- 5 62+ 2E ***++kE+veEeeereeeseerssersee 26 Hình ảnh 2.2: Hình ảnh logo KoftÏ1n.
- --- 5 2S 3+ *+EEveExeereeereeereerreerrss 27 Hình ảnh 3.1: Các Nút Geth trong Mang Ethereum Blockchain.2: Sơ đồ Kiến trúc của Nút trong Geth.------5¿©5z2cs+cx+zxczsz 30 Hình 3.1: Sơ đồ kiến trúc hệ thống public blockchain.2: Sơ đồ kiến trúc hệ thông private bloekchain.1: Hình ảnh mô tả luồng nghiệp vụ chính của hệ thống. Hình anh mô ta domain model trong hệ thống. Hình ảnh mô ta Usecase tong quat.1 Hình anh Authentication Usecase .-- -- 5S St + ssireerree46 Hình 4.1 Hình ảnh Usecase Quản lý tài khoản cua Tech Admin .2 Hình anh Usecase Quản lý tài khoản cua System Admin.3 Hình ảnh Usecase Quản lý hạt giống nông trại.4 Hình anh Usecase Quan ly các mảnh đất.5 Hình ảnh Usecase Quản lý các dự án của nông trại.5 Hình anh Usecase Quản lý các dự án của nông trại.7 Hình anh Usecase Quan lý các dự án thu hoạch .8 Hình anh Usecase Quản lý các dự án vận chuyên .9 Hình ảnh Usecase Quản lý các dự án nhập/ xuất kho.10 Hình ảnh Usecase Quản lý các dự án sản xuất .1 Hình ảnh sơ đồ Activity đăng nhập.2 Hình ảnh sơ đồ Activity đăng xuất .3 Hình anh sơ đồ Activity thay đổi mật khẩu .4 Hình anh sơ đồ Activity quên mật khẩu.5 Hình ảnh sơ đồ Activity tạo tài khoản cho admin/ farmer.6 Hình ảnh sơ đồ Activity tạo tài khoản cho admin/ farmer.7 Hình ảnh sơ đồ Activity tạo tài khoản cho admin/ farmer.8 Hình anh sơ đồ Activity tạo tài khoản nhân viên của System Admin .9 Hình ảnh sơ đồ Activity cập nhật bộ phan bong ban cho nhân vién.10 Hình ảnh sơ đồ Activity Tìm kiếm — dung chung.11 Hình anh sơ đồ Activity Tao mới hạt giỗng và mảnh đất.