Anda di halaman 1dari 3

membuat blockchain part1

buat class bernama block yang berisi constructor yang berisi inisailisasi atau mempersiapkan data untuk
objek yang akan di gunakan

isi dari konstrucktor itu adalah

1.index :dimana block tersebut menempati rantai

2 timestamp :kapan block tersebut di buat

3.data :data yang ingin di simpan di dalam block, biasanya berupa nominal atau angka dan siapa
pengririm atau penerimanya

4.previoushash :string yang berisi hash sebelum hash saat ini. sangat penting karena berkaitan dengan
intergritas dalam blockchain

buat juga objek bernama hash untuk mengkalkulasikan hash

buat method di dalam kelas tersebut dengan nama calculatehash untuk menghitung nilai hash pada
block di atas, kalkulasi di ambil dari block

lalu di jalankan dengan fungsi hash untuk mendefinisikan block tersebut pada blockchain .

Gunakan sha-256 untuk fungsi hash. Secara default Fungsi hash tidak ada di javascript sehingga harus di
tambahkan librarynya. Cara menambahkannya yaitu download dulu node.js lalu install

Setelah selesai buka terminal pada visual studio code lalu ketikkan “npm install—save crypto-js”

Setelah terinstall anda memiliki fungsi hash yang dapat di gunakan.

Untuk dapat menggunakan sha 256, deklarasikan dengan variabel constant sehingga terhubung ke
library dan dapat di gunakan.

Pada class block, deklarasikan calculatehash lalu kalkulasikan dengan sha256 constructor yang telah di
buat, jangan lupa untuk mengubah object pada “data” untuk di ubah ke string. Tujuannya agar “data”
dapat di baca dari web server sehingga data harus berupa string. Lalu di lanjutkan dengan
mengembalikan hasil kalkulasi dari library tersebut ke string.

Kita dapat melanjutkan fungsi hash dengan memasukan deklarasi calculatehash yang telah di buat ke
object hash . Sehingga saat kita membuat block, kita melalui seluruh parameter sekaligus
mengkalkulasi hash dari block tersebut.
Buatlah class untuk blockchain lalu berikan konstructor pada class tersebut. Fungsi konstruktor untuk
menginisialisasi blockchain itu.

Buatlah property chain didalam class tersebut lalu jadikan array kosong dengan dua kurung siku.

Block pertama pada blockchain dinamakan genesis block. Block pertama ini harus di tambahkan secara
manual. Sehingga kita harus membuat method untuk membuat genesis block.

Lanjutkan dengan membuat return untuk mengembalikan nilai pada new block. Tambahkan , index,
tanggal , dan data yang berisi “Genesisi Block” dan previous block di isi dengan kosong, karena belum
ada block sebelumnya yang telah di buat.

Pada property chain yang di jadikan array kosong tadi, isilah dengan creategenesisis block.

Tambahkan juga method getlatestblock dan addblock yang akan berguna di masa mendatang.

Tambahkan newblock pada addblock

Pada getlatestblock untuk mengembalikan nilai terakhir dari chain pada elemen terakhir pada
panjangnya ke -1.

Pada newblock yang bertugas untuk menambahkan block baru ke chain, namun sebelum menambahkan
block baru tersebut harus melakukan sesuatu sebelum mendorong hasil ke array. Hal yang pertama kali
di lakukan adalah mengatur privioushash pada property newblock ke block terakhir pada rantai, setelah
itu kita mendapatkan hash pada block tersebut.

Selanjutnya kita atur block dan hitung kembali hashnya sehingga tiapkali kita mengganti property pada
block maka fungsi hashnya juga berubah.jadi newblock.hash sama dengan newblock.calculatehash.
sehingga hash terupdate.

Setelah itu masukkan newblock ke chain;

Cara mengetest

Buat instance dari blockchain

Gunakan variabel let untuk savjeecoin sebagai new blockchain lalu

tambahkan juga addblock ke savjeecoin dan isi variabel dari block tersebut seperti index 1 ,timestamp
berupa tanggal dan objek data dapat berupa apasaja,namun contoh disini adalah nominal yang ingin di
hash kan

untuk melihat blockchain seperti apa kita dapat memanggil dengan consol.log() untuk mengeprint
variabel yang telah di deklarasikan sebelumnya. Dan lakukan stringify agar nilai hash mudah di
baca,dilanjutkan dengan savjeecoin, null , 4spasi untuk memformat kebawah.

Setelah itu simpan file lalu buka terminal dan jalankan node main.js enter. Akan muncul objeck chain
yang berisi array dari seluruh block dari chain yang kita miliki. Dan setiap block mereferensikan block
sebelumnya yaitu block previoushash baru yang sama persis seperti dengan hash lama sehingga benar.
Blockchain sangat baik karena jika sebuah block telah di tambahkan, maka dia tidak dapat di ganti tanpa
merusak chain selanjutnya. Tapi pada kodingan di atas belum ada cara untuk memverifikasi integritas
dari blockchain sehingga mari tambahkan method baru di bawah addblock dengan nama ischainvalid,
dia akan memberikan output true jika chain tersebut valid dan wrong jika chain tersebut salah

Anda mungkin juga menyukai