What is a transaction ID?

Ghid Complet: ID-uri de Tranzacție și Tranzacții TRX

19/05/2025

Rating: 4.83 (10314 votes)

În lumea dinamică și adesea complexă a criptomonedelor, înțelegerea modului în care funcționează tranzacțiile este fundamentală pentru orice utilizator, de la începător la expert. Fie că trimiți, primești sau interacționezi cu contracte inteligente, vei întâlni termeni precum ID de tranzacție și diverse tipuri de tranzacții. Acest ghid detaliază aceste concepte esențiale, oferind o perspectivă clară asupra mecanismelor din spatele mișcărilor tale digitale de active, în special în rețeaua TRON.

What is a TRX transaction?
Transactions are cryptographically signed instructions from accounts. An account will initiate a transaction to update the state of the TRON network. The simplest transaction is transferring TRX from one account to another. Transactions, which change the state of the chain, need to be broadcast to the whole network.

Vom explora ce reprezintă exact un ID de tranzacție, cum îl poți accesa pentru a-ți urmări fondurile și ce implică o tranzacție TRX, de la structura sa tehnică la ciclul său de viață și costurile asociate. De asemenea, vom pătrunde în conceptul adesea ignorat al tranzacțiilor interne, care joacă un rol crucial în funcționarea complexă a contractelor inteligente. Pregătește-te să demistifici lumea tranzacțiilor blockchain și să devii un utilizator mai informat și mai încrezător.

Cuprins

Ce este un ID de Tranzacție?

Un ID de tranzacție, adesea denumit și hash de tranzacție, este un identificator unic, alfanumeric, atribuit fiecărei tranzacții care are loc pe o rețea blockchain. Gândește-te la el ca la un număr de înregistrare sau un cod de urmărire pentru o livrare; el permite oricui să urmărească și să verifice detaliile unei anumite tranzacții pe un explorer de blocuri public. Fiecare ID de tranzacție este unic și ireversibil, asigurând transparența și integritatea rețelei.

Acest ID este esențial pentru a confirma că o tranzacție a fost inițiată, procesată și confirmată în rețea. Dacă ai trimis criptomonede și destinatarul susține că nu le-a primit, ID-ul de tranzacție este prima informație pe care o vei oferi pentru a demonstra că tranzacția a avut loc și pentru a permite verificarea stării sale.

Cum să găsești un ID de Tranzacție?

Localizarea ID-ului de tranzacție este un proces simplu și vital pentru a-ți monitoriza activele. Majoritatea portofelelor și platformelor de schimb oferă modalități ușoare de a accesa aceste informații. Iată cum poți face acest lucru, atât pe dispozitive mobile, cât și pe extensii de browser:

Pe Extensia de Browser (Desktop)

Imediat ce ai inițiat o tranzacție, aceasta va apărea în fila de Activitate a contului tău, indicând dacă ai trimis sau ai primit fonduri. Pentru a accesa ID-ul, urmează acești pași:

  1. Navighează la fila Activitate în interfața portofelului tău.
  2. Localizează tranzacția dorită și selecteaz-o pentru a vedea detaliile.
  3. Vei observa opțiunea convenabilă „Copiază ID-ul Tranzacției” (sau similar). Aceasta va copia ID-ul în clipboard, gata de utilizat.
  4. Alternativ, pentru a vedea mai multe detalii, poți selecta „Vizualizare pe explorer de blocuri”. Acest lucru te va duce la pagina corespunzătoare a explorerului de blocuri pentru rețeaua pe care o utilizezi (de exemplu, Etherscan pentru Ethereum, Polygonscan pentru Polygon). Aici, ID-ul de tranzacție este adesea denumit „hash de tranzacție”.

Pe Dispozitive Mobile

Pe mobil, există două modalități principale de a vizualiza tranzacțiile, în funcție de modul în care dorești să le filtrezi:

Metoda 1: Vizualizarea din Portofel (filtrare după tip de token)

Această metodă este utilă dacă dorești să distingi între tipurile de token-uri. Este accesibilă din vizualizarea portofelului, care afișează toate tipurile de token-uri adăugate anterior sau deținute de portofel.

  1. Din ecranul principal al portofelului, apasă pe tipul de token relevant (de exemplu, TRX, USDT) pentru a afișa tranzacțiile sale.
  2. Selectează tranzacția pe care o cauți.
  3. Derulează în jos pentru a vedea activitatea și apoi apasă pe tranzacție pentru a-i vizualiza detaliile.

