Lilo ọrọ-ọrọ laileto nipa lilo apẹẹrẹ ti lotiri kan

Ni owurọ ọjọ kan Mo pade nkan kan nipa verifiable ID nọmba monomono lori awọn Waves Syeed blockchain.

Aworan gbogbogbo jẹ kedere, ṣugbọn ọna imuse kan pato kii ṣe. Diẹ ninu awọn koodu, awọn ibuwọlu, kini, nibo, kilode?

Ọpọlọpọ awọn ijumọsọrọ pẹlu onkọwe ti ọrọ-ọrọ, bi abajade, o ṣee ṣe lati darapo ọgbọn iyaworan (ti a ṣe ni PHP) pẹlu algorithm kan fun gbigba nọmba ID kan.

  1. Ni ibere ti awọn figagbaga / yika, a beere awọn akọkọ apa ti awọn koodu (R-koodu) lati Oracle.

    Ni akoko yii, ko si alaye nipa nọmba awọn oṣere, nọmba awọn aaye ẹbun, iwọn awọn sisanwo ere, tabi aye ti lotiri ni gbogbogbo. Ọrọ-ọrọ naa, nipasẹ idunadura kan, n ṣe koodu ID ti ara ẹni, eyiti o le ṣee lo ni ẹẹkan ati nikan nipasẹ awọn ti o beere. Nipa ọna, R-koodu le jẹ “ra” (itumọ idiyele ti idunadura ibeere + isanpada si ọrọ-ọrọ fun idunadura esi, eyi jẹ iye ti o to $ 0.015 ni oṣuwọn lọwọlọwọ, koodu funrararẹ ti funni ni ọfẹ ọfẹ. ) ni igba pupọ ni ilosiwaju, ki o má ba duro fun ọjà ti idunadura esi nigbamii. Mo ṣe ifipamọ imudojuiwọn nigbagbogbo ni ibi ipamọ data.

  2. Idije naa nigbagbogbo ṣiṣe ni awọn bulọọki 60 ti blockchain Syeed Waves, ni akoko ti o fẹrẹ to wakati kan. Awọn figagbaga ti wa ni ka pari ati ki o ni pipade ti o ba ti lẹhin 1 ohun amorindun nibẹ ni o wa ni o kere meji tiketi ni o, bibẹkọ ti awọn figagbaga akoko aṣayan iṣẹ-ṣiṣe tesiwaju fun awọn tókàn 60 ohun amorindun.
  3. Lẹsẹkẹsẹ lẹhin ti awọn figagbaga tilekun, a ina ati ki o rán a idunadura ọjọ (a tun san a Igbimo ti to $ 0.005 fun o), ti o ba wulo, orisirisi awọn, ninu eyi ti gbogbo awọn ipo ti awọn iyaworan ti wa ni gba silẹ ati awọn ẹya paṣẹ akojọ ti awọn ẹrọ orin (tiketi) lati eyi ti a nilo lati yan awọn bori.
  4. Ni ipele yii, a ti ni apakan akọkọ ti koodu (R-koodu) pẹlu ID ọjọ idunadura (TXID). A fi wọn ranṣẹ fun ibuwọlu si ọrọ-ọrọ ni irisi concatenation (R-koodu + TXID), lẹẹkansi a san a Igbimo + biinu. Oracle sọwedowo data ti o gba fun iyasọtọ ati ohun-ini, ati ni idahun firanṣẹ apakan keji ti koodu (S-koodu) ni ọna kika sha256, eyiti o jẹ aaye ibẹrẹ fun olupilẹṣẹ nọmba ID.
  5. Lati gba nọmba ID kan ti yoo tọka nọmba ọkọọkan ti tikẹti ti o bori, a yipada koodu S lati inu data alakomeji sha256 si aṣoju hexadecimal (HEX). Lẹhinna lati okun HEX abajade, a gba nọmba kan. A gba iyoku ti pinpin nọmba abajade nipasẹ nọmba awọn tikẹti (all_tiketi) ati ṣafikun 1 si abajade (lati gba nọmba 1 ṣaaju all_tiketi). Bi abajade, a gba nọmba ni tẹlentẹle ti olubori.
  6. Ti, ni ibamu si awọn ipo ti iyaworan, ọpọlọpọ awọn bori wa, lẹhinna a tun ṣe awọn iṣẹ iṣaaju ni iye ti o dọgba si nọmba awọn aaye ẹbun. Ni idi eyi, kọọkan akoko ti a yọ kuro lati awọn akojọ a tiketi ti o ti gba tẹlẹ ati ki o din all_tiketi nipa 1, ati dipo ti S-koodu ti a tọkasi awọn ti tẹlẹ nọmba gba.

