Kata Pengantar
1.1. Blockchain
Blockchain adalah inovasi dalam protokol perangkat lunak yang pada awalnya ditemukan dalam pemanfaatan Bitcoin yang digunakan untuk memecahkan masalah penyelesaian ganda dalam mata uang digital. Beberapa tahun ke depan, blockchain akan mulai digunakan karena memiliki beberapa karakteristik yang hanya dimiliki dalam teknologi blockchain, seperti:
- Data disalin dalam banyak node, artinya jika seorang hacker ingin menyerang, ia harus menyerang sebagian besar dari node tersebut.
- Setelah disimpan di blockchain, data tidak dapat diubah / diedit.
- Setiap blok terhubung ke blok sebelumnya dan blok berikut, artinya jika seorang hacker ingin menyerang atau mengubah data, ia perlu mengubah data di semua blok.
- Kita dapat menjalankan kontrak pintar dalam blockchain, yang memungkinkan penciptaan model bisnis baru dengan menghilangkan perantara atau otoritas pusat.
Berdasarkan karakter dan nilai-nilai inti yang disediakan blockchain, berikut adalah beberapa kategorisasi (tetapi tidak terbatas pada) bagaimana teknologi blockchain memecahkan masalah di berbagai industri:
-
Industri yang membutuhkan nilai transfer yang lebih cepat (misalnya: uang) daripada uang fiat tradisional. Contoh: pengiriman uang, kliring dan penyelesaian efek.
-
Industri yang melibatkan banyak pemangku kepentingan yang tidak saling percaya - atau pemangku kepentingan bersaing satu sama lain tetapi dalam beberapa situasi juga bekerja sama satu sama lain. Contoh: Pelabuhan, Rantai Pasokan.
-
Industri yang sebelum blockchain membutuhkan komitmen uang besar untuk melakukan transaksi dan karenanya, industri menghadapi masalah likuiditas. Misalnya untuk membeli properti atau mobil butuh banyak uang. Sekarang menggunakan teknologi blockchain, properti dapat dipatok sehingga pembeli dapat membeli token dengan komitmen uang yang lebih rendah. Ini meningkatkan likuiditas di pasar. Ini disebut "kepemilikan fraksional".
-
Industri yang membutuhkan kekekalan (tidak dapat diubah) karakter dari basis data blockchain, dan basis data dapat diakses oleh semua pemangku kepentingan. Contoh: sektor publik yang berurusan dengan pendaftaran tanah, sektor pendidikan yang berhubungan dengan sertifikat.
-
Industri startup teknologi (contoh: media sosial, pasar e-commerce, mesin pencari, startup atas permintaan) di mana para pemangku kepentingan berpikir bahwa mereka berpikir mereka memiliki masalah dengan perantara atau perantara.
- Produk yang mereka gunakan memiliki perantara dengan daya tawar yang terlalu tinggi, karena perantara ini mendapat banyak data pengguna dan menjualnya kepada pengiklan (kadang-kadang, secara ilegal dan tanpa pembagian keuntungan dengan pengguna).
- Perantara yang mengambil biaya terlalu tinggi, dari pengguna atau pedagang. Dan biaya ini dapat dikurangi dengan menggunakan blockchain & kontrak pintar - ini mengurangi biaya verifikasi.
- Perantara yang tidak benar-benar transparan tentang cara kerja: Game, Taruhan
-
Industri yang memiliki masalah berbagi data silo - kadang-kadang sebelum blockchain, data disimpan di berbagai lembaga yang berbeda. Contoh: catatan medis, pendaftaran tanah, Identitas.
-
Industri yang sangat menghargai konten digital dan membutuhkan konten digital untuk menjadi unik, aman, dan berharga di era digital. Contoh: Game / barang digital, musik / video, konten berhak cipta, koleksi digital, suara, kredit karbon, skor kredit sosial.
1.2. 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.
1.3. Fitur Teknis
Blockchain 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 - jadi pengembang tidak perlu "menemukan kembali roda-nya". 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.
1.4. Stack

