Skip to content

About

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoRa Chain

GoRa Chain adalah prototipe blockchain Proof-of-Work (PoW) yang ringkas dan ditulis dengan Go. Proyek ini dibuat untuk eksperimen dan pembelajaran — bukan untuk penggunaan produksi secara langsung.

Daftar Isi


Mulai Cepat

Persyaratan: Go 1.20 atau lebih baru.

  1. Menginisialisasi modul
go mod init gora-blockchain
  1. Ambil dependensi:
go mod tidy
  1. Jalankan node (port default 8080, dapat diubah):
go run cmd/node/main.go --port=8080

Atau build binary terlebih dahulu:

go build -o gora-node ./cmd/node
./gora-node --port=8080

Saat pertama kali dijalankan, node akan:

  • Membuat seed dompet dan menyimpannya sebagai hex di node_gora.key (working directory).
  • Membuat genesis block jika belum ada.
  • Menginisialisasi likuiditas DEX (jika fitur aktif).
  • Memulai loop penambangan.

Struktur Repository

  • cmd/node/ — entrypoint aplikasi (main.go)
  • core/ — logika blockchain, penambangan, dan DEX
  • api/ — handler HTTP dan router
  • wallet/ — pembuatan & pemuatan pasangan kunci (keypair)
  • utils/ — helper (crypto, logger, address generation)
  • chaindata_* — direktori LevelDB per instance

Dompet & File Kunci

  • Dompet menggunakan seed Ed25519 (32 bytes). Seed disimpan sebagai hex di file node_gora.key secara default.
  • Saat ini implementasi menggunakan nama file tetap node_gora.key di working directory node.

Penyimpanan Data (LevelDB)

Node menyimpan data chain menggunakan LevelDB ke folder seperti chaindata_<port> atau chaindata_gora. Direktori ini bisa bertumbuh besar; gunakan disk dengan I/O dan ruang yang memadai.

API HTTP (Ringkasan)

Node menyediakan API HTTP pada http://localhost:<port> (default 8080). Endpoint utama (lihat implementasi di api/):

  • GET /rpc/stats — statistik jaringan (height, total tx, supply)
  • GET /rpc/chain — daftar blok terbaru
  • GET /rpc/txs — transaksi terbaru (melewati blok kosong)
  • GET /rpc/balance?address=<addr> — cek saldo
  • GET /rpc/history?address=<addr> — riwayat transaksi untuk alamat
  • POST /rpc/send — menyiarkan transaksi (JSON body)
  • POST /rpc/validate — validasi format private key / derivasi alamat

Contoh permintaan:

curl "http://localhost:8080/rpc/balance?address=rA..."

Pengembangan

  • Kompilasi seluruh repo: go build ./...
  • Tidak ada unit test bawaan saat ini — pertimbangkan menambahkan test untuk wallet dan core.

Catatan Keamanan

  • node_gora.key menyimpan seed yang menghasilkan private key node. Simpan dengan aman dan jangan bagikan.

Kontribusi

Kontribusi diterima. Silakan buka issue atau kirim pull request dengan deskripsi perubahan dan test bila memungkinkan.

Lisensi

Proyek ini dilisensikan di bawah Lisensi MIT.


About

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages