Minggu, 12 November 2023
Cara Mengetahui Besar Database PostgreSQL Tanpa Mendownloadnya
Sabtu, 23 September 2023
Menggunakan Artillery untuk Testing
Dalam era digital saat ini, meningkatkan performa aplikasi web dan memastikan aplikasi dapat menangani beban yang besar adalah hal yang penting. Salah satu alat yang dapat membantu kita memastikan bahwa aplikasi kita tahan banting adalah dengan melakukan pengujian beban. Salah satu alat untuk melakukan pengujian beban adalah Artillery.
Apa itu Artillery?
Artillery adalah alat pengujian beban yang modern, powerful, dan fleksibel. Dengan Artillery, pengembang dan tester dapat mengujian aplikasi mereka di berbagai skenario untuk memastikan bahwa aplikasi mampu menangani beban yang diharapkan. Artillery mendukung pengujian terhadap berbagai protokol seperti HTTP, WebSocket, dan lainnya.
Mengapa Menggunakan Artillery?
- Sederhana namun Kuat: Artillery memiliki konfigurasi yang sederhana dalam format YAML atau JSON, namun memiliki fitur yang kuat untuk menguji berbagai aspek aplikasi.
- Skalabilitas: Anda dapat menjalankan pengujian dari satu mesin atau mendistribusikannya ke banyak mesin untuk mensimulasikan ribuan pengguna.
- Statistik yang Detail: Setelah pengujian, Artillery memberikan laporan rinci mengenai latensi, throughput, jumlah kesalahan, dan metrik lainnya.
- Ekstensibilitas: Artillery dapat diextend dengan plugin untuk menambahkan fungsionalitas atau untuk mendukung protokol lain.
Bagaimana Cara Menggunakan Artillery?
- Instalasi
Untuk memulai, Anda perlu menginstal Artillery. Dengan asumsi Anda telah menginstal Node.js, Anda dapat menginstal Artillery dengan npm:
npm install -g artillery
- Membuat Skenario Pengujian
Buat file konfigurasi dalam format YAML atau JSON. Sebagai contoh:
config: target: 'http://your-api-endpoint.com' phases: - duration: 60 arrivalRate: 5 scenarios: - flow: - get: url: '/endpoint' - post: url: '/post-endpoint' json: key1: 'value1' key2: 'value2'
Dalam konfigurasi di atas, Artillery akan mengirimkan 5 permintaan per detik ke
http://your-api-endpoint.com/endpoint
selama 60 detik. - Jalankan Pengujian
Setelah Anda memiliki file konfigurasi, Anda dapat menjalankan pengujian dengan perintah:
artillery run namafilekonfigurasi.yml
- Menganalisis Hasil
Setelah pengujian selesai, Artillery akan menampilkan ringkasan statistik. Anda juga dapat menyimpan hasil pengujian ke file atau database untuk analisis lebih lanjut.
Kesimpulan
Artillery adalah alat pengujian beban yang sederhana namun kuat yang dapat membantu pengembang memastikan aplikasi mereka berfungsi dengan baik di bawah beban. Dengan Artillery, Anda dapat dengan mudah mensimulasikan lalu lintas ke aplikasi Anda dan mendapatkan insight mengenai performa dan titik-titik kelemahan yang mungkin ada.
Senin, 04 September 2023
Cara mengambil public key dari transaksi Ethereum
Pada saat pembuatan address pada walet Metamask atau wallet web3 lainnya, public key selalu tidak ditampilkan walaupun sebenarnya sudah dibuat.
Ini menjadi masalah tersendiri jika kita ingin memanfaatkan key ini untuk percakapan dengan enkripsi asimetri.
Address yang dihasilkan wallet web3 tidak bisa dikonversi langsung menjadi public key dengan mudah walaupun address tersebut merupakan turunan dari public key. Ini karena address itu dihasilkan melalui tahapan dari public key yang melibatkan fungsi satu arah (hashing) seperti berikut;
1. Mendapatkan Public Key
Setelah private key di generate. artinya kita juga memiliki asosiasi dengan public key. Public key disini dinamakan dengan Public ECDSA Key
Public key ini dimasukkan kedalam fungsi keccak-256(public key)
2. Dimasukkan kedalam fungsi Keccak-256 hash
3. Mengambil 20 bytes terakhir
Untuk mengenerate secara online, Anda dapat mencoba pada link berikut: https://www.rfctools.com/ethereum-address-test-tool/
Harap berhati-hati, jangan pernah memasukkan private key Anda.
Sedangkan untuk mendapatkan public key jika addressnya diketahui, kita tidak dapat membalik alur tersebut. Satu-satunya langkah yang dapat dilakukan adalah dengan membuat transaksi ethereum sehingga kita bisa mendapatkan nilai v, r dan s dari transaksi tersebut
Berikut adalah codenya;
Pada code diatas, kita menggunakan web3 wallet Metamask. Disini kita menghindari meg-ekspose private key.
Strategi yang digunakan adalah;
1. Menandatangani sebuah pesan.
2. Meng-ekstrak v, r dan s
3. Membuat message hash
4. Merecover public key dengan function ecrecover dan memasukkan nilai message hash, v, r dan s
5. Mengambil address dengan function pubToAddress
Untuk memastikan public key yang Anda convert kepada Address adalah benar, Anda dapat melakukan test sekali lagi dengan mengambil public key dari baris `console.log(`Public Key (Hex): ${publicKeyHex}`);` dan memasukkannya pada public key ECDSA pada link https://www.rfctools.com/ethereum-address-test-tool/
Cara Mengetahui Besar Database PostgreSQL Tanpa Mendownloadnya
Berikut adalah langkah-langkah untuk mengetahui ukuran semua database di instance PostgreSQL yang berjalan di dalam kontainer Docker: 1. Men...
-
Pendahuluan Aplikasi berbasis web telah berkembang pesat pada masa ini menjadikan orang awam paling tidak mengetahui bagaimana web itu bek...
-
Berikut adalah langkah-langkah untuk mengetahui ukuran semua database di instance PostgreSQL yang berjalan di dalam kontainer Docker: 1. Men...
-
Kenapa harus membuat server Git sendiri? Git pada masa ini seperti tools wajib bagi para pekerja dibidang software. Requirement pekerjaan...