Populární témata
#
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.
Nasadil jsem plně on-chain python prostředí na Solaně
Teď spouštíš nativní python skripty a bytecode na Solaně
adresa programu: pythonKBk7JcXsbwYzMRy2tL8L9tZqUbgekxRfT1bTE
Frontend zde:
Několik příkladů:
tisk ("Ahoj Solano!")
>>> "Ahoj Solano!"
Print(math.sqrt(2.0))
>>> 1.414213
print(time.asctime())
"Čt 18. prosince 19:26:15 2025"

Solana účty jsou považovány za soubory
To znamená, že můžete číst/zapisovat na Solana účty a nasazovat python balíčky na Solana účty
který umožňuje python kód jako:
f = otevřené ("/sol/1", "w")
f.write("def greet(name):\n return 'Hello ' + name")
importovat sol_1 jako my_package
print(my_package.greet("Solana"))
>> "Ahoj Solano"

Většina integrovaných balíčků, base58/64, struct, json, time a math je zahrnuta
Existuje balíček Solana s podporou PDA, cross-chain-invocation a většiny systémových hovorů Solany
Časový balíček obaluje Solana hodiny
a program vrací poslední nevyhodnocený příkaz jako return_data aby ostatní programy mohly spustit python program a použít výsledek

Program Python podporuje parsování, kompilaci a spouštění python kódu
Nicméně on-chain parsování je velmi drahé. Jakékoli složité rekurzivní python skripty rychle narazí na limit 1,4 M výpočetních jednotek
U složitějších python programů mohou uživatelé skript zkompilovat do python bytecode mimo řetězec. To vede k ~10-100násobné úsporě plynu a umožňuje mnohem složitějším python programům spouštět on-chain
Jednoduchý rekurzivní skript jako Print(1+2+3) spotřebuje 1 328 442/1 399 700 výpočetních jednotek
Zkompilovaný do bajtkódu spotřebuje 13 579/1 339 700 výpočetních jednotek (100x levnější)
Frontend obsahuje WASM python kompatibilnost, takže uživatelé mohou snadno kompilovat do bytecode a spouštět program on-chain


Začal jsem programovat tento projekt na Den díkůvzdání, když jsem zabíjel čas a narazil jsem na PikaPython: C python interpreter, který běží jen s 4KB RAM, bez jakýchkoli závislostí
náhodou @solana má 4kb stack (RAM), podporuje C a nemá mnoho standardních C závislostí
Projekt je z 99 % portován AI a jen volně testovaný mnou, takže prosím nepoužívejte tento projekt pro žádné kritické operace nebo s cennými peněženkami
Nicméně je to zábavné hřiště pro objevování Solany a poznávání jejích funkcí
S více balíčky a podporou DeFi aplikací by se to nakonec mohlo stát užitečným nástrojem pro analýzu dat a prototypování na Solaně
Musel jsem udělat několik úprav, abych projekt portoval na Solana BPF
- BPF nepodporuje globální zápisný stav, takže jsem musel přesunout všechny globaly do haldy
- BPF nepodporuje >5 funkčních argumentů (v nástrojovém řetězci C), takže musel předávat funkce s 5+ argumenty jako ukazatele na struktury
- ukazatele funkcí, které vedou mimo textový segment, jsou zakázány, takže pole ukazatelů a další "nebezpečné" cíle volání musela být refaktorována
- standardní funkce libc jako printf musely být znovu implementovány
- optimalizované využití zásobníku a přesun velkých struktur do haldy
- implementoval vlastní alokátor, který předalokuje několik velkých bufferů
- implementovat sysout jako sol_log a vracet poslední nevyhodnocené příkazy jako return_data
Odkaz na GitHub níže. Neváhejte přispět:

V tuto chvíli je VM omezen na 1,4 M výpočetních jednotek
v budoucnu by interpreter Pythonu mohl použít balíčky k rozšíření limitu CU na limit účtu 12M nebo i nad něj
To by vyžadovalo:
- kontrola využití CU uvnitř interpretu
- pozastavení parseru a VM jednotky, když se začne blížit k limitu 1,4M CU
- zachování stavu parseru/VM uloženého v haldě na účet
- načtení haldy při obnovení interpretu
další budoucí rozšíření budou implementovat balíčky pro populární DeFi aplikace, aby uživatelé mohli snáze komunikovat s on-chain programy v Pythonu
podpora pro Pyo3 nebo Cython by uživatelům umožnila snadno psát efektivní python balíčky, které rozšiřují stávající knihovny Solana Rust
Nakonec by portování numpy, který podporuje PikaPython, byl skvělý projekt
Projekt je zdarma a open-source – neexistuje žádný token
Dělal jsem to z lásky ke hře
Užijte si to - Moonshiesty
129
Top
Hodnocení
Oblíbené
