PREDA — EVM Paralel Terurai Asinkron

Menengah1/8/2025, 11:14:01 AM
PREDA (Parallel Relay Execution Distributed Architecture) adalah model inovatif yang dirancang untuk meningkatkan kinerja dan skalabilitas blockchain. Ini mencapai paralelisasi penuh fungsi kontrak pintar dengan memecah proses eksekusi kontrak pintar menjadi beberapa langkah yang dapat diproses secara paralel. Langkah-langkah ini dieksekusi secara asinkron di berbagai instansi Ethereum Virtual Machine (EVM), dengan demikian memaksimalkan konkurensi dari serangkaian transaksi.

Bayangkan ini: Anda berada di dapur yang sibuk di mana para koki harus menunggu salah satu selesai memotong sayuran sebelum yang lain bisa mulai memanggang kentang. Terdengar sangat lambat dan tidak efisien, bukan? Itulah seperti apa eksekusi sinkron dalam komputasi dan blockchain: satu tugas harus selesai sebelum yang berikutnya bisa dimulai. Sekarang, bayangkan dapur yang terkoordinasi dengan baik di mana setiap koki bekerja pada bagian-bagian berbeda dari beberapa hidangan secara bersamaan, menyiapkan bahan, memasak, dan menyajikan semua sekaligus. Itulah eksekusi asinkron — tugas-tugas berjalan secara bersamaan, menciptakan alur kerja yang lebih efisien dan cepat.

Di persimpangan evolusi blockchain, komposabilitas sinkron telah menjadi kata yang sering digunakan karena tampaknya menawarkan solusi untuk menyatukan lapisan rollup layer 2 yang terfragmentasi di jaringan Ethereum. Pendekatan ini mengatasi UX dan DevEx yang buruk di mana bahkan transfer sederhana antara lapisan 2 dapat menghabiskan biaya dan memakan waktu hingga 7 hari.Keterlibatan Vitalikdalam debat-debat ini menyoroti bahwa sinkronisasi universal tidak necessarily merupakan persyaratan untuk menyelesaikan masalah-masalah ini. Kami setuju bahwa pelaksanaan terjemahan yang efektif tidak harus melibatkan sinkronisasi, dan ada biaya nyata untuk membangun dan menjaga infrastruktur yang sinkron. Kami percaya bahwa ini bukan pilihan biner antara semuanya sinkron atau asinkron. Keduanya dapat berdampingan secara ad hoc, dengan kemungkinan pergeseran ke yang terakhir.

1. Asynchronous Decomposable

Dalam upaya meningkatkan kinerja skala dalam teknologi blockchain, eksekusi paralel dari kontrak pintar individu telah menarik perhatian yang signifikan. Secara konvensional, kinerja setiap kontrak pintar terbatas oleh kemampuan mesin virtual tunggal (EVM), bahkan dengan munculnya sistem multi-rantai atau Layer-2. Mesin virtual paralel menawarkan solusi yang menjanjikan, memungkinkan transaksi kontrak pintar tunggal dieksekusi secara bersamaan, dengan demikian memanfaatkan lebih banyak inti CPU untuk kinerja yang lebih baik.

Parallel Relay-Execution Distributed Architecture (PREDA) adalah model pemrograman terdistribusi, fungsional, berorientasi cakupan, dan tingkat tinggi yang dirancang untuk kontrak pintar umum yang secara inheren parallelized pada sistem blockchain multi-EVM yang didistribusikan. Dari perspektif sistem, PREDA membuat EVM parallel dapat didekomposisi dan asinkron, memungkinkan paralelisasi penuh fungsi kontrak dan memaksimalkan konkurensi rangkaian transaksi. Hal ini memastikan bahwa semua contoh EVM dapat dimanfaatkan secara maksimal, mencapai kinerja dan skalabilitas optimal.

Sebelum masuk ke detail-detail penting, mari kita pertama-tama menjelaskan apa yang dimaksud dengan beberapa istilah kunci dalam tulisan ini:

Tx1= Transaksi 1

Tx2= Transaksi 2

Kami mengasumsikan bahwa,

Pelaksanaan Tx1 perlu mengubah keadaan A, keadaan B, keadaan C

Pelaksanaan Tx2 perlu mengubah keadaan A, keadaan D, keadaan E

