Bagaimana Membaca Block Explorer dan Memahami Transaksi, Jejak, dan Log pada Ethereum (EVM)

LanjutanSep 13, 2024
Pelajari cara membaca eksplorator seperti Etherscan dan menavigasi data melintasi tiga struktur data kunci ini, dan bagaimana menemukan tabel yang perlu Anda kueri.
Bagaimana Membaca Block Explorer dan Memahami Transaksi, Jejak, dan Log pada Ethereum (EVM)

Apa yang ada dalam sebuah transaksi?

Jika Anda pernah melakukan transaksi di Ethereum (atau blockchain yang memungkinkan kontrak pintar lainnya), maka Anda mungkin telah mencarinya di penjelajah blok seperti etherscan.io dan melihat tumpukan informasi ini:

Tab Gambaran Transaksi

Dan jika Anda mencoba melihat log atau jejak (tx internal), Anda mungkin telah melihat halaman-halaman membingungkan ini:

Tab Log (Anda beruntung jika mereka di-decode dengan baik seperti ini)

Tab Jejak (yeah terlihat seperti sekumpulan omong kosong)

Belajar membaca detail transaksi di penjelajah blok akan menjadi dasar untuk semua analisis data Ethereum dan pengetahuan Anda, jadi mari kita bahas semua bagian dan cara kerjanya dengan SQL.

Saya hanya akan membahas bagaimana memahami konsep-konsep ini secara umum; jika Anda ingin belajar untuk mendekripsi ini secara manual, maka Anda perlu menjadi akrab dengan bagaimana data dienkripsi(sama halnya dengan transaksi/jejak/log) dan bagaimana cara menggunakanFungsi bytearray/hex Duneuntuk beralih antara berbagai jenis.

Pada akhir panduan ini, Anda akan dapat memahami dan menavigasi tabel data untuk kontrak apa pun menggunakan kueri pencari tabel transaksi ini:

Tautan Kueri(Masukkan hash tx, rantai, dan nomor blok apa pun)

Setelah Anda mempelajari konsep-konsep dalam panduan ini, Anda juga sebaiknya belajar untuk menggunakan sayaDasbor memulai cepat EVMuntuk memulai analisis kontrak apa pun.

Bagaimana Menganalisis Protokol atau Produk Ethereum Apapun Dalam Lima Menit

Andrew Hong

·

30 Desember 2022

Baca cerita lengkap

Transaksi

Transaksi hanya ujung gunung es data, semua jejak dan log dipanggil SETELAH data masukan awal memulai fungsi tingkat atas. Mari kita pertama-tama menandai semua bidang yang akan Anda lihat di halaman transaksi block explorer:

Ini adalah bidang-bidang yang sama yang akan Anda lihat ketika Anda menanyakan “ethereum.transactions” di Dune. Item kunci yang perlu dipelajari untuk diidentifikasi di sini adalah apakah “to” adalah kontrak atau tidak. Biasanya, kontrak akan jelas dilabeli. Jika itu adalah kontrak, seharusnya ada “input data” yang berisi panggilan fungsi.

tautan transaksi

Dari semua konsep ini, yang pertama untuk dipelajari dengan baik adalah EOA versus alamat kontrak. Kontrak diterapkan oleh EOA, dan dapat dipanggil dalam kolom "to" dari transaksi. Jika Anda mengklik suatu alamat, penjelajah akan menunjukkan di bagian kiri atas apakah itu kontrak atau akun. Di dune, Anda dapat bergabung pada tabel ethereum.creation_traces untuk memeriksa apakah itu kontrak. Perhatikan bahwa hanya EOA yang dapat menjadi penandatangan "from" tx.

Penting untuk mempelajari data apa yang berasal langsung dari onchain versus data apa yang ditambahkan oleh explorer/frontends di atasnya. Semua di blockchain diwakili sebagai heksadesimal (kadang-kadang disebut biner atau byte), jadi panggilan pertukaran 1inch akan memiliki string data input ini:

contoh transaksi

4 byte pertama (8 karakter) adalah “tanda tangan fungsi”, yang merupakan hash keccakdari nama fungsi dan jenis input. Etherscan memiliki tombol “decode” yang bagus untuk beberapa kontrak, memberikan Anda bentuk yang dapat dibaca ini:

contoh transaksi

Seperti yang dapat Anda lihat, ada banyak variabel yang dikemas bersama ke dalam string heksadesimal panjang dari sebelumnya. Cara mereka di-encode mengikuti spesifikasi antarmuka biner aplikasi (ABI) dari kontrak pintar.

ABI's mirip dengan dokumentasi API untuk kontrak pintar (seperti spesifikasi OpenAPI), Anda dapat membaca lebih lanjut di sinidetail teknis di siniKebanyakan pengembang akan memverifikasi ABI mereka sesuai dengan kontrak dan mengunggah ABI untuk orang lain merujuk dalam mendekode. Banyak kontrak mungkin terkait dengan MEV/perdagangan, di mana pengembang ingin menjaga hal-hal tertutup dan pribadi - jadi kita tidak mendapatkan dekode apa pun dari mereka.

Di Dune, kami telah mendekode tabelberdasarkan kontrak ABIs yang diajukanke dalam tabel kontrak (yaitu ethereum.contracts), fungsi dan acara dikonversi menjadi tanda tangan byte (ethereum.signatures) yang kemudian dicocokkan dengan jejak dan log untuk memberikan Anda tabel yang didekodekan seperti uniswap_v2_ethereum.Pair_evt_Swap yang menyimpan semua pertukaran untuk semua kontrak pasangan yang dibuat oleh pabrik pasangan Uniswap v2. Anda dapat menyaring pertukaran pada pasangan tertentu dengan melihat tabel alamat kontrak untuk acara.

Di Dune, Anda akan ingin mengambil tabel ini untuk panggilan fungsi oneinch_ethereum.AggregationRouterV6_call_swap. Anda akan melihat bahwa nama tabel ini berada di bagian atas hasil kueri pada penemuan tabel di awal panduan.

Untuk bagian-bagian berikut tentang jejak dan log, kami akan menggunakan transaksi swap agregator 1inch yang samaIni adalah contoh yang bagus karena router akan menukar token di berbagai kontrak DEX, jadi kita akan mendapatkan beragam jejak dan log untuk diselidiki.

Catatan

Selanjutnya, mari kita bicarakan tentang log acara. Log dapat dipancarkan pada titik manapun dalam panggilan fungsi. Pengembang biasanya akan memancarkan log pada akhir fungsi, setelah semua transfer/logika selesai tanpa kesalahan. Mari kita lihat acara swap uniswap v3 yang dipancarkan dari transaksi sebelumnya:

contoh transaksi

Anda akan melihat ada bidang topic0, topic1, topic2, dan data. topic0 mirip dengan tanda tangan fungsi, kecuali 32 byte, bukan hanya 4 byte (masih di-hash dengan cara yang sama). Peristiwa dapat memiliki kolom "diindeks" untuk pemfilteran data yang lebih cepat, yang dapat muncul di topik1, topik2, atau topik3. Semua bidang lainnya dikodekan bersama dalam objek "data". Sekali lagi, mereka mengikuti aturan pengkodean yang sama dengan transaksi dan jejak. "28" adalah indeks acara di seluruh blok. Terkadang berguna untuk bergabung ketika Anda menginginkan swap atau transfer pertama dalam tx.

Untuk menemukan logika di balik di mana dan bagaimana peristiwa ini dipancarkan, saya harus menyelami kode soliditas. Saya akan mengklik alamat acara yang ditautkan, pergi ke tab kontrak, dan mencari "emit swap" karena saya tahu bahwa semua acara telah "memancarkan" tepat sebelum mereka dipanggil dalam kode.

Ini adalah kontrak uniswapv3poolyang dibuat pabrik untuk setiap pasangan.

Saya bisa melihat bahwa ini dipancarkan di baris 786 dari kontrak, sebagai bagian dari fungsi “swap”.

