DOLAR
48,1173
EURO
56,1017
ALTIN
7.116,07
BIST
14.610,92
Adana Adıyaman Afyon Ağrı Aksaray Amasya Ankara Antalya Ardahan Artvin Aydın Balıkesir Bartın Batman Bayburt Bilecik Bingöl Bitlis Bolu Burdur Bursa Çanakkale Çankırı Çorum Denizli Diyarbakır Düzce Edirne Elazığ Erzincan Erzurum Eskişehir Gaziantep Giresun Gümüşhane Hakkari Hatay Iğdır Isparta İstanbul İzmir K.Maraş Karabük Karaman Kars Kastamonu Kayseri Kırıkkale Kırklareli Kırşehir Kilis Kocaeli Konya Kütahya Malatya Manisa Mardin Mersin Muğla Muş Nevşehir Niğde Ordu Osmaniye Rize Sakarya Samsun Siirt Sinop Sivas Şanlıurfa Şırnak Tekirdağ Tokat Trabzon Tunceli Uşak Van Yalova Yozgat Zonguldak
İstanbul
Az Bulutlu
30°C
İstanbul
30°C
Az Bulutlu
Perşembe Parçalı Bulutlu
30°C
Cuma Hafif Yağmurlu
26°C
Cumartesi Hafif Yağmurlu
26°C
Pazar Parçalı Bulutlu
29°C
SON DAKİKA
Dijital Dünyada Performansın Anahtarı Keyubu Sunucu Altyapı Çözümleri
Bakan Göktaş, Darülaceze Sosyal Yaşam Şehri’nde kreş açılışına katıldı
Akın’dan Pamukçu-Aslıhantepecik Ovasına Can Suyu
ALTI NOKTA KÖRLER DERNEĞİ’NDEN BALIKESİR ÜNİVERSİTESİ ÖĞRENCİLERİNE KONFERANS
İsmail Kaya: Bu Fiyatlar Çiftçiye Destek Değil, Açıkça Üretimden Vazgeçin Mesajıdır
TÜRKİYE ENERJİDE ŞAHLANIYOR!
Balıkesir Büyükşehir Belediye Başkanı Ahmet Akın’ın üretimi ve üreticiyi merkeze alan tarım vizyonu doğrultusunda, Balıkesir Su ve Kanalizasyon İdaresi Genel Müdürlüğü (BASKİ) Manyas Ovası’nda 2026 yılı sulama sezonu öncesinde kapsamlı hazırlık çalışmalarını tamamlandı. Balıkesir’in verimli topraklarında tarımsal üretimini sürdüren çiftçilerin suya zamanında ve düzenli şekilde erişebilmesi amacıyla Balıkesir Büyükşehir Belediyesi’ne bağlı Balıkesir Su ve Kanalizasyon İdaresi Genel Müdürlüğü (BASKİ) tarafından kapsamlı bir çalışma gerçekleştirildi. Bu kapsamda sulama kanalları ve iletim hatları sulama sezonuna hazır hale getirildi. Manyas Barajı Regülatörü’nde gerçekleştirilen sezon açılış programına Manyas Belediye Başkanı Ahmet Duru, Manyas Kaymakamı Mustafa Salih Bayram, Balıkesir Büyükşehir Belediyesi Güney Marmara Bölge Koordinatörü Murat Karakoyun, ilgili daire başkanları, yöneticiler ve çiftçi temsilcileri katılım sağladı. ÇİFTÇİ ODAKLI HİZMETLE ÜRETİM GÜCÜ ARTACAK Balıkesir Su ve Kanalizasyon İdaresi Genel Müdürlüğü’nün yürüttüğü çalışmalar kapsamında, sulama sezonu öncesinde Manyas Ovası Sulama Tesisi’nde bakım ve hazırlık çalışmaları gerçekleştirildi. BASKİ’nin altyapı destekleri sayesinde, tarımın yoğun olarak yapıldığı Manyas’ta sulama sezonunun verimli ve kesintisiz geçmesi için, açık sulama kanallarında makinalı temizlik çalışmaları tamamlandı. Temizlik çalışmalarının ardından gerçekleştirilen yabancı ot mücadelesiyle ana iletim hatlarının sağlıklı ve düzenli su iletimi yapması sağlandı. Kapalı sulama hatlarında ise bakım, kontrol ve teknik inceleme çalışmaları titizlikle yürütüldü. Yapılan çalışmalar sayesinde sulama altyapısının işlevselliği artırılırken, sezon boyunca oluşabilecek olası aksaklıkların önüne geçilmesi amaçlandı. 2 BİN ÇİFTÇİ İÇİN KESİNTİSİZ SULAMA HEDEFİ Manyas Ovası Sulama Tesisi’nden faydalanan yaklaşık 2 bin çiftçinin sulama faaliyetlerini sorunsuz sürdürebilmesi adına tüm teknik ve operasyonel hazırlıklar eksiksiz şekilde tamamlandı. Üreticinin emeğini korumayı öncelik haline getiren BASKİ Genel Müdürlüğü, tarımsal üretime verdiği destekle kırsalda kalkınmayı güçlendirmeye devam ediyor. BAYRAM: “MANYAS’IMIZA HAYIRLI OLSUN” Üreticilerin bol bereketli bir sezon geçirmeleri temennisinde bulunan Manyas Kaymakamı Mustafa Salih Bayram, “Barajımızın kapasitesi şu anda yüzde yüz dolu durumda. Buradan salınan su ile 150 dönüm arazi sulanıyor. Yaklaşık 2 bin çiftçimize hizmet vermekteyiz. Bölge olarak çok güzel bir kış dönemi geçirdik. İnşallah önümüzdeki dönemi de çok güzel bir şekilde geçirerek çiftçimiz için bol bereketli hasat zamanına da kavuşuruz diye ümit ediyoruz. Balıkesir Büyükşehir Belediyemiz ekiplerince buraya toplandık, güzel bir açılış oldu. Manyas’ımıza hayırlı olsun.” dedi. KARAKOYUN: “TARLA YOLLARINI DA YAPIYORUZ” Çiftçilere bereketli bir sezon dileyen Balıkesir Büyükşehir Belediyesi Güney Marmara Bölge Koordinatörü Murat Karakoyun, “Öncelikle Ahmet Akın Başkan’ımıza bütün çiftçilerimiz adına teşekkür ediyoruz. Sadece su vermekle iş bitmiyor. Bütün tarla yollarını yapıyoruz. En yakın zamanda da çiftçilerimizle buluşturacağız. Allah herkesin bereketini artırsın.” ifadelerini kullandı. DURU: “ÇİFTÇİLERİMİZE BOL BEREKETLİ HARMANLAR DİLİYORUM” Balıkesir Büyükşehir Belediye Başkanı Ahmet Akın’a çalışmalar ve desteklerinden dolayı teşekkürlerini sunan Manyas Belediye Başkanı Ahmet Duru, “Çiftçilerimize hayırlı, bol bereketli harmanlar diliyoruz.” dedi.
Başkan Akın’dan Çiftçiye Güçlü Destek
Kurban Bayramı tatilinde müzelere yoğun ilgi
BAŞKAN MİRZA MÜJDEYİ VERDİ: BANDIRMA’YA SANAT SOKAĞI!
TÜMÜNÜ GÖSTER →