Interaksi khas dengan blockchain Vexanium.
Smart Contract / CDT
VEX.CDT adalah toolchain untuk WebAssembly (WASM) dan seperangkat alat untuk memfasilitasi penulisan kontrak untuk platform VEXANIUM. Selain menjadi toolchain WebAssembly tujuan umum, optimisasi spesifik VEXANIUM tersedia untuk mendukung pembuatan kontrak pintar VEXANIUM. Toolchain baru ini dibangun di sekitar Dentang 7, yang berarti bahwa VEX.CDT memiliki optimasi dan analisis terkini dari LLVM. Namun, karena target WASM masih dianggap eksperimental, beberapa optimisasi tidak tersedia atau tidak lengkap.
Nodeos
Nodeos adalah node 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.
Cleos/Keosd
Keosd adalah manajer kunci untuk akun VEXANIUM yang disertakan dengan VEXANIUM.
Cleos adalah alat baris perintah yang memungkinkan pengembang untuk menggunakan, menguji, dan mengkonfigurasi nodeos serta kontrak pintar VEXANIUM.

Interaksi khas pengguna dengan VEXANIUM DApp.
VEXANIUMJS
Javascript API SDK untuk integrasi dengan blockchain berbasis VEXANIUM menggunakan VEXANIUM RPC API.
Demux
Demux adalah implementasi referensi dari pola infrastruktur backend yang dapat digunakan untuk merutekan peristiwa blockchain dari blockchain berbasis VEXANIUM ke datastore yang dapat ditanyakan, atau juga, untuk memicu efek samping.
Lingkungan Pengembangan
2.1. Pengantar
Apa yang akan anda pelajari di bagian ini:
- Cara cepat memutar node
- Kelola dompet dan kunci
- Buat akun
- Tulis beberapa kontrak
- Kompilasi dan ABI
- Menyebarkan kontrak
Pengalaman C/C++
Blok berbasis VEXANIUM menjalankan aplikasi dan kode yang dibuat pengguna menggunakan WebAssembly (WASM). WASM adalah standar web yang muncul dengan dukungan luas dari Google, Microsoft, Apple, dan perusahaan industri terkemuka.
Saat ini toolchain yang paling matang untuk membangun aplikasi yang dikompilasi ke WASM adalah dentang / llvm dengan kompiler C / C++ mereka. Untuk kompatibilitas terbaik, Anda disarankan untuk menggunakan VEXANIUM C++ toolchain
Kompiler C / C++. Untuk kompatibilitas terbaik, Anda disarankan untuk menggunakan rantai alat VEXANIUM C++.
Toolchain lain yang sedang dikembangkan oleh pihak ke-3 meliputi: Rust, Python, dan Solidity. Meskipun bahasa-bahasa lain ini mungkin tampak lebih sederhana, kinerja mereka kemungkinan akan berdampak pada skala aplikasi yang dapat Anda bangun. Kami berharap bahwa C++ akan menjadi bahasa terbaik untuk mengembangkan kontrak pintar berkinerja tinggi dan aman dan berencana untuk menggunakan C++ untuk masa mendatang.
Pengalaman Linux / Mac OS
Perangkat lunak VEXANIUM mendukung environment berikut:
- Amazon 2017.09 atau versi selanjutnya.
- Centos 7
- Fedora 25 atau versi selanjutnya (Direkomendasikan Fedora 27)
- Mint 18
- Ubuntu 16.04 (Direkomendasikan Ubuntu 16.10)
- Ubuntu 18.04
- MacOS Darwin 10.12 atau versi selanjutnya (Direkomendasikan MacOS 10.13.x)
Pengetahuan Command Line
Ada berbagai alat yang disediakan bersama dengan VEXANIUM yang mengharuskan Anda untuk memiliki pengetahuan garis perintah dasar untuk berinteraksi.
Mengatur C++ Environment
Kita dapat menggunakan editor teks apa pun yang lebih disukai, mendukung penyorotan sintaksis C++. Beberapa editor populer adalah Sublime Text dan Atom. Pilihan lain adalah IDE, yang menyediakan penyelesaian kode yang lebih canggih dan pengalaman pengembangan yang lebih lengkap. Anda dipersilakan untuk menggunakan perangkat lunak preferensi pribadi Anda, tetapi jika Anda tidak yakin apa yang harus digunakan, kami telah menyediakan beberapa opsi untuk Anda jelajahi.
Potential Editors and IDEs
Sistem Operasi Pengembangan Environment
Jika menggunakan OS pada rasa linux apa pun, Anda akan dapat mengikuti tutorial ini dengan mudah, ini termasuk tetapi tidak terbatas pada
- Mac OS
- Ubuntu
- Debian
Windows
Jika Anda mengembangkan pada Windows, sayangnya kami tidak menyediakan port PowerShell dan instruksi saat ini. Di masa depan kita dapat menambahkan perintah PowerShell. Sementara itu, taruhan terbaik Anda adalah menggunakan VM dengan Ubuntu, dan mengatur lingkungan pengembangan Anda di dalam VM ini. Jika Anda adalah pengembang Window canggih yang terbiasa dengan porting instruksi Linux, Anda harus menghadapi masalah minimal.
2.1. Sebelum Anda Mulai
Langkah 1: Pemasangan binari
Tutorial ini akan menggunakan binari pre-built. Bagi Anda untuk memulai secepat mungkin ini adalah pilihan terbaik. Membangun dari sumber adalah pilihan, tetapi akan membuat Anda mundur satu jam atau lebih dan Anda mungkin mengalami kesalahan pembangunan.
Perintah di bawah ini akan mengunduh binari untuk sistem operasi masing-masing.
Pemasangan Brew Mac OS X
Shell
wget https://vexanium.com/files/vex1.7.4bin_macos.zip
unzip vex1.7.4bin_macos.zip
Pemasangan Paket Ubuntu 18.04 Debian
Shell
https://vexanium.com/files/vex1.7.4bin_ubuntu18.zip
unzip vex1.7.4bin_ubuntu18.zip
Pemasangan Paket Ubuntu 16.04
Shell
wget https://vexanium.com/files/vex1.7.4bin_ubuntu16.zip
unzip vex1.7.4bin_ubuntu16.zip
Langkah 2: Pengaturan direktori pengembangan, tetap berpaku pada hal tersebut
Anda perlu memilih direktori untuk melakukan pekerjaan ini, disarankan untuk membuat kontrak direktori di drive lokal anda.
Shell
mkdir contracts
cd contracts
Langkah 3: Masukkan direktori lokal Anda di bawah ini.
Dapatkan path dari direktori itu dan simpan untuk nanti, karena Anda akan membutuhkannya, Anda dapat menggunakan perintah berikut untuk mendapatkan path absolut Anda.
pwd
Masukkan jalur absolut ke direktori kontrak Anda di bawah ini, dan itu akan dimasukkan di seluruh dokumentasi untuk membuat hidup Anda sedikit lebih mudah. Fungsi ini membutuhkan cookies.
2.3. Atur dan Mulai Node Anda
Langkah 1: Boot Node dan Wallet
Step 1.1: Mulai keosd
Pertama, mulai keosd
Shell
keosd &
Anda akan melihat beberapa output yang terlihat seperti ini:
Text
info 2018-11-26T06:54:24.789 thread-0 wallet_plugin.cpp:42 plugin_initialize] initializing wallet plugin
info 2018-11-26T06:54:24.795 thread-0 http_plugin.cpp:554 add_handler ] add api url: /v1/keosd/stop
info 2018-11-26T06:54:24.796 thread-0 wallet_api_plugin.cpp:73 plugin_startup ] starting wallet_api_plugin
info 2018-11-26T06:54:24.796 thread-0 http_plugin.cpp:554 add_handler ] add api url: /v1/wallet/create
info 2018-11-26T06:54:24.796 thread-0 http_plugin.cpp:554 add_handler ] add api url: /v1/wallet/create_key
info 2018-11-26T06:54:24.796 thread-0 http_plugin.cpp:554 add_handler ] add api url: /v1/wallet/get_public_keys
Tekan [Enter] untuk melanjutkan
Step 1.2: Memulai nodeos
Mulai nodeos sekarang:
Shell
nodeos -e -p vexanium \
--plugin vexanium::producer_plugin \
--plugin vexanium::chain_api_plugin \
--plugin vexanium::http_plugin \ --access-control-allow-origin='*' \ --contracts-console \
--http-validate-host=false \ --verbose-http-errors >> nodeos.log 2>&1 &
Pengaturan ini akan mencapai hal-hal sebagai berikut:
- Jalankan Nodeos. Perintah ini memuat semua plugin dasar, setel alamat server, aktifkan CORS dan tambahkan beberapa debugging dan logging kontrak.
- Aktifkan CORS tanpa batasan (*) dan pengembangan logging
Step 2: Periksa instalasi
Step 2.1: Periksa Nodeos yang Memproduksi Blok
Jalankan perintah berikut ini
Shell
tail -f nodeos.log
Anda akan melihat beberapa output di konsol yang terlihat seperti ini:
Text
1929001ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366974ce4e2a... #13929 @ 2018-05-23T16:32:09.000 signed by eosio [trxs: 0, lib: 13928, confirmed: 0]
1929502ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366aea085023... #13930 @ 2018-05-23T16:32:09.500 signed by eosio [trxs: 0, lib: 13929, confirmed: 0]
1930002ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366b7f074fdd... #13931 @ 2018-05-23T16:32:10.000 signed by eosio [trxs: 0, lib: 13930, confirmed: 0]
1930501ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366cd8222adb... #13932 @ 2018-05-23T16:32:10.500 signed by eosio [trxs: 0, lib: 13931, confirmed: 0]
1931002ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366d5c1ec38d... #13933 @ 2018-05-23T16:32:11.000 signed by eosio [trxs: 0, lib: 13932, confirmed: 0]
1931501ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366e45c1f235... #13934 @ 2018-05-23T16:32:11.500 signed by eosio [trxs: 0, lib: 13933, confirmed: 0]
1932001ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366f98adb324... #13935 @ 2018-05-23T16:32:12.000 signed by eosio [trxs: 0, lib: 13934, confirmed: 0]
1932501ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 00003670a0f01daa... #13936 @ 2018-05-23T16:32:12.500 signed by eosio [trxs: 0, lib: 13935, confirmed: 0]
1933001ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 00003671e8b36e1e... #13937 @ 2018-05-23T16:32:13.000 signed by eosio [trxs: 0, lib: 13936, confirmed: 0]
1933501ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000367257fe1623... #13938 @ 2018-05-23T16:32:13.500 signed by eosio [trxs: 0, lib: 13937, confirmed: 0]
Tekan ctrl + c untuk menutup log
Langkah 2.2: Periksa Dompet
Buka shell dan jalankan perintah cleos untuk mendaftar dompet yang tersedia. Kami akan berbicara lebih banyak tentang dompet di masa depan. Untuk saat ini, kita perlu memvalidasi instalasi dan melihat bahwa klien baris perintah
cleos berfungsi sebagaimana dimaksud.
Shell
./cleos wallet list
Anda akan melihat respons dengan daftar dompet kosong:
Wallets:
[ ]
Dari titik ini ke depan, Anda akan menjalankan perintah dari sistem lokal Anda (Linux or Mac)
Step 2.3: Periksa Nodeos endpoints
Ini akan memeriksa apakah RPC API berfungsi dengan benar, pilih satu.
- Periksa titik akhir
get_infoyang disediakan olehchain_api_plugindi browser Anda: http: // localhost: 8888/v1/chain/get_info. - Periksa hal yang sama, tetapi di konsol Anda host machine
Shell
curl http://localhost:8888/v1/chain/get_info
2.4. Pemasangan CDT
Perangkat Pengembangan Kontrak VEXANIUM (Contract Development Toolkit), singkatnya CDT, adalah kumpulan alat yang terkait dengan kompilasi kontrak. Tutorial selanjutnya menggunakan CDT terutama untuk menyusun kontrak dan menghasilkan ABI.
Mulai dari 1.3.x, CDT mendukung pembuatan Mac OS X, Linux Debian, dan paket RPM. Opsi termudah untuk menginstal adalah menggunakan salah satu dari sistem paket ini. Pilih satu metode pemasangan saja.
Homebrew (Mac OS X)
Install
Shell
brew tap vex/vex.cdt
brew install vex.cdt
Uninstall
Shell
brew remove vex.cdt
Ubuntu (Debian)
Install
Shell
wget https://vexanium.com/files/vex1.7.4bin_ubuntu16.zip
unzip vex1.7.4bin_ubuntu16.zip
sudo apt install ./vex.cdt_1.6.1-1_amd64.deb
Uninstall
Shell
sudo apt remove vex.cdt
Pemasangan dari Sumbernya
Lokasi di mana vex.cdt dikloning tidak begitu penting karena Anda akan menginstal vex.cdt biner lokal di langkah selanjutnya. Untuk saat ini, Anda dapat mengkloning vex.cdt ke direktori "kontrak" yang Anda buat sebelumnya, atau benar-benar di tempat lain di sistem lokal Anda yang Anda inginkan.
Teks
cd CONTRACTS_DIR
Unduh
Versi kloning 1.6.1 dari repositori vex.cdt
Teks
git clone --recursive https://github.com/vexanium/vex.cdt
cd vex.cdt
Mungkin perlu hingga 30 menit untuk mengkloning repositori
Build
Shell
./build.sh
Install
Shell
sudo ./install.sh
Perintah di atas perlu dijalankan dengan sudo karena berbagai binari vex.cdt akan diinstal secara lokal. Anda akan dimintai kata sandi akun komputer Anda.
Menginstal vex.cdt akan menjadikan binary yang dikompilasi global sehingga dapat diakses di mana saja. Untuk tutorial ini, it sangat disarankan agar Anda tidak melewatkan langkah instal untuk vex.cdt, gagal menginstal akan membuatnya lebih sulit untuk mengikuti tutorial ini dan lainnya, dan membuat penggunaan secara umum lebih sulit.
Penyelesaian masalah
Mendapatkan Kesalahan saat membangun.
- Cari kesalahan Anda untuk string "/ usr / local / include / eosiolib /"
- Jika ditemukan,
rm -fr / usr / local / include / eosiolib /atau navigasikan ke/ usr / local / include /dan hapuseosiolibmenggunakan browser file sistem operasi Anda.
2.5. Membuat Dompet Pengembangan
Dompet adalah repositori pasangan kunci publik-privat. Kunci pribadi diperlukan untuk menandatangani operasi yang dilakukan pada blockchain. Dompet diakses menggunakan cleos.
Langkah 1: Buat Dompet
Langkah pertama adalah membuat dompet. Gunakan cleos wallet create untuk membuat dompet "default" baru menggunakan opsi --to-console untuk kesederhanaan.
Jika menggunakan cleos dalam produksi, lebih baik menggunakan --to-file sehingga kata sandi dompet Anda tidak ada dalam bash history Anda. Untuk tujuan pengembangan dan karena ini adalah development dan bukan kunci produksi --to-console tidak menimbulkan ancaman keamanan.
Shell
./cleos wallet create --to-console
cleos akan memberikan kata sandi. Simpan kata sandi ini yang nantinya anda butuhkan untuk tutorial berikutnya.
Shell
Creating wallet: default
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5Kewn9L76X8Fpd....................t42S9XCw2"
Langkah 2: Membuka Dompet
Dompet ditutup secara default saat memulai instance keosd, untuk memulai, jalankan perintah berikut
Shell
./cleos wallet open
Jalankan perintah ini untuk kembali ke daftar dompet
Teks
./cleos wallet list
dan ini akan kembali
Wallets:
[
"default"
]
Langkah 3: Membukanya
Dompet keosd telah dibuka, tetapi masih terkunci. Beberapa saat yang lalu Anda diberi kata sandi, Anda akan membutuhkannya sekarang
Teks
./cleos wallet unlock
Anda akan dimintai kata sandi, tempel dan tekan enter.
Sekarang jalankan perintah berikut
Teks
./cleos wallet list
Itu akan kembali
Wallets:
[
"default *"
]
Berikan perhatian khusus pada tanda bintang (*). Ini berarti bahwa dompet saat ini unlocked
Langkah 4: Mengimpor kunci ke dompet Anda
Hasilkan kunci pribadi, cleos memiliki fungsi pembantu untuk ini, jalankan saja yang berikut ini.
Teks
./cleos wallet create_key
Akan kembali seperti ini
Created new private key with a public key of:
"EOS8PEJ5FM42xLpHK...X6PymQu97KrGDJQY5Y"
Langkah 5: Ikuti seri tutorial ini dengan lebih mudah
Masukkan kunci publik yang disediakan pada langkah terakhir dalam kotak di bawah ini. Ini akan bertahan kunci publik development Anda baru saja dihasilkan di seluruh dokumentasi.
Langkah 6: Mengimpor Kunci Pengembangan
Setiap rantai VEXANIUM baru memiliki "sistem" pengguna default yang disebut "vexanium". Akun ini digunakan untuk menyiapkan rantai dengan memuat kontrak sistem yang menentukan tata kelola dan konsensus rantai VEXANIUM. Setiap rantai VEXANIUM baru hadir dengan kunci pengembangan, dan kunci ini sama. Muat kunci ini untuk menandatangani transaksi atas nama pengguna sistem (vexanium)
Shell
./cleos wallet import
You'll be prompted for a private key, enter the vexanium development key provided below
5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
Jangan pernah gunakan kunci pengembangan untuk akun produksi! Melakukannya pasti akan mengakibatkan hilangnya akses ke akun Anda, kunci pribadi ini diketahui publik.
Hebat, sekarang Anda memiliki dompet default terbuka dan dimuat dengan kunci, dan siap untuk melanjutkan.
2.6. Membuat Akun Percobaan
Apa itu akun?
Akun adalah kumpulan otorisasi, disimpan di blockchain, dan digunakan untuk mengidentifikasi pengirim/penerima. Akun memiliki struktur otorisasi yang fleksibel yang memungkinkan untuk dimiliki oleh individu atau kelompok individu tergantung pada how izin yang telah dikonfigurasi. Diperlukan akun untuk mengirim atau menerima transaksi yang valid ke blockchain
Seri tutorial ini menggunakan dua akun "pengguna", bob danalice, serta akun vexanium default untuk konfigurasi. Selain itu akun dibuat untuk berbagai kontrak sepanjang seri tutorial ini.
Langkah 1: Membuat Akun Percobaan
Pada langkah sebelumnya, Anda membuat wallet dan membuat pasangan kunci pengembangan. Anda diminta memasukkan kunci publik ke dalam formulir, tetapi Anda melewatkan langkah ini atau menonaktifkan cookie. Anda harus mengganti YOUR_PUBLIC_KEY di bawah ini dengan kunci publik yang Anda buat.
Sepanjang tutorial ini, akun bob danalice digunakan. Buat dua akun menggunakan cleos create account
Shell
./cleos create account eosio bob YOUR_PUBLIC_KEY
./cleos create account eosio alice YOUR_PUBLIC_KEY
Anda kemudian akan melihat pesan konfirmasi yang mirip dengan yang berikut untuk setiap perintah yang mengkonfirmasi bahwa transaksi telah disiarkan.
Hasil
executed transaction: 40c605006de... 200 bytes 153 us
# eosio <= eosio::newaccount {"creator":"eosio","name":"alice","owner":{"threshold":1,"keys":[{"key":"VEX5rti4LTL53xptjgQBXv9HxyU...
warning: transaction executed locally, but may not be confirmed by the network yet]
Langkah 2: Kunci Publik
Catatan dalam perintah cleos kunci publik dikaitkan dengan akunalice. Setiap akun Vexanium dikaitkan dengan kunci publik.
Ketahuilah bahwa nama akun adalah satu-satunya pengidentifikasi untuk kepemilikan. Anda dapat mengubah kunci publik tetapi itu tidak akan mengubah kepemilikan akun Vexanium Anda.
Periksa kunci publik mana yang dikaitkan dengan alice menggunakan cleos get account
Shell
./cleos get account alice
Anda harusnya melihat pesan yang seperti di bawah ini:
Teks
permissions:
owner 1: 1 VEX6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
active 1: 1 VEX6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
memory:
quota: unlimited used: 2.66 KiB
net bandwidth:
used: unlimited
available: unlimited
limit: unlimited
cpu bandwidth:
used: unlimited
available: unlimited
limit: unlimited
Perhatikan bahwa sebenarnya alice memilikipublic dan active kunci publik. Vexanium memiliki struktur otorisasi unik yang telah menambahkan keamanan untuk akun Anda. Anda dapat meminimalkan eksposur akun Anda dengan menjaga kunci pemilik di cold wallet, sambil menggunakan kunci yang terkait dengan izin active Anda. Dengan cara ini, jika kunci active Anda dikompromikan, Anda bisa mendapatkan kembali kendali atas akun Anda dengan kunciowner Anda.
Dalam hal otorisasi, jika Anda memiliki izin owner Anda dapat mengubah kunci pribadi dari izinactive. Tetapi Anda tidak dapat melakukannya sebaliknya.
Penyelesaian masalah
Jika Anda mendapatkan kesalahan saat membuat akun, pastikan dompet Anda tidak dikunci
Shell
./cleos wallet list
Anda akan melihat tanda bintang (*) di sebelah nama dompet, seperti yang terlihat di bawah ini.
Teks
Wallets:
[
"default *"
]
2.7. Meluncurkan node BP
Catatan Penting:
-
Kebutuhan server minimal adalah dual‑core CPU, 4 GB RAM, 100 GB hardrive, dan sistem yang direkomendasikan adalah 64‑bit ubuntu 18
-
Mainnet Vexanium tidak dapat digunakan pada server yang sama dengan mainnet EOS, artinya satu server hanya dapat menggunakan satu mainnet. Ini untuk mencegah kesalahan yang tidak biasa selama peluncuran node
-
Sebelum penyebaran node Vexanium, silakan mengenal dokumen terkait EOS, penggunaan klien perintah dan penggunaan RPC API misalnya
-
Untuk registrasi BP anda perlu memiliki akun mainnet terlebih dahulu.
Peluncuran Node BP
Ini adalah kerangka peluncuran Vexanium yang didasarkan Linux ubuntu.
1. Unduh file rilis
apt-get update && apt-get install -y wget unzip
Untuk ubuntu18:
wget [http://209.97.162.124:8060/vex1.7.4bin_ubuntu18.zip](http://209.97.162.124:8060/vex1.7.4bin_ubuntu16.zip)
Untuk ubuntu16:
wget [http://209.97.162.124:8060/vex1.7.4bin_ubuntu16.zip](http://209.97.162.124:8060/vex1.7.4bin_ubuntu16.zip)
unzip vex1.7.4bin_ubuntu**.zip
2. Persiapan
Menghasilkan pasangan kunci publik / pribadi untuk node BP. Jalankan perintah sebagai berikut:
./cleos create key --to-console
Hasil eksekusinya sebagai berikut:
Private key: **5J9ZDeDPvsgCqxyHvYagrNKQxWTqQwiiZ5RPbAJ3gyhvvER795a**
Public key: **VEX6vJnArfJm7Txiw5uYCRpovNZ3QNw4EXw5Wtk529cWAkViDSwDg**
Kunci publik akan digunakan selama pendaftaran BP nanti, yaitu regproducer.
Dapatkan akun mainnet sebagai nama produsen dengan kunci Publik, misalnya akun producertest.
3. Eksekusi perintah berikut ini untuk memulai node BP
sudo nohup ./nodeos --max-irreversible-block-age -1 --contracts-console --genesis-json ./genesis.json --blocks-dir ./data/blocks --data-dir ./data --chain-state-db-size-mb 1024 --http-server-address 127.0.0.1:80 --p2p-listen-endpoint 0.0.0.0:8090 --max-clients 5 --p2p-max-nodes-per-host 5 --enable-stale-production --producer-name **producertest** --signature-provider=**VEX6vJnArfJm7Txiw5uYCRpovNZ3QNw4EXw5Wtk529cWAkViDSwDg**=KEY:**5J9ZDeDPvsgCqxyHvYagrNKQxWTqQwiiZ5RPbAJ3gyhvvER795a**--plugin eosio::http_plugin --plugin eosio::chain_api_plugin --plugin eosio::producer_plugin --p2p-peer-address 209.97.162.124:8091 39.105.124.20:8092 > nodeos.log 2>&1 &
4. Registrasi BP
Membuat wallet lokal:
./cleos wallet create --to-console
Melakukan impor kunci privat akun BP ke dalam wallet:
./cleos wallet import --private-key
**5J9ZDeDPvsgCqxyHvYagrNKQxWTqQwiiZ5RPbAJ3gyhvvER795a**
Eksekusi perintah berikut ini untuk melakukan pendaftaran:
./cleos --url http://209.97.162.124:8080 system regproducer
**producertest VEX6vJnArfJm7Txiw5uYCRpovNZ3QNw4EXw5Wtk529cWAkViDSwDg**
[https://producertest.com](https://producertest.com/)
Ada dua kondisi untuk dapat melakukan produksi blok:
- Top 21 BPs yang bisa melakukan produksi blok
- Sinkronisasi node BP lokal telah selesai
5.Klaim hadiah BP
Jika BP anda telah memproduksi blok, maka anda bisa melakukan klaim hadiah setiap 24 jam.
Eksekusi perintah tersebut untuk melakukan klaim hadiah:
./cleos --url http://209.97.162.124:8080
system claimrewards **producertest**