Báo cáo đồ án: Ứng dụng truy xuất nguồn gốc dựa trên Ethereum Smart Contract

Khám phá đồ án ứng dụng truy xuất nguồn gốc bằng Ethereum Smart Contract. Giải pháp đảm bảo minh bạch, an toàn thông tin sản phẩm trên nền tảng Blockchain.

2023

117
0
0

Phí lưu trữ

35 Point

Tóm tắt

I. Giới thiệu về Đồ án Truy xuất Nguồn gốc Ethereum Smart Contract

Đồ án truy xuất nguồn gốc dựa trên Ethereum Smart Contract là một ứng dụng độc đáo kết hợp công nghệ blockchain và hệ thống quản lý chuỗi cung ứng. Đây là dự án được thực hiện tại Trường Đại học Công nghệ Thông tin - Đại học Quốc gia Thành phố Hồ Chí Minh, nhằm giải quyết vấn đề truy xuất nguồn gốc sản phẩm trong các lĩnh vực nông nghiệp, sản xuất và vận chuyển. Ứng dụng này sử dụng Smart Contract để đảm bảo tính minh bạch, an toàn và không thể giả mạo của thông tin trong toàn bộ quá trình từ sản xuất đến tiêu dùng. Bằng cách tích hợp công nghệ Ethereum, hệ thống có khả năng ghi lại mọi giao dịch và hoạt động trên một sổ cái phân tán, giúp người tiêu dùng dễ dàng xác minh độ tin cậy của sản phẩm.

1.1. Khái niệm Smart Contract trong Ethereum

Smart Contract là những chương trình tự động thực thi trên blockchain Ethereum mà không cần sự can thiệp của bên thứ ba. Chúng được viết bằng ngôn ngữ Solidity và có khả năng lưu trữ dữ liệu một cách vĩnh viễn. Trong đồ án truy xuất nguồn gốc, Smart Contract đóng vai trò lưu giữ thông tin về từng giai đoạn của sản phẩm, đảm bảo tính bất biếnminh bạch của dữ liệu.

1.2. Mục đích và ý nghĩa của dự án

Mục tiêu chính của ứng dụng là cung cấp một giải pháp truy xuất nguồn gốc đáng tin cậy cho các sản phẩm nông sản. Bằng cách sử dụng Ethereum, hệ thống đảm bảo mọi thông tin được lưu trữ an toàn, không thể chỉnh sửa, giúp người tiêu dùng xác định được chính xác nguồn gốc sản phẩm và các điều kiện sản xuất.

II. Cấu trúc Hệ thống và Công nghệ Sử dụng

Ứng dụng truy xuất nguồn gốc dựa trên Ethereum Smart Contract được xây dựng với kiến trúc hiện đại, kết hợp nhiều công nghệ tiên tiến. Phần frontend sử dụng React kết hợp với Ant Design để xây dựng giao diện người dùng thân thiện và dễ sử dụng. Phần backend được phát triển bằng Node.js, đảm bảo xử lý yêu cầu nhanh chóng và hiệu quả. Lõi của hệ thống là Ethereum blockchain, nơi lưu trữ tất cả các Smart Contract quản lý thông tin truy xuất nguồn gốc. Hệ thống được thiết kế theo mô hình domain-driven, với các thực thể như nông trại, hạt giống, mảnh đất, dự án sản xuất, thu hoạch, vận chuyển, và xuất nhập kho. Mỗi thực thể đều được mô hình hóa chi tiết để đảm bảo quy trình quản lý chuỗi cung ứng toàn diện.

2.1. Công nghệ Frontend và Backend

Ứng dụng sử dụng React cho phía client, cung cấp trải nghiệm người dùng động và phản ứng nhanh. Ant Design được tích hợp để cung cấp các thành phần UI chuẩn mực. Phía server sử dụng Node.js để xử lý logic ứng dụng, quản lý cơ sở dữ liệu, và kết nối với Ethereum blockchain thông qua các thư viện web3.js.

2.2. Vai trò của Ethereum Smart Contract