Bitcoin Nasıl Yapılır? Blockchain Programlama

15.03.2022 11:51

Merhabalar; önceki yazımızda Blockchain yapısını anlatmıştım ve yazılım tarafına geçiş yapmıştık. Blocklarımızın içeriğini blok sınıfımızı kodlamış ve genesis bloğumuzu oluşturmuştuk. Blok içeriğine index,zaman, bir önceki bloğun hash kodu, mevcut bloğun hash kodu , taşıyacağı data ve mining deneme sayısını eklemiştik. Bu yazımızda Blockchain sınıfımızı oluşturup diğer yeni üreteceğimiz blokları ve birbiri arasındaki bağlantıyı oluşturalım

 

Görselde zorluk seviyemizi 2 yapıp şifremizin ilk iki karakterininde 9 olana kadar hash denemesi yapmış ve 247 denemede istediğimiz genesis Bloğu oluşmuş gözüküyor. Ve genesis bloğumuzun hash kodu “990UX1XIyoZ2A8pL/WiSu7OhG4IwwLsMB22gNMU+DM0=”

Üstteki görselde ikinci blok oluşturuldu ve fark edildiyse index1 olan yani ikinci bloğumuz 9625 deneme de bulundu ve hash kodu üretildi.  Fark ettiyseniz önceki hash kodumuzda yeni bloğumuzda eklenmiş oldu. Şimdi bu işlemlaerimizin kodlamasını yapalım.

 

