Bitcoin, Ethereum ve ittifak zincirinin blockchain sistem mimarisini anlamak için bir resim

, dağlara bakan dağın zirvesi olacak. Altta yatan blok zincirinin gelişimine girmeden önce, temeldeki blok zincirinin genel mimarisinin nasıl tasarlandığını anlamamız ve blok zincirinin temel yapısını yukarıdan aşağıya incelememiz ve kendimizden emin olmak için net olmamız gerekir.

Diğer tepelerden gelen taşlar öğrenebilir. Altta yatan blok zincirinin genel mimarisini tanıtmadan önce, şununla başlayabiliriz: Bitcoin, Ethereum, Hyperledger Mimarinin yorumu başlıyor.

Bitcoin mimarisi

Satoshi Nakamoto'nun "Bitcoin: A Peer-to-Peer Elektronik Nakit Sistemi" makalesinde yer alan Bitcoin sisteminin açıklamasına göre, Bitcoin sistem mimarisini aşağıdaki şekilde gösterildiği gibi sıralayabiliriz.

Bitcoin sistem mimarisi

Şekilde gösterildiği gibi, Bitcoin sistemi aşağıdan yukarıya doğru 6 katmana ayrılmıştır. Depolama katmanı, veri katmanı, ağ katmanı, konsensüs katmanı, RPC katmanı, uygulama katmanı .

onların arasında, Depolama katmanı Temelde Bitcoin sisteminin çalışmasında günlük verilerini ve blok zinciri meta verilerini depolamak için kullanılır.Depolama teknolojisi esas olarak dosya sistemini ve LevelDB'yi kullanır.

Veri katmanı Temelde bitcoin işlemlerinde verileri bloklar halinde paketlemek, blokları bir zincir yapısında tutmak, bloktaki içeriği şifrelemek ve hashing yapmak, blok içeriğini dijital olarak imzalamak ve zamanı artırmak gibi her türlü veriyi işlemek için kullanılır. Damga, işlem verilerini bir Merkle ağacında oluşturun ve Merkle ağacının kök düğümünün karma değerini hesaplayın.

Bloklardan oluşan zincir çatallayabilir.Bitcoin sisteminde, düğümler her zaman en uzun zinciri doğru zincir olarak görür ve daha sonra yeni bloklar eklemeye devam eder.

Ağ katmanı Bitcoin'in altındaki P2P ağını oluşturmak için kullanılır, birden fazla düğümün dinamik olarak birleştirilmesini ve ayrılmasını destekler, ağ bağlantılarını etkin bir şekilde yönetir ve Bitcoin veri aktarımı ve fikir birliği için temel ağ destek hizmetleri sağlar.

Konsensüs katmanı Esas olarak PoW (Proof of Work) konsensüs algoritmasını kullanır. Bitcoin sisteminde, her düğüm, gereksinimleri karşılayan rastgele bir sayı bulana kadar sürekli olarak rastgele bir sayı (Nonce) hesaplar. Belirli bir süre içinde, nitelikli bir rastgele sayı bulan ilk kişi, bir çalışma kanıtı mekanizması oluşturan bloğu paketleme hakkına sahip olacaktır. PoW açısından bakıldığında, PoW ve dağıtılmış kilitlerin aynı etkiye sahip olduğunu düşünüyor musunuz?

RPC katmanı RPC hizmeti uygulanır ve müşterilerin blok zincirinin temel hizmetlerine erişmesi için JSON API sağlanır.

Uygulama katmanı Temel olarak, bitcoin açık kaynak kodunda sağlanan bitcoin istemcisi gibi çeşitli bitcoin uygulamalarını taşır. Bu katman, esas olarak JSON API aracılığıyla temeldeki bitcoin katmanıyla etkileşim kurmak için bir RPC istemcisi olarak kullanılır. Ek olarak, Bitcoin cüzdanları ve türev uygulamaları, uygulama katmanı üzerine inşa edilmiştir.

Ethereum mimarisi

