Gwada abokin ciniki TON (Telegram Open Network) da sabon Harshen Fift don kwangiloli masu wayo

Fiye da shekara guda da suka gabata, ya zama sananne game da shirye-shiryen manzo na Telegram don sakin hanyar sadarwar da ba ta da tushe Bude hanyar sadarwar hanyar sadarwa. Sa'an nan kuma akwai wani takardun fasaha mai mahimmanci, wanda ake zargin Nikolai Durov ya rubuta kuma ya bayyana tsarin hanyar sadarwa na gaba. Ga wadanda suka rasa ta, ina ba da shawarar ku karanta sake maimaita wannan takarda (part 1, part 2; kashi na uku, kash, har yanzu yana tattara ƙura a cikin zane).

Tun daga wannan lokacin, babu wani muhimmin labari game da matsayin ci gaban TON har zuwa kwanaki biyu da suka gabata (a cikin ɗayan tashoshin da ba na hukuma ba) hanyar haɗi zuwa shafin bai bayyana ba https://test.ton.org/download.htmlinda suke:
ton-gwaji-liteclient-cikakken.tar.xz - haske tushen abokin ciniki don cibiyar sadarwar gwajin TON;
ton-lite-abokin ciniki-test1.config.json - fayil ɗin sanyi don haɗawa zuwa cibiyar sadarwar gwaji;
README - bayanai game da taro da ƙaddamar da abokin ciniki;
YADDA - umarnin mataki-mataki kan yadda ake ƙirƙirar kwangila mai wayo ta amfani da abokin ciniki;
ton.pdf - daftarin aiki da aka sabunta ( kwanan watan Maris 2, 2019) tare da bayyani na fasaha na cibiyar sadarwar TON;
tvm.pdf - bayanin fasaha na TVM (TON Virtual Machine, TON kama-da-wane inji);
tblkch.pdf - bayanin fasaha na TON blockchain;
tushe na biyar.pdf - bayanin sabon Harshen Fift, wanda aka tsara don ƙirƙirar kwangiloli masu wayo a cikin TON.

Ina sake maimaitawa, babu wani tabbaci na hukuma akan shafin da duk waɗannan takaddun daga Telegram, amma girman waɗannan kayan ya sa su zama a bayyane. Kaddamar da abokin ciniki da aka buga a kan kansa.

Gina abokin gwajin gwaji

Da farko, bari mu yi ƙoƙarin ginawa da gudanar da abokin ciniki na gwaji - an yi sa'a, README ya bayyana wannan tsari mai sauƙi daki-daki. Zan yi wannan ta amfani da macOS 10.14.5 a matsayin misali; Ba zan iya ba da tabbacin nasarar ginawa akan sauran tsarin ba.

  1. Zazzage kuma cire kaya tushen tarihin. Yana da mahimmanci don saukar da sabon sigar saboda ba a tabbatar da dacewa da baya ba a wannan matakin.

  2. Tabbatar cewa an shigar da sabbin nau'ikan make, cmake (version 3.0.2 ko sama), OpenSSL (gami da fayilolin taken C), g++ ko Clag akan tsarin. Ba sai na shigar da komai ba, komai ya taru nan da nan.

  3. Bari mu ɗauka an cire tushen abubuwan cikin babban fayil ~/lite-client. Na dabam daga gare ta, ƙirƙiri babban fayil mara komai don aikin da aka haɗa (misali, ~/liteclient-buildkuma daga gare ta (cd ~/liteclient-build) kira umarni:

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

    Gwada abokin ciniki TON (Telegram Open Network) da sabon Harshen Fift don kwangiloli masu wayo

    Don gina fassarar Harshen Fift don kwangilar wayo (ƙarin game da shi a ƙasa), muna kuma kira

    cmake --build . --target fift

  4. Zazzage na yanzu fayil ɗin sanyi don haɗa zuwa cibiyar sadarwar gwaji kuma saka shi a cikin babban fayil tare da abokin ciniki da aka haɗa.

  5. An yi, za ka iya fara abokin ciniki:

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

Idan an yi komai daidai, ya kamata ku ga wani abu kamar haka:

Gwada abokin ciniki TON (Telegram Open Network) da sabon Harshen Fift don kwangiloli masu wayo

Kamar yadda muke iya gani, akwai ƴan samuwa umarni:
help - nuna wannan jerin umarni;
quit - fita;
time - nuna lokacin yanzu akan sabar;
status - nuna haɗin kai da matsayin bayanan gida;
last - sabunta yanayin blockchain (zazzage toshe na ƙarshe). Yana da mahimmanci a gudanar da wannan umarni kafin kowane buƙatun don tabbatar da cewa kun ga halin da cibiyar sadarwar ke ciki.
sendfile <filename> - loda fayil na gida zuwa cibiyar sadarwar TON. Wannan shine yadda hulɗa tare da hanyar sadarwa ke faruwa - ciki har da, alal misali, ƙirƙirar sababbin kwangila masu kyau da buƙatun don canja wurin kuɗi tsakanin asusun;
getaccount <address> - nuna halin yanzu (a lokacin da aka aiwatar da umarnin) last) matsayin asusun tare da adireshin da aka ƙayyade;
privkey <filename> - loda maɓallin keɓaɓɓen daga fayil na gida.

Idan, lokacin fara abokin ciniki, kun canza wurin babban fayil zuwa gare ta ta amfani da zaɓi -D, sannan zai kara toshe karshe na masterchain a cikinsa:

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

Yanzu za mu iya matsawa zuwa mafi ban sha'awa abubuwa - koyi da Fift harshe, kokarin hada mai kaifin basira kwangila (misali, ƙirƙira walat gwajin), upload da shi zuwa ga cibiyar sadarwa da kuma kokarin canja wurin kudi tsakanin asusun.

Harshe Na Biyar

Daga takardar tushe na biyar.pdf za ku iya gano cewa ƙungiyar Telegram ta ƙirƙiri sabon yare mai tarin yawa don ƙirƙirar kwangiloli masu wayo Biyar (da alama daga lamba biyar, kama da Forth, harshen da na biyar yana da abubuwa da yawa tare).

Takardun yana da girma sosai, shafuka 87, kuma ba zan sake ba da bayanin abin da ke ciki ba dalla-dalla a cikin tsarin wannan labarin (akalla saboda ban gama karanta shi da kaina ba :). Zan mai da hankali kan manyan batutuwa kuma zan ba da misalai biyu na lambar a cikin wannan yare.

A matakin asali, haɗin gwiwar Fift abu ne mai sauƙi: lambar sa ta ƙunshi kalmomi, yawanci ana raba su ta sarari ko karya layi (layi na musamman: wasu kalmomi ba sa buƙatar mai raba bayan kansu). Kowa kalmar jeri ne na harufa masu ma'ana wanda yayi daidai da wani takamaiman ma'anar (aƙalla, abin da mai fassara ya kamata ya yi idan ya ci karo da wannan kalmar). Idan babu ma'anar kalma, mai fassarar yana ƙoƙarin rarraba ta a matsayin lamba kuma ya sanya ta a kan tari. Af, lambobi a nan su ne - ba zato ba tsammani - 257-bit integers, kuma babu ɓangarorin gaba ɗaya - mafi daidai, nan da nan suka juya zuwa nau'i-nau'i na lamba, suna samar da ƙididdiga da ƙididdiga na juzu'i na hankali.

Kalmomi sukan yi hulɗa tare da ƙima a saman tarin. Nau'in kalmomi daban- prefix - baya amfani da tari, amma haruffa masu zuwa daga fayil ɗin tushe. Misali, wannan shine yadda ake aiwatar da ainihin kirtani - halin da ake magana (") kalma ce ta prefix wacce ke neman magana ta gaba (rufewa), kuma tana tura kirtani tsakanin su akan tari. Masu layi daya suna yin hali iri ɗaya (//da kuma multiline (/*) comments.

Wannan shi ne inda kusan dukkanin tsarin cikin harshen ya ƙare. Komai (ciki har da ginin sarrafawa) an ayyana su azaman kalmomi (ko dai na ciki, kamar ayyukan ƙididdiga da ma'anar sabbin kalmomi; ko kuma an ayyana su a cikin "ma'auni na ɗakin karatu" Fift.fif, wanda ke cikin babban fayil crypto/fift a cikin kafofin).

Misali mai sauƙi a cikin Fift:

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

Layin farko yana bayyana sabuwar kalma setxy (lura da prefix {, wanda ke haifar da toshe kafin rufewa } da prefix :, wanda a zahiri ya bayyana kalmar). setxy yana ɗaukar lamba daga saman tari, ya bayyana (ko sake fayyace) a matsayin duniya m x, da murabba'in wannan lambar a matsayin akai-akai y (Da yake ana iya sake fasalta kimar ma'auni, na fi son kiran su masu canji, amma ina bin yarjejeniyar suna a cikin harshe).

Layukan biyu na gaba sun sanya lamba akan tari da kira setxy, sa'an nan kuma ana nuna ƙimar ma'auni x, y (ana amfani da kalmar don fitarwa .), ana sanya madaidaicin duka a kan tari, an tattara su, kuma ana buga sakamakon. A sakamakon haka za mu ga:

3 9 12 ok
7 49 56 ok

(Layin “ok” mai fassara ne ke buga shi lokacin da ya gama sarrafa layin na yanzu a yanayin shigar da mu’amala)

To, cikakken misali na lamba:

"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

Wannan fayil mai ban tsoro don ƙirƙirar kwangila mai wayo - za a sanya shi cikin fayil new-wallet-query.boc bayan kisa. Da fatan za a lura cewa ana amfani da wani yaren taro anan don TON Virtual Machine (Ba zan zauna akan shi dalla-dalla ba), umarnin wanda za'a sanya shi akan blockchain.

Don haka, an rubuta mai tarawa don TVM a cikin Fift - tushen wannan taron yana cikin fayil ɗin. crypto/fift/Asm.fif kuma an haɗa su a farkon ɓangaren lambar da ke sama.

Me zan iya cewa, a fili Nikolai Durov kawai yana son ƙirƙirar sabbin harsunan shirye-shirye :)

Ƙirƙirar kwangila mai wayo da hulɗa tare da TON

Don haka, bari mu ɗauka cewa mun tattara abokin ciniki na TON da mai fassarar Fift kamar yadda aka bayyana a sama kuma mun saba da harshen. Yadda ake ƙirƙirar kwangila mai wayo yanzu? An bayyana wannan a cikin fayil ɗin YADDA, haɗe zuwa ga kafofin.

Asusu a TON

Kamar yadda na bayyana a cikin TON sake dubawa, wannan hanyar sadarwa ta ƙunshi fiye da ɗaya blockchain - akwai ɗaya gama gari, abin da ake kira. "Sarkin Jagora", da kuma adadin sabani na ƙarin "sarƙoƙin aiki", wanda aka gano ta lambar 32-bit. Masterchain yana da mai gano -1; ban da shi, ana iya amfani da sarkar aikin "tushe" tare da mai ganowa na 0. Kowane sarkar aiki na iya samun nasa tsarin. A ciki, kowane sarkar aiki ya kasu kashi shardchains, amma wannan dalla-dalla ne na aiwatarwa wanda baya buƙatar kiyayewa.

A cikin sarkar aiki ɗaya, ana adana asusu da yawa waɗanda ke da nasu abubuwan gano account_id. Ga sarkar maigidan da sifirin aikin aiki, tsayin su 256 bits ne. Don haka, ana rubuta mai gano asusun, alal misali, kamar haka:

-1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

Wannan shine tsarin “raw”: na farko ID na sarkar aiki, sannan colon, da ID na asusun a cikin bayanin hexadecimal.

Bugu da kari, akwai wani taqaitaccen tsari - da workchain lambar da kuma adreshin asusu an lullube su a cikin nau'i na binaryar, ana ƙara su da adadin kuɗi, kuma duk wannan yana cikin Base64:

Ef+BVndbeTJeXWLnQtm5bDC2UVpc0vH2TF2ksZPAPwcODSkb

Sanin wannan tsarin rikodin, za mu iya buƙatar halin yanzu na asusu ta hanyar abokin ciniki na gwaji ta amfani da umarnin

getaccount -1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

Za mu sami wani abu kamar haka:

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

Muna ganin tsarin da aka adana a cikin DHT na ƙayyadadden sarkar aiki. Misali, a fagen storage.balance shine ma'auni na asusun yanzu, in storage.state.code - smart kwangila code, kuma a ciki storage.state.data - bayanan sa na yanzu. Da fatan za a lura cewa ma'ajiyar bayanai na TON - Cell, Cell - kamar bishiya ce, kowane tantanin halitta na iya samun bayanansa da kuma ƙwayoyin yara. Ana nuna wannan azaman shigarwa a cikin layi na ƙarshe.