Metoda 2: Vizualizarea tuturor activităților

Această metodă este cea mai rapidă pentru a vedea toate tranzacțiile, indiferent de tipul de token.

  1. Apasă pe pictograma ceas (sau similară) din bara de file pentru a vizualiza toate activitățile.

Oricare ar fi metoda utilizată, ți se vor prezenta informațiile de bază și starea tranzacției. În partea de jos, vei vedea o opțiune de vizualizare pe un explorer de blocuri (de exemplu, Etherscan). Selectează această opțiune pentru a deschide explorerul în browserul nativ al aplicației. Acolo, vei putea localiza cu ușurință ID-ul tranzacției, listat ca „hash de tranzacție”. La fel ca în cazul extensiei, link-urile explorerului de blocuri se vor actualiza în funcție de rețeaua pe care o utilizezi (de exemplu, dacă folosești Polygon, aplicația va afișa un link către Polygonscan).

Ce este o Tranzacție TRX?

Tranzacțiile TRX se referă la instrucțiuni semnate criptografic, inițiate de conturi, care au scopul de a actualiza starea rețelei TRON. Cea mai simplă formă de tranzacție este transferul de TRX de la un cont la altul. Aceste tranzacții, care pot modifica starea blockchain-ului, trebuie difuzate către întreaga rețea. Orice nod poate difuza o cerere pentru o tranzacție. După ce un super nod primește tranzacția, o execută și o include într-un bloc, apoi propagă blocul către întreaga rețea. Doar după ce tranzacția este inclusă într-un bloc de către un super nod și blocul este confirmat, tranzacția este considerată confirmată final.

Structura unei Tranzacții TRX

O tranzacție TRX trimisă include, în principal, următoarele câmpuri:

  • raw_data.contract: Conținutul principal al tranzacției. Acesta este o listă, dar în prezent se utilizează doar un singur element. TRON suportă mai multe tipuri de tranzacții, iar conținutul contractului diferă în funcție de tip. De exemplu, pentru o tranzacție de transfer TRX, contractul va include suma transferată, adresa de primire și alte informații.
  • raw_data.ref_block_bytes: Înălțimea blocului de referință al tranzacției, utilizând byte-ii 6-8 (exclusiv) ai înălțimii blocului de referință. Blocul de referință este utilizat în mecanismul TRON TAPOS pentru a preveni reluarea unei tranzacții pe fork-uri care nu includ blocul referențiat.
  • raw_data.ref_block_hash: Hash-ul blocului de referință al tranzacției, utilizând byte-ii 8-16 (exclusiv) ai hash-ului blocului de referință. De asemenea, utilizat în mecanismul TAPOS.
  • raw_data.expiration: Timpul de expirare al tranzacției, după care tranzacția nu va mai fi inclusă într-un bloc.
  • raw_data.data: Memo-ul tranzacției (un câmp opțional pentru note).
  • raw_data.timestamp: Timpul de creare al tranzacției. Deși poate fi setat, timestamp-ul blocului în care este inclusă tranzacția este timestamp-ul real on-chain.
  • raw_data.fee_limit: Costul maxim de Energie permis pentru execuția tranzacțiilor cu contracte inteligente. Acest parametru trebuie setat doar pentru implementarea și declanșarea tranzacțiilor cu contracte inteligente.
  • signature: Semnătura expeditorului pentru tranzacție. Aceasta dovedește că tranzacția a putut proveni doar de la expeditor și nu a fost trimisă fraudulos.

Tipuri de Tranzacții TRX

Pe TRON, există o multitudine de tipuri de tranzacții, fiecare având un scop specific:

  • Tranzacții de transfer TRX: Cea mai comună, mutarea TRX între conturi.
  • Tranzacții de transfer TRC10: Transferul de token-uri TRC10 (standard de token TRON).
  • Tranzacții de implementare contract inteligent: Crearea și publicarea unui nou contract inteligent pe blockchain.
  • Tranzacții de declanșare contract inteligent: Interacțiunea cu un contract inteligent deja existent.
  • Tranzacții de staking TRX: Blocarea TRX pentru a obține resurse precum Bandwidth sau Energy.
  • Și multe altele, inclusiv votarea pentru Super Reprezentanți (SR), crearea de conturi noi, actualizarea permisiunilor contului, crearea de perechi de schimb etc.

