Cliant tástála TON (Telegram Open Network) agus teanga nua Fift le haghaidh conarthaí cliste

Níos mó ná bliain ó shin, tháinig sé ar an eolas faoi phleananna an teachtaire Telegram a líonra díláraithe féin a scaoileadh Teileagram Open Network. Ansin tháinig doiciméad teicniúil toirtiúil ar fáil, a líomhnaítear a scríobh Nikolai Durov agus chuir sé síos ar struchtúr an líonra sa todhchaí. Dóibh siúd a chaill é, molaim duit m’athinsint den doiciméad seo a léamh (Cuid 1, Cuid 2; tá an tríú cuid, faraor, fós ag bailiú deannaigh ina dhréachtaí).

Ó shin i leith, níor tháinig aon nuacht suntasach faoi stádas forbartha TON go dtí cúpla lá ó shin (i gceann de cainéil neamhoifigiúla) ní raibh an nasc go dtí an leathanach le feiceáil https://test.ton.org/download.html, cá bhfuil siad lonnaithe:
ton-tástáil-liteclient-full.tar.xz — foinsí cliant éadrom don líonra tástála TON;
ton-lite-client-test1.config.json — comhad cumraíochta chun nascadh leis an líonra tástála;
README — faisnéis maidir le tógáil agus seoladh an chliaint;
CONAS A — treoracha céim ar chéim maidir le conradh cliste a chruthú ag baint úsáide as cliant;
tonna.pdf — doiciméad nuashonraithe (dar dáta an 2 Márta, 2019) le forbhreathnú teicniúil ar líonra TON;
tvm.pdf — cur síos teicniúil ar TVM (Meaisín Fíorúil TON, meaisín fíorúil TON);
tblkch.pdf — tuairisc theicniúil ar an blockchain TON;
cúigiú bonn.pdf — tuairisc ar an teanga nua Fift, atá deartha chun conarthaí cliste a chruthú in TON.

Arís agus arís eile, ní raibh aon dheimhniú oifigiúil ar an leathanach agus ar na doiciméid seo go léir ó Telegram, ach tá méid na n-ábhar seo inchreidte go leor. Seoladh an cliant foilsithe ar do phriacal féin.

Tógáil cliant tástála

Ar dtús, déanaimis iarracht cliant tástála a thógáil agus a rith - go fortunately, README cur síos mion ar an bpróiseas simplí seo. Déanfaidh mé é seo ag baint úsáide as macOS 10.14.5 mar shampla; ní féidir liom a dheimhniú go n-éireoidh leis an tógáil ar chórais eile.

  1. Íoslódáil agus díphacáil cartlann foinse. Tá sé tábhachtach an leagan is déanaí a íoslódáil toisc nach bhfuil comhoiriúnacht siar ráthaithe ag an gcéim seo.

  2. Cinntigh go bhfuil na leaganacha is déanaí de make, cmake (leagan 3.0.2 nó níos airde), OpenSSL (lena n-áirítear comhaid ceanntásca C), g++ nó clang suiteáilte ar an gcóras. Ní raibh orm rud ar bith a shuiteáil, tháinig gach rud le chéile láithreach.

  3. Glacaimid leis go bhfuil na foinsí díphacáil isteach i bhfillteán ~/lite-client. Ar leithligh uaidh, cruthaigh fillteán folamh don tionscadal comhchruinnithe (mar shampla, ~/liteclient-build), agus uaidh (cd ~/liteclient-build) cuir glaoch ar na horduithe:

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

    Cliant tástála TON (Telegram Open Network) agus teanga nua Fift le haghaidh conarthaí cliste

    Chun ateangaire teanga Fift a thógáil le haghaidh conarthaí cliste (tuilleadh faoi seo thíos), glaoimid freisin

    cmake --build . --target fift

  4. Íoslódáil an t-amhrán reatha comhad cumraíochta chun ceangal leis an líonra tástála agus é a chur san fhillteán leis an gcliant le chéile.

  5. Arna dhéanamh, is féidir leat an cliant a thosú:

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

Má dhéantar gach rud i gceart, ba cheart duit rud éigin mar seo a fheiceáil:

Cliant tástála TON (Telegram Open Network) agus teanga nua Fift le haghaidh conarthaí cliste

Mar is féidir linn a fheiceáil, níl mórán orduithe ar fáil:
help — an liosta orduithe seo a thaispeáint;
quit - dul amach;
time — taispeáin an t-am reatha ar an bhfreastalaí;
status — an nasc agus stádas an bhunachair shonraí áitiúil a thaispeáint;
last - nuashonraigh staid an blockchain (íoslódáil an bloc deireanach). Tá sé tábhachtach an t-ordú seo a rith roimh aon iarratais le bheith cinnte go bhfeiceann tú staid reatha an líonra.
sendfile <filename> — comhad áitiúil a uaslódáil chuig an líonra TON. Seo mar a tharlaíonn idirghníomhaíocht leis an líonra - lena n-áirítear, mar shampla, conarthaí cliste nua a chruthú agus iarratais ar airgead a aistriú idir cuntais;
getaccount <address> — taispeáin an sruth (nuair a ritheadh ​​an t-ordú) last(c) stádas an chuntais agus an seoladh sonraithe aige;
privkey <filename> — lódáil an eochair phríobháideach ó chomhad áitiúil.

Más rud é, nuair a thosaíonn tú an cliant, aistríonn tú fillteán chuige ag baint úsáide as an rogha -D, ansin cuirfidh sé an bloc deireanach den mháistirchain isteach ann:

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

Anois is féidir linn bogadh ar aghaidh go dtí rudaí níos suimiúla - foghlaim an teanga Fift, déan iarracht conradh cliste a thiomsú (mar shampla, sparán tástála a chruthú), é a uaslódáil chuig an líonra agus iarracht a dhéanamh cistí a aistriú idir cuntais.

Cúigear Teanga

Ón doiciméad cúigiú bonn.pdf is féidir leat a fháil amach go bhfuil teanga stack nua cruthaithe ag an bhfoireann Telegram chun conarthaí cliste a chruthú Cúigear (de réir dealraimh ón uimhir cúigiú, cosúil le Forth, teanga a bhfuil go leor i gcoiteann ag Cúigiú).

Tá an doiciméad sách toirtiúil, 87 leathanach, agus ní athinseoidh mé a bhfuil ann go mion laistigh de chreat an ailt seo (ar a laghad toisc nach bhfuil mé críochnaithe ag léamh mé féin :). Díreoidh mé ar na príomhphointí agus tabharfaidh mé cúpla cód samplaí sa teanga seo.

Ag leibhéal bunúsach, tá comhréir Fift simplí go leor: is éard atá sa chód focail, de ghnáth scartha le spásanna nó le briseadh líne (cás speisialta: ní gá deighilteoir i ndiaidh a chéile i roinnt focal). ar bith an focal seicheamh cás-íogair de charachtair a fhreagraíonn do áirithe cinneadh de (go garbh, cad ba cheart don ateangaire a dhéanamh nuair a thagann sé ar an bhfocal seo). Mura bhfuil sainmhíniú ar fhocal, déanann an t-ateangaire iarracht é a pharsáil mar uimhir agus é a chur ar an gcruach. Dála an scéil, tá na huimhreacha anseo - go tobann - slánuimhreacha 257-giotán, agus níl aon chodáin ann ar chor ar bith - níos cruinne, téann siad isteach i bpéire slánuimhreacha láithreach, ag foirmiú uimhreoir agus ainmneoir de chodán réasúnach.

