Blockchain Okulu (Ders 5): Tarayıcı sağlamlığı + Sağdaki gizem

Sözleşme dağıtım sözleşmesini derlemek için Tarayıcı sağlamlığını kullanın

Önceki bölümde Geth üzerinde konuşlandırılan kaynak kodu aşağıdaki gibidir:

pragma sağlamlığı 0.4.9; sözleşme DemoTipleri {function f (uint a) şunu döndürür (uint b) {uint sonucu = a * 8; dönüş sonucu;}}
  • Şu anda, yukarıdaki kodu bu adresin sol tarafına kopyalayıp yapıştırın ve ardından derlenmiş kodu sağ tarafta görebilirsiniz:

  • Bu kodu kopyalayıp yapıştırın ve web3.eth.accounts'un kilidi de açılır, Ethereum'un özel zincirine dağıtılabilir. Ve idam edilebilir ve çağrılabilir.

> a_demotypes.f.call (100) 800 > a_demotypes.f.call (125) 1000

Akıllı sözleşme Sağlamlık kaynak kodu analizi

En basit akıllı sözleşme kodu aşağıdaki gibidir:

  • Şimdi basit bir analiz yapmaya çalışalım ve bazı temel Solidity bilgilerini tanıtalım
İlk satır pragma sağlamlığı 0.4.9;
  • İlk kod satırı gereklidir, aksi takdirde derleyici derleyiciyi ve derleyici sürümünü nasıl seçeceğini bilemez.
  • İlk satırda Pragma sağlamlığı pragma sağlamlığı
  • 0.4.9 Not: 0.4.9'dan itibaren, önde oynayamazsınız ^, 0.4.8 / 0.4.7 ve diğer sürümlerde hala ^ oynamanız gerekir.
İkinci satır sözleşme DemoTypes {...}

İşte Solidity'deki Sözleşmeyi açıklayan bir alıntı

Solidity'deki sözleşmeler, nesne yönelimli dillerdeki sınıflara benzer. Durum değişkenlerinde kalıcı veriler ve bu değişkenleri değiştirebilen işlevler içerir.Farklı bir sözleşmede (örnek) bir işlevi çağırmak, bir EVM işlev çağrısı gerçekleştirecek ve böylece bağlamı değiştirecektir. bu durum değişkenlerine erişilemez. (buradan alıntı yapılmıştır

Çince çeviri:

Solidity'deki sözleşmeler, nesne yönelimli dillerdeki sınıflara çok benzer. Kalıcı verilere ve bu değişkenleri değiştirebilecek işlevlere sahip değişkenler vardır.Farklı Sözleşme örneklerinde bir işlevi çağırmak, EVM'de (Ethereum Sanal Makinesi) bir işlev çağrısı yürütür.

  • Solidity'deki akıllı sözleşmelerin geleneksel nesne yönelimli dillerdeki sınıflara çok benzediği görülebilir, bu nedenle kurucular, kalıtım, değişkenler, işlevler, soyut sınıflar ve diğer geleneksel kavramlar vardır.
  • Solidity tarafından yazılan akıllı sözleşme, derlendikten sonra EVM tarafından konuşlandırılacak ve yürütülecektir.
  • Solidity dili JS benzeri bir dildir, bu yüzden birçok kodlama standardı JS'ye çok benzer
Üçüncü satır işlevi f (uint a), (uint b) {...} döndürür
  • Yukarıda belirtildiği gibi, sözleşme değişken yöntemler (işlev) içerir. function f (uint a) şunu döndürür (uint b) fuint auint b
  • uint, durumsuz bir tamsayıyı, yani 0'dan büyük bir tamsayıyı temsil eder
  • uint = uint256, maksimum değer 2 üzeri 256. Bu sayı çoğu matematiksel işlem için yeterlidir.
  • Uint ile karşılaştırıldığında, negatif sayılara sahip tam sayı türleri de vardır, yani int, int = int256, değer aralığı, negatif 2'nin 128'inci kuvvetinden pozitif 2'nin 128'inci kuvvetine kadardır.
  • Uint / int türlerinin ayrıntıları için aşağıdaki Int türlerinin girişine bakın. Veya tıklayın buraya
