2 – amaliy mashg’ulot Mavzu: BigData va Blokcheyn texnologiyalari. Tranzaksiyalar. Blockcheyn prototipini ishlab chiqish muhiti va tuzilishi


PoWning asosiy amalga oshirilishi


Download 0.78 Mb.
Pdf ko'rish
bet9/9
Sana18.06.2023
Hajmi0.78 Mb.
#1591555
1   2   3   4   5   6   7   8   9
Bog'liq
2-amaliy blokchain

PoWning asosiy amalga oshirilishi 
Qoida yuqorida aytib o'tilganga o'xshash bo'ladi: 
Oldingi blokning yechimi bilan xeshlanganda to‘rtta yetakchi nolga ega xesh hosil 
qiluvchi p sonini toping. 
1 /**
2 * Algoritmni oddiy tekshirish: p` sonini topish, chunki hash(pp`)
3 * 4 ni o'z ichiga oladi 
4 * bosh nollardan iborat, bu erda p - oldingi p - oldingi isbot va p` -
5 ta yangi 
6 *
7 * @param lastProofOfWork
8 * @return int
9 */
10 public int proofOfWork(int lastProofOfWork) {
11 int proof = 0;
12 while (!isProofValid(lastProofOfWork, proof)) {
13 proof++;
14 }
15 return proof;
16}
17
18 /**
19 * Isboti: xesh(lastProof, proof) tarkibida 4 ta bosh nol bormi 
20 *
21 * @param lastProof
22 * @param proof
23 * @return
24 */
25 private boolean isProofValid(int lastProof, int proof) { 
26
27 String guessString = Integer.toString(lastProof) + Inte- 
ger.toString(proof);
28 String guessHash = Hashing.sha256().hashString(guessString,
StandardCharsets.UTF_8).toString();
29 return guessHash.endsWith("0000");
30 } 
Algoritmning murakkabligini sozlash uchun biz bosh nol sonini o'zgartirishimiz 
mumkin. 


1.11 Nazorat savollari 
 
1) PyCharm muhiti nima uchun? 
2) PyCharm-da yangi loyiha yaratish uchun nima qilish kerak? 
3) Loyihaga uchinchi tomon ramkalarini qanday qo'shish mumkin? 
4) Genezis bloki nima? 
5) Ishni tasdiqlash algoritmi nima? 
1.12 Nazorat vazifasi 
 
1) PyCharm (yoki boshqa) vositalaridan foydalanib, familiyangiz (lotin tilida) nomi 
bilan loyiha yarating. Blokcheyn prototipining skeletini yarating, u quyidagilardan iborat: 
Blockchain sinfi, blok xeshini hisoblash va zanjirga blok qo'shish usullari. Usullar va 
o'zgaruvchilar nomlarida PIP identifikatoridan foydalaning (lotin tilida Familiyaning 
birinchi harflari, otasining ismi). 
2) Dastlabki blokda oldingi xeshni familiyangiz (lotin) bilan o'tkazing va aniqlik 
sifatida - [tug'ilgan kun-oy yili]. 
3) Isbot(dalil)ning tasdig'i sifatida - xeshning oxirida [tug'ilgan oy] mavjudligi. 
LR natijalarini kodlashning bir qator skrinshotlari va dastur natijalari shaklida 
taqdim eting: usullarni chaqirish va xeshni topishning maqsadli mezoniga muvofiq 
bajarilgan ish protokolining ishlashini isbotlash. 
Ilova komponentlari pip_ identifikatoridan boshlanadi. 

Download 0.78 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling