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.