Metode paralelisasi mutakhir untuk EVMs¹, seperti yang diimplementasikan oleh Sei, Aptos, dan Sui, berusaha untuk mengeksekusi semua langkah dalam setiap transaksi secara simultan. Bayangkan memperbesar tampilan pada satu adegan transaksi, dalam sistem-sistem ini transaksi dieksekusi dalam satu tinggi blok, terlepas dari sifat ketergantungan data yang tersebar (yaitu, mengakses bagian-bagian yang berbeda dari status kontrak). Akibatnya, jika langkah apapun dari status kontrak yang diakses bersifat berbagi atau diperbarui antara dua transaksi, mereka diidentifikasi sebagai konflik baca-tulis atau tulis-tulis dan tidak dapat dieksekusi secara paralel, menghambat throughput dan skalabilitas keseluruhan sistem. Situasi ini memburuk secara signifikan ketika aktivitas on-chain tiba-tiba melonjak.

PREDA mengambil pendekatan yang baru dan berbeda dari sistem yang disebutkan di atas. Ini mengadopsi model eksekusi kontrak pintar yang mengimplementasikan dekomposabilitas asinkron, di mana langkah-langkah transaksi didekomposisikan berdasarkan dependensi akses data mereka, memungkinkan langkah-langkah untuk dieksekusi secara asinkron. Model eksekusi PREDA menghasilkan efisiensi yang lebih besar dan secara teoritis skalabilitas yang tak terbatas. Kami akan menyelami lebih lanjut bagaimana PREDA mencapai ini dan mendemonstrasikan hasil eksperimental untuk mendukung klaim ini.

2. Evaluasi Kinerja

Transaksi transfer token ETH historis diulang untuk mengevaluasi Sei (V2), Aptos, Sui, dan PREDA, berdasarkan throughput dan skalabilitas. Perlu diperhatikan bahwa evaluasi kami menggunakan transaksi transfer token ETH historis dunia nyata daripada membuat seperangkat transaksi transfer antara pasangan alamat acak. Transaksi acak akan menghasilkan hasil eksperimental yang berlebihan atas kinerja dalam kasus dunia nyata karena transaksi dunia nyata melibatkan alamat yang terkait dengan satu cara atau lainnya, yang memperkenalkan sejumlah besar ketergantungan data.

Pengaturan Eksperimental adalah sebagai berikut:

Perbandingan dalam Gambar 1 menekankan kebutuhan untuk mengadopsi model pemrograman PREDA untuk mencapai peningkatan signifikan dalam throughput. PREDA menunjukkan TPS yang lebih tinggi 3,3X — 28,2X dari Aptos untuk transaksi transfer historis nyata di jaringan Ethereum.

Karena sistem-sistem ini diimplementasikan dalam bahasa yang berbeda (termasuk Go, Rust, dan C++) dan mesin virtual yang berbeda, kami mengevaluasi skalabilitas dari sistem-sistem yang berbeda berdasarkan kecepatan relatif terhadap dasar penggunaan sebuah EVM tunggal, untuk menghilangkan dampak dari implementasi sistem yang berbeda.

Gambar 1. Angka throughput absolut dalam TPS dari kontrak pintar transfer token setara yang dieksekusi di Sei, Aptos, Sui, dan PREDA

Gambar 2. Peningkatan Kecepatan Relatif untuk Aptos, Sui, Sei, dan PREDA dibandingkan dengan dasar mereka sendiri

3. Model Pemrograman

Untuk memudahkan pemahaman tentang PREDA bagi siapa pun yang akrab dengan parallel EVM, ada dua jenis mekanisme paralelisasi khas dalam sistem blockchain EVM paralel saat ini¹.

  • Optimistic Parallelization, termasuk Aptos, Sei (V2), dan Monad, mengabaikan ketergantungan status antara transaksi, secara bersamaan menjalankan dan memvalidasi transaksi, dan menggulung kembali transaksi untuk dieksekusi ulang dalam kasus konflik.
  • Pessimistic Parallelization, termasuk Solana (Sealevel), Sui, dan Sei (V1), memeriksa sebelumnya ketergantungan negara untuk setiap transaksi sebelum eksekusi, menganalisis ketergantungan negara mereka, dan mengeksekusi secara bersamaan hanya transaksi tanpa konflik.

