Я развернул полностью ончейн среду Python на Solana Теперь вы можете запускать нативные скрипты Python и байт-код на Solana Адрес программы: pythonKBk7JcXsbwYzMRy2tL8L9tZqUbgekxRfT1bTE Фронтенд здесь: Несколько примеров: print("Hello Solana!") >>> "Hello Solana!" print(math.sqrt(2.0)) >>> 1.414213 print(time.asctime()) "Чт Дек 18 19:26:15 2025"
учетные записи solana рассматриваются как файлы что означает, что вы можете читать/записывать в учетные записи solana и развертывать пакеты python в учетные записи solana что позволяет использовать код python, такой как: f = open("/sol/1", "w") f.write("def greet(name):\n return 'Hello ' + name") import sol_1 as my_package print(my_package.greet("Solana")) >> "Hello Solana"
большинство встроенных функций, base58/64, struct, json, time и математический пакет включены существует пакет solana с поддержкой PDA, кросс-цепочных вызовов и большинства системных вызовов solana пакет time оборачивает часы solana и программа возвращает последнее неоцененное выражение как return_data, чтобы другие программы могли вызывать python-программу и использовать результат
программа на python поддерживает парсинг, компиляцию и выполнение кода python однако парсинг в блокчейне очень дорогой. любые сложные рекурсивные скрипты на python быстро сталкиваются с лимитом в 1,4 миллиона вычислительных единиц для более сложных программ на python пользователи могут скомпилировать скрипт в байт-код python вне цепочки. это приводит к экономии газа в ~10-100 раз и позволяет выполнять гораздо более сложные программы на python в блокчейне простой рекурсивный скрипт, такой как print(1+2+3), потребляет 1,328,442/1,399,700 вычислительных единиц при компиляции в байт-код он потребляет 13,579/1,339,700 вычислительных единиц (в 100 раз дешевле) фронтенд содержит компилятор wasm для python, так что пользователи могут легко компилировать в байт-код и выполнять программу в блокчейне
Я начал кодировать этот проект во время Дня благодарения, когда убивал время и наткнулся на PikaPython: интерпретатор C на Python, который работает всего с 4 КБ ОЗУ и без зависимостей. Совпадение, что у @solana есть стек в 4 КБ (ОЗУ), поддерживает C и не имеет многих стандартных зависимостей C. Проект на 99% портирован с помощью AI и только слабо протестирован мной, так что, пожалуйста, не используйте это для каких-либо критически важных операций или с ценными кошельками. Тем не менее, это интересная площадка для изучения Solana и понимания того, как работает Solana. В конечном итоге, с большим количеством пакетов и поддержкой пакетов для DeFi-приложений это может стать полезным инструментом для анализа данных и прототипирования на Solana.
мне пришлось внести несколько изменений, чтобы портировать проект на Solana BPF - BPF не поддерживает глобальное записываемое состояние, поэтому мне пришлось переместить все глобальные переменные в кучу - BPF не поддерживает более 5 аргументов функции (в инструментальной цепочке C), поэтому пришлось передавать функции с более чем 5 аргументами как указатели на структуры - указатели на функции, которые указывают за пределы текстового сегмента, не допускаются, поэтому массивы указателей и другие "небезопасные" целевые вызовы пришлось переработать - стандартные функции libc, такие как printf, пришлось реализовать заново - оптимизировано использование стека и перемещены большие структуры в кучу - реализован пользовательский аллокатор, который предварительно выделяет несколько больших буферов - реализовать sysout как sol_log и вернуть последнее неоцененное выражение как return_data ссылка на github ниже. не стесняйтесь вносить свой вклад:
в данный момент VM ограничена 1.4M вычислительными единицами в будущем интерпретатор python может использовать пакеты для увеличения лимита CU до 12M лимита аккаунта или выше это потребует: - проверки использования CU внутри интерпретатора - приостановки парсера и единицы VM, когда они начинают приближаться к лимиту 1.4M CU - сохранения состояния парсера/VM, хранящегося в куче, в аккаунте - загрузки кучи, когда интерпретатор возобновляется другие будущие расширения будут включать реализацию пакетов для популярных приложений DeFi, чтобы пользователи могли легче взаимодействовать с программами на блокчейне на python поддержка Pyo3 или Cython позволит пользователям легко писать эффективные python пакеты, которые расширяют существующие библиотеки rust solana наконец, портирование numpy, поддерживаемого PikaPython, было бы классным проектом
проект бесплатный и с открытым исходным кодом - токена нет сделано из любви к игре наслаждайтесь - moonshiesty
131