Iji okwu ọnụ na-enweghị usoro na-eji ihe atụ nke lọtrị

Otu ụtụtụ, ahụrụ m otu akụkọ gbasara ya generator nọmba random nwere ike ịnwapụta n'elu ikpo okwu Waves blockchain.

Foto niile doro anya, mana usoro mmejuputa a kapịrị ọnụ abụghị. Ụfọdụ koodu, mbinye aka, gịnị, ebee, gịnị kpatara?

Ọtụtụ ndụmọdụ ya na onye edemede nke okwu ahụ, n'ihi ya, ọ ga-ekwe omume ijikọta mgbanaka eserese (etinyere na PHP) na algọridim maka ịnweta nọmba enweghị usoro.

  1. Na mmalite nke asọmpi/gburugburu, anyị na-arịọ akụkụ mbụ nke koodu (R-koodu) site na oracle.

    N'oge a, enweghị ozi gbasara ọnụọgụ ndị egwuregwu, ọnụọgụ ebe a na-enweta ihe nrite, nha ụgwọ ihe nrite, ma ọ bụ ịdị adị nke lọtrị n'ozuzu. Okwu ọnụ, site na azụmahịa, na-ewepụta koodu enweghị usoro nkeonwe, nke enwere ike iji naanị otu ugboro na naanị ndị rịọrọ ya. Site n'ụzọ, R-koodu nwere ike "zụrụ" (nke pụtara na-eri nke arịrịọ azụmahịa + akwụ ụgwọ maka okwu maka azụmahịa nzaghachi, nke a bụ ego nke ihe dị ka $0.015 na ọnụego ugbu a, a na-enye koodu n'onwe ya n'efu. ) ọtụtụ ugboro tupu oge eruo, ka ị ghara ichere maka nnata nke azụmahịa nzaghachi mgbe e mesịrị. Emere m obere nchekwa na-emelite oge niile na nchekwa data.

  2. Asọmpi a na-adịkarị 60 blocks nke Waves platform blockchain, ugbu a ọ bụ ihe dịka elekere 1. A na-ewere asọmpi a ka emechara ma mechie ma ọ bụrụ na mgbe 60 blocks enwere opekata mpe tiketi abụọ na ya, ma ọ bụghị ya, a na-agbatị oge mmemme asọmpi maka ngọngọ 60 na-esote.
  3. Ozugbo asọmpi ahụ mechiri, anyị na-emepụta ma zipu azụmahịa ụbọchị (anyị na-akwụkwa ụgwọ ọrụ nke ihe dịka $ 0.005 maka ya), ọ bụrụ na ọ dị mkpa, ọtụtụ, nke a na-edekọ ọnọdụ niile nke eserese na ndepụta ndị egwuregwu nyere iwu (tiketi). nke anyị kwesịrị ịhọrọ ndị mmeri.
  4. N'oge a, anyị enweelarị akụkụ mbụ nke koodu (R-koodu) gbakwunyere ID ụbọchị azụmahịa (TXID). Anyị na-ezigara ha maka mbinye aka n'ọnụ okwu n'ụdị concatenation (R-koodu + TXID), ọzọ anyị na-akwụ ụgwọ ọrụ + ụgwọ. Oracle na-enyocha data enwetara maka ịdị iche na nke ya, na nzaghachi na-ezitere anyị akụkụ nke abụọ nke koodu (S-koodu) na usoro sha256, nke bụ mmalite maka onye na-emepụta nọmba random.
  5. Iji nweta nọmba enweghị usoro nke ga-egosi ọnụọgụ usoro nke tiketi mmeri, anyị na-atụgharị S-koodu site na ọnụọgụ ọnụọgụ abụọ sha256 gaa na nnọchite hexadecimal (HEX). Mgbe ahụ site na eriri HEX pụtara, anyị na-enweta nọmba. Anyị na-enweta nke fọdụrụ n'ime nkerisi nọmba site na ọnụ ọgụgụ nke tiketi (all_tiketi) ma tinye 1 na n'ihi (iji nweta nọmba 1 tupu all_tiketi). N'ihi ya, anyị na-enweta nọmba serial nke onye mmeri.
  6. Ọ bụrụ na, dị ka ọnọdụ nke eserese ahụ si dị, e nwere ọtụtụ ndị mmeri, mgbe ahụ, anyị na-emegharị ọrụ ndị gara aga na ego ha nhata na ọnụ ọgụgụ nke ebe nrite. Na nke a, oge ọ bụla anyị na-ewepụ na ndepụta a tiketi na-ama merie na-ebelata all_tiketi site 1, na kama S-koodu anyị na-egosi na aga nọmba natara.

Ka anyị leba anya n'otu ezigbo ọmụmaatụ, asọmpi No. 119:

Ngụkọta tiketi 7 (niile_tiketi)
Tiketi riri mkpụrụ ego 50 (Bet)
Ụgwọ egwuregwu 10% (ụgwọ)

Dị ka ọnọdụ nke lọtrị, 30% na-aga na ihe nrite, i.e. N'okwu a, tiketi 2 ga-anata ihe nrite, nke a na-agbakọ nha ya dịka usoro (Bet * All_tickets-Fee) / 2.

1. Koodu R enwetara: RdbAiAhKhveAtR4eyTKq75noMxdcEoxbE6BvojJjM13VE

2. Mgbe emechara asọmpi ahụ, anyị nwere ndepụta tiketi n'ụdị ụzọ abụọ: nọmba + adreesị (adreesị nke obere akpa nke ugwo maka itinye aka na asọmpi). Biko mara na enwere ike ikwugharị adreesị ọzọ, nke a pụtara na otu onye so na ya zụtara ọtụtụ tiketi maka otu asọmpi; iwu amachibidoghị nke a.

E zigara ụbọchị azụmahịa: 82JTMzhHM5xEA2fQ9Qscd5QAJU3DAd8nShLjdVHTer5S

3. Koodu S-arịọrọ: FTF3uRyaa4F2uAyD6z5a3CNbTXbQLc7fSR6CFNVjgZYV nwere nkọwa (R-koodu + TXID):
RdbAiAhKhveAtR4eyTKq75noMxdcEoxbE6BvojJjM13VE 82JTMzhHM5xEA2fQ9Qscd5QAJU3DAd8nShLjdVHTer5S

4. Koodu S-enwetara: Ri89jHB4UXZDXY6gT1m4LBDXGMTaYzHozMk4nxiuqVXdC

5. Ekpebiri ndị mmeri.

6. Ezitere ugwo

N'ihi ya, anyị nwere ndekọ nzọụkwụ site na nzọụkwụ nke usoro ịbịaru ihe nrite na blockchain na ikike ịlele ya n'oge ọ bụla. Ọ fọrọ nke nta ka ọ bụrụ ihe na-agaghị ekwe omume ka onye nhazi ahụ megharịa nsonaazụ ya; ọ dịkarịa ala, ọ gaghị enwe ike ime ya n'amaghị ama.

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.

isi: www.habr.com

Tinye a comment