Программирование в Радиант

Mar 10 2023
Radiant использует язык программирования, называемый скриптом, унаследованный от Биткойна, но с добавлением расширенных функций, которые позволяют ему быть завершенным по Тьюрингу. Чтобы хорошо это понять, необходимо совершить прыжок во времени к истокам Биткойна.

Radiant использует язык программирования, называемый скриптом, унаследованный от Биткойн , но добавляющий расширенные функции, которые позволяют ему быть завершенным по Тьюрингу.

Чтобы хорошо это понять, необходимо совершить прыжок во времени к истокам Биткойна .

Биткойн-скрипт

Биткойну нужен был простой язык для управления транзакциями, и Сатоши решил использовать основанный на стеке язык, похожий на Forth (1970), который называется Bitcoin Script или только Script .

Структура сделки

Это простой язык, который не является полным по Тьюрингу, а это означает, что в нем отсутствуют определенные логические функции, включая циклы. Это было сделано для того, чтобы гарантировать, что никакие скрипты в Биткойне не вызовут больших вычислительных мощностей или взаимоблокировок из-за ошибки программирования.

Скрипт используется почти исключительно для блокировки и разблокировки биткойнов, поскольку с его помощью нельзя создавать приложения или запускать программы.

OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG

OP_коды

Коды операций — это простые команды языка сценариев, и каждая из них имеет очень специфические функции, позволяющие точно взаимодействовать с содержимым блокчейна.

Это коды операций, которые можно использовать в биткойнах.

https://github.com/bitcoin/bitcoin/blob/24.x/src/script/script.h

На следующем изображении вы можете увидеть, как язык сценариев Биткойн работает с OP_Codes в сценарии проверки. Поток выполнения идет слева направо, и оператор справа выполняет действие слева, если это так.

6 2 ADD = 8
8 8 EQUAL = TRUE

      
                

OP_Codes в Radiant

Radiant добавляет к языку сценариев ряд функций, которые позволяют ему быть завершенным по Тьюрингу на основе математической индукции. Это добавлено в следующих расширенных OP_Codes.

https://github.com/RadiantBlockchain/radiant-node/blob/master/src/script/script.h

OP_PUSHINPUTREF: ключ ко всему

Одна из больших проблем при управлении тегированными UTXOS, как и в случае с текущими порядковыми номерами, заключается в том, чтобы узнать историю до источника. Это можно сделать двумя простыми способами.

1/ С внешним скриптом, который проверяет происхождение и разрешает вывод (оракул).
2/ Добавление всей истории в один и тот же UTXO, что позволяет ему постоянно расти.

В Radiant это решается путем добавления уникальной и глобальной ссылки в эти транзакции, что позволяет эффективно проверять происхождение без необходимости использования оракулов или постоянного увеличения размера UTXO.

RadiantScript

Одной из самых сложных частей программирования с OP_Codes является их язык стека.

Чтобы решить эту проблему, мы работаем над RadiantScript , который станет первым интерпретатором программирования, который будет управлять потенциалом Radiant с его OP_Codes с языком программирования высокого уровня для смарт-контрактов в Radiant .

Его синтаксис основан на языке смарт-контрактов Ethereum Solidity , но его функциональность сильно отличается, поскольку смарт-контракты в Radiant сильно отличаются от смарт-контрактов в Ethereum.

В настоящее время он находится на стадии тестирования и находится в процессе документирования программирования, поскольку содержит новые OP_Codes .

Будущее

Когда Radiant был задуман, это было сделано с идеей работать с первого дня , а не ждать месяцы или годы, чтобы добавить разработки в цепочку. Уже сейчас можно использовать все его возможности, но самое сложное — это иметь программное обеспечение, которое может программировать в новых OP_Codes , а это требует времени и разработки.

Но будущее светлое, потому что этот новый код позволит конкурировать с большими цепями, такими как Ethereum, Cardano или Solana, с точки зрения потенциала.

(Это будет одна из многих статей, посвященных технической стороне Radiant , в которой и заключается весь его потенциал.)

Библиография

  • https://radiant4people.com/tech/radiant-system-design
  • https://www.researchgate.net/publication/335146032_An_Analysis_of_Non-standard_Transactions
  • https://github.com/bitcoinbook/bitcoinbook
  • https://github.com/RadiantBlockchain-Community/radiantscript