Hệ thống này sử dụng hợp đồng thông minh Ethereum dé ghi lại quyền sở hữu sản phẩm, giúp truy xuất và xác minh nguồn gốc sản phẩm từ nhà sản xuât đên người tiêu dùng... Chi phí giao dịch
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KHOA HỌC VÀ KỸ THUẬT THÔNG TIN
HUỲNH QUANG BẢO - 20521100
KHÓA LUẬN TÓT NGHIỆP
XÂY DUNG WEBSITE CHUOI CUNG UNG SAU
XUAT NGUON GOC SAN PHAM
Building a website of durian supply chain and applying
blockchain to trace product origin
CU NHANNGANH CONG NGHE THONG TIN
GIANG VIEN HUONG DAN
TS NGUYEN GIA TUAN ANH
TP HO CHÍ MINH, 2024
Trang 2LỜI CẢM ƠN
Nhóm em chân thành gửi lời cảm ơn đến thầy Nguyễn Gia Tuấn Anh đã dành thời
gian giúp nhóm thực hiện đề tài này
Bên cạnh đó, nhóm em cũng gửi lời cảm ơn chân thành đến thầy/cô của trường Đạihọc Công nghệ Thông tin đã truyền đạt những kiến thức bô ích đã giúp ích rất nhiềucho nhóm em khi thực hiện khóa luận tốt nghiệp
Trong quá trình thực hiện, nhóm có thé còn một số nhược điềm hạn chế khi tìm
hiểu, thực hiện Rất mong nhận được sự nhận xét, góp ý từ các thầy cô giảng viên
trong trường dé đề tài của nhóm được hoàn thiện hơn
Nhóm em xin chân thành cảm ơn!
Nhóm sinh viên thực hiện
Huỳnh Quang Bảo
Trang 31.44 Đối tượng, phạm vi nghiên cứu -. - 2: 2++2+++£++£xt£E+EEerxezrxerrerrree 4
1.4.1 Đối tượng nghiên cỨu -c- 22t ©t+Ek+EE+EEeEEEEEEEEerkerkerkerkerkerree 4
1.4.2 Pham vi nghiÊn CỨU - - G2 + 31311891111 91 1 9 1v ng nưkp 4
1.5 Thách thức của đề tài -©5-©cs 2E EEEEEEEEEEEEEEkErkrrkerkrrrkee 51.6 Hướng giải QUyẾT -7:22cSt CC E12 1217111111111 crxee 5
chương2 CƠ SỞ LÝ THUYẾT -¿©-+¿©++2++2E++EE++EEEtrxeerxeerseee 6
2.1 Giới thiệu về framework FastAPl -¿- + ++£x+£xt£EeExzEerrxerxerrsee 62.2 Giới thiệu về Block chainn ccscccsscssssssesssessessessessesssessessusssessesssssecsusssecseesees 7
2.3 Giới thiệu về hệ quản tri dữ liệu PostgreSQL 5-5-5 ++<<<++<cx+ss 8
2.5 Giới thiệu về Pusher -2-22-© £+S2‡EEEEEE2EEE2E221711211271 21122121 re 102.4 Giới thiệu về Nexts -2¿- 52c S222 2t 2 221 2122127121111 11.11 1c 112.6 GiGi thiệu về Cloudinary cceccecccccesessessessessessessessessessessessessessessessesseeseesess 12
2.7 Giới thiệu về Hardhat c.ccccceccsssecsssessssesescsesesessesessessessesesevsesesevsesenseeees 13
Trang 42.8 Giới thiệu về SmartCORFACẨ - 2 t5 EE‡ESEEEEEEEEEEEEEEEkerkerrrkerkrree 132.9 Giới thiệu về Arbitrum -cccccccccktirtEktrrrttrtrrrtrtrrrrtriirerrieg 15
Chương 3 | PHAN TÍCH, THIET KE HE THONG - c2 5+2 20
3.1 Xác định yêu CaU we eeceeccescssessessessessessecsecsessecsessessessessessessessessessessessessesseeseess 20
3.2 Qui trinh nghi€p 0 20
3.3 Phân tích yêu Cau cc.ccescsscsssesssessesssessessesssessesssessessssssessesssessesssessessessseeseessees 21
3.3.1 Chức năng đăng ký - Ăn ng ng rệt 21 3.3.2 Chire năng đăng nhập 0 eee eccceseeeseceseceseeceneceseceseeeeaeesaeeeeneseeensees 22
3.3.3 Chức năng quên mật Khau oo cecceccssesseeseeseeseesesseesesseeseeseesesseeseeseeseeseess 223.3.4 Chức năng thay đổi mật khẫu - 2 + ¿+ 2+E£+E£+Eerkerkerxerxered 22
3.3.5 Chức năng khóa tài khoản người dùng . «+5 «++s + +sexs+ 22
3.3.6 Chức năng nạp, rút tiền tài khoản của người dùng - 223.3.7 Chức năng xác thực và ủy quyền người dùng bang token (JWT) 22
3.3.8 Chức năng thống kê người đùng cho Admin 2 2 2+2 233.3.9 Chức năng thong kê cho người dùng - 2 s¿©5z+szxzxs=xd 23
3.3.10 Chức năng khảo sát người dùng - 5+ c + *+sskxseeeerrsrerrs 23
3.3.11 Chức năng xác nhận khảo sát người dùng đối với Admin 23
3.3.12 Chức năng cập nhật thông tin cá nhân - 5 5-5255 ++£+sxssxsexs+ 23
3.3.13 Chức năng tạo sản phẩm ¿22 ¿+ +E2E£EEEEEEEEEEEEEEEErrkrrrerkrred 23
3 3.14 Chức năng chỉnh sửa trạng thái của sản phẩm .: - 24
3 3.15 Chức năng xác nhận đơn hàng đối với chủ sở hữu sản phẩm 24
3.3.16 Chức năng cập nhật sản phẩm 2-5 2+ + ££Ee£EeEEerEerrerkered 243.3.17 Chức năng xóa sản phẩm - + ¿+ £+E+E£EE£EEtEEEEEEEEEEErrkrrrerrrred 25
3.3.18 Chức năng cập nhật quá trình phát triển của sản phẩm 25
3.3.19 Chức năng phân loại sản phẩm ¿5£ ¿+ £+E+E£+E££EezEerxerxered 25
3.3.20 Chức năng đăng lên marketpÌaCe - 5 5c +5 + +skEseseeresrsers 25
Trang 53.3.21 Chức năng thêm hình ảnh, v1deO - -¿- «65+ + +sssrsreeereerre 25
3.3.22 Chức năng tìm kiếm, lọc theo giá, lọc theo ngày, tuần, 25
3.3.23 Chức năng xem tong số lượt người dùng ghé thăm sản phẩm 26
3.3.24 Chức năng thống kê về sản phẩm ¿22 2+ +E£+E+Ee£Eerxerxered 263.3.25 Chức năng xem nguOn gốc sản phẩm ¿- 2© £+xe£E+zxezxered 263.3.26 Chức năng mua sản phẩm + 2© £+E£+E££Et£E££E£EeEEerkerkerrerkd 26
3.3.27 Chức năng tạo gid hàng, cv ng ng rếc 26 3.3.28 Chức năng cập nhật g1ỏ hàng 5 - c + 9 re 26 3.3.29 Chức năng xóa g1ỏ hảng - -G- <1 ng nh kh 27
3.3.30 Chức năng xem lịch sử giao dich của người dùng - 27
3.3.31 Chức năng nhắn tin ¿52 £+E+E‡EEEEEEEEEEEEEEEEEEEEEEEEEEerkerkerkrrki 27
3.3.32 Chức năng Bình luận - - ¿2G SĂ 13311 set 27
3.3.33 Chức năng tạo thông báO - +2 3x3 *SEEsirsrrrrrrrrerrererkre 27
3.3.34 Chức năng cập nhật trạng thái thông báo - 5+5 c+<x+scssr+ 27 3.3.35 Chức năng xóa thông báoO - - c1 S113 net 27
3.3.36 Chức năng hoạt động gan đây của người dùng -. - 273.3.37 Chức năng hoạt động gần đây của sản phẩm -¿5¿ 52 27
3.4 Mô hình hóa yêu cầu ¿- 2 5£+2£+SE+EE++EE£EEEEEEEEEEEEEEECrEkrrkrrkrrrrere 27
3.4.1 Chức năng đăng ký - -.L SH ng ng ry 28
3.4.2 Chức năng quên mật khâu - ¿5£ +E+E+£E£+kezEerxerkerkerrrred 303.4.3 Chức năng đổi mật khẩu -¿ 2¿¿++¿+x+2Ex2Exerxrsrxrrrrerree 32
3.4.4 Chức năng khóa tai khoản người dùng - - 5 55+ ++x£+cxseessers 33
3.4.5 Chức năng nạp, rút tiền của người dùng - ¿5c ccccccxczxered 36
3.4.6 Chức năng khảo sát người dùng - che, 37
3.4.7 Chức năng xác nhận khảo sát người dùng đối với Admin 39
3.4.8 Chức năng cập nhật thông tin cá nhân s5 55s ++< + +sexs+ 41
3.4.9 Chức năng tạo sản phẩm ¿+ 2 E+2E£+EE£EE22EEEEEEEEEEEkrrkerrrrred 42
3.4.10 Chức năng cập nhật trạng thái sản phẩm ¿©2552 453.4.12 Chức năng xóa sản phẩm ¿- ©- £+ + +EEEEEEEEEEEEEEEEEEEErkrrkerkrred 48
Trang 63.4.13 Chức năng cập nhật quá trình phát triển của cây - 503.4.14 Chức năng phân loại sản phẩm 2 2 2+ £+E+E£+E££Ee£EerEerxered 52
3.4.15 Chức năng xác nhận đơn hàng đối với chủ sở hữu - 53
3.4.16 Chức năng đăng san phẩm lên marketplcae - ¿ 2sz+szs255
3.4.17 Chức năng tạo gid hang - c1 v1 ng ng ng rg 56
3.4.18 Chức năng cập nhật gid hàng - 5 c3 c SE Eseirsrreerrsrsexee 58
3.4.19 Chức nang xóa g1ỏ hang ng HH rết 59
3.4.20 Chức năng mua sản phẩm 2- 22 522S¿2++2£++2Ex2Ex+zzxzzxerred 61
3.4.21 Chức năng tạo bình luận - 5 +5 3c 13213 Sisesersrreserre 63 3.4.22 Chức năng cập nhật bình luận -.- 5 55c S5 + £+kEsessereerssee 65 3.4.23 Chức năng xóa bình luận - - + 332313 EEirseeereerreerre 67 3.4.24 Chức năng tao thong Đảo - -. cv vn vn ng, 68 3.4.25 Chức năng cập nhật trạng thái thông báo -+++c++<xs+sxs<xs+ 70 3.4.26 Chức năng xóa thông báo - - xxx ng nghe 72
3.4.27 Chức năng nhắn tin + c+S£+ES2EEEEEEEEEEEEEEEEEEEEEEkrkerkerkrred 73
3.5 Thiết kế cơ sở dữ liệu -c¿-c2vvctEktrttrtrtrrttrrirrrtrrrrrrriirrrrikeg 75
3.5.1 Mô hình dữ liệu quan hỆ - ¿+ +5 * + + EEEsskkerreeerrerseee 75 3.5.2 Danh mục các bảng - óc ch ng 75
3.5.2.1 Bảng S€T Go nHnHH nH nHnệp 76
3.5.2.2 Bảng PrOdUC( SG TS HH ng TH ng cư78
3.5.2.3 Bang ClassIfyGOOS - HH HH HH nghệ 79 3.5.2.4 Bảng ProducfFarme - -ó- s9 nnnHh nngnưy79 3.5.2.5 Bảng ProductfManufaCfUT€T - G5 SĂ vs ieeereeeeeree 80 3.5.2.6 Bảng GTOWD SG HH HH Hệ 80 3.5.2.7 Bảng Marketplace - - c 311v vn rệt 81
3.5.2.8 Bảng TransactionSf (giao dịch giữa công ty giống và nông dân) 81
3.5.2.9 Bảng TransactionFm (giao dịch giữa nông dân va nhà máy) 82 3.5.2.10 Bảng FInancIalTTanSaCfIOT - 5c cv ng cư 83
3.5.2.11 Bang 91 84
Trang 73.5.2.12 Bảng Coimmnet - 5 6 5< +2 941 11 1 E11 1E ng ngư 85
3.5.2.13 Bảng ReplyComment cceceesccsseeseeceneeeseeeeseeeseeeseeseseeeeeeseeenss 85
Sh W6: j0 86 3.5.2.15 Bảng ACLIVIẨY SG TQ HH HH HH TH TH TH nếp 86 3.5.2.16 Bảng MesS€nBGT G11 TH TH ng ng nếp 87
Chuong 4 XÂY DUNG HE THONG CHUOI CUNG UNG SAU RIENG &
THIET KE GIAO DIEN uieeeceeccsssssssessessessessessessessessessessessessessessessessessessessesseesesseeseess 88
4.1 Kiến trúc hệ thong c.cecccccecccccssessessessessessessessessessessessessessessessessessesseeseeseeseess 884.2 Xử lý xác thực bằng email -¿- + + ©2++2x+EE2EEEEEtEEESEEerkrerkrrkrrrrrree 894.3 Xử lý van đề về xác thực người dùng -5¿©cc+cxcxcereerxrrreered 894.4 Xử lý van đề về mã xác thyre ceceeccccccsscsssessesssessesssesseesvessecsecsseesecsesssesseesseess 894.5 Xử lý về tin nhắn, thông báo thời gian thực 2z sz+sz+szzesce2 894.6 Xử lý về tài nguyên về ảnh oo ccseceecsessessessecsessessesseesessessessecsessesseeseeseess 90
4.7 Thiết kế giao điện - 2c ©5¿+SE E2 19 EE211221211211711211211711 1111 re.90
4.7.1 Form dang ký -.- cv TH HH nghiệt 90 4.7.2 Form xác thực tài khoản 5 52c 3 *+2 + EEESseesssserreseves 91 4.7.3 Form dang nha ee eeeeceeeeceseeseeeseeseceeeesececeesececeeseceeesseeeseeseeneeas 9]
4.7.4 Màn hình thay đôi mật khẩu - 2-22 2 5¿+£++£x++zxerxezzzrred 924.7.5 _ Màn hình nạp tiền - + 2 2+ £+E£2E£EEEEEEEEEEEEE2E21 212121 ckrki92
4.7.6 Màn hình thông tin chung của người dùng - 5 +++s<+<+2 93
4.7.7 Màn hình thống kê cho Admin 22- 2£ 5£ ©5£+££E£2£++£xzzzzred 93
4.7.8 Màn hình quan lý người dùng của Admin - - «++s<<s+2 94
4.7.9 Màn hình thống kê đối với người dùng - ¿52 ©52+s+se>x2 94
4.7.10 Màn hình quản lý sản phẩm - ¿5£ £+S£+E£+E£+E££EtzEtzxerxered 95
4.7.11 Màn hình quản lý giao dỊCHh - 5c 3< 3+ Esvseeeseeereseeerree 96
Trang 84.7.12 4.7.13
4.7.14
4.7.15
4.7.16
4.7.17 4.7.18 4.7.19 4.7.20
4.7.21
Man hình xác nhận đơn hàng đối với chủ sở hữu 96Form cập nhật sản pham cccccsccessesssessessesssessesssessecsssssessesssessesseeess 97Form cập nhật quá trình phát triển của cây . -. 97
Màn hình MarkefplaCG -ó- s5 HH ng ng re, 98
Man hình top san phẩm bán chạy nhất trong 1 tuần vừa qua 98Man hình chi tiết sản phẩm ¿5° 2 2 ££Ec2Ee£EczEezEzxerxee 99Màn hình quá trình phát triển của cây - ¿¿5¿55¿ 100Man hình liệt kê danh sách nhẫn tin - -ccccccccccccce¿ 100Màn hình nhắn tỉn -222+£ 22tr 101
Màn hình thông ba0 ee eeeeseeseeesecseceseeeceseeseceeeeseceaeeaeceeeeaeeeeeas 102 4.8 Test case GUI
Chuong5 | KETLUAN VA HƯỚNG PHAT TRIỀN - 2: 106
5.1 Kết quả dat đượcC ¿5c c2 2k2 2122121121121 2111 21111111 ckrkee 106
52 Hạnchế “TT AC | C 1065.3 Hướng phát triỂn -+c¿2S225c Set EEEE1211111211 1111111111111 11 c1 xe 106TÀI LIEU THAM KHẢO 2 St S23 SE9E5EE2E9EEEE2EEE12E5EEE121E1 2111x212 cxe2 107
Trang 9DANH SÁCH CAC BANG
Bảng 3.1 Mô tả UC đăng ký
Bảng 3.2 Dòng chính UC đăng ký
Bảng 3.3 Mô tả UC quên mật khẩu
Bảng 3.4 Dòng chính UC quên mật khẩu
Bảng 3.5 Mô ta UC thay đổi mật khẩu
Bang 3.6 Dòng chính UC thay đổi mật khâu
Bảng 3.7 Mô tả UC khóa tài khoản người dùng
Bảng 3.8 Dòng chính UC khóa tài khoản người dùng
Bảng 3.9 Mô tả UC nạp, rút tiền của người dùng
Bảng 3.10 Dòng chính UC nạp, rút tiền của người dùng
Bảng 3.11 Mô ta UC khảo sát người dùng
Bảng 3.12 Dòng chính UC khảo sát người dùng
Bảng 3.13 Mô tả UC xác nhận khảo sát người dùng đối với Admin
Bảng 3.14 Dòng chính ÚC xác nhận khảo sát người dùng với Admin
Bang 3.15 Mô tả UC cập nhật thông tin cá nhân
Bảng 3.16 Dòng chính ÚC cập nhật thông tin cá nhân
Bảng 3.17 Mô ta UC tạo sản pham
Bảng 3.18 Dòng chính UC tao sản pham
Bang 3.19 Mô ta UC cập nhật trạng thái sản phẩm
Bảng 3.20 Dòng chính UC cập nhật trạng thái san pham
Bang 3.21 Mô ta UC cập nhật sản phẩm
Bảng 3.22 Dòng chính UC cập nhật sản phẩm
Bảng 3.23 Mô ta UC xóa sản phẩm
14 14
15
16 17
18
19 19 20 21 22 23 24 24
26 26
29
30 31 31 32 32 33
Trang 10Bang 3.24 Dòng chính UC xóa sản phẩm
Bảng 3.25 Mô tả UC cập nhật quá trình phát triển của cây
Bảng 3.26 Dòng chính UC cập nhật quá trình phát triển của cây
Bảng 3.27 Mô tả UC phân loại sản phẩm
Bảng 3.28 Dòng chính UC phân loại sản phẩm
Bảng 3.29 Mô tả UC xác nhận đơn hàng
Bảng 3.30 Dòng chính UC xác nhận đơn hàng
Bảng 3.31 Mô tả UC đăng sản phẩm lên markerplace
Bảng 3.32 Dòng chính UC đăng sản phẩm lên markerplace
Bảng 3.33 Mô tả ÚC tạo giỏ hàng
40 4 41
42
42 43 43 45
46 41 47
48
49
50 50 51
Trang 11Bảng 3.48 Dòng chính ÚC tạo thông báo
Bảng 3.49 Mô tả ÚC cập nhật trạng thái thông báo
Bảng 3.50 Dòng chính UC cập nhật trạng thái thông báo
Bang 3.51 Mô ta UC xóa thông báo
Bảng 3.52 Dòng chính UC xóa thông báo
Bang 3.69 Mô tả bảng Notification
Bang 3.70 Mô tả bang Activity
51
52
53 53
54
55 55 57 58 59 59 59 59 60 60 61 61 62 62 63 63 63
64
Trang 12Bảng 3.71 Mô tả bảng Messenger 64
Trang 13DANH SÁCH HÌNH ANH
Hình 3.1 Sơ đồ phân cấp chức năng
Hình 3.2 Biéu đồ UC đăng kí
Hình 3.3 SĐTT đăng ký
Hình 3.4 Biéu đồ UC quên mật khẩu
Hình 3.5 SĐTTT chỉnh sửa thông tin trọ
Hình 3.6 Biểu đồ UC thay đổi mật khâu
Hình 3.7 SĐTT thay đổi mật khẩu
Hình 3.8 Biéu đồ UC khóa tài khoản người dùng
Hình 3.9 SĐTTT khóa tài khoản người dùng
Hình 3.10 Biểu đồ UC nạp, rút tiền của người dùng
Hình 3.11 SĐTT nap, rút tiền của người dùng
Hình 3.12 Biểu đồ UC khảo sát người ding
Hình 3.13 Sơ đồ khảo sát người đùng
Hình 3.14 Sơ đồ UC xác nhận khảo sát người dùng đối với Admin
Hình 3.15 SĐTT xác nhận khảo sát người dùng đối với Admin
Hình 3.16 Biéu đồ UC cập nhật thông tin cá nhân
Hình 3.17 SDTT cập nhật thông tin cá nhân
Hình 3.18 Biểu đồ UC tạo sản phẩm đối với Seedling company
Hình 3.19 Biéu đồ UC tao sản phâm đối với Farmer
Hình 3.20 Biểu đồ UC tạo sản phẩm đối với Manufacturer
Hình 3.21 SDTT tạo sản pham
Hình 3.22 Biểu đồ UC cập nhật trạng thái sản pham
Hình 3.23 SĐTT cập nhật trạng thái sản phẩm
13 14
15 16
16 18
19 20
20 21 22
23 24
25 26
28 28 29 29
30 30 31
Trang 14Hình 3.24 Biểu đồ Use cập nhật sản pham
Hình 3.25 SĐÐTT cập nhật sản phẩm
Hình 3.26 Biểu đồ UC xóa sản pham
Hình 3.27 SĐTT xóa sản pham
Hình 3.28 Biểu đồ UC cập nhật quá trình phát triển của cây
Hình 3.29 SĐTT cập nhật quá trình phát triển của cây
Hình 3.30 Sơ đồ UC phân loại sản phẩm
Hình 3.31 SĐTT phân loại sản pham
Hình 3.32 Sơ đồ UC xác nhận đơn hàng
Hình 3.33 SĐ TT xác nhận đơn hang
Hình 3.34 Sơ đồ UC đăng sản phẩm lên markerplace
Hình 3.35 SĐTT đăng sản phâm lên markerplace
Hình 3.36 So đồ UC tao giỏ hàng
Hình 3.37 SĐTTT tạo gio hang
Hình 3.38 Sơ đồ UC cập nhật giỏ hang
Hình 3.39 SĐÐTTT cập nhật giỏ hang
Hình 3.40 Sơ đồ UC xóa giỏ hàng
Hình 3.41 SPTT xóa giỏ hang
Hình 3.42 Biểu đồ UC mua sản phẩm đối với Farmer
Hình 3.43 Biểu đồ UC mua sản phẩm đối với Manufacturer
40
32
40 41 4 42
43 44 45
45 46 47
48 48
Trang 15Hình 3.48 SPTT cập nhật bình luận
Hình 3.49 Sơ đồ UC xóa bình luận
Hình 3.50 SĐTTT xóa bình luận
Hình 3.51 Sơ đồ UC tạo thông báo
Hình 3.52 SĐTTT tạo thông báo
Hình 3.53 Sơ đồ UC cập nhật trạng thái thông báo
Hình 3.54 SĐTTT cập nhật trạng thái thông báo
Hình 3.55 Sơ đồ UC xóa thông báo
Hình 3.56 SPTT xóa thông báo
Hình 3.57 Sơ đồ UC nhắn tin
Hình 3.58 SÐTT nhắn tin
Hình 3.59 Mô hình thực thê liên kết
Hình 4.1 Kiến trúc hệ thống
Hình 4.2 Form chức năng đăng ký
Hình 4.3 Form chức năng xác thực người dùng
Hình 4.4 Form đăng nhập
Hình 4.5 Màn hình thay đổi mật khẩu
Hình 4.6 Màn hình nạp tiền
Hình 4.7 Màn hình thông tin chung của người dùng
Hình 4.8 Màn hình thống kê cho Admin
Hình 4.9 Màn hình quản lý người dùng của Admin
Hình 4.10 Màn hình thống kê đối với người dùng
52
52 53 53 54 54 55 56 65 68 68 69 69
70 70 71 71
72
72 73
Trang 16Hình 4.13 Màn hình xác nhận đơn hàng đối với chủ sở hữu
Hình 4.14 Form cập nhật san phâm
Hình 4.15 Form cập nhật quá trình phát triển của cây
Hình 4.22 Màn hình quá trình phát triển của cây
Hình 4.23 Màn hình liệt kê danh sách nhắn tin
Hình 4.24 Màn hình nhắn tin
Hình 4.25 Màn hình thông báo
73
74 74 75 75 76
76
T1 T1 78 78
79 79
Trang 17DANH SÁCH CÁC KY HIỆU, CHỮ VIET TAT
Kýhiệu Tiếng Anh Tiếng Việt
CMS (Content Management System Hệ thông quản lý nội dungSSR Server-Side Rendering Kết xuất phía máy chủ
PoW Proof of Work Chứng minh công việc
PoS Proof of Stake Chứng minh sở hữu
JWT Json Web Token
[API Application programming interface Giao diện lập trình ứng
dụng
IPK Primary key Khóa chính
FK Foreign key Khóa phụ
IHTTPS Hypertext Transfer Protocol Secure wa thức truyền tải siêu
lvăn
ban an toàn
ƯO Input/Output Đầu vao/ đầu ra
ORM Objects Relational Mapping
SEO Search Engine Optimization Tối ưu hóa công cu tìm
kiếmACID IAtomicity, Consistency, Isolation, Tinh nguyên tử, tính nhất
Durability quán, sự cô lập, độ bền
SDTT Sơ đồ tuần tự
IUse Case
UC
Trang 18TÓM TAT KHÓA LUẬN
Hiện nay, ý thức của người tiêu dùng về vấn đề an toàn thực phẩm ngày càng cao.Theo đó, họ có nhu cầu biết nguồn sốc cho thực phẩm họ muốn tiêu thụ.Sầu riêngdang là một trong sản phẩm được tiêu thụ nhiều trong những năm gần đây [1] Vì
vậy, việc các nhà sản xuất đưa ra thông tin chi tiết về các mắt xích trong chu trình
cung ứng và xác thực cho các thông tin ấy là điều tất yếu
Trong Khóa luận này nghiên cứu áp dụng blockchain dé phát triển hệ thống quản lýchuỗi cung ứng sau riêng có thé truy xuất nguồn gốc sản phẩm nhằm tăng tính bảomật Hệ thong này sử dụng hợp đồng thông minh Ethereum dé ghi lại quyền sở hữusản phẩm, lịch sử giao dịch giúp truy xuất và xác minh nguồn gốc sản phẩm từ công
ty cây giống đến nông dân
Hệ thống hiện tại nhóm phát triển có bốn loại người dùng: quan tri viên, công ty hatgiống, nông dân và nhà sản xuất Mỗi loại người dùng có các đặc quyền và hành động
khác nhau.Hệ thống mua bán hoạt động như sau: Người dùng đăng ký sản phẩm với
hệ thống và ghi lại thông tin sản phẩm trên blockchain Khách hàng có thé xem danhsách sản phẩm và đặt hàng với chủ sản phẩm Chủ sản phẩm xác nhận đơn hang vachuyền quyền sở hữu sản phẩm cho khách Hệ thống ghi lại lịch sử giao dich và cho
bên mua truy xuât nguôn gôc sản phâm.
Trang 19Chương 1 _ GIỚI THIỆU TONG QUAN DE TÀI
1.1 Lý do chọn đề tài
Cho tới thời điểm hiện tại, ở Việt Nam chưa có hệ thống chính thức nào sử dụng dé
ghi nhận thông tin nguồn gốc sản phẩm, cung cấp thông tin hiệu quả và hỗ trợ quản
lý kịp thời Hiện nay trên thị trường có rất nhiều sản phẩm sầu riêng lưu hành nhưngthông tin về nguồn gốc xuất xứ thường không rõ ràng [2] Thực tế cho thấy việc sửdụng mã vùng nông nghiệp hiện nay chưa rõ ràng Bên cạnh đó, ở một số địa phươngtrong cả nước đã xuất hiện tình trạng độn hàng, đổi mã vùng trồng [3] Điều này khiến
người tiêu dùng cảm thấy lo ngại khi mua sắm, vì họ không có độ tin cậy về an toàn
của sản phẩm
Trong bối cảnh nền kinh tế đang phát triển, sức khỏe trở thành một phần quan trọng
trong việc thúc đây sự phát triển của đất nước Người tiêu dùng muốn lựa chọnsản phâm có nguồn gốc rõ ràng Vậy nên, nhóm nghiên cứu “xây dựng hệ thốngwebsite chuỗi cung ứng sầu riêng và đăng ký truy xuất nguồn gốc bằng blockchain”làm đề tài Mục tiêu của nhóm em là tạo ra một giải pháp hiệu quả để cải thiện tínhminh bạch và đáng tin cậy của nguồn gốc sản pham, giúp người tiêu dùng yên tâmhơn khi lựa chọn và sử dụng sản phẩm sầu riêng
1.2 Các công trình liên quan
Dựa trên nhiều nguồn thông tin khác nhau [4], [5] , đã có nhiều nghiên cứu đề cậpđến việc sử dụng blockchain để truy xuất nguồn gốc sản phẩm Những nghiên cứunày tập trung vào việc phân tích các lợi ích mà công nghệ blockchain có thể manglai, từ việc giam rui ro dén viéc tăng cường sự minh bach va hiệu quả trong quan ly
toàn bộ chuỗi cung ứng.
Các công trình liên quan :
A Blockchain Based System for Product Tracing and Tracking in the Supply
Chain Management [4]: Trinh bay về một hệ thống quản lý chuỗi cung ứng dựa trênblockchain để chống hàng giả Hệ thống này sử dụng hợp đồng thông minh Ethereum
dé ghi lại quyền sở hữu sản phẩm, giúp truy xuất và xác minh nguồn gốc sản phẩm
từ nhà sản xuât đên người tiêu dùng.
Trang 20Hệ thống hoạt động như sau:
Nhà sản xuất đăng ký sản phẩm với hệ thống và ghi lại thông tin sản phẩm trên
blockchain.
Nhà bán lẻ có thé xem danh sách sản phẩm và đặt hàng với nhà san xuất
Nhà sản xuất xác nhận đơn hang và chuyền quyền sở hữu sản phẩm cho nhà bán lẻ.Khách hàng có thé xem danh sách sản phẩm từ nhà bán lẻ và đặt hàng
Hệ thống ghi lại lịch sử giao dịch và cho phép khách hàng truy xuất nguồn gốc sảnphẩm
Uu điểm :
Bao mật: Blockchain giúp bảo vệ tính toàn vẹn của dt liệu va chống giả mạo
Minh bạch: Tất cả các giao dich đều được ghi lại trên blockchain và có thé được truyxuất bởi tất cả các bên liên quan
Hiệu quả: Hệ thống tự động hóa quy trình xác minh sản phẩm, giúp tiết kiệm thời
gian và chi phí.
Chi phí giao dịch trên blockchain cao
khả năng bị tắn công mạng
Supply chain traceability using blockchain [5]: Tài liệu trình bày về hệ thống quản
lý chuỗi cung ứng sử dụng kết hợp blockchain, hợp đồng thông minh và chứng nhận
kỹ thuật số dé theo dõi hành trình của sản phẩm từ nhà sản xuất đến tay người tiêu
dùng.
Hệ thống hoạt động như sau:
Thu thập thông tin sản phẩm: Nhà sản xuat thu thập thông tin sản phẩm va tạo chứng
nhận kỹ thuật sé.
Lưu trữ thông tin trên blockchain: Chứng nhận kỹ thuật số được lưu trữ trên
blockchain Ethereum.
Theo dõi hành trình sản phẩm: Hợp đồng thông minh được sử dụng để theo dõi hành
trình của sản phẩm qua các khâu trong chuỗi cung ứng
Xác minh nguồn gốc sản phẩm: Người tiêu dùng có thé sử dụng mã QR dé truy xuất
Trang 21thông tin sản phẩm trên blockchain và xác minh nguồn gốc sản pham.
Hệ thống quản trị: Là nơi để Admin có thể quản lý người dùng
Bảng điều khiển: Tạo một bảng điều khiển thông tin tong hợp dé xem xét tinh trang
và hiệu suất của chuồi cung ứng
Quản lý thông tin cá nhân: Xây dựng mô-đun quản lý thông tin cá nhân đề lưu trữ vàquản lý thông tin cá nhân của người dùng một cách an toàn và tuân thủ quy định về
1.4 Đối tượng, phạm vi nghiên cứu
1.4.1 Đối tượng nghiên cứu
Nội dung: Công nghệ FastAPI, Hardhat, Blockchain, NextJs.
Đối tượng sử dụng: Công ty hạt giống, nông dân, nhà máy, nhà phân phối, nhà bán lẻ
và người tiêu dùng
1.4.2 Phạm vi nghiên cứu
Phạm vi không gian: Hiện tại, hệ thống chuỗi cung ứng bao gồm các đối tương như
Trang 22các nhà máy, nông dân và công ty hạt giống.
Pham vi nội dung: Xây dung website quản lý chuỗi cung ứng bằng Python, FastAPI,
Hardhat Blockchain, solidity,NextJs.
1.5 Thách thức của dé tài
Phí gas trên blockchain Etherium hiện tại rất lớn Phí gas phải trả cho mỗi yêu cầugiao dịch bao gồm chỉ phí cơ bản (được thiết lập bởi giao thức) và phí ưu tiên (đượcxácđịnh bởi mức độ sử dụng tại thời điểm gửi giao dịch)
1.6 Hướng giải quyết
Nhóm sé sử dụng blockchain Arbitrum [5], một giải pháp Layer 2 cho Ethereum, cho phép người dùng thực hiện các giao dịch rẻ hơn và nhanh hơn so với Ethereum Layer
1 Arbitrum thực hiện các giao dịch trên Layer 1 của Ethereum bằng cách sử dụng cơchế rollups, nhưng trạng thái của các giao dịch được lưu trữ trên một sidechain khác
Trang 23Chương2 CƠ SỞ LÝ THUYÉT
2.1 Giới thiệu về framework FastAPI ;
FastAPI [6] là framework web cho phat triên các ứng dung API nhanh chóng va
hiệu quả bang Python Nó được xây dựng dựa trên Starlette, một framework websiêu nhanh và hiệu quả về việc xử lý request/response
FastAPI có công nghệ Asynchronous I/O dé đảm bảo hiệu suất tối đa và khả năng
xử lý đồng thời.FastAPI có nhiều đặc điểm nổi bật Đầu tiên, nó rất nhanh và hiệuquả Nhờ sử dung Python type hints, FastAPI có khả năng tự động tao mã và kiểmtra kiểu dữ liệu, giúp giảm thiêu lỗi và tăng khả năng bảo mật FastAPI cũng hỗ trợ
cơ chế dự báo (predict) nên nó có thể đáp ứng các yêu cầu hiệu suất cao và thời gian
thực.
Một đặc điểm khác của FastAPI là việc tạo API dé dàng Bằng cách sử dụng cácdecorator và hàm Python, FastAPI cho phép bạn xác định các endpoint, yêu cầu dữliệu và kiểu đữ liệu trả về FastAPI cũng hỗ trợ tạo và tương tác với các loại đữ liệu
như JSON, form data, query parameters va path parameters.
FastAPI cũng di kèm với các tính năng như validation, authentication,
authorization va logging Nó cũng tích hợp tốt với các công cụ phô biến khác trongcộng đồng Python như Pydantic, SQLAIchemy, Tortoise-ORM, va nhiéu thu vién
khac.
Ưu điểm:
Hiệu suất cao: FastAPI được xây dựng dựa trên Starlette và Pydantic, mang lạihiệu suất cao hơn so với các framework Python khác như Django va Flask Nângcao nhanh chóng: Một số tính năng tích hợp có sẵn của FastAPI làm cho việc phát
triển API trở nên dễ dang hơn: Xác thực di liệu tự động Ma bất đồng bộ, OpenAPI
và Swagger UI đều được hỗ trợ
Dé học và sử dung: FastAPI có cú pháp đơn giản, dé hiểu và dé học hon so với
Django.
Nhuoc diém:
Trang 24Ít tính năng quản trị: FastAPI không có nhiều tính năng quản trị web ứng dụng sovới Django vì nó tập trung vào phát triển API.So sánh FastAPI với Flask và Django:
Django Flask FastAPI
Python version | Tat cả phiên bản: | Tấtcảphiên ban: | Chỉ hỗ trợ phiên
2x,3x 2x,3x ban 3x
Project frame Có, chi cần run | Không Không
python manage startapp yourapp
Async Hỗ trợ từ Django | Không hỗ trợ Có hỗ trợ
3.x
Builtin Admin | Có Không Không
UI
Bảng 2.1 Bang so sánh giữa FastAPI,Flask,Django
Tổng quan, FastAPI là một framework web mạnh mẽ và hiệu quả cho việc phát triểncác ứng dụng API Với khả năng xử lý nhanh, hỗ trợ kiểm tra kiêu đữ liệu và cungcấp các tính năng phong phú, FastAPI là lựa chon tốt cho việc xây dựng các dịch vụweb có hiệu suất cao và 6n định
2.2 Giới thiệu về Blockchain
Blockchain [7] là công nghệ cơ sở đữ liệu phân tán và phi tập trung, được thiết kế
dé giữ an toàn và không thé thay đổi dit liệu
Block: Là thành phan chính của dit liệu trong blockchain Mỗi block chứa một lượngthông tin và có một định danh duy nhất được gọi là "hash" Hash của mỗi khối cũng
Trang 25bao gôm hash của khôi trước đó, tạo thành một chuỗi các khối - do đó có tên là
"blockchain".
Hash: Một ham hash có thé dé tao ra một chuỗi ký tự va số cu thé từ dit liệu đầu vào
OO SSS Sooo =
block 1 block 2 block 3
previous hash Previous hash previous hash
Hình 2.1: Minh họa cấu trúc Blockchain
Mạng Phân Tan: Thay vì lưu trữ dir liệu tập trung tại một điểm, blockchain lưu trữ
dữ liệu trên nhiều nút trong một mạng.Bản sao của toàn bộ blockchain được cung
cấp cho mỗi nút, đảm bảo an toàn và độ tin cậy của dit liệu
Giao thức Consensus: Đề đảm bảo tính nhất quán giữa các nút trong mạng,
blockchain sử dụng các giao thức consensus như Proof of Work (PoW) hoặc Proof
of Stake (PoS) Các nút trong mạng phải đồng thuận với nhau về trạng thái của
blockchain.
Thời gian thực và Phi tập trung: Blockchain cho phép ghi lại và xác nhận giao dịch
một cách nhanh chóng mà không cần sự can thiệp của bên trung ương Điều này có thé giúp giảm độ trễ và chi phí trong quá trình giao dich.
Hợp đồng Thông minh: Đây là các đoạn mã tự thực hiện các điều khoản hợp đồng
mà không cần sự can thiệp của bên thứ ba Hợp đồng thông minh chạy trên
blockchain và tự động thực hiện các điều kiện đã được xác định
Ứng dụng rộng rãi: Ngoài tiền điện tử, blockchain còn được sử dụng trong nhiều
lĩnh vực như quản lý chuỗi cung ứng, y tế, bảo hiểm, quản lý tài sản, và nhiều lĩnh
vực khác.
Trang 26Ưu điểm:
- Độ chính xác được cai thiện bang cách loại bỏ su tham gia của con người
vào quá trình xác minh.
- Việc gia mao trở nên khó hơn với phi tập trung.
- Giao dich nhanh chong
Nhuoc diém:
- Giao dich thấp mỗi giây
- Luu trữ dir liệu bi giới hạn
Điểm nồi bật của hệ thống quản lý chuỗi cung ứng có ứng dụng blockchain so với
hệ thống quản lý chuỗi cung ứng truyền thống [5]:
Tính Đáng Tin Cậy (Trustworthy): Blockchain sử dụng mô hình phân phối và kỹ
thuật mã hóa dé tạo ra một hệ thong không thé thay đôi va an toàn Moi giao dịch và
thông tin được lưu trữ trên blockchain không thé bị sửa đôi một khi đã được xác
nhận, tạo ra một nguồn dữ liệu đáng tin cậy về nguồn gốc và lịch sử của sản phẩm
trong chuỗi cung ứng.
Truy Xuất Ngược (Traceability): Blockchain cho phép theo doi nguồn gốc của từngsản pham từ bước đầu chuỗi cung ứng cho đến tay người tiêu dùng Mỗi bước trongchuỗi cung ứng được ghi lại trong các khối, giúp quản lý và truy xuất nguồn gốc trở
nên minh bach va dé dàng.
Chống Gia Mao (Anti-counterfeiting): Sự an toàn của dữ liệu trên blockchain làm
giảm nguy cơ làm giả mạo thông tin về sản phẩm Mỗi sản phẩm được gắn với một
mã xác nhận độc đáo (hash) trong blockchain, làm tăng khả năng nhận biết sản
phẩm thật và giả mạo
Giảm Chi Phí và Thời Gian (Cost and Time Efficiency): Blockchain giảm thiểu cần
thiết phải có một bên trung gian (như ngân hàng hoặc bên thứ ba) trong quá trình
xác nhận và xử lý giao dịch Điều này giúp giảm chỉ phí và thời gian trong chuỗi
cung ứng.
Tính Phi Tập Trung (Decentralization): Hệ thông blockchain không có một trung
tâm quản lý duy nhất, mà đữ liệu và giao dịch được phân tán trên nhiều nút (node)
Trang 27khác nhau Điều này làm tăng tính bền vững và an toàn của hệ thống, vì không cómột điểm yếu nào có thé bị tan công dé anh hưởng đến toàn bộ hệ thống.
Blockchain mang lai sự minh bach, tính an toàn và tinh khả tao mà các hệ thống
quản lý chuỗi cung ứng truyền thống thường không có Các đặc tính này giúp cải
thiện quản lý chuỗi cung ứng, truy xuất nguồn gốc và giảm thiểu rủi ro trong quá
trình giao dịch
2.3 Giới thiệu về hệ quan trị dữ liệu PostgreSQL
PostgreSQL [8], [9] là hệ thống quản tri cơ sở dữ liệu quan hệ và đối tượng có mục
dich, là hệ thông cơ sở dữ liệu mã nguôn mở miên phí và hiện đại nhat.
Hỗ trợ ACID: Đề đảm bảo tính toàn vẹn và độ tin cậy của dữ liệu, PostgreSQL tuânthủ các nguyên tắc ACID (Atomicity, Consistency, Isolation, Durability)
Cấu trúc có thể thay đổi: Các kiểu dữ liệu và quan hệ phức tạp có thể được tạo ravới PostgreSQL Nó hỗ trợ đa dạng loại dit liệu như số, văn bản, hình ảnh và địa lý
Hỗ trợ truy vấn mạnh mẽ: PostgreSQL cung cấp ngôn ngữ truy van SQL day đủ và
hỗ trợ các chức năng phức tạp như truy van join, cửa số (window functions), và truyvấn đệ quy
Bảo mật cao: Các tinh năng bảo mật của PostgreSQL bao gồm xác thực, mã hóa dữliệu, kiếm soát quyền truy cập dựa trên vai trò (kiểm soát quyền truy cập dựa trên
vai trò) và kiểm soát truy cập độc lập trên các đối tượng cơ sở đữ liệu.
2.5 Giới thiệu về Pusher
Pusher [10]là một dịch vụ độc đáo được thiết kế để cung cấp giải pháp cho truyền
thông realtime trong ứng dụng website và di động.
Realtime Communication: Pusher sử dung công nghệ WebSockets dé tạo kết nốiliên tục giữa may chủ và trình duyét/tmg dụng di động, giúp thông tin được truyềntải ngay lập tức mà không cần phải làm mới trang hay tải lại ứng dụng
10
Trang 28Channels và Events: Pusher sử dụng kênh (Channels) dé định rõ đối tượng truyềnthông và sự kiện (Events) dé đặc tả loại thông điệp Điều này mang lại sự linh hoạt
và kiêm soát cho các ứng dụng.
Bảo mật: Pusher chú trọng đến vấn đề bảo mật, cung cấp các biện pháp như HTTPS
và các phương tiện xác thực đề đảm bảo an toàn cho dữ liệu trong quá trình truyền
tải.
Pusher thường được sử dụng trong nhiều trường hợp, từ các ứng dụng chat realtimeđến các ứng dụng cần cập nhật thông tin ngay lập tức như bảng điều khiển thời gianthực, thông báo trực tiếp, và nhiều ứng dụng khác
2.4 Giới thiệu về NextJs
Next.js_[11], [12] là một Framework phat triển ứng dụng web React chạy cả trên
máy chủ và phía máy khách Nó được xây dựng dựa trên React, JavaScript, vaNodeJs, và được phát triển bởi Vercel
Ưu điểm:
Server-Side Rendering: Một trong những ưu điểm lớn của Nextjs là khả năng hỗ trợserver-side rendering SSR giúp tang cường hiệu suất, tối ưu hóa SEO, va cải thiện
trải nghiệm người dùng.
Client-Side Rendering: Nextjs cũng hỗ trợ client-side rendering cho các trang và
phần tử cụ thé Điều này cho phép bạn chọn cách tải và hiển thị đữ liệu, đặc biệt là
đôi với các trang hoặc phân tử không cân sự tương tác nhiêu từ phía máy chủ.
Tích hợp React: Nextjs là một phần của hệ sinh thái React, điều này đồng nghĩa rằngbạn có thê sử dung tat cả tính năng và thư viện của React khi phát triển ứng dụng
với Next.Js.
Routing tự động: Nextjs cung cấp một hệ thống định tuyến tự động dựa trên thư mục
và tên tệp, giúp ban dé dang tạo và quản lý các trang trong ứng dụng mà không cầncau hình định tuyến thủ công
11
Trang 29- Tich hợp dé dàng: Nextjs có thé tích hop dé dàng với các dịch vụ như Vercel,
Netlify, và các nền tảng khác dé triển khai ứng dụng một cách đơn giản
Được thiết kế dé tập trung vào giao
diện va tính tương tac của người
Được thiết kế để tập trung vào việc
cải thiện hiệu suât dùng
Bảng 2.2 So sánh Nextjs và Reactjs
2.6 Giới thiệu về Cloudinary
Cloudinary [13] là một dịch vụ xây dựng trên đám mây cho phép nhiều người lưutrữ và quản lý tệp Nó giúp bạn lưu trữ, quản lý và cung cấp nội dung đa phươngtiện như hình ảnh, video, âm thanh và tệp tin khác trên nền tảng đám mây, cung cấphiệu suất nhanh chóng và tích hợp dé dang cho các ứng dụng web và di động
Uu điểm:
- Cai đặt đơn giản.
- _ Miễn phí 25 GB lưu trữ.
12
Trang 30Nhược điểm:
Gói miễn phí không hợp với website lưu lượng truy cập cao
Các chức năng dùng trong dự án:
Lưu trữ đa phương tiện: Cloudinary cho lưu trữ và giám sát tất cả các tệp nhưhình
ảnh, video, tài liệu, và nhiều định dạng tệp tin khác
2.7 Giới thiệu về Hardhat
Một framework dé phát triển hợp đồng thông minh (smart contracts) và ứng dụngblockchain dựa trên nền tảng Ethereum được gọi là Hardhat [14] [15] Đây là một
sô diém nhân của Hardhat::
Phát triển và Kiêm thử Smart Contracts: Hardhat cung cấp một môi trường phát triểnmạnh mẽ cho việc xây dựng và kiểm thử smart contracts trên Ethereum Nó tích hợp
nhiều công cụ như Truffle, nhưng được xây dựng dé cung cấp trải nghiệm linh hoạt
hơn và tương thích tôt với nhiêu thư viện và công nghệ mới.
Hardhat Network: Hardhat đi kèm với Hardhat Network, một mạng riêng tư dé pháttriển và kiểm thử smart contracts mà không cần kết nối đến mạng chính thứcEthereum Điều này giúp giảm chỉ phí và tăng tốc độ phát triển
Plugins va Sự Mở Rộng: Hardhat hỗ trợ các plugins dé mở rộng khả năng của nó.Điều này giúp cộng đồng tao và chia sẻ các công cụ và tinh năng bồ sung dé tối ưu
hóa quy trình phát triên.Đồng bộ với Ecosystem Ethereum: Hardhat tích hợp tốt với
các công cụ và dự án phô biến khác trong hệ sinh thái Ethereum, giúp nhà phát triển
dễ dàng tích hợp vào các dự án lớn hơn.
2.8 Giới thiệu về Smartcontract
Các hợp đồng thông minh[13], còn được gọi là Smartcontract, đã chứng minh tiềmnăng lớn trong lĩnh vực blockchain Khái niệm này được đề xuất bởi Nick Szabovào năm 1994, và từ đó, smart contracts đã trở thành một phần quan trọng của các
hệ thống blockchain hàng đầu như Ethereum, Binance Smart Chain, và nhiều nền
tảng khác.
13
Trang 31Smart contracts tự động hóa và thực thi các điều khoản của hợp đồng bên cạnh việcchỉ bao gồm đoạn mã máy tính Ngoài ra, chúng còn là cơ sở dit liệu chạy trên
blockchain Điều này làm cho các giao dịch trở nên minh bạch, giảm sự phụ thuộc
vào người trung gian và tăng tính chắc chắn của các giao dịch
Quy trình hoạt động của hợp đồng thông minh:
SMART CONTRACT
F4›)›%PARTIES SMART CONTRACT EXECUTION
Hình 2.2 Minh họa quy trình hoạt động của Smartcontract
Bước 1: Các bên tham gia giao kết smart contract bằng cách sử dụng chữ ký số déxác nhận danh tính và sự đồng ý của mình Hợp đồng thông minh được viết bằng
ngôn ngữ lập trình và được mã hóa chuyên biệt.
Bước 2: Hợp đồng thông minh được tải lên blockchain và được phân phối, sao chépbăng các node trong mạng lưới Mỗi node sẽ kiểm tra tính hợp lệ của hợp đồng vàxác nhận nó vào một khối mới
Bước 3: Khi có lệnh triển khai, hợp đồng sẽ tự động thực thi đúng như các điều khoản
đã lập trình Một mạng máy tính sẽ thực hiện các hành động khi đáp ứng được điềukiện xác minh Các hành động có thé là: chi trả tiền, đăng ký phương tiện, xuất hóa
đơn, gửi thông báo
Bước 4: Sau khi hoàn thành các hành động, kết quả sẽ được ghi lại và cập nhật trênblockchain Các bên có quyền truy cập có thé xem kết qua và không thé tự ý thay đồi
giao dich.
Uu diém:
14
Trang 32Tự động: Smartcontract không cân sự can thiệp của con người đê thực hiện, chỉ cân
có các điều kiện được đáp ứng giúp tiết kiệm thời gian cho bên tham gia
Minh bạch: Hợp đồng thông minh được công khai trên blockchain, cho phép các bên
có quyên truy cập có thê kiêm tra các giao dịch một cách rõ ràng.
Tiết kiệm chi phi: Hợp đồng thông minh không cần đến các bên trung gian như luật
sư, ngân hang, dé thực thi hợp đồng
Nhược điểm:
Khó sửa chữa: Một khi hợp đồng thông minh được tải lên blockchain thì không thé
sửa hay hủy bỏ.
Thiếu pháp lý: Hợp đồng thông minh hiện nay vẫn chưa được công nhận và quy định
rõ bởi luật pháp của các quốc gia
Một trong những đặc điểm nổi bật của smart contracts là khả năng thực hiện tự độngdựa trên các điều kiện đã đặt ra Ví dụ, một smart contract có thể chuyền tiền tựđộng từ người này sang người khác khi một sự kiện nhất định xảy ra, như hạn mứcthời gian đã trôi qua hoặc một điều kiện lệnh đã được đáp ứng
Các smart contracts thường được viết bằng các ngôn ngữ lập trình đặc biệt cho mụcđích này, ví dụ như Solidity cho Ethereum Công cụ phát triển và môi trường thửnghiệm đồng thời hỗ trợ người phát triển trong quá trình xây dựng và triển khai
smart contracts Ung dung cua smart contracts rat da dang Trong linh vuc tai chinh,
chúng có thé được sử dung cho việc quan lý quỹ và chuyền đổi tiền tệ Trong lĩnhvực bat động sản, smart contracts có thé giúp thực hiện các giao dich mua ban mộtcách nhanh chóng va minh bạch Trong y tế, chúng có thé đóng vai trò quan trọngtrong quản lý thông tin y tế an toàn và riêng tư
Tóm lại, smart contracts không chỉ là một khái niệm trừu tượng mà còn là một công
cụ mạnh mẽ, hứa hẹn mang lại sự hiệu quả, minh bạch và tính an toàn cao trong
nhiều lĩnh vực của cuộc sống và kinh tế
2.9 Giới thiệu về Arbitrum
15
Trang 33Arbitrum [5] là giải pháp mở rộng Layer 2 (L2) được xây dựng trên nền tảng
Ethereum sử dung Optimistic Rollups., nhằm mục đích giải quyết các van đề về khả
năng mở rộng và chi phí giao dịch cao mà Ethereum dang gặp phải.
Optimistic Rollup hoạt động bằng cách di chuyên việc thực thi giao dịch ra ngoài
chuỗi, nhưng vẫn giữ nguyên trạng thái giao dịch trên chuỗi chính Điều này giúp
giảm tải cho chuôi chính, từ đó cải thiện khả năng mở rộng.
Cách thức hoạt động của Optimistic Rollup [4]:
« Gui giao dịch: Người dùng gửi giao dịch đến Optimistic Rollup
« - Xử lý giao dịch: Trình xác minh (sequencer) xử lý giao dịch ngoài chuỗi.
« Luu trữ trạng thái: Trạng thái giao dịch được lưu trữ trên chuỗi chính
Ethereum.
¢ _ Thách thức gian lận: Bat kỳ ai cũng có thê thách thức giao dịch là gian lận
trong một khoảng thời gian nhât định.
« Giải quyết tranh chấp: Nếu có tranh chấp, trình xác minh sẽ cung cấp
băng chứng đê chứng minh giao dịch hợp lệ.
Điêm nôi bật của Arbitrum One:
« _ Tốc độ giao dịch nhanh: Nhờ sử dung công nghệ Optimistic Rollup,
Arbitrum One có thé xử lý giao dịch nhanh hơn Ethereum nhiều lần, giúp
giảm thời gian chờ đợi cho người dùng.
«Phi giao dịch thấp: Phí giao dịch trên Arbitrum One rẻ hon đáng kể so với
Ethereum, giúp người dùng tiết kiệm chi phí khi thực hiện giao dịch
e Kha năng tương thích: Arbitrum One hoàn toan tương thích với Ethereum,
nghĩa là các hợp đồng thông minh và ứng dụng hiện có trên Ethereum có thể
dễ dàng triển khai trên Arbitrum One mà không cần thay đổi
e Bao mật: Arbitrum One được thừa hưởng tính bảo mật từ Ethereum, do đó
người dùng có thê yên tâm vê sự an toàn của tài sản của mình.
16
Trang 34Ứng dụng của Arbitrum One:
« DeFi (Tài chính phi tập trung): Arbitrum One là môi trường lý tưởng cho các
ứng dụng DeEi do tốc độ giao dịch nhanh và phí giao dịch thấp
¢ NET (Non-Fungible Token): Arbitrum One cũng là lựa chọn phổ biến cho
các ứng dụng NFT đo khả năng mở rộng và chỉ phí thấp
Lợi ích khi sử dụng Arbitrum One:
« - Giảm thời gian chờ đợi giao dich: Người dùng có thé thực hiện giao dịch
nhanh hơn và tiết kiệm thời gian
¢ _ Tiết kiệm chi phi giao dịch: Người dùng có thê tiết kiệm chi phí khi thực
hiện giao dịch.
May ảo Ethereum (EVM) đóng vai trò trung tâm trong hệ sinh thái Ethereum, ví
như một chiếc máy tính duy nhất và thống nhất cho toàn bộ mạng lưới Mỗi thành
viên tham gia Ethereum đều lưu trữ một bản sao của EVM, cho phép họ thực hiện
các giao dịch và ứng dụng phi tập trung (dApps) một cách đồng nhất
Cách thức hoạt đông:
1 Gửi yêu cầu giao dịch: Người dùng gửi yêu cầu giao dịch đến mạng lưới
Ethereum Yêu cầu này bao gồm các thông tin như người gửi, người nhận, sốtiền và dữ liệu giao dịch
2 Thực thi giao dịch: EVM trên mỗi nút mạng lưới sẽ nhận được yêu cầu giao
dịch và thực hiện các tính toán cần thiết để hoàn thành giao dịch
3 Xác minh giao dịch: Các nút khác trong mạng lưới sẽ kiểm tra và xác minh
tính hợp lệ của giao dich Quá trình nay đảm bảo rang giao dịch tuân thủ cácquy tắc của Ethereum và không có gian lận xảy ra
4 Cập nhật trạng thái: Sau khi xác minh thành công, kết quả giao dich sẽ
được cập nhật lên EVM và đồng bộ cho tất cả các nút trong mạng lưới Điều
17
Trang 35này dam bảo răng mọi người đêu có chung dữ liệu và lịch sử giao dịch nhat
quán
Ethereum là một nền tảng phi tập trung sử dụng công nghệ blockchain đề hỗ trợ
các giao dịch và ứng dung phi tập trung (dApps) Hệ thống hoạt động dựa trên
Ether (ETH), tiền điện tử gốc của Ethereum, được sử dụng đề:
«e Thưởng cho thợ đào/người xác nhận: Họ đóng vai trò quan trọng trong
việc xác minh giao dịch và thực hiện các yêu cầu tính toán trên mạng lưới
Phí này được gọi là phi gas.
‹ Thanh toán cho các giao dich: Người dùng can trả một khoản phí gas nhỏ
cho mỗi giao dịch thực hiện trên mạng lưới Mức phí này phụ thuộc vào độ
phức tạp của giao dịch và nhu cầu sử dụng mạng lưới tại thời điểm đó
Gas là đơn vị đo lường lượng tài nguyên tính toán cần thiết cho các hoạt động trên
Ethereum Việc thu phí gas giúp:
‹ Ngan chặn các hành vi lừa đảo: Việc sử dụng gas tốn kém sẽ khiến các tác
nhân xấu không thé thực hiện các hành vi tan công mạng lưới hiệu quả
‹ Duy trì tính bảo mật: Phí gas đóng góp vào việc bảo mật mạng lưới bằng
cách khuyến khích các thợ đào/người xác nhận tham gia vào quá trình xác
minh giao dịch.
Quy trình hoạt động:
1 Giao dịch: Người dùng thực hiện giao dịch trên mạng lưới Ethereum.
2 Tính toán phí gas: Mức phí gas cho mỗi giao dịch được xác định dựa trên
độ phức tạp của giao dịch và nhu cầu sử dụng mạng lưới tại thời điểm đó
3 Xác minh giao dịch: Các thợ đào/người xác nhận thu thập và xác minh giao
dịch.
4 Đóng gói giao dịch: Các giao dịch được đóng gói thành các khối.
18
Trang 365 Thêm khối vào chuỗi khối: Các khối được xác nhận và thêm vào chuỗi khối
Ethereum, tạo thành số cái công khai ghi chép lịch sử giao dich
6 Thưởng cho thợ đào/người xác nhận: Phí gas được phân phối cho các thợ
đào/người xác nhận đã tham gia vào việc xác minh giao dịch và đóng góp vào bảo mật mạng lưới.
Cơ chế đồng thuận Proof-of-Stake:
Ké từ năm 2022, Ethereum chuyền sang sử dụng cơ chế đồng thuận Proof-of-Stake(PoS) thay vì Proof-of-Work (PoW) trước đây PoS giúp tiết kiệm năng lượng hon
và hoạt động hiệu quả hơn.
Vai trò của nút mạng:
¢ Luu trữ dữ liệu: Các nút mạng lưu trữ bản sao đầy đủ của chuỗi khối
Ethereum, đảm bảo tính phi tập trung và an toàn cho mạng lưới.
e Xác minh giao dich: Các nút mạng tham gia vào quá trình xác minh giao
dịch và đảm bảo tính chính xác của số cái công khai
‹ _ Cung cấp dich vụ: Một số nút mạng cung cấp dịch vu API cho phép
người dùng và các ứng dụng dApps truy cập dữ liệu và thực hiện giao dịch trên Ethereum.
19
Trang 37Chương 3 PHAN TÍCH, THIET KE HE THONG
3.1 Xác định yêu cầu
Tìm hiểu các luồng hoạt động của một website
Nghiên cứu các yêu cầu của mọi người về một ứng dụng quản lý chuỗi cung ứngsầu riêng, từ đó phân tích các chức năng cần có của ứng dụng
Xây dựng các chức năng từ những yêu cầu của người dùng:
Chia sẻ thông tin: Đăng sản phẩm, xem thông tin sản phẩm
Tương tác với sản phẩm: bình luận về sản phẩm, xem nguồn gốc sản phẩm
Chức năng tìm kiếm: Tìm kiếm theo tên và giá tiền, nhắn tin được với chủ sản phẩm,
theo dõi tinh trạng mua bán của sản phẩm,
3.2 Qui trình nghiệp vu
Sơ đô dưới đây biên hiện mô phỏng các chức năng của các nhóm người dùng trong
Website quản lý chuỗi cung ứng sầu riêng
Breakdown diagram
Supply chain durian
Admin Seedling Comoany Farmer Manufacturer
User management Product management Product management Product management
E—| Search product || Search product ‘Search product
‘Search user
(Add update, delete| (Adc, Undate, deese] ¬ update delete| Add undate delete
for users for products for products for products
(Order management
‘Order management —| Order management
H Search order | Search order j-] Search order
LÍ Confem order LÍ Confem order [7] Confirm order
LJ Buy order
int managerment LY Buy order
Read infomation 1 account management
Account managerment
|_| ead infomation Read infomation Update infomation
|] Urdate infomation
Update password Update infomation
Update password Update password
Deposit, Withdraw
11 Deposit, witharaw Deposit Withdraw
Hình 3.1 Minh hoa chức năng từng nhóm người dùng
20
Trang 38Chức năng Admin:
Đăng nhập
Thống kê lượng người dùng và sản phẩm trong hệ thống
Quản lý người dùng trong hệ thống( xóa người dùng, phân quyền người dùng )
Chức năng Seedling Company(công ty hạt giống):
Quản lý sản phẩm ( Thêm, xóa, cập nhật tình trang sản phẩm, bán sản phẩm)
Quản lý giao dịch ( Theo đõi lịch sử giao dịch , xác nhận hoặc từ chối đơn hàng)
Nạp tiền bằng ví VNPay
3.3 Phân tích yêu cầu
3.3.1 Chức năng đăng ky
Hệ thống sẽ hién thị ra form dé người dùng có thé đăng ký bang email
Sau đó hệ thống sẽ gửi mã về email mà người dùng đã đăng ký
Lúc này người dùng có thé lay mã dé xác nhận hoàn tat đăng ký
21
Trang 393.3.3 Chức năng quên mật khẩu
Khi quên mật khâu, người dùng có thê lẫy lại mật khâu băng cách nhập email của
mình roi xác nhận dé lây lại mật khâu của mình.
3.3.4 Chức năng thay đổi mật khẩu
Người dùng có thé thay đổi mật khẩu của minh bang cách nhập đúng mật khẩu củ
và nhập lại mật khẩu mới của mình.
3.3.5 Chức năng khóa tài khoản người dùng
Đối với Admin có thể khóa tài khoản người dùng
3.3.6 Chức năng nạp, rút tiền tài khoản của người dùng
Nạp tiền: người dùng sẽ chọn số tiền mà muốn chuyên vào hệ thống, lúc này hệ
thống sẽ tự động tạo một nội dung chuyền khoản và một mã QR Code Người dùng
sẽ quyét mã đề chuyền tiền
Rút tiên: người dùng sẽ rút sô tiên mong muôn trong tài khoản của mình.
3.3.7 Chức năng xác thực và ủy quyền người dùng bằng token (JWT)
Khi người dùng đăng nhập vào, hệ thống sẽ tạo ra một mã token, từ token đó thì hệ
thong sẽ biét được người đó là ai và và có các quyên gi đê tương tác với hệ thông.
22
Trang 403.3.8 Chức năng thống kê người dùng cho Admin
Đối với Admin thì có thé xem được tổng số người dùng trong hệ thống, tổng số
người dùng đã tham gia, tổng số Member, Seedling company, Farmer,Manufacturer, tổng sản pham ở Marketplcae, tổng từng loại sản phâm, số số giao
dịch theo ngày, tháng,
3.3.9 Chức năng thống kê cho người dùng
Đối với mỗi người dùng thì có thé xem được tông số lượng sản phẩm của mình, tong
sô lượt mua sản phâm của mình, tông sô lượt đã được mua từ người khác.
3.3.10 Chức năng khảo sát người dùng
Sau khi đăng ký thành công và đăng nhập vào hệ thống, mặc định vai trò của ngườidùng đó là “MEMBER”, đối với vai trò này thì người dùng chỉ được phép xem cácthông tin về các sản phẩm và không thể thao tác như mua sản phẩm từ các nguồn.Lúc này người dùng phải làm khảo sát và hệ thong sẽ hiển thị các vai trò mong muốnnhư “SEEDLING_COMPANY, FARMER, MANUFACTURER” dé đúng với nhucầu của người
3.3.11 Chức năng xác nhận khảo sát người dùng đối với Admin
Hiển thị tat cả các người dùng đã làm khảo sát, lúc này Admin có thé xem các khảosát mà người dùng đã làm, và có thể cân nhắc chấp nhận hay từ chối một người dùngbất kỳ
3.3.12 Chức năng cập nhật thông tin cá nhân
Người dùng có thể cập nhật lại thông tin của mình như avatar, mô tả về bản thân,
địa chỉ, nơi làm việc,
3.3.13 Chức năng tạo sản phẩm
Seedling company
23