TON (Telegram Open Network) тСстов ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ Π½ΠΎΠ² Π΅Π·ΠΈΠΊ Π½Π° Fift Π·Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ

ΠŸΡ€Π΅Π΄ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Π³ΠΎΠ΄ΠΈΠ½Π° стана извСстно Π·Π° ΠΏΠ»Π°Π½ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° ΠΌΠ΅ΡΠΈΠ½Π΄ΠΆΡŠΡ€Π° Π½Π° Telegram Π΄Π° пуснС собствСна Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΌΡ€Π΅ΠΆΠ° ΠžΡ‚Π²ΠΎΡ€Π΅Ρ‚Π΅ ΠΌΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌΠ°. Π’ΠΎΠ³Π°Π²Π° стана Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ ΠΎΠ±Π΅ΠΌΠ΅Π½ тСхничСски Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ вСроятно Π΅ написан ΠΎΡ‚ Николай Π”ΡƒΡ€ΠΎΠ² ΠΈ описва структурата Π½Π° Π±ΡŠΠ΄Π΅Ρ‰Π°Ρ‚Π° ΠΌΡ€Π΅ΠΆΠ°. Π—Π° Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са Π³ΠΎ пропуснали, ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π°Ρ‚ моя ΠΏΡ€Π΅Ρ€Π°Π·ΠΊΠ°Π· Π½Π° Ρ‚ΠΎΠ·ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ (част 1, част 2; Ρ‚Ρ€Π΅Ρ‚Π°Ρ‚Π° част, ΡƒΠ²ΠΈ, всС ΠΎΡ‰Π΅ ΡΡŠΠ±ΠΈΡ€Π° ΠΏΡ€Π°Ρ… Π² Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈ).

ΠžΡ‚Ρ‚ΠΎΠ³Π°Π²Π° Π½Π΅ Π΅ ΠΈΠΌΠ°Π»ΠΎ Π·Π½Π°Ρ‡ΠΈΠΌΠΈ Π½ΠΎΠ²ΠΈΠ½ΠΈ Π·Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° TON Π΄ΠΎ ΠΏΡ€Π΅Π΄ΠΈ няколко Π΄Π½ΠΈ (Π² Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π½Π΅ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ) Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° към страницата Π½Π΅ сС появи https://test.ton.org/download.htmlкъдС сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚:
β—¦ ton-test-liteclient-full.tar.xz β€” Π»Π΅ΠΊΠΈ клиСнтски ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ Π·Π° тСстовата ΠΌΡ€Π΅ΠΆΠ° TON;
β—¦ ton-lite-client-test1.config.json β€” ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π΅Π½ Ρ„Π°ΠΉΠ» Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ към тСстовата ΠΌΡ€Π΅ΠΆΠ°;
β—¦ README - информация Π·Π° сглобяванСто ΠΈ стартиранСто Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°;
β—¦ КАК ДА β€” инструкции ΡΡ‚ΡŠΠΏΠΊΠ° ΠΏΠΎ ΡΡ‚ΡŠΠΏΠΊΠ° ΠΊΠ°ΠΊ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°;
β—¦ Ρ‚ΠΎΠ½.pdf β€” Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ (ΠΎΡ‚ 2 ΠΌΠ°Ρ€Ρ‚ 2019 Π³.) с тСхничСски ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° TON;
β—¦ tvm.pdf β€” тСхничСско описаниС Π½Π° TVM (Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина TON, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина TON);
β—¦ tblkch.pdf β€” тСхничСско описаниС Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° TON;
β—¦ fifthbase.pdf β€” описаниС Π½Π° новия Π΅Π·ΠΈΠΊ Fift, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π·Π° създаванС Π½Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ Π² TON.

ΠŸΠΎΠ²Ρ‚Π°Ρ€ΡΠΌ, нямашС ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΎ ΠΏΠΎΡ‚Π²ΡŠΡ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π° страницата ΠΈ всички Ρ‚Π΅Π·ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΡ‚ Telegram, Π½ΠΎ ΠΎΠ±Π΅ΠΌΡŠΡ‚ Π½Π° Ρ‚Π΅Π·ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ Π³ΠΈ ΠΏΡ€Π°Π²ΠΈ доста ΠΏΡ€Π°Π²Π΄ΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ. Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ публикувания ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½Π° свой риск.

Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° тСстов ΠΊΠ»ΠΈΠ΅Π½Ρ‚

ΠšΠ°Ρ‚ΠΎ Π½Π°Ρ‡Π°Π»ΠΎ, Π½Π΅ΠΊΠ° сС ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ ΠΈ стартирамС тСстов ΠΊΠ»ΠΈΠ΅Π½Ρ‚ - Π΄ΠΎΠ±Ρ€Π΅, README описва Ρ‚ΠΎΠ·ΠΈ прост процСс Π² Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈ. Π©Π΅ направя Ρ‚ΠΎΠ²Π°, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π° macOS 10.14.5, Π½Π΅ ΠΌΠΎΠ³Π° Π΄Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°ΠΌ Π·Π° успСха Π½Π° сглобяванСто Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ систСми.

  1. Π˜Π·Ρ‚Π΅Π³Π»ΡΠ½Π΅ ΠΈ Ρ€Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ Π°Ρ€Ρ…ΠΈΠ². Π’Π°ΠΆΠ½ΠΎ Π΅ Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ‚Π΅ Π½Π°ΠΉ-Π½ΠΎΠ²Π°Ρ‚Π° вСрсия, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½Π°Ρ‚Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ Π½Π΅ Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°Π½Π° Π½Π° Ρ‚ΠΎΠ·ΠΈ Π΅Ρ‚Π°ΠΏ.

  2. Π£Π²Π΅Ρ€Π΅Ρ‚Π΅ сС, Ρ‡Π΅ ΠΈΠΌΠ°Ρ‚Π΅ Π½Π°ΠΉ-Π½ΠΎΠ²ΠΈΡ‚Π΅ вСрсии Π½Π° make, cmake (вСрсия 3.0.2 ΠΈΠ»ΠΈ ΠΏΠΎ-Π½ΠΎΠ²Π°), OpenSSL (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ C Π·Π°Π³Π»Π°Π²ΠΊΠΈ), g++ ΠΈΠ»ΠΈ clang, инсталирани Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° систСма. НС сС Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° инсталирам Π½ΠΈΡ‰ΠΎ, всичко сС Π½Π°Ρ€Π΅Π΄ΠΈ Π²Π΅Π΄Π½Π°Π³Π°.

  3. Π”Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Π΅ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈΡ‚Π΅ са Ρ€Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΈ Π² ΠΏΠ°ΠΏΠΊΠ° ~/lite-client. ΠžΡ‚Π΄Π΅Π»Π½ΠΎ ΠΎΡ‚ Π½Π΅Π³ΠΎ създавамС ΠΏΡ€Π°Π·Π½Π° ΠΏΠ°ΠΏΠΊΠ° Π·Π° сглобСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ (Π½Π°ΠΏΡ€. ~/liteclient-build), ΠΈ ΠΎΡ‚ Π½Π΅Π³ΠΎ (cd ~/liteclient-build) ΠΈΠ·Π²ΠΈΠΊΠ°ΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅:

    cmake ~/lite-client
    cmake --build . --target test-lite-client

    TON (Telegram Open Network) тСстов ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ Π½ΠΎΠ² Π΅Π·ΠΈΠΊ Π½Π° Fift Π·Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ

    Π—Π° Π΄Π° създадСм Сзиковия ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π° Fift Π·Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ (описан ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ), Π½ΠΈΠ΅ ΡΡŠΡ‰ΠΎ сС ΠΎΠ±Π°ΠΆΠ΄Π°ΠΌΠ΅

    cmake --build . --target fift

  4. Π˜Π·Ρ‚Π΅Π³Π»ΡΠ½Π΅ Π½Π° тСкущия ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π΅Π½ Ρ„Π°ΠΉΠ» Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ с тСстовата ΠΌΡ€Π΅ΠΆΠ° ΠΈ Π΄Π° я поставитС Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° с асСмблирания ΠΊΠ»ΠΈΠ΅Π½Ρ‚.

  5. ΠšΡ€Π°ΠΉ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° стартиратС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°:

    ./test-lite-client -C ton-lite-client-test1.config.json

