Edzai mutengi TON (Teregiramu Vhura Network) uye mutauro mutsva wechishanu wezvibvumirano zvakangwara

Anopfuura gore rapfuura, yakazozivikanwa nezve hurongwa hweTeregiramu mutumwa kuburitsa yayo yakasarudzika network. Vhura Network teregiramu. Ipapo bhuku rakawanda rehunyanzvi rakavepo, iro rainzi rakanyorwa naNikolai Durov uye rakatsanangura chimiro cheiyo ramangwana network. Kune avo vakapotsa, ndinokurudzira kuti muverenge kudzokorora kwangu kwegwaro iri (chikamu 1, chikamu 2; chikamu chechitatu, nhamo, ichiri kuunganidza guruva muzvinyorwa).

Kubva ipapo, pave pasina nhau dzakakosha nezvechimiro cheTON budiriro kusvika mazuva mashoma apfuura (mune imwe ye zviteshi zvisiri pamutemo) chinongedzo chepeji hachina kuoneka https://test.ton.org/download.htmluko vari:
β—¦ ton-test-liteclient-full.tar.xz - light client sources yeTON test network;
β—¦ ton-lite-client-test1.config.json - faira yekumisikidza yekubatanidza kune bvunzo network;
β—¦ README - ruzivo nezve gungano uye kutanga kwemutengi;
β—¦ ZVINOITA - nhanho-nhanho mirairo yekugadzira yakangwara kontrakiti uchishandisa mutengi;
β—¦ ton.pdf - gwaro rakagadziridzwa (remusi waKurume 2, 2019) ine tekinoroji yekutarisa yeTON network;
β—¦ tvm.pdf - Tsanangudzo yehunyanzvi yeTVM (TON Virtual Machine, TON virtual muchina);
β—¦ tblkch.pdf - Tsanangudzo yehunyanzvi yeTON blockchain;
β—¦ fivebase.pdf - tsananguro yemutauro mutsva weFift, wakagadzirirwa kugadzira zvibvumirano zvakanaka muTON.

Ndinodzokorora, pakanga pasina kusimbiswa kwepamutemo kwepeji uye zvinyorwa zvose izvi kubva kuTeregiramu, asi huwandu hwezvinhu izvi hunovaita kuti vanyatsonzwisisika. Tangisa mutengi wakabudiswa panjodzi yomunhu.

Kuvaka mutengi webvunzo

Kutanga, ngatiedzei kuvaka nekumhanyisa mutengi wekuyedza - nerombo rakanaka, README inotsanangura nzira iri nyore iyi zvakadzama. Ndichaita izvi ndichishandisa macOS 10.14.5 semuenzaniso; Ini handikwanise kuvimbisa kubudirira kwekuvaka pane mamwe masisitimu.

  1. Dhaunirodha uye unpack source archive. Izvo zvakakosha kudhawunirodha yazvino vhezheni sezvo kuenderana kumashure hakuna kuvimbiswa panguva ino.

  2. Ita shuwa kuti ichangoburwa shanduro dzemake, cmake (version 3.0.2 kana yepamusoro), OpenSSL (kusanganisira C header mafaera), g++ kana clang yakaiswa pahurongwa. Ini hapana chandaifanira kuisa, zvese zvakasangana pakarepo.

  3. Ngatifungei kuti masources akaiswa mufolder ~/lite-client. Zvakasiyana kubva pazviri, gadzira faira isina chinhu yepurojekiti yakaunganidzwa (semuenzaniso, ~/liteclient-build), uye kubva pazviri (cd ~/liteclient-build) dana mirairo:

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

    Edzai mutengi TON (Teregiramu Vhura Network) uye mutauro mutsva wechishanu wezvibvumirano zvakangwara

    Kuvaka muturikiri wemutauro wechishanu wemakondirakiti akangwara (zvimwe pamusoro payo pazasi), tinofonawo

    cmake --build . --target fift

  4. Dhaunirodha yazvino configuration file kuti ubatanidze kune network yekuyedza uye woiisa mufolda ine mutengi akaungana.

  5. Zvaitwa, unogona kutanga mutengi:

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

Kana zvese zvikaitwa nemazvo, iwe unofanirwa kuona chimwe chinhu chakadai:

Edzai mutengi TON (Teregiramu Vhura Network) uye mutauro mutsva wechishanu wezvibvumirano zvakangwara

