Kết quả cài đt ạng ockchain và chạ ứng dụng

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Ứng dụng công nghệ chuỗi khối hỗ trợ hoạt động kinh doanh của ngành điện002 (Trang 59)

CHƢƠNG 3 : THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ

3.2. Kết quả cài đt ạng ockchain và chạ ứng dụng

3.2.1. Mạng Hyperledger Fabric

Cài đặt mạng

Hình 3.5. Cài đặt mạng.

Mô tả:

Model File: định nghĩa các đối tượng tham gia vào mạng và các tài nguyên trong mạng.

Script file: chain code mô tả giao dịch ghi chỉ số.

Access Control: định nghĩa quyền của các đối tượng tham gia vào mạng có thể tương tác với tài nguyên nào.

Query file: định nghĩa các hàm truy v n thông tin phục vụ tầng API.

3.2.2. Tầng API

Hình 3.7. Cài đặt API từ mạng blockchain. Mô tả:

API CHISO CONGTO: mô tả các hàm tương tác dữ liệu với chỉ số công tơ của khách hàng.

API DANHMUC CONGTO: khai báo công tơ cho khách hàng. API EVN USER: khai báo nhân viên ghi chỉ số.

API KHACH HANG: khai báo thông tin khách hàng.

API Query: mô tả các hàm API phục vụ các ứng dụng truy v n dữ liệu. API System: mô tả các hàm l y lịch sử giao dịch trong hệ thống blockchain. transGhiChiSo: api gọi tới chaincode xử lý giao dịch cập nhật thông tin chỉ số điện.

3.2.3. iểu đồ Usecase tổng quát

Hình 3.8. Biểu đồ Usecase tổng quát. Mô tả các usecase:

T n Usecase

Tác

nh n Tiền điều kiện

Thông tin

đầu vào Thông tin đầu ra

Tra cứu thông tin Khách hàng, nhân viên Khách hàng hoặc nhân viên tìm kiếm thông tin theo mã khách hàng Mã khách hàng cần tìm kiếm Thông tin về khách hàng bao gồm thông tin cá nhân và thông tin chỉ số sử dụng điện Đăng nhập Nhân viên, quản lý Người dùng vào chương trình Tên tài khoản và mật khẩu

Thông tin nhân viên đăng nhập Quản trị thông tin khách hàng Quản lý Quản lý chọn chức năng Quản trị thông tin khách hàng Thông tin về khách hàng cần nhập Khách hàng mới được tạo và lưu vào

blockchain Quản trị thông tin nhân viên Quản lý Quản lý chọn chức năng Quản trị thông tin nhân viên

Thông tin về nhân viên cần nhập

Nhân viên mới được tạo và lưu vào blockchain

Nhập chỉ số Nhân viên Nhân viên chọn chức năng Nhập chỉ số Thông tin khách hàng cần nhập chỉ số Chỉ số mới của khách hàng được nhập và lưu vào blockchain

3.2.4. Chức năng đăng nhập

Hình 3.9. Chức năng đăng nhập.

Mô tả: Chức năng đăng nhập phục vụ cho các đối tượng là nhân viên đi ghi chỉ số hoặc quản lý. Nhân viên đi ghi chỉ số sử dụng các chức năng có trong chương trình để cập nhật thông tin khách hàng và thông tin về chỉ số điện sử dụng hàng tháng. Đối tượng là quản lý có nhiệm vụ quản lý thông tin của nhân viên đi ghi chỉ số, đồng thời có thể tra cứu thông tin khách hàng.

K ch ản hoạt động:

Tên Usecase: Đăng nhập.

Tác nhân chính: Nhân viên, quản lý.

*) Chu i sự kiện chính: 1. Hệ thống hiển thị giao diện đăng nhập.

2. Người dùng nhập tên đăng nhập và mật khẩu.

3. Hệ thống kiểm tra và xác nhận thông tin đã đăng nhập. 4. Hệ thống báo đăng nhập thành công.

5. Hiển thị giao diện chính của hệ thống.

* Ngoại lệ: 1. Hệ thống thông báo thông tin đăng nhập sai và yêu cầu nhập lại hoặc liên hệ với quản trị.

3.2.5. Màn hình chính và menu chức năng

Hình 3.10. Màn hình chính.