Blockchain: (blok zincir sınıfımızı kodlayalım)

Imports System

Imports System.Collections.Generic

Imports System.Text

 

Namespace BlockchainMTN

Public Class Blockchain

Public PendingTransactions As IList(Of Transaction) = New List(Of Transaction)()

Public Sub InitializeChain()

Chain = New List(Of Block)()

AddGenesisBlock()

End Sub

 

Public Function CreateGenesisBlock() As Block

Dim block As Block = New Block(DateTime.Now, Nothing, PendingTransactions)

block.Mine(Difficulty)

PendingTransactions = New List(Of Transaction)()

Return block

End Function

 

Public Sub AddGenesisBlock()

Chain.Add(CreateGenesisBlock())

End Sub

 

Public Sub ProcessPendingTransactions(ByVal minerAddress As String)

PendingTransactions = New List(Of Transaction)()

CreateTransaction(New Transaction(Main.TextBox2.Text, minerAddress, Main.TextBox3.Text))

Dim block As Block = New Block(DateTime.Now, GetLatestBlock().sifre, PendingTransactions)

AddBlock(block)

End Sub

 

Public Sub CreateTransaction(ByVal transaction As Transaction)

PendingTransactions.Add(transaction)

End Sub

 

Public Function GetLatestBlock() As Block

Return Chain(Chain.Count – 1)

End Function

 

Public Sub AddBlock(ByVal block As Block)

Dim latestBlock As Block = GetLatestBlock()

block.Index = latestBlock.Index + 1

block.oncekisifre = latestBlock.sifre

block.Mine(Difficulty)

Chain.Add(block)

End Sub

 

Veri doğruluğunu kontrol etmek için IsValid yöntemini kullanıyoruz. Burada extra olarak önceki hash kodumuzu da kontrol edip sistemimizin bloklarının korumasını arttırmış oluyoruz. Olası bir saldırı halinde mevcut blok bozulsa bile, block zincirinin bozulması imkansızdır. Diğer kullacılar etkilenmeyecektir.

Public Function IsValid() As Boolean

For i As Integer = 1 To Chain.Count – 1

Dim currentBlock As Block = Chain(i)

Dim previousBlock As Block = Chain(i – 1)

If currentBlock.sifre <> currentBlock.CalculateHash() Then

Return False

End If

If currentBlock.oncekisifre <> previousBlock.sifre Then

Return False

End If

Next

Return True

End Function

 

 

Public Function GetBalance(ByVal address As String) As Integer

Dim balance As Integer = 0

For i As Integer = 0 To Chain.Count – 1

For j As Integer = 0 To Chain(i).icerik.Count – 1

Dim transaction = Chain(i).icerik(j)

If transaction.Kimden = address Then

balance -= transaction.Tutar

End If

If transaction.Kime = address Then

balance += transaction.Tutar

End If

Next

Next

Return balance

End Function

 

Transaction sınıfında ise taşıyacağımız verinin içeriği bulunmaktadır.  Örneğimizde oluşturduğumuz class da kimden kime ve miktar mevcut.

Namespace BlockchainMTN

Public Class Transaction

Public Property Kimden As String

Public Property Kime As String

Public Property Tutar As Integer

 

 

Transaction Bir sonraki yazımızda WebSocket ile sistemimizi yayınlamayı diğer bilgisayarların ağımıza katılmasını sağlayacağız.

Yazarın Diğer Yazıları
Yorumlar

Henüz yorum yapılmamış. İlk yorumu yukarıdaki form aracılığıyla siz yapabilirsiniz.