Kedua metode tersebut mengikuti Arsitektur Shared-everything dan memperlakukan sebuah transaksi sebagai keseluruhan dalam pengendalian konkurensi; semua langkah (misalnya, mengakses berbagai status kontrak) tidak dapat didekomposisi dan harus dieksekusi secara sinkron. Model PREDA mengusulkan @devteam_48518/crystality-the-parallel-evm-model-implementing-shared-nothing-architecture-8d82fc0a836a">Arsitektur Shared-nothing untuk memutus ketergantungan status dan memastikan instansi EVM yang berbeda tidak akan pernah mengakses bagian kontrak yang sama, menghindari konflik tulisan sepenuhnya.

Pada intinya, PREDA memperkenalkan Ruang Kontrak Terprogram untuk mendekomposisi status kontrak menjadi bagian-bagian yang tidak tumpang tindih, dapat diparalelkan dengan granularitas yang baik, dan Rele Fungsional Asynchronous untuk menggambarkan alur eksekusi yang beralih di antara berbagai EVM.

Untuk lebih menjelaskan apa yang dimaksud dengan konsep-konsep ini, dalam PREDA, fungsi kontrak dipecah menjadi beberapa langkah yang terurut, masing-masing mengandalkan satu bagian dari keadaan yang dapat diparalelkan tanpa konflik. Transaksi yang diinisiasi oleh pengguna pertama kali diarahkan ke EVM yang menyimpan keadaan alamat pengguna dengan cara yang deterministik, misalnya dengan menggunakan metode pemetaan alamat pengguna ke EVM. Selama eksekusi transaksi, alur eksekusi dapat beralih dari satu EVM ke yang lain yang menyimpan keadaan kontrak yang diinginkan dengan mengeluarkan transaksi relay. Dengan cara ini, PREDA menjaga data tetap diam sambil memindahkan alur eksekusi di sekitar EVM sesuai dengan dependensi data.

Pada setiap EVM, transaksi yang diinisiasi oleh pengguna dan transaksi relay diurutkan dan dieksekusi secara berurutan, sedangkan transaksi pada EVM yang berbeda dieksekusi secara bersamaan karena tidak ada ketergantungan data antara EVM. Mekanisme ini menghindari re-eksekusi yang berkaitan dengan konflik dalam metode berbasis paralelisme optimis dan kebutuhan untuk menganalisis ketergantungan status saat runtime dan overhead penguncian/pembukaan dalam pendekatan berbasis paralelisme pesimis. Oleh karena itu, PREDA menyediakan arsitektur paralel dan shared-nothing untuk sistem blockchain, berbeda dengan arsitektur berurutan dan shared-everything baik di Solidity maupun Move, yang dapat menyebabkan overhead kendali konkurensi yang signifikan.

4. Bahasa

Kami mengimplementasikan model pemrograman PREDA sebagai bahasa yang mirip Algo, mirip dengan C/C++ dan Javascript. Berikut adalah fungsi transfer token yang disederhanakan dalam Solidity dan bahasa PREDA.

Kode Solidity di Gambar (a) menampilkan sebuah state kontrak (balances) yang mewakili saldo alamat dan sebuah fungsi transfer untuk mentransfer jumlah token tertentu dari pengirim transaksi (msg.sender) ke penerima (payee).

Pada implementasi PREDA yang ditunjukkan dalam Gambar (b), kata kunci @addressmendefinisikan cakupan kontrak yang dapat diprogram, di mana status kontrak yang dimiliki oleh variabel kontrak (saldo) dipartisi berdasarkan alamat, dan tersebar serta dikelola oleh EVM. Kata kunci relay mengidentifikasi relay fungsional asinkron.

Ada tiga bagian dalam implementasi PREDA. Pada bagian (1), kata kunci @addressmendefinisikan saldo pengguna, memberikan deskripsi status yang terperinci dan terpisah. Variabel cakupan alamat saldo memiliki instansi unik untuk setiap alamat pengguna. Instansi dari alamat pengguna yang berbeda diakses dan dipelihara oleh EVM yang berbeda yang tidak tumpang tindih. Fungsi transfer didefinisikan dalam cakupan alamat yang sama di bagian (2), dipanggil dengan menyediakan alamat pembayar sebagai cakupan target saat menginisialisasi transaksi transfer oleh pengguna. Pada bagian (3), untuk melanjutkan deposit kepada penerima setelah penarikan yang berhasil, relay diinisiasi dengan alamat penerima sebagai cakupan target, menambahkan dana ke saldo penerima dan dieksekusi oleh EVM yang menghosting instansi saldo dari alamat penerima.

