Menguasai Blockchain dalam waktu singkat bagian 2 — implementasi PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.

Menguasai Blockchain dalam waktu singkat bagian 2 — implementasi

Purbaryandi

Dalam rangkaian artikel ini, kami akan membangun mata uang kripto yang disederhanakan berdasarkan implementasi blockchain sederhana di Golang dalam waktu kurang dari 5 menit. anda harus menginstal golang terlebih dahulu untuk membuat proyek ini. untuk text editor bisa menggunakan apa saja, disini saya menggunakan kode visual studio.

Menguasai Blockchain dalam waktu singkat bagian 2 — implementasi PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.
sumber: bitdegree

Apakah Anda menginstalnya? Baiklah, ayo kita lakukan!

jika Anda telah membuat proyek, buatlah file main.pergi. oke mari kita coding, pertama kita akan mulai dari main.go Mari kita mulai dengan bagian struct Block dari “blockchain”. Di blockchain, ia memblokir informasi berharga yang disimpan. Misalnya, bitcoin memblokir transaksi toko, inti dari mata uang kripto apa pun. Selain itu, sebuah blok berisi beberapa informasi teknis, seperti versinya, stempel waktu saat ini, dan hash dari blok sebelumnya. Dalam artikel ini kami tidak akan menerapkan blok seperti yang dijelaskan dalam spesifikasi blockchain atau Bitcoin, melainkan kami akan menggunakan versi yang disederhanakan, yang hanya berisi informasi penting. Berikut tampilannya. di sini kita memiliki blok struct:

ketik Blok struct {

Timestamp adalah stempel waktu saat ini (saat blok dibuat), transactions adalah informasi berharga aktual yang terkandung dalam blok, prevhas menyimpan hash dari blok sebelumnya, dan Hash adalah hash dari blok tersebut. Dalam spesifikasi Bitcoin Timestamp, prevhash, dan Hash adalah header blok, yang membentuk struktur data terpisah, dan transaksi (transaction dalam kasus kami) adalah struktur data yang terpisah. Jadi kami mencampurkannya di sini untuk kesederhanaan.

Jadi bagaimana kita menghitung hashnya? Cara penghitungan hash adalah fitur yang sangat penting dari blockchain, dan fitur inilah yang membuat blockchain aman. Masalahnya adalah menghitung hash adalah operasi komputasi yang sulit, memerlukan waktu bahkan pada komputer yang cepat (itulah sebabnya orang membeli GPU yang kuat untuk menambang Bitcoin). Ini adalah desain arsitektur yang disengaja, yang mempersulit penambahan blok baru, sehingga mencegah modifikasi setelah ditambahkan. Kami akan membahas dan menerapkan mekanisme ini di artikel mendatang.

Untuk saat ini, kami hanya akan mengambil bidang blok, menggabungkannya, dan menghitung hash SHA-256 pada kombinasi gabungan tersebut. Ayo lakukan ini Newhash Metode:

func NewHash(waktu waktu.Waktu, transaksi []string, prevhash []byte) []byte {

Selanjutnya, mengikuti konvensi Golang, kita akan mengimplementasikan fungsi yang akan menyederhanakan pembuatan blok dan menyelesaikannya:

func Blok(transaksi []string, prevhash []byte) *Blok {

kami terus membuat fungsi cetak. fungsi print berguna untuk mencetak isi setiap blok yang melakukan transaksi. ini kodenya:

func Cetak(blok *Blok) {

Dan fungsi transaksi untuk transaksi cetak :

func Transaksi(blok *Blok) {

setelah semua fungsi yang dibutuhkan sudah selesai maka kita akan menggunakannya pada fungsi utama :

fungsi utama() {

oke semua kode sudah selesai kita tulis. mari kita jalankan dengan mengetik go run main.go di terminal. Keluaran :

Kesimpulan

Kami membuat prototipe blockchain yang sangat sederhana: ini hanyalah serangkaian blok, dengan setiap blok memiliki koneksi ke blok sebelumnya. Blockchain sebenarnya jauh lebih kompleks. Di blockchain kami, menambahkan blok baru itu mudah dan cepat, namun di blockchain nyata, menambahkan blok baru memerlukan beberapa pekerjaan: seseorang harus melakukan beberapa perhitungan berat sebelum mendapatkan izin untuk menambahkan blok (mekanisme ini disebut Proof-of-Work). Selain itu, blockchain adalah database terdistribusi yang tidak memiliki pengambil keputusan tunggal. Dengan demikian, blok baru harus dikonfirmasi dan disetujui oleh anggota jaringan lainnya (mekanisme ini disebut konsensus). Dan belum ada transaksi di blockchain kami!

Source: https://medium.com/@purbaryandi/mastering-blockchain-in-no-time-part-2-implementation-433dc7967fe8?source=rss——cryptocurrency-5

Stempel Waktu:

Lebih dari Medium