Mô tả: Màn hình chính gồm màn hình mô tả thông tin ứng dụng và cây menu các chức năng thao tác trong chương trình. Menu gồm các chức năng:

- Dashboard: màn hình chính.

- Quản trị nhân viên ghỉ chỉ số: quản lý thông tin của nhân viên đi ghi chỉ số điện. - Quản trị thông tin khách hàng: quản lý thông tin khách hàng sử dụng điện. - Nhập chỉ số công tơ ghi chỉ số: nhập liệu thông tin chỉ số công tơ của khách hàng định kỳ theo tháng.

3.3.6. Chức năng Quản trị nhân viên ghi ch số

Mô tả: Chức năng cho phép người quản lý cập nhật thông tin của nhân viên ghi chỉ số, bao gồm các thao tác xem, thêm, sửa, xóa dữ liệu.

K ch ản hoạt động:

Tên Usecase: Quản trị nhân viên ghi chỉ số.

Tiền điều kiện Quản lý đã đăng nhập và chọn chức năng Quản trị nhân viên ghi chỉ số.

Tác nhân chính: Quản lý. *) Chu i sự kiện chí

nh:

1. Hệ thống hiển thị giao diện Quản trị nhân viên. 2. Quản lý nhập liệu các thông tin về nhân viên.

3. Hệ thống kiểm tra và xác nhận thông tin nhân viên hợp lệ. 4. Hệ thống báo Cập nhật thành công.

5. Cập nhật lại danh sách nhân viên đang được hiển thị trên lưới.

* Ngoại lệ: 1. Hệ thống thông báo tên đăng nhập đã tồn tại. 1.1 Quản lý nhập lại tên đăng nhập của nhân viên.

Giao d ch sinh ra: là chu i JSON gồm các thông tin: $class: kiểu đối tượng dữ liệu được tương tác. resources: dữ liệu đầu vào.

targetRegistry: đối tượng dữ liệu.

transactionId: mã giao dịch được sinh ra, phục vụ việc tra cứu lịch sử giao dịch. timestamp: thời điểm giao dịch.

{ "$class": "org.hyperledger.composer.system.AddParticipant", "resources": [ { "$class": "vn.com.evn.blnetwork.EVN_USER", "idUser": "0001",

"hoTen": "Đinh Đức Anh", "tenDangNhap": "anhdd", "matKhau": "123456", "bphan": "BP_GHICHISO" } ], "targetRegistry": "resource:org.hyperledger.composer.system.ParticipantRegistry#vn.com.evn.blnetwork.EVN_USER", "transactionId": "cd69de4b1fa1678ff04b6bf7dbf4ca26b71c669268ff25f5e6a0f1fb96d4f6de", "timestamp": "2019-04-15T08:46:42.844Z" }

3.2.7. Chức năng Quản trị thông tin khách hàng

Hình 3.12. Chức năng Quản trị thông tin khách hàng.

Mô tả: Chức năng cho phép người quản lý cập nhật thông tin của khách hàng sử dụng điện, bao gồm các thao tác xem, thêm, sửa, xóa dữ liệu.

K ch ản hoạt động:

Tên Usecase: Quản trị thông tin khách hàng.

Tiền điều kiện Quản lý đã đăng nhập và chọn chức năng Quản trị thông tin khách hàng.

Tác nhân chính: Quản lý.

*) Chu i sự kiện chính: 1. Hệ thống hiển thị giao diện Quản trị thông tin khách hàng.

2. Quản lý nhập liệu các thông tin về khách hàng. 3. Hệ thống kiểm tra và xác nhận thông tin khách hang hợp lệ.

4. Hệ thống báo Cập nhật thành công.

5. Cập nhật lại danh sách khách hàng đang được hiển thị trên lưới.

* Ngoại lệ: 1. Hệ thống thông báo yêu cầu nhập đầy đủ thông tin. 1.1 Quản lý nhập đầy đủ thông tin của khách hàng.

Giao d ch sinh ra: là chu i JSON gồm các thông tin: $class: kiểu đối tượng dữ liệu được tương tác. resources: dữ liệu đầu vào.

targetRegistry: đối tượng dữ liệu.

transactionId: mã giao dịch được sinh ra, phục vụ việc tra cứu lịch sử giao dịch. timestamp: thời điểm giao dịch.