Ако всичко Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, Ρ‚ΠΎΠ³Π°Π²Π° трябва Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π΅Ρ‰ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ:

TON (Telegram Open Network) тСстов ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ Π½ΠΎΠ² Π΅Π·ΠΈΠΊ Π½Π° Fift Π·Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ

ΠšΠ°ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΈΠΌΠ° няколко Π½Π°Π»ΠΈΡ‡Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ:
β—¦ help - ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ списък с ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ;
β—¦ quit - ΠΈΠ·Π»Π΅Π·;
β—¦ time β€” ΠΏΠΎΠΊΠ°Π·Π²Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°;
β—¦ status - ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° ΠΈ Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ;
β—¦ last β€” Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° (изтСглянС Π½Π° послСдния Π±Π»ΠΎΠΊ). Π’Π°ΠΆΠ½ΠΎ Π΅ Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅ Ρ‚Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€Π΅Π΄ΠΈ всякакви заявки, Π·Π° Π΄Π° стС сигурни, Ρ‡Π΅ Π²ΠΈΠΆΠ΄Π°Ρ‚Π΅ дСйствитСлното ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°.
β—¦ sendfile <filename> β€” ΠΊΠ°Ρ‡Π΅Ρ‚Π΅ Π»ΠΎΠΊΠ°Π»Π΅Π½ Ρ„Π°ΠΉΠ» Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° TON. Π•Ρ‚ΠΎ ΠΊΠ°ΠΊ сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° взаимодСйствиСто с ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²ΠΈ ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ ΠΈ заявки Π·Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° срСдства ΠΌΠ΅ΠΆΠ΄Ρƒ смСтки;
β—¦ getaccount <address> β€” ΠΏΠΎΠΊΠ°Π·Π²Π° тСкущия (Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° изпълнСниС Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° last) ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° смСтката с посочСния адрСс;
β—¦ privkey <filename> β€” Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° частния ΠΊΠ»ΡŽΡ‡ ΠΎΡ‚ Π»ΠΎΠΊΠ°Π»Π΅Π½ Ρ„Π°ΠΉΠ».

Ако, ΠΊΠΎΠ³Π°Ρ‚ΠΎ стартиратС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Π΅Ρ‚Π΅ ΠΏΠ°ΠΏΠΊΠ° към Π½Π΅Π³ΠΎ, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ опцията -D, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‚ΠΎΠΉ Ρ‰Π΅ Π΄ΠΎΠ±Π°Π²ΠΈ послСдния Π±Π»ΠΎΠΊ ΠΎΡ‚ Π³Π»Π°Π²Π½Π°Ρ‚Π° Π²Π΅Ρ€ΠΈΠ³Π° Π² Π½Π΅Π³ΠΎ:

./test-lite-client -C ton-lite-client-test1.config.json -D ~/ton-db-dir

Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌ към ΠΏΠΎ-интСрСсни Π½Π΅Ρ‰Π° - Π½Π°ΡƒΡ‡Π΅Ρ‚Π΅ Π΅Π·ΠΈΠΊΠ° Π½Π° Fift, ΠΎΠΏΠΈΡ‚Π°ΠΉΡ‚Π΅ сС Π΄Π° ΡΡŠΡΡ‚Π°Π²ΠΈΡ‚Π΅ ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ тСстов ΠΏΠΎΡ€Ρ‚Ρ„Π΅ΠΉΠ»), ΠΊΠ°Ρ‡Π΅Ρ‚Π΅ Π³ΠΎ Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° ΠΈ ΠΎΠΏΠΈΡ‚Π°ΠΉΡ‚Π΅ Π΄Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΠΈΡ‚Π΅ срСдства ΠΌΠ΅ΠΆΠ΄Ρƒ смСтки.

ΠŸΠ΅Ρ‚ Π΅Π·ΠΈΠΊ

ΠžΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ fifthbase.pdf ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅, Ρ‡Π΅ Π΅ΠΊΠΈΠΏΡŠΡ‚ Π½Π° Telegram създадС Π½ΠΎΠ² стСков Π΅Π·ΠΈΠΊ Π·Π° създаванС Π½Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ ΠΏΠ΅Ρ‚Π° (ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ ΠΎΡ‚ числото ΠΏΠ΅Ρ‚ΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° Forth, Π΅Π·ΠΈΠΊ, с ΠΊΠΎΠΉΡ‚ΠΎ Fift ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰ΠΎ).

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΡŠΡ‚ Π΅ доста ΠΎΠ±Π΅ΠΌΠ΅Π½, 87 страници, ΠΈ няма Π΄Π° ΠΏΡ€Π΅Ρ€Π°Π·ΠΊΠ°Π·Π²Π°ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΡƒ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Ρ‚Π°Π·ΠΈ статия (ΠΏΠΎΠ½Π΅ Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π°Π· самият Π½Π΅ съм Π³ΠΎ ΠΏΡ€ΠΎΡ‡Π΅Π» :). Π©Π΅ сС спра Π½Π° основнитС Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ Ρ‰Π΅ Π΄Π°ΠΌ няколко ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π·Π° ΠΊΠΎΠ΄ Π½Π° Ρ‚ΠΎΠ·ΠΈ Π΅Π·ΠΈΠΊ.

