IPFS ve Filecoin'i karşılaştırırken, neden libp2p'nin blockchain ve Nesnelerin İnterneti altyapısı olacağını söyleyelim?

Chenwu Technology'nin kurucu ortağı Xu Xiao, Chenwu Technology'nin ev sahipliği yaptığı Çin IPFS Geliştirici Salonunda 20 Ekim'de "libp2p Ayrıntılı Açıklama" başlıklı bir açılış konuşması yaptı.

Libp2p neden önemlidir? Bu yılın Temmuz ayında, Protokol Laboratuvarı libp2p'yi IPFS ve Filecoin ile karşılaştırılabilir birinci seviye bir projeye yükseltti. Libp2p aynı zamanda IPFS ve Filecoin'in altyapısıdır, bu da temel teknolojilerinin tamamen libp2p'ye dayalı olarak uygulandığı anlamına gelir. Ayrıca libp2p, gelecekteki p2p uygulamaları, blok zinciri ve Nesnelerin İnterneti için altyapıdır. Ana akım iletim protokollerini oldukça özetler, böylece üst katman uygulamasının, üst katmanı oluştururken alt katmanın spesifik uygulamasına dikkat etmesi ve sonunda çapraz ortam ve protokoller arası cihaz ara bağlantısını gerçekleştirmesi gerekmez.

Xiao Xu'nun konuşması, libp2p'nin gerçekleştirme ilkesine ve temel sürecine odaklandı. Sistemdeki libp2p'nin çekirdek bileşenlerinin işlevlerini ve uygulama ayrıntılarını tek tek tanıttı ve libp2p başlatma düğümü, arama, izleme, rpc ve veri alışverişinin temel süreçlerini ayrıntılı olarak açıkladı.

Aşağıdaki içerik Babbitt tarafından derlenmiştir.

Genelde herkes için go uygulamasından bahsediyorum, aslında pas ve JS uygulaması var. Go'dan bahsetmemin nedeni, go'nun ilk ürün kitaplığı ve en kapsamlı kitaplığı olmasıdır.

Bir, libp2p özeti

1. libp2p nedir?

libp2p, düğümleri bağlamanıza yardımcı olacak bir kitaplıktır. Özellikleri nelerdir? Bu, nerede olurlarsa olsunlar, hangi ortamda olurlarsa olsunlar, hangi işletim sisteminde çalışırlarsa çalışsınlar, NAT'nin arkasında olup olmadıkları önemli değil, fiziksel olarak bağlanma olasılıkları olduğu sürece, libp2p'nin bağlantıyı tamamlamanıza yardımcı olacağı anlamına gelir.

Şimdi protokol laboratuvarı için libp2p, IPFS ve filecoin'in ağ katmanı olan çok önemli bir modüldür. Bunu derinlemesine anladıysanız, IPFS'deki birçok işlevin basit bir soyutlama ve libp2p paketlemesi olduğunu göreceksiniz. Diğer bir deyişle, bazı yeni fikirleriniz varsa, libp2p'ye dayalı yeni bir IPFS uygulayabilirsiniz.

libp2p bir rpc çerçevesidir. Rpc işlemi, düğüm 1'in düğüm 2'ye bazı veriler söylemek istediğini ifade eder.Önce onu ağda iletilebilen bir bayt akışına serileştiririm ve ardından gerçek taşıma katmanına girer ve düğüm 2 bu verileri almak için seriyi kaldırır. Aslında, libp2p en alt seviye modül değildir, altında bir Multiformats kütüphanesi vardır.Multiformats, çeşitli fonksiyonlar için bir soyutlama katmanı sağlar ve bu fonksiyonları birleşik bir arayüzde özetler.

libp2p ayrıca bir araç kitaplığıdır. Neden öyle diyorsun? Çünkü genellikle yazılım geliştirme yaptığımızda sadece tcp bağlantıları gibi alt katmana değil, bağlantı durumu gibi bilgilere de dikkat etmeliyiz. Protokol laboratuvarı, geçmiş deneyimlerinden bazıları aracılığıyla, tüm geliştiricilerin temelde ihtiyaç duyduğu bazı işlevleri özetledi ve bunları, taşıma katmanını mükemmelleştirmeye eşdeğer olan libp2p kitaplığına koydu. Bazılarını kısaca listeledim.Bu araçların işlevleri arasında bağlantı yeniden kullanımı, kimlik değişimi, röle, NAT geçişi, dht keşfi, RTT istatistikleri vb.