Bíonn claonadh ag focail idirghníomhú le luachanna ag barr an chruach. Cineál ar leith focal - réimír - ní úsáideann an chairn, ach na carachtair ina dhiaidh sin ón gcomhad foinse. Mar shampla, seo é an chaoi a gcuirtear sreanglitreacha i bhfeidhm - an carachtar athfhriotail (") is focal réimír é a lorgaíonn an chéad athfhriotail eile (deiridh), agus a bhrúnn an téad eatarthu ar an chruach. Iompraíonn línte aon-líne ar an mbealach céanna (//) agus illíne (/*) tuairimí.

Seo an áit a thagann deireadh le beagnach struchtúr inmheánach iomlán na teanga. Sainmhínítear gach rud eile (lena n-áirítear struchtúir rialaithe) mar fhocail (ceachtar acu inmheánacha, mar oibríochtaí uimhríochta agus sainmhíniú ar fhocail nua; nó sainmhínithe sa "leabharlann chaighdeánach" Fift.fif, atá san fhillteán crypto/fift sna foinsí).

Clár samplach simplí in Fift:

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

Sainmhíníonn an chéad líne focal nua setxy (tabhair faoi deara an réimír {, rud a chruthaíonn bloc roimh an gceann deiridh } agus réimír :, a shainmhíníonn an focal i ndáiríre). setxy tógann sé uimhir ó bharr an chruach, sainmhíníonn (nó athshainíonn) í mar uimhir dhomhanda tairiseach x, agus cearnóg na huimhreach seo mar thairiseach y (toisc gur féidir luachanna na dtairiseach a ath-shainmhíniú, b’fhearr liom athróga a thabhairt orthu, ach leanaim coinbhinsiún an ainmniúcháin sa teanga).

Chuir an chéad dá líne eile uimhir ar an gcruach agus glaoigh setxy, ansin taispeántar luachanna na tairisigh x, y (úsáidtear an focal le haghaidh aschur .), cuirtear an dá tairiseach ar an gcruach, achoimriú, agus clóitear an toradh freisin. Mar thoradh air sin feicfimid:

3 9 12 ok
7 49 56 ok

(Déanann an t-ateangaire an líne “ceart go leor” a phriontáil nuair a chríochnaíonn sé próiseáil na líne reatha sa mhodh ionchuir idirghníomhach)

Bhuel, sampla cód iomlán:

"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

Tá an comhad scanrúil seo chun conradh cliste a chruthú - cuirfear i gcomhad é new-wallet-query.boc tar éis a fhorghníomhaithe. Tabhair faoi deara le do thoil go n-úsáidtear teanga tionóil eile anseo le haghaidh TON Virtual Machine (ní bheidh mé ag fanacht go mion air), agus cuirfear na treoracha ar an blockchain.

Mar sin, tá cóimeálaí TVM scríofa in Fift - tá foinsí an chóimeálaí seo sa chomhad crypto/fift/Asm.fif agus tá siad ceangailte ag tús an phíosa cód thuas.

Cad is féidir liom a rá, de réir dealraimh is breá le Nikolai Durov teangacha ríomhchlárúcháin nua a chruthú :)

Conradh cliste a chruthú agus idirghníomhú le TON

Mar sin, déanaimis glacadh leis go bhfuil an cliant TON agus an t-ateangaire Fift curtha le chéile againn mar a thuairiscítear thuas agus go bhfuil cur amach againn ar an teanga. Conas conradh cliste a chruthú anois? Tá cur síos air seo sa chomhad CONAS A, ag gabháil leis na foinsí.

Cuntais in TON

Mar a chuir mé síos i Léirmheas TON, tá níos mó ná blockchain amháin sa líonra seo - tá ceann coitianta amháin ann, mar a thugtar air. "máistirshlabhra", chomh maith le líon treallach de "slabhraí oibre" breise, arna sainaithint ag uimhir 32-giotán. Tá aitheantóir -1 ag an máistirchain, chomh maith leis sin, is féidir slabhra oibre "bonn" le haitheantóir 0 a úsáid freisin. Is féidir le gach slabhra oibre a chumraíocht féin a bheith aige. Go hinmheánach, roinntear gach slabhra oibre ina shardchains, ach is sonraí cur chun feidhme é seo nach gá a choinneáil i gcuimhne.

Laistigh de slabhra oibre amháin, stóráiltear go leor cuntas a bhfuil a n-aitheantóirí account_id féin acu. Maidir leis an máistirshlabhra agus slabhra oibre nialasach, tá siad 256 giotán ar fad. Mar sin, scríobhtar aitheantóir an chuntais, mar shampla, mar seo:

-1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

Seo an fhormáid “amh”: ​​ar dtús an t-aitheantas slabhra oibre, ansin idirstad, agus ID an chuntais i nodaireacht heicsidheachúil.

Ina theannta sin, tá formáid ghiorraithe ann - tá uimhir an tslabhra oibre agus seoladh an chuntais ionchódaithe i bhfoirm dhénártha, cuirtear seiceála leo, agus tá sé seo go léir ionchódaithe i Base64:

Ef+BVndbeTJeXWLnQtm5bDC2UVpc0vH2TF2ksZPAPwcODSkb

Agus an fhormáid taifid seo ar eolas againn, is féidir linn staid reatha cuntais a iarraidh trí chliant tástála a úsáideann an t-ordú

getaccount -1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

Gheobhaidh muid rud mar seo:

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