{ "$class": "org.hyperledger.composer.system.AddParticipant", "resources": [ { "$class": "vn.com.evn.blnetwork.KHACH_HANG", "idKhachHang": "0002", "maKhachHang": "0002",

"tenKhachHang": "Nguyễn Tiến Anh", "diaChiKH": "anhnt", "tyLeBatThuong": 40 } ], "targetRegistry": "resource:org.hyperledger.composer.system.ParticipantRegistry#vn.com.evn.blnetwork.KHACH_HANG", "transactionId": "4d870b8b7afc3381b8d7e1f062273dbb6af1e5df9a5dbce16b62cff4d82e3532", "timestamp": "2019-04-15T08:47:59.703Z" } 3.2.8. Chức n ng Nhập ch số công tơ

Hình 3.13. Chức năng Nhập chỉ số công tơ.

Mô tả: Chức năng cho phép nhân viên nhập liệu thông tin chỉ số công tơ của khách hàng định kỳ theo tháng.

K ch ản hoạt động:

Tên Usecase: Nhập chỉ số công tơ. Tác nhân chính: Nhân viên.

*) Chu i sự kiện chính: 1. Hệ thống hiển thị giao diện Nhập chỉ số công tơ. 2. Người dùng nhập mã khách hang để tìm kiếm. 3. Hệ thống hiển thị thông tin khách hàng.

4. Nhân viên chọn tháng năm ghi chỉ số và nhập thông tin chỉ số mới của khách hàng.

5. Người dùng n Cập nhật.

6. Hệ thống báo Cập nhật thành công.

7. Hệ thống cập nhật lại thông tin của khách hàng đang hiển thị trên lưới.

* Ngoại lệ: 1. Hệ thống thông báo không tìm th y thông tin khách hàng.

1.1 Hệ thống xóa trắng thông tin khách hàng đang có trên lưới.

1.2 Nhân viên nhập lại mã khách hàng để tìm kiếm. 2. Hệ thống thông báo thông tin chỉ số không hợp lệ. 2.1 Nhân viên nhập lại thông tin chỉ số mới.

Chaincode:

/**

* transaction Ghi chi so

* @param{vn.com.evn.blnetwork.transGhiChiSo} transGhiChiSo * @transaction

*/

// Hàm nhận tham số là đối tượng transGhiChiSo asyncfunction transGhiChiSo(thongTinChiSo) { let ok = true;

// Bước 1: l y thông tin khách hàng

let maKH = thongTinChiSo.asset.maKhachHang;

let batThuong = thongTinChiSo.asset.congTo.khSuDung.tyLeBatThuong; let checkChiSo = await query('traCuuChiSo_TheoKH', { "makh": maKH }); console.log('checkChiSo', checkChiSo, batThuong);

// Bước 2: kiểm tra thông tin nhập vào có hợp lệ hay không

// Chỉ số mới nhập vào phải th a mãn điều kiện không được lớn hơn chỉ số // cũ * tỉ lệ b t thường

for (let index = 0; index < checkChiSo.length; index++) { const element = checkChiSo[index];

if ((element.chiSoHienTai * (100 + batThuong) / 100) < thongTinChiSo.chiSoMoi) { console.log('NOT OK');

ok = false; return; } }

// Bước 3: cập nhật thông tin và trả kết quả if (ok) {

console.log('OK');

// Cập nhật thông tin mới vào bảng CHISO CONGTO. const oldValue = thongTinChiSo.asset.chiSoHienTai; // Các thông tin cập nhật gồm: chỉ số mới, tháng, năm.

thongTinChiSo.asset.chiSoHienTai = thongTinChiSo.chiSoMoi; thongTinChiSo.asset.thang = thongTinChiSo.thang;

thongTinChiSo.asset.nam = thongTinChiSo.nam;

const assetRegistry = await getAssetRegistry('vn.com.evn.blnetwork.CHISO_CONGTO'); // Cập nhật.

await assetRegistry.update(thongTinChiSo.asset); }

else {

console.log('BAT THUONG'); }

Giao d ch sinh ra: là chu i JSON gồm các thông tin: $class: kiểu đối tượng dữ liệu được tương tác.

asset: chỉ định đối tượng cụ thể nào tham gia giao dịch, trong trường hợp này là CHISO CONGTO có ID = 135.

chiSoMoi: chỉ số tiêu thụ điện mới công tơ .

thang: tháng thực hiện ghi nhận chỉ số tiêu thụ điện. nam: năm thực hiện ghi nhận chỉ số tiêu thụ điện.