Mampu menavigasi fungsi dan garis keturunan acara di sepanjang kontrak akan menjadi keterampilan kunci yang perlu Anda pelajari untuk memahami dengan akurat garis keturunan data yang sedang Anda minta. Anda tidak perlu belajar soliditas secara mendalam untuk menavigasi file-file ini, hanya tahu bagaimana memahami antarmuka kontrakdan ketika fungsi/acara dipanggil (fungsi dan emit adalah kata kunci Anda).

Untuk contoh yang mendalam dari penyelidikan kode untuk fungsi dan peristiwa,periksa pemecahan kontrak Sudoswap dan data ini.

Menggunakan kueri penemuan tabel dari sebelumnya, saya dapat melihat bahwa tabel yang harus saya kueri untuk swap ini adalah uniswap_v3_ethereum.Pair_evt_Swap dan bahwa itu dipancarkan setelah fungsi swap() dipanggil.

Jejak (ethereum.traces)

Jejak dapat dengan cepat menjadi sangat sulit untuk dinavigasi, karena panggilan bersarang antara kontrak yang berbeda. Mari kita pertama-tama memahami jenis jejak:

  • CREATE: ini adalah jejak yang dipancarkan saat kontrak baru didaftarkan. Anda dapat mendaftarkan kontrak secara langsung di bagian atas transaksi, ini berarti tidak ada alamat 'to' dalam data transaksi. Anda juga dapat mendaftarkan kontrak dalam panggilan fungsi, oleh karena itu adanya pabrik kontrak. Periksa tabel ethereum.creation_traces untuk melihat tampilan yang lebih sederhana dari ini.
  • DELEGateCALL: ini masuk dalam daftar 'abaikan' ketika melihat transaksi. Pikirkan ini sebagai meneruskan permintaan dari satu server ke server berikutnya tanpa mengubah logika apapun. Ini terkait dengan proxy dan penyimpanan, Anda dapat...@bansaltushar014/deleGatecall-in-solidity-4138b121cbe">lihat detail lebih lanjut di sini.
  • PANGGIL: ini adalah jejak yang paling umum dan generik. Panggilan dapat hanya transfer nilai ETH tanpa melibatkan kontrak apa pun. Ini juga dapat menjadi panggilan fungsi apa pun pada kontrak mana pun.
  • STATICCALL: ini adalah panggilan fungsi yang TIDAK mengubah status apa pun, dan murni digunakan untuk perhitungan. Hal-hal seperti umpan harga oracle, perhitungan harga AMM, pemeriksaan rasio likuidasi, pemeriksaan saldo, dll semuanya terjadi dalam panggilan statis. Biasanya terlihat dalam soliditas sebagai tipe fungsi "tampilan" atau "murni".

Anda juga perlu memahami kolom/indeks trace_address. Ini adalah pola [0,1,1,1,1] yang sering Anda lihat. Bayangkan itu seperti poin-poin penting, di mana jumlah angka dalam array menunjukkan kedalaman dan urutan panggilan fungsi.

Sebuah (null) —input transaksi pertama memiliki trace_address dari []

CALLs B (0)

CALLs C (0,0)

Panggilan D (1)

CALLs E (1,0) CALLs F (1,0,0)CALLs G (1,1)

PANGGILAN H (2)

Seperti yang dapat Anda lihat dari tangkapan layar transaksi internal (jejak) sebelumnya kami, etherscan bukanlah tempat yang ramah untuk melihat jejak. Saya lebih suka menggunakan phalcon blocksec, yang membuka transaksi seperti ini:

Link ke Explorer

Ini mungkin terlihat membingungkan, tetapi sebenarnya cara yang sangat mudah untuk menjelajahi semua fungsi, peristiwa, dan argumen dalam aliran transaksi. Setelah Anda dapat memahami ini, maka Anda dapat dengan aman mengatakan Anda memahami semua data dalam sebuah transaksi. Perhatikan bahwa saya tabel pencari queryadalah salinan hampir persis dari tata letak ini, saya sangat terinspirasi oleh mereka!