Alur eksekusi transaksi transfer token di PREDA

Gambar di atas menunjukkan alur eksekusi dari transaksi transfer token dalam sistem EVM paralel PREDA. Bob memulai transaksi untuk memanggil fungsi transfer, yang akan diarahkan ke EVM yang memegang saldo Bob dan penarikannya dieksekusi di sana. Setelah itu, transaksi relay dikeluarkan dan diarahkan ke EVM yang memegang saldo Alice dan depositnya dieksekusi. Paralelisasi terjadi dalam dua cara:

  1. Antara Transaksi yang Diinisiasi Pengguna: Karena status yang dipartisi berdasarkan alamat tidak tumpang tindih, transaksi yang diinisiasi pengguna dapat dieksekusi secara bersamaan tanpa konflik. Misalnya, dalam kontrak transfer token yang memperbarui status pembayar per alamat, transaksi yang diinisiasi oleh pengguna yang berbeda dapat diparalelkan di seluruh EVM.
  2. Dengan Transaksi Relay: Dalam skenario di mana Bob mentransfer token ke Alice dan Carol, transaksi relay untuk deposit ke Alice (dari transfer Bob ke Alice) dapat dieksekusi secara bersamaan dengan transaksi yang diinisiasi pengguna untuk penarikan dari Bob (dalam transfer Bob ke Carol) dan deposit ke Carol. Hanya dengan dekomposisi model PREDA, paralelisasi bawaan dalam kontrak pintar dapat diungkapkan ke sistem blockchain yang mendasarinya, memungkinkan transaksi yang diinisiasi pengguna dan relay diproses secara berurutan, memfasilitasi eksekusi paralel.

Selanjutnya dan Lebih Jauh

PREDA menandai kemajuan besar dalam kinerja blockchain dan, yang lebih penting, skalabilitas. Dengan menerapkan dekomposabilitas asinkron, ini memungkinkan pemrosesan transaksi yang efisien tanpa bottleneck dari model paralelisasi sinkron konvensional. Pendekatan ini mendekomposisi transaksi menjadi mikro-transaksi sesuai dengan ketergantungan data, memungkinkan perubahan status bersamaan dan menghindari konflik tulisan sepenuhnya.

KEGEMARAN PREDA melampaui hanya menggunakan@addressuntuk mempartisi status kontrak berdasarkan alamat. Ini memungkinkan jenis partisi yang disesuaikan dengan kata kunci seperti @jenis, di mana tipe nya bisa berupa jenis dasar Solidity apa pun seperti @uint. Selain itu, PREDA mendukung status kontrak yang tidak dipartisi dengan @globalmemastikan setiap EVM mempertahankan nilai yang konsisten untuk keadaan-keadaan tersebut. Fleksibilitas dalam pembagian keadaan ini meningkatkan adaptabilitas dan efektivitas model ini di berbagai kontrak pintar.

Percobaan kami menunjukkan bahwa PREDA jauh lebih unggul daripada metode paralelisasi lainnya, mencapai throughput dan skalabilitas yang lebih tinggi. Artikel terbaru tim PREDA akan membahas lebih jauh temuan kami, menawarkan perbandingan yang lebih komprehensif dengan berbagai jenis kontrak pintar dan analisis mendalam terhadap model pemrograman dan bahasa PREDA. Tetap terhubung untuk eksplorasi yang lebih detail ini.

Disclaimer:

  1. Artikel ini adalah repost dari [ Medium]. Hak cipta milik penulis asli, [PREDA Parallel VMs]. Jika Anda memiliki keberatan terkait repost ini, silakan hubungigate Pelajari Tim. Tim akan segera menanggapi kekhawatiran Anda sesuai dengan prosedur yang relevan.
  2. Penolakan Tanggung Jawab Kewajiban: Pandangan dan opini yang terdapat dalam artikel ini semata-mata milik penulis dan tidak merupakan saran investasi.
  3. Tim Gate Learn menerjemahkan artikel tersebut ke dalam bahasa lain. Menyalin, mendistribusikan, atau menjiplak artikel yang diterjemahkan dilarang kecuali disebutkan.

