Kuaj cov neeg siv TON (Telegram Qhib Network) thiab cov lus Fift tshiab rau kev cog lus ntse

Ntau tshaj li ib xyoos dhau los, nws tau paub txog cov phiaj xwm ntawm Telegram tus neeg xa xov liaison los tso nws tus kheej kev sib koom ua ke. Qhib Network telegram. Tom qab ntawd cov ntaub ntawv muaj txiaj ntsig zoo tau dhau los, uas tau raug liam tias sau los ntawm Nikolai Durov thiab piav qhia txog cov qauv ntawm lub network yav tom ntej. Rau cov uas tsis tau nws, kuv xav kom koj nyeem kuv cov lus rov qab ntawm daim ntawv no (ntu 1, ntu 2; qhov thib peb, alas, tseem khaws cov hmoov av hauv cov ntawv sau).

Txij thaum ntawd los, tsis muaj xov xwm tseem ceeb ntawm TON txoj kev loj hlob mus txog rau ob peb hnub dhau los (hauv ib qho ntawm cov channel tsis raug cai) qhov txuas mus rau nplooj ntawv tsis tshwm sim https://test.ton.org/download.html, nyob qhov twg:
β—¦ ton-test-liteclient-full.tar.xz - qhov chaw ntawm tus neeg siv lub teeb rau TON xeem network;
β—¦ ton-lite-client-test1.config.json - configuration ntaub ntawv rau txuas mus rau lub xeem network;
β—¦ NYEEM - cov ntaub ntawv hais txog kev tsim thiab tso tawm tus neeg siv khoom;
β—¦ YUAV UA LI CAS - cov lus qhia ua ntu zus ntawm kev tsim daim ntawv cog lus ntse siv tus neeg siv khoom;
β—¦ ton.pdf - Cov ntaub ntawv kho tshiab (hnub tim 2 Lub Peb Hlis 2019) nrog rau kev saib xyuas kev ua haujlwm ntawm TON network;
β—¦ tvm pdf - kev piav qhia ntawm TVM (TON Virtual Machine, TON virtual tshuab);
β—¦ twb.pdf - kev piav qhia ntawm TON blockchain;
β—¦ fifthbase.pdf - piav qhia ntawm cov lus Fift tshiab, tsim los tsim cov ntawv cog lus ntse hauv TON.

Kuv rov hais dua, tsis muaj kev lees paub ntawm nplooj ntawv thiab tag nrho cov ntaub ntawv no los ntawm Telegram, tab sis qhov ntim ntawm cov ntaub ntawv no ua rau lawv muaj kev ntseeg siab heev. Tua tawm tus neeg siv khoom tshaj tawm ntawm ib tus kheej txaus ntshai.

Tsim tus neeg siv khoom sim

Ua ntej, cia peb sim tsim thiab khiav cov neeg siv khoom sim - hmoov zoo, NYEEM piav qhia txog txheej txheem yooj yim no. Kuv yuav ua qhov no siv macOS 10.14.5 ua piv txwv; Kuv tsis tuaj yeem pom zoo rau kev ua tiav ntawm kev tsim ntawm lwm lub tshuab.

  1. Download tau thiab unpack qhov chaw archive. Nws yog ib qho tseem ceeb mus download tau qhov tseeb version raws li rov qab compatibility yog tsis guaranteed nyob rau theem no.

  2. Nco ntsoov tias qhov tseeb versions ntawm make, cmake (version 3.0.2 los yog siab dua), OpenSSL (xws li C header files), g ++ los yog clang raug ntsia rau hauv lub system. Kuv tsis tas yuav nruab dab tsi, txhua yam tuaj ua ke tam sim ntawd.

  3. Cia peb xav tias cov peev txheej tau ntim rau hauv ib daim ntawv tais ceev tseg ~/lite-client. Cais los ntawm nws, tsim ib qho khoob khoob rau qhov kev sib sau ua ke (piv txwv li, ~/liteclient-build), thiab los ntawm nws (cd ~/liteclient-build) hu cov commands:

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

    Kuaj cov neeg siv TON (Telegram Qhib Network) thiab cov lus Fift tshiab rau kev cog lus ntse

    Txhawm rau tsim tus neeg txhais lus Fift rau cov ntawv cog lus ntse (ntau ntxiv txog nws hauv qab), peb kuj hu

    cmake --build . --target fift

  4. Download tau qhov tam sim no configuration file txuas mus rau qhov kev xeem network thiab muab tso rau hauv daim nplaub tshev nrog cov neeg siv khoom sib dhos.

  5. Ua li cas, koj tuaj yeem pib tus neeg siv khoom:

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