Smart Contract trên Ethereum đóng vai trò trung tâm trong hệ thống, lưu trữ và quản lý toàn bộ dữ liệu truy xuất nguồn gốc. Mỗi giai đoạn của sản phẩm - từ hạt giống, canh tác, thu hoạch, đến vận chuyểnsản xuất - đều được ghi nhận trên blockchain, tạo ra một sổ cái bất biến mà không ai có thể chỉnh sửa hay giả mạo.

III. Các Chức năng Chính của Ứng dụng

Ứng dụng truy xuất nguồn gốc Ethereum Smart Contract cung cấp một loạt các chức năng toàn diện để quản lý toàn bộ quy trình chuỗi cung ứng nông sản. Hệ thống cho phép quản lý tài khoản với các vai trò khác nhau như Tech Admin, System Admin, người nông dân, doanh nghiệp, và nhà vận chuyển. Mỗi người dùng có những quyền hạn riêng biệt phù hợp với vai trò của họ. Ứng dụng hỗ trợ quản lý hạt giống, theo dõi các mảnh đất, quản lý dự án nông trại từ giai đoạn trồng trọt đến thu hoạch. Ngoài ra, hệ thống cung cấp các chức năng quản lý dự án vận chuyểnquản lý xuất nhập kho, giúp theo dõi sản phẩm qua mỗi bước của chuỗi cung ứng. Tất cả các hoạt động đều được ghi lại trên Ethereum blockchain, đảm bảo tính minh bạchbất khả xâm phạm của dữ liệu.

3.1. Quản lý Tài khoản và Phân quyền

Hệ thống sử dụng vai trò người dùng để phân quyền truy cập các chức năng khác nhau. Tech Admin quản lý cấu hình hệ thống, System Admin giám sát toàn bộ hoạt động, nông dân quản lý các hoạt động nông trại, doanh nghiệp quản lý sản xuất, và nhà vận chuyển quản lý vận chuyển. Mỗi vai trò có enum trạng thái phòng ban/công việc riêng, đảm bảo quản lý tài khoản hiệu quả.

3.2. Theo dõi Toàn bộ Vòng đời Sản phẩm

Ứng dụng cho phép theo dõi sản phẩm qua mỗi giai đoạn: từ chọn hạt giống, chuẩn bị mảnh đất (với các enum trạng thái đất), canh tác (với enum trạng thái nông trại), thu hoạch, vận chuyển, cho đến sản xuấtxuất nhập kho. Tất cả dữ liệu được lưu trữ trên Ethereum Smart Contract, tạo ra một chuỗi truy xuất nguồn gốc hoàn chỉnh và bất biến.

IV. Lợi ích và Ứng dụng Thực tiễn

Đồ án truy xuất nguồn gốc dựa trên Ethereum Smart Contract mang lại nhiều lợi ích quan trọng cho các bên liên quan. Đối với người tiêu dùng, ứng dụng cung cấp khả năng kiểm chứng nguồn gốc sản phẩm một cách độc lập, giúp họ chọn lựa sản phẩm uy tín và an toàn. Đối với các nông dân và doanh nghiệp, hệ thống giúp nâng cao giá trị sản phẩm bằng cách chứng minh chất lượng và quy trình sản xuất hợp quy. Công nghệ blockchain đảm bảo không ai có thể giả mạo hoặc chỉnh sửa thông tin, tạo ra môi trường kinh doanh minh bạchcông bằng. Ứng dụng cũng hỗ trợ các cơ quan quản lý nhà nước trong công tác kiểm soát chất lượng sản phẩmphòng chống gian lận. Bằng cách sử dụng Smart Contract, hệ thống tự động hóa nhiều quy trình, giảm chi phí quản lý và tăng hiệu quả hoạt động. Đây là một ứng dụng blockchain thực tế, giải quyết các bài toán chuỗi cung ứng phức tạp trong ngành nông nghiệp.

4.1. Lợi ích cho Người tiêu dùng

Người tiêu dùng có thể truy xuất thông tin chi tiết về sản phẩm, bao gồm nơi sản xuất, quá trình canh tác, người xử lýngày ghi nhận. Bằng cách truy cập Ethereum blockchain, họ có thể xác minh độ tin cậy tuyệt đối của thông tin, không thể bị giả mạo. Điều này xây dựng lòng tin giữa người tiêu dùng và người sản xuất, từ đó tăng giá trị sản phẩm.