PREDA — EVM Paralel Terurai Asinkron

Menengah1/8/2025, 11:14:01 AM
PREDA (Parallel Relay Execution Distributed Architecture) adalah model inovatif yang dirancang untuk meningkatkan kinerja dan skalabilitas blockchain. Ini mencapai paralelisasi penuh fungsi kontrak pintar dengan memecah proses eksekusi kontrak pintar menjadi beberapa langkah yang dapat diproses secara paralel. Langkah-langkah ini dieksekusi secara asinkron di berbagai instansi Ethereum Virtual Machine (EVM), dengan demikian memaksimalkan konkurensi dari serangkaian transaksi.

Bayangkan ini: Anda berada di dapur yang sibuk di mana para koki harus menunggu salah satu selesai memotong sayuran sebelum yang lain bisa mulai memanggang kentang. Terdengar sangat lambat dan tidak efisien, bukan? Itulah seperti apa eksekusi sinkron dalam komputasi dan blockchain: satu tugas harus selesai sebelum yang berikutnya bisa dimulai. Sekarang, bayangkan dapur yang terkoordinasi dengan baik di mana setiap koki bekerja pada bagian-bagian berbeda dari beberapa hidangan secara bersamaan, menyiapkan bahan, memasak, dan menyajikan semua sekaligus. Itulah eksekusi asinkron — tugas-tugas berjalan secara bersamaan, menciptakan alur kerja yang lebih efisien dan cepat.

Di persimpangan evolusi blockchain, komposabilitas sinkron telah menjadi kata yang sering digunakan karena tampaknya menawarkan solusi untuk menyatukan lapisan rollup layer 2 yang terfragmentasi di jaringan Ethereum. Pendekatan ini mengatasi UX dan DevEx yang buruk di mana bahkan transfer sederhana antara lapisan 2 dapat menghabiskan biaya dan memakan waktu hingga 7 hari.Keterlibatan Vitalikdalam debat-debat ini menyoroti bahwa sinkronisasi universal tidak necessarily merupakan persyaratan untuk menyelesaikan masalah-masalah ini. Kami setuju bahwa pelaksanaan terjemahan yang efektif tidak harus melibatkan sinkronisasi, dan ada biaya nyata untuk membangun dan menjaga infrastruktur yang sinkron. Kami percaya bahwa ini bukan pilihan biner antara semuanya sinkron atau asinkron. Keduanya dapat berdampingan secara ad hoc, dengan kemungkinan pergeseran ke yang terakhir.

1. Asynchronous Decomposable

Dalam upaya meningkatkan kinerja skala dalam teknologi blockchain, eksekusi paralel dari kontrak pintar individu telah menarik perhatian yang signifikan. Secara konvensional, kinerja setiap kontrak pintar terbatas oleh kemampuan mesin virtual tunggal (EVM), bahkan dengan munculnya sistem multi-rantai atau Layer-2. Mesin virtual paralel menawarkan solusi yang menjanjikan, memungkinkan transaksi kontrak pintar tunggal dieksekusi secara bersamaan, dengan demikian memanfaatkan lebih banyak inti CPU untuk kinerja yang lebih baik.

Parallel Relay-Execution Distributed Architecture (PREDA) adalah model pemrograman terdistribusi, fungsional, berorientasi cakupan, dan tingkat tinggi yang dirancang untuk kontrak pintar umum yang secara inheren parallelized pada sistem blockchain multi-EVM yang didistribusikan. Dari perspektif sistem, PREDA membuat EVM parallel dapat didekomposisi dan asinkron, memungkinkan paralelisasi penuh fungsi kontrak dan memaksimalkan konkurensi rangkaian transaksi. Hal ini memastikan bahwa semua contoh EVM dapat dimanfaatkan secara maksimal, mencapai kinerja dan skalabilitas optimal.

Sebelum masuk ke detail-detail penting, mari kita pertama-tama menjelaskan apa yang dimaksud dengan beberapa istilah kunci dalam tulisan ini:

Tx1= Transaksi 1

Tx2= Transaksi 2

Kami mengasumsikan bahwa,

Pelaksanaan Tx1 perlu mengubah keadaan A, keadaan B, keadaan C

Pelaksanaan Tx2 perlu mengubah keadaan A, keadaan D, keadaan E

