Qtum kuantum zinciri hesap soyutlama katmanı aracılığıyla Bitcoin ve Ethereum ekolojisi nasıl açılır?

Qtum hesap soyutlama katmanı (AAL) uygulamasının kısa bir analizi

Qtum, temel hesap modeli olarak Bitcoin UTXO ile tasarlanmıştır ve Hesap Özet Katmanı (AAL) aracılığıyla gerçekleştirilen EVM spesifikasyonunu destekleyen akıllı sözleşmeler uygular. AAL, UTXO hesabı ile EVM sözleşme hesabı arasında uyum sağlar, böylece AAL aracılığıyla UTXO işlem çıkışı, zincirde akıllı sözleşmeler oluşturmak ve sözleşmenin yürütülmesini tetiklemek için sözleşme hesabına işlemler göndermek için kullanılabilir. Yürütme tamamlandıktan sonra, AAL nihayet yürütür Sonuçlar işlenir ve UTXO'ya uyarlanır. AAL'nin benimsenmesi nedeniyle, sözleşme geliştiricilerinin sözleşme işlemleriyle ilgili UTXO dönüştürme ayrıntılarını önemsemesine gerek yoktur ve mevcut Ethereum akıllı sözleşmelerini geliştirmek ve bunlarla uyumlu olmak için EVM'nin özelliklerini kullanabilir. Bu makale, uygulama kodunu UTXO işleminden akıllı sözleşme yürütmeye kadar yorumlayarak AAL'nin çalışma sürecini kısaca analiz eder.

1. UTXO işlemi için yeni komut dosyası işlem kodu

Qtum, UTXO ve EVM hesap modelleri arasındaki dönüşüm için operasyonel destek sağlamak için kullanılan UTXO işlem komut dosyaları için üç yeni işlem kodu OP_CREATE, OP_CALL ve OP_SPEND ekler. Bu işlem kodları, işlem kodu numaralandırma türünde tanımlanır:

Üç işlem kodu sırasıyla aşağıdaki işlevlere sahiptir :

  • OP_CREATE, akıllı sözleşmelerin oluşturulması için kullanılır;
  • OP_CALL, sözleşmenin yürütülmesi için kullanılır;
  • OP_SPEND, sözleşme bakiyesini harcamak için kullanılır.

Blok oluşturma sürecinde bu işlem kodları tarafından kontrol edilen işlemleri tanımlamak ve işlemek için, HasCreateOrCall ve HasOpSpend işlevleri, yeni bloktaki mempool'daki işlemleri işlemek için UTXO model işlemlerinde kullanılan CTransaction sınıfına eklenir. Ve ilgili işlem, komut dosyası işlem kodu analizinin EvalScript işlevine eklenir.

2. UTXO işlemlerinin EVM model işlemlerine dönüştürülmesi

Yeni bir blok oluşturulduğunda, UTXO işlemleri için normal parametre yasallığı, mutabakat kuralları, DDOS saldırı kontrolleri vb. Yanında, işlem çıktısının sırasıyla EVM gereksinimlerine karşılık gelen OP_CREATE veya OP_CALL içerip içermediğini belirlemek için işlem kodu kontrol fonksiyonu HasCreateOrCall kullanmak gerekir. Sözleşme oluşturma veya sözleşme görüşmesi gerçekleştirin. Bu bölüm aşağıdaki işleme sürecine sahiptir:

2.1 EVM modelinin hesap parametresi çıkarımını gerçekleştirin

EVM'de sözleşmenin yürütülmesi verileri, gasPrice, gasLimit, VM version bu parametreleri kullanır, bu parametreler RPC çağrısı sendtocontract aracılığıyla gönderilir, sendtocontract bir UTXO işlemi oluşturur ve işlem çıktısında OP_CALL işlem kodunu kullanır ve ardından işlem Blockchain ağına yayınlanacak. AAL'de UTXO'dan EVM'ye adaptasyon, QtumTxConverter sınıfı aracılığıyla gerçekleştirilir.Bu adımda, bu sınıfın üye fonksiyonları extractionQtumTransactions ve parseEthTXParam, tüm bu UTXO işlem çıktılarının parametre çıkarımını tamamlar. Kod parçacığı aşağıdaki gibidir:

Yukarıdaki kod ilk olarak işlem kodunun OP_CALL olup olmadığını yargılar, bu, vecAddr adresli sözleşmenin oluşturulmuş olduğu anlamına gelir, bu nedenle doğrudan ReceAddress EVM format adresine dönüştürülür, aksi takdirde sözleşmenin oluşturulmasına karşılık gelen OP_CREATE'dir, böyle bir alan yoktur, bu nedenle çıkarma yapılmaz. Daha sonra, EVM bayt kodunu yürüttüğünde gerekli parametrelerin tümü olan data, gasPrice, gasLimit ve VM sürümünün çıkarılması sırayla tamamlanır.

