* 본 포스팅은 하이퍼레저 패브릭 docs를 번역한 내용으로, 번역 과정에서 잘못된 부분이 있을 수 있습니다.
상세 내용은 하단 링크를 참조 부탁드리며, 잘못된 내용에 대한 피드백은 언제든 환영합니다 : ) 
https://hyperledger.github.io/composer/latest/business-network/publishing-events

 

Emitting Events | Hyperledger Composer

Emitting Events Events can be emitted by Hyperledger Composer and subscribed to by external applications. Events are defined in the model file of a business network definition, and are emitted by transaction JavaScript in the transaction processor function

hyperledger.github.io

이벤트는 하이퍼레저 컴포저에 의해 발생할 수 있으며 외부 애플리케이션에 의해 구독될 수 있다. 이벤트는 비즈니스 네트워크 정의의 모델 파일에 정의되어 있고, 트랜잭션 처리 함수의 자바스크립트로 된 트랜잭션에 의해 발생한다. 이벤트를 발생시키는 코드는 트랜잭션 처리 함수 내부에 있지만, 이 코드가 실행될 때 이벤트가 발생되지는 않음에 주의하라. 대신에 이벤트는 트랜잭션이 커밋될 때마다 발생한다.

Before you begin

비즈니스 네트워크에 이벤트를 추가하기 전에 비즈니스 네트워크의 모델링 언어에 대한 이해도가 있어야 하며, 완전한 비즈니스 네트워크 정의를 구성하는 요소에 대해 알고 있어야 한다.

 

Procedure

1. 이벤트는 비즈니스 네트워크 정의의 모델 파일 (.cto) 에 정의되어 있고 asset과 participant도 동일하게 여기 있다. 이벤트는 다음 형태를 따른다.

event BasicEvent {
}

2. 이벤트가 발생하려면 이벤트를 생성하는 트랜잭션이 3개의 함수를 호출해야 한다. 첫 번재 함수는 getFactory 함수이다. getFactory함수는 이벤트가 트랜잭션의 일부로 생성되게 한다. 다음으로 이벤트는 factory.newEvent('org.namespace', 'BasicEvent') 를 사용해 생성되어야 한다. 이는 네임스페이스에 정의된 BasicEvent를 생성한다. 그리고나서 이벤트 요구속성들이 셋팅되어야 한다. 마지막으로 이벤트는 emit(BasicEvent)를 통해 발생한다. 이벤트를 호출하는 간단한 트랜잭션은 다음과 같다.

/**
 * @param {org.namespace.BasicEventTransaction} basicEventTransaction
 * @transaction
 */
async function basicEventTransaction(basicEventTransaction) {
    let factory = getFactory();

    let basicEvent = factory.newEvent('org.namespace', 'BasicEvent');
    emit(basicEvent);
}

이 트랜잭션은 비즈니스 네트워크 모델 파일에 정의된 BasicEvent 타입의 이벤트를 생성하고 발생시킨다. getFactory 함수에 대한 더 자세한 정보는 아래 링크를 참고하시오.

https://hyperledger.github.io/composer/latest/jsdoc/module-composer-runtime.html#getFactory

불러오는 중입니다...

 

+ Recent posts