На основно Π½ΠΈΠ²ΠΎ ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡΡŠΡ‚ Π½Π° Fift Π΅ доста прост: нСговият ΠΊΠΎΠ΄ сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ Π΄ΡƒΠΌΠΈ, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ с ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΈ ΠΈΠ»ΠΈ Π½ΠΎΠ² Ρ€Π΅Π΄ (спСциалСн случай: някои Π΄ΡƒΠΌΠΈ Π½Π΅ изискват Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π» слСд сСбС си). Всякакви Π΄ΡƒΠΌΠ°Ρ‚Π° Π΅ чувствитСлна към Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π° ΠΏΠΎΡ€Π΅Π΄ΠΈΡ†Π° ΠΎΡ‚ Π·Π½Π°Ρ†ΠΈ, която ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° някои опрСдСлянС Π½Π° (Π³Ρ€ΡƒΠ±ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΏΡ€Π΅Π²ΠΎΠ΄Π°Ρ‡ΡŠΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ срСщнС Ρ‚Π°Π·ΠΈ Π΄ΡƒΠΌΠ°). Ако няма дСфиниция Π½Π° Π΄ΡƒΠΌΠ°Ρ‚Π°, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΡŠΡ‚ сС ΠΎΠΏΠΈΡ‚Π²Π° Π΄Π° я Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΊΠ°Ρ‚ΠΎ число ΠΈ Π΄Π° я постави Π² стСка. ΠœΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, числата Ρ‚ΡƒΠΊ - извСднъТ - са 257-Π±ΠΈΡ‚ΠΎΠ²ΠΈ Ρ†Π΅Π»ΠΈ числа, Π° Π΄Ρ€ΠΎΠ±Π½ΠΈ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ няма - ΠΏΠΎ-Ρ‚ΠΎΡ‡Π½ΠΎ, Ρ‚Π΅ Π²Π΅Π΄Π½Π°Π³Π° сС ΠΏΡ€Π΅Π²Ρ€ΡŠΡ‰Π°Ρ‚ Π² Π΄Π²ΠΎΠΉΠΊΠ° Ρ†Π΅Π»ΠΈ числа, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Ρ‚ числитСля ΠΈ знамСнатСля Π½Π° Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»Π½Π° Π΄Ρ€ΠΎΠ±.

Π”ΡƒΠΌΠΈΡ‚Π΅ са склонни Π΄Π° взаимодСйстват със стойноститС Π² Π³ΠΎΡ€Π½Π°Ρ‚Π° част Π½Π° стСка. ΠžΡ‚Π΄Π΅Π»Π΅Π½ Ρ‚ΠΈΠΏ Π΄ΡƒΠΌΠΈ - прСфикс - ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π΅ стСка, Π° слСдващитС Π³ΠΈ Π·Π½Π°Ρ†ΠΈ ΠΎΡ‚ изходния Ρ„Π°ΠΉΠ». НапримСр, Ρ‚Π°ΠΊΠ° сС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ Π½ΠΈΠ·ΠΎΠ²ΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΈ - ΡΠΈΠΌΠ²ΠΎΠ»ΡŠΡ‚ Π·Π° ΠΊΠ°Π²ΠΈΡ‡ΠΊΠΈ (") Π΅ прСфиксна Π΄ΡƒΠΌΠ°, която Ρ‚ΡŠΡ€ΡΠΈ слСдващия (затварящ) Ρ†ΠΈΡ‚Π°Ρ‚ ΠΈ ΠΈΠ·Π±ΡƒΡ‚Π²Π° Π½ΠΈΠ·Π° ΠΌΠ΅ΠΆΠ΄Ρƒ тях Π² стСка. Π•Π΄Π½ΠΎΡ€Π΅Π΄ΠΎΠ²ΠΈΡ‚Π΅ сС Π΄ΡŠΡ€ΠΆΠ°Ρ‚ ΠΏΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ (//) ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡ€Π΅Π΄ΠΎΠ² (/*) ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈ.

Π’ΡƒΠΊ ΡΠ²ΡŠΡ€ΡˆΠ²Π° ΠΏΠΎΡ‡Ρ‚ΠΈ цялата Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½Π° структура Π½Π° Π΅Π·ΠΈΠΊΠ°. Всичко останало (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈ конструкции) сС Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π° ΠΊΠ°Ρ‚ΠΎ Π΄ΡƒΠΌΠΈ (ΠΈΠ»ΠΈ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ, ΠΊΠ°Ρ‚ΠΎ Π°Ρ€ΠΈΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‡Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ Π΄ΡƒΠΌΠΈ; ΠΈΠ»ΠΈ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Π² "стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°" Fift.fif, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° crypto/fift Π² ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ).

ΠŸΡ€ΠΎΡΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π½Π° Fift:

{ dup =: x dup * =: y } : setxy
3 setxy x . y . x y + .
7 setxy x . y . x y + .

ΠŸΡŠΡ€Π²ΠΈΡΡ‚ Ρ€Π΅Π΄ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π° Π½ΠΎΠ²Π° Π΄ΡƒΠΌΠ° setxy (ΠΎΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° прСфикса {, ΠΊΠΎΠ΅Ρ‚ΠΎ създава Π±Π»ΠΎΠΊ ΠΏΡ€Π΅Π΄ΠΈ затварянСто } ΠΈ прСфикс :, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ опрСдСля Π΄ΡƒΠΌΠ°Ρ‚Π°). setxy Π²Π·Π΅ΠΌΠ° число ΠΎΡ‚ Π²ΡŠΡ€Ρ…Π° Π½Π° стСка, Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π° Π³ΠΎ (ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°) ΠΊΠ°Ρ‚ΠΎ Π³Π»ΠΎΠ±Π°Π»Π½ΠΎ постоянСн x, Π° ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΡŠΡ‚ Π½Π° Ρ‚ΠΎΠ²Π° число ΠΊΠ°Ρ‚ΠΎ константа y (ΠΊΠ°Ρ‚ΠΎ сС ΠΈΠΌΠ° ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ стойноститС Π½Π° константитС ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€Π΅Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ, Π±ΠΈΡ… Π³ΠΈ Π½Π°Ρ€Π΅ΠΊΡŠΠ» ΠΏΠΎ-скоро ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, Π½ΠΎ слСдвам ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π² Π΅Π·ΠΈΠΊΠ°).

Π‘Π»Π΅Π΄Π²Π°Ρ‰ΠΈΡ‚Π΅ Π΄Π²Π° Ρ€Π΅Π΄Π° ΠΈΠ·Π±ΡƒΡ‚Π²Π°Ρ‚ число Π² стСка, ΠΊΠΎΠ» setxy, Ρ‚ΠΎΠ³Π°Π²Π° сС ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ стойноститС Π½Π° константитС x, y (ΠΈΠ·Ρ…ΠΎΠ΄ΡŠΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΄ΡƒΠΌΠ°Ρ‚Π° .), ΠΈ Π΄Π²Π΅Ρ‚Π΅ константи сС поставят Π² стСка, сумират сС ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΡΡŠΡ‰ΠΎ сС ΠΏΠΎΠΊΠ°Π·Π²Π°. Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ:

3 9 12 ok
7 49 56 ok

(Π Π΅Π΄ΡŠΡ‚ β€žokβ€œ сС ΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π·Π°Π²ΡŠΡ€ΡˆΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° тСкущия Ρ€Π΅Π΄ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ Π½Π° въвСТданС)

И Π΅Ρ‚ΠΎ пълСн ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅Π½ ΠΊΠΎΠ΄:

"Asm.fif" include

-1 constant wc  // create a wallet in workchain -1 (masterchain)

// Create new simple wallet
<{  SETCP0 DUP IFNOTRET INC 32 THROWIF  // return if recv_internal, fail unless recv_external
    512 INT LDSLICEX DUP 32 PLDU   // sign cs cnt
    c4 PUSHCTR CTOS 32 LDU 256 LDU ENDS  // sign cs cnt cnt' pubk
    s1 s2 XCPU            // sign cs cnt pubk cnt' cnt
    EQUAL 33 THROWIFNOT   // ( seqno mismatch? )
    s2 PUSH HASHSU        // sign cs cnt pubk hash
    s0 s4 s4 XC2PU        // pubk cs cnt hash sign pubk
    CHKSIGNU              // pubk cs cnt ?
    34 THROWIFNOT         // signature mismatch
    ACCEPT
    SWAP 32 LDU NIP 
    DUP SREFS IF:<{
      8 LDU LDREF         // pubk cnt mode msg cs
      s0 s2 XCHG SENDRAWMSG  // pubk cnt cs ; ( message sent )
    }>
    ENDS
    INC NEWC 32 STU 256 STU ENDC c4 POPCTR
}>c
// code
<b 0 32 u, 
   newkeypair swap dup constant wallet_pk 
   "new-wallet.pk" B>file
   B, 
b> // data
// no libraries
<b b{00110} s, rot ref, swap ref, b>  // create StateInit
dup ."StateInit: " <s csr. cr
dup hash dup constant wallet_addr
."new wallet address = " wc . .": " dup x. cr
wc over 7 smca>$ type cr
256 u>B "new-wallet.addr" B>file
<b 0 32 u, b>
dup ."signing message: " <s csr. cr
dup hash wallet_pk ed25519_sign_uint rot
<b b{1000100} s, wc 8 i, wallet_addr 256 u, b{000010} s, swap <s s, b{0} s, swap B, swap <s s, b>
dup ."External message for initialization is " <s csr. cr
2 boc+>B dup Bx. cr
"new-wallet-query.boc" tuck B>file
."(Saved to file " type .")" cr

Π’ΠΎΠ·ΠΈ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ‰ Ρ„Π°ΠΉΠ» Π΅ Π·Π° създаванС Π½Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ - Ρ‚ΠΎΠΉ Ρ‰Π΅ бъдС поставСн във Ρ„Π°ΠΉΠ»Π° new-wallet-query.boc слСд изпълнСниС. Моля, ΠΈΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ Ρ‚ΡƒΠΊ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΄Ρ€ΡƒΠ³ асСмблСрСн Π΅Π·ΠΈΠΊ Π·Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π°Ρ‚Π° машина TON (няма Π΄Π° сС спирам ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π½Π° Π½Π΅Π³ΠΎ), Ρ‡ΠΈΠΈΡ‚ΠΎ инструкции Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ поставСни Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°.

Π’Π°ΠΊΠ° Π°ΡΠ΅ΠΌΠ±Π»Π΅Ρ€ΡŠΡ‚ Π·Π° TVM Π΅ написан Π½Π° Fift - изходният ΠΊΠΎΠ΄ Π·Π° Ρ‚ΠΎΠ·ΠΈ асСмблСр Π΅ във Ρ„Π°ΠΉΠ»Π° crypto/fift/Asm.fif ΠΈ са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° Π³ΠΎΡ€Π½Π°Ρ‚Π° част ΠΎΡ‚ ΠΊΠΎΠ΄Π°.

Какво ΠΌΠΎΠ³Π° Π΄Π° ΠΊΠ°ΠΆΠ°, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Николай Π”ΡƒΡ€ΠΎΠ² просто ΠΎΠ±ΠΈΡ‡Π° Π΄Π° създава Π½ΠΎΠ²ΠΈ Π΅Π·ΠΈΡ†ΠΈ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅πŸ™‚

БъздаванС Π½Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ ΠΈ взаимодСйствиС с TON

Π”Π° ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Π΅ ΡΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° TON ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Π½Π° Fift, ΠΊΠ°ΠΊΡ‚ΠΎ Π΅ описано ΠΏΠΎ-Π³ΠΎΡ€Π΅, ΠΈ сС Π·Π°ΠΏΠΎΠ·Π½Π°Ρ…ΠΌΠ΅ с Π΅Π·ΠΈΠΊΠ°. Как Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ сСга? Π’ΠΎΠ²Π° Π΅ описано във Ρ„Π°ΠΉΠ»Π°. КАК ДАприлоТСн към ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ°.

Π‘ΠΌΠ΅Ρ‚ΠΊΠΈ Π² TON

ΠšΠ°ΠΊΡ‚ΠΎ описах Π² TON ΠΏΡ€Π΅Π³Π»Π΅Π΄, Ρ‚Π°Π·ΠΈ ΠΌΡ€Π΅ΠΆΠ° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ – ΠΈΠΌΠ° Π΅Π΄ΠΈΠ½ ΠΎΠ±Ρ‰, Ρ‚.Π½Π°Ρ€. β€žΠ³Π»Π°Π²Π½Π° Π²Π΅Ρ€ΠΈΠ³Π°β€œ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Π±Ρ€ΠΎΠΉ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ β€žΡ€Π°Π±ΠΎΡ‚Π½ΠΈ Π²Π΅Ρ€ΠΈΠ³ΠΈβ€œ, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ с 32-Π±ΠΈΡ‚ΠΎΠ²ΠΎ число. Π“Π»Π°Π²Π½Π°Ρ‚Π° Π²Π΅Ρ€ΠΈΠ³Π° ΠΈΠΌΠ° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ -1, Π² допълнСниС към нСя ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈ "Π±Π°Π·ΠΎΠ²Π°" Ρ€Π°Π±ΠΎΡ‚Π½Π° Π²Π΅Ρ€ΠΈΠ³Π° с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ 0. Всяка Ρ€Π°Π±ΠΎΡ‚Π½Π° Π²Π΅Ρ€ΠΈΠ³Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° своя собствСна конфигурация. Π’ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎ всяка Ρ€Π°Π±ΠΎΡ‚Π½Π° Π²Π΅Ρ€ΠΈΠ³Π° Π΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° shardchains, Π½ΠΎ Ρ‚ΠΎΠ²Π° Π΅ Π΄Π΅Ρ‚Π°ΠΉΠ» ΠΎΡ‚ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄.

Π’ Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΅Π΄Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½Π° Π²Π΅Ρ€ΠΈΠ³Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π°ΠΊΠ°ΡƒΠ½Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚ свои собствСни ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ account_id. Π—Π° masterchain ΠΈ null workchain Ρ‚Π΅ са дълги 256 Π±ΠΈΡ‚Π°. Π’Π°ΠΊΠ° идСнтификационният Π½ΠΎΠΌΠ΅Ρ€ Π½Π° Π°ΠΊΠ°ΡƒΠ½Ρ‚Π° Π΅ написан Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠ°:

-1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

Π’ΠΎΠ²Π° Π΅ нСобработСният Ρ„ΠΎΡ€ΠΌΠ°Ρ‚: ΠΏΡŠΡ€Π²ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½Π°Ρ‚Π° Π²Π΅Ρ€ΠΈΠ³Π°, слСд Ρ‚ΠΎΠ²Π° Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π° Π°ΠΊΠ°ΡƒΠ½Ρ‚Π° Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Π΅ΡΠ΅Ρ‚ΠΈΡ‡Π΅Π½ запис.

ОсвСн Ρ‚ΠΎΠ²Π° ΠΈΠΌΠ° ΡΡŠΠΊΡ€Π°Ρ‚Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ - Π½ΠΎΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½Π°Ρ‚Π° Π²Π΅Ρ€ΠΈΠ³Π° ΠΈ Π°Π΄Ρ€Π΅ΡΡŠΡ‚ Π½Π° Π°ΠΊΠ°ΡƒΠ½Ρ‚Π° са ΠΊΠΎΠ΄ΠΈΡ€Π°Π½ΠΈ Π² Π΄Π²ΠΎΠΈΡ‡Π½Π° Ρ„ΠΎΡ€ΠΌΠ°, към тях сС добавя ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° сума ΠΈ всичко Ρ‚ΠΎΠ²Π° Π΅ ΠΊΠΎΠ΄ΠΈΡ€Π°Π½ΠΎ Π² Base64:

Ef+BVndbeTJeXWLnQtm5bDC2UVpc0vH2TF2ksZPAPwcODSkb

Познавайки Ρ‚ΠΎΠ·ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° запис, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° поискамС Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° някой Π°ΠΊΠ°ΡƒΠ½Ρ‚ Ρ‡Ρ€Π΅Π· тСстовия ΠΊΠ»ΠΈΠ΅Π½Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°

getaccount -1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

ΠŸΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ ΠΊΠ°Ρ‚ΠΎ Ρ‚ΠΎΠ·ΠΈ:

[ 3][t 2][1558746708.815218925][test-lite-client.cpp:631][!testnode]    requesting account state for -1:8156775B79325E5D62E742D9B96C30B6515A5CD2F1F64C5DA4B193C03F070E0D
[ 3][t 2][1558746708.858564138][test-lite-client.cpp:652][!testnode]    got account state for -1:8156775B79325E5D62E742D9B96C30B6515A5CD2F1F64C5DA4B193C03F070E0D with respect to blocks (-1,8000000000000000,72355):F566005749C1B97F18EDE013EBA7A054B9014961BC1AD91F475B9082919A2296:1BD5DE54333164025EE39D389ECE2E93DA2871DA616D488253953E52B50DC03F and (-1,8000000000000000,72355):F566005749C1B97F18EDE013EBA7A054B9014961BC1AD91F475B9082919A2296:1BD5DE54333164025EE39D389ECE2E93DA2871DA616D488253953E52B50DC03F
account state is (account
  addr:(addr_std
    anycast:nothing workchain_id:-1 address:x8156775B79325E5D62E742D9B96C30B6515A5CD2F1F64C5DA4B193C03F070E0D)
  storage_stat:(storage_info
    used:(storage_used
      cells:(var_uint len:1 value:3)
      bits:(var_uint len:2 value:539)
      public_cells:(var_uint len:0 value:0)) last_paid:0
    due_payment:nothing)
  storage:(account_storage last_trans_lt:74208000003
    balance:(currencies
      grams:(nanograms
        amount:(var_uint len:7 value:999928362430000))
      other:(extra_currencies
        dict:hme_empty))
    state:(account_active
      (
        split_depth:nothing
        special:nothing
        code:(just
          value:(raw@^Cell 
            x{}
             x{FF0020DDA4F260D31F01ED44D0D31FD166BAF2A1F80001D307D4D1821804A817C80073FB0201FB00A4C8CB1FC9ED54}
            ))
        data:(just
          value:(raw@^Cell 
            x{}
             x{0000000D}
            ))
        library:hme_empty))))
x{CFF8156775B79325E5D62E742D9B96C30B6515A5CD2F1F64C5DA4B193C03F070E0D2068086C000000000000000451C90E00DC0E35B7DB5FB8C134_}
 x{FF0020DDA4F260D31F01ED44D0D31FD166BAF2A1F80001D307D4D1821804A817C80073FB0201FB00A4C8CB1FC9ED54}
 x{0000000D}

Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅ структурата, която сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π² DHT Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π½Π° Π²Π΅Ρ€ΠΈΠ³Π°. НапримСр Π² ΠΏΠΎΠ»Π΅Ρ‚ΠΎ storage.balance Π΅ Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ салдо ΠΏΠΎ смСтката, Π² storage.state.code Π΅ ΠΊΠΎΠ΄ΡŠΡ‚ Π½Π° интСлигСнтния Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€, Π° Π² storage.state.data - Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ‚Π΅ ΠΌΡƒ Π΄Π°Π½Π½ΠΈ. Моля, ΠΎΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Π΅ ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ TON - ΠΊΠ»Π΅Ρ‚ΠΊΠ°, ΠΊΠ»Π΅Ρ‚ΠΊΠΈ - Π΅ Π΄ΡŠΡ€Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎ, всяка ΠΊΠ»Π΅Ρ‚ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΊΠ°ΠΊΡ‚ΠΎ свои собствСни Π΄Π°Π½Π½ΠΈ, Ρ‚Π°ΠΊΠ° ΠΈ Π΄ΡŠΡ‰Π΅Ρ€Π½ΠΈ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ. Π’ΠΎΠ²Π° сС ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ ΠΎΡ‚ΡΡ‚ΡŠΠΏ Π½Π° послСднитС Ρ€Π΅Π΄ΠΎΠ²Π΅.

Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€

Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° сами създадСм Ρ‚Π°ΠΊΠ°Π²Π° структура (Π½Π°Ρ€ΠΈΡ‡Π° сС BOC - Ρ‚ΠΎΡ€Π±Π° с ΠΊΠ»Π΅Ρ‚ΠΊΠΈ), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π΅Π·ΠΈΠΊΠ° Fift. Π—Π° щастиС, Π½Π΅ Π΅ Π½ΡƒΠΆΠ½ΠΎ сами Π΄Π° ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ - Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° crypto/block ΠΎΡ‚ изходния Π°Ρ€Ρ…ΠΈΠ² ΠΈΠΌΠ° Ρ„Π°ΠΉΠ» new-wallet.fif, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° създадСм Π½ΠΎΠ² ΠΏΠΎΡ€Ρ‚Ρ„Π΅ΠΉΠ». ΠšΠΎΠΏΠΈΡ€Π°ΠΉΡ‚Π΅ Π³ΠΎ Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° с асСмблирания ΠΊΠ»ΠΈΠ΅Π½Ρ‚ (~/liteclient-buildΠ°ΠΊΠΎ стС слСдвали инструкциитС ΠΏΠΎ-Π³ΠΎΡ€Π΅). По-Π³ΠΎΡ€Π΅ Ρ†ΠΈΡ‚ΠΈΡ€Π°Ρ… ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΡƒ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΊΠΎΠ΄ във Fift.

НиС изпълнявамС Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ», ΠΊΠ°ΠΊΡ‚ΠΎ слСдва:

./crypto/fift -I"<source-directory>/crypto/fift" new-wallet.fif

Π’ΡƒΠΊ <source-directory> трябва Π΄Π° бъдС Π·Π°ΠΌΠ΅Π½Π΅Π½ с ΠΏΡŠΡ‚Ρ към Π½Π΅ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΈΡ‚Π΅ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ (ΡΠΈΠΌΠ²ΠΎΠ»ΡŠΡ‚ β€ž~β€œ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ‚ΡƒΠΊ, Π·Π° съТалСниС Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΏΡŠΠ»Π½ΠΈΡΡ‚ ΠΏΡŠΡ‚). ВмСсто Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΊΠ»ΡŽΡ‡ -I ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° срСдата FIFTPATH ΠΈ постави Ρ‚ΠΎΠ·ΠΈ ΠΏΡŠΡ‚ Π² Π½Π΅Π³ΠΎ.

Въй ΠΊΠ°Ρ‚ΠΎ стартирахмС Fift с ΠΈΠΌΠ΅ Π½Π° Ρ„Π°ΠΉΠ» new-wallet.fif, Ρ‰Π΅ Π³ΠΎ изпълни ΠΈ Ρ‰Π΅ ΠΈΠ·Π»Π΅Π·Π΅. Ако пропуснСтС ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ³Ρ€Π°Π΅Ρ‚Π΅ с ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ.

Π‘Π»Π΅Π΄ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π΅Ρ‰ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ трябва Π΄Π° сС появи Π² ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π°:

StateInit: x{34_}
 x{FF0020DDA4F260810200D71820D70B1FED44D0D31FD3FFD15112BAF2A122F901541044F910F2A2F80001D31F3120D74A96D307D402FB00DED1A4C8CB1FCBFFC9ED54}
 x{0000000055375F730EDC2292E8CB15C42E8036EE9C25AA958EE002D2DE48A205E3A3426B}

new wallet address = -1 : 4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2 
0f9PzVILj8yglrVn1zS-NSjtxr7QBfaTCp7JrBqnFPIR8nhZ
signing message: x{00000000}

External message for initialization is x{89FEE120E20C7E953E31546F64C23CD654002C1AA919ADD24DB12DDF85C6F3B58AE41198A28AD8DAF3B9588E7A629252BA3DB88F030D00BC1016110B2073359EAC3C13823C53245B65D056F2C070B940CDA09789585935C7ABA4D2AD4BED139281CFA1200000001_}
 x{FF0020DDA4F260810200D71820D70B1FED44D0D31FD3FFD15112BAF2A122F901541044F910F2A2F80001D31F3120D74A96D307D402FB00DED1A4C8CB1FCBFFC9ED54}
 x{0000000055375F730EDC2292E8CB15C42E8036EE9C25AA958EE002D2DE48A205E3A3426B}

B5EE9C724104030100000000D60002CF89FEE120E20C7E953E31546F64C23CD654002C1AA919ADD24DB12DDF85C6F3B58AE41198A28AD8DAF3B9588E7A629252BA3DB88F030D00BC1016110B2073359EAC3C13823C53245B65D056F2C070B940CDA09789585935C7ABA4D2AD4BED139281CFA1200000001001020084FF0020DDA4F260810200D71820D70B1FED44D0D31FD3FFD15112BAF2A122F901541044F910F2A2F80001D31F3120D74A96D307D402FB00DED1A4C8CB1FCBFFC9ED5400480000000055375F730EDC2292E8CB15C42E8036EE9C25AA958EE002D2DE48A205E3A3426B6290698B
(Saved to file new-wallet-query.boc)

Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΏΠΎΡ€Ρ‚Ρ„Π΅ΠΉΠ»ΡŠΡ‚ с ID -1:4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2 (ΠΈΠ»ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΡΡŠΡ‰ΠΎΡ‚ΠΎ, 0f9PzVILj8yglrVn1zS-NSjtxr7QBfaTCp7JrBqnFPIR8nhZ) Π΅ създадСн ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ. Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡΡ‚ ΠΊΠΎΠ΄ Ρ‰Π΅ бъдС във Ρ„Π°ΠΉΠ»Π° new-wallet-query.boc, Π°Π΄Ρ€Π΅ΡΡŠΡ‚ ΠΌΡƒ Π΅ Π² new-wallet.addrΠΈ частният ΠΊΠ»ΡŽΡ‡ Π΅ Π²ΡŠΡ‚Ρ€Π΅ new-wallet.pk (Π±ΡŠΠ΄Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΈ - стартиранСто Π½Π° скрипта ΠΎΡ‚Π½ΠΎΠ²ΠΎ Ρ‰Π΅ ΠΏΡ€Π΅Π·Π°ΠΏΠΈΡˆΠ΅ Ρ‚Π΅Π·ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅).

Π Π°Π·Π±ΠΈΡ€Π° сС, ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° TON всС ΠΎΡ‰Π΅ Π½Π΅ Π·Π½Π°Π΅ Π·Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠΎΡ€Ρ‚Ρ„Π΅ΠΉΠ», Ρ‚ΠΎΠΉ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° само ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Ρ‚Π΅Π·ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. Π‘Π΅Π³Π° трябва Π΄Π° сС ΠΊΠ°Ρ‡ΠΈ Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°. Вярно Π΅, Ρ‡Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅, Ρ‡Π΅ Π·Π° Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€, трябва Π΄Π° ΠΏΠ»Π°Ρ‚ΠΈΡ‚Π΅ комисионна, Π° Π±Π°Π»Π°Π½ΡΡŠΡ‚ ΠΏΠΎ смСтката Π²ΠΈ всС ΠΎΡ‰Π΅ Π΅ Π½ΡƒΠ»Π°.

Π’ Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Ρ‰Π΅ бъдС Ρ€Π΅ΡˆΠ΅Π½ Ρ‡Ρ€Π΅Π· Π·Π°ΠΊΡƒΠΏΡƒΠ²Π°Π½Π΅ Π½Π° Π³Ρ€Π°ΠΌΠΎΠ²Π΅ Π½Π° борсата (ΠΈΠ»ΠΈ Ρ‡Ρ€Π΅Π· ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ ΠΏΠΎΡ€Ρ‚Ρ„Π΅ΠΉΠ»). Π•, Π² тСкущия тСстов Ρ€Π΅ΠΆΠΈΠΌ Π΅ пуснат спСциалСн ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€, ΠΎΡ‚ ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° поискатС Π΄ΠΎ 20 Π³Ρ€Π°ΠΌΠ° просто Ρ‚Π°ΠΊΠ°.

Π€ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° заявка към ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ Π½Π° някой Π΄Ρ€ΡƒΠ³

Заявка към ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€, ΠΊΠΎΠΉΡ‚ΠΎ разпрСдСля Π³Ρ€Π°ΠΌΠΎΠ²Π΅ наляво ΠΈ надясно, Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚ΠΎΠ²Π°. Π’ ΡΡŠΡ‰Π°Ρ‚Π° ΠΏΠ°ΠΏΠΊΠ° crypto/block Π½Π°ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ» testgiver.fif:

// "testgiver.addr" file>B 256 B>u@ 
0x8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d
dup constant wallet_addr ."Test giver address = " x. cr

0x4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2
constant dest_addr

-1 constant wc
0x00000011 constant seqno

1000000000 constant Gram
{ Gram swap */ } : Gram*/

6.666 Gram*/ constant amount

// b x --> b'  ( serializes a Gram amount )
{ -1 { 1+ 2dup 8 * ufits } until
  rot over 4 u, -rot 8 * u, } : Gram, 

// create a message (NB: 01b00.., b = bounce)
<b b{010000100} s, wc 8 i, dest_addr 256 u, amount Gram, 0 9 64 32 + + 1+ 1+ u, "GIFT" $, b>
<b seqno 32 u, 1 8 u, swap ref, b>
dup ."enveloping message: " <s csr. cr
<b b{1000100} s, wc 8 i, wallet_addr 256 u, 0 Gram, b{00} s,
   swap <s s, b>
dup ."resulting external message: " <s csr. cr
2 boc+>B dup Bx. cr
"wallet-query.boc" B>file

Π©Π΅ Π³ΠΎ Π·Π°ΠΏΠ°Π·ΠΈΠΌ ΠΈ Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° с асСмблирания ΠΊΠ»ΠΈΠ΅Π½Ρ‚, Π½ΠΎ Ρ‰Π΅ ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°ΠΌΠ΅ пСтия Ρ€Π΅Π΄ - ΠΏΡ€Π΅Π΄ΠΈ Ρ€Π΅Π΄Π° β€œconstant dest_addr". НСка Π³ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ с адрСса Π½Π° ΠΏΠΎΡ€Ρ‚Ρ„Π΅ΠΉΠ»Π°, ΠΊΠΎΠΉΡ‚ΠΎ стС създали ΠΏΡ€Π΅Π΄ΠΈ (пълСн, Π½Π΅ ΡΡŠΠΊΡ€Π°Ρ‚Π΅Π½). β€ž-1:β€œ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС пишС Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ, вмСсто Ρ‚ΠΎΠ²Π° поставСтС β€ž0xβ€œ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΡΡŠΡ‰ΠΎ Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ линията 6.666 Gram*/ constant amount Π΅ количСството Π² Π³Ρ€Π°ΠΌΠΎΠ²Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ искатС (Π½Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 20). Π”ΠΎΡ€ΠΈ Π°ΠΊΠΎ посочитС цяло число, оставСтС дСсСтичната Ρ‚ΠΎΡ‡ΠΊΠ°.

И накрая, трябва Π΄Π° ΠΏΠΎΠΏΡ€Π°Π²ΠΈΠΌ линията 0x00000011 constant seqno. ΠŸΡŠΡ€Π²ΠΎΡ‚ΠΎ число Ρ‚ΡƒΠΊ Π΅ тСкущият ΠΏΠΎΡ€Π΅Π΄Π΅Π½ Π½ΠΎΠΌΠ΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π² Π³Ρ€Π°ΠΌΠΎΠ²Π΅Ρ‚Π΅ Π·Π° ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π°ΠΊΠ°ΡƒΠ½Ρ‚Π°. КъдС Π΄Π° Π³ΠΎ Π²Π·Π΅ΠΌΠ΅ΠΌ? ΠšΠ°ΠΊΡ‚ΠΎ Π±Π΅ спомСнато ΠΏΠΎ-Π³ΠΎΡ€Π΅, стартирайтС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ стартирайтС:

last
getaccount -1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

Π’ самия ΠΊΡ€Π°ΠΉ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π·Π° интСлигСнтния Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ Ρ‰Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚

...
x{FF0020DDA4F260D31F01ED44D0D31FD166BAF2A1F80001D307D4D1821804A817C80073FB0201FB00A4C8CB1FC9ED54}
 x{0000000D}

Числото 0000000D (Ρ‰Π΅ ΠΈΠΌΠ°Ρ‚Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅) ΠΈ ΠΈΠΌΠ° ΠΏΠΎΡ€Π΅Π΄Π΅Π½ Π½ΠΎΠΌΠ΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ трябва Π΄Π° бъдС Π·Π°ΠΌΠ΅Π½Π΅Π½ Π² testgiver.fif.

Π’ΠΎΠ²Π° Π΅ всичко, Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Ρ„Π°ΠΉΠ»Π° ΠΈ стартирайтС (./crypto/fift testgiver.fif). Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ Ρ‰Π΅ бъдС Ρ„Π°ΠΉΠ» wallet-query.boc. Π’ΠΎΠ²Π° Π΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π°Ρ‚Π° сообщСниС към ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ Π½Π° някой Π΄Ρ€ΡƒΠ³ - заявка "ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Π΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π³Ρ€Π°ΠΌΠ° Π½Π° Ρ‚Π°ΠΊΠ°Π²Π° ΠΈ Ρ‚Π°ΠΊΠ°Π²Π° смСтка."

Използвайки ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΊΠ°Ρ‡Π΅Ρ‚Π΅ Π³ΠΎ Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°:

> sendfile wallet-query.boc
[ 1][t 1][1558747399.456575155][test-lite-client.cpp:577][!testnode]    sending query from file wallet-query.boc
[ 3][t 2][1558747399.500236034][test-lite-client.cpp:587][!query]   external message status is 1

Ако сСга сС ΠΎΠ±Π°Π΄ΠΈ last, ΠΈ слСд Ρ‚ΠΎΠ²Π° ΠΎΡ‚Π½ΠΎΠ²ΠΎ поискайтС статуса Π½Π° Π°ΠΊΠ°ΡƒΠ½Ρ‚Π°, ΠΎΡ‚ ΠΊΠΎΠΉΡ‚ΠΎ смС поискали Π³Ρ€Π°ΠΌΠΎΠ²Π΅, Ρ‚ΠΎΠ³Π°Π²Π° трябва Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Π΅ порСдният ΠΌΡƒ Π½ΠΎΠΌΠ΅Ρ€ сС Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ» с Π΅Π΄ΠΈΠ½ΠΈΡ†Π° - Ρ‚ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈΠ» ΠΏΠ°Ρ€ΠΈ към Π½Π°ΡˆΠ°Ρ‚Π° смСтка.

ΠŸΠΎΡΠ»Π΅Π΄Π½Π°Ρ‚Π° оставаща ΡΡ‚ΡŠΠΏΠΊΠ° Π΅ Π΄Π° ΠΊΠ°Ρ‡ΠΈΠΌ ΠΊΠΎΠ΄Π° Π½Π° нашия ΠΏΠΎΡ€Ρ‚Ρ„Π΅ΠΉΠ» (салдото ΠΌΡƒ Π²Π΅Ρ‡Π΅ Π΅ попълнСно, Π½ΠΎ няма Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ управлявамС Π±Π΅Π· ΠΊΠΎΠ΄Π° Π½Π° интСлигСнтния Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€). НиС изпълнявамС sendfile new-wallet-query.boc - ΠΈ Ρ‚ΠΎΠ²Π° Π΅, ΠΈΠΌΠ°Ρ‚Π΅ собствСн ΠΏΠΎΡ€Ρ‚Ρ„Π΅ΠΉΠ» Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° TON (ΠΌΠ°ΠΊΠ°Ρ€ ΠΈ само тСстов засСга).

Π‘ΡŠΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ изходящи Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ

Π—Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° ΠΏΠ°Ρ€ΠΈ ΠΎΡ‚ баланса Π½Π° създадСния Π°ΠΊΠ°ΡƒΠ½Ρ‚ ΠΈΠΌΠ° Ρ„Π°ΠΉΠ» crypto/block/wallet.fif, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΡ‰ΠΎ трябва Π΄Π° бъдС поставСн Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° с асСмблирания ΠΊΠ»ΠΈΠ΅Π½Ρ‚.

Подобно Π½Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ‚Π΅ ΡΡ‚ΡŠΠΏΠΊΠΈ, трябва Π΄Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Ρ‚Π΅ сумата, която ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΡ‚Π΅, адрСса Π½Π° получатСля (dest_addr) ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° Π½Π° вашия ΠΏΠΎΡ€Ρ‚Ρ„Π΅ΠΉΠ» (Ρ‚ΠΎ Π΅ Ρ€Π°Π²Π½ΠΎ Π½Π° 1 слСд инициализация Π½Π° ΠΏΠΎΡ€Ρ‚Ρ„Π΅ΠΉΠ»Π° ΠΈ сС ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° с 1 слСд всяка изходяща транзакция - ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΡ‚ Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ Π·Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° вашия Π°ΠΊΠ°ΡƒΠ½Ρ‚). Π—Π° тСстовС ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΡ€Ρ‚Ρ„Π΅ΠΉΠ»Π° ΠΌΠΈ - 0x4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2.

ΠŸΡ€ΠΈ стартиранС (./crypto/fift wallet.fif) ΡΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚ Ρ‰Π΅ Π²Π·Π΅ΠΌΠ΅ адрСса Π½Π° вашия ΠΏΠΎΡ€Ρ‚Ρ„Π΅ΠΉΠ» (ΠΎΡ‚ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΡ‚Π΅) ΠΈ личния ΠΌΡƒ ΠΊΠ»ΡŽΡ‡ ΠΎΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ new-wallet.addr ΠΈ new-wallet.pkΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎΡ‚ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Ρ‰Π΅ бъдС записано Π½Π° new-wallet-query.boc.

ΠšΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΏΡ€Π΅Π΄ΠΈ, Π·Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ изпълнСниС Π½Π° транзакцията, Π½ΠΈΠ΅ сС ΠΎΠ±Π°ΠΆΠ΄Π°ΠΌΠ΅ sendfile new-wallet-query.boc Π² ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π½Π΅ забравяйтС Π΄Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° (last) ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ Π΄Π°Π»ΠΈ Π±Π°Π»Π°Π½ΡΡŠΡ‚ ΠΈ seqno Π½Π° нашия ΠΏΠΎΡ€Ρ‚Ρ„Π΅ΠΉΠ» са сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ»ΠΈ (getaccount <account_id>).

TON (Telegram Open Network) тСстов ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ Π½ΠΎΠ² Π΅Π·ΠΈΠΊ Π½Π° Fift Π·Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ

Π’ΠΎΠ²Π° Π΅ всичко, сСга ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° създавамС ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ Π² TON ΠΈ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°ΠΌΠ΅ заявки към тях. ΠšΠ°ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° функционалност Π²Π΅Ρ‡Π΅ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½Π°, Π·Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎ-приятСлски ΠΏΠΎΡ€Ρ‚Ρ„Π΅ΠΉΠ» с Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅Π½ интСрфСйс (ΠΎΡ‡Π°ΠΊΠ²Π° сС ΠΎΠ±Π°Ρ‡Π΅, Ρ‡Π΅ Ρ‚Π°ΠΊΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ Ρ‰Π΅ станС Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ ΠΊΠ°Ρ‚ΠΎ част ΠΎΡ‚ ΠΌΠ΅ΡΠΈΠ½Π΄ΠΆΡŠΡ€Π°).

Π’ Π°Π½ΠΊΠ΅Ρ‚Π°Ρ‚Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° участват само рСгистрирани ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ. Π’ΠΏΠΈΡˆΠΈ сС, Моля Ρ‚Π΅.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΡƒΠ²Π°Ρ‚Π΅ Π»ΠΈ сС ΠΎΡ‚ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°Ρ‰ΠΈ статии с Π°Π½Π°Π»ΠΈΠ· Π½Π° TON, TVM, Fift?

  • Π”Π°, Ρ‡Π°ΠΊΠ°ΠΌ Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΡ€Π΅Π΄ΠΈΡ†Π° ΠΎΡ‚ статии с ΠΎΠ±Ρ‰ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° TON

  • Π”Π°, интСрСсно Π΅ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π·Π° Π΅Π·ΠΈΠΊΠ° Fift

  • Π”Π°, искам Π΄Π° Π½Π°ΡƒΡ‡Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π·Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π°Ρ‚Π° машина TON ΠΈ асСмблСра Π·Π° нСя

  • НС, Π½ΠΈΡ‰ΠΎ ΠΎΡ‚ Ρ‚ΠΎΠ²Π° Π½Π΅ ΠΌΠ΅ интСрСсува.

39 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ гласуваха. 12 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ сС Π²ΡŠΠ·Π΄ΡŠΡ€ΠΆΠ°Ρ…Π°.

Какво мислитС Π·Π° ΠΏΠ»Π°Π½ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° Telegram Π΄Π° стартира TON?

  • Π’ΡŠΠ·Π»Π°Π³Π°ΠΌ Π³ΠΎΠ»Π΅ΠΌΠΈ Π½Π°Π΄Π΅ΠΆΠ΄ΠΈ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

  • ΠŸΡ€ΠΎΡΡ‚ΠΎ Π³ΠΎ слСдя с интСрСс.

  • Π‘ΠΊΠ΅ΠΏΡ‚ΠΈΡ‡Π΅Π½ съм, съмнявам сС Π² успСха ΠΌΡƒ

  • Π‘ΠΊΠ»ΠΎΠ½Π΅Π½ съм Π΄Π° смятам Ρ‚Π°Π·ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π° Π·Π° ΠΏΡ€ΠΎΠ²Π°Π», Π½Π΅Π½ΡƒΠΆΠ΅Π½ Π·Π° ΡˆΠΈΡ€ΠΎΠΊΠΈΡ‚Π΅ маси

47 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ гласуваха. 12 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ сС Π²ΡŠΠ·Π΄ΡŠΡ€ΠΆΠ°Ρ…Π°.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€