TON Blockchain хэш мәні бойынша Марапат таңдау ережелері

2024-10-29 02:11

Жауапкершіліктен бас тарту туралы мәлімдеме: мұнда сілтеме жасалған өнімдер мен қызметтер аймағыңызда болмауы мүмкін.

1. Ұтыс ретін қалай анықтауға болады?

Binance іс-шара кезінде белгілі бір күнді таңдайды және ұтыс реттілігі ретінде сол күні сағат 23:59-да (UTC) соңғы TON Blockchain блогы хэшінің соңғы 9 санын пайдаланады.

Мысалы:

Сыйақы есептелетін күнгі соңғы TON Blockchain блогының хэші мынадай болса: 0hVwGb09xU6rhZhs9JMHU29KuqYATsVwd+96R8X6wF4=

  • Binance мынаны алу үшін әріптерді жояды: 009 692 996 864
  • Содан кейін біз соңғы 9 санды ұтыс реті ретінде аламыз: 692 996 864

2. Пайдаланушы мекенжайына мультипликативті хэштеу қалай қолданылады?

Binance ұтқан пайдаланушы(лар) әмиянының мекенжайын анықтау үшін мультипликативті хэш формуласын (Java `hashCode()` сияқты) «h = 31 * h + value[i]» пайдаланады.

Есептеу:

1. «0x22eec85ba6a5cd97ead4728ea1c69e1d9c6fa778» алу үшін «0x22eEC85ba6a5cD97eAd4728eA1c69e1D9c6fa778» жолын кіші әріпке түрлендіріңіз, содан кейін хэш кодын есептеңіз.

2. Әр таңбаның мәні оның ASCII коды арқылы анықталады:

  • «0» мәні 48;
  • «х» мәні 120;
  • «2» мәні 50;
  • «е» мәні 101;
  • «с» мәні 99;
  • «8» мәні 56;
  • «5» мәні 53;
  • «b» мәні 98;
  • «а» мәні 97;
  • «6» мәні 54;
  • «d» мәні 100;
  • «9» мәні 57;
  • «7» мәні 55.

3. Хэш мәнін инициализациялаңыз: h = 0

4. «0» бірінші таңбасын өңдеңіз:

  • h = 31 * h + 48
  • h = 31 * 0 + 48
  • h = 48

5. «х» екінші таңбасын өңдеңіз:

  • h = 31 * h + 120
  • h = 31 * 48 + 120
  • h = 1608

6. «2» үшінші таңбасын өңдеңіз:

  • h = 31 * h + 50
  • h = 31 * 1608 + 50
  • h = 49 898

7. «2» төртінші таңбасын өңдеңіз:

  • h = 31 * h + 50
  • h = 31 * 49 898 + 50
  • h = 1 546 888

8. «е» бесінші таңбасын өңдеңіз:

  • h = 31 * h + 101
  • h = 31 * 1 546 888 + 101
  • h = 47 953 629

9. «е» алтыншы таңбасын өңдеңіз:

  • h = 31 * h + 101
  • h = 31 * 47 953 629 + 101
  • h = 1 486 562 610

10. «с» жетінші таңбасын өңдеңіз:

  • h = 31 * h + 99
  • h = 31 * 1 486 562 610 + 99
  • h = 46 083 441 008

11. Қалған таңбаларды оңайлатылған өңдеу  

Барлық таңба өңделгенше, жоғарыда көрсетілген қадамдарды орындап, қалған таңбаларды өңдеуді жалғастырыңыз. Соңғы хэш мәні, h, бүтін сан болады.  

12. Хэш мәнінің теріс емес екеніне көз жеткізу үшін біз биттік мәнді қолданып, «0x7fffffff» енгіземіз: «h & 0x7fffffff».  

13. Осы алгоритмді пайдаланған кезде TON мекенжайының хэш мәні 0 мен 2 147 483 647 арасындағы сан болады. 

3. Пайдаланушының лотерея ретін қалай құруға болады?

Әр пайдаланушының әмиян мекенжайы лотерея ретін есептеу үшін хэш мәніне түрлендіріледі:

[Ұтыс реті - мекенжай хэші] = Пайдаланушының лотерея реті

4. Жеңімпаздарды қалай анықтауға болады?  

Binance әрбір пайдаланушының лотерея ретін өсу ретімен сұрыптайды және науқан ережелеріне байланысты белгілі бір реттілік санын жеңімпаз ретінде таңдайды. 

Нәтижелер тең болған жағдайда (мысалы, екі немесе одан да көп пайдаланушының лотерея реті бірдей), Binance пайдаланушылардың рейтингтерін анықтау үшін тапсырманы орындау уақытын пайдаланады. Пайдаланушы тапсырманы неғұрлым ерте аяқтаса, соғұрлым олардың рейтингі жоғары болады.

  • Хэші 10 цифрға тең немесе одан көп мекенжайларда 10-цифр жойылады.
  • Егер хэш 10 саннан аз болса, ешқандай өзгеріс енгізілмейді.

Осылайша пайдаланушылардың мекенжай хэші мен ұтыс реті арасындағы абсолютті айырмашылық есептеледі. Binance әрбір пайдаланушының лотерея ретін өсу ретімен сұрыптайды және кіші лотерея рет(тер)і ұтады.

Мысалы:

  • А деген пайдаланушының мекенжай хэші 10 саннан тұрады (1 023 456 780). 10-шы санды алып тастағаннан кейін олардың лотерея реті 102 345 678 болады.
  • B деген пайдаланушының мекенжай хэші 9 саннан тұрады (201 154 321). Олардың лотерея ретін реттеу үшін ешқандай өзгерту қажет емес.

Жеңімпазды анықтау жолы:

  • Ұтыс реті = 692 996 864
  • А деген пайдаланушының лотерея нәтижесі = |692 996 864 − 102 345 678| = 590 651 186
  • B деген пайдаланушының лотерея нәтижесі = |692 996 864 − 201 154 321| = 491 842 543

491 842 543 кіші болғандықтан, B деген пайдаланушы жеңеді.

Қазір тіркеліңіз – 100 USDT дейін сауда алымына жеңілдік алыңыз (расталған пайдаланушылар үшін)