4.2. Tự động hóa và Tiết kiệm Chi phí

Smart Contract tự động thực thi các quy trình, giảm thiểu can thiệp thủ công và chi phí hành chính. Hệ thống quản lý chuỗi cung ứng được tối ưu hóa, từ đó làm giảm thời gian xử lý và lỗi con người. Các doanh nghiệp có thể tập trung vào sản xuất thay vì lo lắng về việc bảo mật và quản lý dữ liệu truy xuất nguồn gốc.

28/12/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 1.1 Giới thiệu đề tài Ngày nay, với sự phát triển một cách vượt bậc của công nghệ, tất cả mọi thứ, lĩnh vực hoạt động của cá nhân hay doanh nghiệp trở nên linh hoạt, tiện ích hơn vì công nghệ đã giúp cho họ việc quản lý. Chỉ với 1 thiết bị thông minh như PC (computer), Laptop hoặc Smartphone với kết nối Internet có thể giúp các cá nhân, doanh nghiệp hoặc tổ chức quản lý được thông tin sản xuất của họ. Từ những tiện ích đã nêu ở trên, nhóm em chọn một đề tài với ứng dụng mang đến giải pháp quản lý cho các tổ chứ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à Cà phê (Coffee). Ứng dụng là một giải pháp cho các doanh nghiệp, tổ chức có thể kiểm tra, quản lý các khâu của 1 lô sản phẩm 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 hợp 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ô hàng sản phẩm, tăng độ tin cậy cho việc kiểm tra thông tin sản phẩm.2 Mục tiêu đề tài Xây dựng một ứng dụng đa nền tảng dành cho các đối tượng, tác nhân sử dụng trong hệ thống bao gồm: Admin kỹ thuật – người chịu trách nhiệm cho việc phân quyền cho các bên đối tác như các bên sử dụng (chủ doanh nghiệp) và nông trại. Ứng dụng sẽ bao gồm Web quản lý dành cho Admin kỹ thuật, Web quản lý cho Admin của doanh nghiệp cho việc kiểm tra, quản lý các lô hàng của doanh nghiệp; Web quản lý dành cho nông trại và Web cho nhân viên của doanh nghiệp đó trong việc kiểm tra, báo cáo tính hình các giai đoạn. Đồng thời, với mục tiêu phát triển đa nền tảng và tập trung vào thế mạnh của nhóm là Lập trình phát triển di động; ứng dụng sẽ được phát triển trên nền tảng Mobile – di động cho phép người dùng có thể tự do lựa chọn, mang đến sự tiện lợi hơn cho việc kiểm tra hàng hóa và cập nhật thông tin tiến độ cho người dùng và doanh nghiệp. Ứng dụng sẽ mang đến các chức năng cơ bản về CRUD thông tin sản phẩm (cà phê), từ các bước phân quyền cho các người dùng, tạo mới nông trại, lô hàng, phân bổ nhân viên cho các bước trong 1 thông tin lô hàng, tìm kiếm, chỉnh sửa, và xóa các lô hàng.

Lập báo cáo, thống kê các số liệu các lô hàng. Song song, việc tìm hiểu đề tài này giúp nhóm có thêm các kiến thức về chuỗi hàng hóa trong 1 tiến trình của 1 sản phẩm, đồng thời nâng cao trình độ, kỹ năng lập trình về công nghệ 15 mới là xây dựng và phát triển một ứng dụng Web (ReactJs) cùng với phát triển ứng dụng di động (Flutter). Mục đích chung hướng tới là cho việc phát triển kỹ năng bản thân và hoàn tất môn học.3 Phương pháp nghiên cứu • Nghiên cứu về các tài liệu nghiệp vụ liên quan trực tiếp đến đề tài được giảng viên giao. • Tham khảo các hệ thống, giao diện liên quan đến lĩnh vực của đề tài • Tìm hiểu, nghiên cứu, tham khảo các video tài liệu, khóa học hướng dẫn liên quan đến các công nghệ sử dụng vào quá trình phát triển ứng dụng.4 Phạm vi Đối tượng sử dụng • Quản trị viên hệ thống • Quản trị viên doanh nghiệp • Nhân viên của hệ thống • Chủ quản lý nông trại 16 CHƯƠNG 2: CÔNG NGHỆ TRONG ỨNG DỤNG 2.1 Giới thiệu về React 2.1 Tổng quan về React Hình 2.1 Hình ảnh logo React ReactJS là một thư viện JavaScript mã nguồn mở được phát triển bởi Facebook, ra mắt vào năm 2013 với mục đích để xây dựng giao diện người dùng.