Perlu diingat bahwa di Dune, kami secara otomatis mendekode panggilan transaksi dan jejak dari nama fungsi yang sama ke tabel yang sama. Anda mungkin bertanya-tanya apakah Anda dapat dengan mudah bergabung dengan acara dan jejak/transaksi dalam urutan yang bagus seperti yang ditunjukkan di phalcon. Di Dune, Anda dapat bergabung dengan hash transaksi untuk umumnya mengikat data bersama, tetapi Anda tidak dapat bergabung pada indeks apa pun untuk membuat kembali urutan interaksi yang tepat. Ini adalah keterbatasan yang tidak menguntungkan saat ini yang memerlukan indexer khusus.

Seterusnya, lebih dalam ke hutan gelap crypto

Jika Anda memahami konsep-konsep yang saya jelaskan dalam panduan ini, maka Anda siap untuk menggali lebih dalam dan menulis kueri yang lebih kompleks. Menavigasi data melintasi transaksi menggunakan beberapa alat yang berbeda akan menjadi salah satu keterampilan kunci yang paling Anda perlukan untuk berhasil di ruang ini.

Mungkin ada 10 penjelajah berbeda yang saya gunakan setiap minggu, dan jumlah alatnya 10 kali lipat dari jumlah itu. Saya menulis panduan tahunan yang mencakup bagaimana tumpukan alat data terus berkembang, dan untuk apa Anda harus menggunakan setiap alat:

Panduan Tautan

Penyangkalan:

  1. Artikel ini dicetak ulang dari [ cryptodatabytes], Semua hak cipta dimiliki oleh penulis asli [Andrew Hong]. Jika ada keberatan terhadap cetakan ini, silakan hubungi Gerbang Belajartim, dan mereka akan menanganinya dengan cepat.
  2. Penyangkalan Tanggung Jawab: Pandangan dan opini yang terdapat dalam artikel ini semata-mata merupakan pendapat penulis dan tidak merupakan nasihat investasi apa pun.
  3. Terjemahan artikel ke dalam bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau menjiplak artikel terjemahan dilarang.

Bagaimana Membaca Block Explorer dan Memahami Transaksi, Jejak, dan Log pada Ethereum (EVM)

LanjutanSep 13, 2024
Pelajari cara membaca eksplorator seperti Etherscan dan menavigasi data melintasi tiga struktur data kunci ini, dan bagaimana menemukan tabel yang perlu Anda kueri.
Bagaimana Membaca Block Explorer dan Memahami Transaksi, Jejak, dan Log pada Ethereum (EVM)

Apa yang ada dalam sebuah transaksi?

Jika Anda pernah melakukan transaksi di Ethereum (atau blockchain yang memungkinkan kontrak pintar lainnya), maka Anda mungkin telah mencarinya di penjelajah blok seperti etherscan.io dan melihat tumpukan informasi ini:

Tab Gambaran Transaksi

Dan jika Anda mencoba melihat log atau jejak (tx internal), Anda mungkin telah melihat halaman-halaman membingungkan ini:

Tab Log (Anda beruntung jika mereka di-decode dengan baik seperti ini)

Tab Jejak (yeah terlihat seperti sekumpulan omong kosong)

Belajar membaca detail transaksi di penjelajah blok akan menjadi dasar untuk semua analisis data Ethereum dan pengetahuan Anda, jadi mari kita bahas semua bagian dan cara kerjanya dengan SQL.

Saya hanya akan membahas bagaimana memahami konsep-konsep ini secara umum; jika Anda ingin belajar untuk mendekripsi ini secara manual, maka Anda perlu menjadi akrab dengan bagaimana data dienkripsi(sama halnya dengan transaksi/jejak/log) dan bagaimana cara menggunakanFungsi bytearray/hex Duneuntuk beralih antara berbagai jenis.

Pada akhir panduan ini, Anda akan dapat memahami dan menavigasi tabel data untuk kontrak apa pun menggunakan kueri pencari tabel transaksi ini:

Tautan Kueri(Masukkan hash tx, rantai, dan nomor blok apa pun)