Jẹ ki a wo apẹẹrẹ gidi kan pato, idije No.. 119:

Lapapọ awọn tikẹti 7 (gbogbo_tiketi)
Iye owo tiketi 50 eyo (tẹtẹ)
Owo ere 10% (Ọya)

Gẹgẹbi awọn ipo ti lotiri, 30% lọ si owo ere, i.e. ninu apere yi, 2 tiketi gbọdọ gba a joju, awọn iwọn ti eyi ti wa ni iṣiro ni ibamu si awọn agbekalẹ (tẹtẹ * all_tickets-Ọya)/2.

1. R-koodu ti o gba: RdbAiAhKhveAtR4eyTKq75noMxdcEoxbE6BvojJjM13VE

2. Lẹhin ti awọn figagbaga tilekun, a ni akojọ kan ti tiketi ni awọn fọọmu ti orisii: nọmba + adirẹsi (adirẹsi ti apamọwọ lati eyi ti owo fun ikopa ninu awọn figagbaga ti a ṣe). Jọwọ ṣe akiyesi pe awọn adirẹsi le tun ṣe, eyi tumọ si pe alabaṣe kan ra awọn tikẹti pupọ si idije kan;

Ti firanṣẹ ọjọ iṣowo: 82JTMzhHM5xEA2fQ9Qscd5QAJU3DAd8nShLjdVHTer5S

3. S-koodu ti o beere: FTF3uRyaa4F2uAyD6z5a3CNbTXbQLc7fSR6CFNVjgZYV pẹlu asọye (R-koodu + TXID):
RdbAiAhKhveAtR4eyTKq75noMxdcEoxbE6BvojJjM13VE 82JTMzhHM5xEA2fQ9Qscd5QAJU3DAd8nShLjdVHTer5S

4. S-koodu ti o gba: Ri89jHB4UXZDXY6gT1m4LBDXGMTaYzHozMk4nxiuqVXdC

5. Awọn olubori ti pinnu.

6. Awọn sisanwo ti a firanṣẹ

Bi abajade, a ni igbasilẹ igbese-nipasẹ-igbesẹ ti ilana iyaworan ẹbun ni blockchain pẹlu agbara lati ṣayẹwo nigbakugba. O fẹrẹ jẹ pe ko ṣee ṣe fun oluṣeto lati ṣe afọwọyi awọn abajade, o kere ju, kii yoo ṣee ṣe lati ṣe laisi akiyesi.

determine the winner № 1

All_tickets:
Index: 1 Ticket:139
Index: 2 Ticket:141
Index: 3 Ticket:143
Index: 4 Ticket:145
Index: 5 Ticket:147
Index: 6 Ticket:149
Index: 7 Ticket:151

1. bin -> hex ( bin2hex(sha256(S-code)) ): Ri89jHB4UXZDXY6gT1m4LBDXGMTaYzHozMk4nxiuqVXdC -> 0xdaf5802953dcb27f89972e38e8900b898733f6a613e6e1c6c5491362c1832596

2. hex -> gmp number: 0xdaf5802953dcb27f89972e38e8900b898733f6a613e6e1c6c5491362c1832596 -> 99037963059744689166154019807924045947962565922868104113173478160267437352342

3. gmp -> modulo (mod=7): 99037963059744689166154019807924045947962565922868104113173478160267437352342 -> 4

4. modulo -> ticket: 4 -> 145

determine the winner № 2

All_tickets:

Index: 1 Ticket:139
Index: 2 Ticket:141
Index: 3 Ticket:143
Index: 4 Ticket:147
Index: 5 Ticket:149
Index: 6 Ticket:151

1. bin -> hex ( bin2hex(sha256(previous hex)) ): daf5802953dcb27f89972e38e8900b898733f6a613e6e1c6c5491362c1832596 -> 0x9560e77525e9ea2db92cdb8484dc52046ccafac7c719b8859ff55f0eb92834a0
2. hex -> gmp number: 0x9560e77525e9ea2db92cdb8484dc52046ccafac7c719b8859ff55f0eb92834a0 -> 67565829218838067182838043983962684143266386786567427968312120473742580659360
3. gmp -> modulo (mod=6): 67565829218838067182838043983962684143266386786567427968312120473742580659360 -> 1
4. modulo -> ticket: 1 -> 139

End.

orisun: www.habr.com

Fi ọrọìwòye kun