Nó được sử dụng rộng rãi để xây dựng các trang web SPA (Single Page Application) và các ứng dụng trên nền tảng di động. Nó rất dễ sử dụng và cho phép người dùng có thể tạo các component UI có thể tái sử dụng. Một trong những điểm hấp dẫn của React là thư viện này không chỉ hoạt động trên phía client, mà còn được render trên server và có thể kết nối với nhau. React so sánh sự thay đổi giữa các giá trị của lần render này với lần render trước và cập nhật ít thay đổi nhất trên DOM.

Trước khi đến cài đặt và cấu hình, chúng ta sẽ đi đến một số khái niệm cơ bản: Virtual DOM: Công nghệ DOM ảo giúp tăng hiệu năng cho ứng dụng. Việc chỉ node gốc mới có trạng thái và khi nó thay đổi sẽ tái cấu trúc lại toàn bộ, đồng nghĩa với việc DOM tree cũng sẽ phải thay đổi một phần, điều này sẽ ảnh hưởng đến tốc độ xử lý. ReactJS sử dụng Virtual DOM (DOM ảo) để cải thiện vấn đề này.Virtual DOM là một object Javascript, mỗi object chứa đầy đủ thông tin cần thiết để tạo ra một DOM, khi dữ liệu thay đổi nó sẽ tính toán sự thay đổi giữa object và tree thật, điều này sẽ giúp tối ưu hoá việc re-render DOM tree thật. React sử dụng cơ chế one-way data binding – luồng dữ liệu 1 chiều.

Dữ liệu được truyền từ parent đến child thông qua props. Luồng dữ liệu đơn giản giúp chúng ta dễ dàng kiểm soát cũng như sửa lỗi. Với các đặc điểm ở trên, React dùng để xây dựng các ứng dụng lớn mà dữ liệu của chúng thay đổi liên tục theo thời gian. Dữ liệu thay đổi thì hầu hết kèm theo sự thay đổi về giao diện.

Ví dụ như Facebook: trên Newsfeed của bạn cùng lúc sẽ có các status khác nhau và mỗi status lại có số like, share, comment liên tục thay đổi. Khi đó React sẽ rất hữu ích để sử dụng. 17 JSX: JSX là một dạng ngôn ngữ cho phép viết các mã HTML trong Javascript. Đặc điểm: Faster: Nhanh hơn.

JSX thực hiện tối ưu hóa trong khi biên dịch sang mã Javacsript. Các mã này cho thời gian thực hiện nhanh hơn nhiều so với một mã tương đương viết trực tiếp bằng Javascript. Safer: an toàn hơn. Ngược với Javascript, JSX là kiểu statically-typed, nghĩa là nó được biên dịch trước khi chạy, giống như Java, C++.

Vì thế các lỗi sẽ được phát hiện ngay trong quá trình biên dịch. Ngoài ra, nó cũng cung cấp tính năng gỡ lỗi khi biên dịch rất tốt. Easier: Dễ dàng hơn. JSX kế thừa dựa trên Javascript, vì vậy rất dễ dàng để cho các lập trình viên Javascripts có thể sử dụng Components: React được xây dựng xung quanh các component, chứ không dùng template như các framework khác.

Trong React, chúng ta xây dựng trang web sử dụng những thành phần (component) nhỏ. Chúng ta có thể tái sử dụng một component ở nhiều nơi, với các trạng thái hoặc các thuộc tính khác nhau, trong một component lại có thể chứa thành phần khác. Mỗi component trong React có một trạng thái riêng, có thể thay đổi, và React sẽ thực hiện cập nhật component dựa trên những thay đổi của trạng thái. Mọi thứ React đều là component.