Ciclul de Viață al unei Tranzacții TRX

O tranzacție parcurge mai multe etape importante în ciclul său de viață:

  1. Crearea și Semnarea Tranzacției: Tranzacția este inițiată de către un utilizator și semnată criptografic cu cheia privată a expeditorului. Această semnătură confirmă autenticitatea și integritatea tranzacției.
  2. Difuzarea Tranzacției: Tranzacția semnată este apoi difuzată către rețeaua TRON. Nodurile din rețea o verifică și o execută local. Tranzacțiile valide sunt adăugate într-un pool de cache al tranzacțiilor.
  3. Includerea în Bloc: Nodul care produce blocuri preia tranzacțiile din pool-ul de cache, în ordinea în care au fost introduse, le împachetează într-un nou bloc și apoi difuzează acest nou bloc către întreaga rețea.
  4. Confirmarea Tranzacției: O tranzacție este considerată confirmată atunci când blocul în care este inclusă este confirmat. Mecanismul de confirmare a blocului pe TRON este următorul: după ce un bloc este produs, dacă 19 super noduri diferite produc blocuri ulterioare bazate pe acest bloc, blocul este confirmat. Nodurile java-tron oferă API-uri specifice (de exemplu, /walletsolidity/*) pentru a interoga tranzacțiile confirmate, spre deosebire de cele care sunt doar pe lanț, dar nu neapărat confirmate.

Costurile Tranzacțiilor TRX

Cu excepția operațiunilor de interogare, orice tranzacție on-chain pe TRON va consuma resurse de sistem. Toate tipurile de tranzacții necesită consum de Bandwidth. În plus față de Bandwidth, implementarea contractelor inteligente și tranzacțiile de apelare consumă și Energy. Atunci când Bandwidth-ul sau Energy-ul disponibil într-un cont sunt insuficiente, TRX trebuie ars pentru a plăti taxa corespunzătoare pentru resurse. Pe lângă taxa de resurse, unele tranzacții speciale necesită și alte taxe.

Taxa de Bandwidth

Cantitatea de Bandwidth consumată de o tranzacție este egală cu numărul de octeți ocupați de tranzacție on-chain. Aceasta include trei părți: raw_data a tranzacției, semnătura tranzacției și rezultatul tranzacției. Numărul de octeți ocupați de aceste trei părți după codificarea de serializare protobuf reprezintă cantitatea de Bandwidth consumată de tranzacție.

Atunci când atât Bandwidth-ul obținut prin staking, cât și Bandwidth-ul zilnic gratuit dintr-un cont sunt insuficiente, TRX trebuie ars pentru a plăti costul Bandwidth-ului. Calculul este:

TRX ars pentru Bandwidth = Bandwidth total consumat de tranzacție * Prețul unitar al Bandwidth-ului

Prețul unitar curent al Bandwidth-ului este de 1.000 sun (1 TRX = 1.000.000 sun).

De notat: Dacă adresa de primire a tranzacțiilor de transfer TRX și TRC10 este o adresă inactivată, tranzacția va activa adresa de primire. În acest caz, dacă adresa apelantului nu are suficient Bandwidth obținut prin staking, tranzacția va consuma 0,1 TRX ca taxă de Bandwidth.

What is a transaction ID?
Every single transaction on the blockchain is assigned a unique transaction ID, also known as a transaction hash. Often, the terms can be found with the abbreviations tx or txn substituted for transaction. Explaining the cryptography behind this number would require extensive explanation.

Taxa de Energie

Pe lângă Bandwidth, implementarea și invocarea contractelor inteligente consumă și Energy. Atunci când contractul este executat, Energy-ul este calculat și dedus pentru fiecare instrucțiune. Energy-ul obținut prin staking va fi consumat primul. Dacă această parte a Energy-ului nu este suficientă, TRX-ul contului va fi apoi ars pentru a plăti costul Energy-ului necesar pentru tranzacție.

Calculul este:

TRX ars pentru Energy = (Cantitatea totală de Energy consumată de tranzacție - Cantitatea de Energy disponibilă în contul apelantului) * Prețul unitar al Energy-ului

Prețul unitar curent al Energy-ului este de 210 sun.

Alte Taxe

Pentru unele tranzacții speciale, pe lângă taxele de resurse, pot fi necesare și alte taxe:

  • Dacă inițiatorul tranzacției adaugă note (memo) la tranzacție, se plătește o taxă suplimentară de 1 TRX.
  • Dacă tranzacția utilizează mai multe semnături (adică numărul de semnături este mai mare de 1), inițiatorul tranzacției trebuie să plătească o taxă suplimentară de 1 TRX pentru multi-semnătură.

În plus, există taxe de tranzacție pentru următoarele tipuri specifice de tranzacții:

Tip de TranzacțieDescriereTaxă
WitnessCreateContractAplicare pentru a deveni candidat Super Reprezentant (SR)9.999 TRX
AssetIssueContractEmitere un token TRC101.024 TRX
AccountCreateContractCreare un cont nou (activare un cont)1 TRX
AccountPermissionUpdateContractActualizare permisiuni cont100 TRX
ExchangeCreateContractCreare o pereche de schimb1.024 TRX

Este important de reținut că pentru tranzacțiile TransferContract sau TransferAssetContract (adică transferuri TRX și transferuri de token-uri TRC10), dacă adresa țintă nu este activată, tranzacția va declanșa și crearea unui nou cont, iar o taxă de creare a contului nou de 1 TRX va fi dedusă. În același timp, dacă Bandwidth-ul obținut prin staking în contul inițiatorului tranzacției este insuficient, 0,1 TRX trebuie plătit ca taxă de Bandwidth.

Tranzacțiile Interne

Așa-numitele tranzacții se referă, în general, la tranzacțiile declanșate de conturi externe, cum ar fi tranzacțiile de apelare a contractelor inteligente. Dar în timpul execuției tranzacțiilor cu contracte inteligente, contractul poate declanșa alte invocări de metode de contract, sau poate transfera token-uri TRX/TRC10 către conturi externe, sau poate efectua operațiuni precum staking, votare, delegare de resurse. Astfel de tranzacții care apar în timpul unei execuții de contract inteligent sunt numite tranzacții interne. Prin urmare, tranzacțiile interne sunt tranzacții declanșate în Mașina Virtuală TRON (TVM) de către conturile de contract.

Generarea Tranzacțiilor Interne

Pentru a ilustra generarea tranzacțiilor interne, să luăm exemplul schimbului de USDT pentru TRX într-un schimb descentralizat. Când un utilizator inițiază un schimb, contractul inteligent al schimbului va executa mai multe operațiuni, cum ar fi:

  • Interogarea soldului USDT al contractului.
  • Transferul de TRX către contul utilizatorului care a inițiat schimbul.
  • Transferul de USDT de la contul utilizatorului către contractul de schimb.
  • Re-interogarea soldului USDT al contractului după transfer.

Fiecare dintre aceste operațiuni interne, deși parte a unei singure tranzacții externe inițiate de utilizator, generează o tranzacție internă distinctă. Acestea sunt esențiale pentru a urmări fluxul exact al valorii și interacțiunile complexe din cadrul contractelor inteligente.

Cazuri de Utilizare pentru Tranzacțiile Interne

Tranzacțiile interne pot oferi informații vitale și au multiple cazuri de utilizare într-o aplicație descentralizată (DApp):

  • Notificări de Tranzacții Eșuate: Întreaga tranzacție va eșua dacă o tranzacție internă eșuează. Scopul notificării utilizatorilor cu privire la locația exactă a punctului de eroare poate fi atins prin tranzacțiile interne, ceea ce ajută la localizarea și rezolvarea rapidă a problemelor.
  • Monitorizarea Contractelor Inteligente: Contractul tău inteligent implementat poate interacționa cu alte contracte prin tranzacții interne. Pentru a ști când și cu ce contracte interacționează, poți monitoriza adresa contractului tău inteligent pentru orice tranzacții interne.
  • Analiza Contractelor Inteligente: Deoarece tranzacțiile interne pot fi complexe, obținerea de informații este utilă. Analizând numărul de tranzacții interne efectuate de un contract inteligent, poți înțelege performanța acelui contract.
  • Tranzacții în Serie (Batch): Dacă trimiți un lot de tranzacții către diferite adrese de destinatar, poți utiliza tranzacțiile interne pentru a te asigura mai convenabil și mai sigur că ajung la adresele corecte.

Cum să Stochezi Tranzacțiile Interne

Deși tranzacțiile interne sunt extrem de utile, nodul TRON nu salvează informațiile despre tranzacțiile interne în mod implicit. Pentru a le activa, trebuie să modifici manual fișierul de configurare al nodului, setând:

vm = {
...
saveInternalTx = true
saveFeaturedInternalTx = true
...
}
  • saveInternalTx: Indică dacă să se salveze tranzacțiile interne.
  • saveFeaturedInternalTx: Când saveInternalTx este activat, indică dacă să se salveze tranzacțiile interne legate de Stake 2.0.

După activarea acestei configurații și repornirea nodului, acesta va începe să salveze tranzacțiile interne. Poți vizualiza tranzacțiile interne prin ID-ul tranzacției externe (părinte), dar vizualizarea directă prin hash-ul tranzacțiilor interne nu este suportată. Poți apela API-ul gettransactioninfobyid pentru a interoga tranzacțiile interne implicate într-o tranzacție.

Exemple de Tranzacții Interne

O tranzacție internă salvată de un nod conține următoarele informații:

  • hash: Valoarea hash a tranzacției interne.
  • caller_address: Adresa apelantului (contractul care a inițiat tranzacția internă).
  • transferTo_address: Adresa contractului apelat sau adresa contului care primește token-uri TRX/TRC10.
  • callValueInfo.callValue: Suma de token-uri TRX/TRC10 transferată.
  • callValueInfo.tokenId: Numele sau ID-ul token-ului TRC10. Când se transferă TRX, acest câmp este gol.
  • note: Tipul instrucțiunii (de exemplu, call, create, suicide, freezeBalanceV2ForEnergy, freezeBalanceV2ForBandwidth, unfreezeBalanceV2ForBandwidth).
  • rejected: Indică dacă tranzacția internă a eșuat. true înseamnă că execuția a eșuat.
  • extra: În prezent, este utilizat în principal pentru a salva informații de vot, înregistrând SR-ul votat și numărul de voturi în format JSON.

Iată câteva exemple concrete de tranzacții interne:

  1. Apelarea altor metode de contract inteligent: Când un contract inteligent apelează o funcție dintr-un alt contract. caller_address este contractul care apelează, iar transferTo_address este contractul apelat.
  2. Transferuri de TRX către conturi externe: Când un contract inteligent transferă TRX unui cont extern. caller_address este contractul, transferTo_address este adresa de primire, iar callValueInfo[0].callValue este suma TRX transferată.
  3. Transferuri de token-uri TRC10 către conturi externe: Similar cu transferul TRX, dar callValueInfo[0].tokenId va conține numele sau ID-ul token-ului TRC10.
  4. Staking de TRX de către un contract inteligent: Când un contract inteligent blochează TRX pentru a obține resurse. note va indica dacă este pentru Energy (freezeBalanceV2ForEnergy) sau Bandwidth (freezeBalanceV2ForBandwidth).
  5. Unstaking de TRX de către un contract inteligent: Când un contract inteligent deblochează TRX staked. note va indica unfreezeBalanceV2ForBandwidth sau unfreezeBalanceV2ForEnergy.
  6. Delegarea resurselor către alte conturi: Un contract inteligent poate delega Bandwidth sau Energy altor conturi. note va fi delegateResourceOfEnergy sau delegateResourceOfBandwidth.
  7. Anularea delegării resurselor: Un contract inteligent poate anula o delegare de resurse. note va fi unDelegateResourceOfEnergy sau unDelegateResourceOfBandwidth.
  8. Votarea pentru SR-uri de către un contract inteligent: Un contract poate vota pentru Super Reprezentanți. Câmpul extra va conține detaliile votului (adresele SR și numărul de voturi).
  9. Retragerea recompenselor de către un contract inteligent: Un contract poate retrage recompense. note va fi withdrawReward.

Întrebări Frecvente

Ce este diferența dintre ID-ul de Tranzacție și Hash-ul de Tranzacție?

În contextul blockchain, termenii ID de tranzacție și hash de tranzacție sunt adesea folosiți interschimbabil și se referă la același identificator unic al unei tranzacții. Pe multe explorere de blocuri, vei vedea câmpul etichetat ca „Transaction Hash” sau „TxHash”, în timp ce portofelele pot folosi „Transaction ID” sau „TxID”. Nu există nicio diferență funcțională între ele; ambele reprezintă amprenta digitală unică a tranzacției tale.

De ce este tranzacția mea în așteptare?

O tranzacție poate rămâne în așteptare din mai multe motive. Cel mai comun este congestia rețelei, care înseamnă că există mai multe tranzacții decât pot fi procesate rapid de minerii sau validatorii rețelei. Un alt motiv poate fi o taxă de tranzacție prea mică; dacă taxa oferită este sub nivelul acceptat de rețea, tranzacția ta ar putea fi ignorată sau procesată cu prioritate foarte scăzută. În rețeaua TRON, o tranzacție poate fi în așteptare până când este inclusă într-un bloc și acel bloc este confirmat de super noduri.

De ce a eșuat tranzacția mea?

Eșecul unei tranzacții poate avea diverse cauze. Acestea includ:

  • Fonduri insuficiente: Nu ai suficient TRX sau token-ul necesar pentru a acoperi suma transferată și taxele de tranzacție.
  • Resurse insuficiente (Bandwidth/Energy): Pe TRON, dacă nu ai suficient Bandwidth sau Energy și nu ai TRX pentru a arde pentru a le acoperi, tranzacția va eșua.
  • Contract inteligent eșuat: Dacă interacționezi cu un contract inteligent, execuția sa poate eșua din cauza unor erori în logica contractului sau a unor condiții neîndeplinite. Tranzacțiile interne pot juca un rol aici, dacă una dintre ele eșuează, întreaga tranzacție externă va fi marcată ca eșuată.
  • Adresă incorectă: Trimiterea către o adresă invalidă sau inexistentă.
  • Expirarea tranzacției: Pe TRON, tranzacțiile au un timp de expirare. Dacă nu este inclusă într-un bloc înainte de acest termen, va eșua.

Ce se întâmplă dacă nu am suficient Bandwidth/Energy?

Dacă nu ai suficient Bandwidth sau Energy pentru o tranzacție pe rețeaua TRON, sistemul va încerca să acopere deficitul arzând o cantitate echivalentă de TRX din contul tău. Dacă nu ai suficient TRX pentru a acoperi aceste costuri suplimentare, tranzacția ta va fi respinsă și va eșua. Este crucial să te asiguri că ai resurse adecvate sau TRX disponibil pentru a evita eșecurile tranzacțiilor, în special când interacționezi cu contracte inteligente care consumă multă Energy.

Pot vedea tranzacțiile interne pe orice explorer de blocuri?

Vizualizarea tranzacțiilor interne depinde de configurația nodului TRON la care se conectează explorerul de blocuri. În mod implicit, nodurile TRON nu salvează informațiile despre tranzacțiile interne. Un explorer de blocuri sau o platformă care dorește să afișeze aceste detalii trebuie să se conecteze la noduri care au activat explicit salvarea tranzacțiilor interne (prin setările saveInternalTx = true). Prin urmare, deși unele explorere avansate pot afișa aceste informații, nu toate o vor face.

Concluzie

Înțelegerea ID-urilor de tranzacție, a mecanismelor tranzacțiilor TRX și a complexității tranzacțiilor interne este esențială pentru oricine navighează în ecosistemul blockchain. Aceste cunoștințe îți permit să monitorizezi cu precizie mișcările de active, să depanezi probleme potențiale și să interacționezi cu încredere cu aplicațiile descentralizate. Blockchain-ul este un registru public și transparent, iar instrumentele precum ID-urile de tranzacție și explorerele de blocuri sunt cheia pentru a debloca această transparență. Prin asimilarea acestor concepte, vei fi mai bine echipat pentru a profita la maximum de oportunitățile oferite de revoluția digitală a finanțelor.

Dacă vrei să descoperi și alte articole similare cu Ghid Complet: ID-uri de Tranzacție și Tranzacții TRX, poți vizita categoria Fitness.

Go up