Setelah Anda mempelajari konsep-konsep dalam panduan ini, Anda juga sebaiknya belajar untuk menggunakan sayaDasbor memulai cepat EVMuntuk memulai analisis kontrak apa pun.

Bagaimana Menganalisis Protokol atau Produk Ethereum Apapun Dalam Lima Menit

Andrew Hong

·

30 Desember 2022

Baca cerita lengkap

Transaksi

Transaksi hanya ujung gunung es data, semua jejak dan log dipanggil SETELAH data masukan awal memulai fungsi tingkat atas. Mari kita pertama-tama menandai semua bidang yang akan Anda lihat di halaman transaksi block explorer:

Ini adalah bidang-bidang yang sama yang akan Anda lihat ketika Anda menanyakan “ethereum.transactions” di Dune. Item kunci yang perlu dipelajari untuk diidentifikasi di sini adalah apakah “to” adalah kontrak atau tidak. Biasanya, kontrak akan jelas dilabeli. Jika itu adalah kontrak, seharusnya ada “input data” yang berisi panggilan fungsi.

tautan transaksi

Dari semua konsep ini, yang pertama untuk dipelajari dengan baik adalah EOA versus alamat kontrak. Kontrak diterapkan oleh EOA, dan dapat dipanggil dalam kolom "to" dari transaksi. Jika Anda mengklik suatu alamat, penjelajah akan menunjukkan di bagian kiri atas apakah itu kontrak atau akun. Di dune, Anda dapat bergabung pada tabel ethereum.creation_traces untuk memeriksa apakah itu kontrak. Perhatikan bahwa hanya EOA yang dapat menjadi penandatangan "from" tx.

Penting untuk mempelajari data apa yang berasal langsung dari onchain versus data apa yang ditambahkan oleh explorer/frontends di atasnya. Semua di blockchain diwakili sebagai heksadesimal (kadang-kadang disebut biner atau byte), jadi panggilan pertukaran 1inch akan memiliki string data input ini:

contoh transaksi

4 byte pertama (8 karakter) adalah “tanda tangan fungsi”, yang merupakan hash keccakdari nama fungsi dan jenis input. Etherscan memiliki tombol “decode” yang bagus untuk beberapa kontrak, memberikan Anda bentuk yang dapat dibaca ini:

contoh transaksi

Seperti yang dapat Anda lihat, ada banyak variabel yang dikemas bersama ke dalam string heksadesimal panjang dari sebelumnya. Cara mereka di-encode mengikuti spesifikasi antarmuka biner aplikasi (ABI) dari kontrak pintar.

ABI's mirip dengan dokumentasi API untuk kontrak pintar (seperti spesifikasi OpenAPI), Anda dapat membaca lebih lanjut di sinidetail teknis di siniKebanyakan pengembang akan memverifikasi ABI mereka sesuai dengan kontrak dan mengunggah ABI untuk orang lain merujuk dalam mendekode. Banyak kontrak mungkin terkait dengan MEV/perdagangan, di mana pengembang ingin menjaga hal-hal tertutup dan pribadi - jadi kita tidak mendapatkan dekode apa pun dari mereka.

Di Dune, kami telah mendekode tabelberdasarkan kontrak ABIs yang diajukanke dalam tabel kontrak (yaitu ethereum.contracts), fungsi dan acara dikonversi menjadi tanda tangan byte (ethereum.signatures) yang kemudian dicocokkan dengan jejak dan log untuk memberikan Anda tabel yang didekodekan seperti uniswap_v2_ethereum.Pair_evt_Swap yang menyimpan semua pertukaran untuk semua kontrak pasangan yang dibuat oleh pabrik pasangan Uniswap v2. Anda dapat menyaring pertukaran pada pasangan tertentu dengan melihat tabel alamat kontrak untuk acara.

Di Dune, Anda akan ingin mengambil tabel ini untuk panggilan fungsi oneinch_ethereum.AggregationRouterV6_call_swap. Anda akan melihat bahwa nama tabel ini berada di bagian atas hasil kueri pada penemuan tabel di awal panduan.