Yog tias txhua yam ua tiav lawm, koj yuav tsum pom qee yam zoo li no:

Kuaj cov neeg siv TON (Telegram Qhib Network) thiab cov lus Fift tshiab rau kev cog lus ntse

Raws li peb tuaj yeem pom, muaj ob peb cov lus txib:
β—¦ help - tso saib cov npe ntawm cov lus txib;
β—¦ quit - tawm mus;
β—¦ time - qhia lub sijhawm tam sim no ntawm lub server;
β—¦ status - qhia txog kev sib txuas thiab cov xwm txheej hauv zos;
β—¦ last - hloov kho lub xeev ntawm blockchain (download lub block kawg). Nws yog ib qho tseem ceeb uas yuav tau khiav cov lus txib no ua ntej txhua qhov kev thov kom paub tseeb tias koj pom lub xeev tam sim no ntawm lub network.
β—¦ sendfile <filename> - upload cov ntaub ntawv hauv zos rau TON network. Qhov no yog li cas kev sib cuam tshuam nrog lub network tshwm sim - suav nrog, piv txwv li, tsim cov ntawv cog lus ntse tshiab thiab thov kom hloov nyiaj ntawm cov nyiaj;
β—¦ getaccount <address> - qhia qhov tam sim no (thaum lub sijhawm cov lus txib raug tua) last) cov xwm txheej ntawm tus account nrog rau qhov chaw nyob;
β—¦ privkey <filename> - thauj tus yuam sij ntiag tug los ntawm cov ntaub ntawv hauv zos.

Yog tias, thaum pib tus neeg siv khoom, koj hloov lub nplaub tshev rau nws siv qhov kev xaiv -D, ces nws yuav ntxiv qhov kawg block ntawm tus masterchain rau hauv nws:

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

Tam sim no peb tuaj yeem txav mus rau ntau yam nthuav dav - kawm Fift hom lus, sim ua kom tiav daim ntawv cog lus ntse (piv txwv li, tsim lub hnab ntim khoom), xa mus rau lub network thiab sim hloov nyiaj ntawm cov nyiaj.

Lus Fift

Los ntawm cov ntaub ntawv fifthbase.pdf koj tuaj yeem pom tias pab pawg Telegram tau tsim cov lus tshiab los tsim cov ntawv cog lus ntse Tsib (pom tseeb los ntawm tus lej thib tsib, zoo ib yam li Forth, ib hom lus uas Fifth muaj ntau ntau).

Cov ntaub ntawv muaj ntau heev, 87 nplooj ntawv, thiab kuv yuav tsis rov hais dua nws cov ntsiab lus nthuav dav hauv lub ntsiab lus ntawm tsab xov xwm no (tsawg kawg vim kuv tsis tau nyeem nws tus kheej :). Kuv yuav tsom mus rau cov ntsiab lus tseem ceeb thiab muab ob peb kab lus piv txwv hauv hom lus no.

Ntawm theem pib, Fift's syntax yog qhov yooj yim heev: nws cov cai muaj lus, feem ntau sib cais los ntawm qhov chaw lossis kab tawg (qhov tshwj xeeb: qee cov lus tsis tas yuav tsum muaj tus cais tom qab lawv tus kheej). Ib qho lo lus yog ib tug case-sensitive sequence ntawm cov cim uas sib raug rau ib yam txhais tau (kwv yees, tus neeg txhais lus yuav tsum ua li cas thaum nws ntsib lo lus no). Yog tias tsis muaj ib lo lus txhais, tus neeg txhais lus sim ntsuas nws ua tus lej thiab muab tso rau hauv pawg. Los ntawm txoj kev, cov lej ntawm no yog - dheev - 257-ntsis integers, thiab tsis muaj ib feem ntawm tag nrho - ntau precisely, lawv tam sim ntawd tig mus rau hauv ib khub ntawm integers, tsim tus zauv thiab denominator ntawm ib tug rational feem.

Cov lus muaj feem cuam tshuam nrog qhov tseem ceeb nyob rau sab saum toj ntawm pawg. Ib hom lus txawv - ua ntej - tsis siv cov pawg, tab sis cov cim tom ntej los ntawm cov ntaub ntawv qhov chaw. Piv txwv li, qhov no yog li cas txoj hlua literals raug siv - lub cim cim (") yog lo lus ua ntej uas saib rau tom ntej (kaw) nqe lus, thiab thawb txoj hlua ntawm lawv mus rau pawg. Ib-liners coj zoo ib yam li (//) thiab multiline (/*) lus.

Qhov no yog qhov uas yuav luag tag nrho cov qauv sab hauv ntawm cov lus xaus. Txhua yam ntxiv (nrog rau kev tswj hwm) txhais tau tias yog cov lus (txawm yog sab hauv, xws li kev ua lej lej thiab txhais cov lus tshiab; lossis txhais hauv "cov tsev qiv ntawv txheem" Fift.fif, uas yog nyob rau hauv daim ntawv tais ceev tseg crypto/fift hauv cov ntaub ntawv).

Ib qho piv txwv yooj yim program hauv Fift:

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

Thawj kab txhais ib lo lus tshiab setxy (nco lub prefix {, uas tsim ib qho thaiv ua ntej kaw } thiab ua ntej :, uas txhais tau tias lo lus). setxy siv tus lej los ntawm sab saum toj ntawm pawg, txhais (lossis redefines) nws raws li lub ntiaj teb tas li x, thiab square ntawm tus lej no raws li qhov tsis tu ncua y (Vim tias cov txiaj ntsig ntawm qhov tsis tu ncua tuaj yeem raug rov txhais dua, Kuv xav hu rau lawv qhov hloov pauv, tab sis kuv ua raws li cov lus cog tseg hauv cov npe).

Ob kab tom ntej no muab tus lej rau ntawm pawg thiab hu setxy, ces qhov tseem ceeb ntawm qhov tsis tu ncua yog tshwm sim x, y (Lo lus yog siv rau cov zis .), ob qho tib si yog muab tso rau hauv pawg, summed, thiab cov txiaj ntsig tau luam tawm. Yog li ntawd peb yuav pom:

3 9 12 ok
7 49 56 ok

(Cov kab "ok" yog luam tawm los ntawm tus neeg txhais lus thaum nws ua tiav cov kab tam sim no hauv hom kev sib tham sib tham)

Zoo, tag nrho code piv txwv:

"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

Cov ntaub ntawv txaus ntshai no yog tsim kom muaj kev cog lus ntse - nws yuav muab tso rau hauv cov ntaub ntawv new-wallet-query.boc tom qab ua tiav. Thov nco ntsoov tias lwm cov lus sib dhos yog siv ntawm no rau TON Virtual Machine (Kuv yuav tsis nyob ntawm nws kom meej), cov lus qhia uas yuav muab tso rau hauv blockchain.

Yog li, lub assembler rau TVM yog sau nyob rau hauv Fift - qhov chaw ntawm no assembler nyob rau hauv cov ntaub ntawv crypto/fift/Asm.fif thiab tau txuas rau thaum pib ntawm daim ntawv teev saum toj no.

Kuv tuaj yeem hais li cas, thaj tsam Nikolai Durov tsuas yog nyiam tsim cov lus programming tshiab :)

Tsim ib daim ntawv cog lus ntse thiab cuam tshuam nrog TON

Yog li, cia peb xav tias peb tau sib sau ua ke TON tus neeg siv khoom thiab tus neeg txhais lus Fift raws li tau piav qhia saum toj no thiab paub txog cov lus. Yuav ua li cas los tsim daim ntawv cog lus ntse tam sim no? Qhov no tau piav qhia hauv cov ntaub ntawv YUAV UA LI CAS, txuas mus rau qhov chaw.

Cov nyiaj hauv TON

Raws li kuv tau piav qhia hauv TON kev tshuaj xyuas, lub network no muaj ntau tshaj ib qho blockchain - muaj ib qho kev sib koom, hu ua. "master chain", nrog rau tus naj npawb ntawm cov khoom siv ntxiv "ua haujlwm chains", txheeb xyuas los ntawm tus lej 32-ntsis. Tus masterchain muaj tus cim ntawm -1; ntxiv rau nws, "pem" workchain nrog tus cim ntawm 0 kuj tseem siv tau. Internally, txhua workchain tau muab faib ua shardchains, tab sis qhov no yog ib qho kev nthuav dav uas tsis tas yuav tsum tau khaws cia hauv siab.

Hauv ib qho chaw ua haujlwm, ntau tus lej khaws cia uas muaj lawv tus lej account_id. Rau tus tswv saw thiab xoom ua haujlwm saw, lawv yog 256 ntsis ntev. Yog li, tus account ID yog sau, piv txwv li, zoo li no:

-1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

Qhov no yog hom "raws": thawj tus ID ua haujlwm, tom qab ntawd, thiab tus account ID hauv hexadecimal sau.

Tsis tas li ntawd, muaj cov qauv luv luv - tus naj npawb workchain thiab chaw nyob tus lej tau muab tso rau hauv daim ntawv binary, daim tshev nyiaj tau ntxiv rau lawv, thiab tag nrho cov no yog encoded hauv Base64:

Ef+BVndbeTJeXWLnQtm5bDC2UVpc0vH2TF2ksZPAPwcODSkb

Paub cov ntaub ntawv hom ntawv no, peb tuaj yeem thov lub xeev tam sim no ntawm tus as-qhauj los ntawm tus neeg siv khoom sim siv cov lus txib

getaccount -1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

Peb yuav tau txais qee yam zoo li no:

[ 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}

Peb pom cov qauv uas muab khaws cia rau hauv DHT ntawm lub workchain teev. Piv txwv li, hauv daim teb storage.balance yog qhov nyiaj tshuav tam sim no, hauv storage.state.code - ntse daim ntawv cog lus code, thiab hauv storage.state.data - nws cov ntaub ntawv tam sim no. Thov nco ntsoov tias TON cov ntaub ntawv khaws cia - Cell, hlwb - yog tsob ntoo zoo li, txhua lub xovtooj tuaj yeem muaj nws cov ntaub ntawv thiab cov menyuam yaus. Qhov no yog qhia raws li indentation nyob rau hauv kab kawg.

Tsim ib daim ntawv cog lus ntse

Tam sim no cia peb tsim cov qauv no peb tus kheej (nws hu ua BOC - hnab cell) siv cov lus Fift. Hmoov zoo, koj tsis tas yuav sau daim ntawv cog lus ntse koj tus kheej - hauv daim ntawv tais ceev tseg crypto/block muaj cov ntaub ntawv los ntawm qhov chaw archive new-wallet.fif, uas yuav pab peb tsim lub hnab nyiaj tshiab. Cia peb luam nws mus rau lub nplaub tshev nrog cov neeg siv khoom sib dhos (~/liteclient-build, yog tias koj ua raws li cov lus qhia saum toj no). Kuv tau hais txog nws cov ntsiab lus saum toj no ua piv txwv ntawm cov cai ntawm Fift.

Ua cov ntaub ntawv no raws li hauv qab no:

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

nws yog <source-directory> yuav tsum tau hloov nrog txoj hauv kev mus rau qhov chaw tsis tau ntim khoom (tus cim "~", hmoov tsis, siv tsis tau ntawm no, tag nrho txoj kev xav tau). Es tsis txhob siv tus yuam sij -I koj tuaj yeem txhais qhov hloov pauv ib puag ncig FIFTPATH thiab muab txoj kev no tso rau hauv nws.

Txij li thaum peb launched Fift nrog cov ntaub ntawv npe new-wallet.fif, nws yuav ua nws thiab tawm. Yog tias koj tshem tawm cov ntaub ntawv npe, koj tuaj yeem ua si nrog tus neeg txhais lus sib tham.

Tom qab ua tiav, qee yam zoo li no yuav tsum tau tshwm sim hauv console:

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)

Qhov no txhais tau tias lub hnab nyiaj nrog tus ID -1:4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2 (los yog dab tsi yog tib yam, 0f9PzVILj8yglrVn1zS-NSjtxr7QBfaTCp7JrBqnFPIR8nhZ) ntse tsim. Cov lej sib thooj yuav nyob hauv cov ntaub ntawv new-wallet-query.boc, nws qhov chaw nyob nyob hauv new-wallet.addr, thiab tus yuam sij ntiag tug nyob hauv new-wallet.pk (ceev faj - khiav cov ntawv dua yuav overwrite cov ntaub ntawv no).

Tau kawg, TON network tseem tsis tau paub txog lub hnab nyiaj no; nws tsuas yog khaws cia hauv daim ntawv ntawm cov ntaub ntawv no. Tam sim no nws yuav tsum tau muab tso rau hauv lub network. Txawm li cas los xij, qhov teeb meem yog tias tsim kom muaj daim ntawv cog lus ntse koj yuav tsum tau them nyiaj ua haujlwm, thiab koj tus lej nyiaj tshuav tseem yog xoom.

Hauv hom kev ua haujlwm, qhov teeb meem no yuav daws tau los ntawm kev yuav cov grams ntawm kev sib pauv (lossis hloov ntawm lwm lub hnab nyiaj). Zoo, nyob rau hauv hom kev sim tam sim no, ib daim ntawv cog lus ntse tshwj xeeb tau tsim, uas koj tuaj yeem thov txog li 20 grams ib yam li ntawd.

Tsim kev thov rau lwm tus neeg daim ntawv cog lus ntse

Peb ua daim ntawv thov rau daim ntawv cog lus ntse uas faib cov grams sab laug thiab sab xis zoo li qhov no. Nyob rau hauv tib lub nplaub tshev crypto/block nrhiav cov ntaub ntawv 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

Peb kuj tseem yuav khaws cia rau hauv daim nplaub tshev nrog cov neeg siv khoom sib dhos, tab sis peb yuav kho cov kab tsib - ua ntej kab "constant dest_addr". Cia peb hloov nws nrog qhov chaw nyob ntawm lub hnab nyiaj uas koj tsim ua ntej (tag nrho, tsis yog luv luv). Tsis tas yuav sau "-1:" thaum pib, hloov "0x" thaum pib.

Koj tuaj yeem hloov txoj kab 6.666 Gram*/ constant amount - qhov no yog cov nyiaj hauv grams uas koj thov (tsis pub ntau tshaj 20). Txawm hais tias koj qhia tag nrho tus lej, tawm ntawm tus lej lej.

Thaum kawg, koj yuav tsum kho txoj kab 0x00000011 constant seqno. Thawj tus lej ntawm no yog tus lej tam sim no, uas tau muab khaws cia rau hauv tus as-qhauj tshaj tawm grams. Kuv tuaj yeem tau txais nws los ntawm qhov twg? Raws li tau hais los saum no, pib tus neeg siv khoom thiab khiav:

last
getaccount -1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

Thaum kawg, cov ntaub ntawv cog lus ntse yuav muaj

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

Tus lej 0000000D (koj yuav loj dua) yog tus lej uas yuav tsum tau hloov mus rau hauv testgiver.fif.

Qhov ntawd yog nws, txuag cov ntaub ntawv thiab khiav (./crypto/fift testgiver.fif). Cov zis yuav yog cov ntaub ntawv wallet-query.boc. Qhov no yog qhov tsim сообщСниС rau lwm tus neeg daim ntawv cog lus ntse - ib qho kev thov "hloov ntau grams mus rau xws li thiab xws li ib tug account."

Siv tus neeg siv khoom, peb xa nws mus rau lub network:

> 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

Yog koj tam sim no hu last, thiab tom qab ntawd rov thov cov xwm txheej ntawm tus as-qhauj uas peb thov rau grams, tom qab ntawd peb yuav tsum pom tias nws cov lej tau nce los ntawm ib qho - qhov no txhais tau tias nws xa nyiaj rau peb tus as-qhauj.

Cov kauj ruam kawg tseem nyob - rub tawm tus lej ntawm peb lub hnab nyiaj (nws qhov nyiaj tshuav twb tau ntxiv lawm, tab sis tsis muaj daim ntawv cog lus ntse peb yuav tsis muaj peev xwm tswj tau nws). Peb ua sendfile new-wallet-query.boc - thiab qhov ntawd yog nws, koj muaj koj lub hnab nyiaj ntawm TON network (txawm tias nws tsuas yog ib qho kev sim rau tam sim no).

Tsim cov khoom lag luam tawm

Txhawm rau hloov nyiaj los ntawm qhov nyiaj tshuav ntawm tus account tsim, muaj cov ntaub ntawv crypto/block/wallet.fif, uas tseem yuav tsum tau muab tso rau hauv daim nplaub tshev nrog cov neeg siv khoom sib dhos.

Zoo ib yam li cov kauj ruam dhau los, koj yuav tsum tau kho qhov nyiaj koj hloov mus, tus neeg txais qhov chaw nyob (dest_addr), thiab seqno ntawm koj lub hnab nyiaj (nws yog sib npaug rau 1 tom qab pib lub hnab nyiaj thiab nce 1 tom qab txhua qhov kev lag luam tawm - koj tuaj yeem ua tau pom nws los ntawm kev thov cov xwm txheej ntawm koj tus account). Rau kev xeem, koj tuaj yeem siv, piv txwv li, kuv lub hnab nyiaj - 0x4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2.

Thaum pib (./crypto/fift wallet.fif) tsab ntawv yuav coj qhov chaw nyob ntawm koj lub hnab nyiaj (los ntawm qhov chaw koj hloov mus) thiab nws tus yuam sij ntiag tug los ntawm cov ntaub ntawv new-wallet.addr ΠΈ new-wallet.pk, thiab cov lus tau txais yuav raug sau rau new-wallet-query.boc.

Raws li ua ntej, ncaj qha ua qhov kev sib pauv, hu sendfile new-wallet-query.boc hauv tus neeg siv khoom. Tom qab ntawd, tsis txhob hnov ​​​​qab hloov kho lub xeev ntawm blockchain (last) thiab xyuas tias qhov nyiaj tshuav thiab seqno ntawm peb lub hnab nyiaj tau hloov pauv (getaccount <account_id>).

Kuaj cov neeg siv TON (Telegram Qhib Network) thiab cov lus Fift tshiab rau kev cog lus ntse

Ntawd yog tag nrho, tam sim no peb tuaj yeem tsim cov ntawv cog lus ntse hauv TON thiab xa cov lus thov rau lawv. Raws li koj tuaj yeem pom, kev ua haujlwm tam sim no tau txaus rau, piv txwv li, ua lub hnab nyiaj tus phooj ywg ntau dua nrog cov duab kos duab (txawm li cas los xij, nws xav tias nws yuav dhau los ua ib feem ntawm tus tub txib).

Tsuas yog cov neeg siv sau npe tuaj yeem koom nrog hauv daim ntawv ntsuam xyuas. Kos npe rau hauvthov.

Koj puas xav txuas ntxiv cov lus nrog kev tsom xam ntawm TON, TVM, Fift?

  • Yog lawm, Kuv tab tom tos kom tiav ntawm cov kab lus nrog cov ntsiab lus dav dav ntawm TON

  • Yog, nws yog qhov nthuav kom nyeem ntxiv txog Fift lus

  • Yog lawm, Kuv xav kawm ntxiv txog TON Virtual Machine thiab cov khoom sib dhos rau nws

  • Tsis yog, tsis muaj qhov no yog qhov nthuav

39 cov neeg siv pov npav. 12 cov neeg siv txwv tsis pub siv.

Koj xav li cas txog Telegram cov phiaj xwm tsim TON?

  • Kuv muaj kev cia siab rau qhov project no

  • Kuv tsuas yog ua raws nws txoj kev loj hlob nrog kev txaus siab.

  • Kuv tsis ntseeg thiab tsis ntseeg nws txoj kev vam meej.

  • Kuv xav xav txog qhov kev pib no ua tsis tiav thiab tsis tsim nyog rau cov neeg coob coob

47 cov neeg siv pov npav. 12 cov neeg siv txwv tsis pub siv.

Tau qhov twg los: www.hab.com

Ntxiv ib saib