2. Neden libp2p?

Libp2p yapmanın nedeni, IPFS yaparken çok sayıda heterojen cihazla karşılaşmam, farklı işletim sistemlerini çalıştırmam ve ağ ortamının çok karmaşık olmasıdır.Örneğin, Çin'de çeşitli NAT'ler vardır ve bazı senaryolarda kullanılabilir Tcp bağlantısına ek olarak, dosya sisteminin çeşitliliği ve olası protokol değişiklikleri ihtiyacı da vardır.Örneğin, Bitcoin birçok protokol değişikliğine uğramıştır ve her seferinde% 51 düğüm desteğine ihtiyaç duyar. Aslında daha akıllıca yapılabilir.

IPv6 gelecekte ortaya çıktıktan sonra, Nesnelerin İnterneti, P2P uygulamaları ve özellikle Nesnelerin İnterneti olmak üzere blok zincirinde bir patlama dönemi olması muhtemeldir. Bu nedenle, protokol laboratuvarı karşılaştıkları tüm sorunları soyutlamaya ve bir libp2p kitaplığı oluşturmaya karar verdi, böylece diğer geliştiriciler bu kitaplığı doğrudan kullanabilir, tüm sorunları önleyebilir ve yalnızca iş mantığına odaklanabilir.

3. Libp2p hedefleri ve statüko

Libp2p'nin amacı çok iddialı, ancak protokol laboratuvarı bunun yalnızca bir kısmını gerçekleştirdi, ancak temelde tatmin edilebilir. Libp2p'nin hedeflerini ve statükosunu listeledim, bunlara bir göz atabilirsiniz.

İki, libp2p ilkesi

1. Temel bileşenlerin ilişki diyagramı

Aşağıdaki şekilde gösterildiği gibi, bu, libp2p'nin temel bileşenlerinin bir diyagramıdır.

Kısaca tanıtmama izin verin: İlk katman arayüz katmanı ve üst kısım da uygulamamıza yardımcı olan bazı arayüz fonksiyonları. Sonra ana bilgisayar vardır. İki ana bilgisayar birbirlerinden miras alır. Yönlendirilmiş, temelin genişletilmiş bir uygulamasıdır. Libp2p'de bir ana bilgisayar bir düğümdür, bu nedenle IPFS'de veriler ana bilgisayar birimlerinde dağıtılır ve iletilir. Daha sonra detaylardan yavaşça bahsedeceğim.

2. Temel bileşenlerin ayrıntılı açıklaması

Ulaşım

Öncelikle ulaşımdan bahsetmek istiyorum.Uygulama katmanı ile taşıma katmanı arasındadır.Buna baktığınızda aslında çok basit olduğunu biliyorsunuz.Kapsüllemenin nedeni iki nedene dayanıyor.Birincisi, dünyadaki en popüler taşıma protokolleri sadece bunlar olabilir ama Anlaşma sürekli gelişiyor. İkincisi ise genellikle ip adresini bulmaya gitmemiz, anlaşmayı belirtemememizin bir dezavantajı var. Yani bu şeyin özü, arayüz eşleştiği sürece tüm taşıma katmanlarını birleşik bir arayüzde soyutlamaktır. Bu nedenle, p2p ağının geliştirilmesinin artık temelde yatan iletim protokolüne dikkat etmesi gerekmediğini söylüyoruz.

yükseltici

Şimdi yükselticiden bahsedelim. Geleneksel https protokolünde alt katmanın tcp olduğunu ve üstüne şifreli bir soket katmanı eklendiğini biliyoruz. Aslında bu şifreli soket katmanı bir yükselticidir, ancak libp2p'de daha fazla işlevi vardır. Yaklaşık dört kat var ve bunları katman katman açıklayacağım.

İlk olarak, örnek olarak bir tcp bağlantısı alın.Orijinal bağlantılarımdan biri bir filtreden geçer.Filtre bir adres filtresidir ve koruyucu özel bir ağdır.IPFS de onun aracılığıyla uygulanır. Güvenli, şifreleme katmanıdır ve çoklayıcı çoklama mekanizmasıdır.

Filtre yükseltici, bu katman çok basit, bir adresin kara beyaz listemde olup olmadığına karar vermektir.

koruyucu yükseltici, bu katman koruma ağı olarak adlandırılır, aslında özel ağ olarak da adlandırılır, çünkü çalışma prensibi, dağıtılmış bir uygulama oluşturursanız, bunu özel bir ağ altında kurarsanız, önce bir anahtar oluşturmalı ve ardından şifrelemelisiniz. Anahtar tüm düğümlere dağıtılır. Her düğüm başlatıldığında, bağlantıyı ayarlamak için bu anahtarı kullanır. Ayardan sonra, iletişim kurarken, önce rastgele bir sayı alıp sonra bunu kullanır Rastgele sayı ve bu anahtar, tüm iletim kanalını şifrelemek için kullanılır. Neden buna özel ağ deniyor, çünkü bu anahtar olmadan başkalarıyla iletişim kuramazsınız.

Güvenli yükseltici, TLS'ye benzer şifreli bir bağlantı katmanıdır. Bu katmanda şu anda kullanılan iki şifreleme yöntemi vardır, biri simetrik şifreleme, diğeri asimetrik şifreleme, tokalaşma için asimetrik şifreleme ve kanalı şifrelemek için simetrik şifreleme kullanılmaktadır. Örneğin, iki düğüm arasındaki üç yönlü el sıkışma, ilk el sıkışma, genel anahtarınız nedir, nonce nedir ve desteklediğim asimetrik şifreleme ve simetrik şifreleme listesi ve desteklediğimiz karmalar gibi bilgileri değiş tokuş eder Yolların listesi. Görüşmeden sonra, ikinci el sıkışma, diğer tarafın açık anahtarına göre şifrelenen geçici anahtar ve imza bilgileri dahil olmak üzere bilgi alışverişine başlar ve diğer taraf, şifresini çözmek için kendi özel anahtarını kullanır. Daha sonra iki kişi kullanılabilir bir iletişim anahtarı üzerinde anlaştı. Üçüncü el sıkışma aslında bilgiyi doğrulamak, karşı tarafın bilgileri doğru şekilde oluşturduğunu doğrulamak içindir.

Mux yükseltici, aynı zamanda bağlantı çoklayıcı olarak da adlandırılır. Adından da anlaşılacağı gibi, aynı bağlantı yeniden kullanılır ve bir bağlantıda birden çok bağlantı açılabilir.

röle

Röle taşımacılığından bahsedelim, Çin'deki bazı senaryolar için, özellikle NAT sorunu nedeniyle hala çok kullanışlıdır. Rölenin uygulaması bir çerçeve diyagramıdır. En alttaki katman bir tcp bağlantısıdır ve ardından dinler ve ardından yeni bir tcp bağlantısı gelir ve yükseltilir ve bir röle akışı elde edilir.Röle bir proxy ise burada biter. Bu bir uç düğüm ise, akışı bir bağlantı kavramına ayırır ve ardından dinleyicide röle bağlantısı adı verilen yeni bir bağlantı oluşturur.Röle bağlantısı bir akış elde etmek için yükseltilir ve işletmeye gider. Mantıklı. Röle çok ilginçtir.Röle dinleyicisi kaç tane fiziksel bağlantı izlerse izlesin, alt katman fiziksel bir bağlantıya karşılık gelir, bu nedenle röle senaryosundaki bağlantılar hafiftir.

peerinfo

Peerinfo hakkında konuşalım. Bir düğümün ilgili bilgilerini temsil eder. İki nokta içerir, biri ID, ID kimdir? Benim adım, kimlik nereden geldi? Açık anahtar bir kez karma hale getirilir ve aynı zamanda bir düğümün tek işaretidir. Diğeri adres bilgisidir. Kimliğimin spesifik adresi nedir? 3 parça bilgi, dinleme adresi, gözlem adresi ve NAT eşleme adresi içerir.

eş mağaza

Eş mağazanın yapısı yukarıdaki şekilde gösterildiği gibidir.Geleneksel hayatımızdaki telefon rehberi ve iletişim adres defterine benzer. Tanıdığınız kişilerin tüm ilgili bilgilerini kaydedecek.Örneğin, anahtar kitap bazı genel ve özel anahtar bilgilerini kaydedecek ve metrikler bağlantıyı kaydedecektir. Bu düğümü ağırlıklı ortalama ile değerlendirmek zaman alır. Adres defteri, bir adres hakkında bir bilgi parçasıdır.Varsayılan uygulama, zaman aşımına sahip bir adrestir.Elbette, zaman aşımı süresi sıfır olarak ayarlanabilir. Son veri deposu, adresi etiketlemek anlamına gelir.

sürü

Swarm'ın libp2p'nin çekirdeği olduğu söylenebilir, çünkü gerçek ağ katmanıdır. Ağ ile ilgili her şey sürü içindedir Adres defteri, bağlantılar ve dinleyiciler burada yönetilir ve bir geri arama mekanizmasına sahip olması gerekir. Bırakın üst katman kayıt olsun, yeni bir akış geldiğinde, bir geçiş işlevine eşdeğer bir kavram çağrılır. Taşıma yönetimi, bir düğümün birden fazla aktarımı destekleyebileceği ve çeviricinin çevirici olduğu anlamına gelir, ancak aslında biraz karmaşık ve bence çok da güçlü! İlgilenen arkadaşlar bakabilir. İçinde üç çevirici vardır, biri eşzamanlı çevirici, biri arkaplan kısıtlamalı çevirici ve diğeri kısıtlı çevirici Bu üç çevirici tüm çevirme sürecinde birlikte çalışacaktır.

O zaman NAT hakkında konuşalım. Herkes buna daha fazla dikkat edebilir. Mevcut uygulamadan, NAT haritalamadan ziyade geçiş olarak adlandırılır. Mevcut uygulama yöntemlerinden biri, bir düğümü başlatmam, önce yakınımdaki NAT aygıtının hangi protokolü çalıştırdığını kontrol etmem ve ardından NAT'nin bir aygıt adresini almam ve ardından dinleme adresinde periyodik bağlantı noktası eşlemesi gerçekleştirmemdir. Ne yazık ki, şu anda iki protokolle (Upnp, NAT-pmp) sınırlıdır ve yalnızca bir NAT katmanı olduğunda başarılı olabilir. Amerika Birleşik Devletleri'ndeki durum Çin'den çok farklı Amerika Birleşik Devletleri'nde sıradan insanlar cep telefonlarından halka açık IP adresleri alabilirler.

ev sahibi

Son olarak, operasyonumuzun özü olan host hakkında konuşmama izin verin.Bir ana bilgisayar altında birkaç parça var. Birincisi, ağ, kimlik hizmeti, kimlik değişimimizin bir işlevi ve sonra nat-manager, az önce bahsettiğim haritalama, conn-manager Bağlantı yönetimidir.

3. Temel sürecin ayrıntılı açıklaması

(Buradaki süreç daha karmaşıktır. Teknik geçmişiniz yoksa ve ilgili kaynak kodunu okumadıysanız, anlamak zor olabilir; gerekirse Xu Xiao ekibiyle iletişime geçebilirsiniz. Burada ayrıntılı bilgi vermeyeceğim)

Üç, libp2p uygulama senaryosu

Uygulama senaryosunun bu kısmından kısaca bahsedeyim.Ne de olsa, libp2p hala sürekli yineleme halinde ve hala geliştirme aşamasında.Bu temelde demo aşamasındaki bir uygulama.

