Намеченный проект о том, как реализовать токены Cordite - PullRequest
0 голосов
/ 11 октября 2018

У меня есть несколько вопросов, касающихся токенов кордита dgl.Я хочу маркировать актив, который представлен как LinearState.

  1. Есть ли способ разрешить только одну выдачу токенов?
  2. Является ли предпочтительный способ связать токены с другимисостояния через TokenSymbol?
  3. Каков предполагаемый дизайн учетных записей?Одна учетная запись на случай использования или одна на TokenType?
  4. Как мне запросить, если определенный токен уже существует?Является ли единственный способ запросить учетную запись и посмотреть на результат (поэтому нет функции для поиска баланса по TokenSymbol)?

Заранее спасибо!

1 Ответ

0 голосов
/ 26 октября 2018

Хорошие вопросы, спасибо!

  1. Сейчас это невозможно, но определенно признано желательным.Это потребует изменения в ядре, что нормально.Я думаю, что для этой работы потребуется Corda 4, в частности эталонные состояния и типы указателей линейных состояний.В частности, мы хотим:

    a.Существует так много способов ограничения выдачи: не только по итоговой сумме, но и по скорости распространения, подписывающим сторонам (в случае, когда для выдачи требуется несколько) и т. Д. Нам нужно вставить понятие конечной выдачи в токен.типа, опционально.Это будет либо добавление дополнительных полей к существующему TokenType.Или лучше сделать TokenType открытым, чтобы его можно было расширить.Другой способ - предоставить поле базовому типу или интерфейсу, который будет кодировать правила контракта.

    b.мы могли бы передать тип токена как присоединенный StateAndRef, но мы должны учитывать стоимость хранения, сети, подписи и проверки для этого.Лучшим подходом является использование функции справочных данных в Corda 4, которую мы с нетерпением ждем.

  2. Если другие состояния являются частью той же транзакции, которая генерирует токены, то связываниенеявно.Если другое состояние находится не в той же транзакции, что и токен, то для связывания на данный момент в Corda 3 необходимо использовать дескриптор TokenType.Альтернативно, он также может ссылаться на StateAndRef в tx, который генерирует другое состояние.Мы считаем, что наиболее эффективным является использование эталонных состояний Corda 4 (я полагаю, что на декабрь / январь этого года)

  3. Счета предназначены для хранения токенов нескольких типов токенов.Они действительно выровнены для бизнес-прецедента и не ограничены определенными типами токенов, если только вы не хотите включить это на прикладном уровне.

  4. Вы хотите получитьбаланс TokenType по всем счетам?Конечно, вы можете использовать API Corda для определения местоположения токенов - это пока не раскрывается через Braid, но, безусловно, может быть.Другой подход состоит в том, чтобы пометить / псевдоним всех ваших учетных записей одним и тем же тегом, например, { category:'all-accounts', value:''} Затем вы можете сделать ledger.balanceForAccountTag({ category: 'all-accounts', value:''}), чтобы получить баланс по всем учетным записям.Однако это возвращает остатки для всех TokenTypes.Как бы выглядел идеальный API для вас?

...