Gina kwangila mai wayo

Yanzu bari mu kirkiro irin wannan tsari da kanmu (ana kiranta BOC - jakar sel) ta amfani da harshe biyar. Abin farin ciki, ba dole ba ne ka rubuta kwangila mai wayo da kanka - a cikin babban fayil crypto/block akwai fayil daga rumbun adana bayanai new-wallet.fif, wanda zai taimaka mana ƙirƙirar sabon walat. Bari mu kwafa shi zuwa babban fayil tare da abokin ciniki da ya haɗu (~/liteclient-build, idan kun bi umarnin da ke sama). Na buga abin da ke ciki a sama a matsayin misali na lamba akan Fift.

Yi wannan fayil ɗin kamar haka:

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

Yana da <source-directory> dole ne a maye gurbinsu tare da hanyar zuwa wuraren da ba a cika su ba (alamar "~", rashin alheri, ba za a iya amfani da ita a nan ba, ana buƙatar cikakken hanyar). Maimakon amfani da maɓalli -I za ku iya ayyana maɓalli mai canzawa FIFTPATH kuma sanya wannan hanya a cikinta.

Tun da muka kaddamar da Fift tare da sunan fayil new-wallet.fif, zai aiwatar da shi ya fita. Idan kun bar sunan fayil ɗin, zaku iya yin wasa tare da mai fassarar mu'amala.

Bayan aiwatarwa, ya kamata a nuna wani abu kamar wannan a cikin na'ura mai kwakwalwa:

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)

Wannan yana nufin cewa walat tare da ID -1:4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2 (ko, menene iri ɗaya, 0f9PzVILj8yglrVn1zS-NSjtxr7QBfaTCp7JrBqnFPIR8nhZ) cikin nasara halitta. Lambar da ta dace za ta kasance a cikin fayil ɗin new-wallet-query.boc, adireshinsa yana ciki new-wallet.addr, kuma maɓalli na sirri yana ciki new-wallet.pk (a yi hankali - sake kunna rubutun zai sake rubuta waɗannan fayilolin).

Tabbas, cibiyar sadarwar TON ba ta san game da wannan walat ba; ana adana shi ne kawai a cikin nau'ikan fayilolin. Yanzu yana buƙatar loda shi zuwa cibiyar sadarwar. Koyaya, matsalar ita ce don ƙirƙirar kwangila mai wayo kuna buƙatar biyan kwamiti, kuma ma'auni na asusunku har yanzu babu.

A cikin yanayin aiki, za a warware wannan matsala ta hanyar siyan gram akan musayar (ko canja wurin daga wani walat). Da kyau, a cikin yanayin gwaji na yanzu, an ƙirƙiri kwangilar wayo ta musamman, daga abin da zaku iya tambaya har zuwa gram 20 kamar haka.

Samar da buƙata zuwa kwangilar wayo ta wani

Muna yin buƙatar kwangila mai wayo wanda ke rarraba gram hagu da dama kamar wannan. A cikin babban fayil guda crypto/block nemo fayil ɗin 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

Za mu kuma ajiye shi a cikin babban fayil tare da abokin ciniki da aka tara, amma za mu gyara layi na biyar - kafin layin "constant dest_addr". Bari mu musanya shi da adireshin jakar da kuka ƙirƙira a baya (cikakke, ba gajarta ba). Babu buƙatar rubuta "-1:" a farkon, maimakon sanya "0x" a farkon.

Hakanan zaka iya canza layin 6.666 Gram*/ constant amount - wannan shine adadin a cikin gram ɗin da kuke nema (bai wuce 20 ba). Ko da kun saka gabaki ɗaya lamba, bar ma'anar ƙima.

A ƙarshe, kuna buƙatar gyara layin 0x00000011 constant seqno. Lamba na farko a nan ita ce lambar jeri na yanzu, wacce aka adana a cikin asusun bayar da gram. A ina zan samu? Kamar yadda aka fada a sama, fara abokin ciniki kuma gudu:

last
getaccount -1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

A ƙarshe, bayanan kwangilar wayo za su ƙunshi

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

