Ứng dụng công nghệ blockchain vào quản lý bằng của Trường Đại học Lạc Hồng

57 97 0
Ứng dụng công nghệ blockchain vào quản lý bằng của Trường Đại học Lạc Hồng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC LẠC HỒNG KHOA CÔNG NGHỆ THÔNG TIN  -             BÁO CÁO NGHIÊN CỨU KHOA HỌC ĐỀ TÀI: ỨNG DỤNG CÔNG NGHỆ BLOCKCHAIN VÀO QUẢN LÝ BẰNG CỦA TRƯỜNG ĐẠI HỌC LẠC HỒNG TRẦN DIỆP KHÁNH TRÌNH BIÊN HỊA, THÁNG 11/2018 TRƯỜNG ĐẠI HỌC LẠC HỒNG KHOA CÔNG NGHỆ THÔNG TIN - - BÁO CÁO NGHIÊN CỨU KHOA HỌC     ĐỀ TÀI:   NGHỆ BLOCKCHAIN ỨNG DỤNG CÔNG  VÀO QUẢN LÝ BẰNG CỦA TRƯỜNG ĐẠI  HỌC LẠC HỒNG      Sinh viên thực hiện: Trần Diệp Khánh Trình Giáo viên hướng dẫn: ThS Phan Thị Hường BIÊN HÒA, THÁNG 11/2017 I LỜI CẢM ƠN Khơng có thành cơng mà không gắn liền với giúp đỡ hỗ trợ dù hay nhiều, dù trực tiếp hay gián tiếp người khác Trong suốt thời gian từ bắt đầu học tập trường nay, em nhận nhiều quan tâm, giúp đỡ q thầy cơ, gia đình bạn bè Lời em xin chân thành cảm ơn đến cô ThS Phan Thị Hường giáo viên trực tiếp hướng dẫn nhiệt tình giúp đỡ, hướng dẫn đóng góp ý kiến để báo cáo em hoàn thành cách tốt Em xin gửi lời cảm ơn đến quý thầy cô Khoa Công Nghệ Thông Tin – Trường Đại Học Lạc Hồng với tri thức tâm huyết để truyền đạt vốn kiến thức quý báu cho em suốt thời gian học tập trường Và đặc biệt, xin gửi lời cảm ơn sâu sắc đến ba mẹ, người sinh thành nuôi dưỡng nên người, tạo điều kiện, ủng hộ, động viên thất bại, chán nản Vì lần tìm hiểu lĩnh vực cịn mẻ, nên em bỏ nhiều thời gian, cơng sức, tâm huyết vào chắn không tránh khỏi hạn chế sai sót Hy vọng vấn đề cịn hạn chế đề tài nhận ý kiến đóng góp hướng dẫn quý thầy cô để đề tài em hoàn thiện Sau cùng, em xin kính chúc q thầy Khoa Cơng nghệ thơng tin thật dồi sức khỏe để tiếp tục sứ mệnh cao đẹp truyền đạt tri thức quý báu cho hệ mai sau Em xin chân thành cảm ơn Biên Hòa, tháng 11 năm 2018 Sinh viên thực Trần Diệp Khánh Trình II MỤC LỤC LỜI CẢM ƠN I MỤC LỤC II DANH MỤC BẢNG V DANH MỤC HÌNH VI DANH MỤC CÁC TỪ VIẾT TẮT VII PHẦN MỞ ĐẦU 1.1 Lý chọn đề tài 1.2 Tình hình nghiên cứu  Ngoài nước  Trong nước 1.3 Mục tiêu nghiên cứu 1.4 Đối tượng phạm vi nghiên cứu  Đối tượng nghiên cứu  Phạm vi nghiên cứu 1.5 Phương pháp nghiên cứu 1.6 Những đóng góp vấn đề chưa thực đề tài 1.6.1 Những đóng góp 1.6.2 Những vấn đề chưa thực 1.7 Kết cấu luận văn Chương 1: Tổng quan lý thuyết 1.1 Tổng quan công nghệ blockchain 1.1.1 Giới thiệu blockchain 1.1.2 Đặc điểm 1.1.3 Nguyên lý hoạt động 1.1.4 Phân loại 1.2 Tổng quan Ethereum 1.2.1 Giới thiệu Ethereum 1.2.2 Kiến trúc 1.2.3 Ứng dụng 1.3 Tổng quan smart contract 1.3.1 Giới thiệu smart contract 1.3.2 Nguyên lý hoạt động 1.3.3 Các thành phần smart contract 1.3.4 Lợi ích smart contract 1.4 Các ứng dụng phi tập trung III 1.4.1 Giới thiệu ứng dụng phi tập trung 1.4.2 Làm để xây dựng DApp? 1.5 Một số phần mềm, thư viện framework sử dụng đề tài 1.5.1 Geth 1.5.2 Remix 1.5.3 Nodejs 1.5.4 Truffle 1.5.5 Lite-server 1.5.6 Web3.js 1.5.7 Bootstrap 1.5.8 Metamask 1.6 Tiểu kết Chương 2: Hệ thống blockchain 10 2.1 Cài đặt phần mềm geth 10 2.1.1 Cài đặt phiên dành cho tất phân phối linux 10 2.1.2 Cài đặt bằng package management (apt) Ubuntu 11 2.1.3 Chạy thử geth 11 2.2 Thiết lập genesis block 12 2.3 Cài đặt thiết lập cho miner 13 2.3.1 Khởi tạo miner từ genesis block 13 2.3.2 Tạo tài khoản người dùng 14 2.3.3 Tạo file thực thi miner 15 2.3.4 Thử thực giao dịch 17 2.4 Kết nối đồng miner với 18 2.5 Tiểu kết 20 Chương 3: Xây dựng triển khai smart contract lên hệ thống blockchain 21 3.1 Cài đặt framework truffle 21 3.2 Tạo smart contract 21 3.2.1 Sơ đồ hoạt động smart contract 21 3.2.2 Khai báo lập trình chức cho đối tượng người dùng 24 3.2.3 Khai báo lập trình chức cho đối tượng sinh viên 26 3.2.4 Khai báo lập trình chức cho đối tượng bằng cấp 29 3.3 Triển khai smart contract 32 3.3.1 Thiết lập truffle 32 3.3.2 Triển khai smart contract 33 3.3.3 Chạy thử smart contract 34 3.4 Tiểu kết 35 IV Chương 4: Xây dựng DApp quản lý bằng đại học 36 4.1 Khảo sát quy trình cấp phát bằng 36 4.2 Tạo giao diện website 36 4.3 Kết nối website với hệ thống blockchain 38 4.4 Sử dụng metamask trình duyệt hỗ trợ chạy DApp 42 4.5 Tiểu kết 45 Chương 5: KẾT LUẬN 46 TÀI LIỆU THAM KHẢO 48 V DANH MỤC BẢNG Bảng 5.1 – So sánh phương pháp lưu trữ blockchain server 46 VI DANH MỤC HÌNH Hình 1.1 – Nguyên lý hoạt động smart contract Hình 2.1 – Sơ đồ hệ thống private blockchain 10 Hình 2.2 – Trang web download phiên geth 11 Hình 2.3 – Kiểm tra phiên phần mềm geth 12 Hình 2.4 – Terminal hiển thị chạy geth 12 Hình 2.5 – Kết khởi tạo miner 14 Hình 2.6 – Kết tạo tài khoản cho miner 15 Hình 2.7 – Danh sách tài khoản miner 15 Hình 2.8 – Terminal hiển thị chạy miner 16 Hình 2.9 – Console để điều khiển miner 17 Hình 2.10 – Thông tin trả giao dịch miner 18 Hình 2.11 – Danh sách giao dịch chờ thực 18 Hình 2.12 – Thơng tin enode miner 19 Hình 2.13 – Danh sách miner kết nối với 20 Hình 3.1 – Mơ hình hệ thống xác thực văn bằng tảng blockchain 21 Hình 3.2 – Sơ đồ hoạt động smart contract quản lý bằng 22 Hình 3.3 – Sơ đồ hoạt động smart contract quản lý bằng 23 Hình 3.4 – Thơng báo triển khai smart contract thành cơng 34 Hình 3.5 – Thực giao dịch smart contract 35 Hình 3.6 – Lấy kết lưu blockchain 35 Hình 4.1 – Website tra cứu bằng dựa vào mã sinh viên 36 Hình 4.2 – Website tra cứu bằng dựa vào số hiệu bằng 37 Hình 4.3 – Website quản lý người dùng 37 Hình 4.4 – Website lưu trữ thơng tin 38 Hình 4.5 – Website chạy máy chủ 42 Hình 4.6 – Giao diện metamask 42 Hình 4.7 – Lựa chọn port cho metamask 43 Hình 4.8 – Thêm tài khoản cho metamask 43 Hình 4.9 – Lấy tài khoản từ file json keystore miner 44 Hình 4.10 – Ứng dụng web hoàn chỉnh sau cài đặt metamask 44 VII DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt Tiếng Anh Tiếng Việt DApp Decentralized App Ứng dụng phân tán phi tập trung EVM Ethereum Virtual Machine Máy ảo Ethereum PHẦN MỞ ĐẦU 1.1 Lý chọn đề tài Cuộc cách mạng công nghiệp 4.0 xu hướng toàn giới việc tự động hóa trao đổi liệu cơng nghệ sản xuất, hội tụ kỹ thuật số với yếu tố cốt lõi là: trí tuệ nhân tạo, IoT big data Và thiếu sót không nhỏ cách mạng bỏ qua công nghệ Blockchain Như đề cập trên, cách mạng công nghiệp 4.0 tập trung vào khai thác nguồn tài nguyên liệu, điều khác biệt lớn so với cách mạng dựa nguồn tài nguyên thiên nhiên trước đó, nghĩa liệu có vai trị quan trọng cách mạng Tuy nhiên, liệu tiềm ẩn nguy an ninh bảo mật lịng tin người, việc xây dựng nên nguồn liệu có ích, đáng tin cậy mà lại không sợ bị đánh cắp tốn khó Blockchain (chuỗi khối) sở liệu phân tán, lưu trữ thông tin khối thông tin liên kết với dựa vào mã hóa mở rộng theo thời gian Mỗi khối thông tin chứa thông tin thời gian khởi tạo liên kết tới khối trước đó, kèm mã thời gian liệu giao dịch Vì Blockchain phù hợp để ghi lại kiện, hồ sơ y tế, xử lý giao dịch, cơng chứng, danh tính chứng minh nguồn gốc Việc có tiềm giúp xóa bỏ hậu lớn liệu bị thay đổi bối cảnh thương mại toàn cầu Blockchain tổ chức, quan đầu tư nghiên cứu, phát triển ứng dụng vào nhiều lĩnh vực sống Thấy tiềm to lớn blockchain việc an toàn minh bạch thơng tin, tác giả mong muốn tìm hiểu công nghệ blockchain ứng dụng công nghệ vào quản lý bằng tốt nghiệp Trường Đại học Lạc Hồng 1.2 Tình hình nghiên cứu  Ngồi nước Như nói trên, cơng nghệ blockchain dần áp dụng vào nhiều lĩnh vực sống Ngày nhiều cá nhân, quan tổ chức quan tâm, nghiên cứu cho nhiều ứng dụng blockchain áp dụng vào sống Một số ví dụ như:  Zug Thụy Sĩ, nơi gọi “Thung lũng Crypto” hợp tác với Uport triển khai dự án Blockchain để cư dân đăng ký ID, cho phép họ tham gia bỏ phiếu trực tuyến chứng minh nơi cư trú  Các dự án chăm sóc sức khỏe MedRec sử dụng Blockchain phương tiện tạo điều kiện chia sẻ liệu cung cấp xác thực trì tính bảo mật  IBM Walmart hợp tác để khởi động Liên minh An toàn Thực phẩm Blockchain Trung Quốc Dự án, hợp tác công ty thuộc Fortune 500 JD.com, thiết kế để cải thiện việc theo dõi độ an toàn thực phẩm, giúp dễ dàng xác minh rằng thực phẩm có thực an tồn để tiêu thụ hay khơng.[1] 34 Hình 3.4 – Thơng báo triển khai smart contract thành công 3.3.3 Chạy thử smart contract Sau triển khai smart contract, ta vào console truffle để tương tác với smart contract bằng lệnh: truffle console network development Trong console truffle, ta khai báo biến đại diện cho smart contract để gọi đến hàm giao dịch smart contract: BangDaiHoc.deployed().then(inst => {bangdaihoc = inst}) Sau đó, ta gọi hàm giao dịch smart contract, tác giả thử lưu sinh viên lên hệ thống, hàm thực thành cơng thơng tin giao dịch hiển thị sau: 35 Hình 3.5 – Thực giao dịch smart contract Ta cần lưu ý rằng để giao dịch thực miner phải chạy lệnh đào tác giả trình bày mục 2.3.4 chương Thử lấy thông tin sinh viên lưu lên hệ thống: Hình 3.6 – Lấy kết lưu blockchain 3.4 Tiểu kết Qua chương này, tác giả trình bày trình tạo smart contract quản lý bằng cấp triển khai lên blockchain nhờ framework truffle Trong chương tiếp theo, tác giả trình bày trình tạo giao diện website, để người dùng dễ dàng tương tác với với smart contract cách để kết nối website với smart contract hệ thống blockchain để tạo DApp 36 Chương 4: Xây dựng DApp quản lý bằng đại học Sau xây dựng smart contract triển khai lên hệ thống, tác giả tạo DApp để người dùng dễ dàng tương tác với smart contract, dùng console truffle Quá trình xây dựng DApp gồm hai bước chính: tạo giao diện website kết nối website với blockchain 4.1 Khảo sát quy trình cấp phát bằng Sau khảo sát tìm hiểu, tác giả hiểu quy trình cấp phát bằng tốt nghiệp cho sinh viên sau: Sinh viên sau học xong cấp bảng điểm, sau sinh viên phải làm hồ sơ cấp xét bằng tốt nghiệp nộp cho khoa Khoa nhận hồ sơ kiểm tra xem có hay khơng đăng ký hệ thống xét cấp tốt nghiêp Thông tin lưu trữ lại, sau phịng đào tạo kiểm tra lại lần nữa, khơng có sai sót khoa in danh sách sinh viên xét cấp tốt nghiệp cho lãnh đạo xem ký xác nhận Sau khoa đưa danh sách cho phòng đào tạo để in bằng theo danh sách, bằng in nhà trường giữ bản, khoa cấp cho sinh viên Qua khảo sát trên, tác giả định xây dựng website để lưu trữ tra cứu thông tin văn bằng 4.2 Tạo giao diện website Trong thư mục tạo để triển khai smart contract chương trước, ta tiếp tục tạo thư mục có tên src, thư mục chứa file để lập trình ứng dụng web Tiếp đó, tác giả tải thư viện web3js bootstrap máy bỏ vào thư mục src Tác giả sử dụng framework bootstrap để tạo website sau: Hình 4.1 – Website tra cứu dựa vào mã sinh viên 37 Hình 4.2 – Website tra cứu dựa vào số hiệu Hình 4.3 – Website quản lý người dùng 38 Hình 4.4 – Website lưu trữ thông tin 4.3 Kết nối website với hệ thống blockchain Code javascript để kết nối đến blockchain: var web3Provider = null; var BangDaiHoc; const nullAddress = "0x0000000000000000000000000000000000000000"; //Kiểm tra kết nối web3: function initWeb3 () { if (typeof web3 !== 'undefined' && typeof web3.currentProvider !== 'undefined') { web3Provider = web3.currentProvider; web3 = new Web3(web3Provider); } else { console.error ('Cài đặt Metamask tiếp tục!'); alert ('Cài đặt Metamask để tiếp tục!'); } } //Kiểm tra kết nối smart contract: function initBangDaiHoc(){ $.getJSON('BangDaiHoc.json', function (data) { BangDaiHoc = TruffleContract (data); //BangDaiHoc.setProvider (web3Provider); 39 web3Provider = web3.currentProvider; BangDaiHoc.setProvider (web3Provider); //getEvents (); }); } //Khởi tạo trang web load: window.onload = function() { initWeb3(); initBangDaiHoc(); }; Code javascript để lấy thông tin sinh viên từ blockchain, code lấy thông tin bằng cấp người dùng tương tự code này: //Lấy thông tin sinh viên: function TimSinhVien (masv) { BangDaiHoc.deployed ().then (function (instance) { return instance.TimSinhVien (masv); }).then (function (result) { if (result != nullAddress) { document.getElementById ("sinhvienmasv").innerHTML = result[0]; document.getElementById ("sinhvientensv").innerHTML = result[1]; document.getElementById ("sinhvienngaysinh").innerHTML = result[2]; document.getElementById ("sinhviengioitinh").innerHTML = result[3]; console.log (result); } }).catch (function (err) { console.log (err.message); }); // BangDaiHoc.deployed ().then (function (instance) { return instance.ChiTietSinhVien (masv); }).then (function (result) { if (result != nullAddress) { document.getElementById ("sinhviennoisinh").innerHTML = result[0]; 40 document.getElementById ("sinhviendantoc").innerHTML = result[1]; document.getElementById ("sinhvienquoctich").innerHTML = result[2]; document.getElementById ("sinhvienlop").innerHTML = result[3]; console.log (result); } }).catch (function (err) { console.log (err.message); }); } Code javascript để lưu trữ thông tin sinh viên từ website lên blockchain, code để lưu trữ bằng cấp người dùng tương tự code này: //Nhập thông tin sinh viên: function ThemSinhVien () { web3.eth.getAccounts (function (error, accounts) { if (error) { console.log (error); } else { if (accounts.length

Ngày đăng: 25/07/2020, 10:43

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan