EOS kod yapısı ve analizi (4)

Akıllı sözleşme nedir

Akıllı sözleşmeleri açıklamadan önce, geleneksel sözleşmelerin biçimine bir göz atalım. Bir sözleşmenin özü bir dizi maddeden oluşur ve her bir madde birkaç kuraldan oluşur ve maddelere sabit parametrelerin girilmesiyle, sabit bir sonuç çıkarılır. Geleneksel sözleşmelerin her iki taraf tarafından imzalanması ve onaylanması gerekir ve aynı zamanda, yasal etkileri olmadan önce üçüncü taraf bir tanık tarafından noter tasdik edilmeleri ve sözleşmenin belirlenen kurallara uygun olarak yürütülmesini sağlamaları gerekir. Buradaki üçüncü taraf, genellikle yasal olarak geçerli bir noterdir ve iki taraf arasındaki anlaşmazlıkları önlemek için sözleşmenin şartlarını doğru bir şekilde anlayabilen profesyonel bir kuruluş olmalıdır. Örneğin, bir kira sözleşmesinde, hem ev sahibi hem de kiracının imzalaması gerekir ve aracı üçüncü şahıs tanık olarak hareket eder.

Bilgi teknolojisinin gelişmesiyle birlikte, kağıt sözleşmeler yavaş yavaş yerini elektronik sözleşmelere bırakmaktadır. Elektronik sözleşmeler, sözleşme şartlarını uygulamak için program kodlarını kullanır Dış koşullar karşılandığında, manuel katılımı önlemek ve sözleşme yürütme verimliliğini artırmak için ilgili kurallar otomatik olarak yürütülür. Örneğin, otomatik kredi kartı geri ödemesi, hisse senedi emanet işlemleri, vb. Tümü elektronik sözleşme yöntemlerini benimser.

Elektronik sözleşme, sözleşmenin otomatik olarak yürütülmesini gerçekleştirse de, yine de banka ve borsa gibi üçüncü taraf bir tahkim kurumunun katılımını gerektirmektedir. Bu kurumlar birbirinden bağımsızdır ve çok sayıda takas ve uzlaştırma görevini koordine etmeleri gerekir. Bu, merkezi tahkim modelinde bir darboğaza yol açmıştır.

Akıllı sözleşme = elektronik sözleşme + merkezi olmayan tahkim + sözleşmeler arasındaki etkileşim

Akıllı sözleşme, elektronik sözleşmenin daha ileri bir optimizasyonudur, merkezi üçüncü taraf tahkim kurumunu kaldırır ve blok zincirindeki tüm düğümler tarafından oluşturulan fikir birliği, sözleşmenin yürütülmesi için temel olarak kullanılır. Manüel katılımı önemli ölçüde azaltın ve sözleşme yürütme verimliliğini daha da artırın. Akıllı bir sözleşmenin özü, sorgulanabilen veya çağrılabilen blok zincirinde konuşlandırılan çalıştırılabilir bir kod parçasıdır. Akıllı sözleşmeler insanlarla ve diğer akıllı sözleşmelerle etkileşim kurabilir Sözleşmenin uygulama süreci ek insan katılımı gerektirmez.

EOS akıllı sözleşme analizi

EOS akıllı sözleşmesi bir dizi işlemden oluşur ve her işlem bir sözleşme maddesini temsil eder ve maddedeki belirli kuralları uygular. Akıllı sözleşmelerin yürütülmesi, üç bölüme ayrılan C / S iletişim mimarisine dayanmaktadır: akıllı sözleşmeler yapmak, akıllı sözleşmeler uygulamak ve akıllı sözleşmeleri çağırmak.

1. Akıllı bir sözleşme yapın

Akıllı sözleşmenin kodu eos / contracts / dizinine yerleştirilir.Her bir akıllı sözleşme, esas olarak cpp dosyalarını, hpp dosyalarını ve abi dosyalarını içeren bağımsız bir dizine karşılık gelir.Örneğin, token sözleşmesi dizin yapısı aşağıdaki gibidir:

Bunlar arasında, hpp başlık dosyası esas olarak sınıf tanımlarını, genel değişkenleri, makro tanımlarını vb. İçerir; cpp kaynak dosyası esas olarak sözleşme işlevlerinin uygulama ayrıntılarını içerir; abi dosyasının tam adı, abi arayüzü aracılığıyla dönüştürülen "Uygulama İkili Arayüzü" (uygulama ikili arayüzü) olarak adlandırılır. Katman, kullanıcılar JSON formatı aracılığıyla akıllı sözleşmedeki eylem işlevini doğrudan çağırabilir.

2. Akıllı sözleşmeler dağıtın

Kullanıcının akıllı sözleşme C ++ kodunu WASM biçiminde derlemesi gerekir (aynı zamanda blok zinciri tarafından tanınan tek biçim olan web odaklı bir ikili biçim) Örneğin, merhaba dünyayı yazdırmak için akıllı bir sözleşme yazın:

merhaba / merhaba.cpp:

Bunların arasında, her akıllı sözleşme, eylem talebini belirli bir işleme işleviyle eşleştirmek için bir uygulama işlevi uygulamalıdır ve belirli uygulama ayrıntıları EOSIO_ABI makrosunda özetlenmiştir. Bu şekilde, geliştiricilerin, akıllı sözleşme geliştirme çalışmalarını basitleştiren temel teknik ayrıntılara dikkat etmek yerine, yalnızca sözleşmeli iş mantığının geliştirilmesine odaklanmaları gerekir.

Sözleşme kodunu blok zincirinde depolamak için WASM formatına dönüştürün:

# eosiocpp -o merhaba.wast merhaba.cpp

Diğer kullanıcılar için dostça bir eylem çağrısı arayüzü sağlamak için abi dosyaları oluşturun:

# eosiocpp -g merhaba.abi merhaba.cpp Oluşturulan merhaba.abi

abi dosya içeriği:

İstemci aracı anlaşmaları aracılığıyla, akıllı sözleşme, blok zincirinde kalıcı olarak dağıtılan sunucuya gönderilir ve ardından diğer kullanıcılar tarafından sözleşmeyi yürütmesi için çağrılabilir:

3. Akıllı sözleşmeyi arayın

İstemci, cleos komutu aracılığıyla sunucuya bir eylem isteği gönderir. Sunucu, eylem talebi bilgilerine göre blok zincirinde karşılık gelen akıllı sözleşme kodunu bulacak, kodu yürütmek için belleğe yükleyecek ve son olarak yürütme sonucunu istemciye geri döndürecektir.Aşağıdaki komut merhaba.code akıllı sözleşmesinin hi işlevini çağırır Ve parametre olarak "kullanıcı" girin: # cleos push eylemi merhaba.code hi '' -p kullanıcı merhaba.code < = merhaba.code :: merhaba {"kullanıcı": "kullanıcı"}

Eylem işleme akışı

Cleos, bir dizi eylemi bir işlem paketinde kapsüller ve sunucuya gönderir. Veri tabanı işlemi kavramı buradan ödünç alınmıştır.Bir işlem bir işlemi temsil eder İşlemdeki eylemlerin tümü gerçekleştirilir veya gerçekleştirilmez İşlemin atomikliği garanti edilmelidir. İşlem, json biçiminde ifade edilen bir veya birden çok işlem içerebilir, örneğin:

Sunucu çok sayıda eylem isteği alır ve ardından eylemi ilgili akıllı sözleşmeye gönderir. Her akıllı sözleşme, her işlem talebini işlemek için bir uygulama işlevi uygular. Uygulama işlevi 3 parametre içerir. Alıcı, isteği işleyecek hesabı temsil eder, kod sözleşmenin adını temsil eder ve eylem eylemin adını temsil eder, örneğin:

Eylem başlamadan önce, EOSIO, programın çalışması için gereken CPU ve bellek kaynaklarını sağlayan Eylem "Uygula" Bağlamı olarak da adlandırılan eylem için bir çalışma ortamı oluşturacaktır. Kaynak uygulamasının belirli miktarı, EOS olan hesabın sahip olduğu öz sermaye oranına bağlıdır. Jeton.

Her sunucu, eylem işleme işlev kümesinin bir kopyasına sahiptir. İstemci bir eylem isteği başlattığında, tüm sunucular eylem işleme işlevini yerel olarak çalıştıracak, sonuçları birbirleriyle doğrulayacak ve son olarak onay sonuçlarını istemciye döndürecektir. Spesifik süreç aşağıdaki gibidir:

Akıllı sözleşmenin iletişim modeli

Akıllı sözleşmelerde sözde akıllı kavram, akıllı sözleşmelerin yalnızca insanlarla etkileşimli olarak değil, aynı zamanda diğer akıllı sözleşmelerle de iletişim kurabilmesidir. Örneğin, bu akıllı sözleşmenin işleminde, bazı işleri tamamlamak için diğer akıllı sözleşmelerin eylemlerini çağırabilir veya gelecekte bir noktada diğer akıllı sözleşmelerin işlemlerini tetikleyebilirsiniz.

EOSIO, satır içi ve ertelenmiş olmak üzere iki temel iletişim modelini destekler. Bunlar arasında, satır içi model, mevcut işlemdeki diğer akıllı sözleşme eylemlerine çağrının tamamlanmasını ifade eder.Bu, işlemin iç içe geçmiş bir çağrısı olarak kabul edilebilir.Dahili eylemin başarısızlığı, işlemin bir bütün olarak geri alınmasına neden olur. Ertelenmiş model, belirli bir süre için veya yalnızca belirli koşullar karşılandıktan sonra bir gecikmeyi ifade eder, bu da uygulanmasının garanti edilemeyeceği anlamına gelir.

Çin'in dijital ekonomisiyle ilgili olarak, bu "büyük kahve"
önceki
Tang Yan basın toplantısına katılmak için beyaz bir elbise giymişti.Aşk beslemesinin altında çok güzel bir etek giymişti
Sonraki
Bir saatlik geri sayım, Çin ham petrol vadeli işlemleri ticaret için listelenecek!
"Yatay olarak oynamak" iyi iş yapmaz
5 milyar gişe kahramanı Lu Jingshan, kırmızı halıda çıplak pembe bir elbiseyle yürüyor, beyaz bir elbise giymek kadar iyi değil
Douyin ve Kuaishou sahte vitrin mi oluyor? LV paketi 430 yuan, Dior ruj 78 yuan
Yang Ying ve Jing Tian bir yıl arayla, askılı kot pantolon, yakışıklı bir kız ve havalı bir kız giyerler.
Çin'in ham petrol vadeli işlem listesinin dört yıllık planı için geri sayım olan Şangay'ı koordine ediyor ...
Yeni aşka sahip olmak ve eski aşkı unutmak? Fujian'ın en zengin adamı 25,4 milyar Yunnan Baiyao'ya, biyolojik şirketi art arda beş yıl kaybetti
Çiçeğin Sesi | Bauhinia
Altın gözlükler moda dünyasını taradı, Li Yifeng yakışıklı ve Ni Ni modaya uygun, ancak Yang Mi rustik
Wal-Mart, Batı Çin'deki süpermarketlerin artık Alipay ödemesini desteklemeyeceğini duyurdu. Netizenler haykırdı: "Tanrılarla savaşmak" "ölümlülere acı çektiremez"
Ali'nin toplu düğününe şahit olmak için Tong Dawei Guan Yue'den erkek takım elbise ve kadın elbiselerini öğrenmek için düğüne katılın
Bu "petrol" varili piyasaya girdiğinde, pazar yapısı büyük ölçüde değişebilir
To Top