Разница между каналами и Permission.acl в гипергелевом композиторе

Если вы подключаетесь к MySQL с помощью удаленной машины (пример workbench) и т. д., используйте следующие шаги для устранения этой ошибки в ОС, где установлен MySQL

mysql -u root -p

CREATE USER '<<username>>'@'%%' IDENTIFIED BY '<<password>>';
GRANT ALL PRIVILEGES ON * . * TO '<<username>>'@'%%';
FLUSH PRIVILEGES;

Попробуйте войти в экземпляр MYSQL. Это помогло мне устранить эту ошибку.

0
задан praveen kumar 13 July 2018 в 07:09
поделиться

2 ответа

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

0
ответ дан labib farag 17 August 2018 в 13:29
поделиться
  • 1
    Спасибо @ labib-farag, что касается событий, о которых я спрашиваю, если все участники находятся в одном канале, можем ли мы ограничить одно событие участника, не делясь / получая его с другими событиями участника. Это ограничение заключается в обеспечении безопасности, позволяющей подписку только для владельцев событий. – praveen kumar 13 July 2018 в 12:47
  • 2
    для публикации события вы можете ограничить совместное использование событий в соответствии с текущим участником с помощью функции getCurrentParticipant (), а также для извлечения события вы можете установить связь с участником в событии, которое будет опубликовано, и сделать условие для подписки на конкретное событие примера участника TradeNotification {- & gt; Товарный товар - & gt; Trader trader}, затем используя идентификатор трейдера, опубликованный в случае, если вы можете выполнить некоторую логику при подписке на события – labib farag 13 July 2018 в 14:06

Permission Access Control (ACL): позволяет реализовать различные уровни грантов по активам и участникам бизнес-сети. Регистр (данные) разделяются между всеми одноранговыми узлами, которые присоединились к каналу и бизнес-сети.

Канал: позволяет вам «физически» разделять регистр между одноранговыми узлами. Если одноранговый узел не присоединяется к каналу, у него нет копии данных.

Комбинация канала и ACL позволяет создать сложную конфигурацию доступа к данным.

Что касается событий, я думаю, что вы могли бы реализовать разные события на основе личности участника:

async function sampleTx(tx) {
    var currentParticipant = getCurrentParticipant();
    let factory = getFactory();

    let eventOne = factory.newEvent('org.example', 'EventOne');
    let eventTwo = factory.newEvent('org.example', 'EventTwo');

    if(currentParticipant.getFullyQualifiedType() !== 'org.example.ParticipantOne'){
      //....
      emit(eventOne);

    } else if(currentParticipant.getFullyQualifiedType() !== 'org.example.ParticipantTwo'){
      //....
      emit(eventTwo);
    }
}
0
ответ дан Leonardo Carraro 17 August 2018 в 13:29
поделиться
  • 1
    Спасибо @ leonardo-carraro, за события мы можем остановить участника, чтобы прослушать eventOne надежно. – praveen kumar 13 July 2018 в 12:43
Другие вопросы по тегам:

Похожие вопросы: