Может ли Hyperledger «Smart Contract» иметь несколько коллекций в штате? - PullRequest
0 голосов
/ 25 июня 2019

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

  • для избирателей (пользователей веб-приложения, которые не должны иметь какого-либо конкретного сертификата).)
  • за выборы (например, «выборы за лучший ресторан вокруг»),
  • за кандидатов,
  • за самих голосов (например, Билл голосует за «бутерброды со старым Бобом»)
  • и т. Д.

Я прочитал много статей на https://hyperledger-fabric.readthedocs.io И они всегда показывают случай, когда есть много Коммерческих бумаг или автомобилей , которые можно купить и оформить.Я видел, что разрешены «частные коллекции», но мне не нужны данные, чтобы быть закрытыми.Я также видел, что есть каналы (но каналы, опять же, заставляют разных пользователей взаимодействовать с разными регистрами)

Код из примера repo :

class CommercialPaperContext extends Context {
  constructor() {
    super();
      // All papers are held in a list of papers
      this.paperList = new PaperList(this);
  }
}
...
class CommercialPaperContract extends Contract {
  createContext() {
    return new CommercialPaperContext();
  }
...
  async buy(ctx, issuer, paperNumber, currentOwner, newOwner, price, purchaseDateTime)

Смотрите - есть метод buy с параметром issuer, но нет коллекции issuer и коллекции owners.Также в приложении нет состояний «баланс денег».

Я хотел бы взглянуть на приложение, которое работает с данными различных типов (автомобили / клиенты / магазины).

1 Ответ

1 голос
/ 25 июня 2019

В матрице данных Hyperledger хранятся в виде пары ключ-значение.

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

Вы можете определить любой актив, например, автомобили, книги и т. Д., С их атрибутами (коллекциями) в коде цепочки и также сохранить его, в основном в формате json. При условии, что ключ уникален. Вы можете проверить цепной код fabcar или marbles02 на то же самое, вы можете найти его в fabric-samples / chaincode. Вернитесь к комментариям, если я что-то пропустил.

...