Metode paralelisasi mutakhir untuk EVMs¹, seperti yang diimplementasikan oleh Sei, Aptos, dan Sui, berusaha untuk mengeksekusi semua langkah dalam setiap transaksi secara simultan. Bayangkan memperbesar tampilan pada satu adegan transaksi, dalam sistem-sistem ini transaksi dieksekusi dalam satu tinggi blok, terlepas dari sifat ketergantungan data yang tersebar (yaitu, mengakses bagian-bagian yang berbeda dari status kontrak). Akibatnya, jika langkah apapun dari status kontrak yang diakses bersifat berbagi atau diperbarui antara dua transaksi, mereka diidentifikasi sebagai konflik baca-tulis atau tulis-tulis dan tidak dapat dieksekusi secara paralel, menghambat throughput dan skalabilitas keseluruhan sistem. Situasi ini memburuk secara signifikan ketika aktivitas on-chain tiba-tiba melonjak.

PREDA mengambil pendekatan yang baru dan berbeda dari sistem yang disebutkan di atas. Ini mengadopsi model eksekusi kontrak pintar yang mengimplementasikan dekomposabilitas asinkron, di mana langkah-langkah transaksi didekomposisikan berdasarkan dependensi akses data mereka, memungkinkan langkah-langkah untuk dieksekusi secara asinkron. Model eksekusi PREDA menghasilkan efisiensi yang lebih besar dan secara teoritis skalabilitas yang tak terbatas. Kami akan menyelami lebih lanjut bagaimana PREDA mencapai ini dan mendemonstrasikan hasil eksperimental untuk mendukung klaim ini.

2. Evaluasi Kinerja

Transaksi transfer token ETH historis diulang untuk mengevaluasi Sei (V2), Aptos, Sui, dan PREDA, berdasarkan throughput dan skalabilitas. Perlu diperhatikan bahwa evaluasi kami menggunakan transaksi transfer token ETH historis dunia nyata daripada membuat seperangkat transaksi transfer antara pasangan alamat acak. Transaksi acak akan menghasilkan hasil eksperimental yang berlebihan atas kinerja dalam kasus dunia nyata karena transaksi dunia nyata melibatkan alamat yang terkait dengan satu cara atau lainnya, yang memperkenalkan sejumlah besar ketergantungan data.

Pengaturan Eksperimental adalah sebagai berikut:

Perbandingan dalam Gambar 1 menekankan kebutuhan untuk mengadopsi model pemrograman PREDA untuk mencapai peningkatan signifikan dalam throughput. PREDA menunjukkan TPS yang lebih tinggi 3,3X — 28,2X dari Aptos untuk transaksi transfer historis nyata di jaringan Ethereum.

Karena sistem-sistem ini diimplementasikan dalam bahasa yang berbeda (termasuk Go, Rust, dan C++) dan mesin virtual yang berbeda, kami mengevaluasi skalabilitas dari sistem-sistem yang berbeda berdasarkan kecepatan relatif terhadap dasar penggunaan sebuah EVM tunggal, untuk menghilangkan dampak dari implementasi sistem yang berbeda.

Gambar 1. Angka throughput absolut dalam TPS dari kontrak pintar transfer token setara yang dieksekusi di Sei, Aptos, Sui, dan PREDA

Gambar 2. Peningkatan Kecepatan Relatif untuk Aptos, Sui, Sei, dan PREDA dibandingkan dengan dasar mereka sendiri

3. Model Pemrograman

Untuk memudahkan pemahaman tentang PREDA bagi siapa pun yang akrab dengan parallel EVM, ada dua jenis mekanisme paralelisasi khas dalam sistem blockchain EVM paralel saat ini¹.

  • Optimistic Parallelization, termasuk Aptos, Sei (V2), dan Monad, mengabaikan ketergantungan status antara transaksi, secara bersamaan menjalankan dan memvalidasi transaksi, dan menggulung kembali transaksi untuk dieksekusi ulang dalam kasus konflik.
  • Pessimistic Parallelization, termasuk Solana (Sealevel), Sui, dan Sei (V1), memeriksa sebelumnya ketergantungan negara untuk setiap transaksi sebelum eksekusi, menganalisis ketergantungan negara mereka, dan mengeksekusi secara bersamaan hanya transaksi tanpa konflik.