Ethereum teknik incelemesinin "Yeni Nesil Akıllı Sözleşme ve Merkezi Olmayan Uygulama Platformu" açıklamasına göre, Ethereum mimarisi aşağıdaki şekilde gösterilmektedir.

Ethereum mimarisi

Şekilde gösterildiği gibi, Ethereum mimarisi aşağıdan yukarıya 7 katmana ayrılmıştır. Depolama katmanı, veri katmanı, ağ katmanı, protokol katmanı, fikir birliği katmanı, sözleşme katmanı, uygulama katmanı .

onların arasında Depolama katmanı Temelde Ethereum sisteminin çalışmasında günlük verilerini ve blok zinciri meta verilerini depolamak için kullanılır.Depolama teknolojisi esas olarak dosya sistemini ve LevelDB'yi kullanır.

Veri katmanı Temelde Ethereum işlemlerinde verileri bloklar halinde paketlemek, blokları bir zincir yapısında tutmak, bloktaki içeriği şifrelemek ve hashlemek, blok içeriğini dijital olarak imzalamak ve zamanı artırmak gibi her türlü veriyi işlemek için kullanılır. Damga, işlem verilerini bir Merkle ağacında oluşturun ve Merkle ağacının kök düğümünün karma değerini hesaplayın.

Bitcoin ile olan fark, Ethereum'un işlem konseptini ve işlem havuzlarını tanıtmasıdır. İşlem, bir hesabın imzalanmış bir veri paketini başka bir hesaba göndermesi sürecini ifade eder. İşlem havuzu, düğümler tarafından doğrulanan işlemleri depolar ve bu işlemler madenciler tarafından kazılan yeni bloklara yerleştirilir.

Ethereum'un Olayı (olay), Ethereum sanal makinesi tarafından sağlanan günlük arayüzünü ifade eder.Bir olay çağrıldığında, ilgili günlük bilgileri günlük dosyasına kaydedilir.

Bitcoin gibi, Ethereum sistemi de P2P ağına dayanmaktadır Ağdaki her düğümün hem bir istemci rolü hem de bir sunucu rolü vardır.

Protokol katmanı Temel olarak HTTP, RPC protokolü, LES, ETH protokolü, Whipser protokolü vb. Dahil olmak üzere sistemin her modülünün birbirini çağırması için Ethereum tarafından sağlanan protokol desteğidir.

Ethereum, HTTP İstemcisine dayalı HTTP desteği uygular ve GET ve POST gibi HTTP yöntemlerini uygular. Harici programlar Ethereum'un API'sini JSON RPC üzerinden çağırdığında, RPC (Uzaktan Prosedür Çağrısı) protokolünü kullanmaları gerekir.

Whisper protokolü, DApp'ler arasındaki iletişim için kullanılır.

LES'in tam adı, Ethereum düğümlerinin eşzamanlı olarak bloklar elde ederken bloğun yalnızca başlığını indirmesine ve gerektiğinde bloğun diğer bölümlerini almasına izin veren Light Ethereum Alt protokolüdür.

Konsensüs katmanı Ethereum sisteminde, PoW (Proof of Work) ve PoS (Proof of Stake) olmak üzere iki fikir birliği algoritması vardır.

Sözleşme katmanı İki katmana bölünmüş olan alt katman EVM'dir (Ethereum Sanal Makinesi) ve üst katman akıllı sözleşme EVM'de çalışır. Akıllı sözleşme, Ethereum'da çalışan kod için genel bir terimdir.Akıllı bir sözleşme genellikle iki bölümden oluşur: veri ve kod. Akıllı sözleşme sistemi, sözleşmeyi veya sözleşmeyi kodlar ve belirli olaylara göre uygulamayı tetikler. Bu nedenle prensip olarak güvenlik, güven ve uzun vadeli anlaşmalar veya sözleşme senaryoları için uygundur. Ethereum sisteminde, akıllı sözleşmeler için varsayılan programlama dili Solidity'dir ve JavaScript dilini öğrenen okuyucuların Solidity'yi öğrenmesi kolaydır.