Sezvatinoona, pane mirairo mishoma iripo:
β—¦ help - ratidza runyorwa urwu rwemirairo;
β—¦ quit - enda panze;
β—¦ time - ratidza nguva iripo pane server;
β—¦ status - ratidza kubatana uye mamiriro enzvimbo dhatabhesi;
β—¦ last - gadziridza mamiriro e blockchain (dhawunirodha yekupedzisira block). Izvo zvakakosha kuti umhanye uyu murairo usati wakumbira chero zvikumbiro kuti uve nechokwadi chekuti unoona mamiriro azvino etiweki.
β—¦ sendfile <filename> -rodha faira remunharaunda kune network yeTON. Aya ndiwo maitiro ekudyidzana netiweki kunoitika - kusanganisira, semuenzaniso, kusikwa kwezvibvumirano zvitsva uye zvikumbiro zvekuendesa mari pakati peakaundi;
β—¦ getaccount <address> - ratidza ikozvino (panguva iyo murairo wakaitwa) last) mamiriro eakaundi ine kero yakataurwa;
β—¦ privkey <filename> - rodha kiyi yakavanzika kubva kufaira renzvimbo.

Kana, paunotanga mutengi, iwe unoendesa folda kwairi uchishandisa sarudzo -D, ipapo achawedzera chikamu chekupedzisira che masterchain mairi:

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

Iye zvino tinogona kuenda kune zvimwe zvinonakidza zvinhu - dzidza mutauro wechishanu, edza kuunganidza chibvumirano chakangwara (semuenzaniso, gadzira chikwama chekuyedza), uise kunetiweki uye edza kuendesa mari pakati peakaundi.

Mutauro wechishanu

Kubva mugwaro fivebase.pdf iwe unogona kuona kuti timu yeTeregiramu yakagadzira mutauro mutsva we stack kugadzira zvibvumirano zvakangwara Fift (sezviri pachena kubva panhamba cheshanu, yakafanana neForth, mutauro uyo Wechishanu ane zvakawanda zvakafanana nawo).

Gwaro racho rakakura kwazvo, mapeji makumi masere nenomwe, uye handisi kuzotaura zvirimo zvakadzama mukati megadziriro yechinyorwa chino (zvichida nekuti handisati ndapedza kuiverenga ini :). Ini ndichatarisa pamapoinzi makuru uye ndopa mienzaniso miviri yekodhi mumutauro uyu.

Padanho rekutanga, Syntax yeFift iri nyore: kodhi yayo ine mashoko, kazhinji inopatsanurwa nenzvimbo kana mitsara inotsemuka (special case: mamwe mazwi haadi muparadzi mushure mavo). Chero shoko ikese-sensitive kutevedzana kwemavara anofambirana nechimwe tsanangudzo (zvichida, izvo muturikiri anofanira kuita kana asangana neshoko iri). Kana pasina tsananguro yeizwi, muturikiri anoedza kuripatsanura senhamba oriisa pamurwi. Nenzira, nhamba dziri pano - kamwe-kamwe - 257-bit integers, uye hapana zvidimbu zvachose - zvakanyatsojeka, zvinoshanduka pakarepo kuita mapeji ezvikamu, zvichiita nhamba uye denominator yechikamu chinonzwisisika.

Mazwi anowanzo kupindirana nemakoshero ari pamusoro peiyo stack. Rudzi rwakasiyana rwemazwi - prefix -Haashandise stack, asi anotevera mavara kubva kune faira faira. Semuenzaniso, iyi ndiyo nzira inoshandiswa netambo literals - iyo quote character (") izwi rechivakashure rinotarisa kunotevera (kuvhara) quote, uye inosaidzira tambo pakati pawo pastack. One-liners vanoita nenzira imwechete (//) uye multiline (/*) comments.

Apa ndipo panoperera chinenge chimiro chemukati memutauro. Zvimwe zvese (kusanganisira zvigadziriso zvinovaka) zvinotsanangurwa semazwi (angave emukati, senge arithmetic mashandiro uye tsananguro yemazwi matsva; kana kutsanangurwa mu "standard library" Fift.fif, iri mufolda crypto/fift muzvinyorwa).

Muenzaniso wakapfava purogiramu muFift:

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

Mutsara wekutanga unotsanangura izwi idzva setxy (ona prefix {, iyo inogadzira block pamberi pekuvhara } uye prefix :, iro rinonyatsotsanangura izwi). setxy inotora nhamba kubva pamusoro pechitubu, inotsanangura (kana kutsanangurazve) senyika yose nguva dzose x, uye sikweya yenhamba iyi seyakagadzika y (Tichifunga kuti hunhu hwemaconstants hunogona kutsanangurwa patsva, ndingatodaidza iwo akasiyana, asi ini ndinotevera gungano rezita mumutauro).

Mitsetse miviri inotevera inoisa nhamba pane stack uye kufona setxy, ipapo kukosha kwezvimiro zvinoratidzwa x, y (izwi rinoshandiswa kuburitsa .), zvese zvinogara zviripo zvinoiswa pamurwi, zvakapfupikiswa, uye mhedzisiro inodhindwa zvakare. Nekuda kweizvozvo tichaona:

3 9 12 ok
7 49 56 ok

(Mutsetse wekuti β€œok” unodhindwa nemuturikiri kana wapedza kugadzirisa mutsara uripo mune inopindirana yekupinza modhi)

Zvakanaka, muenzaniso wakazara wekodhi:

"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

Iri faira rinotarisa rinotyisa nderokugadzira kontrakiti yakangwara - ichaiswa mufaira new-wallet-query.boc mushure mekuurayiwa. Ndapota cherechedza kuti mumwe mutauro wegungano unoshandiswa pano nokuda kweTON Virtual Machine (ini handisi kuzogara pairi zvakadzama), mirairo iyo ichaiswa pa blockchain.

Nekudaro, iyo assembler yeTVM yakanyorwa muFift - masosi emuunganidzi uyu ari mufaira crypto/fift/Asm.fif uye zvakabatana pakutanga kwechikamu chepamusoro chekodhi.

Chii chandingataure, sezviri pachena Nikolai Durov anongoda kugadzira mitauro mitsva yekuronga :)

Kugadzira chibvumirano chakangwara uye kushamwaridzana neTON

Saka, ngatifungei kuti taunganidza mutengi weTON nemuturikiri wechishanu sezvatsanangurwa pamusoro uye toziva mutauro wacho. Nzira yekugadzira kontrakiti yakangwara ikozvino? Izvi zvinotsanangurwa mufaira ZVINOITA, zvakabatanidzwa kune zvinyorwa.

Maakaundi muTON

Sezvandakatsanangura mu TON kuongorora, iyi network ine zvinopfuura imwe blockchain - pane imwe yakajairika, iyo inonzi. "master chain", pamwe chete nenhamba isingaverengeki yekuwedzera "cheni dzebasa", dzinozivikanwa nenhamba ye32-bit. The masterchain ine identifier ye -1; pamusoro payo, "base" workchain ine chiziviso che 0. Checheni yega yega inogona kuve neyayo gadziriso. Mukati, cheni yega yega yebasa yakakamurwa kuita shardchains, asi iyi idanho rekuita risingade kuchengetwa mupfungwa.

Mukati meworkchain imwe chete, maakaundi mazhinji anochengetwa ane ega account_id identifiers. Kune master cheni uye zero work cheni, iwo akareba 256 bits. Saka, iyo account identifier yakanyorwa, semuenzaniso, seizvi:

-1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

Iyi ndiyo "mbishi" fomati: kutanga ID yeketani yebasa, kozoita colon, uye iyo account ID mune hexadecimal notation.

Uye zvakare, kune yakapfupikiswa fomati - iyo workchain nhamba uye account kero yakavharirwa mune binary fomu, cheki inowedzerwa kwavari, uye zvese izvi zvakaiswa muBase64:

Ef+BVndbeTJeXWLnQtm5bDC2UVpc0vH2TF2ksZPAPwcODSkb

Kuziva iyi rekodhi fomati, tinogona kukumbira mamiriro azvino eakaundi kuburikidza nemutengi webvunzo uchishandisa murairo

getaccount -1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

Tichawana chinhu chakadai:

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