transactionId: mã giao dịch được sinh ra, phục vụ việc tra cứu lịch sử giao dịch. timestamp: thời điểm giao dịch.

{ "$class": "vn.com.evn.blnetwork.transGhiChiSo", "asset": "resource:vn.com.evn.blnetwork.CHISO_CONGTO#5135", "chiSoMoi": "99999", "thang": "1", "nam": "2019", "transactionId": "9f44e5e6153a70f389c40346d9b073ad401281d8b6af32b0ba90d6615aaebaf5", "timestamp": "2019-04-15T09:23:16.728Z" }

3.2.9. Chức năng Tra cứu thông tin khách hàng – ch số

Hình 3.14 Chức năng Tra cứu thông tin khách hàng – chỉ số.

Mô tả: Chức năng cho phép khách hàng sử dụng điện có thể tra cứu thông tin của mình thông qua mã khách hàng.

K ch ản hoạt động:

Tên Usecase: Đăng nhập.

Tác nhân chính: Nhân viên, khách hàng.

*) Chu i sự kiện chính: 1. Hệ thống hiển thị giao diện Tra cứu thông tin khách hàng – chỉ số.

2. Người dùng nhập mã khách hàng cần tìm kiếm. 3. Hệ thống báo tìm kiếm thành công.

4. Hiển thị giao diện thông tin của khách hàng.

* Ngoại lệ: 1. Hệ thống thông báo không tìm th y thông tin theo mã khách hàng.

3.3. Kiể thử phần ề

3.3.1. Kịch bản kiểm thử chức năng Quản trị nhân viên ghi ch số

Mô tả: kiểm thử chức năng Quản trị nhân viên ghi chỉ số nh m đảm bảo thông tin khi người dùng nhập vào được lưu vào blockchain.

Điều kiện tiền đề: người dùng đã đăng nhập vào hệ thống và đã vào chức năng Quản trị nhân viên ghi chỉ số.

Các ƣớc thực hiện:

- Bước 1: người dùng nhập đẩy đủ thông tin nhân viên trên giao diện gồm: tên đăng nhập, mật khẩu, họ tên, bộ phận.

Tên đăng nhập: anhdd . Mật khẩu: 123456 .

Bộ phận: Bộ phận ghi chỉ số . Họ tên: Đinh Đức Anh .

- Bước 2: người dùng n Ghi dữ liệu.

Kết quả ong đợi: thông tin nhân viên được ghi vào blockchain.

Kết quả thực tế: thông tin được ghi vào blockchain và có thể truy cập thông qua API.

Hình 4.15. Kết quả thực tế khi ghi nhận thông tin nhân viên khi truy v n qua API.

3. . Kịch bản kiểm thử chức năng Quản trị thông tin khách hàng

Mô tả: kiểm thử chức năng Quản trị thông tin khách hàng nh m đảm bảo thông tin khi người dùng nhập vào được lưu vào blockchain.

Điều kiện tiền đề: người dùng đã đăng nhập vào hệ thống và đã vào chức năng Quản trị thông tin khách hàng.

Các ƣớc thực hiện:

- Bước 1: người dùng nhập đẩy đủ thông tin khách hàng trên giao diện gồm: tên khách hàng, địa chỉ, tỷ lệ b t thường.

Tên khách hàng: Vũ Anh Khoa . Địa chỉ: Hà Đông .

Tỷ lệ b t thường: 30.

- Bước 2: người dùng n Ghi dữ liệu.

Kết quả ong đợi: thông tin khách hàng được ghi vào blockchain.

Kết quả thực tế: thông tin được ghi vào blockchain và có thể truy cập thông qua API.

Hình 4.16. Kết quả thực tế khi ghi nhận thông tin khách hàng khi truy v n qua API.

3.3.3. Kịch bản kiểm thử chức năng Nhập ch số công tơ

Mô tả: kiểm thử chức năng nhập chỉ số công tơ nh m đảm bảo thông tin khi người dùng nhập vào được lưu vào blockchain.

Điều kiện tiền đề: người dùng đã đăng nhập vào hệ thống và đã vào chức năng Nhập chỉ số công tơ.

Các ƣớc thực hiện:

- Bước 1: người dùng nhập đẩy đủ thông tin chỉ số công tơ trên giao diện gồm: tháng năm, mã khách hàng.

