Saya menyebarkan lingkungan Python sepenuhnya on-chain di Solana Sekarang Anda menjalankan skrip Python asli dan bytecode di Solana alamat program: pythonKBk7JcXsbwYzMRy2tL8L9tZqUbgekxRfT1bTE frontend di sini: Beberapa contoh: cetak("Halo Solana!") >>> "Halo Solana!" cetak(matematika.sqrt(2.0)) >>> 1.414213 cetak(waktu.asctime()) "Thu Dec 18 19:26:15 2025"
Akun Solana diperlakukan seperti file Yang berarti Anda dapat membaca/menulis ke akun Solana dan menyebarkan paket Python ke akun Solana yang memungkinkan kode Python seperti: f = terbuka("/sol/1", "w") f.write("def greet(name):\n return 'Hello ' + name") impor sol_1 sebagai my_package cetak(my_package.greet("Solana")) >> "Halo Solana"
Sebagian besar paket bawaan, Base58/64, Struct, JSON, Time, dan matematika disertakan ada paket solana dengan dukungan untuk PDA, pemanggilan lintas rantai, dan sebagian besar panggilan sistem solana Paket waktu membungkus jam Solana Dan program mengembalikan pernyataan terakhir yang tidak dievaluasi sebagai return_data sehingga program lain dapat memanggil program Python dan menggunakan hasilnya
Program Python mendukung penguraian, kompilasi, dan eksekusi kode Python Namun, penguraian on-chain sangat mahal. setiap skrip python rekursif yang rumit dengan cepat berjalan ke batas unit komputasi 1,4 juta Untuk program Python yang lebih rumit, pengguna dapat mengkompilasi skrip ke dalam bytecode Python off-chain. Ini menghasilkan penghematan gas ~10-100x dan memungkinkan program Python yang jauh lebih rumit untuk dijalankan secara on-chain Skrip rekursif sederhana seperti print(1+2+3) mengkonsumsi 1.328.442/1.399.700 unit komputasi Dikompilasi menjadi bytecode mengkonsumsi 13.579/1.339.700 unit komputasi (100x lebih murah) Frontend berisi pelengkap Python WASM sehingga pengguna dapat dengan mudah mengkompilasi ke bytecode dan mengeksekusi program on-chain
Saya mulai mengkodekan proyek ini selama Thanksgiving ketika saya menghabiskan waktu dan menemukan PikaPython: penerjemah python C yang berjalan hanya dengan RAM 4KB, nol dependensi secara kebetulan @solana memiliki tumpukan (RAM) 4kb, mendukung C dan tidak memiliki banyak dependensi C standar proyek ini 99% di-porting oleh AI, dan hanya diuji secara longgar oleh saya, jadi tolong jangan gunakan ini untuk operasi misi penting apa pun atau dengan dompet yang berharga Namun, ini adalah taman bermain yang menyenangkan untuk menjelajahi Solana dan belajar tentang cara kerja Solana pada akhirnya, dengan lebih banyak paket dan dukungan paket untuk aplikasi DeFi, ini bisa menjadi alat yang berguna untuk analisis data dan pembuatan prototipe di solana
Saya harus melakukan beberapa modifikasi untuk memindahkan proyek ke BPF Solana - BPF tidak mendukung status yang dapat ditulis secara global sehingga saya harus memindahkan semua global ke dalam tumpukan - BPF tidak mendukung argumen fungsi >5 (pada rantai alat C) sehingga harus meneruskan fungsi dengan argumen 5+ sebagai penunjuk ke struktur - penunjuk fungsi yang mengarah ke luar segmen teks tidak diizinkan sehingga array penunjuk dan target panggilan "tidak aman" lainnya harus difaktorkan ulang - Fungsi libc standar seperti printf harus diimplementasikan kembali - Mengoptimalkan penggunaan tumpukan dan memindahkan struktur besar ke dalam tumpukan - mengimplementasikan alokasi khusus yang mengalokasikan beberapa buffer besar - Terapkan sysout sebagai sol_log dan kembalikan pernyataan terakhir yang tidak dievaluasi sebagai return_data tautan github di bawah ini. Jangan ragu untuk berkontribusi:
saat ini VM dibatasi hingga 1,4 juta unit komputasi di masa mendatang, penerjemah python dapat menggunakan bundel untuk memperluas batas CU ke batas akun 12 juta atau lebih Ini akan membutuhkan: - memeriksa penggunaan CU di dalam penerjemah - menangguhkan unit parser dan VM saat mulai mendekati batas 1,4 juta CU - mempertahankan status parser/VM yang disimpan dalam tumpukan ke akun - memuat tumpukan saat penerjemah melanjutkan ekstensi masa depan lainnya akan menerapkan paket untuk aplikasi DeFi populer sehingga pengguna dapat lebih mudah berinteraksi dengan program on-chain dalam python Dukungan untuk Pyo3 atau Cython akan memungkinkan pengguna untuk dengan mudah menulis paket python yang efisien yang memperluas pustaka solana rust yang ada akhirnya, porting numpy yang didukung oleh PikaPython akan menjadi proyek yang keren
proyek gratis dan sumber terbuka - tidak ada token melakukannya karena kecintaan pada permainan Nikmati - Moonshiesty
121