Isu tinoona iyo chimiro chakachengetwa muDHT yeyakatsanangurwa workchain. Somuenzaniso, mumunda storage.balance ndiyo yazvino account balance, in storage.state.code - smart chibvumirano kodhi, uye mukati storage.state.data - data rayo razvino. Ndokumbira utarise kuti iyo TON data yekuchengetedza - Sero, maseru - yakafanana nemuti, sero rega rega rinogona kuve neayo data uye maseru emwana. Izvi zvinoratidzwa se indentation mumitsetse yekupedzisira.

Kuvaka kontrakiti yakangwara

Zvino ngatigadzirei chimiro chakadaro isu pachedu (inonzi BOC - bhegi remasero) vachishandisa mutauro wechishanu. Neraki, haufanirwe kunyora chibvumirano chakangwara iwe pachako - mufolda crypto/block pane faira kubva kusource archive new-wallet.fif, izvo zvichatibatsira kugadzira chikwama chitsva. Ngatiikope kune folda ine yakaungana mutengi (~/liteclient-build, kana iwe wakatevera mirairo iri pamusoro). Ndakataura zvirimo pamusoro semuenzaniso wekodhi paFift.

Tora iyi faira sezvinotevera:

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

zviri <source-directory> inofanira kutsiviwa nenzira inoenda kunzvimbo dzisina kuvharwa (iyo "~" chiratidzo, zvinosuruvarisa, haigone kushandiswa pano, nzira yakazara inodiwa). Pane kushandisa kiyi -I unogona kutsanangura an environment variable FIFTPATH uye isa nzira iyi mairi.

Kubva patakatanga Fift ine zita refaira new-wallet.fif, ichaita uye ichabuda. Kana ukasiya zita refaira, unogona kutamba nemuturikiri uchipindirana.

Mushure mekuuraya, chimwe chinhu chakaita seichi chinofanira kuratidzwa mune 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)

Izvi zvinoreva kuti chikwama chine ID -1:4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2 (kana, chii chakafanana, 0f9PzVILj8yglrVn1zS-NSjtxr7QBfaTCp7JrBqnFPIR8nhZ) yakagadzirwa zvakabudirira. Iyo kodhi inoenderana ichave mufaira new-wallet-query.boc, kero yake irimo new-wallet.addr, uye kiyi yakavanzika yapinda new-wallet.pk (chenjerera - kumhanyisa script zvakare kuchanyora mafaera aya).

Ehe, iyo TON network haisati yaziva nezve chikwama ichi; inochengetwa chete muchimiro chemafaira aya. Iye zvino inoda kuiswa kune network. Nekudaro, dambudziko nderekuti kugadzira kontrakiti yakangwara iwe unofanirwa kubhadhara komisheni, uye account yako yasara ichiri zero.

Mukushanda mode, dambudziko iri rinogadziriswa nekutenga magiramu pakuchinjana (kana kutamisa kubva kune imwe chikwama). Zvakanaka, mune yazvino bvunzo modhi, yakakosha kondirakiti yakasikwa, kubva kwaunogona kukumbira kusvika magiramu makumi maviri saizvozvo.

Kugadzira chikumbiro kune mumwe munhu akangwara kondirakiti

Isu tinoita chikumbiro kune smart kontrakiti inogovera magiramu kuruboshwe uye kurudyi sezvizvi. Mune imwe folda crypto/block tsvaga faira 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

Isu tichazvichengeta zvakare mufolda nemutengi akaungana, asi isu tichagadzirisa mutsara wechishanu - pamberi pemutsara "constant dest_addr". Ngatiitsive nekero yechikwama yawakagadzira kare (yakazara, kwete kupfupikiswa). Hapana chikonzero chekunyora "-1:" pakutanga, panzvimbo pekuisa "0x" pakutanga.

Iwe unogona zvakare kuchinja mutsara 6.666 Gram*/ constant amount - iyi ndiyo mari mumagiramu auri kukumbira (kwete kupfuura makumi maviri). Kunyangwe iwe ukatsanangura nhamba yakazara, siya iyo decimal point.

Pakupedzisira, unofanira kugadzirisa mutsara 0x00000011 constant seqno. Nhamba yekutanga pano ndiyo yazvino kutevedzana nhamba, iyo inochengetwa muakaundi inoburitsa magiramu. Ndozviwanepi? Sezvataurwa pamusoro, tanga mutengi uye mhanya:

last
getaccount -1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

Pakupedzisira, iyo smart contract data ichave ine

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