Untuk bagian-bagian berikut tentang jejak dan log, kami akan menggunakan transaksi swap agregator 1inch yang samaIni adalah contoh yang bagus karena router akan menukar token di berbagai kontrak DEX, jadi kita akan mendapatkan beragam jejak dan log untuk diselidiki.

Catatan

Selanjutnya, mari kita bicarakan tentang log acara. Log dapat dipancarkan pada titik manapun dalam panggilan fungsi. Pengembang biasanya akan memancarkan log pada akhir fungsi, setelah semua transfer/logika selesai tanpa kesalahan. Mari kita lihat acara swap uniswap v3 yang dipancarkan dari transaksi sebelumnya:

contoh transaksi

Anda akan melihat ada bidang topic0, topic1, topic2, dan data. topic0 mirip dengan tanda tangan fungsi, kecuali 32 byte, bukan hanya 4 byte (masih di-hash dengan cara yang sama). Peristiwa dapat memiliki kolom "diindeks" untuk pemfilteran data yang lebih cepat, yang dapat muncul di topik1, topik2, atau topik3. Semua bidang lainnya dikodekan bersama dalam objek "data". Sekali lagi, mereka mengikuti aturan pengkodean yang sama dengan transaksi dan jejak. "28" adalah indeks acara di seluruh blok. Terkadang berguna untuk bergabung ketika Anda menginginkan swap atau transfer pertama dalam tx.

Untuk menemukan logika di balik di mana dan bagaimana peristiwa ini dipancarkan, saya harus menyelami kode soliditas. Saya akan mengklik alamat acara yang ditautkan, pergi ke tab kontrak, dan mencari "emit swap" karena saya tahu bahwa semua acara telah "memancarkan" tepat sebelum mereka dipanggil dalam kode.

Ini adalah kontrak uniswapv3poolyang dibuat pabrik untuk setiap pasangan.

Saya bisa melihat bahwa ini dipancarkan di baris 786 dari kontrak, sebagai bagian dari fungsi “swap”.

Mampu menavigasi fungsi dan garis keturunan acara di sepanjang kontrak akan menjadi keterampilan kunci yang perlu Anda pelajari untuk memahami dengan akurat garis keturunan data yang sedang Anda minta. Anda tidak perlu belajar soliditas secara mendalam untuk menavigasi file-file ini, hanya tahu bagaimana memahami antarmuka kontrakdan ketika fungsi/acara dipanggil (fungsi dan emit adalah kata kunci Anda).

Untuk contoh yang mendalam dari penyelidikan kode untuk fungsi dan peristiwa,periksa pemecahan kontrak Sudoswap dan data ini.

Menggunakan kueri penemuan tabel dari sebelumnya, saya dapat melihat bahwa tabel yang harus saya kueri untuk swap ini adalah uniswap_v3_ethereum.Pair_evt_Swap dan bahwa itu dipancarkan setelah fungsi swap() dipanggil.

Jejak (ethereum.traces)

Jejak dapat dengan cepat menjadi sangat sulit untuk dinavigasi, karena panggilan bersarang antara kontrak yang berbeda. Mari kita pertama-tama memahami jenis jejak:

  • CREATE: ini adalah jejak yang dipancarkan saat kontrak baru didaftarkan. Anda dapat mendaftarkan kontrak secara langsung di bagian atas transaksi, ini berarti tidak ada alamat 'to' dalam data transaksi. Anda juga dapat mendaftarkan kontrak dalam panggilan fungsi, oleh karena itu adanya pabrik kontrak. Periksa tabel ethereum.creation_traces untuk melihat tampilan yang lebih sederhana dari ini.
  • DELEGateCALL: ini masuk dalam daftar 'abaikan' ketika melihat transaksi. Pikirkan ini sebagai meneruskan permintaan dari satu server ke server berikutnya tanpa mengubah logika apapun. Ini terkait dengan proxy dan penyimpanan, Anda dapat...@bansaltushar014/deleGatecall-in-solidity-4138b121cbe">lihat detail lebih lanjut di sini.
  • PANGGIL: ini adalah jejak yang paling umum dan generik. Panggilan dapat hanya transfer nilai ETH tanpa melibatkan kontrak apa pun. Ini juga dapat menjadi panggilan fungsi apa pun pada kontrak mana pun.
  • STATICCALL: ini adalah panggilan fungsi yang TIDAK mengubah status apa pun, dan murni digunakan untuk perhitungan. Hal-hal seperti umpan harga oracle, perhitungan harga AMM, pemeriksaan rasio likuidasi, pemeriksaan saldo, dll semuanya terjadi dalam panggilan statis. Biasanya terlihat dalam soliditas sebagai tipe fungsi "tampilan" atau "murni".