Uygulama katmanı DApp (Merkezi Olmayan Uygulama) ve Ethereum cüzdanı gibi çeşitli türev uygulamaları vardır ve şu anda geliştiriciler için en aktif katmandır.

Hyperledger mimarisi

Hyperledger (Hyperledger), 2015 yılında Linux Foundation tarafından blockchain dijital teknolojisini ve işlem doğrulamayı teşvik etmek için başlatılan açık kaynaklı bir projedir. Projenin amacı Blok zinciri ve dağıtılmış muhasebe sistemlerinin sektörler arası gelişimini ve işbirliğini teşvik edin .

Şu anda bu projenin en ünlü alt projesi, IBM'in liderliğini yaptığı Fabric'dir. Resmi web sitesi açıklamasına göre, Hyperledger Fabric, yüksek derecede esneklik, esneklik ve ölçeklenebilirlik sağlayan, modüler bir mimariye dayalı, dağıtılmış muhasebe çözümleri için bir platformdur. Farklı bileşenlerin takılıp çıkarılabilmesini desteklemeyi ve tüm ekonomik ekosistemde var olan karmaşıklığa uyum sağlamayı amaçlamaktadır.

Hyperledger Fabric, onu diğer blockchain çözümlerinden farklı kılan benzersiz bir esnek ve ölçeklenebilir mimari sağlar. Blockchain şirketlerinin geleceğini tamamen incelenmiş bir açık kaynak mimarisine dayalı olarak planlamalıyız. Hyperledger, kurumsal düzeydeki uygulamaların hızlı inşası için başlangıç noktasıdır.

Şu anda, Hyperledger Fabric mimarisinin iki ana yinelemesinden geçti: sürüm 0.6 ve sürüm 1.0. Bunlar arasında, mimarinin 0.6 versiyonu nispeten basittir, Peer düğümü birçok işlevi bütünleştirir ve modülerlik ve ölçeklenebilirlik zayıftır. Sürüm 1.0, sürüm 0.6'nın Eş düğüm işlevini modüler hale getirdi. En son 1.1 sürümü şu anda Alfa aşamasındadır.

1.0 sürümünde, Eş düğümler eş düğümlere ve düzenleyici düğümlerine bölünebilir. Eşler düğümü, durumu (Durum) ve defteri (Ledger) korumak için kullanılır ve düzenleyiciler düğümü, defterdeki her işlemde bir fikir birliğine varmaktan sorumludur.

Endorsing Peers, aynı zamanda zincir kodu ve işlem kimlik doğrulamasını (Onaylama İşlemleri) yürütmekten sorumlu özel bir eş düğüm türü olan sisteme dahil edilir.

Hyperledger Fabric'in katmanlı mimari tasarımı aşağıda gösterilmiştir.

Hyperledger Fabric'in katmanlı mimari tasarımı

Hyperledger Fabric, yani 7 katmana ayrılabilir. Depolama katmanı, veri katmanı, kanal katmanı, ağ katmanı, fikir birliği katmanı, sözleşme katmanı, uygulama katmanı .

onların arasında Depolama katmanı Esas olarak defteri ve işlem durumunu saklayın. Defterin durumu veritabanında saklanır ve depolanan içerik, tüm işlemler sırasında görünen anahtar-değer çifti bilgileridir. Örneğin, işlem işleme sürecinde, işlemi yürütmek için zincir kodunu çağırmak durum verilerini değiştirebilir. Durum depolama veritabanı LevelDB veya CouchDB kullanabilir. LevelDB, sistemin varsayılan yerleşik veritabanıdır ve CouchDB isteğe bağlı bir üçüncü taraf veritabanıdır. Blok zincirinin defteri dosya sisteminde saklanır.

Veri katmanı Esas olarak işlem (İşlem), durum (Durum) ve defterden (Defter) oluşur.

Bunlar arasında iki tür işlem vardır:

  • İşlem dağıtma: Parametre olarak programla yeni bir işlem oluşturun. Dağıtım işlemi başarıyla gerçekleştirildikten sonra, zincir kodu blok zincirine yüklenir.
  • Çağrı işlemi: önceki adımda konuşlandırılan zincir kodu üzerinde işlemler gerçekleştirin. Zincir kodu belirli bir işlevi yürütür, bu işlev durum verilerini değiştirebilir ve sonucu döndürebilir.

Durum, işlem verilerinin değişmesine karşılık gelir. Hyperledger Fabric'te, blok zincirinin durumu, anahtar / değer deposu (KVS) ile temsil edilen versiyonlanır. Anahtar addır, değer herhangi bir metin içeriğidir ve sürüm numarası bu kaydın sürümünü tanımlar. Bu veri içerikleri, PUT ve GET işlemleri aracılığıyla zincir kodu tarafından yönetilir. Depolama katmanında açıklandığı gibi, durum sürekli olarak veritabanında depolanır ve duruma ilişkin güncellemeler dosya sistemi tarafından kaydedilir.

Defter, tüm başarılı durum verisi değişikliklerinin ve başarısız değiştirme girişimlerinin geçmişini sağlar.

Defter, Sipariş Hizmeti tarafından oluşturulan tamamen sıralı işlem bloklarından oluşan bir blok karma zinciridir.

Defter, tüm eş düğümlerinde veya birkaç sipariş düğümünde saklanabilir. Ek olarak, defter, tüm işlemlerin geçmişinin yeniden yapılmasına ve durum verilerinin yeniden yapılandırılmasına izin verir.

Kanal katmanı İşlem bilgilerinin yalnızca işlem katılımcıları tarafından görülebilmesini sağlamak için kullanılan bir Hyperledger Fabric veri izolasyon mekanizması olan kanalı (Kanal) ifade eder. Her kanal bağımsız bir blok zinciridir, bu nedenle birden fazla kullanıcı, bilgi sızıntısı konusunda endişelenmeden aynı blok zinciri sistemini paylaşabilir.

Ağ katmanı Blok zinciri ağındaki her iletişim düğümüne P2P ağ desteği sağlamak için kullanılır ve blok zinciri defterinin tutarlılığını sağlamak için temel hizmetlerden biridir.

Hyperledger Fabric'te Node, blok zincirinin iletişim varlığıdır. Düğüm yalnızca mantıksal bir işlevdir, aynı fiziksel sunucu üzerinde birden çok farklı Düğüm türü çalıştırılabilir. İstemci, eşler ve Sipariş Hizmeti olmak üzere üç tür Düğüm vardır.

Bunlar arasında müşteri, kullanıcının işlem talebini blockchain ağına göndermek için kullanılır.

Eşler düğümü, blok zinciri defterinin korunmasından sorumludur. Eşler düğümü, destekleyici eşler ve taahhüt eden eşler olarak bölünebilir. Onaylayan eşler işlemleri doğrularlar.Kontrol etme mantığı, işlemin geçerliliğini doğrulamayı ve işlemi imzalamayı içerir; taahhüt eden eşler paketlenmiş bloğu alır ve bunu blok zincirine yazar. Node'a benzer şekilde, eşler de mantıksal kavramlardır.Ending peers ve commiting peers aynı anda aynı fiziksel makineye yerleştirilebilir.

Sipariş Hizmeti, işlem bilgilerini alacak, sıralayacak ve bloklar halinde paketleyecek, ardından bunu blok zincirine yazacak ve en sonunda sonucu, iş ortaklarına geri döndürecektir.

Konsensüs katmanı Kafka ve SBTF gibi fikir birliği algoritmalarına dayalı uygulama. Hyperledger Fabric, işlem bilgilerini sıralamak için Kafka'yı kullanır, yüksek verimli, düşük gecikmeli işleme yetenekleri sağlar ve küme içinde düğüm hatası toleransını destekler. Kafka ile karşılaştırıldığında SBFT (Basit Bizans Algoritması), düğüm hatalarına tolerans ve belirli sayıda kötü amaçlı düğüme tolerans dahil olmak üzere daha güvenilir bir sıralama algoritması sağlayabilir.