Chúng giúp bảo trì mã code khi làm việc với các dự án lớn. Một react component đơn giản chỉ cần một method render. Có rất nhiều methods khả dụng khác, nhưng render là method chủ đạo. Props và State: Props: giúp các component tương tác với nhau, component nhận input gọi là props, và trả thuộc tính mô tả những gì component con sẽ render.

Prop là bất biến. State: thể hiện trạng thái của ứng dụng, khi state thay đồi thì component đồng thời render lại để cập nhật UI.2 Giới thiệu về Ant Design Hình 2.2 Hình ảnh logo Ant Design 18 Ant là tập hợp các components 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 cấp hầu hết các component thông dụng trong ứng dụng web hiện đại, như Layout, Button, Icon, DatePicket, v.Bên cạnh đó Ant cũng có những component riêng thú vị, như LocaleProvider cho phép bạn thay đổi ngôn ngữ trên toàn ứng dụng. Ant Design hiện đang có hơn 76k star trên GitHub và hiện là thư viện UI lớn thứ 2 trên thế giới.

Có thể coi Ant Design cho React là tập hợp của hầu hết các thư viện về React. Dưới đây là danh sách các component mà nó cung cấp: • General: Button, Icon • Layout: Grid, Layout. • Navigation: Affix, Breadcrumb, Dropdown, Menu, Pagination, Steps. • Data Entry: AutoComplete, Checkbox, Cascader, DatePicker, Form, InputNumber, Input, Mention, Rate, Radio, Switch, Slider, Select, TreeSelect, Transfer, TimePicker, Upload.

• Data Display: Avatar, Badge, Collapse, Carousel, Card, Calendar, List, Popover, Tree, Tooltip, Timeline, Tag, Tabs, Table. • Feedback: Alert, Drawer, Modal, Message, Notification, Progress, Popconfirm, Spin, Skeleton. • Other: Anchor, BackTop, Divider, LocaleProvider. Ngoài ra, trong hệ sinh thái của Ant Design, còn có các thư viện như Ant Design Pro, Ant Design Chart, Ant Design Mobile,.2 Giới thiệu về NodeJS 2.1 Tổng quan về NodeJS Hình 2.

Hình ảnh logo NodeJS • NodeJS là một mã nguồn mở, đa nền tảng, chạy trên môi trường JavaSript, được xây dựng trên V8 JavaScript engine của Chrome - V8 thực thi mã JavaScript bên ngoài trình duyệt. Nó được tạo ra vào năm 2009 đi kèm với một lợi thế chính - NodeJS cho phép thực hiện lập trình bất đồng bộ. 19 • Ở chế độ đồng bộ thực thi từng dòng và tiến hành thực thi dòng tiếp theo khi dòng hiện tại đã thực thi xong. • Khi bất đồng bộ thực thi tất cả dòng code cùng một lúc.

• NodeJS là một nền tảng được xây dựng trên JavaScript runtime của Chrome với mục đích xây dựng các ứng dụng mạng nhanh chóng và có thể mở rộng được một cách dễ dàng hơn. NodeJS sử dụng mô hình I/O lập trình theo sự kiện, non-blocking, do đó nodeJS khá gọn nhẹ và hiệu quả - công cụ hoàn hảo cho các ứng dụng chuyên sâu về dữ liệu theo thời gian thực chạy trên các thiết bị phân tán. • NodeJS là môi trường runtime mã nguồn mở đa nền tảng, được sử dụng để phát triển các ứng dụng mạng và ứng dụng server-side. Các ứng dụng NodeJS được viết bằng JavaScript và có thể chạy trong NodeJS runtime trên OS X, Microsoft Windows và Linux.

• NodeJS cũng cung cấp một thư viện bao gồm rất nhiều các module JavaScript khác nhau nhằm đơn giản hóa việc phát triển các ứng dụng web, qua đó giảm thiểu tình trạng sử dụng quá nhiều Node.2 Các tính năng của NodeJS • Lập trình hướng sự kiện và không đồng bộ: Toàn bộ API trong thư viện NodeJS đều không đồng bộ, hay không bị chặn. Về cơ bản điều này có nghĩa là một server sử dụng NodeJS sẽ không bao giờ chờ một API trả về dữ liệu.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