Nhamba 0000000D (yako ichave yakakura) ndiyo nhamba yekutevedzana inofanirwa kutsiviwa testgiver.fif.

Ndizvozvo, chengetedza faira uye mhanya (./crypto/fift testgiver.fif) Iyo inobuda ichava faira wallet-query.boc. Izvi ndizvo zvinoumbwa meseji kune chibvumirano chemumwe munhu chakangwara - chikumbiro "kuendesa magiramu akawanda kune akadaro uye akadaro account."

Tichishandisa mutengi, tinoiisa kune 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

Kana wafona manje last, uye zvakare kukumbira mamiriro eakaunti kubva kwatakakumbira magiramu, saka tinofanira kuona kuti kutevedzana kwayo nhamba yakawedzera neimwe - izvi zvinoreva kuti yakatumira mari kuaccount yedu.

Danho rekupedzisira rinosara - dhawunirodha kodhi yechikwama chedu (chiyero chayo chatozadzikiswa, asi pasina iyo smart kontrakiti kodhi isu hatigone kuibata). Tinoita sendfile new-wallet-query.boc - uye ndizvozvo, une chikwama chako muTON network (kunyangwe iri bvunzo imwe chete ikozvino).

Kugadzira kutengeserana kunobuda

Kuendesa mari kubva pachiyero cheakaundi yakagadzirwa, pane faira crypto/block/wallet.fif, iyo inodawo kuiswa mufolda ine mutengi akaungana.

Zvakafanana nematanho apfuura, unofanirwa kugadzirisa huwandu hwauri kuendesa, kero yemugamuchiri (dest_addr), uye seqno yechikwama chako (yakaenzana ne1 mushure mekutanga chikwama uye inowedzera ne1 mushure mekutengesa kwega kwega kunobuda - unogona. zvione nekukumbira mamiriro eakaundi yako) . Kune bvunzo, unogona kushandisa, semuenzaniso, chikwama changu - 0x4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2.

Pakutanga (./crypto/fift wallet.fif) iyo script inotora kero yechikwama chako (kubva kwaunotamisa) uye kiyi yayo yakavanzika kubva kumafaira new-wallet.addr ΠΈ new-wallet.pk, uye meseji yakagamuchirwa ichanyorerwa new-wallet-query.boc.

Sepakutanga, kuti uite zvakananga kutengeserana, fona sendfile new-wallet-query.boc mumutengi. Mushure meizvi, usakanganwa kugadzirisa mamiriro e blockchain (last) uye tarisa kuti chiyero uye seqno yechikwama chedu zvachinja (getaccount <account_id>).

Edzai mutengi TON (Teregiramu Vhura Network) uye mutauro mutsva wechishanu wezvibvumirano zvakangwara

Ndizvo chete, ikozvino isu tinogona kugadzira akangwara zvibvumirano muTON uye kutumira zvikumbiro kwavari. Sezvauri kuona, kushanda kwazvino kwakatokwana kuti, semuenzaniso, kugadzira chikwama chine hushamwari chine graphical interface (zvisinei, zvinotarisirwa kuti ichave yave kuwanikwa sechikamu chemutumwa).

Vashandisi vakanyoresa chete ndivo vanogona kutora chikamu muongororo. Nyorera mu, Munogamuchirwa.

Iwe unofarira here kuenderera mberi zvinyorwa nekuongororwa kweTON, TVM, Fift?

  • Hongu, ini ndakamirira kupedzwa kweakatevedzana ezvinyorwa zvine mucherechedzo weTON

  • Hongu, zvinonakidza kuverenga zvakawanda nezvemutauro wechishanu

  • Ehe, ini ndinoda kudzidza zvakawanda nezveTON Virtual Machine uye muunganidzi wayo

  • Aiwa, hapana chimwe cheizvi chinonakidza

39 vashandisi vakavhota. 12 vashandisi vakaramba.

Unofungei nezvezvirongwa zveTeregiramu zvekutanga TON?

  • Ndine tariro huru yechirongwa ichi

  • Ndiri kungotevera budiriro yayo nechido.

  • Ini ndinokahadzika uye ndinokahadzika kubudirira kwayo.

  • Ndine chido chekuona chirongwa ichi sekukundikana uye hachikoshi kune ruzhinji

47 vashandisi vakavhota. 12 vashandisi vakaramba.

Source: www.habr.com

Voeg