Mampiasa oracle kisendrasendra mampiasa ohatra amin'ny loteria

Indray maraina aho dia nahita lahatsoratra momba ny mpamokatra isa kisendrasendra azo voamarina ao amin'ny sehatra Waves blockchain.

Ny sary ankapobeny dia nazava, fa ny fomba fampiharana manokana dia tsy. Kaody sasany, sonia, inona, aiza, nahoana?

Fifanakalozan-kevitra maromaro niaraka tamin'ny mpanoratra ny oracle, vokatr'izany, dia azo natao ny nampifangaro ny lojikan'ny sary (napetraka amin'ny PHP) miaraka amin'ny algorithm hahazoana isa kisendrasendra.

  1. Amin'ny fanombohan'ny fifaninanana/fihodinana dia mangataka ny ampahany voalohany amin'ny kaody (R-code) avy amin'ny oracle izahay.

    Amin'izao fotoana izao, tsy misy fampahalalana momba ny isan'ny mpilalao, ny isan'ny loka, ny haben'ny fandoavana loka, na ny fisian'ny loteria amin'ny ankapobeny. Ny oracle, amin'ny alΓ lan'ny fifampiraharahana, dia mamoaka kaody kisendrasendra manokana, izay azo ampiasaina indray mandeha ihany ary ho an'ireo izay nangataka izany. Raha ny marina, ny R-code dia azo "novidina" (midika hoe ny vidin'ny fifanakalozana fangatahana + fanonerana ho an'ny oracle ho an'ny fifampiraharahana valiny, izany dia $ 0.015 eo ho eo amin'ny tahan'ny ankehitriny, ny kaody dia navoaka maimaim-poana ) imbetsaka mialoha, mba tsy hiandry ny fandraisana ny fifampiraharahana any aoriana. Nanao buffer kely nohavaozina tsy tapaka tao amin'ny angon-drakitra aho.

  2. Ny fifanintsanana matetika dia maharitra 60 sakana amin'ny sehatra blockchain Waves, amin'izao fotoana izao dia eo amin'ny adiny iray eo ho eo. Heverina ho vita sy mikatona ny fifanintsanana raha toa ka misy tapakila roa farafahakeliny ao aorian'ny bloc 1, raha tsy izany dia hitarina ny fotoana fiasan'ny fifaninanana ho an'ny bloc 60 manaraka.
  3. Avy hatrany aorian'ny fiafaran'ny fifanintsanana dia mamorona sy mandefa fifampiraharahana amin'ny daty izahay (mandoa komisiona eo amin'ny $0.005 eo ho eo ihany koa izahay), raha ilaina, maromaro, izay voarakitra an-tsoratra ny fepetra rehetra amin'ny sary ary lisitry ny mpilalao (ticket) izay ilaintsika hifidianana ireo mpandresy.
  4. Amin'ity dingana ity dia efa manana ny ampahany voalohany amin'ny kaody (R-code) isika miampy ny ID datin'ny fifanakalozana (TXID). Mandefa sonia amin'ny oracle amin'ny endrika concatenation (R-code + TXID) izahay, mandoa komisiona + tambin-karama indray izahay. Ny oracle dia manamarina ny angon-drakitra voaray momba ny maha-tokana sy ny maha-izy azy, ary ho setrin'izany dia mandefa antsika ny ampahany faharoa amin'ny kaody (S-code) amin'ny endrika sha256, izay toerana fiaingana ho an'ny mpamokatra isa kisendrasendra.
  5. Mba hahazoana isa kisendrasendra izay hanondro ny laharan'ny tapakila mpandresy, dia mamadika ny S-code avy amin'ny angona binary sha256 ho fanehoana hexadecimal (HEX). Avy eo amin'ny tady HEX vokatra dia mahazo isa isika. Mahazo ny ambiny amin'ny fizarana ny isa azo amin'ny isan'ny tapakila (all_tickets) ary ampiana 1 ny valiny (mba hahazoana ny isa 1 alohan'ny all_tickets). Vokatr'izany dia mahazo ny nomeraon'ny mpandresy izahay.
  6. Raha, araka ny fepetran'ny sary, misy mpandresy maromaro, dia mamerina ny asa teo aloha amin'ny vola mitovy amin'ny isan'ny loka. Amin'ity tranga ity, isaky ny manaisotra tapakila efa nandresy tamin'ny lisitra izahay ary mampihena ny tapakila rehetra amin'ny 1, ary raha tokony ho S-code dia manondro ny isa voaray teo aloha.

Andeha hojerentsika ohatra iray tena izy, fifaninanana No. 119:

Tontalin'ny tapakila 7 (ticket_all)
Vola madinika 50 ny tapakila (Bet)
Vidin'ny lalao 10% (Sarany)

Araka ny fepetran'ny loteria, ny 30% dia mandeha amin'ny vola loka, i.e. Amin'ity tranga ity, ny tapakila 2 dia tsy maintsy mahazo loka, ny haben'izy ireo dia kajy araka ny formula (Bet*all_tickets-Fee)/2.

1. Nahazo R-code: RdbAiAhKhveAtR4eyTKq75noMxdcEoxbE6BvojJjM13VE

2. Aorian'ny fiafaran'ny fifaninanana dia manana lisitr'ireo tapakila miendrika tsiroaroa izahay: laharana + adiresy (ny adiresin'ny kitapom-bola izay nanaovana ny fandoavana ny fandraisana anjara amin'ny fifaninanana). Mariho fa azo averina ny adiresy, midika izany fa nividy tapakila maromaro ho an'ny fifaninanana iray ny mpandray anjara iray; tsy voararan'ny fitsipika izany.

Daty nandefasana: 82JTMzhHM5xEA2fQ9Qscd5QAJU3DAd8nShLjdVHTer5S

3. Kaody S nangatahana: FTF3uRyaa4F2uAyD6z5a3CNbTXbQLc7fSR6CFNVjgZYV miaraka amin'ny fanehoan-kevitra (R-code + TXID):
RdbAiAhKhveAtR4eyTKq75noMxdcEoxbE6BvojJjM13VE 82JTMzhHM5xEA2fQ9Qscd5QAJU3DAd8nShLjdVHTer5S

4. Nahazo S-code: Ri89jHB4UXZDXY6gT1m4LBDXGMTaYzHozMk4nxiuqVXdC

5. Tapa-kevitra ny mpandresy.

6. Nandefa fandoavam-bola

Vokatr'izany dia manana firaketana an-tsoratra ny fomba fisarihana loka ao amin'ny blockchain izahay miaraka amin'ny fahafahana manamarina izany amin'ny fotoana rehetra. Saika tsy ho vitan’ny mpikarakara ny manodikodina ny vokatra, fara faharatsiny, tsy ho azo atao tsy ho voamarika intsony.

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.

Source: www.habr.com

Add a comment