Sözleşme katmanı Hyperledger Fabric'in akıllı sözleşme katmanı olan Blockchain'dir.Blockchain, varsayılan olarak Go dili tarafından uygulanır. Blockchain'in çalıştırdığı program zincir kodu olarak adlandırılır, durum ve defter verilerini tutar ve işlemlerin yürütülmesinden sorumludur. Hyperledger Fabric'te yalnızca onaylanmış işlemler gönderilebilir. İşlem, zincir kodundaki işleme yapılan bir çağrıdır, dolayısıyla zincir kodu temel içeriktir. Aynı zamanda, işlevleri ve parametreleri yönetmek için kullanılan, sistem zinciri kodu adı verilen özel bir zincir kodu türü vardır.

Uygulama katmanı Hyperledger Fabric'in çeşitli uygulamalarıdır.

Ek olarak, bir konsorsiyum zinciri olduğu için, Hyperledger Fabric'te konsorsiyumdaki üyelerin yönetimine adanmış bir modül vardır, yani Üyelik Servis Sağlayıcısı (MSP) MSP, üye kimlik doğrulama bilgilerini yönetmek ve istemciler ve eşler için üye sağlamak için kullanılır. Yetkilendirme hizmeti.

Blockchain genel mimarisi

Şimdiye kadar Bitcoin, Ethereum ve Hyperledger'ın mimari tasarımını anladık, Üçünün farklı kullanım senaryolarına göre farklı tasarımları var Ancak yine de bazı ortak noktaları soyutlayabiliriz ve kurumsal düzeydeki ittifak zincirinin temel mimarisini bu ortak noktalara göre tasarlayabiliriz.

Bu makalede sağlanan ittifak zincirinin temel mimarisi aşağıdaki şekilde gösterilmektedir.

İttifak zincirinin altında yatan mimari

Blok zincirinin alt katmanını, aşağıdan yukarıya doğru 6 katmana ayırıyoruz. Depolama katmanı, veri katmanı, ağ katmanı, fikir birliği katmanı, teşvik katmanı ve uygulama katmanı .

Depolama katmanı Esas olarak işlem günlüklerini ve işlemle ilgili içeriği depolayın. Bunlar arasında, işlem günlüğü LogBack'e göre uygulanır. İşlemin içeriği yerleşik SQLite veritabanı tarafından saklanır ve SQLite veritabanının okunması ve yazılması JPA temel alınarak uygulanabilir; zincirdeki işlem meta verileri bilgileri RocksDB veya LevelDB tarafından saklanır.

Veri katmanı Bloklardan ve blok "zincirlerden" (blokların zincir yapısı) oluşur. Bunlar arasında, blok ayrıca işlem listesinin Merkle ağacında saklanmasını ve kök düğümün karma değerinin hesaplanmasını içerecektir. İşlemin içeriğinin de şifrelenmesi gerekiyor. İttifak zincirinde birden fazla düğüm olduğundan, düğüm verilerini etkin bir şekilde yönetmek ve veri güvenliğini sağlamak için, şifreleme için farklı düğümlere farklı genel ve özel anahtarlar tahsis edilmesi önerilir.

Ağ katmanı Esas olarak fikir birliği ve veri iletişimi için temel desteği sağlar. Blok zincirinde, her düğüm hem verinin göndericisi hem de verinin alıcısıdır. Her düğümün hem istemci hem de sunucu olduğu söylenebilir, bu nedenle uzun bağlantılara göre uygulanması gerekir. WebSocket'e dayalı olarak yerel olarak kalıcı bir bağlantı kurabiliriz veya kalıcı bağlantı için üçüncü taraf bir araç setine dayalı olarak uygulanabilir.

