Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
ilya-gont
6 лет назад

Язык GOL

Привет всем, кто заглянул на страницы нашего блога! Сегодня начинаем знакомить вас с языком GOL. Рассказываем о целях его внедрения в технологию, а еще говорим о транзакциях и типах контрактов в GONT.

Язык GONT — GOL

Наша цель: инжектировать больше возможностей и функциональной сложности в язык контрактов. Сделать язык контрактов адаптивным к реальному миру.

Цели введения языка GOL:

  • Отображение транзакций любого типа на FU и PE (функциональные модули и процессорные элементы) виртуальной машины и процессора в контексте концепции TREVAL. TREVAL обеспечивает аппаратную поддержку транзакционности, а не просто исполнение кода.
  • Использование объектов реального мира (из GONT Tree оракула) как элементов функционального языка.
  • Реализация алгебры смыслов для использования в транзакциях.

Одно из пониманий языка GOL — функциональный язык с прямым отображением функций на HW исполнительные модули.

Спрос на функциональный подход к программированию БЧ существует.
Описания GOL привязаны к узлам GONT транзакций в GONT Tree.

Модель выполнения программы

Модель выполнения программы осуществляется как переходы на машине состояний транзакций (FSM) на GONT Tree. Каждый NODE онтологического дерева GONT = Транзакция (состояние транзакции) и описание транзакции на языке GOL.

Пример для 3-х состояний (транзакций):

TR1, TR2, TR3 — состояния транзакций, описанные на GOL в GONT Tree.

Реализация функционального кода (смарт-контракт):

IF (A) {TR2}
ELSE
IF (B) {TR3}

TR2 и TR3 имеют отображение на функциональные блоки GONT VM, которое описано в GONT Tree, глобальном оракуле GONT.
A и B — условия (события) из внешнего мира.

Транзакционная вложенность может быть продолжена:

Реализация функционального кода для транзакций, вложенных в TR1 (смарт-контракт):

IF (AA) {TR21}
ELSE
IF (BB) {TR31}

Что есть смарт-контракт в GONT?
Это совокупность любого количества транзакций в виде функционального кода программы. Контракт всегда находится в состоянии (TR_STATE) одной из транзакций. Затем контракт переходит к TR_STATE следующей транзакции.

Как передавать TRSTATE в другой контракт?
Посредствам результата эволюции состояния между контрактами.

Типы контрактов в GONT

1) Эволюционный контракт
Существует модель эволюции (FSM от состояния к состоянию). Нет асинхронности, есть состояние TOTAL_COMMIT, которое появляется после прохождения всех состояний эволюции сервиса.

2) Открытый контракт («коммерческий» package эволюционных контрактов)
Данный контракт можно рассматривать как генеральную совокупность эволюционных контрактов. Есть асинхронное выполнение контрактов внутри открытого контракта.

Суммарный COMMIT можно отслеживать как процент завершения эволюционных контрактов.

Спасибо за внимание! До следующих статей.
GONT

3
0.055 GOLOS
На Golos с April 2018
Комментарии (0)
Сортировать по:
Сначала старые