2.2 EVM hesap modelinin işlem dönüşümünü gerçekleştirin

İşlem dönüşümü, QtumTxConverter sınıfının createEthTX işlevi tarafından tamamlanır ve QtumTransaction türü işlem, önceki adımda çıkarılan parametreler ve UTXO işlem çıktısı kullanılarak oluşturulur. QtumTransaction, EVM'deki dev :: eth :: Transaction sınıfından türetildiği için, EVM'nin yürütülmesi ile ilgili işlemler QtumTransaction sınıfı tarafından desteklenir.

İlk olarak etp.receiveAddress == dev :: Address kodu, sözleşmenin EVM durumunda olup olmadığını ve yeniden oluşturulması gerekip gerekmediğini veya EVM durumunun sözleşmeyi zaten içerdiğini belirler.Tek fark sözleşme adresidir. Daha sonra, QtumTransaction kurucusu işlem parametresi yapısının bir bölümünü tamamlar ve aşağıdaki ifade işlemin göndericisini çıkarır ve ardından HASH işlemini ayarlar. Bir UTXO işlemi birden fazla girdi ve çıktıyı destekler. Qtumun AAL tasarımı bunu dikkate alır. Bu nedenle, AAL UTXO hesabı ve sözleşme hesabını içeren bir işlem çıktısını destekler. Sondaki nOut ayarı, işlemin nOut çıktısının akıllı sözleşmeye gönderildiğini gösterir. , Yani bu çıktı, sözleşmenin yürütülmesini tetikleyecektir. Bu şekilde EVM hesap modeline uygun olarak işlem dönüşümü tamamlanır.

3. Sözleşme yürütme ve yürütme sonuçlarının UTXO dönüşümü

Sözleşmenin yürütülmesi durumu değiştirecektir (QtumState sınıfının globalState örnekleme nesnesi tarafından yönetilir) Sözleşmenin durumu için Qtum, EVM tanımını takip eder, bu nedenle EVM spesifikasyonuna uyan tüm akıllı sözleşmelerle uyumludur. Ancak hesap miktarının transferi (transfer) için Qtum, UTXO dönüşümü gerçekleştirdi; bu, akıllı sözleşme ile sıradan UTXO model hesabı arasındaki etkileşimin tamamlanabileceği anlamına gelir; bu, AAL'nin akıllı sözleşmeler için UTXO desteğini gerçekleştirmesinin önemli bir parçasıdır. Aşağıda kısaca sözleşme yürütme ve durum sonuçlarının dönüştürme süreci anlatılmaktadır.

3.1 Sözleşme yürütme ortamı inşaatı ve sözleşmenin yürütülmesi

Sözleşmenin yürütülmesi, sözleşmenin işlenmesinde, sözleşmenin durumunu doğrudan etkileyen kritik bir adımdır. Kontrat bayt kodunun EVM tarafından yürütülmesi, ByteCodeExec sınıfı tarafından gerçekleştirilir ve ana işlev performByteCode'dur. Bu adımın ana işlemi, sanal makine yürütme ortamını oluşturmak için yukarıda çıkarılan işlem parametrelerini kullanmak ve ardından sözleşmenin yürütülmesini tamamlamaktır. Kod aşağıdaki gibidir:

Birincisi, BuildEVMEnvironment tarafından tamamlanan sözleşme yürütme ortamını oluşturmaktır. Bu yürütme ortamının, farklı işlemlerin sözleşme yürütme sürecini büyük ölçüde izole etmek ve sözleşme yürütme sürecinde çapraz etkilerden kaçınmak için her bağımsız işlem için gerçekleştirildiği görülmektedir. Ardından, özellikle createSealEngine işlevi tarafından tamamlanan, EVM yürütme motoru olan yeni bir sealEngine sınıfı oluşturun. Ortada, olası anormal durumu kontrol edin ve ardından globalState- > execute, sözleşmenin yürütülmesini tamamlar Burada, inşa edilen yürütme ortamı envInfo ve EVM yürütme motoru se kullanılır.

3.2 Sözleşme yürütme sonuçlarının UTXO dönüşümü

Sözleşmenin yürütülmesinin sonucu vektörde kaydedilir < Sonuç Yürüt > Sonuç olarak vektör teorisi, her bir sözleşmenin yürütülmesi ile oluşturulan EVM hesapları arasındaki transfer ilişkisini kaydeder AAL, EVM hesap modelinden UTXO model işlemine dönüştürmeyi bu transferleri UTXO işlemlerine dönüştürerek tamamlar. Bu işlem, processingResults işlevi aracılığıyla gerçekleştirilir, aşağıdaki bir kod parçacığıdır.