Konsensüs katmanı PBFT (Pratik Bizans Hata Toleransı) fikir birliği algoritmasını benimseyin. Halka açık zincirin madencilik mekanizmasından farklı olarak, ittifak zinciri, her bir düğümün bilgisinin birleştirilmesine daha fazla önem verir, böylece madencilikten tasarruf edebilir ve doğrudan fikir birliği hedefine gidebilir.

Teşvik katmanı Temelde madeni para ve jetonların çıkarılması ve dolaşımı. Halka açık zincirde, teşvikler kamusal zincirin ruhudur; ancak ittifak zincirinde gerekli değildir.

Uygulama katmanı Esas olarak ittifak zincirine çeşitli ürünlerin inişi. Genel ittifak zincirinin uygulama katmanı endüstri odaklıdır ve sektördeki sorunları çözer.

Java Sürümü Konsorsiyum Zincirinin dağıtım mimarisi aşağıdaki şekilde gösterilmektedir.

Konsorsiyum zincirinin Java sürümünün dağıtım mimarisi

İttifak zinciri, bir süper düğüm ve birkaç sıradan düğümden oluşur.Sıradan düğümlerin işlevlerine ek olarak, süper düğüm aynı zamanda ittifakta üye yönetimi, yetki yönetimi ve veri izleme uygulama yeteneğine de sahiptir. Bu nedenle, tamamen merkezi olmayan bir halka açık zincirle karşılaştırıldığında, ittifak zinciri kısmen merkezsizdir veya İttifakın "zinciri" merkezden dağıtılmıştır, ancak ittifak zincirinin yönetimi merkezidir.

Tüm geliştirme ortamının Spring Boot 2.0'a dayalı olarak uygulanması önerilir. Spring Boot geliştirmesine dayalı olarak, projedeki POM dosyası yapılandırmasının karmaşık bağımlılıklarını büyük ölçüde basitleştirebilecek çok sayıda xml yapılandırma dosyası kaydedebilirsiniz. Spring Boot ayrıca, otomatik yapılandırmayı gerçekleştirebilen ve geliştirme verimliliğini artırabilen çeşitli başlatıcılar sağlar.

Li Zhiyan: En uygun maliyetli şarap hangisidir?
önceki
Wuhan'daki Huangpi'den 3 yaşındaki bir çocuk yardım için polisi aradı ve 6 telefon numarasını söyleyebilirdi, çok akıllı!
Sonraki
Yüz bin "Tuang" satın alabilir! Saf yeni araba! Size araba satın almak için doğru duruşu öğretmeme izin verin!
"Ayı Çocukları" nın en sevilen yaz tatili burada ve ebeveynler atıştırmalıklar yemeli!
Üç büyük operatörün yeni sihirli silahı: JD marketleriyle işbirliği yapacaklar mı?
Shanxi'deki bu antik kentin mimarisi iki ünlü film ve televizyon dizisi çekmiştir: Çin'de ilk "kameralar" vardır.
Yeni Fox ve Lynk & Co 03, 150.000 düzeyinde spor market alışverişi kralı kim? Okuduktan sonra karışık değil
Konsensüs katmanının evrim yasasına dönüp baktığımızda, PoW + PoS hibrit mekanizması kamusal zincir idealine daha mı yakın?
Heyecanla, Çin'in kendi uçak gemisi, bir zamanlar yabancı savaş gemileri tarafından yaygın olan Hong Kong'da ilk kez görünecek.
Formaldehite ek olarak, kiralama piyasası da buna uymaktan korkuyor
Hanzhong'da bir kadın olan Shaanxi cep telefonunu kaybetti ve arabanın tamamında 40 yolcu aradı. Bu yasadışı değil mi?
Shaolin Sopası bin yıl daha dans edebilir mi? Çin Kung Fu
2013 yılında, Hubei Wuhan Building Management Amcle, öğrencilerin 260.000 öğrenciyi almasına yardım etti, çok mu özensiz mi?
Dizel araç yanlışlıkla benzinle doldurulursa, bu Milyon Land Rover, bunu yaparsa 200.000 yuan ödemek zorunda kalmaz.
To Top