Базовый системный контракт предназначен для регистрации системных контрактов типов операций, обновления версий и таблицы параметров операций. Без запуска базового контракта невозможно не только вводить в работу контракты типов операций, но и обслуживать их, в том числе контролировать версии. Запуск и проверка работы системных контрактов является одним из важнейших шагов подготовки к запуску сети. Также это необходимо для начала открытого тестирования и последовательной проверки выполнения операций разных типов. Про какие типы речь? В сети предусмотрены отдельные типы операций для выполнения разных задач. Каждый тип операции выполняется своим системным контрактом актуальной, на момент выполнения, версии. и других операций, которых всего более 20 типов. Контракты могут иметь открытый или закрытый код.Так, к примеру, регистрация нового пользователя системы вызывает системный контракт register. Отдельные типы операций также существует для:
Контракты бывают системные и пользовательские. Контракты типов операций только системные.
Для каждого типа операций есть свои требования к блокам, которые должны быть отобраны для транзакции.
Для некоторых типов операций подходят только блоки системных воркеров, для других типов операций требуются блоки от пользователей системы, которые в свою очередь, в зависимости от типа операции, должны соответствовать определённым критериям:
- время жизни блока от момента создания
- репутация создателя блока
- время от регистрации в системе создателя блока
- число подтверждений блока с момента создания
и другим критериям..
Для транзакции, выполняющей операцию тоже есть свои критерии, среди которых:
- количество блоков, которые используются в транзакции
- процент погашенных блоков в одной транзакции
- процент подтверждений гашений блоков
- количество операций в одной транзакции
- количество нод, участвующих в транзакции
- время выполнения транзакции
и другие критерии..
Чем выше требования к блокам и транзакции, тем дороже стоят блоки и выше комиссия за проведение транзакции, а значит и выше вознаграждение авторам каждого блока.
Требования к блокам для определённых типов операций могут настраиваться пользователем, который эту операцию создаёт.