-
Thông tin
-
Quiz
Có bao nhiêu thành phần cần khi mã hóa 1 chuỗi khối? Lưu ở chỗ nào trong chương trình? - Tài liệu tham khảo | Đại học Hoa Sen
Có bao nhiêu thành phần cần khi mã hóa 1 chuỗi khối? Lưu ở chỗ nào trong chương trình? - Tài liệu tham khảo | Đại học Hoa Sen và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng, ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả
Thực Tập Nhận Thức (qa_) 50 tài liệu
Đại học Hoa Sen 4.8 K tài liệu
Có bao nhiêu thành phần cần khi mã hóa 1 chuỗi khối? Lưu ở chỗ nào trong chương trình? - Tài liệu tham khảo | Đại học Hoa Sen
Có bao nhiêu thành phần cần khi mã hóa 1 chuỗi khối? Lưu ở chỗ nào trong chương trình? - Tài liệu tham khảo | Đại học Hoa Sen và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng, ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả
Môn: Thực Tập Nhận Thức (qa_) 50 tài liệu
Trường: Đại học Hoa Sen 4.8 K tài liệu
Thông tin:
Tác giả:
Tài liệu khác của Đại học Hoa Sen
Preview text:
Đầu tiên mở file cho sẵn, tạo NEW PROJECT, kéo các file đã lưu về vào
project mới tạo => sau khi đã có các file trên pycharm=> mở main.py ( run bị
lỗi)=> vào terminal => nhập pip install pyqt6 => ( hiện ra qt designer là đúng)
Nếu thầy có yêu cầu cập nhật trên qt designer => open file gd_user ( trong project vừa tạo)
Sau khi cập nhật ở qt designer xong=> về lại pycharm vào main.py=> teminal
( run thử) =>nhập pyuic6 -x gd_user.ui -o gd_user.py A. Lý thuyết
1. Có bao nhiêu thành phần cần khi mã hóa 1 chuỗi khối? Lưu ở chỗ nào trong chương trình?
Xem ở SoGiaoDich ( dò từ dòng 90 trở đi)
có 5 thành phần (dl1, dl2, dl3, dl4, dl5) được lưu ở dòng thứ 117 (tao_gt_bam, file hiện
đại) -> thực hiện giao dịch trực tiếp thử 1 giao dịch và chỉ ra
2. Loại chuỗi khối mà chương trình đang sử dụng là loại public, private, hay
permissioned ( ghi ko đọc)? Tại sao? Vì các user đều có thể xem khối của người khác tạo
ra , mở tk login hai cái, chứg minh chứng đọc trước a sẽ thấy dc a sẽ thay b sinh khối.
- Public: vừa ghi vừa đọc được, ai cũng có thể nạp và rút tiền được
- Private: chỉ đọc được không ghi được
- Permissioned: 1 bộ phận để ghi còn lại đa phần đọc
Thực hành: mở file main.py ( chuỗi khối của file main là public=> vì các user đều có khả
năng xem khối của người khác tạo ra và đồng thời tạo ra khối.( tài khoản B sẽ thấy được
TK A sinh khối sau khi bấm in chuỗi khối bên TK B
Tính năng ghi là bản thân TK B cũng có khả năng sinh khối
Bấm vào đăng nhập, để chứng minh tính đọc ( B sẽ thấy được A sinh khối):
Thực hiện: nạp tiền vào A Số tiền sẽ =32
Sao đó qua form của B => in chuỗi khối
Tính năng ghi là bản thân TK B cũng có khả năng sinh khối
Vào rút tiền: nhập số tiền muốn rút=> bấm Xem CK và bấm in chuoi khoi
3. Khối root có giá trị “băm hiện tại”, “băm trước đó” là gì? Khối này được tạo ra khi nào? Vào file hien _dai.py
Khối root ( khối khởi tạo) là khối ban đầu chưa có một thao tác nào cả
Giá trị băm hiện tại: “0_0_0_0” 4 số 0 đại diện cho tài khoản nguồn - tài khoản đích
– thời gian phát sinh - số tiền giao dịch) => thầy có thể đổi đề tự dò theo để trả lời
Giá trị băm trước đó:
không có gì cả/chưa có giá trị băm`
Khoi_khoi_tao.bam_HT được tạo ra trước bất kỳ giao dịch nào của bất kì user nào trong hệ thống
=>chứng minh chưa làm gì đã có khối root ( khối khởi tạo) Trước khi nạp hay rút,
chuyển tiền thì đã có khối root,
được tạo ra bất kỳ 1 giao dịch nào
của bất kỳ user nào trên hệ thống
thì gọi là khối root vì chưa làm gì cả đã có rồi
Bấm login=> xem CK=>in CK
Và những khối tạo ra lúc sau
thì chỉ được gọi là tiếp theo
của khối root (khối root bắt buộc phải có)
B. Thao tác chuỗi khối
1. In ra chuỗi khối có 7 khối. Có bao nhiêu cách để in ra kết quả như vậy? Bấm 7 lần để ra khối giao dịch số 7 như hình
Có bao nhiêu cách : khối 1 có 1 cách chọn( tại vì chỉ có 1 mình nó) 1 khối mới có 3 cách,
khối 2 có 3 cách (nạp, rút, chuyển), tương tự các khối còn lại cũng có 3 cách => 3 =729 6
đối với hệ thống có 1 tài khoản
Cấm nạp khối lẻ/chẳn? -> Bao nhiêu cách
Tự thử xem có nhiều tài khoản thì có bao nhiêu cách?
2. Việc thêm khối ở thao tác “Nạp tiền” được lưu ở chỗ nào? Nếu muốn kiểm tra riêng
thao tác này, ta cần làm gì?
Việc thêm khối ở thao tác “Nạp tiền” được lưu ở chỗ nào trong chương trình
Mở: hiendai.py ở dòng self.themBlock(gd)
Để kiểm tra thao tác này: Sau đó tiền sẽ lên 12
Bấm vào xem CK=> bấm in CK
thì được 2 khoi giao dịch
Và để kiểm tra xem sau khi block chuỗi khối thì có còn in được các giao dịch phía sau
không.Quay lại hiendai.py => dòng 37=> “ Ctrl+/” để block chuỗi khối lại Sau khi block dòng 37
Run file main=> thực hiện tương tự
để nạp tiền, lúc này khi có thực hiện
bất kỳ thao tác nào thì chuỗi khối
cũng chỉ hiện duy nhất “ khoi giao
dich so 1” ( như hình bên) ``` `
3. Trong thao tác chuyển tiền, mấy khối được tạo ra? Giải thích trong chương trình. (bỏ)
1 khối hiện ra -> chạy lại chương trình -> mở chuỗi khối ra xem
4. Nếu muốn cập nhật phí rút tiền lên thành 5% phí giao dịch trong chuỗi khối, ta làm như thế nào?
(có thể yêu cầu thêm dòng thể hiện số tiền trog chuõi khối khi xem -> chỗ dòng gd dứoi
chỗ số tiền trong ngoặc thì thêm vô)
Thực hiện thao tác ở file hien_dai
Nếu muốn cập nhật phí rút tiền lên thành $2 phí giao dịch trong chuỗi khối, ta làm như thế nào?
Nếu muốn cập nhật phí nạp tiền lên thành 1% phí giao dịch trong chuỗi khối, ta làm như thế nào?
Nếu muốn cập nhật phí nạp tiền lên thành $1 phí giao dịch trong chuỗi khối, ta làm như thế nào?
5. Giả sử hiện chương trình có 4 khối bao gồm {khối 1, khối 2, khối 3, khối 4}. Nếu
muốn chèn một khối giữa khối 2 và khối 3 thì cần thao tác như thế nào?
Không thể chèn khối/ Không thêm được vì bản chất của chuỗi khối là không thay đổi
Dòng 135 append luôn thêm vào cuối chuỗi khối ( giữa khối 1 và 3 đang là khối 2)
Băm trước đó của ck thứ 5 = gt băm hiện tại của khối t4 -> không thể chèn vô khối t2 và t3 được
6. Tạo 3 tài khoản, tạo các thao tác tương ứng để in 10 chuỗi khối. Thầy sẽ chế đề:
Cấm nạp TK 2 (nghĩa là tk 2 chỉ được rút và chuyển)
TK 1 chỉ được chuyển tiền ....
C. Chỉnh sửa chương trình
1. Chỉnh hàm “In chuỗi khối” để ẩn thông tin các user không liên quan. Ví dụ khi A
chuyển tiền cho B số tiền $10, C biết là có giao dịch đó, nhưng ko được biết A chuyển
cho B. ( thực hiện trên file hiện đại) \n là viết tắt của newline
2. Nếu ko muốn ghi nhận khối mới trong thao tác “Nạp tiền”, ta phải làm thế nào?
Filter ko cho thêm khối với những giao dịch nạp tiền < $5.
Nếu không muốn ghi nhận khối mới thì : thêm block ở mục nạp tiền “ Ctrl + / ”
Filter ko cho thêm khối với những giao dịch nạp tiền < $5.
3. Chỉnh hàm sao cho phí giao dịch được thu ở 2 đầu tài khoản gửi và nhận trong thao tác
chuyển tiền. Việc thu phí được thực hiện đối với giao dịch > $1000