Kedua metode tersebut mengikuti Arsitektur Shared-everything dan memperlakukan sebuah transaksi sebagai keseluruhan dalam pengendalian konkurensi; semua langkah (misalnya, mengakses berbagai status kontrak) tidak dapat didekomposisi dan harus dieksekusi secara sinkron. Model PREDA mengusulkan @devteam_48518/crystality-the-parallel-evm-model-implementing-shared-nothing-architecture-8d82fc0a836a">Arsitektur Shared-nothing untuk memutus ketergantungan status dan memastikan instansi EVM yang berbeda tidak akan pernah mengakses bagian kontrak yang sama, menghindari konflik tulisan sepenuhnya.

Pada intinya, PREDA memperkenalkan Ruang Kontrak Terprogram untuk mendekomposisi status kontrak menjadi bagian-bagian yang tidak tumpang tindih, dapat diparalelkan dengan granularitas yang baik, dan Rele Fungsional Asynchronous untuk menggambarkan alur eksekusi yang beralih di antara berbagai EVM.

Untuk lebih menjelaskan apa yang dimaksud dengan konsep-konsep ini, dalam PREDA, fungsi kontrak dipecah menjadi beberapa langkah yang terurut, masing-masing mengandalkan satu bagian dari keadaan yang dapat diparalelkan tanpa konflik. Transaksi yang diinisiasi oleh pengguna pertama kali diarahkan ke EVM yang menyimpan keadaan alamat pengguna dengan cara yang deterministik, misalnya dengan menggunakan metode pemetaan alamat pengguna ke EVM. Selama eksekusi transaksi, alur eksekusi dapat beralih dari satu EVM ke yang lain yang menyimpan keadaan kontrak yang diinginkan dengan mengeluarkan transaksi relay. Dengan cara ini, PREDA menjaga data tetap diam sambil memindahkan alur eksekusi di sekitar EVM sesuai dengan dependensi data.

Pada setiap EVM, transaksi yang diinisiasi oleh pengguna dan transaksi relay diurutkan dan dieksekusi secara berurutan, sedangkan transaksi pada EVM yang berbeda dieksekusi secara bersamaan karena tidak ada ketergantungan data antara EVM. Mekanisme ini menghindari re-eksekusi yang berkaitan dengan konflik dalam metode berbasis paralelisme optimis dan kebutuhan untuk menganalisis ketergantungan status saat runtime dan overhead penguncian/pembukaan dalam pendekatan berbasis paralelisme pesimis. Oleh karena itu, PREDA menyediakan arsitektur paralel dan shared-nothing untuk sistem blockchain, berbeda dengan arsitektur berurutan dan shared-everything baik di Solidity maupun Move, yang dapat menyebabkan overhead kendali konkurensi yang signifikan.

4. Bahasa

Kami mengimplementasikan model pemrograman PREDA sebagai bahasa yang mirip Algo, mirip dengan C/C++ dan Javascript. Berikut adalah fungsi transfer token yang disederhanakan dalam Solidity dan bahasa PREDA.

Kode Solidity di Gambar (a) menampilkan sebuah state kontrak (balances) yang mewakili saldo alamat dan sebuah fungsi transfer untuk mentransfer jumlah token tertentu dari pengirim transaksi (msg.sender) ke penerima (payee).

Pada implementasi PREDA yang ditunjukkan dalam Gambar (b), kata kunci @addressmendefinisikan cakupan kontrak yang dapat diprogram, di mana status kontrak yang dimiliki oleh variabel kontrak (saldo) dipartisi berdasarkan alamat, dan tersebar serta dikelola oleh EVM. Kata kunci relay mengidentifikasi relay fungsional asinkron.

Ada tiga bagian dalam implementasi PREDA. Pada bagian (1), kata kunci @addressmendefinisikan saldo pengguna, memberikan deskripsi status yang terperinci dan terpisah. Variabel cakupan alamat saldo memiliki instansi unik untuk setiap alamat pengguna. Instansi dari alamat pengguna yang berbeda diakses dan dipelihara oleh EVM yang berbeda yang tidak tumpang tindih. Fungsi transfer didefinisikan dalam cakupan alamat yang sama di bagian (2), dipanggil dengan menyediakan alamat pembayar sebagai cakupan target saat menginisialisasi transaksi transfer oleh pengguna. Pada bagian (3), untuk melanjutkan deposit kepada penerima setelah penarikan yang berhasil, relay diinisiasi dengan alamat penerima sebagai cakupan target, menambahkan dana ke saldo penerima dan dieksekusi oleh EVM yang menghosting instansi saldo dari alamat penerima.

Alur eksekusi transaksi transfer token di PREDA

Gambar di atas menunjukkan alur eksekusi dari transaksi transfer token dalam sistem EVM paralel PREDA. Bob memulai transaksi untuk memanggil fungsi transfer, yang akan diarahkan ke EVM yang memegang saldo Bob dan penarikannya dieksekusi di sana. Setelah itu, transaksi relay dikeluarkan dan diarahkan ke EVM yang memegang saldo Alice dan depositnya dieksekusi. Paralelisasi terjadi dalam dua cara:

  1. Antara Transaksi yang Diinisiasi Pengguna: Karena status yang dipartisi berdasarkan alamat tidak tumpang tindih, transaksi yang diinisiasi pengguna dapat dieksekusi secara bersamaan tanpa konflik. Misalnya, dalam kontrak transfer token yang memperbarui status pembayar per alamat, transaksi yang diinisiasi oleh pengguna yang berbeda dapat diparalelkan di seluruh EVM.
  2. Dengan Transaksi Relay: Dalam skenario di mana Bob mentransfer token ke Alice dan Carol, transaksi relay untuk deposit ke Alice (dari transfer Bob ke Alice) dapat dieksekusi secara bersamaan dengan transaksi yang diinisiasi pengguna untuk penarikan dari Bob (dalam transfer Bob ke Carol) dan deposit ke Carol. Hanya dengan dekomposisi model PREDA, paralelisasi bawaan dalam kontrak pintar dapat diungkapkan ke sistem blockchain yang mendasarinya, memungkinkan transaksi yang diinisiasi pengguna dan relay diproses secara berurutan, memfasilitasi eksekusi paralel.

Selanjutnya dan Lebih Jauh

PREDA menandai kemajuan besar dalam kinerja blockchain dan, yang lebih penting, skalabilitas. Dengan menerapkan dekomposabilitas asinkron, ini memungkinkan pemrosesan transaksi yang efisien tanpa bottleneck dari model paralelisasi sinkron konvensional. Pendekatan ini mendekomposisi transaksi menjadi mikro-transaksi sesuai dengan ketergantungan data, memungkinkan perubahan status bersamaan dan menghindari konflik tulisan sepenuhnya.

KEGEMARAN PREDA melampaui hanya menggunakan@addressuntuk mempartisi status kontrak berdasarkan alamat. Ini memungkinkan jenis partisi yang disesuaikan dengan kata kunci seperti @jenis, di mana tipe nya bisa berupa jenis dasar Solidity apa pun seperti @uint. Selain itu, PREDA mendukung status kontrak yang tidak dipartisi dengan @globalmemastikan setiap EVM mempertahankan nilai yang konsisten untuk keadaan-keadaan tersebut. Fleksibilitas dalam pembagian keadaan ini meningkatkan adaptabilitas dan efektivitas model ini di berbagai kontrak pintar.

Percobaan kami menunjukkan bahwa PREDA jauh lebih unggul daripada metode paralelisasi lainnya, mencapai throughput dan skalabilitas yang lebih tinggi. Artikel terbaru tim PREDA akan membahas lebih jauh temuan kami, menawarkan perbandingan yang lebih komprehensif dengan berbagai jenis kontrak pintar dan analisis mendalam terhadap model pemrograman dan bahasa PREDA. Tetap terhubung untuk eksplorasi yang lebih detail ini.

Disclaimer:

  1. Artikel ini adalah repost dari [ Medium]. Hak cipta milik penulis asli, [PREDA Parallel VMs]. Jika Anda memiliki keberatan terkait repost ini, silakan hubungigate Pelajari Tim. Tim akan segera menanggapi kekhawatiran Anda sesuai dengan prosedur yang relevan.
  2. Penolakan Tanggung Jawab Kewajiban: Pandangan dan opini yang terdapat dalam artikel ini semata-mata milik penulis dan tidak merupakan saran investasi.
  3. Tim Gate Learn menerjemahkan artikel tersebut ke dalam bahasa lain. Menyalin, mendistribusikan, atau menjiplak artikel yang diterjemahkan dilarang kecuali disebutkan.
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!