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ả

Trường:

Đại học Hoa Sen 4.8 K tài liệu

Thông tin:
13 trang 1 tháng trước

Bình luận

Vui lòng đăng nhập hoặc đăng ký để gửi bình luận.

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ả

33 17 lượt tải Tải xuống
Đầ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: ( chuỗi khối của file main là public=> vì các user đều có khả mở file main.py
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 thể đổi đề tự 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)
Bấm login=> xem CK=>in CK
Trước khi nạp hay rút,
chuyển tiền thì đã 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 khối root chưa làm
cả đã có rồi
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?
những khối tạo ra lúc sau
thì chỉ được gọi tiếp theo
của khối root (khối root bắt
buộc phải có)
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. dụ khi A
chuyển tiền cho B số tiền $10, C biết 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
| 1/13

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