Cộng với việc phát triển của các ứng dung Web va Mobile ngàycàng dễ dang, nhóm nhận thấy việc triển khai, xây dựng hệ thống với các tính chất và đáp ứng tính năng từ các nhu cầu trên sẽ
Trang 1ĐẠ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
Trang 2Đ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ữngkiế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ớitrong 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ómcò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ácthiế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ô
TP Hỗ Chi Minh, Ngày tháng 7 năm 2023
Sinh viên
NGUYÊN THÀNH HIẾU
TRAN QUỐC KHANH
Trang 3TOM 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.1 LY do chọn đề tài - ccs5scesesrseseesrsresetsrsrsrssrsrsree 9
1.2.1 Khách Quan Ăn ng 9
1.3.1 Các công nghệ nghién COU: 5 6 5+ EkEEEEeEreerersererkre 101.3.2 Đối tượng sử dụng đề tài hướng đến: . ¿ s+©s++cx++cxescxees 11
2.1.1 Giới thiệu cc 55c tk SE E11 EExcEtrrrrrkrrree 13
Trang 42.1.3 Giới thiệu Ant Des1gn HH HH kt 14
2.3 Express JS — Framework của Node JS - «SSSSSSSsseses 16
2.3.1 Giới thiệu Express JS woe ceseeeeseceseecseeeeseeceneessaeeeseeesseeesaeeesaeeeseeesaes 16
2.3.2 Ap dung vao 6 tai cccccccccscsssesssesssecssecsecssecssecsssssscasecssecsuscsecasecsseeseeases 17
2.4 Smart Contract và Ethereum cccssccssssssesssssscessessceeessssseeesssseeees 18
2.4.3 Lý do lựa chọn ứng dụng Blockchain vào đề tài -‹- 20
2.5.1 Giới thiệu về Firebase .cc-csttcrktiiertirttriirirriiirrrreeiei 22
2.7.2 Áp dụng vào đề tài s se Sex vvctexeveretrttrsrsrsrererrrrsree 24
2.8.1 Giới thiệu về Amazon Web SerViCes s-scscscscscscereeeeesesree 252.8.2 Áp dụng vào đề tài s-c<csccectttEkrkEkrkerrkerrkerrkrrseesre 26
Trang 52.9.1 Giới thiệu về Android 5-5-5-s-sssesssseesttsrsrsrsrseeersree 26
2.9.2 Giới thiệu về Kotlin -. 5-5sccccesesesesreretstsrsrsrsrsrsersree 27
2.9.3 Áp dụng vào đề tài -s- <csccestrstekerkerrkerrkerrkerrkersresre 27
CHUONG 3: THIET KE - SỬ DỤNG BLOCKCHAIN TRONG HỆ THONG 28
3.1 Tống quan về mạng Ethereum blockchain công khai (Ethereum Public
3.2 Tổng quan về mạng Ethereum Blockchain nội bộ (Ethereum Private
Blockchain 861 2ã./)y 90277 28
3.2.1 Giới thiệu về PoA Private Blockchain - << << 52 29
3.2.2 Kiến trúc của Nut trong Ethereum (Ethereum Node Strueture) 29
Thuật toán đồng thuận Ethash: - -<55s+s+ss>sesesexexesessrszsesee 31
3.4 Kiến trúc Blockchain trong hệ thống 5-5-55essesecsss<s2 323.4.1 Kiến trúc luồng hoạt động của Public Bloekehain 32
3.4.2 Kiến trúc luồng hoạt động của Private Blockchain 33
3.5 So sánh Public Blockchain Network va Private Blockchain Network 34
3.5.1 Kha năng sử dung và tiép cận 5-5-<cccscseseseseseseseeeeersre 34
3.5.2 Quản (TỊ cọ họ Họ m4 35
3.5.4 Bảo mật và hiệu suất 5-5-5-sscceeeseeeEEettsrsrsrsrsreerersree 35
Trang 63.5.5 Tính Ứng Ụng - 000000094 36
4.1.1 Mô tả nghiệp vụ hệ thống ¿- ¿55s Sx+SE+E2EvErxerxerxerxerrereee 37
4.1.3 Yêu cầu phi chức năng - ¿+ ++£++E+Ek£EEEEEEEEEEEtrErrkerrkerkerkeee 40
4.2.1 Sơ đồ mô tả Domain cscc+vtcExtttEkttittrkrirtrtrrrrrtrrrrrrriee 41
4.3 Mô tả sơ đồ Usecases ssscsssssssssssesesesesessecscscscsesesesesssessesesescacacacsessees 44
4.3.1 Authentication SeCase - ng, 46
4.3.3 Usecase quản lý hạt giỐng - ¿+ x+cx+EvEvEvrrrerxerxerxereerree 54
4.3.4 Usecase quản lý mảnh đất của nông trại -¿s+©5+2cs+cxcs+e: 56
4.4.8 Usecase quản lý dự án vận chuyền -2- 25+©s++xecsersersereee 694.4.9 Usecase quản lý dự án nhập/ xuất kho . ¿-¿-s+cs++-x+cx+ec++ 714.4.10 Usecase quản lý dự án sản XuẤt :-©5+2c+++cxvcxterxsrxerreeree 73
4.5.3 Sơ đồ Activity Thay đổi mật khẩu ¿ s¿¿©s++cx++xx+zseerxs 77
4.5.5 Sơ đồ Activity Tạo tài khoản -¿-sc©2+cxe2cxvrxerxeerxesrxerrerree 78
4.5.6 Sơ đồ Activity Tạo nông trại -¿- sc©5+x+2cx2rxerxterxesrxerrerree 79
Trang 74.5.7 4.5.8
4.5.18
Sơ đồ Activity Tạo tài khoản nhân viên -2-cs¿cs+cs+ecss 80
Sơ đồ Activity Cập nhật bộ phần phòng ban cho nhân viên 80
Sơ đồ Activity Tìm kiếm — sử dụng chung . -¿ z©5s=5+ 81
Sơ đồ Activity Tạo mới hạt giống và mảnh đất -s- 81
Sơ đồ Activity Cập nhật thông tin hạt giống và mảnh đất 82
Sơ đồ Activity Thay đôi thông tin nông trại -. -: 2 sc-5+ 5+ 82
Sơ đồ Activity Cập nhật thông tin dự án lô hàng . .: 83
Sơ đồ Activity Xem danh sách các dự án — sử dùng chung 84
Sơ đồ Activity Cập nhật trang thái dự án — sử dung chung 84
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Ở DU LIEU isesssssssssssessssssssssssssssessessessessesssssssssssess 86
5.1 Thiết kế sơ đồ lớp - << 5s 5s SsSs+s+eeeeteEeEsrsrsrststsrsrsrsrsrrsrsrke 865.2_ Danh sách các lớp trong sơ đỒ -s-«-s=s+sessssxsesessxszsesee 87
5.3.3 Bảng thông tin lớp hạt giống -¿ s+©c++2x+vcxerxesrxerreerxeerxee 90
5.3.6 Bảng thông tin lớp dự án của doanh nghiỆp - ‹ -< «<- 92
5.3.9 Bảng thông tin lớp dự án nhập/ xuất kho bãi . s52 96
5.3.10 Bảng thông tin lớp dự án sản xuất -2 s+cx++cx+cx+zrxeerxe2 98
Trang 85.3.11 Bảng enum thông tin vai trò của tài khoản +-s<+<<se+sss+ 99
5.3.12 Bảng enum thông tin phòng ban/ công việc của nhân viên 100
5.3.13 Bảng enum thông tin trạng thái mảnh/ mẫu đắt - - 100
5.3.14 Bang enum thông tin trạng thai nông trại ‹- <<: 101 5.3.15 Bang enum thông tin trạng thái chung cho dự án 101
5.3.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 -. «- 104
6.1 Danh sách các màn hình chung - «+ «se essee 104 6.1.1 Man hình Đăng nhập - LOB1T - - 5 55+ s+ssvssereerserserrke 104 6.1.2 Màn hình Quên mật khẩu -©+c+++++trerrkerrrrkerrrrree 104 6.2_ Danh sách màn hình Tech Admin — Quản lý kỹ thuật 105
6.3 Danh sách màn hình Farmer — Nông dân theo nông trại 108
6.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 118
6.6 Danh sách màn hình nhân viên kiểm tra vận chuyền - 120
6.7 Danh sách màn hình nhân viên kiểm tra xuất/ nhập kho 121
6.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ử: ¿5-5 5sscs+eeeeseeeeerersrsesrsrsrsrsrsrrsree 128 7.3 Phương pháp kiểm thử:: - 5-5555 sssSSsSExsEesesrsrseseeersrse 128 7.4 Quy trình kiểm thử: - 5-5-5522 2S Ses£s£seseseseseseeeeerersrs 128 7.4.1 Xác định thông tin truy xuất nguồn gốc hang hoá: 128
Trang 97.4.2 Tạo các bộ testcase kiểm thử thủ công: s -e-ese- 1287.4.3 Kiểm tra tính bảo mật của hệ thống 5-5 5 << << ce<eseses 1297.4.4 Kiểm tra tính chính xác và đầy đủ của thông tin: 129
7.6 Kết quả kiểm thử: -5 55s ss+s£sSSsEsEsEEsesrsrsrsrsrsrrsree 129
CHƯƠNG 8: TONG KẾT 5< ©c<Sce‡teeEteEkeEkeEEkerkerkerrerrerkrrkrrrerrerrerrkee 130
8.2 Thuận lợi và khó khăn s- - < sssessxteeserstsrsessrsrsrsersrs 131
8.2.1 Thuận lợi ¿-+c2c++E+keEkSEEEEEEEEEEEkEEEkerkerkrsrkrrrrerrree 131
Trang 10DANH MỤC HÌNH
Hình ảnh 2.9.2: Hình ảnh logo KoftÏ1n - - 5 2S 3+ *+EEveExeereeereeereerreerrss 27
Hình ảnh 3.2.2.1: Các Nút Geth trong Mang Ethereum Blockchain 29
Hình anh 3.2.2.2: Sơ đồ Kiến trúc của Nút trong Geth -5¿©5z2cs+cx+zxczsz 30
Hình 4.1.1: Hình ảnh mô tả luồng nghiệp vụ chính của hệ thống 38Hình 4.2.1 Hình anh mô ta domain model trong hệ thống . - 41Hình 4.3 Hình ảnh mô ta Usecase tong quat c ccecceccscsessessesssessesseesessessessesesseeseees 44
Hình 4.3.2.1 Hình ảnh Usecase Quản lý tài khoản cua Tech Admin 49 Hình 4.3.2.2 Hình anh Usecase Quản lý tài khoản cua System Admin 49
Trang 11Hình 4.3.3 Hình ảnh Usecase Quản lý hạt giống nông trại - :- 2-5 54
Hình 4.3.5 Hình ảnh Usecase Quản lý các dự án của nông trại - - 59
Hình 4.4.5 Hình anh Usecase Quản lý các dự án của nông trại - - 61
Hình 4.4.7 Hình anh Usecase Quan lý các dự án thu hoạch - - «+ «+ 67
Hình 4.4.8 Hình anh Usecase Quản lý các dự án vận chuyên . - 69
Hình 4.4.9 Hình ảnh Usecase Quản lý các dự án nhập/ xuất kho 71
Hình 4.4.10 Hình ảnh Usecase Quản lý các dự án sản xuất -5- 5+ 73 Hình 4.5.1 Hình ảnh sơ đồ Activity đăng nhập - 2-52 2+ cxecxerxerxersxee 76 Hình 4.5.2 Hình ảnh sơ đồ Activity đăng xuất ¿ 5¿©2ecxzecxcsrxerxecree 71 Hình 4.5.3 Hình anh sơ đồ Activity thay đổi mật khẩu -5¿5¿=5+ 71 Hình 4.5.4 Hình anh sơ đồ Activity quên mật khẩu - 2 2-52 5 s2 s2 5+2 78 Hình 4.5.5 Hình ảnh sơ đồ Activity tạo tài khoản cho admin/ farmer - 78
Hình 4.5.6 Hình ảnh sơ đồ Activity tạo tài khoản cho admin/ farmer - 79
Hình 4.5.7 Hình ảnh sơ đồ Activity tạo tài khoản cho admin/ farmer - 79
Hình 4.5.8 Hình anh sơ đồ Activity tạo tài khoản nhân viên của System Admin 80
Hình 4.5.9 Hình ảnh sơ đồ Activity cập nhật bộ phan bong ban cho nhân vién 80
Hình 4.5.10 Hình ảnh sơ đồ Activity Tìm kiếm — dung chung - 81
Hình 4.5.11 Hình anh sơ đồ Activity Tao mới hạt giỗng và mảnh đất 81
Hình 4.5.12 Hình anh sơ đồ Activity Cập nhật thông tin hạt giống và mảnh dat 82
Hình 4.5.13 Hình anh sơ đồ Activity thay đổi thong tin nông trại 82
Hình 4.5.14 Hình anh sơ đồ Activity tạo mới du án cho lô hàng 83
Hình 4.5.15 Hình anh sơ đồ Activity cập nhật thông tin dự án lô hàng 83
Trang 12Hình 4.5.16 Hình ảnh sơ đồ Activity xem danh sách các dự án (sử dụng chung) 84
Hình 4.5.17 Hình ảnh sơ đồ Activity cập nhật trạng thái các dự án (sử dụng chung)
— 84
Hình 4.5.19 Hình ảnh sơ đồ Activity cập nhật thông tin các bước của dự án (sử
8101389101017 ‹- 85
Hình 6.1.1 Hình anh màn hình Đăng nhập - s55 55 +3 ‡+cxsssserseers 104
Hình 6.1.2 Hình ảnh màn hình Quên mật khâu - - 2 2s 2+s+£++Ee£xz£+ 104
Hình 6.1.2.2 Hình ảnh màn hình Email phản hồi lấy lại mật khẩu 105
Hình 6.2.2 Hình ảnh màn hình tạo tài khoản Hmớii - 55 5555 +++<s<+<+s<ss< 5+ 106Hình 6.2.3 Hình ảnh man hình chi tiết tài khoản user -::-55-=5+: 106
Hình 6.3.1 Hình anh màn hình quản lý nhân viên trong nông trai 109
Hình 6.3.5 Hình ảnh màn hình cập nhật thông tin chung của dự án 110
Hình 6.3.6 Hình ảnh màn hình cập nhật thông tin chi tiết dự nông trại 111Hình 6.3.7 Hình ảnh quản lý đất trong nông trại : ¿s52 111
Trang 13Hình 6.3.10 Hình ảnh màn hình quản lý hạt giống trong nông trại - 113
Hình 6.3.11 Hình ảnh màn hình tạo mới hạt giỐng 2 s2 22+ 2+: 113 Hình 6.3.12 Hình ảnh màn hình chỉnh sửa thông tin hạt giống 114
Hình 6.4.1 Hình anh màn hình dashboard 5 55+ + £+skrseerseessereers 114 Hình 6.4.2 Hình anh màn hình màn quản ly danh sách dự án - 115
Hình 6.4.3 Hình anh màn hình tạo dự án - c5 52 2< ***+2S+sevrxsseeeeses 115 Hình 6.4.4 Hình anh màn hình chỉ tiết du án - ¿2-5 + s+E+E+EE+E+EeEzEzEerezsza 116 Hình 6.4.5 Hình ảnh màn hình thay đổi thông tin cơ bản dự án -. - 117
Hình 6.4.6 Hình ảnh màn hình quản lý nhân trong hệ thống -. - 117
Hình 6.4.7 Hình ảnh màn hình chỉ tiết thông tin nhân viên - +: 118
Hình 6.5.1 Hình anh màn hình danh sách các dự án của nhân viên 118
Hình 6.5.2 Hình ảnh màn hình chi tiết dự án kiểm tra thu hoạch - - 119
Hình 6.5.3 Hình ảnh màn hình chỉ tiết cập nhật thông tin kiểm tra thu hoạch 119
Hình 6.6.1 Hình ảnh màn hình danh sách các dự án của nhân viên kiêm tra vận Hình 6.6.2 Hình ảnh màn hình chi tiết dự án kiêm tra vận chuyền 120
Hình 6.6.3 Hình ảnh màn hình chi tiết cập nhật thông tin kiêm tra vận chuyền 121
Hình 6.7.1 Hình ảnh màn hình danh sách các dự án của nhân viên xuất/ nhập kho Hình 6.7.2 Hình anh màn hình chỉ tiết dy án kiểm tra xuất/ nhập kho 122 Hình 6.7.3 Hình ảnh màn hình chỉ tiết cập nhật thông tin kiểm tra xuất/ nhập kho
Trang 14Hình 6.8.2 Hình ảnh màn hình chi tiết dự án kiểm tra sản xuất 123
Hình 6.8.3 Hình ảnh màn hình chi tiết cập nhật thông tin kiểm tra sản xuất sản
phẩm - ¿5259k 1E 1911211211 211111111111 1111111111111 1.11111101111111 g1 grreu 124
Hình 6.8.4 Hình ảnh màn hình tạo sản phẩm cho dự án - 2-2 25c: 124
Hinh ảnh 6.9.5: Màn hình chính - - G G << < << EEEEEEEEEEEEESSS SE SE SE 555555555 1111k kkk 127
Trang 15DANH MỤC BANG
Bảng 4.3 Bảng danh sách các tác nhân trong sơ đồ Usecases - 45Bảng 5.2 Bang mô tả chỉ tiết các thực thỂ 2-2-5 E2E£2EE£EEvEEerEErrkerkerkerex 88
Bang 5.3.9 Bang mô tả thông tin lớp dự án xuất/ nhập kho -¿ 97
Bang 5.3.10 Bảng mô tả thông tin lớp du án sản xuất 2 ¿55s s+zszss2 99
Bảng 5.3.12 Bang enum thông tin phòng ban/ công việc của nhân viên 100
Bang 5.3.15 Bảng enum thông tin trạng thai chung cho dự án - 101
Trang 16DANH MỤC TU VIET TAT
API Application Programming Interface
AWS Amazon Web Service
UI User Interface HTTP HyperText Transfer Protocol
Trang 17TÓM TAT KHÓA LUẬN
Trong thời đại phát triển như ngày nay, việc theo dõi nguồn gốc sản phẩm là
một điều cần thiết và phù hợp Quá trình lưu vết và theo dõi thông tin sản pham
được triển khải từ giai đoạn thực hiện thô đến khi sản phẩm được bán ra thị trường
Mục đích của việc trên là đáp ứng độ tin cậy an toàn và chất lượng của sản pham vàđảm bảo sự minh bạch trong quá trình sản xuất và phân phối sản phẩm Cần biết
rằng, trong ngành nuôi trồng việc truy xuất và minh bạch nguồn gốc hàng hoá càngđược vì đây là van dé liên quan trực tiếp đến sức khỏe con người Ngoài ra, việc
truy xuất thông tin hàng hoá cũng giúp cho doanh nghiệp có thé tìm kiếm nguồn
gốc các sản phẩm và giai đoạn của mình, từ đó đảm bảo tính minh bạch và xã hội
của các sản phẩm Hơn nữa, sự minh bac trong quy trình kiểm tra các công đoạn sẽ
giúp giảm thiểu rủi ro và hỗ trợ quản lý rủi ro của doanh nghiệp
Bên cạnh đó, cùng với sự phát triển mạnh mẽ của công nghệ, việc ứng dụng
công nghệ vào sẽ giúp thúc đây sự phát triển của những ngành công nghiệp nuôi
trồng dan phổ biến Cộng với việc phát triển của các ứng dung Web va Mobile ngàycàng dễ dang, nhóm nhận thấy việc triển khai, xây dựng hệ thống với các tính chất
và đáp ứng tính năng từ các nhu cầu trên sẽ có tính sử dụng cao và khả thi khi áp
dụng vao thực tế.
Mặc khác.dự trên tính toán về thời gian và thực lực đầu tư vào KLTN, nhóm
chúng em tập trung hướng đến là một hệ thống đa nền tảng chạy trên cả Web và
thiết bị di động (Android) Hệ thong bao gồm các tiện ích:
- Quản lý nhân viên nội bộ
- Quản lý tài khoản nông dân, nông trại
- Quản lý thông tin lô hàng — dự án
- Quản lý thông tin các giai đoạn trong quá trình sản xuất
- Cung cấp thông tin về quá trình sản xuất, thông tin chỉ tiết của sản phẩm
Trang 18- Lưu vết và truy xuất thông tin sản pham, thông tin lô hàng, thông tin của từngquy trình sản xuất
Sau quá trình miệt mài tìm hiểu, thực hiện cài đặt và thiết kế hệ thống, nội dung
được trình bày trong bài báo cáo là những thành quả mà nhóm đã đạt được trong
thời gian qua.
Trang 19ĐẠI HỌC QUOC GIA TP HO CHÍMINH CONG HÒA XÃ HOI CHỦ NGHĨA VIET NAM
TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
DE CƯƠNG CHI TIẾT
TÊN DE TÀI: PHÁT TRIÊN UNG DỤNG TRUY XUẤT NGUON GOC HÀNG
HÓA TÍCH HỢP ETHEREUM BLOCKCHAIN VÀ SMART CONTRACT
Cán bộ hướng dẫn: TS Nguyễn Trịnh Đông
Thời gian thực hiện: Từ ngày 01/01/2023 đến ngày 01/06/2023
Sinh viên thực hiện:
Nguyễn Thành Hiếu - 19521505Trần Quốc Khánh — 19521686
Nội dung đề tài:
1 Lý do chọn đề tài:
Nguồn gốc hàng hóa minh bạch (Nông san) đang được xem là một yếu tô cốt
lõi trong việc bảo vệ và đảm bảo thương hiệu, lợi ích kinh doanh cho các doanhnghiệp, tổ chức vận hành hàng hoá Đồng thời việc xác định rõ thông tin vànguồn gốc của nông sản cũng mang lại cho người tiêu dùng sự tin tưởng, tínnhiệm, an tâm khi sử dụng sản phẩm Tuy nhiên việc truy xuất còn nhiều rủi
ro, chưa đáp ứng được tính rõ ràng, chính xác trong những giải pháp giấy tờ
thủ công Vì lí do đó việc ứng dụng công nghệ thông tin vào vấn đề truy xuất
sẽ mang lại nhiều thuận lợi cho doanh nghiệp và góp phần củng cô niềm tin từphía người tiêu dung Triển khai Blockchain vào việc truy xuất, quản lý thôngtin nguồn gốc hàng hoá sẽ đảm bảo tính minh bạch, sự bảo mật và hiện đại
Trang 20Nhất là trong thời kỳ phát triên vượt bậc về công nghệ như hiện nay, ứng dụngcông nghệ và vân đê trên sẽ đơn giản hoá việc truy xuât nguôn gôc ,đưa sản
phâm dén gân với người tiêu dùng hon.
2 Mục tiêu đề tài:
Nghiên cứu và tìm hiểu về công nghệ blockchain và những mô hình ứngdụng blockchain trong quản lý hàng hoá, lưu trữ thông tin và truy xuấtnguồn gốc hang hoá Tìm hiểu và ứng dụng những phương pháp dé khắcphục những lỗ hồng, rủi ro hiện có đối với việc truy vết theo phương pháp
thủ công truyền thống Qua đó, xây dựng một hệ thống kiểm tra và tra cứu
thông tin nguồn gốc nông sản đảm bảo ba yếu tổ chính: minh bạch, bao mật
và dê sử dụng Hệ thông sẽ bao gôm các nhân tô chính sau:
CSDL người dùng (User), cấp quyền sử dụng hệ thống cho doanh
nghiệp.
Quản trị viên doanh nghiệp: chịu trách nhiệm tạo tài khoản cho
nhân viên trong các phòng ban, cấp quyền quản trị dit liệu các
phòng ban.
Nhân viên các phòng ban: chỉnh sửa, cập nhật thông tin phòng ban
Chủ nông trại: cập nhật thông tin về nông trại, cấp quyền truy cập
và chỉnh sửa, cập nhật thông tin cho nhân viên nông trại.
Người dùng: Truy cập ứng dụng truy xuất nguồn gốc hàng hoá
Hệ thống CSDL phân tán: lưu trữ và minh bạch thông tin lô hàngbằng blockchain và mạng ethereum
3 Phạm vi đề tài:
Ứng dụng công nghệ blockchain để xây dựng hệ thống truy xuất nguồn gốc
nông sản của cơ sở quản lý doanh nghiệp, nông trại.
Chỉ tiết phạm vi áp dụng cho đề tài:
Đề tài hướng vào truy xuất hàng hóa nông trại => Hat cà phê, giúp theo dõiquy trình hạt cà phê từ khi gieo trồng đến lúc thành phẩm tung ra thị trường
Trang 21Quy trình truy xuất sẽ bao gồm các bước chính như sau:
e Nông trại: gieo trồng cây giống, chăm sóc, thu hoạch và thong kê
thành pham
e Doanh nghiệp: Kiém tra thông tin từ nông trại -> vận chuyên -> lưu
trữ kho bãi -> Sản lượng thành phẩm sau khi chế biến
Phạm vi chức năng:
Quản tri viên hệ thống:
e Tạo, chỉnh sửa, xóa thông tin tài khoản User
e Tao, xóa nông trai trong hệ thống
Quản trị viên doanh nghiệp:
e Tạo, chỉnh sửa, xóa tài khoản nhân viên trong hệ thống
e Cấp phát quyền (phòng ban) cho nhân viên
e Tạo mới lô hang
e Chọn nông trại cung ứng
e Phân bố nhân viên thực hiện các giai đoạn trong lô hàng
e_ Tìm kiếm lô hàng
e Kiểm tra trạng thái lô hàng
e Truy xuất thông tin của lô hàng khi hoàn thànhChủ nông trại
e Cap nhật thông tin, trạng thái hoạt động của nông trại
e Thêm, xóa, sửa thông tin các hạt giống
e Thêm, xóa, sửa các mảnh (mẫu) đất có trong nông trai
e Tao các dự án trồng trọt của nông trại
e Cap nhật tién trinh, trang thái va thông tin của dự án
Nhân viên phòng ban
e Kiểm tra danh sách các dự án được phân công
e Thực hiện kiểm tra, nhập liệu thông tin cho dự án
Trang 22Cập nhật trạng thái cho dự án
4 Đối tượng nghiên cứu và mục đích sử dụng:
Các mô hình truy xuất nguồn gốc hàng hoá, công nghệ blockchain, khả năng
áp dụng vảo việc truy xuât nguôn gôc, tính minh bạch, bảo mật và mở rộng
của công nghệ blockchain.
Mục đích của tích hợp Ethereum Blockchain và Smart Contract:
Tăng tính minh bạch và đáng tin cậy cho chuỗi cung ứng hàng hóa
của các doanh nghiệp (sản xuất cà phê)
Dữ liệu thông tin được phục hồi (backup) và có tính phi tập trung
Giảm thiếu áp lực cho việc chứng minh nguồn gốc, độ tin cậy của
hàng hóa nông sản.
Giải quyết vấn đề chịu trách nhiệm của các bên liên quan khi có vấn
đê xảy ra với lô hàng
5 Nền tảng công nghệ:
Backend: NodeJs Database: MongoDB Blockchain: Smart Contract, Ethereum
Frontend: ReactJS
Cong cu quan ly va hỗ trợ: Github, Figma, Notion, Draw.io,
MetaMask
6 Yéu cau két qua:
e Yêu cau chức năng: Dam bảo day đủ các tính năng đã được đặt ra
e Yêu cầu giao diện: phủ hop, dé tương tác và sử dung
e Yêu câu nâng cap: dê dàng mở rộng, nâng cap và bao trì hệ thông
Trang 23Kế hoạch thực hiện:
Thời gian thực hiện: 06/02/2023 — 25/06/2023 STT Thời gian Nội dung công việc
1 6/2 — 12/2/2023 (1) Tim hiéu cac céng nghé lién quan
(1 tuan) cho dé tai
2 13/2 — 26/2/2023 (2) Phan tich yéu cau hé théng
(2 tuan) (3) Xây dựng, thiet kê CSDL
(4) Vẽ sơ đồ Usecase, sơ đồ Activity,27/2 5/3/2023 sơ đồ Sequence cho các chức năng
3 ` trong hệ thống
(1 tuân)
(5) Khởi tạo source code Front-end và
Back-end và các bên có liên quan (6) Xây dựng API cho Authentication (7) Xây dung UI và xử ly cho chức
năng Authen
4 6/3 — 19/3/2023 (8) Thiết kế và triển khai các API cho
(2 tuân) các tính năng cua role Quan tri
viên hệ thông(9) Thiết kế và triển khai Front-end
cho Quan tri viên hệ thong
(10) Triển khai các API cho các
20/3 — 9/4/2023 role, chức năng còn lại trong hệ
Trang 24(13) Tích hợp Smart Contract,
tương tác với Front-end
(14) Kiểm tra sửa lỗi cho hệ
24/4 — 30/4/2023 thống
(1 tuần) (15) Thử nghém va Deploy hệ
thống
g 1/5 — 13/5/2023 (16) Hoàn thiện các chức năng
khác, bô sung (nêu có) của đê tải
9 14/5 — 4/6/2023 (17) Hoan thién bao cao va trinh
bay với giảng viên hướng dẫn
Sinh viên thực hiện:
Nguyễn Thành Hiếu: (1), (2), (3), (4), (5), (7), (9), (11), (13), (14), (15), (16) và (17)
Trần Quốc Khánh: (1), (2), (3), (4), (5), (6), (8), (10), (12), (14), (15), (16) và (17)
Ghỉ chú: Công việc sẽ được cả 2 trao đổi và có sự thay đổi hợp lý nhất trong
suốt quá trình thực hiện khóa luận dé cùng hiệu rõ về dé tài
Tp.Hồ Chí Minh, ngày tháng 7 năm 2023
Trang 25CHUONG 1: MỞ DAU
1.1 Lý do chọn đề tài
Trong thời điểm công nghệ phát triển như hiện tại, việc theo dõi nguồn gốc
sản phẩm là một yếu tố quan trọng và cần thiết Việc này giúp dam bao rang các san
phẩm được sản xuất và tiêu thụ là an toàn và đáng tin cậy Thông tin này cũng giúpcác doanh nghiệp và cơ quan quản lý có thé phát hiện các van đề về đảm bảo sản
phẩm, tăng cường niềm tin của khách hàng và đặc biệt là bảo vệ người tiêu dùng
Ngoài ra, việc theo dõi nguồn gốc sản phẩm cũng giúp giảm thiểu các nguy cơ
về an toàn thực phẩm và thảm họa môi trường Các doanh nghiệp, nhà sản xuất và
cơ quan quản lý có thé dam bảo rằng các sản phâm của họ không bị nhiễm độc hoặc
gây ảnh hưởng tới sức khoẻ con người, và có thê truy vết được trong trường hợp
xảy ra tai nạn hoặc sự cố.
Từ những tiện ích đã nêu ở trên, chúng em quyết định chọn đề tài với ứng dụngmang đến giải pháp quản lý cho các doanh nghiệp muốn kiểm tra, quản lý và truy
xuất thông tin của một sản phâm, cụ thê ở đây là hạt Cà phê (Coffee)
Ung dụng là một giải pháp cho các doanh nghiệp có thé quản ly, theo đõi các
giai đoạn của 1 lô nông sản cà phê từ khi được gieo trồng tại nông trại với các số
liệu thô, nguyên liệu ban đầu; đến các giai đoạn kiểm tra số lượng, vận chuyên,
nhập — xuất kho bãi và chế biến thành phẩm Điểm đặc biệt, ứng dụng được tích
hop công nghệ Blockchain với việc sử dụng SmartContract trong việc lưu trữ thông
tin các bước trong 1 lô hang sản phẩm, tăng độ tin cậy cho việc kiểm tra thông tin
Trang 26Cung cấp một ứng dụng đa nền tảng có thể giúp doanh nghiệp quản lý quy
trình sản xuất, truy xuất nguồn gốc, quản lý thông tin từng bước giai đoạn
Hỗ trợ nhân lực trao đồi, kiểm tra từng quy trình được phép truy cập, truy
xuất lịch sử, thông tin thay đổi của quy trình, chỉnh sửa b6 sung thông tin, trạng tháicho các bước trong quy trình đó.
1.2.2 Chủ quan
Nhóm chúng em mong muốn phát triển và học hỏi về các công nghệ có liênquan được sử dụng trong đề tài như Android, Website và đặc biệt là các công nghệmới hiện nay như Blockchain, SmartContract Thông qua đề tài và sự dẫn dắt của
giảng viên hướng dẫn dé tìm hiểu, nghiên cứu nhằm đạt được sự tổng quát hóa,
chuyên sâu hơn về các công nghệ cũng như vân đê được đặt ra trong đê tài.
1.3 Đối tượng nghiên cứu
1.3.1 Các công nghệ nghiên cứu:
- _ Thiết kế hệ thống:
o MVC
o Kết nối và trao đối giữa website, android application đền database
thông qua RESTful API
- D6i với Database: Mongodb Atlas, AWS EC2
- Đối với Website:
Trang 27o Alchemy, Polygon Testnet
o Meta mask
o Goethereum, PoA, Private blockchain
- Khac
o Lưu trữ ảnh với Cloudinary API
o Trao đổi mail qua NodeMailer, SendGrid API
1.3.2 Đối tượng sử dung đề tai hướng đến:
Tắt cả doanh nghiệp trong ngành công nghiệp thực phẩm, chăn nuôi, đặc biệt
là ngành trồng trọt nông sản, hoặc những doanh nghiệp có nhu cau truy xuất nguồngốc hàng hoá, minh bạch thông tin sản pham Đối tượng mà nhóm hướng tới chính
là các doanh nghiệp sản xuât sản phâm từ café và nông trại.
Người tiêu dùng có nhu câu tìm hiéu vê thông tin sản phâm ma mình đã lựa
chọn, có mong muôn truy xuât nguôn gôc hang hoá, tìm hiéu về thông tin, cân tính minh bạch và an toàn của sản phâm.
1.4 Phạm vi nghiên cứu
1.4.1 Pham vi môi trường:
Website trên máy tính cá nhân và Android trên Mobile
1.4.2 Pham vi chức nang:
- _ Đối với ứng dụng (các tính năng cơ bản được hỗ trợ ở cả hai phiên ban
website và mobile android):
o Cung cấp thông tin chung của tat cả những dự án mà nhân viên trong
hệ thống tham gia, thông tin từng bước trong quy trình
o_ Xây dựng các tính năng cho việc quản lý dự án bao gồm tạo mới, chỉnh
sửa, cập nhật thông tin dự án, cấp quyên truy cập cho nhân viên các bộphan, cập nhật trạng thái của dự án và thống kê trạng thái của những dự
án mà người dùng được phép truy cập.
11
Trang 28Cung cấp chức năng cho các nhân sự nội bộ cho doanh nghiệp (doanh
nghiệp tự đăng ký tài khoản cho nhân viên) bao gồm tạo, cập nhật, kích
hoạt, vô hiệu hoá, thong kê danh sách nhân viên va chỉnh sửa thông tin,
phân quyền cho nhân viên
Cung cấp chức năng lưu vết trên Blockchain mỗi khi hệ thống phát
sinh ra những giao dịch (những giao dịch xảy ra khi người dùng thay
đổi thông tin của dự án trên hệ thống)
Cung cấp tính năng quản lý cho đối tác của doanh nghiệp (tính năng
cho phép đối tác của doanh nghiệp tác động lên thông tin dự án)
Cung cấp tính năng truy xuất nguồn gốc hàng hoá cho người dùng cuối(người mua sản phẩm từ phía doanh nghiệp)
12
Trang 29CHƯƠNG 2: KIEN THỨC NEN TANG
2.1 ReactJS
2.1.1 Giới thiệu
Hình 2.1.1: Hình anh ReactJS
ReactJS là một thư viện ma nguồn mở, được phat triển bởi Facebook ReactJS
cung cấp khả năng xây dựng các thành phần UI (User Interface) động và linh hoạt
Thư viện này cho phép khai thác lại các thành phần đã được xây dựng trước đó để
dé dàng tạo ra các ứng dụng phức tap ReactJS được phát triển dựa trên nguyên tắc
"One-way data binding", tức là đữ liệu luôn đi từ cha đến con và không thê thay đổitrực tiếp từ con Điều này giúp tăng tính nhất quán và dé dàng xử lý khi ứng dụng
ngảy cảng phức tạp.
Ngoài ra, ReactJS còn hỗ trợ các công nghệ cũng như thư viện phổ biến như
Redux, React Router, Axios, GraphQL, giúp tao ra những ứng dụng mạnh mẽ và
dễ bảo trì Với những ưu điểm trên, ReactJS được sử dụng phổ biến và rộng rãi
trong các ứng dụng web và mobile, từ các website nhỏ đến các ứng dụng lớn như
Facebook, Instagram, Airbnb, ReactJS là một công nghệ phù hợp và tiện lợi với
các nhà phát triển web và mobile
2.1.2 Những khái niệm cơ bản
Trang 30tính toán xem sự khác biệt giữa object Virtual DOM và cây DOM thật, từ đó tối ưu
hoá cho việc render lại cây DOM thật.
React cũng sử dụng cơ chế One-way data binding (luồng dữ liệu một chiều), trong
đó dữ liệu được truyền từ phần tử cha đến phần tử con thông qua props Cùng vớiluồng dữ liệu đơn giản này giúp quản lý và sửa lỗi một cách tiện lợi hơn
Components:
React là một framework được xây dựng bao quanh các component, thay vi sửdụng các template như các framework khác Với React, chúng ta có thé xây dựng
trang web bang cách sử dụng những thành phan nhỏ gọi là "component." Các
component có thể được sử dụng lại ở nhiều nơi với các thuộc tính và trạng thái khácnhau Từng component cũng có thê chứa các component khác bên trong nó.
Từng component trong React đều có một trạng thái riêng, có thé được thay đồi,
và React sẽ tự động cập nhật component dựa trên các thay đôi này trong trạng thái
Ban chat, moi thứ trong React đều là component, giúp bảo trì mã code dé dang khi
làm việc với các dự án lớn.
2.1.3 Giới thiệu Ant Design
o»
Hình 2.1.3: Hình anh Ant Design
Ant là một bộ sưu tập các thành phần của React, được xây dựng theo chuẩn thiết
kế của Ant UED Team Tương tự như chuẩn Material Design, Ant cung cap đa dạngcác thành phan thông dụng trong ứng dụng web hiện đại như Layout, Button, Icon,DatePicker, và nhiều hơn nữa Ngoài ra, Ant còn có những thành phần độc đáo nhưLocaleProvider, cho phép người dùng thay đôi ngôn ngữ trên toàn ứng dụng
Có thé coi Ant Design cho React là tập hợp của hau hết các thư viện về React
14
Trang 31Node.js có một sô đặc diém quan trọng:
Mô hình không đồng bộ: Node.js được xây dựng trên cơ sở mô hình sựkiện (Event-Driven) và bất đồng bộ (asynchronous), cho phép một lúc xử
lý nhiều yêu cầu mà không chờ đợi các hoạt động đồng bộ hoàn thành.Điều này giúp tăng hiệu suất của ứng dụng trong khi duy trì khả năng phảnhồi cao
Mã chung giữa phía máy khách và phía máy chủ: NodeJS cho phép viết
mã JavaScript trên cả phía máy chủ (server-side) và phía máy khách
(client-side), giúp đơn giản việc chia sẻ code và logic giữa các thành phần
của ứng dụng web.
Hệ sinh thái mở rộng: Node.Js có một cộng đồng phát triển mạnh mẽ và hệsinh thái mở rộng đa dạng, với rất nhiều module và thư viện thông qua npm(Node Package Manager) Điều này giúp phát triển ứng dụng nhanh chóng
và tiết kiệm thời gian bang cách sử dụng các thư viện tái sử dụng đã được
cung cấp sẵn
Xử lý đa luồng: Mặc dù JavaScript là ngôn ngữ đơn luồng, Node.js sử dung
mô hình xử lý đa luồng bằng cách sử dụng các tiến trình nhẹ (lightweightprocesses) gọi là "tiêu trình" (threads) dé xử lý đồng thời những yêu cau
15
Trang 32Điêu này cho phép Node.Js xử lý các tác vụ cùng một lúc và tôi ưu hóa sự
sử dụng tài nguyên hệ thống
2.2.2 Lý do chọn NodeJS
Non-blocking và Asynchronous: NodeJS sử dụng co chế không chặn
(non-blocking) và bất đồng bộ (asynchronous), cho phép xử lý đồng thời hàng nghìn yêu
cầu mà không bị chậm lại Điều này làm cho NodeJS rất hiệu quả trong việc xử lý
dự án có yêu cầu cao về thời gian thực thi
Community va Ecosystem: Node.js có cộng đồng lớn và phong phú, với hàng ngànthư viện và module có sẵn Các thư viện này giúp lập trình viên nhanh chóng triển
khai các tính năng mở rộng và giảm thiểu thời gian phát triển.
Scalability: NodeJS cho phép mở rộng dễ dàng nhờ tính chat non-blocking và bat
đồng bộ Có thể dễ dàng mở rộng ứng dụng khi lượng truy cập tăng lên mà không
cân nhiêu thay đôi câu trúc.
2.3 Express JS — Framework của Node JS
2.3.1 Giới thiệu Express JS
Express ils
Hình 2.3.1: Hình anh Express JS
Express.js là một framework web phía may chu (server-side) dựa trên Node.Js.
Framework cung cấp cách tiếp cận dé dang và mạnh mẽ dé xây dựng ứng dụng web
và API Express.js được coi là một trong những framework web phổ biến nhất và
được sử dụng rộng rãi trong cộng đồng phát trién Node.js
Các lợi ích và đặc điêm chính của Express.js như sau:
16
Trang 33Siêu nhẹ và linh hoạt: Express.js là một framework nhẹ, không có quá nhiềuquy định Nó cung cấp một số tính năng cơ bản và hỗ trợ các middleware để
xử lý các yêu cầu và phản hồi
Đơn giản hóa định tuyến: Express.js giúp xác định các tuyến đường (routes)
cho ứng dụng web Với các phương thức xử lý các yêu cầu HTTP như
POST, DELETE , GET, PUT, Điều này giúp xây dựng các API và các
trang web đa trang dễ dàng hơn.
Middleware mạnh mẽ: ExpressJS sử dụng middleware xử lý các yêu cầu
trước khi đến được các xử lý cuối cùng Express.js đi kèm với một số
middleware được tích hợp san và cộng đồng phát triển cũng cung cấp nhiều
middleware mạnh mẽ và hữu ích.
Cộng động đông dao: ExpressJS có một cộng đồng phát triển rộng lớn và
tích cực Cộng đồng cung cấp nhiều module, gói mở rộng và hướng dẫn chitiết giúp xây dựng các website phức tạp Có thé dễ dàng tìm thấy rất nhiều tàiliệu, thư viện, tham khảo: ví dụ và hỗ trợ từ cộng đồng này
Tích hợp dễ dàng: Express.js dễ dàng tích hợp với các công nghệ khác và thư
viện bên thứ ba, với các thư viện như MongoDB, MySQL, Passport (dé xácthực và quản lý đăng nhập), Socket.io (đề thực hiện giao tiếp thời gian thực),
và nhiêu hơn nữa.
ExpressJS là một trong các công cụ mạnh mẽ dé xây dựng và phát triển ứng
dụng web sử dụng Node.js Đi cùng với tính linh hoạt, đơn giản và hiệu suất cao,
ExpressJS là phương pháp phổ biến trong việc xây dựng, phát triển các ứng dụng
web và API phía server.
2.3.2 Áp dụng vào đề tài
NodeJS, ExpressJS được áp dụng dé xây dựng toàn bộ Back-end cho hệ thống
giúp tăng tốc độ load dữ liệu NodeJS, ExpressJS cung cấp những thư viện cần thiếttrong công đoạn triển khai và phát triển hệ thống NodeJS, ExpressJS va ReactJS là
sự kết hợp vô cùng tốt để phát triển hệ thống một cách tốt nhất
17
Trang 342.4 Smart Contract và Ethereum
2.4.1 Tổng quan về Ethereum
>
VW ethereum
Hình 2.4.1: Hình anh Ethereum
Ethereum là một nền tảng điện toán phân tán, công cộng và mã nguồn mở dựatrên công nghệ Blockchain Điểm nổi bật của nền tảng này là tính năng hợp đồngthông minh (smart contract), giúp thuận tiện cho các thỏa thuận hợp đồng trực tuyến
Đề thực thi các kịch ban này, Ethereum sử dụng một máy ảo hoàn toàn Turing đượcgọi là Ethereum Virtual Machine (EVM), mà có thể chạy các kịch bản trên một mạnglưới máy tính Ethereum.
Ngoài ra, Ethereum cung cấp một đồng tiền mã hóa có tên là "Ether", được sửdụng để chuyển đôi giữa các tài khoản và trả công cho các thợ đào thực hiện tínhtoán Đề giới hạn giao dịch rác và phân phối nguồn lực trên mạng, Ethereum sử dụngmột cơ chế giá giao dịch nội bộ gọi là "Gas".Các điểm chính của Ethereum:
e Hợp đồng thông minh (Smart Contract): Ethereum cho phép tạo ra và thực thi
các Smart Contract, và tự động thực hiện theo các quy chuẩn và điều kiện đãđược định trước Các hợp đồng thông minh giúp khả năng thực thi và đảm bảotính vẹn toàn không thé chối cãi trong các giao dịch
e Ngôn ngữ lập trình Solidity: Ethereum sử dụng ngôn ngữ Solidity dé viết các
hợp đồng thông minh Solidity là một ngôn ngữ lập trình chuyên dụng choEthereum, cho phép các nhà phát triển xây dựng các ứng dụng và hợp đồngthông minh phức tạp trên nền tảng Ethereum
e Máy ảo Ethereum (Ethereum Virtual Machine - EVM): EVM là một môi
trường thực thi các hợp đồng thông minh trên Ethereum Nó cho phép các hợp
18
Trang 35đồng thông minh chạy độc lập và đáng tin cậy trên mọi nút trong mạng lưới
Ethereum.
e ERC-20 và chuẩn token thông minh: Ethereum đã tạo ra chuan ERC-20, chuẩn
token thông minh phô biến nhất trong việc phát hành và quản lý các token trênblockchain Ethereum Chuẩn này đã mở ra cánh cửa cho việc phát triển nền
tảng ICO (Inttial Coin Offering) và đóng vai trò quan trọng trong việc tạo ra các dự án token.
e Mạng lưới phân tán: Tương tự như Bitcoin, Ethereum cũng sử dụng mang lưới
phân tán để lưu trữ và quản lý thông tin Các giao dịch và hợp đồng thôngminh được xác nhận và ghi lại trên nhiều nút trong mạng lưới Ethereum
e Đang dang cộng đồng: Ethereum hiện tại có 1 cộng đồng phát triển năng động,
đông đảo và đã đóng góp vào việc phát trién các ứng dung và dự án đa dangtrên nền tảng Ethereum
Ethereum đã mở ra một thế giới mới của các ứng dụng phi tập trung và hợp đồngthông minh Nó cung cấp một cơ sở hạ tầng mạnh mẽ cho việc xây dựng các dịch vụtài chính, chuỗi cung ứng, trò chơi, ứng dụng phi tập trung và nhiều lĩnh vực khác
trên blockchain.
2.4.2 Tổng quan về Smart Contract
Smart Contract là một khái niệm quan trọng trong lĩnh vực blockchain và công
nghệ tiền điện tử Đó là các chương trình tự thực thi được viết bằng ngôn ngữ lập
trình (như Solidity trong Ethereum) và lưu trữ trên blockchain Smart Contract là
công cụ quản lý, thực hiện, thực thi các giao dịch một cách tự động mà không cần
sự can thiệp của bên thứ ba.
19
Trang 36Hình 2.4.2: Hình ảnh về định nghĩa Smart ContractCác Smart Contract hoạt động dựa trên các điều kiện đã được định sẵn và sẽ tự
động thực hiện hành động khi điều kiện đó được đáp ứng Ví dụ, một Smart Contract
có thê được sử dụng đề thực hiện một giao dịch tài chính mà không cần sự can thiệp
của ngân hàng trung gian Các giao dịch trong Smart Contract thường được mã hóa
và bảo mật bởi cơ chê mã hóa blockchain.
Smart Contract đóng vai trò quan trọng trong việc tạo ra các ứng dụng phi tập
trung (Decentralized Applications - DApps) trên blockchain Chúng cung cấp tính
minh bạch, đáng tin cậy và an toàn, giúp loại bỏ sự tin cậy vào bên thứ ba và giảm
thiêu rủi ro gian lận và gian lận
2.4.3 Lý do lựa chọn ứng dụng Blockchain vào đề tài
Blockchain có vai trò quan trọng và ý nghĩa lớn trong việc áp dụng vào van dé
truy xuất thông tin hàng hóa Sau đây là các điểm mạnh của Blockchain trong lĩnh
vực này:
¢ Tính minh bạch và đáng tin cậy: Blockchain cung cấp một môi trường minh
bạch và đáng tin cậy cho việc truy vết thông tin Thông tin về nguồn gốc, quá
trình sản xuất, vận chuyền và lưu trữ của hàng hóa có thé được ghi lại và lưutrữ trong các khối trong Blockchain Mọi người có thể kiểm tra và xác minh
thông tin này một cách dễ dàng, giúp tăng cường sự tin tưởng và minh bạch
trong chuỗi kiểm tra lô hang (logistic)
20
Trang 37e Tinh không thay đổi và toàn ven: Dữ liệu trên Blockchain không thé bị thay
đổi hoặc xóa mà không làm thay đổi các khối tiếp theo Điều này đảm bảo tínhtoàn vẹn của thông tin hàng hóa trong suốt quá trình truy xuất Bat kỳ thay đổihay chỉnh sửa nào cũng sẽ được ghi lại và có thé được theo dõi
e Truy xuất nhanh và chính xác: Blockchain cho phép truy xuất nhanh và
chính xác thông tin hàng hóa Nhờ vào việc liên kết các thông tin lưu trữ trongcác khối, người dùng có thé truy xuất các về quy trình, nguồn gốc và lịch trìnhvận chuyển của hàng hóa một cách hoàn toàn dễ dàng, chính xác và nhanh
chóng.
e Bảo mật và phân quyền: Blockchain sử dung mã hóa mật mã và mạng lưới
phân tán để đảm bảo tính bảo mật và phân quyền cho thông tin hàng hóa Dữliệu chỉ có thể được truy cập bằng cách sử dụng các khóa mã hóa và quyềntruy cập phù hợp Điều này giúp bảo vệ thông tin quan trọng và ngăn chặn sự
xâm nhập trái phép.
e Quản lý chuỗi cung ứng: Blockchain cung cấp một công cụ hiệu qua dé quản
lý chuỗi cung ứng của hàng hóa Thông tin liên quan đến nguồn gốc, vậnchuyên, lưu trữ và các bước xử lý khác có thê được ghi lại và theo dõi trongBlockchain Điều này giúp giảm thiểu rủi ro gian lận, giả mạo và tăng độ tin
cậy và tính minh bạch trong quản lý chuỗi cung ứng
Tóm lại, áp dụng Blockchain vào vấn đề truy xuất thông tin hàng hóa mang lạinhiều lợi ích về minh bạch, toàn vẹn, bảo mật và kiểm soát chuỗi cung ứng.Blockchain có khả năng cải thiện sự tin tưởng và hiệu quả của việc truy xuất thông
tin hàng hóa trong các ngành công nghiệp khác nhau.
21
Trang 382.5 Firebase
2.5.1 Giới thiệu về Firebase
» Firebase
Hinh 2.5.1: Hinh anh logo Firebase
Firebase là một nên tang phát triển ứng dụng di động va web của Google, cungcấp một loạt các dich vụ đám mây dé xây dựng, triển khai và quảng cáo ứng dụng
Firebase giúp lập trình viên tập trung vào việc xây dựng chức năng của ứng dụng ma
không cần quan tâm đến hạ tầng CSDL hoặc quản lý máy chủ.
Firebase cung cấp các dịch vụ cho việc các ứng dụng Real-time, Authenticate,
Cloud Messaging
2.5.2 Áp dụng Firebase Cloud Messaging (FCM)
Firebase Cloud Messaging (FCM) là dich vu của Firebase cho phép gui thông
báo đám may (push notification) từ máy chủ đến các thiết bi di động, cung cấp khanăng kết nối và tương tác với người ding một cách hiệu quả FCM hỗ trợ các thiết bịchạy trên nền tảng Android, iOS và cả web
22
Trang 392.6 Go Ethereum
2.6.1 Giới thiệu về Go Ethereum (Geth)
Hình 2.6.1: Hình anh logo Go-Ethereum
Go Ethereum (Geth) là một phần mềm Ethereum client được phô biến sử
dụng trên Ethereum Blockchain bên cạnh Parity Geth với mục đích quản lý trạng
thái và xử lý những giao dịch (Transaction) và hỗ trợ máy ảo Ethereum (EVM —
Ethereum Virtual Machine) Tuy nhiên Geth không thực thi các tính năng như xây
dựng, truyền thông tin giữa các khối (Block) hay xử lý những logic đồng thuận
(consensus logic), ma thay vào đó client thực thi (consensus client) sẽ thực thi
những chức tính này.
Geth có nhiều tính năng quan trọng Đầu tiên, nó đóng vai trò là một nútmạng (Network Node), kết nối với các nút khác trên mạng Ethereum Nút này gửi
và nhận các giao dịch (Transaction), khối (Block) và thông tin khác giữa các thành
viên của mạng Bên cạnh đó, Geth tạo ra một giao diện console cung cấp cho ngườidùng một cách dé tương tác với blockchain Qua giao diện này, người dùng có thégửi các giao dịch (Transaction), triển khai Smart Contract và truy vấn dữ liệu từ
blockchain Ethereum.
Ngoài ra, cùng với Solidity kết hợp cùng Geth dé phát trién các ứng dụng phân cấp
trên blockchain Ethereum.
23
Trang 402.6.2 Áp dụng vào đề tai
Go Ethereum (Geth) được sử dụng xây dựng PoA (Proof-of-authority) PrivateBlockchain Qua đó đảm bảo tính minh bạch vì cơ chế của PoA chỉ cho phép những
người được cấp quyền mới có thé truy cập vào blockchain private network, nhằm
đảm bảo không có bắt kì gian luận nào có thể xảy ra trong quá trình thực thi
xây dựng, kiểm thử và trién khai các ứng dụng blockchain Công nghệ mang đến
một bộ hỗ trợ cho việc phát triển thông qua việc hỗ trợ việc viết các smart contract,kiểm thử các contract, quan ly tài khoản và triển khai các ứng dụng trên mạng
Ethereum Truffle cũng cung cấp các môi trường mô phỏng (development
environment) va tao ra các công cụ giúp tăng độ tin cậy và an toan cho các ứng
dụng blockchain Nó được sử dụng rộng rãi trong cộng đồng phát triển dApps
(Decentralized Applications).
2.7.2 Áp dụng vào dé tai
Truffle được sử dung dé xây dựng, kiểm thử và triển khai smart contract lên
Ethereum Blockchain Network (Private Network và Public Network)
24