İlki, Nesnelerin İnterneti. P2P bağlantısının, Nesnelerin İnterneti senaryosunun çok önemli bir parçası olduğunu düşünüyorum.Örneğin, güvenlik senaryosunda, güvenlik kamerası ile cep telefonu arasında, doğrudan bağlanmak en iyisidir, aksi takdirde merkezi sunucu Bant genişliği desteklenemiyor. Şu anda, bu senaryo için libp2p, bağlantı üzerindeki bağlantı çalışmasını tamamlamasına yardımcı olabilir ve ek olarak NAT delik delme (şu anda uygulanmıyor, ancak geliştiriliyor), trafik ve RTT istatistikleri, uzun Bağlantı, şifreli aktarım aktarımı, terminal ile aktif olarak iletişim kuran sunucu, vb. Ayrıca libp2p, Araçların İnterneti, insansız araçlar ve çeşitli ağlar arasında sürekli geçiş yapan diğer terminaller gibi terminallere de uygulanabilir ve düğümlere bağlı olarak IP bilgilerinin sürekli değiştiği senaryolarla sonuçlanır Kimlik bağlantı yöntemi ve DHT yönlendirme keşif mekanizması, altta yatan fiziksel bağlantı ile üst katman mantığı arasındaki bağlantıyı etkin bir şekilde koruyabilir.Bilgi çağının kademeli olarak gelişi ve evrimi ile, tüm ağdaki bireyler tarafından üretilen UGC içeriğinin oranı artacaktır. Birçoğu, doğru bilgilerin doğru kişilere nasıl etkili bir şekilde dağıtılacağı (Douyin ve Kuaishou'nun aşağıdaki videoları, canlı yayın platformlarının gerçek zamanlı akışı vb.), Merkezi sunucuların bant genişliği baskısını azaltırken, gelecekteki bir gelişme olacaktır. Önemli rota.

İkincisi ise blok zinciridir. Dağıtım katmanına, çağrı katmanına, taşıma katmanına ve ağ katmanına eşdeğer olan libp2p'yi alt katman olarak kullanan projeler zaten var. Örneğin, filecoin'den şu anda defalarca bahsedildi ve libp2p, "blok veri senkronizasyonu", "dosya aktarımı" ve "düğüm arama" gibi birçok temel bağlantıda kullanılıyor. Ayrıca, olası bir blok zinciri 3.0 geliştiricisi olan Polkadot Polkadot ve Ethereum gibi mevcut ana zincirlerle uyumlu olması için benimsenen heterojen çok zincirli mimari var ve terminal ekipmanının karmaşık senaryoları dikkate alınmalıdır. Temel taşıma katmanı olarak libp2p'yi kullanmayı seçti ve bugün ve gelecekte blockchain teknolojisindeki değişikliklerin neden olduğu uyumsuzluk sorunlarını önlemek için libp2p'nin çeşitli modüllerde yüksek soyutlanmasının getirdiği esneklik ve ölçeklenebilirlikten yararlandı.

Üçüncüsü dağıtılmış sohbettir, yani diğer tarafın bağlantısının veya merkezi sunucunun ne olduğuna bakılmaksızın birbirimize ipfs ağı üzerinden sohbet mesajları göndeririz.

Dördüncüsü dosyaları transfer etmektir.IPFS bununla yapılır, yani uygulama çok geniştir.

LibP2P teknolojisi arkadaşları bu konuda daha fazlasını öğrenebilir ve daha aktif olarak deneyebilir, teşekkürler.

Sonbahar ve kış kıyafetleri | Jiang Shuying'in en iyi 4 kazağı gerçekten çok güzel, özellikle de sonuncusu!
önceki
Yine 63 yaşındaki Zhao Yazhi, zarif ve zarif bir tasarıma bürünüyor! Michelle şık ve rahat ve havaalanı rahat
Sonraki
Bu iki palto, Sun Li tarafından ateşe verildi.Sadece sıcak değil, aynı zamanda modaya uygun, içten içe değiştirilirse daha da güzelleşiyorlar!
Ouyang Nana kampüse döndüğünde, günlük kıyafetlerini paylaşmayı asla unutmaz.Özel sokak stili lezzet dolu.
CCTD CCTD "2017 Yaz Termik Kömür Üretim Alanı Araştırması" Başarıları (1)
Sahnedeki guguk kuşu çok ışıltılıydı, ama özelde böyle giyinerek model figürünü boşa harcadı!
CCTD Geliştirme ve Reform Komisyonu: İlk beş ayda kömür kapasitesinin azaltılması yıllık görevin% 65'ini tamamladı
Prenses Megan yanlış çiçekli etek giymişti ve 10 yaşındaydı. Bu tarz ve rengi giymemeyi unutma!
Dijital para türevlerinin geliştirme beklentileri
Bir kez moda olmak istiyorsanız, bu 4 kurala dikkatlice bakın, bir moda tutkunusunuz!
Para birimi olmayan Hyperledger, Bitcoin ve Ethereum blok zincirleriyle nasıl rekabet eder?
Zara'ya giderseniz süper çok yönlü bu 5 kıyafeti almayı unutmayın!
Moda Hayranı Nihayet Song Qian'ın neden bu kadar seksi olduğunu anlayın, bu bin yıllık pembe elbise çok güzel!
Moda Hayranı Feier on yılda çok değişti ve şimdi daha da tanınmaz durumda!
To Top