BAB I
1.1 Vexanium
Vexanium adalah public blockchain generasi selanjutnya yang dirancang untuk aplikasi
terdesentralisasi (Dapps) dan penetrasi ritel. Vexanium akan membuat blockchain dapat
diimplementasikan untuk meningkatkan berbagai industri.
Vexanium berfokus untuk menyelesaikan hambatan dan titik-titik kritis dari teknologi blockchain
seperti kecepatan, skalabilitas, kegunaan, dan fleksibilitas. Teknologi pemrosesan paralel dan
metodologi komunikasi asinkron dari Vexanium memungkinkan Dapps untuk beroperasi dan
bertransaksi dengan memproses secara bersamaan tanpa harus menambah beban dari
jaringan.
Biaya transaksi di blockchain Vexanium bersifat gratis. Struktur kepemilikan Vexanium
memungkinkan penggunaan gratis oleh pengguna dan menghilangkan biaya transaksi.
Pengembang proyek Blockchain diizinkan untuk menggunakan sumber daya secara
proporsional dengan kepemilikan mereka alih-alih model bayar per transaksi standar.
Arsitektur blockchain Vexanium memiliki potensi skalabilitas hingga jutaan transaksi per detik.
Menggunakan teknologi Vexanium, penyebaran proyek blockchain akan lebih cepat, lebih
mudah dan lebih terjangkau. Pelajari tentang alat Vexanium yang tersedia, konsep inti dan fitur
teknis yang mendasarinya.
1.2 Platform dan Toolchain
Platform Vexanium terdiri dari komponen-komponen dan toolchain berikut :
I. Nodeos (node + EOSIO = nodeos): inti daemon Vexanium. Plugin dapat digunakan
untuk mengkonfigurasi nodeos untuk dieksekusi dengan berbagai fitur. Nodeos
menangani semua jaringan peer-to-peer, penjadwalan kode kontrak, dan lapisan
kegigihan data blockchain. Untuk lingkungan pengembangan, nodeos juga dapat
digunakan untuk mengatur jaringan blockchain node tunggal;
Webinar Cara Membuat Smart Contract di Blockchain VexaniumII.
II. Cleos (CLI + EOSIO = cleos): command line interface untuk berinteraksi dengan
blockchain dan mengelola dompet;
III. Keosd (key + EOSIO = keosd): komponen yang menyimpan kunci Vexanium dengan
aman di dompet;
IV. VEX.CDT: toolchain untuk WebAssembly (Wasm) dan seperangkat alat untuk
memfasilitasi penulisan smart contracts untuk platform Vexanium.
Hubungan dasar antara komponen-komponen ini diilustrasikan dalam diagram berikut:
Note:
Vexanium juga menyediakan frontend library untuk pengembangan javascript yang disebut
VexaniumJS bersama dengan Swift dan Java SDKs untuk pengembangan aplikasi mobile.
1.3 Cleos
Cleos adalah command line interface yang memungkinkan pengembang untuk menggunakan,
menguji, dan mengkonfigurasi nodeos serta Smart Contract Vexanium.
BAB II
KONSEP INTI
2.1 Accounts, Wallets dan Permissions
Webinar Cara Membuat Smart Contract di Blockchain Vexanium2.1.1 Account
Account adalah nama yang dapat dibaca manusia yang disimpan di blockchain. Biasa
digunakan untuk mentranfer dan menerima transaksi. Account ini bisa diibaratkan sebagai
nomor rumah.
2.1.2 Public key
Fungsi Public Key ini sebagai alamat dan biasa di gunakan saat melakukan transaksi.
2.1.3 Private key
Private key ( Kunci ) brfungsi sebagai kunci untuk mengakses account biasanya di gunakan
saat kita melakukan transaksi . Pada dasarnya account public key dan private key mereka saling
terkait, ibarat kita mempunyai rumah, public key sebagai alamat, account sebagai nomor
rumah, dan key sebagai kunci rumahnya.
2.1.4 Wallets
Wallet digunakan untuk menyimpan (key) kunci yang mungkin dikaitkan dengan 1 (satu) akun
atau lebih.
2.1.5 Smart Contract
Smart Contract adalah perjanjian antara dua orang dalam bentuk kode komputer. Smart
contract berjalan di jaringan blockchain, sehingga mereka disimpan di database publik dan tidak
dapat diubah.
BAB III
SYSTEM RESOURCES
Webinar Cara Membuat Smart Contract di Blockchain Vexanium3.1 RAM
RAM dalam Blockchain berbasis Vexanium adalah salah satu sumber daya sistem penting yang
dikonsumsi oleh akun blockchain dan smart contract. RAM bertindak sebagai penyimpanan
permanen dan digunakan untuk menyimpan nama akun, izin, saldo token, dan data lainnya
untuk akses data on-chain yang cepat. RAM perlu dibeli dan tidak didasarkan pada staking
karena ini adalah sumber daya persisten yang terbatas.
3.2 CPU
CPU, dalam blockchain berbasis Vexanium, mewakili waktu pemrosesan suatu tindakan dan
diukur dalam microseconds (μs). CPU adalah sumber daya sistem sementara dan berada di
bawah mekanisme staking Vexanium.
3.3 Network (NET)
Selain CPU dan RAM, NET juga merupakan sumber daya yang sangat penting dalam
blockchain berbasis Vexanium. NET adalah bandwidth. Jaringan NET juga merupakan sumber
daya sistem sementara dan berada di bawah mekanisme staking Vexanium.
BAB IV
TECHNICAL FEATURES
Webinar Cara Membuat Smart Contract di Blockchain VexaniumBlockchain Vexanium menggunakan bahasa pemrograman C++. Untuk bahasa pemrograman
kontrak pintarnya. C++ adalah bahasa pemrograman yang paling banyak dipelajari di
universitas dan sudah memiliki banyak library. C++ dikenal sebagai "bahasa tingkat rendah"
yang memberikan kontrol besar bagi pengembang dalam hal menjalankan kode dan mengelola
sumber daya. C++ memiliki keunggulan dalam kecepatan, efisiensi dan keamanan dan banyak
digunakan dalam aplikasi "kinerja kritis".
Kode C++ dikompilasi dalam WebAssembly (WASM) dan kontrak pintar dijalankan oleh mesin
virtual WASM. WebAssembly adalah format biner tingkat rendah untuk web. Ini bukan bahasa
pemrograman yang akan Anda tulis.
https://developer.mozilla.org/en-US/docs/WebAssembly/Concepts
https://flaviocopes.com/webassembly/
Vexanium menggunakan C++ sebagai bahasa pemrograman kontrak pintar. C++ adalah
bahasa pemrograman yang populer di kalangan pengembang di seluruh dunia. Oleh karena itu,
setiap pengembang yang terbiasa dengan C++ tidak diharuskan mempelajari bahasa
pemrograman baru dan lebih dari siap untuk mempelajari API Vexanium, yang akan dibahas
dalam seri onboarding ini. Setelah terbiasa dengan API Vexanium telah tercapai, pengembang
akan dapat memprogram kontrak pintar Vexanium menggunakan C++.
Underlying Vexanium adalah mesin virtual WebAssembly (WASM) yang mengeksekusi kode
kontrak pintar. WASM juga digunakan oleh perangkat lunak infrastruktur internet penting lainnya
yang dikembangkan oleh Google, Microsoft, Apple, dan lainnya. Pilihan desain menggunakan
WASM memungkinkan Vexanium untuk menggunakan kembali kompiler dan toolchains yang
dioptimalkan dan diuji pertempuran yang sedang dipelihara dan ditingkatkan oleh komunitas
yang lebih luas. Selain itu, mengadopsi standar WASM juga memudahkan pengembang
kompiler untuk mem-porting bahasa pemrograman lain ke Vexanium.
BAB V
OS YANG DIDUKUNG
- MAC OS
- Ubuntu 18.04 atau Ubuntu 16.04
BAB VI
TAHAPAN
1. Pemasangan binaries
Perintah di bawah ini akan mengunduh binari untuk sistem operasi masing-masing.
macos
$ wget https://github.com/vexanium/vexnodeclivex/releases/download/v1.7.4-1/vexnodeclivex1.7.4bin_macos.zip
$ unzip vexnodeclivex1.7.4bin_macos.zip
ubuntu 16.04 install
$ wget https://github.com/vexanium/vexnodeclivex/releases/download/v1.7.4-1/vexnodeclivex1.7.4bin_ubuntu16.zip
$ unzip vexnodeclivex1.7.4bin_ubuntu16.zip
ubuntu 18.04 install
$ wget https://github.com/vexanium/vexnodeclivex/releases/download/v1.7.4-1/vexnodeclivex1.7.4bin_ubuntu18.zip
$ unzip vexnodeclivex1.7.4bin_ubuntu18.zip
Memasang VEX.CDT
Lakukan langkah berikut:
Sell:
wget https://vexgift.s3-ap-southeast-1.amazonaws.com/dl/vex.cdt.amd64.deb
sudo apt install ./vex.cdt.amd64.deb
Menambahkan VEXCPP compiler
Setelah anda melakukan install vex.cdt installah vexcpp:
Vexcpp ini adalah compiler dimana nanti kita butuhkan untuk mengkompilasikan kode kontrak
kita.
Lakukan perintah berikut
Sell:
wget https://vexgift.s3-ap-southeast-1.amazonaws.com/dl/vex.cdt.add.amd64.deb
sudo apt install ./vex.cdt.add.amd64.deb
2. Memulai keosd
Langkah Pertama mulai keosd lakukan perintah berikut:
Sell:
./keosd $
Membuat Development wallet
Check wallet untuk memastikan terlebih dahulu
Sell:
./cleos wallet list
Akan terlihat seperti ini
[]
Ini menandakan belum terdapat wallet
Setelah anda memulai keosd dan memastikan wallet anda dapat ke langkah berikutnya untuk
membuat development wallet.
Lakukan langkah berikut:
Sell:
./cleos wallet create --to-console
Akan terlihat seperti ini:
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5JW1X7QyYNGZsBBchsV3xr8Y5Xdqzspaso6vS33jHBN7mzyGKaa"
Simpan password nanti akan di gunakan untuk mengakses development wallet
Setelah itu check kembali wallet dengan perintah berikut
Sell:
./cleos wallet list
Akan terlihat seperti ini:
Wallets:
[
"default *"
]
Menandakan anda telah berhasil membuat development wallet dengan nama default wallet,
perhatikan tanda * secara default wallet anda tidak terkunci.
Setelah itu lakukan langkah berikutnya:
Open wallet
Jika anda sudah membuat devolepment tetapi tidak melihat wallet tersebut bisa jadi wallet anda tertutup anda tidak perlu khawatir, anda cukup membukanya agar terlihat kembali
Lakukan perintah berikut untuk membukanya:
./cleos wallet open
cika anda telah melakukan perintah di atas Langkah selanjutnya check kembali wallet anda
Sell:
./cleos wallet list
Akan terlihat seperti ini:
[
"default"
]
Perhatikan kembali tanda * tidak ada, ini menandakan wallet anda telah terkunci.
Setiap anda melakukan open wallet atau wallet dalam waktu lama tidak anda akses maka
wallet akan terkunci
4. Unlock wallet dan Import Key
Setelah anda membuat development wallet langkah selanjutnya adalah import key, anda bisa
menggunakan key anda sendiri. Check wallet, pastikan apakah wallet terbuka kuncinya atau
terkunci, jika wallet terkunci lakukan unlock wallet terlebih dahulu namun apabila wallet terbuka
kuncinya lewati langkah berikut
Contoh
Sell:
./cleos wallet unlock --password PW5JW1X7QyYNGZsBBchsV3xr8Y5Xdqzspaso6vS33jHBN7mzyGKaa
Akan terlihat:
Unlocked: default
Ini menandakan wallet anda telah terbuka kuncinya
Catatan: di belakang --password adalah password wallet anda jadi ubahlah menggunakan password anda
Setelah wallet terbuka kuncinya tahap selanjutnya adalah kita melakukan import key.
Contoh
Lakukan Perintah berikut:
./cleos wallet import --private-key
5Hudvm81HgTgz5UEQMED8Bpem1SmpCrYfVn4K1Qs2J4H2B5S9Vu
Nanti akan muncul seperti ini:
imported private key for: VEX64JnMok6LNudGtzcPyd3L7CJ5YB93Y76kv1AVizRzyyegK3S7Q
5Hudvm...... ini adalah private key anda
VEX64...... ini adalah public key dari private key yang anda import anda juga dapat
menyimpannya.
Simpan kedua key tersebut di beberapa tempat jangan sampai hilang karena nanti anda akan
membutuhkan nya.
5. Membuat Directory Contract
Anda perlu memilih direktori disarankan untuk membuat kontrak direktori di drive lokal anda
mkdir CONTRACTS_DIR
6. Membuat basic Hello Word Smart Contract
1. Buka Kontrak directory yang sudah anda buat
cd CONTRACTS_DIR
2. Buatlah lagi hello word directory
Contoh
Sell:
mkdir hello
cd hello
Setelah anda membuat directory untuk contract saatnya ke tahap selanjutnya untuk membuat
kontrak dengan kode c++ ini adalah contoh dari basic contract helloword.
3. Buat file dengan nama hello.cpp.
contoh
Sell:
touch hello.cpp
setelah itu edit file cpp yang sudah anda buat dengan editor favorit anda dan masukkan kode
berikut ke dalam file cpp yang telah anda buat.
#include <eosio/eosio.hpp>
using namespace eosio;
class [[eosio::contract]] hello : public contract {
public:
using contract::contract;
[[eosio::action]]
void hi( name user ) {
print( "Hello, ", user);
}
};
langkah selanjutnya Anda dapat mengkompilasi kode anda ke perakitan web (.wasm) sebagai
berikut.
Sell:
Vexcpp hello.cpp -o hello.wasm
Setelah itu kembali ke directory di mana terdapat cleos.
7. Membeli ram dan melakukan Set Contract ( Publish Contract )
Setelah anda menyelesaikan langkah langkah diatas saatnya melakukan Publish Contract.
Tetapi anda harus memastikan terlebih dahulu keadaan wallet development harus pada posisi
tidak terkunci jika wallet terkunci anda perlu membuka kunci wallet tersebut.
Membeli ram
Sebelum anda melakukan Publish contract, anda memerlukan RAM yang di gunakan untuk
menyiman ( account, assets, contract, dan data lainya ). Catatan: Semakin besar contract anda
maka semakin banyak RAM yang anda perlukan. Contoh di bawah saya akan melakukan
pembelian RAM menggunakan 10 VEX
Contoh
Sell:
./cleos --url https://explorer.vexanium.com:6960 system buyram account_pengirim account_penerima "10 VEX"
Setelah anda rasa ram sudah cukup anda dapat melakukan perintah publish kontrak kembali.
Sell:
./cleos --url https://explorer.vexanium.com:6960 set contract account_anda CONTRACTS_DIR/hello
Anda dapat melacak semua transaksi anda menggunakan https://explorer.vexanium.com/
termasuk saat anda melakukan publish contracts.
8. Melakukan action dengan smart contract
Setelah kontrak anda ter-publish saatnya melakukan action ke smart contract yang telah anda buat tadi.
Lakukan perintah berikut untuk melakukan action dengan smart contract hello word yang telah
ter publish.
Sell:
./cleos --url https://explorer.vexanium.com:6960 push action account_contractmu hi '["account"]' -
p account@active
Anda juga dapat melihat action anda di Explorer Vexanium https://explorer.vexanium.com/