İşlev çekirdek kod işlevi f (uint a) şunu döndürür (uint b) {uint sonuç = a * 8; sonuç döndür;}
  • Bu çok yaygın bir js kodudur, aşağıdaki iki noktaya dikkat çekmeye değer
  • Solidity bir tür dilidir, bu nedenle her değişkenin türünü, uint / int / string / var tanımlaması gerekir

Solidity, statik olarak yazılmış bir dildir, yani her bir değişkenin (eyalet ve yerel) türünün derleme zamanında belirtilmesi (veya en azından bilinmesi - aşağıdaki Tür Kesintisine bakın) gerektiği anlamına gelir. Solidity, aşağıdakilerle birleştirilebilen birkaç temel tür sağlar: karmaşık türler oluşturur. Buradan alıntı yapılmıştır

  • Kodlama stili hakkında uint sonucu = a * 8;

    Bir ödev veya başka bir operatör etrafında, buradan alıntılananla hizalamak için birden fazla boşluk

Evet: x = 1; y = 2; long_variable = 3;

Solidity'nin kodlama stili hakkında daha fazla bilgi için lütfen https://solidity.readthedocs.io/en/develop/style-guide.html resmi belgesine bakın.

Yukarıdaki koddan sonra, akıllı sözleşmeler hakkında bazı temel bilgileri biliyoruz, bir sonraki bölüm Browser-solidity'nin sağ tarafındaki gizemi açıklamaya başlayacak.

Önce Browser-solidity adresini tekrarlayın: https://ethereum.github.io/browser-solidity

Browser-solidity, resmi olarak sağlanan tarayıcı tabanlı bir sözleşme derleyicisidir, kullanımı çok kolaydır ve derleme sürümü en son Solidity derleme sürümünü takip edecektir. Bununla birlikte, ağ nedenleri ve GFW'nin varlığı nedeniyle, başka bir grup insanın çok yavaş ziyaret etmesi mümkündür, bu da geliştirme verimliliğini etkiler. Aşağıda, Tarayıcı sağlamlığının yerel olarak nasıl dağıtılacağı açıklanmaktadır

Tarayıcı sağlamlığı yönteminin yerel olarak dağıtımı

  • Adım 2: İndirilen klasöre gidin ve aşağıdaki komutu yürütün (kaynak koduna göre derleyin) npm install # fetch bağımlılıkları npm run build # build uygulamasını build / app.js içine çalıştırın
  • 3. Adım: npm sunucusu npm çalıştırma sunumunu başlatın

Yerel açılışın etkisi şu şekildedir: O zaman kendi akıllı sözleşmenizi dilediğiniz zaman yazabilirsiniz.

Tarayıcı sağlamlığı ayrıntılı açıklaması

