Steemit Blockchain Takımı Güncellemeleri AppBase, RocksDB, Bandwidth, HF20, SMTs ve Daha Fazlası!

in #cointurk6 years ago

Bugünün @steemitblog yazısı Steemit’in Blockchain ekibi tarafından size aktarıldı.
Son birkaç aydır aşırı derecede meşguldük ve üzerinde çalıştığımız bazı şeyleri sizlerle paylaşmak istedik.Bu gönderi, geliştirilmiş bir bant genişliği formülü, AppBase, RocksDB ve Hardfork 20 (HF20) hakkındaki güncellemelerin yanı sıra Smart Media Token (SMT'ler) için son gelişmelere dair planlarımızı da içeriyor.

Ölçeklenebilirlik

Önceki ölçeklenebilirlik yazımızdan birçoğunuzun bildiği gibi, Blockchain ekibi son bir yıl içinde ölçeklenebilirliğe odaklanmış durumda.Bu tür değişikliklerin yeni özellikler ve platform geliştirmeleri kadar heyecan verici olmadığını biliyoruz, ancak blockchain'in 100x veya 1.000x'e kadar ölçeklendirmeye hazır olmasını sağlamak, aslında o dereceye kadar ölçeklendirmeden önce yapılması gereken önemli bir şey. Gerçekten gerekli olana kadar ölçeklenebilirliği ihmal etmek, felaket için bir reçetedir.

AppBase

AppBase, gelecekteki tüm ölçeklendirme gereksinimlerimizi karşılamak için sağlam bir temel sağlar ve aynı zamanda üçüncü taraf uygulama geliştiricileri, tanıkları ve değişimleri ile birlikte büyümek için kaynak gereksinimlerini yönetirken bize izin vererek platformun büyümesini sağlar.
Bunu, Steem blockchain'in birçok bileşeninin, özel eklentiler olarak ek konsensus olmayan blok zincirler oluşturarak modüler hale gelmesini sağlayarak yapar. Bu eklentiler, tüm blok zincirinin tekrar oynatılmasını gerektirmediğinden daha hızlı bir şekilde güncellenebilir.
AppBase için ön sürüm yaklaşık üç ay önce duyuruldu ve bu duyurudan beri topluluğun yaptığı tüm testleri takdir ediyoruz .Ayrıca, kapsamlı olarak test ediyoruz ve tespit edilen / bildirilen bazı küçük sorunları çözmek için çeşitli değişiklikler üzerinde çalışıyoruz.Resmi 19.4AppBase sürümünün, tanıklara ve düğüm operatörlerine, üretimde güvenle kullanmaya başlamaları için hazır olmasına çok yakınız ve hazır olur olmaz yayınlayacağız.

RocksDB

Steem Ölçeklenebilirliği Keşfetmekyazısında belirttiğimiz gibi, steemd verilerini daha verimli bir şekilde depolamanın çeşitli yollarını araştırmak için çok zaman harcıyoruz.Bu yaklaşımlardan biri RocksDB adlı bir teknoloji kullanıyor.RocksDB çözümüne ile ilerlemeye karar verdiğimizi ve RocksDB'yi kullanmak için “hesap geçmişi” eklentisini başarıyla dönüştürdüğümüzü duyurmaktan memnuniyet duyuyoruz.
RocksDB, hızlı, düşük gecikmeli depolama için optimize edildiğinden diske okuma / yazma yaparken gecikmeyi en aza indirebilecek gelişmiş bir önbellek katmanına sahip, disk üzerinde hızlı bir veri deposudur.Çok sayıda web-ölçeğinde (Facebook, Yahoo, LinkedIn) üretim sistemlerinde kullanılan RocksDB, LevelDB'ye dayanıyor, fakat birçok CPU çekirdeği ve SSD depolamasını girişe/çıkışa bağlı iş yükleri için kullanma becerisi sayesinde daha yüksek performansa sahiptir.Örneğin MyRocks'taki kullanımı, daha az SSD depolama kullanımı, daha uzun SSD dayanıklılığı ve sorguları ele almak için daha fazla kullanılabilir IO kapasitesine yol açtı.
Önceki hesap geçmişi uygulamasına kıyasla:

• Bir hesap geçmişi düğümü, tüm durum dosyasını RAM'de tutmak yerine, bir nVME SSD sürücüsünde durum dosyasını depolayarak verimli bir şekilde çalıştırılabilir.Bu, daha önce kullanmak zorunda kaldığımız 488 GB durumunun yerine hesap geçmişi düğümlerini 32-64 GB RAM sunucularındaçalıştırmamıza izin verdi.
• Bir hesap geçmişi düğümü, daha önceki uygulamalarda aldığı birkaç güne kıyasla yaklaşık 10 saat içinde yeniden dizine eklenebilir.
• RocksDB'nin yerleşik sıkıştırması olduğu için durum dosyası çok daha küçüktür.
Bu değişikliklerin geliştirme/kademelendirmesafhalarında kapsamlı bir şekilde testlerini tamamladık ve üç haftadan biraz fazla bir süredir üretimdeki değişiklikleri çalıştırmaya başladık.Son üç hafta içinde api.steemit.com uç noktasından hesap geçmişi verilerini sorgulayan kullanıcılar, verilerini RocksDB eklentisinden alıyor.
Hesap geçmişi, gereksinimlerimize uygun olup olmadığını belirlemek için RocksDB teknolojisi testetmek için kullanıldı.Bu testin sonuçlarından çok mutluyuz ve bellek eşlemeli dosyalar yerine RocksDB'ye dayanan Chainbase için bir yedek anahtarlama üzerinde çalışıyoruz.Bu, steemd performansını önemli ölçüde artıracak ve bu geçişi tamamlamak için çok heyecanlıyız.

Bant Genişliği

Blockchain'i gittikçe daha fazla kullanıcıya ölçeklemeye devam ettikçe, bu kullanıcıların tümünde kaynak kullanımını ayırmak için kullandığımız bant genişliği formülü daha da büyük önem kazanıyor.Şu anda kullandığımız bant genişliği formülü şimdiye kadar kullandığımız kullanım seviyesi için yeterliydi, ancak iyileştirme için çok yer var.Amacımız, yeni kullanıcıların, steemit.com gibi Steem ile çalışan uygulamaları kullanarak harika bir deneyime sahip olmalarına izin verirken, aynı zamanda ağın kaynaklarının makul olmayan bir miktarını kullanmasını veya ağda gereksiz kullanım yapmasını engellemek arasında doğru dengeyi bulmayı denemektir.Ayrıca, belirli kullanım seviyeleri için ne kadar Steem Gücünün gerekli olduğunu anlamak için arkasındaki zihinsel modeli basitleştirmek istiyoruz.

Mevcut bant genişliği formülümüz, işlemin büyüklüğüne bağlı olarak bir işlemin maliyetine biraz işlenmemiş bir yaklaşım getiriyor.Boyut önemli bir ölçü olsa da, geliştirilmiş bant genişliği formülü, bir işlemin ağ üzerinde yer alabileceği tüm farklı kaynak kısıtlamalarını dikkate almaya çalışmalıdır.

İşlemleri birkaç farklı faktör üzerindeki etkilerine göre sınıflandırmak için yollar araştırıyoruz.Tüm bu unsurları göz önünde bulundurarak, bir işlemin gerçeğe uygun maliyetinin aşağıdaki maddelerle çok daha iyi bir şekilde temsil edilmesini umuyoruz:

• Blockchain geçmişi boyutu
• Yeniden indeksleme süresi
• Durum dosya boyutu
• Hafıza Kullanımı
• Disk iops
• Ağ bant genişliği
Şu anda, istatistiklerin steemd içerisinde ölçülmesini sağlayan yeni bir araç olan StatsD'yi entegre etmeye çalışıyoruz. Böylece, daha iyi ölçümler elde edebiliriz.Ayrıca, bu ölçümlere dayanarak kullanımı paylaştırmak için kullanılabilecek farklı bant genişliği uygulamalarını da araştırıyoruz.
Gerekli tüm verileri bir araya getirip en iyi bant genişliği algoritması tasarımını tamamladıktan sonra, tüm ayrıntıları toplulukla paylaşacağız.

Çeşitli değişiklikler

Güvenlik Değişiklikleri

Ekip, Steem 0.19.3 altında yayımlanan ağın istikrarını geliştirmek için çeşitli güvenlik yamaları üzerinde çalışmıştır.Şahitlerin ve düğüm işleticilerinin çoğunluğu bu değişiklikleri çoktan aldılar ve onları üretimde kullanıyorlar.Herhangi bir düğüm operatörü hala 19.2sürümünü çalıştırıyorsa, bunların 19.3'e yükseltilmesi önerilir.

cli_wallet Testleri

Cli_wallet, birçok şahit, borsa ve uygulama geliştiricisi tarafından Steem blockchain ile arayüz kurmak için kullanılan bir araçtır.Blockchain mimarisinde değişiklikler (AppBase ve RocksDB gibi) yapmaya devam ettikçe, kodun yeni sürümünün, eski sürümle geriye dönük olarak uyumlu kalmasını ve cli_wallet ile herhangi bir işlevselliği bozmamasını sağlamak için kullanılabilecek bir test paketi tasarlamanın önemli olduğunu hissettik.

SMT'ler piyasaya sürüldüğünde, cli_wallet aracının daha önce var olan işlevlerle geriye dönük olarak uyumlu kalacağını, ancak yeni SMT işlevselliğini desteklemek için yükseltilmeyeceğini belirtmek gerekir.O zamandan önce yeni bir araç(ve nasıl kullanacağına dair talimatlar) sunacağız. Bu, cli_wallet'in yerine tam olarak yer alacak ve komut satırı üzerinden yeni SMT işlevselliğini destekleyecek.

Kod stili klavuzları

GitHub 2366 maddede kod stili belgesi üzerinde çalışıyoruz, böylece geliştiricilerin stil kararlarını bilgilendirmek için bir klavuzubulunur ve kod tabanı birleşik bir stil kuralları kümesine sahiptir.Bunlar, steemd'ye katkı sağlayan herhangi bir geliştirici için yararlı olacak ve kaynak kodunu temiz ve güvenilir tutmaya yardımcı olacaktır.

İşlem teyidi API

Nadir durumlarda, Steemit.com'da yapılan bir işlemin işe yaradığı, ancak birkaç saniye sonra ortadan kaybolacağı anlaşılmaktadır.Mevcut işlem gönderim mantığının bozulduğu ve bu istenmeyen duruma neden olan işlemin kabul edilmeyen bir blok haline getirilmemesiyle sonuçlanan bazı nadir durumlar vardır.
Bir işlemin durumunu daha iyi belirlemek için yeni bir API üzerinde çalışıyoruz.Sadece mevcut işlem iletme işleminden daha verimli değildir, ancak steemit.com'un bu senaryoları algılamasına ve eylemlerinizin blok zincirde olmasınaemin olmayısağlar.
Bunun tartışması bu platformda devam ediyor ve amacımız yakın zamanda bir tasarımın sonuçlandırılmasıdır, bu yüzden uygulama üzerinde çalışmaya başlayabiliriz.

Hardfork 20

Ölçeklenebilirlik ile ilgili çözümlere odaklandığımız için, Hardfork 20 bir süre için arka planda yer aldı, ancak ön plana geri koymanın zamanı geldi.Henüz hardfork için kesin bir tarihimiz yok, ancak 2018 yılının ilk çeyreğini hedefliyoruz.Geliştirme oldukça HF20 hakkında daha fazla ayrıntı paylaşılacaktır.

SMT’ler

SMT'ler üzerinde çalışmak üzereayrılmış birkaç tam zamanlı geliştiricimiz var ve çok fazla ilerleme kaydediliyor.Şimdiye kadar üzerinde çalışılan değişikliklerin çoğu oldukça teknik olmasına rağmen, temelde birden fazla jeton için çalışmak üzere (tek bir jeton STEEM için tasarlanmış olan) steemd'deki mevcut işlevselliğin çoğunu güncelleme amacına hizmet ediyor, halen şekillenmeye başlayan birçok ilginç işlevsellik var.

Şimdiye kadar tamamlanmış olan ilginç değişikliklerden 10 tanesi:

• Github 1508'de ilk çalışma yeni bir SMT'nin oluşturulmasına izin vermek için yapıldı.
• Github1653 ve 1729'da, tüm SMT oluşturma mantığının beklendiği gibi çalışmasını sağlamak için test senaryoları oluşturuldu.
• Github 1683’de, SMT'lerin iç pazara entegre olması için temel atılmıştır, böylece kullanıcılar SMT'ler için STEEM ve STEEM için SMT'leri alım-satım yapabilir.
• Github 2029’da, SMT Pazar Yapımcılarının iç pazarda çalışması için kullanılacak yapı tanımlanmıştır.
• Github1682'de, hesaplar arasında jeton göndermek için kullanılan aktarım işlemi SMT'leri destekleyecek şekilde güncelleştirildi.
• Github1843'teki yazılar/yorumlar, kullanıcıların yazı/yorumun uygun olduğu (STEEM'e ek olarak) en fazla iki SMT jetonu belirtmelerine izin verecek şekilde güncellendi.
• Github1856'da, oy operatörü, çoklu oy hakkı varlıkları (SMT) içeren yazılar/yorumlardaki oylama işlemlerini desteklemek için güncellendi.
• Github1896'da kullanıcıların SMT ödemeleri içeren bir yazı/yorumdan sonra jeton talep etme işlemi gerçekleştirildi.
• Github2056’da, bir ICO'yakatılanların (isteğe bağlı olarak), bir ICO'ya katılmalarını iptal etmek ve ICO lansman tarihi ertelenirse geri ödeme almak için kullanabilecekleri smt_refund_operationiçin destek eklendi.
• Github2021, 2160 ve 2085'de SMT'lerin (SMT Gücü) “sahip olunması” için destek eklendi.
Daha Fazla Teknik Detaylar
Teknik detaylarla ilgilenenler için, ekibimizkodlama işlemlerine ek olarak önemli tasarım kararlarına da çok fazla zaman harcıyor.Bu tartışmaların çoğu GitHub'da belgelenmiştir.

Bu konuda, SMT yayınımlarını ve Market Yapıcı işlemleri gibi otomatik işlemlerin nasıl ele alınacağını tartıştığımız bir örnek bulunmaktadır.Başka bir ifadeyle, 2212'de, tamsayı fazlalıkları ve yuvarlama hatalarını önlemek için SMT yerinin uç durumlarını ele aldık.

Test Ağı

Herkesin SMT'lerin en kısa sürede tamamlanması ve üretime geçmesi için istekli ve heyecanlı olduğunu biliyoruz.Bizde öyleyiz! Özel olarak kurulan ekibimiz bunun gerçekleşmesi için saatlerce çalışıyor.Elde etmeyi hedeflediğimiz ilk önemli kilometre taşı, geliştiricilerin uygulanan bazı özelliklerle oynamaya başlayabilecekleri bir SMT test ağına (“Forerunner” denir) başlamak ve çalıştırmaktır.
İlerleyişimiz hakkında size bilgi vermeye devam edeceğiz ve Forerunner test ağı kullanıma hazır olduğunda sizi bilgilendireceğiz.

The Steemit Blockchain Ekibi

Orjinal Makale : Steemit Blockchain Team Update: AppBase, RocksDB, Bandwidth, HF20, SMTs, and more!

Sort:  

Bir düzeltme yapmalıyım: Hard Fork 2018 birinci çeyrek değil 3. çeyrek başı.

Teşekkürler.

Coin Marketplace

STEEM 0.30
TRX 0.11
JST 0.033
BTC 64271.38
ETH 3157.43
USDT 1.00
SBD 4.25