Open byron1st opened 6 years ago
Issue #171 의 논의가 [SC.BSNB]와 [SC.BSNN]에 대한 내용이 될거 같네요.
시나리오를 작성해서 이곳 이슈에 올리고 다같이 얘기하면 좋을 것 같습니다. 바로 작업 시작하겠습니다.
우선 3가지 시나리오에 대해서 작성해보았습니다. 정확하지는 않더라고 일단 올리고 피드백을 통해 서로 맞춰나가는 것이 좋을 것 같아서 3개의 시나리오가 확정이 되면 나머지 시나리오도 같은 방법으로 그리도록 하겠습니다.
client로 부터의 모든 요청은 API Gateway로 가게 되고 API Gateway에서 AMQP를 통해 TxPool로 Event를 전달합니다. 요청전에 TxPool은 AMQP에게 Event Consume을 미리 수행해야 합니다.
정확하게 표현하자면 동기화라기 보다는 Leader(Block생성 권한을 가진 Peer)에게 tx를 주기적으로 보내주는 시나리오라고 봐야 할 것 같습니다. 주기적으로 transacationSendCondition을 체크해 조건을 만족할 경우 Leader에게 tx를 전송합니다.
가장 복잡한 시나리오라서 PBFT합의 과정은 네모 박스로 표시하였고 합의 시작과 끝만을 표기하였습니다. 여기서 이슈사항이 있는데 icode에서 worldstate db를 반영하기 위해 transaction을 실행시키는 것과 block을 blockchain에 저장하는 부분이 하나의 세트로 실행 되어야 할 것 같은데 이부분에 대해서 논의가 조금 필요할 것 같습니다.
@byron1st @hea9549 @hackurity01 @codeblv @junk-sound @zeroFruit
[SC.TC] Transaction 생성: 사용자(클라이언트)로부터 Transaction 생성 요청이 왔을 때의 시나리오 transaction의 생성 성공/실패에 대해서는 반환안하는걸로 했던거같은데 ( 시나리오에도 요청성공/실패만 반환하는것으로 보임)
txPool 관련 문서에 명시해두면 좋을 것 같습니다.
[SC.TS] Transaction 동기화: TxPool은 지속적으로 다른 it-chain node들과 동기화되는데, 이 동기화 시나리오 설명에도 나와있는데 Leader와 일반 노드로 분리해서 두가지 경우에 대해 작성하면 좋을 것 같습니다.
[SC.BC] Block 생성(a.k.a. Consensus): 합의 과정에 대한 시나리오 이슈에 대해서 block체인저장하는부분과 실행부분이 하나가되어야할텐데 둘중 하나라도 에러가나서 한쪽만 실행되면 안되니까.. 이부분은 이슈를 따로 빼서 논의하면 좋을 것 같습니다.
@hea9549
비동기 방식이기 때문에 실행결과는 따로 검색을 해봐야 하는 것으로 일단은 하고 있습니다.
이부분은 좋은 얘기 인것 같습니다. 작성해서 txpool readme에 올리면 될 것 같습니다.
시나리오뷰 그림 내의 이벤트 이름들을 #177 에 맞춰 작성해주면, 각 서비스 개발자들에게 많은 도움이 되겠네요.
doc
폴더 내에 적당한 파일 하나 만들어서 옮기는 것도 좋을 거 같습니다.
그리고 https://www.uml-diagrams.org/sequence-diagrams.html 참조해서 시퀀스다이어그램 syntax를 한번 체크하면 좋을거 같네요. 일단 저도 공부할겸 제가 다시 정리해서 올려보겠습니다.
it-chain-Engine을 구성하는 여러 서비스들이 어떤 이벤트로 어떻게 동작하는지에 대한 전체적인 뷰를 갖기 위해서 기본적으로 다음 6가지 시나리오가 정의되야 합니다.
위 시나리오의 주 목적은:
it-chain 개발이 어느정도 궤도에 오르고 있으므로, 이 부분에 대한 명확한 정의가 필요해보이네요.