Anda juga perlu memahami kolom/indeks trace_address. Ini adalah pola [0,1,1,1,1] yang sering Anda lihat. Bayangkan itu seperti poin-poin penting, di mana jumlah angka dalam array menunjukkan kedalaman dan urutan panggilan fungsi.

Sebuah (null) —input transaksi pertama memiliki trace_address dari []

CALLs B (0)

CALLs C (0,0)

Panggilan D (1)

CALLs E (1,0) CALLs F (1,0,0)CALLs G (1,1)

PANGGILAN H (2)

Seperti yang dapat Anda lihat dari tangkapan layar transaksi internal (jejak) sebelumnya kami, etherscan bukanlah tempat yang ramah untuk melihat jejak. Saya lebih suka menggunakan phalcon blocksec, yang membuka transaksi seperti ini:

Link ke Explorer

Ini mungkin terlihat membingungkan, tetapi sebenarnya cara yang sangat mudah untuk menjelajahi semua fungsi, peristiwa, dan argumen dalam aliran transaksi. Setelah Anda dapat memahami ini, maka Anda dapat dengan aman mengatakan Anda memahami semua data dalam sebuah transaksi. Perhatikan bahwa saya tabel pencari queryadalah salinan hampir persis dari tata letak ini, saya sangat terinspirasi oleh mereka!

Perlu diingat bahwa di Dune, kami secara otomatis mendekode panggilan transaksi dan jejak dari nama fungsi yang sama ke tabel yang sama. Anda mungkin bertanya-tanya apakah Anda dapat dengan mudah bergabung dengan acara dan jejak/transaksi dalam urutan yang bagus seperti yang ditunjukkan di phalcon. Di Dune, Anda dapat bergabung dengan hash transaksi untuk umumnya mengikat data bersama, tetapi Anda tidak dapat bergabung pada indeks apa pun untuk membuat kembali urutan interaksi yang tepat. Ini adalah keterbatasan yang tidak menguntungkan saat ini yang memerlukan indexer khusus.

Seterusnya, lebih dalam ke hutan gelap crypto

Jika Anda memahami konsep-konsep yang saya jelaskan dalam panduan ini, maka Anda siap untuk menggali lebih dalam dan menulis kueri yang lebih kompleks. Menavigasi data melintasi transaksi menggunakan beberapa alat yang berbeda akan menjadi salah satu keterampilan kunci yang paling Anda perlukan untuk berhasil di ruang ini.

Mungkin ada 10 penjelajah berbeda yang saya gunakan setiap minggu, dan jumlah alatnya 10 kali lipat dari jumlah itu. Saya menulis panduan tahunan yang mencakup bagaimana tumpukan alat data terus berkembang, dan untuk apa Anda harus menggunakan setiap alat:

Panduan Tautan

Penyangkalan:

  1. Artikel ini dicetak ulang dari [ cryptodatabytes], Semua hak cipta dimiliki oleh penulis asli [Andrew Hong]. Jika ada keberatan terhadap cetakan ini, silakan hubungi Gerbang Belajartim, dan mereka akan menanganinya dengan cepat.
  2. Penyangkalan Tanggung Jawab: Pandangan dan opini yang terdapat dalam artikel ini semata-mata merupakan pendapat penulis dan tidak merupakan nasihat investasi apa pun.
  3. Terjemahan artikel ke dalam bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau menjiplak artikel terjemahan dilarang.
Mulai Sekarang
Daftar dan dapatkan Voucher
$100
!