Subiecte populare
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Am implementat un mediu Python complet on-chain pe Solana
Acum rulezi scripturi native Python și bytecode pe Solana
program address: pythonKBk7JcXsbwYzMRy2tL8L9tZqUbgekxRfT1bTE
Partea frontală aici:
Câteva exemple:
print("Hello Solana!")
>>> "Salut, Solana!"
print(math.sqrt(2.0))
>>> 1.414213
print(time.asctime())
"Joi 18 Dec 19:26:15 2025"

Conturile Solana sunt tratate ca fișiere
Ceea ce înseamnă că poți citi/scrie pe conturi Solana și să implementezi pachete Python pe conturi Solana
care permite codul Python precum:
f = deschis("/sol/1", "w")
f.write("def greet(name):\n return 'Hello' + name")
import sol_1 ca my_package
print(my_package.greet("Solana"))
>> "Hello Solana"

Majoritatea pachetelor încorporate, base58/64, struct, json, time și un pachet de matematică sunt incluse
Există un pachet Solana cu suport pentru PDA-uri, invocări cross-chain și majoritatea apelurilor de sistem Solana
Pachetul de timp înfășoară ceasul Solana
iar programul returnează ultima afirmație neevaluată ca return_data astfel încât alte programe să poată invoca programul Python și să folosească rezultatul

Programul Python suportă analizarea, compilarea și executarea codului Python
Totuși, parsarea on-chain este foarte costisitoare. orice scripturi recursive Python complicate ajung rapid la limita de 1,4M unități de calcul
Pentru programe Python mai complicate, utilizatorii pot compila scriptul în bytecode Python off-chain. Acest lucru duce la o economisire de gaz de ~10-100x și permite executarea on-chain a programelor Python mult mai complicate
Un script recursiv simplu precum print(1+2+3) consumă 1.328.442/1.399.700 unități de calcul
Compilat în bytecode, consumă 13.579/1.339.700 de unități de calcul (de 100 de ori mai ieftin)
Frontend-ul conține un WASM Python complier, astfel încât utilizatorii să poată compila ușor în bytecode și să execute programul on-chain


Am început să programez acest proiect de Ziua Recunoștinței, când îmi omor timpul și am dat peste PikaPython: un interpret C Python care rulează cu doar 4KB RAM, fără dependențe
coincidență, @solana are un stack (RAM) de 4KB, suportă C și nu are multe dintre dependențele standard de C
proiectul este portat în proporție de 99% de AI și testat doar vag de mine, așa că vă rog să nu folosiți acest proiect pentru operațiuni critice sau cu portofele valoroase
Totuși, este un loc de joacă distractiv pentru a explora Solana și a învăța cum funcționează Solana
în cele din urmă, cu mai multe pachete și suport pentru aplicații DeFi, acest lucru ar putea deveni un instrument util pentru analiza datelor și prototipare pe Solana
A trebuit să fac mai multe modificări pentru a porta proiectul pe Solana BPF
- BPF nu suportă starea scriibilă globală, așa că a trebuit să mut toate globalele în heap
- BPF nu suportă argumente cu >5 funcții (pe lanțul de unelte C), așa că a trebuit să trec funcții cu 5+ argumente ca pointere către structuri
- pointerii de funcție care indică în afara segmentului de text sunt interziși, astfel că tablourile de pointeri și alte ținte de apel "nesigure" au trebuit refactorizate
- Funcțiile standard libc precum printf au trebuit reimplementate
- optimizarea utilizării stack-ului și mutarea struct-urilor mari în heap
- implementat un alocător personalizat care prealocă mai multe buffere mari
- implementează sysout ca sol_log și returnează ultima instrucțiune neevaluată ca return_data
Link GitHub mai jos. Nu ezitați să contribuiți:

în prezent, mașina virtuală este restricționată la 1,4M unități de calcul
În viitor, interpretul Python ar putea folosi pachete pentru a extinde limita CU până la limita de cont de 12M sau mai mult
Aceasta ar necesita:
- verificarea utilizării CU în interiorul interpretului
- suspendarea parserului și a unității VM atunci când aceasta începe să se apropie de limita de 1,4M CU
- să persiste starea parserului/VM stocată în heap către un cont
- încărcarea heap-ului când interpretul reia
alte extensii viitoare ar fi implementarea pachetelor pentru aplicații DeFi populare, astfel încât utilizatorii să poată interacționa mai ușor cu programe on-chain în Python
suportul pentru Pyo3 sau Cython ar permite utilizatorilor să scrie cu ușurință pachete python eficiente care extind bibliotecile Solana Rust existente
În final, portarea numpy, care este suportată de PikaPython, ar fi un proiect interesant
Proiectul este gratuit și open-source - nu există niciun token
Am făcut-o din dragoste pentru joc
Bucurați-vă - Moonshiesty
150
Limită superioară
Clasament
Favorite