Feicimid an struchtúr atá stóráilte sa DHT den slabhra oibre sonraithe. Mar shampla, sa réimse storage.balance is iarmhéid an chuntais reatha, in storage.state.code - cód conartha cliste, agus i storage.state.data - a shonraí reatha. Tabhair faoi deara le do thoil go bhfuil stóráil sonraí TON - Cill, cealla - cosúil le crann, is féidir a sonraí féin agus cealla leanaí a bheith ag gach cill. Léirítear é seo mar eangú sna línte deiridh.

Conradh cliste a thógáil

Anois cruthaimis a leithéid de struchtúr sinn féin (BOC a thugtar air - mála de chealla) ag baint úsáide as an teanga Cúig. Go fortunately, ní gá duit conradh cliste a scríobh tú féin - san fhillteán crypto/block tá comhad ón gcartlann foinse new-wallet.fif, a chabhróidh linn sparán nua a chruthú. Déanaimis é a chóipeáil go dtí an fillteán leis an gcliant comhchruinnithe (~/liteclient-build, má lean tú na treoracha thuas). Luaigh mé a bhfuil ann thuas mar shampla de chód ar Fift.

Rith an comhad seo mar seo a leanas:

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

Anseo <source-directory> Ní mór an cosán chuig na foinsí neamhphacáilte a chur in ionad (ní féidir an tsiombail “~”, ar an drochuair, a úsáid anseo, tá an cosán iomlán ag teastáil). In ionad eochair a úsáid -I is féidir leat athróg timpeallachta a shainiú FIFTPATH agus cuir an cosán seo isteach ann.

Ó sheol muid Fift leis an ainm comhaid new-wallet.fif, déanfaidh sé é a fhorghníomhú agus scoirfidh sé. Má fhágann tú an t-ainm comhaid ar lár, is féidir leat imirt leis an teangaire go hidirghníomhach.

Tar éis é a fhorghníomhú, ba cheart rud mar seo a thaispeáint sa chonsól:

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)

Ciallaíonn sé seo go bhfuil an sparán leis an ID -1:4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2 (nó, cad é mar an gcéanna, 0f9PzVILj8yglrVn1zS-NSjtxr7QBfaTCp7JrBqnFPIR8nhZ) cruthaithe go rathúil. Beidh an cód comhfhreagrach sa chomhad new-wallet-query.boc, tá a sheoladh i new-wallet.addr, agus tá an eochair phríobháideach i new-wallet.pk (bí cúramach - má ritheann tú an script arís déanfar na comhaid seo a fhorscríobh).

Ar ndóigh, níl a fhios ag líonra TON faoin sparán seo go fóill; ní stóráiltear é ach i bhfoirm na gcomhad seo. Anois ní mór é a uaslódáil chuig an líonra. Mar sin féin, is í an fhadhb atá ann ná chun conradh cliste a chruthú ní mór duit coimisiún a íoc, agus tá iarmhéid do chuntais fós nialasach.

Sa mhodh oibre, déanfar an fhadhb seo a réiteach trí ghram a cheannach ar an malartú (nó a aistriú ó sparán eile). Bhuel, sa mhodh tástála reatha, cruthaíodh conradh cliste speisialta, as ar féidir leat suas le 20 gram a iarraidh díreach mar sin.

Iarratas a ghiniúint chuig conradh cliste duine eile

Déanaimid iarratas ar chonradh cliste a dháileann gramanna ar chlé agus ar dheis mar seo. San fhillteán céanna crypto/block comhad a aimsiú 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

Déanfaimid é a shábháil freisin san fhillteán leis an gcliant le chéile, ach ceartóimid an cúigiú líne - roimh an líne “constant dest_addr“. Cuirfimid seoladh an sparán a chruthaigh tú roimhe seo ina ionad (iomlán, gan a bheith giorraithe). Ní gá “-1:” a scríobh ag an tús, ina ionad sin “0x” a chur ag an tús.

Is féidir leat an líne a athrú freisin 6.666 Gram*/ constant amount — is é seo an méid i ngraim atá á iarraidh agat (gan níos mó ná 20). Fiú má shonraíonn tú slánuimhir, fág an pointe deachúil.

Ar deireadh, ní mór duit an líne a cheartú 0x00000011 constant seqno. Is í an chéad uimhir anseo an uimhir seicheamh reatha, atá stóráilte sa chuntas eisiúna gram. Cén áit ar féidir liom é a fháil? Mar a dúradh thuas, cuir tús leis an gcliant agus rith:

last
getaccount -1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

Ag an deireadh, beidh na sonraí conartha cliste

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

Is í an uimhir 0000000D (mise a bheidh níos mó) an uimhir seichimh is gá a chur ina hionad testgiver.fif.