Lambar 0000000D (naku zai fi girma) shine lambar jerin da dole ne a canza shi zuwa testgiver.fif.

Shi ke nan, ajiye fayil ɗin kuma gudu (./crypto/fift testgiver.fif). Fitowar zai zama fayil wallet-query.boc. Wannan shi ne abin da aka kafa sakon zuwa kwangilar wayo na wani - buƙatar "canja wurin gram da yawa zuwa irin wannan asusu."

Amfani da abokin ciniki, muna loda shi zuwa cibiyar sadarwar:

> 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

Idan yanzu ka kira last, sa'an nan kuma sake neman matsayi na asusun da muka nemi gram daga gare shi, to sai mu ga cewa jerin lambar ya karu da daya - wannan yana nufin ya aika kudi zuwa asusun mu.

Mataki na ƙarshe ya rage - zazzage lambar lambar mu (an riga an sake cika ma'auni, amma ba tare da lambar kwangilar wayo ba za mu iya sarrafa shi). Muna aiwatarwa sendfile new-wallet-query.boc - kuma shi ke nan, kuna da walat ɗin ku a cikin hanyar sadarwar TON (ko da gwaji ne kawai a yanzu).

Ƙirƙirar ma'amaloli masu fita

Don canja wurin kuɗi daga ma'auni na asusun da aka ƙirƙira, akwai fayil crypto/block/wallet.fif, wanda kuma yana buƙatar sanya shi a cikin babban fayil tare da abokin ciniki da aka haɗa.

Kama da matakan da suka gabata, kuna buƙatar daidaita adadin da kuke aikawa, adireshin mai karɓa (dest_addr), da seqno na walat ɗin ku (yana daidai da 1 bayan ƙaddamar da walat ɗin kuma yana ƙaruwa da 1 bayan kowace ma'amala mai fita - za ku iya. duba shi ta hanyar neman matsayi na asusun ku). Don gwaje-gwaje, zaku iya amfani da, misali, walat ɗina - 0x4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2.

A kan farawa (./crypto/fift wallet.fif) rubutun zai ɗauki adireshin walat ɗin ku (daga inda kuke canja wurin) da maɓallin keɓaɓɓen sa daga fayilolin new-wallet.addr и new-wallet.pk, kuma za a rubuta sakon da aka karɓa zuwa ga new-wallet-query.boc.

Kamar yadda ya gabata, don aiwatar da ma'amala kai tsaye, kira sendfile new-wallet-query.boc a cikin abokin ciniki. Bayan haka, kar a manta da sabunta yanayin blockchain (last) kuma duba cewa ma'auni da seqno na walat ɗin mu sun canza (getaccount <account_id>).

Gwada abokin ciniki TON (Telegram Open Network) da sabon Harshen Fift don kwangiloli masu wayo

Wannan ke nan, yanzu za mu iya ƙirƙirar kwangiloli masu wayo a cikin TON da aika buƙatu zuwa gare su. Kamar yadda kake gani, aikin yanzu ya riga ya isa, alal misali, yin walat ɗin abokantaka tare da ƙirar hoto (duk da haka, ana sa ran cewa zai riga ya zama wani ɓangare na manzo).

Masu amfani da rajista kawai za su iya shiga cikin binciken. Shigadon Allah.

Shin kuna sha'awar ci gaba da labaran tare da nazarin TON, TVM, Fift?

  • Ee, Ina jiran kammalawar jerin labaran tare da cikakken bayyani na TON

  • Ee, yana da ban sha'awa don ƙarin karanta game da Harshen Fift

  • Ee, Ina son ƙarin koyo game da TON Virtual Machine da mai haɗa shi

  • A'a, babu ɗayan waɗannan da ke da ban sha'awa

Masu amfani 39 sun kada kuri'a. Masu amfani 12 sun kaurace.

Me kuke tunani game da shirye-shiryen Telegram na ƙaddamar da TON?

  • Ina da kyakkyawan fata ga wannan aikin

  • Ina bibiyar ci gabanta ne da sha'awa.

  • Ina shakka kuma ina shakkar nasarar sa.

  • Ina da sha'awar daukar wannan shiri a matsayin gazawa kuma ba dole ba ne ga talakawa

Masu amfani 47 sun kada kuri'a. Masu amfani 12 sun kaurace.

source: www.habr.com

Add a comment