Burada kullanılan Tarayıcı sağlamlığı resmi web sitesindendir. Açılamıyorsa veya hızı çok yavaşsa, lütfen yukarıdaki yerel yapım yöntemine bakın. Browser-solidity'nin sağ tarafında ayrıntılı analiz için lütfen aşağıdaki şekle bakın:

  • 1. Yukarıdaki ekran görüntüsünde gösterildiği gibi mevcut sağlamlık sürümü 0.4.9'dur, bu varsayılan en son sürüm sürümüdür.
  • 2. Açılır kutuya tıklayın, henüz olgun olmayan en son sürüm veya önceki sürüm dahil olmak üzere farklı sürümler seçebilirsiniz. Kişisel olarak şiddetle tavsiye edin, aşağıdaki şekilde gösterildiği gibi yayın sürümünü seçmeye çalışın

  • 3. Oluştur'a tıklayın ve akıllı sözleşmenin bir örneği bellekte oluşturulacak, yani aşağıdaki web3 dağıtım kodu sanal belleğe dağıtılacaktır.

  • 4. Bytecode, kaynak kodun derlenmiş ürünüdür ve bu aynı zamanda sonunda blok zincirine konulacak olan logodur. İnternetteki herkes bu bayt kodunu okuyabilir.
  • 5. Arayüz, bayt kodunun yanı sıra akıllı sözleşmenin başka bir özüdür.Dış dünya ile iletişim kuran akıllı sözleşmenin özüdür.
  • 6. web3.deploy kodu, doğrudan geth ağında konuşlandırılabilen bir dağıtım kodu parçasıdır.Önceki bölümde, denedik. Bu kod kopyalanıp yapıştırıldığı sürece, doğrudan bir blok zinciri özel zincirinde konuşlandırılabilir. İnternette konuşlanın ve onu arayın.
  • 7. dan, sözleşmenin hangi hesap tarafından oluşturulduğu ve gaz üretmek için gereken gazın hesap tarafından karşılanması gerektiği anlamına gelir. Varsayılan değer eth.accounts'dur, çünkü madencilikten elde edilen tüm Ether de varsayılan olarak hesap alanına yatırılır . data: bayt kodu gazını temsil eder: sözleşmeyi dağıtmak için hazırlanan maksimum gaz miktarını temsil eder.Tabii ki, aslında çok fazla gaz kullanmayabilir. Spesifik tüketim, gerçek kullanıma bağlıdır. Burada sadece maksimum bir miktar.
  • 8. Son paragraf tipik bir javascript asenkron çağrısıdır.Yukarıdaki yeni metodun sonucu bir sonraki metot fonksiyonuna (e, sözleşme) aktarılır.Bir sonraki metotta, madencilik başarılı olursa sonuç görüntülenecektir.
Şimdiye kadar, en basit akıllı sözleşmelerden birini ve Ethereum'un altında yatan bazı teknik detayları ayrıntılı olarak analiz ettik.

Sonraki bölümde, tarayıcı sağlamlığı aracında biraz daha karmaşık bir akıllı sözleşmeyi tartışacağız.

Gönderildiği andaki standart Bitcoin fiyatı Alış fiyatı: 7201,00 Satış fiyatı: 7108,00

Deniz seviyesi yükseldikçe Tuvalu sular altında kalabilir! Ortadan kaybolacak bir sonraki ülke mi?
önceki
Bağırsak hareketlerini teşvik etmek için 4 çeşit yağ azaltıcı yemek tarifi, haftada 2-3 kedi kaybetmek sorun değil!
Sonraki
Kompakt arabalar aynı zamanda hanelerin ihtiyaçlarını da karşılayabilir, 80.000 kişi bu ortak girişim arabalarını para kaybetmeden satın alır
Bu yiyecekleri çimlenmeden sonra yemek sadece toksik olmayıp aynı zamanda iki kat besin değerine de sahiptir!
Volvo'nun yeni XC60'ı piyasada.Güvenliğin yanı sıra başka neye bakıyor?
Birleşmiş Milletler: 2017, insanlık için en sıcak yıllardan biri olacak ve anormal hava durumu alarmı çaldı!
Sonbaharın başlangıcından sonra "3 yeme, 3 yapma" tüm yıl kilo almanızı engelleyecektir!
Sahnede zarif bir beyefendi, Ruicheng CC Çin marka arabaların statükosunu değiştirebilir mi?
Hawking, son iki yılda dünyanın sonundan üç kez bahsetti, dikkatli olmalısın!
Vücuda en zararlı olan tavuk özü mü yoksa monosodyum glutamat mı? Sana bugün söyle
Stratejik salınımdan ALL IN'e kadar, Toyota'nın yeni enerji stratejisi, geleneksel otomobil şirketleri için üç ana ilham kaynağı oldu.
15 yıldan daha kısa bir sürede, küresel nüfus 10 milyarı aştı! O sırada dünya yok olacak mı?
Bu arabaların 2017'nin en yeni bağımsız marka SUV'leri olabileceğini duydum
5 dakika çömelme = 1 saat yürüyün, 5 çeşit sağlıklı çömelme, farkı bulmak için bir ay ısrar edin
To Top