bvm-sdk
v1.2.5
Published
Modular Blockchain Framework in TypeScript – Build custom chains with reusable modules
Downloads
1,453
Maintainers
Readme
BVM-SDK
Modular Blockchain Framework in TypeScript
BVM-SDK adalah toolkit open-source untuk membangun blockchain modular dengan cepat.
Mirip konsep Cosmos SDK atau Substrate, tapi dibuat lebih mudah diakses menggunakan TypeScript — cocok untuk prototipe, simulasi ekonomi, wallet/explorer, dan pengembangan client-side.
Catatan penting (2026 update):
Semua modul core telah diperbaiki secara signifikan:
- Async I/O penuh
- Persistence pakai LevelDB (BVMStore)
- Keamanan dasar ditingkatkan (canonical serialization, timeout, validation)
- Konsistensi nama class & export
- Cross-platform & lebih scalable untuk testnet kecil
SDK ini bukan untuk jalankan mainnet production (karena keterbatasan Node.js/TS di validator node).
Untuk mainnet real, migrasikan modul critical (Consensus, Staking, Validator, P2P) ke Cosmos SDK (Go) atau Substrate (Rust), sementara BVM-SDK tetap jadi client SDK & tooling layer.
Fitur Utama
- Modular design — pakai hanya modul yang dibutuhkan (Bank, Staking, NFT, DEX, Bridge, VM, dll.)
- Ekonomi configurable — halving, max supply, reward, fee via
bvm-config.ts - Persistence LevelDB — state aman & cepat (bukan JSON file lagi)
- Wallet generator + HTML viewer — tampilan balance & NFT sederhana
- P2P discovery sederhana — bootstrap & gossip peer
- Dashboard & API — monitoring node via Express
- Bridge prototype — bridge out/in antar chain (proof placeholder)
- Finality manager — simulasi L2 ke L1 checkpoint
- Validator & Miner — validasi blok + PoW sederhana
- TypeScript-first — type-safe, mudah di-extend
Instalasi
npm install bvm-sdk
# atau yarn add bvm-sdk
# Quick Start
# generate wallet
import { generateWalletWeb } from 'bvm-sdk';
await generateWalletWeb({
outputDir: './my-wallet-backup', // opsional
// password: 'rahasia123' // nanti untuk enkripsi (belum full)
});
# Membuat my-wallet.json dan wallet.html → buka di browser untuk lihat saldo & NFT.2. Jalankan Dashboard & P2Pts
import { BVMDashboard, BVMStore, P2PDiscovery } from 'bvm-sdk';
const store = new BVMStore();
const p2p = new P2PDiscovery(['your-bootstrap-ip:3000']);
const dashboard = new BVMDashboard(store, p2p, 3001);
dashboard.start(); // http://localhost:3001
Akses /health, /peers, atau POST ke /join untuk bootstrap.
# Contoh transfer sederhana
import { BankModule, BVMStore } from 'bvm-sdk';
const store = new BVMStore();
const bank = new BankModule(store);
await bank.credit('BVM1abc123...', 1000, 'REWARD');
const balance = await bank.getBalance('BVM1abc123...');
console.log(balance); // 1000