Sin é, sábháil an comhad agus rith (./crypto/fift testgiver.fif). Beidh an t-aschur ina chomhad wallet-query.boc. Is é seo a fhoirmítear сообщение chuig conradh cliste duine eile - iarratas “aistrigh an oiread sin gram go dtí cuntas den sórt sin agus go dtí cuntas den sórt sin.”

Ag baint úsáide as an gcliant, déanaimid é a uaslódáil chuig an líonra:

> 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

Má ghlaonn tú anois last, agus ansin arís a iarraidh ar stádas an chuntais as a d'iarr muid le haghaidh gram, ansin ba chóir dúinn a fheiceáil go bhfuil méadú tagtha ar a uimhir seicheamh amháin - ciallaíonn sé seo gur chuir sé airgead chuig ár gcuntas.

Tá an chéim dheireanach fós - cód ár sparán a íoslódáil (tá a chothromaíocht athlíonta cheana féin, ach gan an cód conartha cliste ní bheidh muid in ann é a bhainistiú). Déanaimid sendfile new-wallet-query.boc - agus sin é, tá do sparán féin agat sa líonra TON (fiú mura bhfuil ann ach ceann tástála faoi láthair).

Idirbhearta atá ag dul as oifig a chruthú

Chun airgead a aistriú ó iarmhéid an chuntais chruthaithe, tá comhad ann crypto/block/wallet.fif, a bhfuil gá freisin a chur san fhillteán leis an gcliant le chéile.

Cosúil leis na céimeanna roimhe seo, ní mór duit an méid atá á aistriú agat a choigeartú, seoladh an fhaighteora (dest_addr), agus seqno do sparán (tá sé comhionann le 1 tar éis an sparán a thúsú agus méadaíonn sé 1 tar éis gach idirbheart amach - is féidir leat féach é trí stádas do chuntais a iarraidh). Le haghaidh tástálacha, is féidir leat, mar shampla, mo sparán a úsáid - 0x4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2.

Ar am tosaithe (./crypto/fift wallet.fif) tógfaidh an script seoladh do sparán (ón áit a aistríonn tú) agus a eochair phríobháideach ó na comhaid new-wallet.addr и new-wallet.pk, agus scríobhfar chuig an teachtaireacht a fuarthas new-wallet-query.boc.

Mar a rinneadh cheana, a dhéanamh go díreach an t-idirbheart, glaoch sendfile new-wallet-query.boc sa chliant. Tar éis seo, ná déan dearmad staid an blockchain a nuashonrú (last) agus seiceáil go bhfuil iarmhéid agus seqno ár sparán athraithe (getaccount <account_id>).

Cliant tástála TON (Telegram Open Network) agus teanga nua Fift le haghaidh conarthaí cliste

Sin é go léir, anois is féidir linn conarthaí cliste a chruthú i TON agus iarratais a sheoladh chucu. Mar a fheiceann tú, is leor an fheidhmiúlacht atá ann faoi láthair cheana féin, mar shampla, sparán níos cairdiúla a dhéanamh le comhéadan grafach (mar sin féin, táthar ag súil go mbeidh sé ar fáil cheana féin mar chuid den teachtaire).

Ní féidir ach le húsáideoirí cláraithe páirt a ghlacadh sa suirbhé. Sínigh isteach, le do thoil.

An bhfuil suim agat leanúint leis na hailt le hanailís ar TON, TVM, Fift?

  • Sea, táim ag fanacht leis an tsraith alt a chríochnú le forbhreathnú ginearálta ar TON

  • Sea, tá sé suimiúil níos mó a léamh faoin teanga Cúigiú

  • Sea, ba mhaith liom níos mó a fhoghlaim faoi TON Virtual Machine agus an cóimeálaí dó

  • Níl, níl aon cheann de seo suimiúil

Vótáil 39 úsáideoir. Staon 12 úsáideoir.

Cad a cheapann tú faoi phleananna Telegram chun TON a sheoladh?

  • Tá dóchas arda agam don tionscadal seo

  • Nílim ach ag leanúint lena fhorbairt le spéis.

  • Tá amhras orm agus tá amhras orm faoi a rath.

  • Tá fonn orm an tionscnamh seo a mheas mar theip agus nach bhfuil gá leis do na maiseanna leathana

Vótáil 47 úsáideoir. Staon 12 úsáideoir.

Foinse: will.com

Add a comment