Ứng dụng hỗ trợ xem thông tin cà phê dựa trên Blockchain

57 53 0
Ứng dụng hỗ trợ xem thông tin cà phê dựa trên Blockchain

Đ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 HỖ TRỢ XEM THÔNG TIN CÀ PHÊ DỰA TRÊN BLOCKCHAIN VĂN CƠNG THIỆU BIÊN HỊA, THÁNG 11/2018 LỜI CẢM ƠN Em xin chân thành cảm ơn tất giảng viên trường Đại Học Lạc Hồng, thầy cô khoa Công Nghệ Thông Tin giảng dạy hướng dẫn chúng em suốt thời gian chúng em theo học trường Em xin gửi lời cảm ơn đến ThS Phan Thị Hường, giáo viên tận tình hướng dẫn chúng em hoàn thành đề tài nghiên cứu khoa học Em xin cám ơn thầy, cô khoa Cơng Nghệ Thơng Tin có ý kiến đóng góp buổi báo cáo tiến độ Ngồi em xin cám ơn thầy Tạ Nguyễn, giáo viên chủ nhiệm lớp 14SE111 bạn lớp tồn thể gia đình người thân giúp đỡ, động viên chúng em trình thực đề tài Với vốn kiến thức hạn chế điều kiện khách quan không cho phép, đề tài em khó tránh khỏi thiếu sót chưa đáp ứng đầy đủ yêu cầu Do em hy vọng tiếp tục nhận ý kiến đóng góp hướng dẫn q thầy để đề tài em hoàn thiện Em xin chân thành cảm ơn Biên Hòa, tháng 11 năm 2018 Sinh viên thực Văn Công Thiệu MỤC LỤC LỜI CẢM ƠN MỤC LỤC I II DANH MỤC BẢNG IV DANH MỤC HÌNH IV DANH MỤC CÁC TỪ VIẾT TẮT VI PHẦN MỞ ĐẦU 1 Lý chọn đề tài Tình hình nghiên cứu Mục tiêu nghiên cứu Đối tượng phạm vi nghiên cứu Phương pháp nghiên cứu Những đóng góp đề tài vấn đề mà đề tài chưa thực Kết cấu đề tài Chương 1: Tổng quan lý thuyết 1.1 Tổng quan blockchain 1.1.1 Blockchain gì? 1.1.2 Ý tưởng đời 1.1.3 Phân loại blockchain 1.1.4 Cơ chế đồng thuận blockchain 1.1.5 Đặc điểm blockchain 1.1.6 Tương lai blockchain 1.2 Tổng quan Ethereum 1.2.1 Ethereum gì? [3] 1.2.2 Kiến trúc 1.2.3 Ứng dụng 1.3 Tổng quan smart contracts 1.3.1 Smart contracts gì? 1.3.2 Ý tưởng đời Smart Contract? 1.3.3 Nguyên lý hoạt động 1.3.4 Các thành phần smart contracts 10 1.3.5 Lợi ích 10 1.4 Các ứng dụng phi tập trung 10 1.4.1 Ứng dụng phi tập trung gì? 10 1.4.2 Xây dựng dApp? 11 1.5 Giới thiệu số phần mềm thư viện sử dụng đề tài 11 1.5.1 Phần mềm Geth 11 1.5.2 Trình soạn thảo biên dịch smart contract Remix 11 1.5.3 Nodejs 12 1.5.4 Framework hỗ trợ triển khai smart contract Truffle 12 1.5.5 Web3.js 12 1.5.6 Metamask 12 1.5.7 Apache 12 1.6 Tiểu kết 12 Chương 2: Xây dựng hệ thống private network blockchain dựa tảng Ethereum 13 2.1 Cài đặt mơi trường lập trình số thư viện cần thiết 13 2.1.1 Cài đặt môi trường Ethereum 13 2.1.2 Chạy thử geth 13 2.2 Thiết lập genesis block 13 2.3 Cài đặt thiết lập cho miner 14 2.3.1 Khởi tạo miner từ genesis block 14 2.3.2 Tạo tài khoản cho người dùng hệ thống 15 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 17 2.5 Tiểu kết 19 Chương 3: Xây dựng ứng dụng website với hệ thống blockchain dựa smart contracts 20 3.1 Sơ đồ hệ thống 21 3.1.1 Mô tả hệ thống 21 3.1.2 Mơ hình Usecase người dung 21 3.1.3 Mơ hình UseCase tài khoản User 22 3.1.4 Mơ hình UseCase Admin 23 3.2 Xây dựng smart contracts quản lý thông tin cà phê 3.2.1 Cài đặt framework truffle 25 25 3.2.2 Tạo smart contract 25 3.2.3 Kết nối smart contracts với hệ thống 26 3.3 Kết nối hệ thống lên website ứng dụng 27 3.3.1 Tạo giao diện website 27 3.3.2 Kết nối website với hệ thống blockchain 29 3.3.3 Sử dụng metamask trình duyệt chạy dApp 33 3.3.4 Tiểu kết 36 3.4 Xây dựng ứng dụng xem thông tin 36 3.4.1 Giao diện ứng dụng 36 3.4.2 Kết nối ứng dụng với server 37 Chương 4: THỬ NGHIỆM VÀ KẾT LUẬN 39 TÀI LIỆU THAM KHẢO 41 DANH MỤC BẢNG Bảng 4.1: Bảng so sánh lưu trữ blockchain vs server 45 DANH MỤC HÌNH Hình 1.1: Ý tưởng đời blockchain [2] Hình 1.2: Nguyên lý hoạt động smart contracts [4] 10 Hình 1.3: Ứng dụng phi tập trung [5] 11 Hình 2.1: Sau khởi tạo miner 15 Hình 2.2: Chạy miner 16 Hình 2.3: Vào trình điều khiển hệ thống 16 Hình 2.4: Kiểm tra tài khoản hệ thống 17 Hình 3.1: Sơ đồ hệ thống 20 Hình 3.2: Mơ hình Usecase tổng qt 21 Hình 3.3: Mơ hình Usecase người dùng 21 Hình 3.4: Mơ hình Usecase Admin 23 Hình 3.5: Sơ đồng hoạt động smart contract với hệ thống API hỗ trợ giao dịch 25 Hình 3.6: Biên dịch smart contracts 26 Hình 3.7: Kết nối với hệ thống blockchain 27 Hình 3.8:Kiểm tra địa smart contracts 27 Hình 3.9: Giao diện website Admin 28 Hình 3.10: Giao diện quản lý lơ hàng 28 Hình 3.11: Giao diện quản lý user 29 Hình 3.12: Giao diện quản lý user 29 Hình 3.13: Giao diện metamask 33 Hình 3.14: Chọn port để kết nối với private network 34 Hình 3.15: Chọn Import Account để thêm tài khoản 34 Hình 3.16: Chọn file json từ keystore để thêm tài khoản 35 Hình 3.17: Thêm tài khoản thành cơng 35 Hình 3.18: Màn hình quét mã QR code 36 Hình 3.19: Màn hình thơng tin lơ hàng 36 Hình 3.20:Sơ đồ truyền liệu từ ứng dụng lên server ngược lại 37 Hình 4.1: Khi thay đổi liệu block 39 DANH MỤC CÁC TỪ VIẾT TẮT Viết tắt dApp ETH EVM Tiếng Việt Ứng dụng dựa tảng phân tán phi tập trung Đơn vị tiền điện tử blockchain Ethereum Máy ảo Ethereum PHẦN MỞ ĐẦU Lý chọn đề tài Vệ sinh an toàn thực tập vấn đề quan tâm xã hội vấn đề thời sự,báo đài quan tâm đặc biệt, ngày nhiều vi phạm an toàn thực phẩm sở sản xuất quan chức phát nhiều.Hiện giá hàng hóa dịch vụ khơng cịn yếu tố quan tâm nhiều nhất, mà thay là chất lượng, tiêu chuẩn liên quan đến an toàn người tiêu dùng môi trường.Người tiêu dùng quan tâm đến nguồn gốc q trình sản xuất đáng Do phát triển nhu cầu xã hội, nước đặc biệt nước phát triển triển khai áp dụng quy định kỹ thuật vệ sinh sản phẩm cà phê nhập Các quy định ngày khắt khe, chặt chẽ kiểm soát nghiêm ngặt Các nước xuất cà phê giới đề quan tâm đến vấn đề đảm bảo chất lượng an toàn thực phẩm coi nhiệm vụ quan trọng hoạt động xuất cà phê Trong năm gần đây, ngành cà phê Việt Nam có bước phát triển dài, đáng ghi nhận, đáp ứng nhu cầu nước mà trở thành ngành xuất chủ lực, để vượt qua rào cản, đẩy mạnh xuất vấn đề khó khăn cấp bách ngành xuất cà phê nước ta Chính doanh nghiệp sản xuất cà phê Việt Nam cần thiết áp dụng hệ thống truy xuất nguồn gốc Mặc dù hệ thống làm tăng chi phí, đồng thời lợi ích thu lại từ việc an tồn khơng nhỏ Hệ thống truy xuất giúp khách hàng tin tưởng vào chất lượng an tồn sản phẩm mình, qua nâng cao uy tín thị trường Thêm vào đó, hệ thống cịn giúp doanh nghiệp có thẻ quản lý tốt chất lượng sản phẩm, từ khâu nuôi trồng, chế biến trình vận chuyển phân phối Nếu có cố xảy bất ngờ, doanh nghiệp tìm ngun nhân nhanh chóng đưa biện pháp xử lý kịp thời Đây vấn đề khơng cịn mẻ giới, họ áp dụng thu nhiều kết tốt xa lạ Việt Nam, em hi vọng qua nội dung mà em thực đề tài hiểu nhiều hệ thống truy xuất nguồn gốc từ có hướng áp dụng hiệu cho doanh nghiệp sản xuất cà phê Đây vấn đề thực tế cần thiết Chính lý mà em chọn thực đề tài Tình hình nghiên cứu ❖ Ngoài nước Hệ thống truy xuất nguồn gốc phổ biến châu Âu Mỹ la tinh đặt biệt nước EU EU đưa nhiều quy định cho nước nhập vào EU Chính thị trường phát triển trình độ cao nên địi hỏi người tiêu dùng hàng hóa nhập khắt khe Tại đây, giá hàng hóa dịch vụ khơng phải yếu tố quan tâm nhiều, mà yêu cầu trước hết chất lượng, mẫu mã, tiêu chuẩn liên quan đến bảo vệ môi trường bảo vệ sức khoẻ người tiêu dùng Hiện nay, thị trường tất nước thành viên EU, hàng hóa nhập thường phải kiểm mainContract.methods.updateUserForAdmin(userWalletAddre ss,userName,userContactNo,userRoles,isActive) send({from:globCoinbase, to:mainContract._address}) on('transactionHash',function(hash){ $("#userFormModel").modal('hide'); }) on('receipt', function(receipt){ receiptMessage = "User Created Successfully"; handleTransactionReceipt(receipt,receiptMessage); $("#userFormModel").modal('hide'); getUserEvents(mainContract); }) on('error',function(error) { handleGenericError(error.message); return; }); } } Cũng giống khởi tạo User, tác giả gọi tới smart contract API khởi tạo lô hàng để tạo lô hàng lưu trữ thông tin giao dịch hệ thống mã hóa mainContract.methods.setBasicDetails(farmerRegistrationNo, farmerName, farmerAddress, exporterName, importerName) send({ from: globCoinbase, to: mainContract._address }) on('transactionHash', function (hash) { handleTransactionResponse(hash); $("#batchFormModel").modal('hide'); }) on('receipt', function (receipt) { receiptMessage = "Token Transferred Successfully"; handleTransactionReceipt(receipt, receiptMessage); $("#batchFormModel").modal('hide'); getCultivationEvents(mainContract); }) on('error', function (error) { handleGenericError(error.message); return; }); } } Để kiểm tra thông tin user, tác giả xây dựng nên API smart contract với phương thức getUserAdmin để lấy thông tin User lưu dạng giao dịch hệ thống block chain, sau nhờ vào framework Web3 để gọi, trả thông tin User thị lên website function getUserDetails(contractRef,userAddress,callback){ callback = callback || false; contractRef.methods.getUserAdmin(userAddress).call() then((result)=>{ callback(result); }) catch((error)=>{ sweetAlert("Error","Unable to get User Details","error"); callback(0); }); } Để kiểm tra thông tin lô hàng , tác giả xây dựng nên API smart contract để lấy thông tin lô hàng lưu dạng giao dịch hệ thống block chain, sau nhờ vào framework Web3 để gọi đển Event PerformCultivation hệ thống để trả batchNo liệu thông tin lô hàng function getCultivationEvents(contractRef) { contractRef.getPastEvents('PerformCultivation', { fromBlock: }).then(function (events) Để update thông tin lô hàng, tác giả xây dựng API lập trình smart contract Ở tác giả gọi lần lần API: setnongtraiData, setthuhoachData,setvanchuyenData,setsanxuatData,settieuthuData để cập nhật thông tin lô hàng thông qua framework Web3 kết nối vs smart contract hệ thống lưu trữ dạng giao dịch mã hóa function updateFarmInspection(contractRef,data) { contractRef.methods.setnongtraiData(data.batchNo,data.coffee Family,data.typeOfSeed,data.fertilizerUsed) send({from:globCoinbase,to:contractRef.address}) on('transactionHash',function(hash) { $.magnificPopup.instance.close() handleTransactionResponse(hash); }) on('receipt',function(receipt) { receiptMessage = "Farm Inspection Updated Succussfully"; handleTransactionReceipt(receipt,receiptMessage) }) on('error',function(error) { handleGenericError(error.message); return; }); } Để lấy lại liệu thông tin lô hàng lưu trữ dạng giao dịch hệ thống, tác giả có xây dựng API lập trình smart contract Ở tác giả gọi API thông qua framwork Web3, để trả giá trị contractRef.methods.getFarmInspectorData(batchNo).call() then((result)=>{callback(result); }).catch((error)=>{ sweetAlert("Error","Unable to get Farm Inspection Details","error"); callback(0);});} Để cập nhật thông tin User tác giả xây dựng nên API hỗ trợ, User cập nhật thơng tin gồm : tên, địa chỉ, số liên hệ function openEditUser(ref){ var userAddress = $(ref).attr("data-userAddress"); startLoader(); getUserDetails(mainContract,userAddress,function(result ){ $("#address").val(userAddress); $("#userName").val(result.name); $("#userContactNo").val(result.contactNo); $('#userRoles').val(result.role).prop('selected', true); changeSwitchery($("#isActive"),result.isActive); $("#userModelTitle").html("Update User"); stopLoader(); $("#userFormModel").modal(); }); console.log(userAddress);} Lấy liệu để hiển thị thông tin lô hàng, tác giả gọi đến Event tác giả xây dựng smart contract activityName, để lấy thơng tin đồng thời thị lên giao diện web function getActivityTimestamp(activityName, batchNo, callback) { mainContract.getPastEvents(activityName,{ fromBlock:0, filter:{batchNo: batchNo} },function(error,eventData) 3.3.3 Sử dụng metamask trình duyệt chạy dApp Mặc dù website chạy lên máy chủ, website chưa kết nối với hệ thống blockchain Để thực điều đó, ta phải cài plugin metamask browser Metamask xem thư viện cầu nối trình duyệt web hệ thống blockchain, đồng thời ví tiền ảo Ethereum [8] Hình 3.13: Giao diện metamask Để kết nối đến hệ thống blockchain, ta cần chỉnh port hệ thống blockchain mà muốn kết nối: Hình 3.14: Chọn port để kết nối với private network Sau chọn xong port để kết nối đến hệ thống, ta import tài khoản để thực giao dịch Trong tùy chọn tài khoản, ta chọn Import Account: Hình 3.15: Chọn Import Account để thêm tài khoản Sau chọn đến file json chứa tài khoản nằm thư mục keystore thư mục miner Hình 3.16: Chọn file json từ keystore để thêm tài khoản Sau import tài khoản, ta nhập xem liệu lấy từ blockchain lên website Hình 3.17: Thêm tài khoản thành công 3.3.4 Tiểu kết Qua chương này, tác giả trình bày cách xây dựng smart contracts kết nối với hệ thống private network blockchain, đồng thời kết nối với website để tương tác liệu hệ thống smart contracts nodejs với thư viện hỗ trợ web3js 3.4 Xây dựng ứng dụng xem thông tin 3.4.1 Giao diện ứng dụng Gồm phần chính: Đọc mã QR code Hình 3.18: Màn hình qt mã QR code - Thơng tin lơ hàng cà phê Hình 3.19: Màn hình thông tin lô hàng 3.4.2 Kết nối ứng dụng với server Hình 3.20:Sơ đồ truyền liệu từ ứng dụng lên server ngược lại Đọc mã QR code, tác giả sử dụng thư viện Zxing để đọc mã QR code dễ dàng Thêm thư viện vào source code chương trình: compile'com.journeyapps:zxing-android-embedded:3.2.0@aar' compile 'com.google.zxing:core:3.2.1 Hiển thị hình quét mã QR code, tác giả xây dựng hàm INT() để gọi tới thư viện hỗ trợ public void init(){ IntentIntegrator integrator = new IntentIntegrator(this); integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE _TYPES); integrator setPrompt("Đang đọc QR code"); integrator.setCameraId(0); // beep scan qr thành công integrator.setBeepEnabled(true); integrator.initiateScan(); } Khi hiển thị quét mã qr code, tác giả tiếp tục xây dựng hàm onActivityResult để đọc giá trị liệu mã QR code public void onActivityResult(int requestCode, int resultcode, Intent intent){ IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultcode, intent); if(result != null){ contents = result.getContents(); txtData.setText(contents); // lấy hiệu ứng rung scan thành công Vibrator v = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE); // SET RUNG 400 MILLISECONDS v.vibrate(400); TimData(url); } } Sau đọc liệu từ mã QR, tác giả sử dụng tiếp thư viên Volley để hỗ trợ gửi thông tin lên server để so sánh trả liệu dạng Json String tùy theo nhu cầu, để thêm thư viện: compile 'com.android.volley:volley:1.1.1' Sau thêm thư viên thành công, tác giả xây dựng hàm cho phép truyền liệu từ ứng dụng lên server để so sánh trả giá trị thông tin lô hàng RequestQueue requestQueue=Volley.newRequestQueue(this); final StringRequest stringRequest=new StringRequest(Request.Method.POST, url, new Response.Listener() { @Override public void onResponse(String response) { String tmp=response.substring(response.indexOf("{"), response.lastIndexOf("}") + 1); try { JSONObject object= new JSONObject(tmp); //Toast.makeText(MainActivity.this, object.toString(), Toast.LENGTH_SHORT).show();} dataAdapter.notifyDataSetChanged(); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Toast.makeText(MainActivity.this, "Lỗi", Toast.LENGTH_SHORT).show(); } } ){ @Override protected Map getParams() throws AuthFailureError { Map params= new HashMap(); params.put("batchno",contents); return params; } }; requestQueue.add(stringRequest); Chương 4: THỬ NGHIỆM VÀ KẾT LUẬN Hệ thống private blockchain thử nghiệm gồm: - máy tính laptop máy ảo VPS - miner máy - miner gồm tài khoản Khi thử nghiệm hệ thống, tác giả thấy hệ thống blockchain giao dịch đảm bảo tính minh bạch, đồng thời an toàn cho liệu Mọi liệu lưu trữ tất node hệ thống, đảm bảo cho hệ thống bị tin tặc công khơng dẫn tới trường hợp liệu, thay đổi liệu lưu vết khơng xóa liệu Khi tắt xóa node hệ thống chạy; tạo node kết nối, node tự động đồng tất liệu từ block hệ thống Khi thay đổi liệu block liệu lưu lại tạo giao dịch để thị Hình 4.1: Khi thay đổi liệu block Lưu ý tác giả thử nghiệm hệ thống thấy muốn đẩy nhanh tốc độ xử lý giao dịch, tác giả tăng gas, để tăng tốc độ, gas lớn tốc độ xử lý nhanh So với phương pháp lưu trữ liệu lên server với phương pháp lưu trữ hệ thống blockchain có điểm sau: Lưu trữ blockchain Lưu trữ server Giảm loại bỏ gian lận lỗi Dễ bị tin tặc công dẫn đến hệ thống dễ sập Cải thiện khoảng không gian quản lý Dễ bị thông tin Xác định vấn đề nhanh Dễ thay đổi liệu không lưu lại vết Tăng niềm tin người tiêu dùng đối tác Khi lưu trữ cần phải xác thực giao dịch Bảng 4.1: Bảng so sánh phương pháp lưu trữ blockchain vs server Kết đạt được: Qua trình nghiên cứu đề tài “Ứng dụng xem hỗ trợ xem thông tin sản phẩm cà phê”, tác giả đạt số kết sau: − Nắm cấu tạo hệ thống blockchain tạo hệ thống private blockchain − Sau tìm hiểu smart contract, tác giả học ngôn ngữ lập trình smart contract Solidity tự tạo smart contract Đồng thời sử dụng framework Truffle để triển khai smart contract lên mạng blockchain − Trong trình tìm hiểu cách để tạo ứng dụng phi tập trung, tác giả hiểu cách để lập trình cho website kết nối với blockchain smart contract javascript nodejs − Cuối cùng, ứng dụng tất kiến thức nghiên cứu, tác giả tạo ứng dụng chạy tảng phi tập trung − Ứng dụng hỗ trợ xem thông tin sản phẩm cà phê liệu lưu trữ an toàn so với ứng dụng web lưu trữ liệu máy chủ Vì ứng dụng phi tập trung nên cho phép lưu trữ nhiều node ví dụ node hệ thống bị sập liệu không đi, kết nối với hệ thống node đồng liệu với Khi có hacker xâm nhập để sửa chữa liệu lưu viết lại chế blockchain khơng cho phép xóa, cho phép sửa lưu lại vết điều giúp ta phát dễ dàng thay đổi liệu Định hướng phát triển tương lai: − Tìm giải pháp để chạy ứng dụng thiết bị mà khơng cần metamash − Tìm kiếm giải pháp tốt hơn, cho phép nhận liệu từ chip TÀI LIỆU THAM KHẢO [1] M Andreessen, "What is Blockchain Technology?," [Online] Available: https://www.coindesk.com/information/what-isblockchain-technology/ [Accessed 15 2018] [2] xuyen88, "Các Cơ chế đồng thuận Blockchain," [Online] Available: https://steemit.com/consensus/@xuyen88/kien-thucco-ban-cac-co-che-dong-thuan-blockchain [Accessed 19 2018] [3] camtu, "Ethereum – Nền tảng tuyệt vời cho Blockchain," [Online] Available: https://techinsight.com.vn/ethereum-nentang-tuyet-voi-cho-blockchain/ [Accessed 2018] [4] uptothetrend.blogspot.com, "Smart contract - Hợp đồng thông minh, đặc điểm tiềm ứng dụng," [Online] Available: https://uptothetrend.blogspot.com/2018/07/smartcontract-dac-diem-va-tiem-nang-ung-dung.html [Accessed 2018] [5] cafebitcoin.info, "DApp (Ứng dụng phân cấp – Ứng dụng phi tập trung) gì?," [Online] Available: https://cafebitcoin.info/huong-dan/dapp-la-gi/ [6] ethereum, "Installation Instructions for Ubuntu," [Online] Available: https://github.com/ethereum/goethereum/wiki/Installation-Instructions-for-Ubuntu [Accessed 16 2018] [7] S Eloudrhiri, "Create a private Ethereum blockchain with IoT devices," [Online] Available: https://chainskills.com/2017/02/24/create-a-private-ethereumblockchain-with-iot-devices-16/ [Accessed 2018 10] [8] M Protocol, "How To: Create Your Own Private Ethereum Blockchain," [Online] Available: https://medium.com/mercuryprotocol/how-to-create-your-ownprivate-ethereum-blockchain-dad6af82fc9f [Accessed 27 2018] [9] Ethereum., "Solidity," [Online] Available: https://solidity.readthedocs.io/en/v0.4.20/# [Accessed 15 2018] [10] with P Humiston, "Build Your First Ethereum Smart Contract Solidity — Tutorial," [Online] Available: https://codeburst.io/build-your-first-ethereum-smart-contractwith-solidity-tutorial-94171d6b1c4b [Accessed 2018] [11] Gregory, "The Ultimate Ethereum Dapp Tutorial (How to Build a Full Stack Decentralized Application Step-By-Step)," [Online] Available: http://www.dappuniversity.com/articles/theultimate-ethereum-dapp-tutorial [Accessed 17 2018] [12] Ethereum, "web3.js - Ethereum JavaScript API," [Online] Available: https://web3js.readthedocs.io/en/1.0/web3-ethcontract.html [Accessed 18 2018] [13] [14] I Bashir, Mastering Blockchain, 2017 G M News, "IBM VÀ WALMART SỬ DỤNG CÔNG NGHỆ BLOCKCHAIN ĐỂ TRUY XUẤT NGUỒN GỐC THỊT LỢN TRUNG QUỐC," [Online] Available: http://agro.gov.vn/vn/tID24695_IBM-va-Walmart-su-dung-congnghe-blockchain-de-truy-xuat-nguon-goc-thit-lon-TrungQuoc.html [Accessed 18 2018] ... thơng tin cà phê Xây dựng website hỗ trợ tra cứu quản lý thông tin cà phê − Xây dựng app để xem thông tin cà phê Đối tượng phạm vi nghiên cứu ❖ Đối tượng nghiên cứu − Nền tảng Ethereum blockchain. .. tất thông tin lô hàng nhấn nút submit - Kịch phụ: Admin nhập thông tin không đầy đủ, thông tin sai Hệ thống hiển thị thông báo lỗi yêu cầu Admin nhập lại thông tin cho Quay lại bước Xem thông tin. .. cầu thân Các ứng dụng phi tập trung 1.4 1.4.1 - Ứng dụng phi tập trung gì? Ứng dụng phi tập trung, thường gọi dApp (Decentralized App) ứng dụng chạy tảng blockchain Hình 1.3: Ứng dụng phi tập

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

Từ khóa liên quan

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

Tài liệu liên quan