Saya tentu saja bukan programmer yang hebat, tapi menulis proyek ini mengajarkan saya banyak (dan membuat saya sibuk).FMZ.COM, dan jika saya refactor kode python saya akan menggunakan model yang lebih berorientasi objek. namun, saya terkejut dengan hasil yang saya dapatkan dan bot telah membuat hampir 100% ether keuntungan sejauh ini.
Apa gunanya? Ini adalah bot arbitrase. Itu berarti bahwa ia menghasilkan uang dari perdagangan perbedaan antara harga pada dua (atau lebih) bursa. Saat ini ia unidirectional dan hanya perdagangan antara Etherdelta dan Bittrex: mereka berbagi sekitar dua puluh pasangan et / token. Berikut adalah diagram untuk menggambarkan bagaimana cara kerjanya:Kata-kata yang diikuti oleh tanda kurung adalah transaksi ethereum yang memanggil panggilan fungsi kontrak pintar.
Aku bisa menggunakanfmz.complatform python editor untuk membuat transaksi dan panggilan fungsi dan itu akan cukup mudah. Saya membutuhkan sesuatu yang lebih dapat diandalkan; gagal transaksi berarti kehilangan uang. Setiap satu permintaan GET saya membutuhkan jawaban, bahkan jika paket TCP hilang atau webserver di ujung lain secara sementara turun. Oleh karena itu saya memutuskan untuk menerapkan python sendiri etherscan API wrapper dan menggunakan pythereum untuk membuat transaksi dan etherscan untuk menerbitkannya. Saya juga menulis request.get dekorator saya sendiri yang merupakan loop sementara yang hanya keluar setelah jawaban memuaskan.
Ini adalah kode yang saya gunakan untuk mengkodekan respon API etherdelta json sebagai hexadecimal, rlp dikodekan, transaksi ethereum (bukan untuk yang lemah hati):
Nilai heksadesimal mentah dalam penutupan di bagian bawah adalah tanda tangan fungsi yang sesuai dengan setiap fungsi. Tanda tangan fungsi berasal dari keccak fungsi dan argumennya. Ini harus dilampirkan ke parameter data transaksi diikuti oleh data yang membentuk argumen. Secara total kode saya sekitar 400 baris panjang dan terkandung dalam 5 file yang berbeda.
Saya membuat beberapa grafik dari data yang saya log menggunakan pymatplotlib.
Secara keseluruhan seluruh proyek ini memakan waktu sekitar dua minggu selama waktu luang saya di sekolah dan itu adalah ledakan di seluruh. saya telah mengambil istirahat dari coding dengan kuat dan saat ini dalam proses perencanaan arbitrase bot v2. versi berikutnya akan mencakup 86 bursa yang berbeda dan banyak pasangan perdagangan.
Ke bulan!