İlk olarak, dönüştürme sonucunu kaydetmek için kullanılan ByteCodeExecResult türündeki resultBCE değişkeni tanımlanır. İşlem maliyetlerini elde etmek için OP_SPEND işlem kodunu kullanın. Bunun nedeni, Bitcoin'in UTXO'sunun işlem girdisinin kilidi açıldıktan sonra bakiye harcaması elde etmek için özel anahtar imzaları kullanması, EVM yürütmesinin farklı hesaplar arasında aktarımı içermesi dolayısıyla OP_SPEND'nin uygulanması gerektiğidir. UTXO model işlem dönüşümüne aktarım. ExecRes.excepted None değilse, yani sözleşmenin yürütülmesi anormal ise, bakiye sözleşme arayana iade edilecektir. Aksi takdirde herhangi bir anormallik yoksa tüketilen gaz düşüldükten sonra kalan gaz sözleşmeyi arayana iade edilecektir. Sözleşmenin yürütülmesinde görünen transfer için, UTXO işlemi sonuca kaydedilir. .tx. Bu nedenle, bu adımdan sonra, sözleşmenin yürütülmesi ile oluşturulan farklı UTXO hesapları arasındaki işlemler valueTransfers vektöründe saklanır ve sonunda bu işlemler yeni bloğa dahil edilir. Şimdiye kadar, AAL modülü EVM işleminden UTXO'ya dönüşümü tamamladı.

4. Özet

AAL, yeni eklenen UTXO komut dosyası işlem kodu aracılığıyla sözleşmenin oluşturulmasına, yürütülmesine ve maliyetine yardımcı olur. Sözleşme oluşturulmadan ve yürütülmeden önce, UTXO işlemini EVM model işlemine dönüştürmek ve ardından sözleşmenin yürütülmesini tamamlamak için inşa edilen EVM yürütme ortamını ve motorunu kullanmak gerekir. AAL, nihayet sözleşmenin yürütme sonucunu işler ve EVM'den UTXO'ya uyarlar, böylece UTXO'ya dayalı akıllı sözleşmeyi gerçekleştirir. AAL, Qtum'u EVM spesifikasyonuna uygun akıllı sözleşmelerle uyumlu hale getirir ve Dapp için yeni bir temel platform sağlar.Aynı zamanda, UTXO'nun avantajları paralel işleme ve gizlilik gibi avantajların korunmasını sağlar.

Telif Hakkı Bildirimi:

Yazar hakkını saklı tutar. Makale, yazarın bağımsız bakış açısıdır ve Babbitt'in görüşünü temsil etmez.

Gönderildiği andaki Bitcoin fiyatı 19733.44

Kışın ciğerleri nemlendirmek ve soğuğu uzaklaştırmak, böbrekleri beslemek, qi ve kanı güçlendirmek ve kışın hastalığı azaltmak için 3 çeşit sağlıklı çorba için.
önceki
Futbolla çalışan, Dünya Kupası'nın büyük IP'sinden yararlanabilecek herhangi bir araba şirketi var mı?
Sonraki
Elektronik endüstrisi çevrimiçi olma için büyük bir potansiyele sahip ve Alibaba'nın dijital platformu kurumsal gelişimi yönlendiriyor
90 liraya nasıl indirilir? Unutma: erken kalk, 2 ısrar, öğlen 3, gece 3 hayır!
Ağlayan toprağın ciğerleri: İnsanın açgözlülüğü nedeniyle Brezilya Amazon yağmur ormanları deliklerle dolu
2018'in ikinci yarısında en çok beklenen 5 arabayı beğendin mi?
beklentinin üzerinde! Küresel ısınmanın geleceği daha da tehlikelidir! İngiliz uzman: Tüm Avrupa yaralandı
Günde 6 saatten az uyuyun ve yaşlanma hızı 10 kat artar! Geç yatmak kronik intihara eşdeğer mi?
Araba satın alma ile ilgili bu yanlış anlaşılmalarla karşılaştığınızda vuruldunuz mu?
"Kadın Ağırlık Karşılaştırma Tablosu" bir aldatmaca mı? Kilonuz normalken neden şişman görünüyorsunuz?
Xilinx, yeni nesil bilgi işlem mimarisini önerir: uyarlanabilir zeka
Küresel ısınma nedeniyle mütevazı kahve içmek çok pahalı olabilir
Kadınlar neden soğuktan daha çok korkar? "Fiziğe" ek olarak 4 kötü alışkanlık var ...
İşlevsel gereksinimleri karşılamak için teknolojik yeniliğe ek olarak, Araçların İnternetinin seyahat deneyimini ve güvenliği iyileştirmesi gerekir.
To Top