Mã khách hàng: 0001 .

- Bước 2: người dùng n Enter để hệ thống tìm kiếm khách hàng. - Bước 3: người dùng nhập chỉ số mới.

Chỉ số mới: 100.

Kết quả ong đợi: thông tin chỉ số mới được ghi vào blockchain.

Kết quả thực tế: thông tin được ghi vào blockchain và có thể truy cập thông qua API.

Hình 4.17. Kết quả thực tế khi ghi nhận chỉ số công tơ khi truy v n qua API.

Kết uận kiể thử: các chức năng trong chương trình đã hoạt động đúng theo kịch bản đề ra, ghi nhận được vào blockchain và để khai thác dữ liệu các ứng dụng bên ngoài có thể sử dụng API được cung c p để truy v n.

KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN Những kết quả đạt đƣợc của uận v n

Đưa ra được bài toán mà ứng dụng được những ưu điểm của công nghệ blockchain mang lại và áp dụng cho ngành Điện. Đồng thời nghiên cứu và áp dụng nền tảng Hyperledger Fabric để xây dựng mạng blockchain phục vụ công tác quản trị thông tin và ghi chỉ số cho khách hàng sử dụng điện.

Luận văn đã thực hiện cài đặt mạng blockchain và triển khai ứng dụng web để cho nhân viên ghi chỉ số điện cũng như khách hàng sử dụng. Phần mềm đưa vào giúp tăng cường tính công khai minh bạch của dữ liệu chỉ số, giúp khách hàng có thể tra cứu và tin tưởng vào thông tin được cung c p.

Luận văn còn có khả năng phát triển trong tương lai, có thể giải quyết các bài toán khác trong ngành điện ví dụ như: truy xu t nguồn gốc công tơ giúp bộ phận quản lý lẫn khách hàng có thể kiểm tra được xu t xứ và vòng đời sử dụng của công tơ, bài toán về trao đổi năng lượng giữa các hộ dân sử dụng năng lượng điện mặt trời, vv…

Hƣớng phát triển của uận v n

Tiếp tục triển khai mở rộng, hoàn thiện các chức năng quản trị như thống kê, báo cáo, cảnh báo trường hợp sử dụng điện hoặc ghi chỉ số điện có sản lượng b t thường. Hiệu chỉnh lại giao diện thân thiện, dễ sử dụng đối với người dùng.

Tiếp tục nghiên cứu mạng blockchain, cụ thể là Hyperledger để có thể ứng dụng được nhiều tính năng của nền tảng này cung c p như chia kênh, cài đặt các chứng chỉ cho các thành viên tham gia .

TÀI LIỆU THAM KHẢO Tiếng Anh

1. Joseph J. Bambara, Paul R. Allen (2018), A Practical Guide to Developing Business, Law, and Technology Solutions, Mc Graw Hill.

2. Omid Malekan (2018),The tory of the Blockchain: Beginner’s Guide to the Technology That Nobody Understands, Triple Smoke Stack.

3. Andreas M. Antonopoulos (2014), Mastering Bitcoin: Unlocking Digital Cryptocurrencies, O'Reilly Media, United States of America.

4. Christian Cachin (2016), Architecture of the Hyperledger Blockchain Fabric,

IBM Research Zurich.

5. Hyperledger Architecture, Volume 1 (2017). Retrieved from https://www.hyperledger.org/wp-

content/uploads/2017/08/Hyperledger_Arch_WG_Paper_1_Consensus.pdf.

6. Lance Feagan, Hyperledger Fabric Peer Design (2017), IBM China Research Lab.

7. A Blockchain Platform for the Enterprise (2019). Retrieved from https://hyperledger-fabric.readthedocs.io/en/release-1.4/

8. Nitin Gaur, Luc Desrosiers, Petr Novotny, Venkatraman Ramakrishna, Anthony O'Dowd, Salman A. Baset (2018), Hands-On Blockchain with Hyperledger: Building decentralized applications with Hyperledger Fabric and Composer, Packt.

9. J. Sousa, A. Bessani, and M. Vukolić 2018 , A Byzantine fault-tolerant

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Ứng dụng công nghệ chuỗi khối hỗ trợ hoạt động kinh doanh của ngành điện002 (Trang 59)

Tải bản đầy đủ (PDF)

(74 trang)